PRM プラグイン解説

graspPlugin が内蔵しているアームの動作計画プラグインである PRM プラグインは、環境との干渉を回避しながらアームを初期姿勢から目標姿勢まで到達させるための動作計画を行います。以下、PRMプラグイン の操作について解説します。

基本情報

  • プラグイン名: PRM
  • 依存プラグイン: Grasp

パスプランバー

  • Choreonoid のツールバーの五段めの中央の、=PathPlan=のタイトルで始まる部分がパスプランバーです。プランナーバーでロボット、対象物、環境を設定(Grasp プラグイン解説を参照)したあと、Startツールボタンをクリックすると動作計画を作成します。
  • (バージョン1.2以降)setStartStatesetEndStateツールボタンを押すと、それぞれ探索の初期姿勢と終端姿勢を明示的に指定できます。

動作計画の作成(例)

動作計画作成チュートリアル をご参照ください。

プログラムについて

  • 軌道計画のパラメータについては、SBLinterface.cppにおいてクラスSBLのコンストラクタで設定するようになっています。これらのパラメータについての詳細はmpkのマニュアルを参照してください。
  • 現時点でAdaptSegmentCheckerには対応していません。
  • オリジナルのmpkにOpenHRPのモデルを扱うクラスmpkRobotsを追加し、オリジナルのmpkConfigCheckerをOpenHRPの干渉チェッカに対応させています。
  • mpkPathSmootherにマイルストーンの数を減らすような操作を加えています。

動作計画アルゴリズム

このプラグインはスタンフォード大のJ.C. Latombe教授らのグループで開発されたMotion Planning Kit (MPK) [1]で使われている動作計画アルゴリズムを graspPlugin プラグインとしてポーティングしたものです。アルゴリズム自体はPRMの派生版である SBL(Single-Query Bi-directional Lazy-collision checking) probabilistic roadmap planner を用いています。詳細は下記リファレンスを参照してください.

References

[1] http://robotics.stanford.edu/~mitul/mpk/
[2] G. Sanchez and J.C. Latombe, "A Single-Query Bi-Directional Probabilistic Roadmap Planner with Lazy Collision Checking", 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.
http://robotics.stanford.edu/~latombe/papers/isrr01/spinger/latombe.pdf