ROS indigo metapackage that contains ROS packages to work with the KUKA LBR IIWA R800/R820 (7/14 Kg).
- obtain the current state of a KUKA IIWA LWR and command the robot using ROS Messages (either custom - like iiwa_msgs - or standard ones).
- make use of the functionalities of Moveit! with a KUKA IIWA LWR.
- Gazebo simulation.
The communication with the robot is implemented through ROS topics: a rosjava node runs in the context of a Sunrise application on the robot cabinet, which in turn performs a SmartServo motion. This approach allows great flexibility; we also plan to offer a service to reconfigure the ServoMotion at runtime (e.g. stiffness of certain joints or around cartesian axes). Though not real-time, we never incurred in any communication problems on our setup.
We also plan to offer FRI as a communication option as soon as it is stable.
The features and usage of the stack are described in depth on its WIKI.
We strongly suggest to have a look at the wiki to have a better understanding of the code, both for its use and its extension.
This repository takes inspiration from the work of :
- Centro E. Piaggio and their ROS interface for the KUKA LBR 4+
- Mohammad Khansari and his [IIWA-ROS communication inteface] 2
- Robert Krug and his IIWA URDF and Gazebo package
Most of the original files were completely refactored though.
This packages contained in this repository are :
- iiwa : the ROS metapackage
- iiwa_control: contains the joint and trajectory controllers used by MoveIt! and Gazebo.
- iiwa_description: URDF for both KUKA LBR IIWA R800 and R820.
- iiwa_gazebo: launch files to run a Gazebo simulation.
- iiwa_hw: implements the ROS hardware interface and the communication interface with the real robot (using iiwa_ros).
- iiwa_moveit: a MoveIt! configuration for controlling the robot (either a Gazebo simulation or a real one).
- iiwa_msgs: creates ROS messages to be used for communication with a real robot.
- iiwa_ros: an interface to send and receive messages defined in iiwa_msgs to and from a real robot.
- iiwa_ros_java: the ROSJava interface to use on SunriseApplications - it allows to send and receive messages defined in iiwa_msgs.