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

4.3 真实棋盘感知与纠错闭环

失败检测(一等公民 · 重点)

🚨 失败检测是整个项目的一等公民:落子是否到位、是否抓空、是否碰倒邻子。它的漏检率是整步可靠性的隐藏天花板(漏检 = 该重试却没重试)。从本节起就把它当独立模块迭代,并单独量化准确率。

本节目标

让 Anima看到真实棋盘并识别其状态(→FEN);能看到人走的子,也能给出自己该走哪一步的指令。此阶段自己走子需要人帮忙,但 Anima 能判断帮忙走子是否成功;若走错,能给人一个正确的指示(纠错闭环)。

产出物

  • 真棋盘 → FEN 识别。
  • 对手走子检测。
  • 己方走子指令输出。
  • 失败检测 + 纠错:走错 → 给出正确指示。
  • run_pick_place() 实现 = 「打印指令给人 + 等人完成 + 验证」(接口签名与 4.4/4.5/4.7 一致)。

用到的技术栈与学习算法

框架定位(承 4.1):理解棋盘是「脑」Anima 的活;下面这些 CV / VLM 不是独立的「眼」,而是脑直接看不懂时调用的检测 tools。相机只是采集像素的眼。

  • 眼 = 全局相机(RGB):只采像素,喂给脑。
  • 脑理解棋盘 → FEN:优先由 Anima(可含 VLM 能力)直接读图给出局面;把不住的细节再调 tool(CV 格子检测 + 棋子分类,或专用 VLM 出 FEN)补足。
  • 失败检测器(tool · 一等公民):学习式分类器 / VLM 判定,由脑调用来判断「到位 / 抓空 / 碰倒」。
  • python-chess(tool):持有棋局真值,比对合法走法集认出对手着法。
  • 编排状态机:纯 Python,无 ROS——即脑「思考 → 调工具 → 指挥手」的循环载体。

验收标准

  • 真棋盘 FEN 识别稳定。
  • 能正确检测对手走子。
  • 失败检测能判对/错并给出纠正指示。
  • 闭环用“人当手”跑通整局。

⚠️ 真机与安全

不涉及机械臂;相机为外设。

知识点(开发中记录)

📝 开发时在此记录本节涉及的原理、算法、概念。

操作过程(开发中记录)

🛠️ 开发时在此记录命令、步骤、配置与复现流程。

难点与坑(开发中记录)

⚠️ 开发时在此记录踩坑、失败现象、调参与解决方案。