MotionFileのコマンド

ここではMotionFileで使えるコマンドそれぞれについてまとめる。


全コマンドの書式

左手用コマンドは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秒 initial.png → 1秒 JOINT_ABS.png
角度が指定した値になっている JOINT_ABS_angles.png


・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秒 JOINT_ABS.png → 2秒 JOINT_REL.png
指定した分角度が増減 JOINT_REL_angles.png


・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秒 initial.png → 1秒 LARM_XYZ_ABS.png
指定した位置姿勢になっている LARM_XYZ_ABS_pos.png


・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秒 LARM_XYZ_ABS.png → 2秒 LARM_XYZ_REL.png
指定した分位置姿勢が変化 LARM_XYZ_REL_pos.png


・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
LINEAR_0.2.png LINEAR_0.4.png LINEAR_0.6.png LINEAR_0.8.png LINEAR_1.0.png
LARM_XYZ_ABSを使った場合:
0.2 0.4 0.6 0.8 1.0
XYZ_0.2.png XYZ_0.4.png XYZ_0.6.png XYZ_0.8.png XYZ_1.0.png


・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秒 initial.png → 1秒 LARM_JNT_ABS.png
1秒時点でLARMの関節角が指定した値になっている LARM_JNT_ABS_angles.png


・RARM_JNT_REL/LARM_JNT_REL

動作内容)
腕の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RARM_JNT_REL (右腕の関節数分の関節角度の増分(degree))
例)

 1  2  LARM_JNT_REL  -30  15  -15  -30  -45  -30  -45

1秒 LARM_JNT_ABS.png → 2秒 LARM_JNT_REL.png
1秒時点の関節角から指定した値だけ変化 LARM_JNT_REL_angles.png


・RHAND_JNT_ABS/LHAND_JNT_ABS

動作内容)
手の関節角を指定した角度にする。
書式)開始時刻 終了時刻 RHAND_JNT_ABS (右手の関節数分の関節角度(degree))
例)

 0  1  LHAND_JNT_ABS   85  45  -85  -45

0秒 HAND_initial.png → 1秒 LHAND_JNT_ABS.png
指の関節角が指定した値になっている LHAND_JNT_ABS_angles.png


・RHAND_JNT_REL/LHAND_JNT_REL

動作内容)
手の関節角を現在の関節角から指定した角度動かす。
書式)開始時刻 終了時刻 RHAND_JNT_REL (右手の関節数分の関節角度の増分(degree))
例)

 1  2  LHAND_JNT_REL  -50  -30  50  30

1秒 LHAND_JNT_ABS.png → 2秒 LHAND_JNT_REL.png
1秒時点の関節角から指定した値だけ変化 LHAND_JNT_REL_angles.png


・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