固定されたデプスセンサでのばら積みピッキング

事前準備

  1. ext/graspPlugin/PickAndPlacePlanner/ManipController.cppを開き,
    24行目付近の#define OBJ_ENV_CONTACTをコメントアウトします。
  2. ビルドを行います。必要なプラグラインは
    Grasp;PRM;GeometryHandler;ObjectPlacePlanner;PickAndPlacePlanner;PCL:ConstraintIK;SoftFingerStability;GraspDataGenです。
    また、USE_DB_IN_PICKANDPLACEをONに設定しておきます。
  3. 把持データベースを作成しておきます。Graspプラグイン把持姿勢DB生成機能
  4. CVFH特徴量を用いて位置・姿勢推定を行う場合はPCLプラグイン位置・姿勢推定機能に記述されている事前準備を行っておきます。
  5. キャリブレーション行列ext/graspPlugin/PCL/calibtools/calibmat.txtを実験環境用に書き換えてください。

実行手順

  1. コレオノイドを起動し、プロジェクトファイルの作成/読込を行います。
    ※把持対象オブジェクトはwrlファイルではなくYAMLファイルであること(PCLプラグイン位置・姿勢推定機能を参照)
  2. 対象ロボットにSetRobot,対象オブジェクトにSetObjectをし、プレース場所のオブジェクトをSetEnvします。
  3. Ctrl+左クリックでプレース位置を指定します。
  4. 位置・姿勢推定を行います。使用方法はPCLプラグイン位置・姿勢推定機能の使用方法を参照)
  5. ピッキング動作計画を行います。ManipバーのStartボタンをクリックします。
    ダイアログが表示されるので、Cylinder grasping modeを選択しOKをクリックすると動作計画が実行され、
    メッセージウィンドウにSuccessと表示されれば成功です。

学習結果を用いたピッキング

学習結果の使用による違い

学習結果を用いると、ハンドのアプローチ上に障害物(ポイントクラウド)があっても識別器により、成功する確率が高ければ、解として選択されます。
学習結果を用いない場合は、ハンドのアプローチ上に障害物(ポイントクラウド)がない解を選択します。

学習結果を用いたピッキング使用方法

ばら積みピッキング学習(訓練)データ作成(固定デプスセンサ)で識別器ファイルを作成することで、学習データに基づいたピッキング計画が行えます。
使用方法は学習結果を使用しない時と同様に、上記実行手順を行います。
動作計画時に学習結果の使用するかどうかは、識別器ファイルの有無で判断されます。
識別器ファイルはext/graspPlugin/PickAndPlacePlanenr/learning_data/”ハンド名”_”オブジェクト名”_"識別器メソッド名"_model.txtです。
また、動作計画実行時にメッセージウィンドウの表示で学習結果を使用しているか判断できます。
 使用時:Start learning based bin picking planning...
 未使用時:Start bin picking planning....