4.1 项目总览(总目标·实验目的·挑战)
总目标(最终愿景)
用一台桌面六轴机械臂,自主走完一整局国际象棋——从感知棋盘、思考决策、到物理抓放落子,全流程闭环,并能在抓空 / 碰倒 / 放偏时自我恢复。
架构分层(别搞反):脑 = Anima,眼 = 相机,手 = 机械臂,其余一切都是脑借用的 tools / skills。
- 脑 = Anima 认知框架:统一负责理解 + 编排。相机拍到的画面、棋盘状态 → FEN、落子对错的判断,原则上全部交给脑来理解;脑自己直接理解不了时,再由它主动调用检测工具补足。目标是尽量让所有「处理 / 判断」都经由脑完成,而不是把感知/决策拆成一堆各自为政的固定模块。
- 眼 = 相机:只负责采集像素,不做任何决策。它是脑的输入设备,不是「感知引擎」。
- 手 = 机械臂(由 VLA / 模仿学习策略驱动):只负责执行抓放落子,是本项目的工程主体(项目卖点在这只手够鲁棒,而非脑有多聪明)。
- 工具 / 技能 = Stockfish、python-chess、CV 格子检测、VLM 判图……:这些都不是「脑」,而是脑在思考时可借用的逻辑引擎 / 检测工具,统一视作
tools / skills。算棋 = 调 Stockfish 这个 tool,绝不让 Anima / LLM 自己「心算」棋或当规则引擎(会幻觉);棋局真值由python-chess这个 tool 确定性持有。
一句话:Anima 是唯一的「思考者」,它指挥眼去看、调工具去算/检测、命令手去执行。后续每一节都在这个分层下推进。
Soma Zero 下棋 = Jeff 的 Soma 测试代正式起点。
实验目的
- 证明“以 VLA 为主 + 最小传统成分 + 失败检测/重试”能达成高可靠的长程操作。
- 量化对照:传统硬编码基线(4.5) vs VLA(4.7)的单步可靠性与重试需求。
- 卖点 = 长程任务编排 + 闭环纠错,而非“抓得准”。
核心挑战
- 一整局约 80~100 次抓放;单次 95% → 整局仅
0.95^80≈1.7%。 - 棋格仅 3~5cm,精度要求高。
- 纯学习派达不到真机 98% 单次(见
papers/_综合报告.md);98% 靠“失败检测→带反馈重试”1-(1-p)^k达成。 - 失败检测漏检率是整步可靠性的隐藏天花板。
实现步骤梳理(路线图)
自主度单调递增:软件 → 人当手 → 遥操当手 → 硬编码自主 → 采数 → VLA → 收口 → 新棋类。每步的 run_pick_place() 共用同一接口签名,替换只改实现。
| 子章 | 标题 | 步骤 | 自主度 |
|---|---|---|---|
| 4.2 | 顶层框架与 Anima 编排 | 1 | 纯软件 |
| 4.3 | 真实棋盘感知与纠错闭环 | 2 | 看真棋盘·人当手 |
| 4.4 | 遥操作“笨手”下棋 | 3 | 遥操臂当手 |
| 4.5 | 硬编码 3D 自主下棋(传统基线) | 4 | 自主·硬编码·夹娃娃式 |
| 4.6 | 引入 LeRobot · 遥操数据采集 | 5 | 采数(M0 硬件基建前置) |
| 4.7 | VLA 策略替换 | 6 | 自主抓放 |
| 4.8 | 闭环精修与收口 | 7 | 整局自主(求职产出) |
| 4.9 | 挑战课题:吸盘工具更换下围棋/五子棋 | 8 | 自主工具更换 |
三个贯穿组件(项目级)
- 统一接口
run_pick_place(src,dst,target,obs):从 4.3 起定死,人手→遥操→硬编码→VLA 多次替换零摩擦。 - 失败检测器(一等公民):漏检率 = 整步可靠性天花板;从 4.3 起单独迭代、量化准确率。
- 重试 / 可靠性量化:
1-(1-p)^k,在 4.5 建框架测传统基线、在 4.8 最终化对照。