マクロファイル形式
このセクションでは、記録された .hrpr マクロファイル形式について、さらに詳しく説明します。
記録された .hrpr ファイルを開くと、ヘッダーフィールドが一連で表示され、その後に時間ステップごとに整理された記録済みの動作データが続きます。
ヘッダーには、次のキーが含まれています:
FORMAT_VERSION:.hrprファイル形式のバージョンを指定します。PROGRAM_NAME:ファイルが保存された完全なパスを指定します。\と/が混在する区切り文字や、連続する//は、ファイルの解釈に影響しません。DATE:記録が作成された日付を指定します。SAMPLE_RATE:記録の周波数を指定します。HARP は 毎秒100サンプル(100 Hz) で記録します。POSITION_LEADER:記録中に位置のリーダーとして使用された Inverse3 デバイスを識別します。ORIENTATION_LEADER:記録中に姿勢の指標として用いられた ヴァースグリップ または ルコ デバイスを識別します。FOLLOWERS:記録に含まれるフォロワーデバイスを一覧表示します。たとえば、cg_0は 対照群 0 を指し、角括弧内の値は、そのコントロールグループ内のフォロワースロットを示します。DESCRIPTION:記録に関連付けられた、任意のフリーテキストによる説明を保存します。
ヘッダーの後に、記録された動作データが、以下の表で説明する形式で格納されます。
| フィールド | 意味 | 例 |
|---|---|---|
| N# | フレーム番号 | N1 N169 |
| t# | ミリ秒単位の Unix タイムスタンプとしての時刻 | t1788878409547 |
| {...} | 1フレームを保持します。各フォロワー行は , で終わります。ファイルを再生するには、少なくとも1つの完全なブロックが必要です。 | {cg_0::Follower(0): ... cg_0::Follower(1): ...} |
| X Y Z | メートル単位のツール位置座標 | X 0.1183887 Y -0.0375092 Z 0.1076392 |
| rW rX rY rZ | クォータニオンで表したツールの姿勢 | rW 0.1575889 rX -0.160 rY 0.973 rZ -0.051 |
| F#.##### | 直線速度(送り速度)。単位は m/s | F0.0010804 F0.0150 |
| Fa#.##### | 角速度(フィードレート)。単位は rad/s | Fa0.2586200 Fa1.0053328 |
| J6[#,#,#,#,#,#] | ラジアン単位のジョイント角度 | J6[0.403,0.157,1.000,-0.936,0.214,0.977] |
| JV6[#,#,#,#,#,#] | ジョイント速度 | JV6[0.000 0.000 0.000 0.000 0.000 0.000] |
行の解釈方法
- X、Y、Zの各コマンドを指定した行は、ロボットを対応する絶対直交座標位置へ移動させます。
- 座標が 省略 その場合、ロボットはその軸の現在の値を保持します。
- たとえば、コマンドからXが省略されている場合、再生時にはYやZなどの指定された軸のみが更新され、現在の X 位置は維持されます。
- このファイル形式は意図的に柔軟に設計されており、各行には変更が必要な軸や値のみを含めることができます。
- 既存の
.hrprファイルを編集する場合は、名前を付けて保存 を使用して元のファイルを残したまま、変更したマクロを別のバージョンとして保存してください。
例
形式
次の例では、ヘッダー情報と記録された動作サンプルを含む、記録済みの .hrpr マクロファイルの一部を以下に示します:
(FORMAT_VERSION: 1)
(PROGRAM_NAME: C:\Users\demo\Documents\user\projects\demo\raw//2026-8-14_12-13-19.hrpr)
(DATE: 2026/09/14)
(SAMPLE_RATE: 100)
(POSITION_LEADER: 051D)
(ORIENTATION_LEADER: 1451)
(FOLLOWERS:
cg_0::Follower(0): Mecademic Industrial Robotics SERIAL (arm);
cg_0::Follower(1): Mecademic Industrial Robotics PARALLEL (end_effector);
)
(DESCRIPTION: a story of two machines)
N1 t1789402399210 {
cg_0::Follower(0): X0.1183887 Y0.0375092 Z0.1076392 rW0.1575889 rX-0.160 rY0.973 rZ-0.051 F0.0008606 Fa0.9414008 J6[0.403,0.157,1.000,-0.936,0.214,0.977] JV6[0.000,0.000,0.000,0.000,0.000,0.000] ,
cg_0::Follower(1): J1[4.800] ,
}
...
安全なZ軸の高さ
この例では、行 N4 に単一の Z軸 コマンドを追加して、他の軸の設定を変更することなく、ロボットを指定した Z 位置へ移動させる方法を説明します。
省略された軸の値は保持されるため、このステップではZ軸のみが更新されます。
N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: X0.184 Y0.022 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024
}
N3 t20 {
0: X0.184 Y0.022 Z-0.052 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
N4 t31 {
0: Z0.600
}
N5 t41 {
0: X-0.005 Y0.022 Z-0.6 rW0.049 rX-0.032 rY0.998 rZ-0.024 F0.00010 Fa0.400
}
N6 t51 {
0: X-0.005 Y-0.054 Z0.000 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
XY移動
この例では、XコマンドとYコマンドを組み合わせて、ロボットをこれら 2 つの軸に沿ってのみ移動させる方法を示します。
行 N5 この場合、X軸とY軸の値のみが更新されます。省略されたすべての軸は、現在の値を保持します。
N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: X0.184 Y0.022 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024
}
N3 t20 {
0: X0.184 Y0.022 Z-0.052 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
N4 t31 {
0: X0.184 Y0.022 Z-0.600 rW0.049 rX-0.032 rY0.998 rZ-0.024 F0.00010 Fa0.400
}
N5 t41 {
0: X-0.005 Y0.022
}
N6 t51 {
0: X-0.005 Y-0.054 Z0.000 rW0.049 rX-0.032 rY0.998 rZ-0.024
}
マクロの最適化
次の例では、変更が必要な値のみを各コマンドに含めた、最適化されたマクロを示します。
- シーケンス全体を通じて、ロボットの姿勢は変化しません。
- 最初のコマンドは、指定された送り速度を用いて、ロボットを完全な目標姿勢へと移動させます。
N2それでは Y軸 のみを更新します。N3とN4それでは Z軸 のみを更新します。N5それでは X軸 を更新し、フィードレートを変更します。N6それでは Y軸 と Z軸 の両方を更新します。
変更しない値を省略することで、マクロはよりコンパクトになり、読みやすくなり、変更も容易になります。
N1 t1 {
0: X0.184 Y0.004 Z0.141 rW0.0498 rX-0.032 rY0.998 rZ-0.024 F0.00200 Fa0.005
}
N2 t10 {
0: Y0.022
}
N3 t20 {
0: Z-0.052
}
N4 t31 {
0: Z-0.600
}
N5 t41 {
0: X-0.005 F0.00010 Fa0.400
}
N6 t51 {
0: Y-0.054 Z0.000
}