Tags:
create new tag
, view all tags

Self-Organizing Virtual Coordinates for Location Based Routing

There are several ways in which routing in wireless sensor networks (WSNs) can be achieved. Geographic routing uses nodes' physical locations in order to transmit information to the destination node by forwarding packets to neighbours which are physically close to the destination. Drawbacks of this method include the fact that it is expensive for all nodes to be equipped with GPS sensors, inputting physical locations manually can be tedious and inaccurate, and the node which is physically closest to the destination may not be the best route to take.

Alternatively, having nodes calculate their locations virtually based on the connectivity of the network can allow for better performance in some cases; geographic routing can then be used with these virtual coordinates. Numerous virtual location algorithms have been proposed and three candidates have been chosen for Wisenet. The algorithms will mainly run from the network layer as separate threads so as to maintain modularity as much as possible.

The algorithms were allocated separate packet types and applications as needed:

TYPE_VIRTLOC 2 APP_BEACON 0
TYPE_LANDMARK 2 APP_LANDMARK
1
TYPE_PSVC 3 APP_ELECTION 0
APP_INIT 1
APP_RELAX 2
APP_PROBE 3

Note that Virtual Localization and Landmark-based Triangulation packets share the same type due to lack of remaining bits; to account for this, only one application is used for each type. Virtual localization only uses one packet application (APP_BEACON), however since Landmark Localization uses several applications which are all grouped as APP_LANDMARK packets, additional control bits are added within the Landmark application itself.

Files and Directories

SVN repository: wsn_localization

File Description
Core WiSeNet files (see WiSeNet documentation)
virtloc_module.py Virtual localisation module.
psvc_module.py Partical Swarm Virtual Coordinates module
landmark_module.py Landmark-based Triangulation Localisation module
draw_links.py Module to graph nodes and the links between them in 2-dimensions
draw_links_3D.py Module to graph nodes and the links between them in 3-dimensions
results_VL Folder containing the results of the virtual localisation algorithm
results_PSVC Folder containing the results of the PSVC algorithm
results_LM Folder containing the results of the landmark algorithm

Auxilary files (on the pepperoni server)

File Description
test_radios.sh Tests all the radios on the hosts designated in the host file
parse_files.sh Auxilary file for test_radios.sh to compile test results
mpirun_vl.sh Mpirun script for virtual localisation (note: user needs to manually configure file)
mpirun_psvc.sh Mpirun script for particle swarm virtual co-ordinates (note: user needs to manually configure file)
mpirun_landmark.sh Mpirun script for landmark-based localisation (note: user needs to manually configure file)
mpirun_phys.sh Mpirun script for physical localisation algorithm (note: user needs to manually configure file)
read_logs.sh Script to compile logs (note: user needs to manually configure file)
Topic revision: r13 - 2012-02-07 - BenjaminFoo
 
This site is powered by the TWiki collaboration platformCopyright © 2008-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback