TaskBaseプラグイン

1. 基本情報

プラグイン名:TaskBase
依存プラグイン:Grasp;PRM;AssemblyPlaner

2. 主な機能・説明

・TaskやActionのYAMLファイルを読み込んでその結果を再生します。
・Task中でのActionの順番や開始時間の変更や、ポーズロールからポーズシーケンスに変更を加えることで、対象のAcitionItemを変更することができます。
・オブジェクトの動きにあわせ、ロボットの動作モーションを生成します(PRMプラグイン使用)。
・AssemblyPlannerの入力となるAssemblyGraphのYAMLと各部品の相対位置関係情報が記述されたRelationYAMLを生成します。

3. 使用方法

3.1 Task, Action Yamlファイルの再生

3.2 Task, Action YamlファイルのChoreonoid上での修正

  • ActionItemの開始時間の設定
-プロパティのStart timeを変更することで、対象Actionの開始時間を設定することができます。
  • ポーズシーケンスの変更
-ポーズロールからポーズシーケンスに変更を加えると、対象のAcitionItemに変更が反映されます。ポーズの挿入はpossibleIkInterpolationLinksが設定されたYAMLファイルのモデルのみ可能です。

3.3 オブジェクトの動作生成

  • 物体モデルを2つロード(ファイル>読み込み>OpenHRPモデルファイル)
  • TaskBaseBar: NewAction
-左のitem viewからモデル一つをえらんで
-TaskBaseBar: SetMain
-モデル一つをえらんで
-TaskBaseBar: SetSub
  • subの方を動かしながら TaskBaseBar: SetActionState を繰り返し押す
  • subitem の下にアニメーションが生成されるので、選択すると動きが再生されます。

3.3 ロボットの動作生成

オブジェクトの動きにあわせ、ロボットの動作モーションを生成します。現段階では、ハンドの開閉は考慮していません。

  1. 対象ロボットのBodyItemを選択し、PlannerバーのSetRobotをクリックする。
  2. 動作を生成したいActionItemもしくはTaskItemを選択し、TaskBaseバーのPlanをクリックする。ロボットとオブジェクトのBodyItemの下に対象Action/Task名のPoseSeqItemが生成されます。
  3. サンプルプロジェクトはTaskBase/projects/cnoid/GearBox_robo.cnoidです。
  4. 動作が生成されるロボットのハンド座標系は、YAMLファイルのhandFrameに記載された座標系に一致するように指定されます。
[注意]
  • ActionItemから生成したオブジェクトのPoseSeqの軌道と、この機能で生成したオブジェクトのPoseSeqの軌道は、異なることがあります。これは、ハンドの軌道を求めてから、それに追随するようオブジェクトの軌道を求めているためです。
  • 生成されるモーションの時間(スタート時間、動作時間)は、ActionItemやTaskItemに設定された時間とは無関係に生成されます。そのため、生成したモーションとGraspPointの表示のタイミングがずれます。

3.4 AssemblyPlanner用ファイルexport機能

AssemblyPlannerの入力となるAssemblyGraphのYAMLと各部品の相対位置関係情報が記述されたRelationYAMLを生成します。
Task内の1つのActionが一対の部品の組み立て動作に対応していると仮定しています。

  1. exportするTaskItemを選択し、TaskBaseバーのExportAssemblyGraphをクリックする。
  2. ダイアログが表示されるので、パラメータ等を設定しExportボタンをクリックするとAssemblyGraph用のファイルが生成されます。
- Assembly Graph YAML
出力先ファイルパス。Select...ボタンで出力先を変更できます。
- Relation YAML
出力先ファイルパス。Select...ボタンで出力先を変更できます。
- include sequential order information
チェック状態で、TaskItemでのActionの実行順序と、AssemblyPlannerでの組み立て実行順序が一致するようになる情報が付加されます
- Time for approach vector calculation
組み付け時のアプローチベクトルの算出を、Actionのラストポーズから設定した秒数の間の情報で行います。

4. その他

  • GraspPointの表示
- Action YAMLがロードされたときにGraspPointsItemが対象オブジェクトに追加される。
- タイムバーの時間を変化させると把持している期間(YAMLファイル上のtypeがprehensionのポーズ)だけ、YAMLファイルのgraspPointsに指定された把持点がGraspPointItemとして表示される。
- GraspPointsItemのチェックをはずすと非表示になる。
  • リミテーション&既知のバグ
- ActionItemに関連づけられているポーズシーケンスを削除すると、アプリケーションが落ちます。
- 同一Actionを読み込むとポーズシーケンスの変更が反映されなくなります。