Code Monkey home page Code Monkey logo

iiwa_stack's Introduction

Stories in Ready

IIWA STACK

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

Current version : v-1.7.0
Build Status


Features

  • rosjava node running on the robot as a Sunrise RoboticApplication: supports ROS parameters, topics, services, actions
  • SmartServo integration
    • default: position control (joint or cartesian)
    • joint or cartesian impedance control reconfigurable through a ROS service
    • Sunrise tool can be attached to the flange in order to consider its mass for impedance control
  • monitor mode with gravity compensation, enabled through SmartPad keys
  • optional autonomous publication of joint_states topic
  • NTP synchronization if server is running on ROS master
  • full MoveIt! integration
  • Gazebo support

There are two RoboticApplications included in our software stack:

  • ROSMonitor does not perform any motion, but it constantly publishes the current state of the robot. This is suitable for procedures in the native teaching mode or in the custom-made gravity compensation mode.
  • ROSSmartServo allows to use the Sunrise SmartServo control modes to move the robot. The motion is fully reconfigurable at runtime, allowing to switch from any control strategy to any other, and to change the respective parameters at runtime through a ROS service.

Both applications look for ROS parameters at startup, including the ID of the Sunrise tool to attach to the flange. The IP of the robot is automatically discovered, while the ROS master IP should be set in the configuration file included in the project.

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, as we can use a ROS service to reconfigure the ServoMotion at runtime (e.g. stiffness of certain joints or around cartesian axes). Even if not real-time, we never incurred in any communication problems on our setup: the TCP topics could scale up to 4 KHz without compromising the ordering of the received packets. However, we also plan to offer FRI as a drop-in replacement for ROS-topic communication as soon as it is stable.

The state of the robot is published through a set of topics, and optionally through the joint_states topic for compatibility with the robot_state_publisher even when not using MoveIt!. The timestamps are correct if an NTP server runs on the ROS master, such that the system can also be used for latency-sensitive application.

The impedance control can be configured with respect to the stiffness and damping for each joint, or for each and about each direction in the cartesian space. It is possible to switch the control mode at runtime safely.


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.
Do you have problems? First, please check the FAQs. Issues or emails are always welcome.


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.

Contacts

Salvatore Virga : [email protected]
Marco Esposito : [email protected]

iiwa_stack's People

Contributors

cpaxton avatar marcoesposito1988 avatar oliverzettinig avatar salvovirga avatar tstoyanov avatar waffle-iron avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.