ここではMotionFileで使えるコマンドそれぞれについてまとめる。
全コマンドの書式
- 時刻 HEAD_FORWARD
- 時刻 PAUSE
- 開始時刻 終了時刻 JOINT_ABS (ロボットの関節数分の関節角度(degree))
- 開始時刻 終了時刻 JOINT_REL (ロボットの関節数分の関節角度の増分(degree))
- 開始時刻 終了時刻 RARM_XYZ_ABS x座標 y座標 z座標 roll pitch yaw
- 開始時刻 終了時刻 RARM_XYZ_REL x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分
- 開始時刻 終了時刻 RARM_LINEAR_ABS x座標 y座標 z座標 roll pitch yaw 分割数
- 開始時刻 終了時刻 RARM_LINEAR_REL x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分 分割数
- 開始時刻 終了時刻 RARM_JNT_ABS (右腕の関節数分の関節角度(degree))
- 開始時刻 終了時刻 RARM_JNT_REL (右腕の関節数分の関節角度の増分(degree))
- 開始時刻 終了時刻 RHAND_JNT_ABS (右手の関節数分の関節角度(degree))
- 開始時刻 終了時刻 RHAND_JNT_REL (右手の関節数分の関節角度の増分(degree))
- 開始時刻 終了時刻 RARM_OBJECT x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分 # 対象物からの相対位置姿勢
- 開始時刻 終了時刻 RHAND_JNT_OPEN # 値の指定なし
- 開始時刻 終了時刻 RHAND_JNT_CLOSE (右手の関節数分の関節角度(degree))
- 開始時刻 終了時刻 RHAND_GRASP # 値の指定なし
左手用コマンドはRARM, RHANDをLARM, LHANDにする
※時刻の単位はsec, 位置の単位はm, 姿勢の単位はdegree
ロボットの構成定義
ロボットのVRMLファイルで定義したジョイント達の、どこが腕や手にあたるかをYAMLファイルで記述する。
各コマンドの詳細
・HEAD_FORWARD
動作内容)
[要確認]
書式)時刻 HEAD_FORWARD
例)
0 HEAD_FORWARD
・PAUSE
動作内容)
[要確認]
書式)時刻 PAUSE
例)
1 PAUSE
・JOINT_ABS
動作内容)
ロボットの全関節角を指定した角度にする。
書式)開始時刻 終了時刻 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
0秒

→ 1秒
角度が指定した値になっている
・JOINT_REL
動作内容)
全関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 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
1秒

→ 2秒

指定した分角度が増減
・RARM_XYZ_ABS/LARM_XYZ_ABS
動作内容)
手先を指定した位置・姿勢(world座標)に動かす。
書式)開始時刻 終了時刻 RARM_XYZ_ABS x座標 y座標 z座標 roll pitch yaw
例)
0 1 LARM_XYZ_ABS -0.12 0.3 0.274 145 -60 -170
0秒

→ 1秒

指定した位置姿勢になっている
・RARM_XYZ_REL/LARM_XYZ_REL
動作内容)
手先を現在の位置・姿勢から指定した距離・角度分動かす。
書式)開始時刻 終了時刻 RARM_XYZ_REL x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分
例)
1 2 LARM_XYZ_REL 0.1 -0.05 0.05 90 0 0
1秒

→ 2秒

指定した分位置姿勢が変化
・RARM_LINEAR_ABS/LARM_LINEAR_ABS
動作内容)
手先を指定した位置・姿勢(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
LARM_LINEAR_ABSを使った場合:
0.2 0.4 0.6 0.8 1.0

LARM_XYZ_ABSを使った場合:
0.2 0.4 0.6 0.8 1.0
・RARM_LINEAR_REL/LARM_LINEAR_REL
動作内容)
手先を現在の位置・姿勢から指定した距離・角度分動かす。
後はARM_LINEAR_ABS同様。
書式)開始時刻 終了時刻 RARM_LINEAR_REL x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分 分割数
例)
1 2 LARM_LINEAR_REL 0 0.30 0 0 0 0 100
・RARM_JNT_ABS/LARM_JNT_ABS
動作内容)
腕の関節角を指定した角度にする。
最初のパラメータはIKを解くベースリンクの角度。指定したパラメータの数が不足しているとき、手先の方の関節角は0になる。
書式)開始時刻 終了時刻 RARM_JNT_ABS (右腕の関節数分の関節角度(degree))
例)
0 1 LARM_JNT_ABS 0 30 -45 -90 90 0 135
0秒

→ 1秒

1秒時点でLARMの関節角が指定した値になっている
・RARM_JNT_REL/LARM_JNT_REL
動作内容)
腕の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RARM_JNT_REL (右腕の関節数分の関節角度の増分(degree))
例)
1 2 LARM_JNT_REL -30 15 -15 -30 -45 -30 -45
1秒

→ 2秒

1秒時点の関節角から指定した値だけ変化
・RHAND_JNT_ABS/LHAND_JNT_ABS
動作内容)
手の関節角を指定した角度にする。
書式)開始時刻 終了時刻 RHAND_JNT_ABS (右手の関節数分の関節角度(degree))
例)
0 1 LHAND_JNT_ABS 85 45 -85 -45
0秒

→ 1秒

指の関節角が指定した値になっている
・RHAND_JNT_REL/LHAND_JNT_REL
動作内容)
手の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RHAND_JNT_REL (右手の関節数分の関節角度の増分(degree))
例)
1 2 LHAND_JNT_REL -50 -30 50 30
1秒

→ 2秒

1秒時点の関節角から指定した値だけ変化
・RARM_OBJECT/LARM_OBJECT
動作内容)
手先を対象物の座標系から指定した相対位置・姿勢に配置させる[要確認]。
書式)開始時刻 終了時刻 RARM_OBJECT x座標の増分 y座標の増分 z座標の増分 rollの増分 pitchの増分 yawの増分 # 対象物からの相対位置姿勢
例)
0 1 RARM_OBJECT 0 0 0 0 0 0
・RHAND_JNT_OPEN/LHAND_JNT_OPEN
動作内容)
[要確認]
書式)開始時刻 終了時刻 RHAND_JNT_OPEN # 値の指定なし
例)
0 1 RHAND_JNT_OPEN
・RHAND_JNT_CLOSE/LHAND_JNT_CLOSE
動作内容)
[要確認]
書式)開始時刻 終了時刻 RHAND_JNT_CLOSE (右手の関節数分の関節角度(degree))
例)
0 1 RHAND_JNT_CLOSE
・RHAND_GRASP/LHAND_GRASP
動作内容)
[要確認]
書式)開始時刻 終了時刻 RHAND_GRASP # 値の指定なし
例)
0 1 RHAND_GRASP