Rock


Introduction

Rock (http://rock-robotics.org) is based on the Orocos real-time communication framework and also adopts its toolchain and model for connectable components.

Installing on Ubuntu 16.04

As of December 2016, there is no painless installation path for Ubuntu 16.04. Here is what I found out so far.


Create a folder in which the Rock source code is going to live. Then fetch the boostrap script and run it.

wget http://www.rock-robotics.org/master/bootstrap.sh
sh bootstrap.sh

When asked which branch to use, choose the master branch. The current stable branch does not truly support Ubuntu 16.04, which uses the xenial repository, because the repository packages that the bootstrap script tries to install are obsolete.


When asked which prepackaged software autoproj should install automatically, I chose none and let the script run into dependency errors to find out what those are. Make sure the necessary environment variables are set before re-running the bootstrap script.


Ruby gems

Make sure that the environment variable GEM_HOME points to the .gems subdirectory within the Rock root directory. Then install the gems autobuild and autoproj.

source env.sh
gem install --no-user-install --no-format-executable --no-rdoc --no-ri autobuild -v '~>1.9.0'
gem install --no-user-install --no-format-executable --no-rdoc --no-ri autoproj -v '~>1.13.0'

There are newer versions of autoproj and autobuild but, as of this writing, they are not compatible with Rock master.

Python

The bootstrap script will create an entry in env.sh which sets PYTHONUSERBASE to the .pip subdirectory within the Rock root directory. This will cause all python modules installed by the bootstrap script to be installed under that subdirectory.


When asked which CORBA implementation RTT should use, choose the default, omniorb.


I had a problem getting the Ruby gem rice installed. Turns out you need to run the install command for rice as root and it will be installed in the central gems repository instead of the Rock gems repo.

sudo /usr/bin/ruby2.3 -S gem2.3 install --no-user-install --no-format-executable --no-rdoc --no-ri rice

After rice is installed continue building with

source env.sh; autoproj build

The build of orogen fails if a version of GCC other than 4.9 is installed. This is due to the choice of GCCXML as xml loader. Edit autoproj/init.rb and append the line

Autoproj.env_set 'TYPELIB_CXX_LOADER', 'castxml'

in order to select castxml instead. Note that autoproj/init.rb is only created when sh bootstrap.sh has been called before.


If you encounter the linkage error "cannot find -lippicv" then make sure OpenCV has been built with the cmake option -DWITH_IPP=ON such that the third-party static library libippicv.a is installed and linked against. The default location is /usr/local/share/OpenCV/3rdparty/lib/.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/share/OpenCV/3rdparty/lib

Also edit perception/frame_helper/CMakeLists.txt to add the same library path

LINK_DIRECTORIES( ${LINK_DIRECTORIES} /usr/local/share/OpenCV/3rdparty/lib )

Start a clean build by removing the autoproj folder and running the boostrap script:

rm -rf autoproj
sh bootstrap.sh

After bootstrapping new builds are started by

autoproj build