OLSR

From PaparazziUAV
Jump to: navigation, search

The Optimized Link State Routing Protocol (OLSR) [1] is an IP routing protocol optimized for mobile ad hoc networks, which can also be used on other wireless ad hoc networks.

A free implementation of this protocol is called olsrd. It needs to run a daemon, both on the airborne and ground side, and is used on Linux based platforms (ARM or X86).

Installation

On the ground station

The olsrd package is available on debian/unbuntu systems.

 sudo apt-get install olsrd

Otherwise, follow installation instruction from http://www.olsr.org

On the airborne side

After getting the source code from http://www.olsr.org, it is possible cross-compile (or do an embedded compilation) of the code for your specific target.

If you intend to use olsrd on the AR.Drone2 using Paparazzi, the network configuration script can upload the necessary files and a pre-compiled binary of the program

 cd ${PAPARAZZI_SRC}/sw/tools/parrot
 ./ardrone2.py configure_network ardrone2_adhoc 192.168.1.1 ad-hoc-olsr

Say yes, if the script ask you to update wifi script or upload olsr files. You can have to complete options with:

 ./ardrone2.py configure_network --help

Usage

Airframe configuration

olsrd doesn't allow to use broadcast communication. So you have to disable this on the UAV, and also provide the address of the ground station. This is simply do by adding to your firmware section the following instructions (in an airframe based on ardrone2_raw.xml for instance):

  <configure name="MODEM_HOST" value="192.168.1.100"/>
  <configure name="MODEM_BROADCAST" value="FALSE"/>

Running olsrd

Once you have configured the ARDrone2 to use olsr it will automatically start to use it.

On other platforms or ground station, you first need to create an new ad-hoc connection with an address different than the one of the UAVs you are using (like 192.168.1.100 for above configuration). Then you need to start the daemon yourself (as root). You can use the default configuration or the file that comes with paparazzi in $(PAPARAZZI_HOME)/conf/system/olsrd, and maybe your wifi interface.

 sudo olsrd -f $(PAPARAZZI_HOME)/conf/system/olsrd/olsrd.conf -i wlan0

Now, if you are using several aircraft, the packets should be dynamically routed, providing natural relays.