# RM75-B 第二阶段 MuJoCo 验证记录

日期：2026-06-30  
随机种子：`20260630`  
受控机械臂：`left`  
固定机械臂：`right`  
MuJoCo：`3.10.0`  
RealMan API2 C API：`v1.1.5`

## 验收结果

完整 headless 基准全部通过，记录失败样本为 0。

| 检查项 | 样本 | 结果 |
|---|---:|---:|
| 规范化双臂模型结构 | 14 轴、27 个 mesh | PASS |
| MuJoCo/Pinocchio/Algo FK | 10,000 | PASS |
| 单点 IK 至 MuJoCo | 1,000 / 1,000 | PASS |
| 连续 IK | 10,000 / 10,000 | PASS |
| 预定义轨迹类型 | 7 / 7 | PASS |
| RGB 与 segmentation | 3 帧 | PASS |
| 固定右臂关节变化 | 0 rad | PASS |

关键测量值：

- MuJoCo/Pinocchio 最大误差：`5.69e-13 m`、`1.84e-12 rad`。
- MuJoCo/RealMan Algo 最大误差：`0.003921 mm`、`0.001065 deg`。
- 单点 IK 成功率：`100%`。
- 单点 IK P99/最大耗时：`2.54 ms` / `4.52 ms`。
- 连续 IK 成功率：`100%`。
- 连续 IK 最大位置/姿态误差：`0.9000 mm`、`0.0900 deg`。
- 连续 IK 最大关节步长：`0.002912 rad`（`0.167 deg`）。
- 固定右臂最大 qpos 变化：`0 rad`。

## 场景定义

规范化 MJCF 使用第一阶段 RM75-B URDF 生成左右两条标准 7 轴链。上传双臂压缩包提供：

- 左右机械臂安装变换；
- 平台、挂架和夹爪视觉；
- 19 个 OBJ 资源，全部由 MuJoCo 编译检查。

默认左臂从 `[0,30,0,60,0,60,0] deg` 开始运动。右臂固定在项目配置中的初始姿态：

```text
[-25.60, 34.09, -19.55, 71.59, 16.97, 80.98, 59.67] deg
```

原始双臂 URDF 的镜像限位和零位偏置不进入求解或控制接口。

## 视觉验证

起点、中点和终点分别生成 RGB 与 segmentation 图像。每一帧均满足：

- RGB 像素方差大于阈值；
- segmentation 中同时存在左右机械臂 geom；
- 双臂前景未接触图像边界。

实时 viewer 使用 GLFW；自动验证使用 EGL。MuJoCo 3.10 的 passive viewer 使用显式
`close()` 并等待渲染线程退出，避免 context-manager 关闭时的 GLFW 退出竞态。

Demo 另外提供两种交互方式：

- 指定受控臂基座坐标系中的目标位置/姿态，显示最终目标 marker，经过 SE(3) 插值和逐点
  QP IK 后播放完整运动，并输出 MuJoCo 回读误差。
- `--manual-drag` 将受控臂切换为零重力、有阻尼的动力学步进，可在 Viewer 中选择连杆后
  使用 `Ctrl + 鼠标右键` 拖动；固定臂仍由程序锁定。

手动拖动是模型交互检查，不计入第一阶段 IK 或第二阶段算法成功率。

## 边界

本结果验证双臂场景中的单臂 IK、关节播放、末端位姿回读和视觉呈现。模型没有 actuator，
visual geom 不参与碰撞，因此本阶段不验证动力学、重力补偿、位置伺服、碰撞检测、通信延迟
或真实硬件安全。
