跳到主要内容

宏文件格式

本节将更深入地介绍已录制的 .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/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
}