宏文件的格式
本节对宏文件格式进行了更详细的概述 .hrpr 已记录。
当您打开一个文件时 .hrpr 在“已记录”页面中,您会看到一系列标题字段,其后是按时间步长排列的已记录交易数据。
标题中包含以下键:
FORMAT_VERSION: 请指定文件格式的版本.hrpr.PROGRAM_NAME: 请输入文件的完整保存路径。分隔符\et/混合咖啡,以及//即使重复出现,也不会影响对该文件的解释。DATE: 请填写该记录的创建日期。SAMPLE_RATE: 请指定录制频率。HARP 的录制频率为 每秒100个采样点(100 Hz).POSITION_LEADER: 识别设备 Inverse3 在录制过程中担任位置领队。ORIENTATION_LEADER: 识别设备 VerseGrip ou 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#.##### | 线速度(进给速度),单位:米/秒 | 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坐标值的指令会将机器人移动到相应的绝对笛卡尔坐标位置。
- 如果某个坐标是 omise, 机器人将保持该轴的当前值。
- 例如,如果在命令中省略了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高度
此示例演示了如何通过一条命令来axe Z 可以添加到该行中 N4 将机器人移动到精确的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轴.N3etN4只更新了……axe Z.N5更新了斧头 X 并调整进给速度。N6同时更新了Y轴 et l'axe 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
}