Stack of Tasks tutorial

The slides of the presentation are here.

The cheat sheet for the software is here.

Note 1: There is a virtual box on the ftp (virtualbox/sot.vdi): ubuntu 12.04 (64bits) with ros fuerte. mdp: robohow.

Note 2: This sot is installed through the direct compilation of source code. There are plenty of reference to the install path of the source in the following instructions.

Please define the environment value SOT_ROOT to make them simpler.


Installation of the sources

External dependencies.

  • boost ( >= 1.40.0)
  • eigen ( >= 3.0)
  • python( 2.6 or 2.7)

Most of the sources of the stack of tasks are SoT independent. To get the latest version of the sources, please use the following script:

This folder provides three scripts installing all required debian packages for ubuntu 10 and ubuntu 12, namely the boost and python dependencies ( There are located in the folder script.

Also, for ubuntu 10.04, a script is provided to get and compile eigen3.1.2

Once those libraries installed, you can get and compile the sot sources: edit the ./ file and fill the missing information

export SOURCE_DIR=   # where the sources will be downloaded and compiled
export SOT_ROOT=     # where the sources will be installed

(Source repository and install path). Then run

./ pull
./ build # to build all the sources. Use the option rmcache to recreate the cmake cache file
Bridge ROS / SoT

In addition to the sources downloaded below, some ros packages need to be installed. The ros packages required are detailed in the sot.rosinstall file. Get the sources using:

rosinstall ~/source/folder/for/the/SoT/ sot.rosinstall /opt/ros/ros_version/

then, compile the two following packages:

rosmake romeo_description 
rosmake dynamic_graph_bridge

To compile dynamic_graph_bridge, you need

  • to have the package ros_realtime (get it using

sudo apt-get install ros-version-ros-control

  • to have SOT_ROOT/lib/pkgconfig in your PKG_CONFIG_PATH (if not, it will show the error jrl-dynamics not found).

Warning: The package dynamic_graph_bridge needs to be installed. The complete instruction are

rosmake dynamic_graph_bridge
roscd dynamic_graph_bridge/build
make -s install
cd -


ROS viewer start

In a first terminal, start roscore


In a second terminal, launch the command

roslaunch romeo_description sot_display.launch

This will load the romeo model, redirect the state_publisher in the namespace dynamic_graph (used by the SoT) and start rviz

script execution

Make sure that the following variables are in your environment path. Do not forget to replace the value SOT_ROOT by its real value

export PYTHONPATH=$PYTHONPATH:$SOT_ROOT/lib/python2.7/site-packages

In a third terminal, start the python script

cd ${SOURCE_DIR}/sot-dyninv/python/ros
python -i
> go

Alternate viewer : robot-viewer

robot-viewer is a viewer developed by the LAAS allowing to display a scene defined in VRML. It is written in python. Please note that it is not maintained anymore.

To install it, use the script sot-script/robot_viewer/ That will install simpleParse and tobotviewer. It also depends on python-opengl python-setuptools python-yaml, that are installed with the general installation scripts. You will be asked to customize the config file so as to define the repository of the romeo robot.

ROS viewer start

Please add the following lines in your .bashrc file:

export PYTHONPATH=$PYTHONPATH:$RVIEW_PATH/lib/python2.7/site-packages
alias rview=‘~/devel/robotviewer/bin/robotviewer –s XML-RPC’

To start the viewer, please type


Note that the viewer has to be started before the python scripts