Giter VIP home page Giter VIP logo

iot-localization's Introduction

Localization of a Mobile Node with a WSN

Project for the course called "Internet of Things" at Politecnico di Milano.

Objectives

Simulate a WSN composed by 8 fixed anchors and 1 mobile node, which moves along a known path.
The anchors periodically broadcast beacons, which are received by the mobile node. Upon reception, the mobile node estimates the RSSI of the beacons, converts it into distance measures and triangulates its position by using the best three beacons.

Requirements:

  1. Create a specific component to simulate RSSI estimation. The component acts as an oracle, knowing the trajectory of the mobile node and the position of all the anchors. Use a log-distance path loss model for power-to-distance conversion, e.g. P = P0 + 10log10(d/d0) + v, with v an additive Gaussian noise of known distance.
  2. From the estimated RSSI, retrieve a distance measure (only for the best 3 anchor nodes).
  3. Use the Gradient Descent Triangulation techniques to obtain the position of the mobile node.
  4. Compute and plot the localization error VS the Gaussian noise variance v.

Results

The plot with the localization error on Y and the Gaussian noise variance on X is:

alt tag
alt tag

Video

ScreenShot

News

  • 04/05/2015 - IOT Localization 1.0.0 released

Contents

  • 2 projects in one repository. AnchorNode and MobileNode projects for Eclipse (with Yeti 2 TinyOS plugin).
  • Sources
  • Binary files ready to use
  • Report of the project and the ".csc" simulation's files for Cooja
  • Log file

Future extensions

  • Test this software on real sensors.

Usage

Step 1. Download Instant Contiki VM HERE.
Step 2. In the VM, download the ".zip" file from the page "Releases" of this project.
Step 3. Download in ~/git this source code with: git clone
Step 4. Execute these commands:

    $ cd ~/git/<name of this project>/AnchorNode
    $ mkdir build
    $ cd build
    $ mkdir telosb
    $ cd ~/git/<name of this project>/MobileNode
    $ mkdir build
    $ cd build
    $ mkdir telosb

Step 5. In the downloaded files extracted from the ".zip" copy Binary-files/AnchorNode/main.exe in

    $ cp ~/Downloads/<extracted files folder>/Binary-files/AnchorNode/build/telosb/main.exe ~/git/<name of this project>/AnchorNode/build/telosb/main.exe
    $ cp ~/Downloads/<extracted files folder>/Binary-files/MobileNode/build/telosb/main.exe ~/git/<name of this project>/MobileNode/build/telosb/main.exe

Step 6. Run Cooja with:

    $ cd ~/contiki-2.7/tools/cooja
    $ ant run

Step 7. In Cooja, load the ".csc" file in the released ".zip", and click on the "Start" button to start the simulation.

alt tag

Eclipse instructions

Step 1. If you want to compile this softwares with Eclipse, download Eclipse C++ HERE.
Step 2. Intall Yeti 2 Plugin, using this "Software Site": http://tos-ide.ethz.ch/update/site.xml
Step 3. Import AnchorNode from the downloaded files in ~/git//AnchorNode in a project
Step 4. Import MobileNode from the downloaded files in ~/git//MobileNode in a different project
Step 5. Initialize the VM to download TinyOS using this tutorial http://tinyprod.net/repos/debian/
Step 6. Download TinyOS using this tutorial http://tinyos.stanford.edu/tinyos-wiki/index.php/Automatic_installation
Step 7. Restart Eclipse, go in Window->Preferences->TinyOS->Environments->TinyOS 2.x unix-environment and set the path of "TinyOS Root Directory"

alt tag

Step 8. Include "printf.h" in Project->Properties->TinyOS Build->2.Includes and check that ncc=consider and Include=system
Step 9. Include "math.h" in Eclipse only in the MobileNode's project.

alt tag

License

Copyright 2014-2015 Stefano Cappa, Jiang Wu, Eric Oswald Scarpulla

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Created by Stefano Cappa, Jiang Wu, Eric Scarpulla

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.