Requirements and installation guide


The following table summarizes the requirements of the main parts of Orocos depending on the operating system where it will run.

Program / Library

Minimum Version


2.8 (all platforms)

GNU gcc / g++ compilers

4.3 or higher (Linux)

Boost C++ Library


Boost C++ Serialization Library

Required for the type system and the MQueue transport

Boost C++ Test Library

(Optional) For building the unit tests


(Optional) TAO can be used to set up communication between components in a networked environment.


(Optional) Omniorb is more robust and faster than TAO, but has less features.

Installation options

Orocos libraries can be installed in multiple ways, depending on your system and the components required.


The easiest way to get Orocos running in a GNU/Linux server is installing the software via pre-compiled packages. There are two main options:

  • ROS debian packages: Debian packages are distributed within the ROS ecosystem. packages are available for Ubuntu. Install the orocos toolchain with

    sudo apt-get install ros-${ROS_DISTRO}-orocos-toolchain

    The ros integration metapackage may also be interesting for ROS users:

    sudo apt-get install ros-${ROS_DISTRO}-rtt-ros-integration``

    The bayesian filtering library can be installed using:

    sudo apt-get install ros-${ROS_DISTRO}-bfl

    The kinematics and dynamics library package can be installed using:

    sudo apt-get install ros-${ROS_DISTRO}-orocos-kdl

    And the python bindings:

    sudo apt-get install ros-${ROS_DISTRO}-python-orocos-kdl
  • Docker: Docker images with Orocos preinstalled are distributed.

From source

For the users that want to run Orocos in a different system or need a specific set of components, the installation can be done from sources. There are two main methods to build and install Orocos.

The above mentioned dependencies can be installed with apt:

apt install -y build-essential cmake libboost-all-dev libxml-xpath-perl libboost-all-dev pkg-config libxml2-dev ruby-dev

If you want to built RTT with Corba support, you will also need the OmniORB packages:

apt install omniorb omniidl omniorb-idl omniorb-nameserver libomniorb4-dev

Using CMake (default way):

Clone the source repo from github:

git clone --recursive

Invoke the configure script:

./configure --prefix=<installation prefix> [<options>]

It’s just a wrapper around CMake and has the following options:

Available options:
  --prefix <prefix>        Installation prefix (-DCMAKE_INSTALL_PREFIX)
  --{en|dis}able-corba     Enable/Disable CORBA transport plugin (-DENABLE_CORBA)
  --omniorb                Select CORBA implementation OmniORB
  --tao                    Select CORBA implementation TAO

The install prefix defaults to /usr/local.

Compile and install using:

make install

Using ROS build tools (catkin)

Make sure you have ROS installed, see ROS installation instructions.

Create a workspace and clone the orocos toolchain:

mkdir -p ~/ws/underlay_isolated/src/orocos
cd ~/ws/underlay_isolated
git clone --recursive src/orocos/orocos_toolchain

Compile using catkin_make_isolated, you can specify the install space and whether you want to enable CORBA or not:

catkin_make_isolated \
    --install \
    --install-space /opt/orocos/${ROS_DISTRO} \
    --cmake-args \
        -DCMAKE_BUILD_TYPE=Release \

To set up your ros and orocos environments:

source /opt/ros/${ROS_DISTRO}/setup.bash
source /opt/orocos/${ROS_DISTRO}/setup.bash