Skip to main content

RobStride 运行参数表

MotorBridge 保持 RS 系列上层接口统一。当前 active 运行参数表是协议第 4 章“可读写单个参数列表”中的 0x7005..0x702E。v0.5.0 不把 0x2000 / 0x3000 手册功能码作为高层 active 运行参数。

运行规则

  • 参数读写使用通信类型 17/18,加下面的参数 index。
  • 参数 index 小端放在 byte[0..2];参数值小端放在 byte[4..8]
  • 需要掉电保存的参数,写入后必须再发送 type 22 保存。v0.5.0 起,robstride-write-param --store 1 会执行写入、可选验证,然后保存。
  • type 18 写 ACK 时序: 通信类型 18 参数写入默认不阻塞。如需等待固件 ACK,设置 MOTORBRIDGE_ROBSTRIDE_WRITE_ACK_TIMEOUT_MS 启用保守的同步等待。
  • RobStride set_zero_position() 上层接口不变,会自动写 zero_sta(0x7029)=1,所以置零后使用 -pi..pi 区间。要掉电后仍保持,需要 store_parameters / --store 1
  • type 22 保存 payload 为 01 02 03 04 05 06 07 08,并等待 RobStride 状态 ACK。

使用到的通信类型

第 4 章参数表

保存与置零注意事项

  • W/RW 只表示 CAN 上可写,不代表自动掉电保存。参数值需要掉电保持时,使用 motorbridge-cli robstride-write-param ... --store 1motorbridge-cli run --vendor robstride ... --mode save 仍可作为直接保存动作使用。
  • RobStride 置零时,MotorBridge 保持和其他电机一致的上层命令;会发送 type 6,然后写 zero_sta(0x7029)=1。配合 --store 1,即可保存 -pi..pi 上电区间。
  • 位置统一用 rad,速度用 rad/s,加速度/减速度用 rad/s^2。

示例

读取 mechPos
damper=1 并保存:

RobStride 零点校准

使用统一 Python 包 CLI。当前 CLI 是子命令结构,所以 RobStride 控制命令必须以 motorbridge-cli run 开头。 写零点前:
  • 使用已验证的适配器路径,优先 PCAN,或已验证可用的 CANable/candleLight SocketCAN 接口。
  • 先扫描确认目标 motor-idfeedback-id
  • 手动把关节摆到真实机械零位。
  • 确认机构不会碰撞、坠落或误伤人。
扫描并确认电机在线:
读取一次状态:
把当前机械位置写为零点。RobStride 必须带 --zero-exp 1;不带这个参数时, MotorBridge 只会打印警告,不会真正发送置零 CAN 帧。--store 1 表示在固件接受时保存结果。
再次读取状态验证:
再做小幅移动并回零测试:
RobStride 路径中 MotorBridge 还会自动写 zero_sta=1,用于让启动后的范围按 -pi..pi 处理。实际使用时请把示例里的 rs-00 换成真实电机型号,以便限值和日志正确。

PP / CSP 位置模式

RobStride 专用 pos-vel-pppos-vel-csp 控制路径,分别对应厂商手册的 PP(Profile Position)与 CSP(Cyclic Synchronous Position)位置模式。通过 C ABI (robstride_send_pos_vel_pp()robstride_send_pos_vel_csp())、Python 绑定以及 Rust/Python CLI 暴露。
PP 与 CSP 都把位置目标写入 loc_ref0x7016),但速度/加速度寄存器不同——详见 API:Motor。 PP/CSP 的完整手动序列每个控制周期都会等待一次 enable ACK。高速循环请使用 预备 profile,每周期直接写 loc_ref;示例脚本 robstride_posvel_timing_demo.py 对比了 legacy pos-vel、全序列 PP/CSP 与预备高速 profile 的时序。