Details of MoveIt! to OMPL Pipeline
I have recently been trying to wrap my head around the pipeline between MoveIt! and OMPL.
Currently, my main issue is that I want to be able to take a state generated by OMPL and map it back to what it means in the context of the planning problem. This help me answer important questions such as "what configurations is the planner sampling?" and "why does one planner perform better/worse than the other?".
As stated in the documentation, "planners in OMPL are abstract; i.e. OMPL has no concept of a robot. Instead, MoveIt! configures OMPL and provides the back-end for OMPL to work with problems in Robotics."
From reading through the OMPL documentation, I understand that OMPL requires at least a StateSpace, StateValidityChecker, and a ControlSpace used in conjunction with the SimpleSetup object to plan.
On the other hand, it seems that MoveIt! generates a motion plan by sending a MotionPlanRequest through a pipeline that converts the problem into a form understandable to the planner. This pipeline is what I am interested in.
My questions are:
How does MoveIt convert a Motion Plan Request to a StateSpace, StateValidityChecker, and Control Space that OMPL needs?
Given that OMPL has no sense of what a robot is, how does MoveIt! abstract the problem down to a form solvable by OMPL?
Is there a way to gain some physical intuition on what the states explored by the planner are? Or are the intermediate plans stuck in a black box with only the solution reported by the planning plugin?
Some approaches I have taken are:
Look through the documentation and the tutorial on MoveIt! and OMPL. But it seems to be more focused on the high level implementation rather than how the interface works/
Look at the source code for the OMPL interface in Moveit!. The code is relatively complex and difficult to navigate, specifically, it is difficult to tell how the adapter plugins and the classes interact. Some guidance in understanding the code structure would also be greatly appreciated.
Thanks for your help!