运行记录与复现检查
记录分别对应静态就位、连续移琴续弹和本次公开练习。控制流程完成、腕部对齐与音乐准确度都有各自的指标。
已有 Demo:移动钢琴后重新就位
在相同初始状态下,将钢琴沿世界 Y 轴平移 6 厘米,运行 1.6 秒恢复过程:
| 方法 | 就位成功 | 最终最大位置误差 | G0.5 新推理次数 |
|---|---|---|---|
| IK | 是 | 0.0050 毫米 | 0 |
| G0.5 + IK | 是 | 0.0553 毫米 | 4 |
两种方法都完成对齐。这个结果展示了 G0.5 提案可以接入现有控制器,并没有证明它降低了几何残差。G0.5 组合路径的控制量变化积分为 0.00579 rad·s,执行期间没有逐帧重设关节状态。
已有 Demo:移琴后继续演奏
连续会话中的钢琴沿世界 Y 轴移动 -4 厘米,按以下阶段执行:
| 阶段 | 仿真时间 |
|---|---|
| 前半段演奏 | 0–18.68 秒 |
| 抬手 | 18.68–19.68 秒 |
| 移琴 | 19.68–20.48 秒 |
| G0.5 + IK 恢复 | 20.48–22.08 秒 |
| 落手 | 22.08–23.08 秒 |
| 继续演奏 | 23.08–56.38 秒 |
会话完整运行,恢复阶段新推理 4 次,最大腕部位置残差约 0.098 毫米,姿态残差约 0.00177 rad;双手间接触次数为 0,回放最终关节状态与源执行一致。
音乐检查中,100 个目标起音在 120 毫秒容差下匹配 90 个,测得 109 个起音;严格音乐检查未通过。视频中的声音来自实际琴键事件,模型推理时暂停仿真时钟。
本次公开练习
2026-10-05 至 2026-10-06,在独立目录中使用本章公开脚本、已有模型与独立环境重新验证:
piano_context.py prepare和样例计划检查通过;没有发起付费 API 请求。- 随附回放与控制逻辑的 146 项已有检查通过。
- 文档站点生成通过,章节已进入阅读目录。
- 14 音练习完整执行;接触检查无双手互撞,仍有一个漏音及部分起音偏差,严格音乐检查未通过。
使用 README 所列参数(水平 -2 厘米、姿态权重 0.1)重新运行移琴练习,控制会话完整执行 13.51 秒,没有到位或接触中止。恢复期间模型新推理 4 次,最大腕部位置误差为 0.0617 毫米,方向误差为 0.000169 rad,模型引起的控制量变化积分为 0.0193 rad·s,双手互撞次数为 0,复核回放的最终状态差为 0。
实际测得 13 个起音,14 个目标中有 7 个在 120 毫秒容差内匹配,严格音乐检查未通过;这份公开练习用于复现完整控制流程和继续调试指法。
本次修复将运动范围约束加入恢复求解,解决逐关节裁剪导致的腕部对齐偏差;落手时长根据关节目标差自动延长到 1.19 秒,同时更新曲谱暂停时间。恢复标准保持为最后 0.2 秒内位置误差不超过 5 毫米、方向误差不超过 0.05 rad。
读报告时关注的字段
| 字段 | 含义 |
|---|---|
playback_completed |
控制流程是否执行到底 |
safety_stop |
是否因到位或接触等条件中止 |
model_calls_during_session |
会话中实际新推理次数 |
model_induced_command_distance_rad_seconds |
模型提案引起的控制量变化 |
recovery_final_error |
移琴后腕部位置与方向残差 |
onset_metrics |
实际琴键起音和目标起音的匹配 |
performance_passed |
严格音乐检查结果 |
audit_final_qpos_error |
复核回放与实际执行的最终状态差 |
重新复现时保留自己的报告,不把上述单次运行数值当作所有机器人、曲目和硬件的保证。