Install Tutorial

Note

This tutorial has only been tested with ROS Indigo. The source code is not public yet so only registered members can follow this tutorial.

Overview

This tutorial will run you through how to set a catkin workspace and to get the moveit_ompl_planning_interface package and the moveit_dual_arm meta-package to use the dual arm capability.

Pre-requisites

MoveIt! and ROS

  • If MoveIt! is not installed, follow the instructions from MoveIt! website: installing MoveIt!
  • Setup MoveIt! for your robot.

Creating the catkin workspace

If you already have a catkin workspace you can skip this step. To create your catkin workspace which extend opt/ros/indigo enter the following commands:

$ mkdir -p ws_moveit_da/src
$ catkin config --init --extend /opt/ros/indigo
$ catkin build

You can find more information about catkin here: http://catkin-tools.readthedocs.io/en/latest/cheat_sheet.html

Install the moveit_ompl_planning_interface package:

The moveit_ompl_planning_interface package was developped by Ryan Luna from KavrakiLab and allows to define a new planning context with a high control on the ompl components used for the planning.

To use it, just clone this package in your catkin workspace:

$ cd src/
$ git clone https://github.com/KavrakiLab/moveit_ompl_planning_interface.git

Then in the CMakeLists.txt file of this package you must

1) add the line: find_package(OMPL)
2) remove 'ompl' package from 'find_package(catkin REQUIRED COMPONENTS ompl...)'
3) remove 'ompl' package from 'catkin_package( ... CATKIN_DEPENDS ompl... )'

Install the moveit_dual_arm meta-package:

The moveit_dual_arm meta-package contains the following packages

  • dual_arm_manipulation: which implements the dual arm capability for MoveIt! as dual arm pick and place actions.
  • dual_arm_constraint_sampler: which implements a general constraint sampler able to generate robot states for both arms with or without a torso.
  • dual_arm_msgs: which describes the messages and actions used for the dual arm capability.
  • moveit_dual_arm_planning_tutorial: which describes this set of tutorials
  • moveit_ompl_dual_arm_planning_context: which uses the moveit_ompl_planning_interface package developed by Ryan Luna to define the dual arm planning context (state space, path simplifier, optimization objectives, ...)

To use it, you need to acces to the project and clone the code from the moveit_dual_arm_planning repository.

Additional components

YOYO:TODO: Better to link to the dedicated tutorial

In parallel we developed the planners_visual_tools package to display the state of the planner. To use it, just clone the code from the ‘planners_visual_tools’ repository. Then to enable this feature, go to the moveit_dual_arm_planning meta-package of your workspace, in the moveit_ompl_dual_arm_planning_context package open the CMakeLists.txt file and uncomment at the beginning:

add_definitions( -DUSE_PLANNERS_VISUAL_TOOLS)

The display of the exploration of the state space by the planner is intrusive, so we rewrite only some planners to offer this feature. These planners are currently the one with the “Custom” suffix in their name

RRTConnectCustom
TRRTConnectCustom
BiTRRTCustom

To finish

Once your workspace has all the required packages, go bask to its root and build:

$ cd ../
$ catkin build

What’s Next

The setup your robot tutorial

  • Now you need to setup the existing MoveIt! config package of your robot.