elion icon indicating copy to clipboard operation
elion copied to clipboard

Constrained planning in MoveIt using OMPL's constrained planning interface

CI

elion

Constrained planning in MoveIt using OMPL's constrained planning interface

Refactored version of: https://github.com/JeroenDM/moveit_constrained_planning_plugin

Work in progress.

API documentation for elion_planner package.

Google sheet with an overview of planning problems I tried to solve with this package.

Build instructions

Start with the usual commands:

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/JeroenDM/elion.git
rosdep install --from-paths . --ignore-src

and add the unreleased test dependencies using vcstool.

vcs import < elion/test_dependencies.repos

At the moment I'm mostly building in Debug mode:

cd ..
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Debug
catkin build
source devel/setup.bash

Note: for the examples below, I recommend building in release mode. Especially planning with collision objects is slow (+100 seconds) at the moment. In debug mode you need a lot of patience to get a solution :)

catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release

Run examples

Planning problems are configured through a json file. Examples are present in the folder elion_examples/config/.... To run an example, first launch the MoveIt configuration for a specific robot. All examples with a name panda_xxxx.json use the panda robot. The examples package contains a specific launch file to properly configure Rviz.

roslaunch elion_examples panda_example.launch 

Examples with a name kuka_xxxx.json use the Kuka KR5 Arc robot. The configuration is available in kuka_test_resources.

roslaunch kuka_kr5_moveit_config demo.launch 

When Rviz is visible and the move group node is ready, you can run an example, for example panda_pos_con.json does some simple planning with position constraints:

rosrun elion_examples elion_run_example panda_1.json

panda_example

Run tests

Build the workspace again with the tests argument added.

catkin build --make-args tests

elion_planner has a rostest that initialized different constriants for the panda robot:

rostest elion_planner test_constraints_panda.rostest

Some basic tests exist to check the conversion of an angular velocity vector to roll, pitch, way velocity. I like to run this test directly from the target in the devel space to get readable output.

./devel/lib/elion_planner/test_elion_conversions