3.1 KiB
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 文档所述的两组单关节指令中既有掌部/拇指近节碰撞网格重叠仍存在,本次未修改这些部位。
复查命令:
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。