[Documentation] [TitleIndex] [WordIndex

Only released in EOL distros:  

Package Summary

ROS Wrapper for the KUKA youBot Driver


This package provides a ROS wrapper for the Kuka youBot drivers. It includes a joint state publisher and a node called youbot_oodl which publishes to several topics and provides several services for communication with the youBot.

This package has been renamed to youbot_common.

Note that this documentation is not yet complete. Any areas with a question mark (?) are suspicious.



youbot_oodl is a ROS wrapper for the Kuka youBot drivers. It publishes to several topics and provides several services for communication with the youBot. It can initialize the base and one or two arms for communication, then send messages relaying the state of the arms and odometry data. It can receive velocity commands for the base and arms, and position commands for the arms.

Subscribed Topics

arm_1/arm_controller/follow_joint_trajectory/goal (control_msgs/FollowJointTrajectoryActionGoal) arm_1/arm_controller/position_command (brics_actuator/JointPositions) arm_1/arm_controller/velocity_command (brics_actuator/JointVelocities) cmd_vel (geometry_msgs/Twist) arm_1/gripper_controller/position_command (brics_actuator/JointPositions) arm_1/arm_controller/follow_joint_trajectory/cancel (actionlib_msgs/GoalID)

Published Topics

arm_1/arm_controller/follow_joint_trajectory/result (control_msgs/FollowJointTrajectoryActionResult) tf (tf/tfMessage) odom (nav_msgs/Odometry) diagnostics (diagnostic_msgs/DiagnosticArray) arm1/arm_controller/follow_joint_trajectory/feedback (control_msgs/FollowJointTrajectoryActionFeedback) joint_states (sensor_msgs/JointState) dashboard/platform_state (youbot_oodl/PowerBoardState) arm_1/arm_controller/follow_joint_trajectory/status (actionlib_msgs/GoalStatusArray)


base/switchOnMotors (std_srvs/Empty) base/switchOffMotors (std_srvs/Empty) arm_1/switchOnMotors (std_srvs/Empty) arm_1/switchOffMotors (std_srvs/Empty) arm_1/calibrate (std_srvs/Empty) reconnect (std_srvs/Empty) youbot_oodl/get_loggers (std_srvs/Empty) youbot_oodl/set_logger_level (std_srvs/Empty)


youBotHasBase (bool, default: true) youBotHasArms (bool, default: true) youBotDriverCycleFrequencyInHz (double, default: 50.0) trajectoryActionServerEnable (bool, default: true) trajectoryPositionGain (double, default: 5.0) trajectoryVelocityGain (double, default: 0.0) youBotBaseName (str, default: youbot-base) youBotArmName1 (str, default: youbot-manipulator) youBotArmName2 (str, default: youbot-manipulator-dual-arm)



Before installing the package, you must first ensure that youbot_driver is installed, and the environment variable YOUBOT_CONFIG_FOLDER_LOCATION is correctly set to point to the config folder as described in youbot_driver#Installation.


To install the debian package, do

sudo apt-get install ros-groovy-youbot-oodl 

The debian installation will set the capabilities of the executable by itself, so it will be ready to run immediately after installation.

From Source

To install from source, get the package from the git repository in the typical way. First, create a folder for the package within the src folder of your catkin workspace. cd to the folder, then do

git init
git pull http://github.com/WPI-RAIL/youbot_oodl.git

Go to the root of your catkin workspace and make it.


Then, go to the lib folder containing the youbot_oodl node and set its capabilities so that it will be able to communicate with ethercat.

cd devel/lib/youbot_oodl
sudo setcap cap_net_raw+ep youbot_oodl

You must do this every time you build a new youbot_oodl executable. Otherwise it will give you the following error:

[FATAL] [1370895928.057925761]: No socket connection on eth1
Execute as root
[ERROR] [1370895928.058248099]: Base "youbot-base" could not be initialized.
[ INFO] [1370895928.058573512]: Configuration file path: ,,,,,,/ros-groovy/src/youbot_driver/config/
[FATAL] [1370895928.059439557]: No socket connection on eth1
Execute as root
[ERROR] [1370895928.059770701]: Arm "youbot-manipulator" could not be initialized.
[ INFO] [1370895928.059985361]: System has 0 initialized arm(s).
[ WARN] [1370895928.060813883]: No socket connection on eth1
Execute as root

You will see a similar error if youbot_driver is configured with the wrong ethernet port. If that is the case, it will not say Execute as root. To fix this, go into youbot-ethercat.cfg in the config folder and change EthernetDevice to eth0 or eth1.

Using this Package

Open a terminal on the youBot, either through the OS on the youBot, or by ssh-ing into it. Before running youbot_oodl, make sure the base and arm are on and the arm is in the home configuration. There are notches on each joint to show the home position. When the notch on each side of the joint lines up, that joint is in the correct position. To run youbot_oodl, launch it like so:

roslaunch youbot_oodl youbot_oodl.launch

If all goes well, it should say Base is initialized. and System has 1 initialized arm(s)., among various other things.

There is also a launch file for a robot_state_publisher. This will publish the joint states of the arm. This is useful for visualizing the robot in rviz.

roslaunch youbot_oodl youbot_joint_state_publisher.launch



2020-01-18 13:21