Soma Zero Tutorials
🔍 搜索功能尚未开启,敬请期待。

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.7VLA 策略替换6自主抓放
4.8闭环精修与收口7整局自主(求职产出)
4.9挑战课题:吸盘工具更换下围棋/五子棋8自主工具更换

三个贯穿组件(项目级)

  1. 统一接口 run_pick_place(src,dst,target,obs):从 4.3 起定死,人手→遥操→硬编码→VLA 多次替换零摩擦。
  2. 失败检测器(一等公民):漏检率 = 整步可靠性天花板;从 4.3 起单独迭代、量化准确率。
  3. 重试 / 可靠性量化1-(1-p)^k,在 4.5 建框架测传统基线、在 4.8 最终化对照。