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.
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
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
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.
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.