跳过至主要内容

宏文件格式

在本节中,记录了 .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
{...}保留1帧。每行跟随数据以 , 结尾。要播放文件,至少需要一个完整的块。{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/sF0.0010804
F0.0150
Fa#.#####角速度(进给速度)。单位为 rad/sFa0.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
}