Mobility of Nodes in Cooja

From Contiki
Jump to: navigation, search

Back to Contiki Tutorials

Introduction

This tutorial teaches you how to enable mobility in Cooja Simulator. This feature can be used to simulate and test mobile ad-hoc network protocols in the Cooja Simulator. After following all the steps mentioned in this tutorial you will be able to sucessfully simulate mobile nodes in your Cooja simulator.

You Will Learn

  • How to download and enable mobility plugin in Cooja
  • How to use the plugin

Downloading the Plugin

The mobility plugin for cooja can be found at this URL

http://sourceforge.net/p/contikiprojects/code/HEAD/tree/sics.se/mobility/

Create a new directory at

cd contiki/tools/cooja/apps

mkdir mobility

Download and Save all the files into this mobility folder

Now, you have successfully downloaded all the files needed for this plugin

--Note you need to replicate the directory and file structure at the given URL--

--You have to create directories and save files individually from the URL--

The next thing we need to do is enable this plugin in Cooja

Building the plugin

Navigate to

cd contiki/tools/cooja/apps/mobility

sudo ant jar

This will build the plugin

Enabling the Mobility Plugin in Cooja

Start Cooja Simulator

cd contiki/tools/cooja

sudo ant run

In Cooja,

Settings > External Tools Path…

Snapshot1.png

Edit Settings Screen will pop-up

Snapshot2.png

Scroll down to DEFAULT_PROJECTDIRS

This field is used to specify paths to all the plugins in Cooja Simulator

Here you have to add a path to the downloaded plugin. We do this for linking the plugin with Cooja Simulator

Now, we need to append the plugin’s path to the existing plugin paths

Go the end of this field DEFAULT_PROJECTDIRS

Insert ‘ ; ‘ symbol

Add the plugin’s path

[CONTIKI_DIR]/tools/cooja/apps/mobility

Click Save

Close Cooja Simulator and Start it again.

cd contiki/tools/cooja/

sudo ant run

Now go to

Settings>Cooja Extensions

Cooja Extensions Window will pop-up.

Scroll down to mobility select it and click on “Apply for the session”

Snapshot3.png

Under the Tools tab in Cooja you should see a new “Mobility…” option now

Snapshot13.png

Testing the Plugin

Start a new simulation

File > New Simulation

Snapshot4.png

Add a test mote to your simulation to test the new plugin

Motes > Add Mote > Create a new mote type > Sky Mote …

Snapshot5.png

Compile a simple hello-world.c code on this mote. Now create the mote

Now, we will test our plugin on this mote

Under Tools tab click on mobility

Tools > Mobility

Snapshot6.png

Browse and Navigate to

contiki/tools/cooja/apps/mobility/positions.dat

Snapshot7.png

We have instructed our mobility plugin to get the positional information from this positions.dat file

Click Open

A small window will pop-up as shown below

Snapshot8.png

Now, Click on “Start Simulation”

Snapshot9.png

Voila! Your mote will start start moving according to the specified positions.dat file

Positions.dat File structure

Position.dat file contains this information

#node time(s) x y

0 0.0 0 10

0 1.0 10 10

0 2.0 10 0

0 3.0 0 0

0 4.0 0 10

The first column specifies the node number

The second column is the time-stamp

The third column is the x-coordinate

The fourth column is the y-coordinate

#node time(s) x y

0 0.0 0 10

This line means node 0 (mote 1) at 0.0sec will be at position co-ordinates (0, 10)

Note: Here node 0 is the 'mote 1’ on your cooja simulator

If you specify node 1 in the first column it is for 'mote 2'

So positions.dat node (n) is actually mote (n+1) on Cooja Simulator

Changing positions.dat file or plugin files

Changing positions.dat file

If you want to change the position.dat file. Replace position.dat file with the new file

Under Tools>Mobility

Add the required number of nodes in the simulator and start your simulation.

The new positions will be loaded now and the nodes will start moving according to new position specifications.

Changing core plugin files

If you want to change the core plugin files for your requirements.

After implementing your changes and modifying files. You need to execute

sudo ant clean

sudo ant jar

Inside the

contiki/tools/cooja/apps/mobility folder

VANET Simulation on Cooja

I have simulated mobile nodes scenario for Vehicular Ad-Hoc Networks (VANETs)

Here is a youtube link:

http://youtu.be/iPolAZ-asaw

References

This Mobility Plugin is listed in the official Contiki wiki and can be found at these links

https://github.com/contiki-os/contiki/wiki

http://sourceforge.net/p/contikiprojects/code/HEAD/tree/sics.se/mobility/


Back to Contiki Tutorials

Edited by: Pratyush Deshpande