Recently added item(s) ×

You have no items in your quotation list.

Contact youBot Store

youBot ROS Inverse Kinematics

More Views

youBot ROS Inverse Kinematics
Item number:
Price on request


Short description

This software includes a ROS inverse kinematics stack adapted for the KUKA youBot. It provides a closed form IK, which only calculates the end configuration of the joints based on the actual position of the arm. The idea is based on the inverse kinematics of the Yasukawa Motoman L-3 from Craigs book.  The input data is a 6D-Pose consisting of the x-y-z coordinates and the roll-pitch-yaw orientation of the gripper. Here you find step-by-step instructions on how to get this ROS stack running on the youBot.

NOTE: There is no path planing provided yet. You only get the end configuration of the joints.

NOTE: This software was developed by Sven Schneider in a student project at Bonn-Rhine-Sieg University of Applied Sciences. It has not been integrated yet into the official youBot ROS repository, thus be aware that it is subject to change and any programs using it may require to be adapted accordingly.



This install guide assumes that ROS Wrapper for KUKA youBot API is already installed. If not follow this link for the installation instructions. The master branch is for electric and contains the latest extensions. The stacks consists of the following packages:

  • youbot_arm_kinematics: contains the inverse kinematics plugin
  • youbot_arm_navigation: starts the arm kinematic and the arm planner
  • youbot_joint_trajectory_action: converter from ROS to BRICS interface
  • youbot_manipulation_examples: contains some example applications

You can find the sources on github. Check out your version as follows:

$ git clone

After downloading the stack into one of your ROS known directories you have to execute rosmake.

$ rosmake youbot_arm_navigation


Usage in simulation

The arm navigation stack can be either used in simulation or on a real platform. First it is shown how to use in simulation. In the first terminal window start the youBot packages and the arm navigation by using following launch file:

$ roslaunch youbot_manipulation_examples bringup-sim.launch


Monitoring with rviz

rviz is a visualization tool that can be used for different purposes. In our case we use rviz to see, if the inverse kinematics finds a solution for our input data. From the terminal window start rviz:

$ rosrun rviz rviz

Go to the menu "Plugins" and activate the plugin "Motion Planning" (if not done automatically).  Now you can add a new display by clicking on the add button on the bottom left. Select "Planning" from the display type "Motion Planning". Than setup the configuration for the planning display as follows:

  • Visual Enabled -> Yes
  • Collision Enabled -> No
  • Robot Description -> /robot_description
  • Topic -> /ik_solution_display

Now you should see the transparent components of the youBot, which are concentrated at the point of origin. For testing the inverse kinematics within the visualization there is an example script with predefined coordinates.  Run following script:

$ rosrun youbot_manipulation_examples

Note:  Do NOT use this script with the real robot!


Usage for real robot

In case of arm navigation with a real KUKA youBot you need to use youbot_oodlStart the driver, the publisher and the arm navigation by using following launch file:

$ roslaunch youbot_manipulation_examples bringup.launch

Note: You must be aware that using this launch file could have an effect to the functionality of other software components of yours, because this launch file remaps some of the default topic names for the OODL driver.


Default settings

In the default setting the coordinate origin is located in the center of Axis 1 (arm_link_0). The tool center point is 130 mm far away from joint 4; see also picture above.


Demo Application for the real arm

There is a demo application for moving an arm with the inverse kinematics stack. You can find the applications  in the github repository mentioned above.

Execute one of the following commands to start an example:

# calculate an IK solution and move the arm
$ rosrun youbot_manipulation_examples

# calculates an IK solution without moving the arm
$ rosrun youbot_manipulation_examples



On the following links you can find more information about the IK in ROS