This repository provides a ros2_control based driver for kuka industrial robot arms using the RSI protocol.
NOTE
This driver was tested on a limited set of robots (see Tested with section), but has to be considered experimental. In particular, the chosen communication structure should be more robust against disturbances, but is not thoroughly vetted.
Jazzy | Rolling |
---|---|
|
|
kuka_rsi_driver
: Theros2_control
hardware interface for communicating with the robot.kuka_rsi_controllers
: Controllers for interfacing with vendor-specific functions of the robot.kuka_rsi_interfaces
: Interface definitions used inkuka_rsi_controllers
.
Perform the following steps to get started with this driver:
-
Clone and build this driver In addition to this driver, you need to find a robot description for the specific robot model you are using. If you are lucky, somebody already created one and shared it e.g. through kuka_experimental. This description lists the steps for a KR 5 Arc robot.
sudo apt install python3-vcstool git clone https://github.com/fzi-forschungszentrum-informatik/kuka_rsi_driver.git src/kuka_rsi_driver git clone https://github.com/StoglRobotics-forks/kuka_experimental.git -b rolling_overview src/kuka_experimental vcs import src --skip-existing --input src/kuka_rsi_driver/kuka_rsi_driver.${ROS_DISTRO}.repos rosdep update rosdep install --from-paths src --ignore-src -ry colcon build --cmake-args -DCMAKE_BUILD_TYPE=RelWithDebInfo
-
Setup the robot Some configuration of the robot is required. The required steps are described in setup documentation, please follow them carefully and verify you can reach the configured robot IP address from your control PC.
If you want to test the driver without real hardware, a small simulator is provided that can be used instead.
-
Start the driver
ros2 launch kuka_rsi_driver test_bringup.launch.py description_package:=kuka_kr5_support description_macro_file:=kr5_arc_macro.xacro macro_name:=kuka_kr5_arc rsi_listen_ip:=<Your host IP address>
If you test the robot in simulation, set
rsi_listen_ip
to127.0.0.1
and start the simulator:ros2 run kuka_rsi_driver simulator --host-ip 127.0.0.1
Take a look at the documentation for information on how to get started with this driver.
This driver provides the following features:
- Joint position control and feedback.
- Publishing of joint torques.
- Publishing of Cartesian TCP pose.
- Speed scaling using slider on teach pendant (see KRL
$OV_PRO
variable). - Robust fully asynchronous real-time communication.
So far, the driver was tested with the following robot models:
- Agilus KR 10 R900 sixx (KR C4 Controller)
- IONTEC KR50 R2100 (KR C5 Controller)
Development of this driver was in parts supported by the project "GANResilRob - Generative Adversarial Networks and Semantics for Resilient, Flexible Production Robots", funded by the German Federal Ministry for Economic Affairs and Climate Action.