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上での修正
- -プロパティのStart timeを変更することで、対象Actionの開始時間を設定することができます。
- -ポーズロールからポーズシーケンスに変更を加えると、対象のAcitionItemに変更が反映されます。ポーズの挿入はpossibleIkInterpolationLinksが設定されたYAMLファイルのモデルのみ可能です。
3.3 オブジェクトの動作生成
- 物体モデルを2つロード(ファイル>読み込み>OpenHRPモデルファイル)
- TaskBaseBar: NewAction
- -左のitem viewからモデル一つをえらんで
- -TaskBaseBar: SetMain
- -モデル一つをえらんで
- -TaskBaseBar: SetSub
- subの方を動かしながら TaskBaseBar: SetActionState を繰り返し押す
- subitem の下にアニメーションが生成されるので、選択すると動きが再生されます。
3.3 ロボットの動作生成
オブジェクトの動きにあわせ、ロボットの動作モーションを生成します。現段階では、ハンドの開閉は考慮していません。
- 対象ロボットのBodyItemを選択し、PlannerバーのSetRobotをクリックする。
- 動作を生成したいActionItemもしくはTaskItemを選択し、TaskBaseバーのPlanをクリックする。ロボットとオブジェクトのBodyItemの下に対象Action/Task名のPoseSeqItemが生成されます。
- サンプルプロジェクトはTaskBase/projects/cnoid/GearBox_robo.cnoidです。
- 動作が生成されるロボットのハンド座標系は、YAMLファイルのhandFrameに記載された座標系に一致するように指定されます。
[注意]
- ActionItemから生成したオブジェクトのPoseSeqの軌道と、この機能で生成したオブジェクトのPoseSeqの軌道は、異なることがあります。これは、ハンドの軌道を求めてから、それに追随するようオブジェクトの軌道を求めているためです。
- 生成されるモーションの時間(スタート時間、動作時間)は、ActionItemやTaskItemに設定された時間とは無関係に生成されます。そのため、生成したモーションとGraspPointの表示のタイミングがずれます。
3.4 AssemblyPlanner用ファイルexport機能
AssemblyPlannerの入力となるAssemblyGraphのYAMLと各部品の相対位置関係情報が記述されたRelationYAMLを生成します。
Task内の1つのActionが一対の部品の組み立て動作に対応していると仮定しています。
- exportするTaskItemを選択し、TaskBaseバーのExportAssemblyGraphをクリックする。
- ダイアログが表示されるので、パラメータ等を設定しExportボタンをクリックするとAssemblyGraph用のファイルが生成されます。
- - Assembly Graph YAML
- 出力先ファイルパス。Select...ボタンで出力先を変更できます。
- - Relation YAML
- 出力先ファイルパス。Select...ボタンで出力先を変更できます。
- - include sequential order information
- チェック状態で、TaskItemでのActionの実行順序と、AssemblyPlannerでの組み立て実行順序が一致するようになる情報が付加されます
- - Time for approach vector calculation
- 組み付け時のアプローチベクトルの算出を、Actionのラストポーズから設定した秒数の間の情報で行います。
4. その他
- - Action YAMLがロードされたときにGraspPointsItemが対象オブジェクトに追加される。
- - タイムバーの時間を変化させると把持している期間(YAMLファイル上のtypeがprehensionのポーズ)だけ、YAMLファイルのgraspPointsに指定された把持点がGraspPointItemとして表示される。
- - GraspPointsItemのチェックをはずすと非表示になる。
- - ActionItemに関連づけられているポーズシーケンスを削除すると、アプリケーションが落ちます。
- - 同一Actionを読み込むとポーズシーケンスの変更が反映されなくなります。