Files
mujoco_linkerbot/tools/o30_right_calibration/README_v8.md
T

49 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# O30 右手 V8:仅调整小指指根行程
在 V7 基础上,仅修改 `pinky_mcp_pitch`(SDK 索引 10)的 URDF `limit upper`,不使用分段映射。其他 19 个关节、全部 origin、轴、连杆、网格与惯量保持不变。
## 使用与迁移
运行 `./hands/O30/scripts/run_o30_right_mujoco_plan.sh`,默认加载 `linkerhand_o30_right_pinky_root_calibrated.urdf`。
迁移包为 `exports/O30_right_V8_linear.zip`,包含 URDF、meshes、SDK 关节顺序和参考指令。
按关节名称映射,并使用 `q = lower + (upper-lower) * clamp(command,0,255)/255`;角度单位为弧度,URDF origin 由仿真器正常加载,无需另加零位偏移或分段代码。
## 修改及取舍
原小指对指指令保持不变:
```
[101,255,169,169,162,170,98,0,0,0,166,0,0,0,150,52,0,0,0,107]
```
通过 MuJoCo 单变量搜索共 127 次距离评估,将该指令的小指指根模型角度从 60.50994° 调整到 63.86602°,指尖附近指腹的碰撞网格间隙由 4.72054 mm 缩小为约 0.02 mm,无检测到的该对指穿透,满足 0.2 mm 接触容差。这里的 0.02 mm 是仿真几何结果,不代表真机标定精度或有接触力。
该关节零位保持不变,255 的模型角度由 93.62914° 改为 98.78457°。这是优先恢复对指的取舍,不能同时声称保留原先的端点角度;尚未取得本次修改后的真机全行程测量。这些角度包含原始模型零位偏移,并非直接等于 URDF upper。
其余三组对指、已确认零位,以及上一轮两组中指指根/拇指指尖测试姿态均未改变。小指中间和末端关节自身参数未变,它们的世界位置会随小指指根转动。
## 验证
- 39 组命令验证实际启动模型与原生 URDF 的线性映射一致。
- 整份 URDF 结构比较确认仅小指指根的 upper 改变。
- 10 项回归测试通过,包括真实 JointState 回调、四组对指、上一轮两个端点、历史版本切换和纯线性映射。
- `reports/o30_right_pinky_root_calibration/validation.json` 保存详细结果;`comparison.png` 上排 V7、下排 V8,分别为左视和正视。
- V7 文档所述的两组单关节指令中既有掌部/拇指近节碰撞网格重叠仍存在,本次未修改这些部位。
复查命令:
```bash
O30_RIGHT_PREPARE_ONLY=1 ./hands/O30/scripts/run_o30_right_mujoco_plan.sh
OPENBLAS_NUM_THREADS=1 venv/bin/python tools/o30_right_calibration/fit_pinky_root.py --check --render
source /opt/ros/jazzy/setup.bash
PYTHONPATH="$PWD/venv/lib/python3.12/site-packages:$PYTHONPATH" python3 tools/o30_right_calibration/test_calibration.py
```
重新求解可使用 `fit_pinky_root.py --fit`,随后重新生成启动模型并检查。此过程不向真机发布指令。
## 备份
V7 完整备份为 `backups/o30_v7_linear_20260921_152608/`,含校验清单。原 V7 URDF、参数、迁移包、报告保留,历史说明见 `README_v7.md`。旧运行 XML 保存为 `linker_hand_o30_right_two_joint_v7.xml`。
运行 `./hands/O30/legacy/run_o30_right_v7_linear.sh` 可临时回到 V7;再次运行普通启动脚本即恢复 V8。