iiwa_ros requires several packages to be installed in order to work properly:
This repo can be omitted if the robot is only used in simulation.
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
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.
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
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
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
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
If a simulation-only setup is enough or you do not have access to KUKA FRI
, the robot driver compilation can be disabled with
touch /path/to/ros_workspace/iiwa_ros/iiwa_driver/CATKIN_IGNORE
Build the workspace:
cd /path/to/ros_workspace
# source ros workspace
catkin_make
You need a specific application to run on the robot side.
172.31.1.42
mask 255.255.0.0
SafetyConfiguration.sconf
(example)StationSetup.cat
, tab Software
, active the FRI extension, push it to the robot with Installation
and accept the reboot questionSynchronize project
Control IIWA with FRI
192.170.10.1
mask 255.255.255.0
.AUT
mode (turn key right > AUT > key left)[Application]
, check yours in order to select itPlay
button ▶roslaunch iiwa_driver iiwa_bringup.launch
. This will connect to IIWA robot using FRI.
4 The Smartpad lets you select control mode and stiffness/iiwa/joint_states
is being published and reflects the actual robot state.Play ▶
again to reconnect.In case of a hard failure, unload the app by unchecking it in [Application] before retrying.
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.
If everything looks in simulation or with the FRI driver, a next step might be to try out your robot with MoveIt.
iiwa_ros is being actively developed. Please see CONTRIBUTING for more on how to help.
The URDF description files are copied and refactored from iiwa_stack (by Salvatore Virga and Marco Esposito).
@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},
}