Skip to content

IFL-CAMP/iiwa_stack

Repository files navigation

IIWA STACK

ROS indigo metapackage that contains ROS packages to work with the KUKA LBR IIWA R800/R820 (7/14 Kg).


Features

  • 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.


Usage

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.


Acknowledgements

This repository takes inspiration from the work of :

Most of the original files were completely refactored though.


Overview

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.