GeometryHandlerプラグイン

基本情報

プラグイン名: GeometryHandler
依存プラグイン: Grasp

使用方法1: 把持計画に用いる対象物のパラメータファイルの作成

PickAndPlacePlanner(旧GripperManipulation)プラグインで実装されている把持計画において各対象物に対して必要なパラメータファイルを生成する方法を説明します。

1) graspPlugin/GeometryHandler/project/finger.cnoidをプロジェクトファイルとしてchoreonoidを起動します。
2) 対象物のVRMLモデルを選択し、setObjectをします。ここで、対象物の位置・姿勢(RPY)は全て0にしてください。
3) 対象物の把持させたい部分にカーソルを置いた状態でコントロールキーを押しながらマウスを左クリックします。すると、対象物の把持させたい場所に矢印が立ちます。
4) 対象物にカーソルが置いてある状態でFキーを押します。この操作でクラスタの部分が他の部分と色が変わります。
5) 対象物の把持させたい場所を変えながら、3) 4)を繰り返します。
6) 対象物にカーソルが置いてある状態でGキーを押します。これにより、yaml形式のパラメータファイルがchoreonoidを実行したディレクトリに生成されますので、これを適当なディレクトリ(例えばgraspPlugin/PickAndPlacePlanner/PRMなど)に置きます。
7) 把持計画の際、プロジェクトファイルでは、vrmlを直接指定するのではなく、このyamlファイルを指定します。
8) なお、論文中Algorithm 1のStep1におけるクラスタに含まれる三角形の数を増やすにはHキー、減らすにはIキーを用います。またインテンションパラメータはデフォルトでは1ですが、これを増やすにはJキーを使ってください。

アルゴリズムは参考文献[1]を参考にしてください。

使用方法2: 対象物の配置計画のためのパラメータファイルの生成

ObjectPlacePlannerプラグインで実装されている対象物の配置計画において、対象物と環境の両方に対して必要なパラメータファイルを生成する方法を説明します。
対象物と環境のポリゴンモデルに対して以下の操作を実行します。

1) graspPlugin/GeometryHandler/project/finger.cnoidをプロジェクトファイルとしてchoreonoidを起動します。
2) VRMLモデルを選択し、setObjectをします。
4) モデルにカーソルが置いてある状態でKキーを押します。これにより、VRMLモデルの表面がクラスタリングされ、クラスタが色付けられた状態で表示されます。
5) モデル上で対象物と環境を接触させたい位置にカーソルを持っていき、コントロールキーを押した状態でマウスを左クリックします。これによりモデル上に矢印が立ちます。
6) モデルにカーソルがある状態でJキーを押します。これにより、5)で指定した位置が記憶されます。
7) 5)6)の操作を繰り返します。
8) モデルにカーソルがある状態でGキーを押します。これによりchoreonoidを実行したディレクトリにパラメータファイルが生成されます。
9) 環境モデルの場合、生成されたファイルをそのままgraspPlugin/PickAndPlacePlanner/PRMなどのディレクトリに置きます。対象物モデルの場合、1で生成されたパラメータファイルに対して2で生成された内容をマージします。このマージは現在は手作業で行っています。

アルゴリズムは参考文献[3]を参考にしてください。

なお、パラメータにはクラスタの境界を定義しているものがあります。これは、ポリゴンモデルに破れが無く、全ての三角形が左回りに定義されている必要があります。これが満たされていないポリゴンモデルを使う場合は、GeometryHandle.hにおいて、HEURISTICS_FOR_PCLの定義のコメントを活かしてください。

使用方法3:組み立て作業計画

実行コマンド

 % ~/src/Choreonoid$ bin/choreonoid extplugin/graspPlugin/GeometryHandler/project/assemble.cnoid 

コマンド:
マウスを対象物に置いた状態で
L: クラスタ生成
N: シミュレーション結果を基に、接触点軌跡を表示
O: グラフの構築
を実行する。

特に、Lを押すと対象物がクラスタ毎に違った色で表示される。なお、上記コマンドは、GeometryHandlerPlugin.cppに書いてある。

choreonoid1.5でのインターフェース変更

chorenoid1.4までは対象物の上でキーを押して操作を行っていたものが、chorenoid1.5からは対象物上で右クリックをしポップアップメニューを表示し、その中のGeometryのメニューを選択し、操作するように変更しました。
chorenoid1.4までのキーとchorenoid1.5のメニューの対応関係を以下に示します。
 [X]:LimitedClustering
 [B]:CreateBoundaryData
 [C]:BinaryClustering
 [V]:CreateDepartData
 [S]:StepClustering
 [R]:Rest
 [M]:Quadrical Clustering
 [D]:Plan Clustering(old)
 [F]:Find Parallel Plane Pair
 [G]:Output Parallel Plane Pair
 [H]:Increase Seed Size
 [I]:Decrease Seed Size
 [J]:Set Intention Parameter
 [K]:Plane Clustering (new)
 [L]:Plane Clustering for Assembly
 [N]:Show Contact Locus
 [O]: Generate Assembly Graph

参考文献

[1] K. Harada, T. Tsuji, K. Nagata, N. Yamanobe, K. Maruyama, A. Nakamura, and Y. Kawai, "Grasp Planning for Parallel Grippers with Flexibility on its Grasping Surface", Proc. of IEEE Int. Conf. on Robotics and Biomimetics,pp.1540-1546、2011/12
[2] K. Harada et al, "Pick and Place Planning for Dual Arm Manipulators", Proc. IEEE Int. Conf. on Robotics and Automation, 2012/5
[3] K.Harada et al., "Object Placement Planner for Robotic Pick and Place Tasks", Proc. of IEEE/RSJ Int. Conf. on Intelligent Robots and Systems (IROS '12), 2012