Orocos

Revision as of 2018-04-20T22:39:33 by Kai (talk | contribs) (→‎Introduction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction


Orocos (http://orocos.org) - the Open Robot Control Software - is a software framework intended for use in robots (or computer-controlled machines in general) and provides a real-time messaging service between the networked components of a robot (e.g., sensors and actuators), a library of 'Orocos components' for various hardware, a kinematics library for simulation of the physical world of the robot, as well as a library for performing common Bayesian inference calculations.

The source code repository is hosted by GitHub.

The latest documentation is hosted by the University of Leuven.

Building the Toolchain as Standalone Libraries


RTT

First of all, download the latest version of Orocos RTT from https://github.com/orocos-toolchain/rtt.git

Then install Xerces and Doxygen if you haven't already:

sudo apt install libxerces-c-dev doxygen


Boost

For robo.fish software we use a specific version of Boost. Therefore the CMake build scripts of RTT need to be modified to pick up this version. Open the file check_depend.cmake in the config subfolder of the RTT root folder and replace

find_package(Boost 1.38 COMPONENTS filesystem system unit_test_framework thread serialization)

# Look for boost
if ( PLUGINS_ENABLE )
  if (NOT Boost_FILESYSTEM_FOUND OR NOT Boost_SYSTEM_FOUND)
    message(SEND_ERROR "Plugins require Boost Filesystem and System libraries, but they were not found.")
  endif()
  list(APPEND OROCOS-RTT_INCLUDE_DIRS ${Boost_FILESYSTEM_INCLUDE_DIRS} ${Boost_SYSTEM_INCLUDE_DIRS} ${Boost_SERIALIZATION_INCLUDE_DIRS})
  list(APPEND OROCOS-RTT_LIBRARIES ${Boost_FILESYSTEM_LIBRARIES} ${Boost_SYSTEM_LIBRARIES} ${Boost_SERIALIZATION_LIBRARIES}) 
endif()

with this

set (BOOST_ROOT "/usr/local/boost_1_67_0")
set (Boost_NO_SYSTEM_PATHS ON)
set (Boost_USE_MULTITHREADED ON)
set (Boost_USE_STATIC_LIBS OFF)
set (Boost_USE_STATIC_RUNTIME OFF)
set (BOOST_ALL_DYN_LINK ON)
find_package(Boost 1.67 COMPONENTS filesystem system unit_test_framework thread serialization)

# Look for boost
if ( PLUGINS_ENABLE )
  if (NOT Boost_FILESYSTEM_FOUND OR NOT Boost_SYSTEM_FOUND)
    message(SEND_ERROR "Plugins require Boost Filesystem and System libraries, but they were not found.")
  endif()
  list(APPEND OROCOS-RTT_INCLUDE_DIRS ${Boost_INCLUDE_DIRS})
  list(APPEND OROCOS-RTT_LIBRARIES ${Boost_FILESYSTEM_LIBRARIES} ${Boost_SYSTEM_LIBRARIES} ${Boost_SERIALIZATION_LIBRARIES}) 
endif()


After configuring Boost, continue by creating the build subfolder and running cmake from there:

mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/orocos -DCMAKE_CXX_FLAGS="-std=c++11" ..

where you can enable compilation for C++11 and set the installation folder prefix, which I assume to be /usr/local/orocos.

Then build and install the libraries via

sudo make -j4 install