已开启
跟进论坛反馈:关节限位表与 URDF/MJCF 逐关节比对结果(供固件限位核查) #3
lhw创建于  5 天前
lhw
lhw
5 天前 创建

背景

跟进论坛帖《Q1 接口说明里的关节限位表和 URDF 对不上(膝关节疑似错行)》以及官方助手"请提交 issue 核查固件软件限位"的回复。

我们把《接口说明》的 JointLimitConfig 表与 q1-urdf 的 q1_v3.urdf、primebot_rl_mjlab 附带的 q1_v3_mc.xml / q1_v3_full_range.xml 做了逐关节自动比对(解析 <limit> 与 jnt_range),供你们核查固件逻辑时参考。两份 MJCF 的数值与 URDF 一致。

比对结果(22 个可动关节)

关节 接口文档 (rad) URDF / MJCF (rad) 一致
hip_pitch -0.4887 ~ 0.4887 -3.0543 ~ 1.5708 ❌
hip_roll 0 ~ 4.119 左 -0.6981~1.5708 / 右 -1.5708~0.6981 ❌
hip_yaw -2.618 ~ 2.618 -1.5708 ~ 1.5708 ❌
knee -0.4887 ~ 0.4887 0 ~ 2.4435 ❌
ankle_pitch 0 ~ 4.119 -0.7854 ~ 0.4363 ❌
ankle_roll -2.618 ~ 2.618 -0.3491 ~ 0.3491 ❌
waist_yaw -1.571 ~ 1.571 -1.5708 ~ 1.5708 ✅
waist_roll 0 ~ 3.142 -0.2618 ~ 0.2618 ❌
shoulder_pitch -2.618 ~ 0.0 -3.1416 ~ 1.5708 ❌
shoulder_roll -inf ~ inf 左 -0.0873~2.7925 / 右 -2.7925~0.0873 ❌
shoulder_yaw -1.571 ~ 1.571 -1.5708 ~ 1.5708 ✅
elbow 0 ~ 3.142 -0.8727 ~ 1.6581 ❌

力矩上限:文档表中多为 33 N·m(肩 roll 为 14);URDF 中髋/膝/腰为 36 N·m,踝/手臂为 22 N·m。

另外注意到文档表中部分数值(如 0~4.119、0~3.142)更像电机侧绝对位置范围,而不是关节相对限位——如果确实是这个原因,建议在表头注明,避免二开时误用。

影响(供评估优先级参考)

  • 按文档做轨迹规划/遥操作时,取值与真机实际范围不一致,可能触发固件越限保护;
  • 做仿真/RL 时以 URDF/MJCF 为准训练、再按文档限位部署,会出现训练与部署的口径差。

建议

  1. 明确权威来源(固件软件限位 / URDF / MJCF),并在文档标注;
  2. 若表中确为电机侧范围,加一列或注明换算关系;
  3. 需要的话我们可以提供本次的自动比对脚本(三源对照),作为仓库的持续校验工具。

(背景:我们在做 Q1 训练链路的昇腾 NPU 适配,项目与证据公开在 https://atomgit.com/GewisLab/primebot-ascend )

likedislike