Ask Your Question

Different Ways to Implement Custom Planners with MoveIt!

asked 2018-07-23 22:15:55 -0600

scchow gravatar image


I am currently in the process of implementing a custom planner for my robot arm through MoveIt!.

Looking at the documentation and at various forums, there seems to be two approaches.

  1. Install OMPL from source and add your custom planner to OMPL. Then change the corresponding MoveIt! OMPL package to recognize this new planner. [1] [2] [3] [4]
  2. Use the motion planning plugin to directly add a planner to MoveIt! [5] [6]

My questions about implementing these custom planners are:

  1. What are the pros and cons of each approach? Is there any advantage for using OMPL over directly implementing the planner into MoveIt! via a plugin?
  2. Is there any additional tutorial/documentation for the second approach, implementing a planner plugin? It seems to me that the few sources/tutorials about implementing custom planners refer to the OMPL approach. Am I missing other tutorials about creating MoveIt! planning plugins?
  3. Are there alternative approaches that I may have missed?

Thank you for taking the time to read and respond.








edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2018-07-26 05:25:10 -0600

mxch_18 gravatar image

Hello, I'm in the same process as you I believe; I'm trying to add a custom planner to MoveIt. I decided to use the first approach. Here are the two reasons I believe it is better to do so:

  • OMPL already provide you with low-level building blocks. Things like data structures, operators to work on them and also all the already existing planners. For example, you can think about the representation of state-space and the tools (operators) that are associated with it. What I'm trying to say is that if you use OMPL, you won't have to worry about / program all of these things, and you can directly program your planner.
  • There already is a plugin between MoveIt and OMPL. This seems obvious, but it means you don't have to spend (a lot of) time actually writing a new plugin (see blow), just code the planner.

As for you point n°2, I don't think there is any tutorial. But you can study the source code of the OMPL/MoveIt interface (located in ../src/moveit/moveit_planners/ompl/ompl_interface) and from there, create your own plugin for your planning library. I actually attempted to do so for the KrisLibrary, but I'm not good enough to do it. I believe even for an experienced programmer, this would take quite a long time.

As for point n°3, I am not aware of any other methods.

Hope this helps you.

Best, Maxens.

edit flag offensive delete link more

Your Answer


Add Answer

Question Tools



Asked: 2018-07-23 22:15:36 -0600

Seen: 905 times

Last updated: Jul 26 '18