Project

General

Profile

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

This procedure as been tested with Ubuntu 18.04 and ROS Melodic. 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.

Installing the Robotnik simulator (and ROS).

The simulator can be installed following the instructions on this link: https://osmosis.gitlab.io/experiment/simulation.html. The only difference, is that we propose to install it in the ${HOME}/work/osmosis_ws ROS catkin workspace.

  • First install ROS and the package needed by the simulator:

sudo apt install ros-melodic-desktop-full \
  ros-melodic-gazebo-ros ros-melodic-gazebo-plugins \
  ros-melodic-costmap-2d ros-melodic-robot-localization \
  ros-melodic-mavros-msgs ros-melodic-gmapping \
  ros-melodic-navigation ros-melodic-xacro \
  ros-melodic-hector-gazebo-plugins \
  ros-melodic-teb-local-planner \
  ros-melodic-ros-controllers \
  ros-melodic-jsk-rviz-plugins \
  python-vcstool libsdl2-dev asciidoctor
  • Then create a ROS workspace for the simulation, and clone the necessary repositories:

source /opt/ros/melodic/setup.bash
mkdir -p ${HOME}/work/osmosis_ws/src
cd ${HOME}/work/osmosis_ws/src
git clone https://gitlab.com/osmosis/osmosis_simulation
vcs import < osmosis_simulation/osmosis.repos
cd ..
catkin_make
Note Unless it is already the case, it is probably a good idea to put the source /opt/ros/melodic/setup.bash in your .bashrc so that ROS is configured as soon as you log in.
  • Launch the simulation

cd ${HOME}/work/osmosis_ws
source devel/setup.bash
roslaunch osmosis_simulation summit_xl_simulation.launch
Note The initial position of the robot is not in 0, 0 (at the center of the map), but near the building on the right.
  • Controlling the robot

You can test the simulation by sending direct commands to the robot using ROS. For instance, in a terminal:

cd ${HOME}/work/osmosis_ws
source devel/setup.bash
rostopic pub /summit_xl_a/robotnik_base_control/cmd_vel geometry_msgs/Twist '[0.2, 0.0, 0.0]' '[0.0, 0.0, -0.1]'

The robot should move forward 0.2 m/s circling clockwise -0.1 rad/s.

Installing robotpkg, GenoM3, etc

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 (copy paste the following code after the source /opt/ros/melodic/setup.bash you added earlier). 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 ROS_PACKAGE_PATH=${HOME}/work/share:${HOME}/openrobots/share:${ROS_PACKAGE_PATH}
export PYTHONPATH=${HOME}/work/lib/python2.7/site-packages:${HOME}/openrobots/lib/python2.7/site-packages:${PYTHONPATH}

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.

  • genom3-ros ~/robotpkg/architecture/genom3-ros . This package includes the genom3 ROS templates.

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

  • 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.

Installing the GenoM modules used for the OSMOSIS navigation

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

cd ~/work

Installing Utilities

Most of the needed GenoM modules use the following two utility packages:

  • felix-idl which defines some specific IDL data structures shared by the modules. Some of these structure masquerade ROS msg to be then displayed in Rviz.

git clone git://redmine.laas.fr/laas/users/felix/felix-idl.git
cd felix-idl
autoreconf -vif
mkdir build
cd build
../configure --prefix=${HOME}/work
make install
  • felix-g3utils which defines some macros and log functions used in writting codels.

git clone  git://redmine.laas.fr/laas/users/felix/felix-g3utils.git
cd felix-g3utils
autoreconf -vif
mkdir build
cd build
../configure --prefix=${HOME}/work
make install

Installing OSMOSIS Components

All the remaining modules are installed in ~/work/osmosis. Most of these modules are also used in the Minnie experiment, and an overall description can be found here: https://redmine.laas.fr/projects/minnie/gollum/modules

mkdir -p ${HOME}/work/osmosis
cd ~/work/osmosis
git clone git://redmine.laas.fr/laas/users/felix/osmosis-install install

vcs will extract the nine modules at once (this may take a while).

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

Still in ~/work/osmosis, 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 OSMOSIS experiment has been installed, and you can move to the How to run the experiment page.