ここではMotionFileで使えるコマンドそれぞれについてまとめる。
左手用コマンドはRARM, RHANDをLARM, LHANDにする
※時刻の単位はsec, 位置の単位はm, 姿勢の単位はdegree
ロボットのVRMLファイルで定義したジョイント達の、どこが腕や手にあたるかをYAMLファイルで記述する。
0 HEAD_FORWARD
1 PAUSE
動作内容)
ロボットの全関節角を指定した角度にする。
書式)開始時刻 終了時刻 JOINT_ABS (ロボットの関節数分の関節角度(degree))
例)
0 1 JOINT_ABS 0 10 20 5 20 -145 30 0 -15 0 0 -115 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
動作内容)
全関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 JOINT_REL (ロボットの関節数分の関節角度の増分(degree))
例)
1 2 JOINT_REL 0 10 10 5 -60 30 30 15 30 10 10 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
動作内容)
手先を指定した位置・姿勢(world座標)に動かす。
書式)開始時刻 終了時刻 RARM_XYZ_ABS x座標 y座標 z座標 roll pitch yaw
例)
0 1 LARM_XYZ_ABS -0.12 0.3 0.274 145 -60 -170
動作内容)
手先を現在の位置・姿勢から指定した距離・角度分動かす。
書式)開始時刻 終了時刻 RARM_XYZ_REL x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分
例)
1 2 LARM_XYZ_REL 0.1 -0.05 0.05 90 0 0
動作内容)
手先を指定した位置・姿勢(world座標)に動かす。
ARM_XYZ_ABSとの違いは、所要時間と目標位置までの線分を分割数(最後のパラメータ)等分し、各区間ごとにARM_XYZ_ABSの操作を行う。
ARM_XYZ_ABSでは始点と終点の関節角の間を配位空間で補間するため、実空間での軌道は直線にならない。
これが影響する場合に細かく分割して軌道を直線に近づける。
書式)開始時刻 終了時刻 RARM_LINEAR_ABS x座標 y座標 z座標 roll pitch yaw 分割数
例)
0 1 LARM_LINEAR_ABS -0.15 -0.23 0.7 0 10 17 100
1 2 LARM_LINEAR_REL 0 0.30 0 0 0 0 100
動作内容)
腕の関節角を指定した角度にする。
最初のパラメータはIKを解くベースリンクの角度。指定したパラメータの数が不足しているとき、手先の方の関節角は0になる。
書式)開始時刻 終了時刻 RARM_JNT_ABS (右腕の関節数分の関節角度(degree))
例)
0 1 LARM_JNT_ABS 0 30 -45 -90 90 0 135
動作内容)
腕の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RARM_JNT_REL (右腕の関節数分の関節角度の増分(degree))
例)
1 2 LARM_JNT_REL -30 15 -15 -30 -45 -30 -45
動作内容)
手の関節角を指定した角度にする。
書式)開始時刻 終了時刻 RHAND_JNT_ABS (右手の関節数分の関節角度(degree))
例)
0 1 LHAND_JNT_ABS 85 45 -85 -45
動作内容)
手の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RHAND_JNT_REL (右手の関節数分の関節角度の増分(degree))
例)
1 2 LHAND_JNT_REL -50 -30 50 30
0 1 RARM_OBJECT 0 0 0 0 0 0
0 1 RHAND_JNT_OPEN
0 1 RHAND_JNT_CLOSE
動作内容)
[要確認]
書式)開始時刻 終了時刻 RHAND_GRASP # 値の指定なし
例)
0 1 RHAND_GRASP