Git Product home page Git Product logo

iiwa_ros's Introduction

iiwa_ros

ROS Stack for KUKA's IIWA robots

  • Use the Fast Research Interface (FRI) to connect to the robot
  • Integration with ROS control
  • Gazebo integration with gravity compensation (similar to real robot)

Requirements

iiwa_ros requires several packages to be installed in order to work properly:

Dependencies

KUKA FRI (Private)

cd /source/directory
git clone https://github.com/epfl-lasa/kuka_fri.git
cd kuka_fri
# Apply SIMD patch:
wget https://gist.githubusercontent.com/matthias-mayr/0f947982474c1865aab825bd084e7a92/raw/244f1193bd30051ae625c8f29ed241855a59ee38/0001-Config-Disables-SIMD-march-native-by-default.patch
git am 0001-Config-Disables-SIMD-march-native-by-default.patch
# Build
./waf configure
./waf
sudo ./waf install

SpaceVecAlg

cd /source/directory
git clone --recursive https://github.com/jrl-umi3218/SpaceVecAlg.git
cd SpaceVecAlg
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_BINDING=OFF ..
make -j
sudo make install

To compile with SIMD flags (e.g. because you enabled it for robot_controllers and iiwa_ros), you can do cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-march=native -faligned-new" -DPYTHON_BINDING=OFF .. instead of the above. Also, instead of passing -DCMAKE_CXX_FLAGS="-march=native -faligned-new" for SpaceVecAlg, RBDyn and mc_rbdyn_urdf builds you can also set the CXXFLAGS environment variables and omit the option:

export CXXFLAGS="-march=native -faligned-new"

The same holds for RBDyn and mc_rbdyn_urdf.

RBDyn

cd /source/directory
git clone --recursive https://github.com/jrl-umi3218/RBDyn.git
cd RBDyn
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_BINDING=OFF ..
make -j
sudo make install

mc_rbdyn_urdf

cd /source/directory
git clone --recursive https://github.com/jrl-umi3218/mc_rbdyn_urdf.git
cd mc_rbdyn_urdf
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_BINDING=OFF ..
make -j
sudo make install

corrade

We are using a specific version of Corrade.

cd /source/directory
git clone https://github.com/mosra/corrade.git
cd corrade
git checkout 0d149ee9f26a6e35c30b1b44f281b272397842f5
mkdir build && cd build
cmake ..
make -j
sudo make install

robot_controllers

cd /source/directory
git clone https://github.com/epfl-lasa/robot_controllers.git
cd robot_controllers
mkdir build && cd build
cmake ..
make -j
sudo make install

Compilation

cd /path/to/ros_workspace
# source ros workspace
catkin_make

Sunrise Robot Application upload

You need a specific application to run on the robot side. 0. Make sure a Windows laptop is connected on the X66 Ethernet port and has IP 172.31.1.42 mask 255.255.0.0

  1. Create a new Sunrise project with Sunrise Workbench and setup an empty RobotApplication template
  2. Setup the safety configuration in SafetyConfiguration.sconf (example)
  3. Replace the empty template with the online app
  4. In StationSetup.cat, tab Software, active the FRI extension, push it to the robot with Installation and accept the reboot question
  5. Synchronise your new Sunrise project to the robot with icon Synchronize project
  6. On the Smartpad tablet, your app must be listed in [Applications] and you must also see a new [FRI] tab

Basic Usage

Bringup iiwa_driver

Control IIWA with FRI

  1. Make sure your Linux/ROS laptop is connected on the KONI Ethernet port and has IP 192.170.10.1 mask 255.255.255.0.
  2. On the Smartpad tablet:
  • Activate AUT mode (turn key right > AUT > key left)
  • In [Application], check yours in order to select it
  • Press the mechanical Play button ▶
  1. Within 10 seconds before the timeout, launch: roslaunch iiwa_driver iiwa_bringup.launch. This will connect to IIWA robot using FRI. 4 The Smartpad lets you select control mode and stiffness
  2. Check that everything works if /iiwa/joint_states is being published and reflects the actual robot state.
  3. The Smarpad'd [Application] tab must remain green. Otherwise you can press Play ▶ again to reconnect.

In case of a hard failure, unload the app by unchecking it in [Application] before retrying.

Gazebo Simulation

To launch Gazebo with IIWA

roslaunch iiwa_gazebo iiwa_gazebo.launch

Both of the above commands will launch IIWA in torque-control mode. To change the control mode (e.g., position-control), please edit the launch files to select the appropriate controller.

MoveIt planning

If everything looks in simulation or with the FRI driver, a next step might be to try out your robot with MoveIt.

Documentation

UNDER CONSTRUCTION

Contributing

iiwa_ros is being actively developed. Please see CONTRIBUTING for more on how to help.

Acknowledgements

The URDF description files are copied and refactored from iiwa_stack (by Salvatore Virga and Marco Esposito).

Authors/Maintainers

Other Contributors

Citing iiwa_ros

@software{iiwa2019github,
  author = {Chatzilygeroudis, Konstantinos and Mayr, Matthias and Fichera, Bernardo and Billard, Aude},
  title = {iiwa_ros: A ROS Stack for KUKA's IIWA robots using the Fast Research Interface},
  url = {http://github.com/epfl-lasa/iiwa_ros},
  year = {2019},
}

iiwa_ros's People

Contributors

costashatz avatar ymollard avatar matthias-mayr avatar nash169 avatar emielkemmm avatar athapoly avatar jimmydasilva avatar gergondet avatar guptavaibhav0 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.