PRM plug-in

In this section, the operation of the PRM plug-in—an arm motion plug-in built into graspPlugin—is explained.

Basic Information

Plug-in name: PRM
Dependent plug-in: Grasp

Path Planner bar

The Path Planner bar starts with the title “= PathPlan =” at the center of the fifth level of the Choreonoid toolbar. Set the robot, object, and environment using the Planner bar (refer to the Operation of Grasp Plug-in), then click on the Start tool button to prepare the motion plan.


See Motion Plan Tutorial.

Program structure

  • The parameters for the path plan are set in SBLinterface.cpp, with the constructor of class SBL. Refer to the mpk manual for details on these parameters.
  • AdaptSegmentChecker is not supported at the present time.
  • The class for handling the model of OpenHRP, mpkRobots, is added to the original mpk to allow mpkConfigChecker to support the interference checker of OpenHRP.
  • For the aspect of change in the algorithm itself, an operation to reduce the number of milestones have been added to mpkPathSmoother.

Motion planning algorithm

The PRM plugin formulates a motion plan for the arm to reach the target stance the initial stance, while avoiding any interference from the environment. This plugin was ported to graspPlugin from the motion planning algorithm used in the Motion Planning Kit (MPK) [1], which was developed by Professor J.C. Latombe’s group and others at Stanford University. The algorithm itself uses the Single Query Bi-directional Lazy-collision checking (SBL) probabilistic roadmap planner—a derivative of PRM.


[2] G. Sanchez and J.C. Latombe, “A Single-Query Bi-Directional Probabilistic Roadmap Planner with Lazy CollisionChecking”, Int. Symposium on Robotics Research (ISRR'01), November 2001. Published in Robotics Research: The Tenth Int. Symp., R.A. Jarvis and A. Zelinsky (eds.), Springer Tracts in Advanced Robotics, Springer, pp. 403–417, 2003.