宏文件格式
本节中记录了 .hrpr 让我们更详细地了解宏文件格式。
记录的 .hrpr 打开文件后,首先显示的是头字段,随后是按时间阶段整理的运动记录数据。
页眉包含以下键:
FORMAT_VERSION:.hrpr指定文件格式的版本。PROGRAM_NAME: 指定文件的完整存储路径。\哇/分隔符被混用,或者//即使重复出现,也不会影响文件的解析。DATE: 指定记录的生成日期。SAMPLE_RATE: 指定记录频率。HARP以**每秒100个采样点(100 Hz)**的速率进行记录。POSITION_LEADER:在记录过程中用作位置读取器的 Inverse3 识别设备。ORIENTATION_LEADER:在记录中用作方向引导的 VerseGrip 或者 Ruko 识别设备。FOLLOWERS: 列出记录中包含的从属设备。例如cg_0银 对照组 0对应于,方括号中的值用于标识该控件组内的跟随槽。DESCRIPTION: 保存与该记录相关联的自由格式文本说明。
在头部之后,将存储以下表所述格式记录的运动数据。
| 字段 | 含义 | 示例 |
|---|---|---|
| N# | 帧号 | N1 N169 |
| t# | 以毫秒为单位的 Unix 时间戳表示的时间 | t1788878409547 |
| {...} | 包含一个帧。每行追随者数据以逗号(,)结尾,播放文件时至少需要一个完整的数据块。 | {cg_0::Follower(0): ... cg_0::Follower(1): ...} |
| X Y Z | 以米为单位的工具位置坐标 | X0.1183887 Y-0.0375092 Z0.1076392 |
| rW rX rY rZ | 用四元数表示的工具方向 | rW0.1575889 rX-0.160 rY0.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命令,使机器人仅沿这两个轴移动。
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
}