Skip to content
Drivers for the KUKA youBot robot.
C++ C Roff CMake
Branch: hydro-devel
Clone or download
Pull request Compare This branch is 8 commits ahead, 10 commits behind youbot:hydro-devel.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

youBot API

API documentation

The basic idea of the youBot API is to represent a robot system as a combination of decoupled functional sub-systems. That is, this API represents manipulator arm and base platform as the combination of several joints. At the same time each joint is defined as a combination of a motor and a gearbox.

There are three main classes in the youBot API that a user should be aware of.

  • YouBotManipulator class that represents youBot arm as the aggregation of several joints and a gripper
  • YouBotBase class that represents youBot base platform
  • YouBotJoint class that represents joints which make up both the manipulator and the base


System requirements:

  • Linux
  • Ethernet adapter
  • Root access to the Ethernet adapter

These libraries are required by the youBot API:

Installation with rosmake:

Install a minimal installation of ROS. (see

Clone the youBot API sources:

git clone git://

Add the repository folder to the ROS_PACKAGE_PATH environment variable.

Compile the youbot driver by typing:

rosmake youbot_driver --rosdep-install

Manual installation:

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. The console commands below are exemplary for a Ubuntu Linux. You will need a git version control software:

sudo apt-get install git git-core

Cmake a cross platform make is also necessary:

sudo apt-get install cmake

To download the youBot API sources type:

git clone git://

Install boost.

sudo apt-get install libboost-all-dev

Now you should be able to compile the youBot API.

cd <your_folder>/youbot_driver
mkdir build
cd build
cmake ..

The library will be generated in the folder ~/youbot_driver/lib.


The youBot API give you complete joint level access to the youBot joints. Every youBot joint is represented as a youbot::YouBotJoint class in the API. At this stage we make no difference if it is a base joint which powers a wheel or a manipulator joint.

By the classes youbot::YouBotBase and youbot::YouBotManipulator it is possible to get access to a youbot::YouBotJoint instance for a particular joint.

To set a setpoint or read some sensor values form the joints you have to use the youbot::JointData classes. Which could be for instance youbot::JointVelocitySetpoint or youbot::JointSensedCurrent.

To configure parameters of a joint, you have to use the youbot::JointParameter classes. Which could be for instance youbot::MaximumPositioningVelocity.

Example Programs

You can find example programs in the youbot_applications repository.


For more detailed information on class and methods please refer to the API documentation.

To generate the documentation from the source code type:

sudo apt-get install doxygen
cd build
make doc 

Run without sudo

The youBot Driver needs access to the raw ethernet device. Under Linux a normal user does not have access to the raw ethernet device. You can grand this capability to a program by the tool setcap. To install setcap use:

sudo apt-get install libcap2-bin

To provide a program with raw access to a ethernet device use: (replace the ./YouBot_KeyboardRemoteControl with your program.)

sudo setcap cap_net_raw+ep ./YouBot_KeyboardRemoteControl

This have to be done whenever the executable is created or replaces e.g. after building.


This software is published under a dual-license: GNU Lesser General Public License LGPL 2.1 and BSD license. The dual-license implies that users of this code may choose which terms they prefer.

You can’t perform that action at this time.