Skip to content

Instantly share code, notes, and snippets.

@JeroenDM
Last active June 2, 2022 14:20
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save JeroenDM/426e3a7e083049295bbcb660c9a98e63 to your computer and use it in GitHub Desktop.
Save JeroenDM/426e3a7e083049295bbcb660c9a98e63 to your computer and use it in GitHub Desktop.
Summary Google Summer of Code 2020: Cartesian motion planning with constraints in MoveIt

Short description

The main goal was to extend MoveIt's functionallity for path planning with task space path constraints. Specifically, extend the current OMPL interface with OMPL's constrained planning capabilities.

Work

Full discussion

moveit/moveit#2092

Preliminary work

I started with creating a pure OMPL example for constrained planning based on the OMPL tutorials: https://github.com/JeroenDM/ompl_constrained_planning_in_se3

Preliminary tests with OMPL's constrained planning capabilities in a plugin outside the MoveIt repository. Here I showed planning with box constraints, orientation constraints and a combination of the two was feasible with this planning approach.

https://github.com/JeroenDM/elion

Merged pull requests

I fixed a tricky bug in the current interface, removed some dead code, and did some minor cleanup pull requests.

  • #2211 Add named logging with LOGNAME to OMPL interface
  • #2214 Remove dead code from ompl interface (related to subspaces)
  • #2215 Fix mismatch between docstring and code in robot_state.h
  • #2226 OMPL interface: add documentation
  • 2227 OMPL interface: fix / ignore clang-tidy warnings
  • #2239 fix memcpy bug in copyJointToOMPLState in ompl interface
  • #2279 fix some spelling errors in the ompl interface
  • #492 Creating MoveIt Plugins tutorial: fix namespace collision

To be merged pull requests:

While I quickly reached a working prototype of the new planning approach outside MoveIt, finding a clean way to integrate the new planning approach in the existing interface was challanging. The final pull request is the result of several tries and many discussions. For a complete log of these discussions, see issue #2092 in the MoveIt repository.

  • #2273 OMPL Constrained State Space Planning (only position constraints) (Edit: it has been merged in moveit2 in February 2021, I still want to get it merged in moveit1 after my PhD.)

  • #518 Tutorial on using OMPL's Constrained State Space

I have the code for orientation constraints also ready, but I'm waiting for #2273 to be merged and issue #89 in moveit_msgs to be resolved before creating the pull request for this code.

Future work

Simple box constraints and orientation constraints are only the tip of the iceberg. Once the integration is complete, I hope to see users adding new types of constraints for different applications.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment