Project

General

Profile

Procedure to install the Drone / GenoM / Fiacre-Tina-Hippo simulation experiment.

This procedure as been tested with Ubuntu 18.04. Your mileage may vary if you try it with other setup. As a guideline, we propose to install these software in the following directory:

  • System wide software are installed as usual, using apt-get install (this includes ROS, Gazebo, Rviz, etc).

  • all the robotic software available under robotpkg will be installed in ${HOME}/openrobots (but the source and build directory is still ${HOME}/robotpkg)

  • while all the other software (specific genom3 templates, genom3 components, etc) will be installed in ${HOME}/work.

Note All the GenoM3 modules we are using are in fact available under robotpkg, but we need to install them individually to synthesize the Fiacre formal model. Indeed, for this wee need the .gen file, and the corresponding codels library (which will be linked to the Fiacre model and Hippo engine).

The Gazebo Drone simulator

One needs to install gazebo on your machine. Unless you have a strong reason not to, use the robotpkg install procedure (see below).

One also needs to install two gazebo plugins given here for reference, but again, unless you have a strong reason not to, use the robotpkg install procedure (see below):

Installing robotpkg, Gazebo plugins and GenoM3 modules

Installing robotpkg

Follow the instructions on the robotpkg install page, which we sum up here:

First, make sure that you have the gnu-make software available on your system (version 3.81 or later required), as well as a working C compiler chain.

In short:

cd ${HOME}
git clone git://git.openrobots.org/robots/robotpkg
cd robotpkg/bootstrap
./bootstrap --prefix=${HOME}/openrobots

This will set up robotpkg to install new robotpkg package in ${HOME}/openrobots

At this point, you must modify your ${HOME}/.bashrc file to setup a number of environment variables. These environement variables are not all required for now, but they will be for the rest of the installation.

export PATH=${HOME}/work/bin:${HOME}/work/sbin:${HOME}/openrobots/sbin:${HOME}/openrobots/bin:${PATH}
export PKG_CONFIG_PATH=${HOME}/work/lib/pkgconfig:${HOME}/work/lib/pkgconfig/genom/pocolibs:${HOME}/openrobots/lib/pkgconfig:${PKG_CONFIG_PATH}

export PYTHONPATH=${HOME}/work/lib/python2.7/site-packages:${HOME}/openrobots/lib/python2.7/site-packages:${PYTHONPATH}

export GAZEBO_PLUGIN_PATH=${HOME}/openrobots/lib/gazebo:${GAZEBO_PLUGIN_PATH}
export GAZEBO_MODEL_PATH=${HOME}/openrobots/share/gazebo/models:${GAZEBO_MODEL_PATH}

export GENOM_TMPL_PATH=${HOME}/work/share/genom/site-templates:${HOME}/openrobots/share/genom/site-templates
Note In case you are installing the software in other directories than the one proposed above, you will have to modify these variables accordingly.
Warning You need to start a new terminal/shell for these variables to take effect.

Installing robotpkg packages

As a general rule, to install a robotpkg package, you must locate it in the ${HOME}/robotpkg directory, cd in this directory and then execute make update. Example, to install genom3, which is located in ${HOME}/robotpkg/architecture/genom3, you need to type:

cd ~/robotpkg/architecture/genom3
make update
Note Chances are that some system tools/programs may be missing. robotpkg will warn you and ask you to install them before proceeding. It will even give you the name of the package for your specific Linux distribution. For example if bison is missing, robotpkg will report it, and you need to install it with:
sudo apt-get install bison

Using robotpkg, you need to install: (for each of them, execute make update in the proper directory)

  • genom3-pocolibs ~/robotpkg/architecture/genom3-pocolibs (as a side effect of the dependencies, this will install genom3). This package includes the genom3 pocolibs templates.

  • eltclsh ~/robotpkg/shell/eltclsh

  • genomix ~/robotpkg/net/genomix

  • tcl-genomix ~/robotpkg/supervision/tcl-genomix. This package includes the tcl code to interact with genom3 modules from an eltclsh shell.

  • openrobots2-idl ~/robotpkg/interfaces/openrobots2-idl . This package includes a number of IDL definitions used in most of the modules bellow.

  • mrsim-gazebo ~/robotpkg/simulation/mrsim-gazebo

  • optitrack-gazebo ~/robotpkg/simulation/optitrack-gazebo

  • libkdtp ~/robotpkg/path/libkdtp

Installing the GenoM modules used for the Drone experiment

In case they are not already installed, install vcs and libudev-dev`with (with ubuntu 20.04 it is `python3-vcstool):

sudo apt install python-vcstool libudev-dev

All the remaining components are git cloned, compiled and installed in ~/work

mkdir -p ~/work/drone
cd ~/work/drone
git clone git://redmine.laas.fr/laas/users/felix/drone-v-v-install.git install

vcs will extract the five modules at once.

vcs import -w 1 <install/drone-genom3.repos

Still in ~/work/drone, execute the shell script. This will build all the modules and install them in ${HOME}/work.

./install/bootstrap.sh

Depending of your machine, you can get one or more cup of coffee.

For your information, for most of the modules, we are executing:

cd <module-dir>
autoreconf -vif
mkdir build
cd build
../configure --prefix=${HOME}/work --with-templates=pocolibs/server,pocolibs/client/c
make install

After this, you may need to install tmux (a unix terminal tool to handle asynchronous output in multiple panes and windows) if it is no already installed.

Try:

tmux -V

If you get an error, install it:

sudo apt-get install tmux

At this point, everything you need to run the regular Drone experiment has been installed, and you can move to the How to run the simulation experiment page, or How to run the experiment on a real drone page.