技术博客 · 2026/05/10

3D 机器视觉象棋机器人:从识别到落子的闭环实现

复盘视觉象棋机器人项目:为了解决识别结果到机械臂动作之间的误差传递,我把识别、映射、决策和执行拆成可验证闭环。

机器视觉YOLOv5坐标校准机械臂控制

项目背景

3D 机器视觉象棋对弈机器人不是单纯的图像识别项目。系统要完成棋子识别、棋盘坐标映射、博弈决策和机械臂落子控制,最终形成从视觉输入到物理动作的闭环。

这个项目的难点在于算法结果必须落到真实世界。YOLOv5 可以输出棋子类别和图像坐标,但机械臂需要的是可执行的空间位置。中间只要有一步映射不稳定,最终落子就会偏移。

核心问题

核心问题是误差会沿着链路传递。识别框位置、棋盘网格映射、机械臂运动控制和棋子实际摆放都会引入误差。单独看每一环可能误差不大,但合到一起后,落子偏差会变成肉眼可见的问题。

另一个问题是闭环验证。只证明模型能识别棋子不够,还要证明识别结果能驱动决策,决策结果能转成坐标,坐标又能被机械臂稳定执行。

我的方案

我把系统拆成四个节点:视觉识别、坐标映射、博弈决策和机械臂执行。视觉部分使用 YOLOv5 做棋子检测;坐标部分通过九点坐标校准建立图像坐标到棋盘坐标的映射;决策部分接入 Alpha-Beta 剪枝;执行部分用 PWM 控制机械臂动作。

为了降低落子误差,我在坐标映射后增加曲线拟合误差补偿。这样不是直接相信识别框中心点,而是把棋盘标定、机械臂实际动作和误差修正放在同一条验证链路里。

调试与验证

调试时我没有只看模型推理结果,而是逐段验证闭环。第一步确认棋子类别和位置是否稳定;第二步确认九点校准后的棋盘坐标是否一致;第三步确认决策输出是否能转成目标落点;最后观察机械臂是否能重复到达同一位置。

定位偏差时,需要区分是识别误差、映射误差还是执行误差。如果识别框稳定但落点偏移,问题更可能出在映射或机械臂补偿;如果识别本身波动,后续控制再精确也无法稳定。

最终结果

通过九点坐标校准和曲线拟合误差补偿,系统实现 ±0.5mm 重复定位精度,推理响应时延控制在 300ms 内。项目获国家级大学生创新训练计划立项,并取得国家发明专利。

这个结果证明项目不只是完成模型调用,而是把视觉算法、博弈逻辑和机械执行串成可落地的工程闭环。

复盘思考

视觉项目真正落地时,模型只是链路的一部分。对机器人项目来说,关键是把“识别到了”变成“能稳定执行”。这要求每个中间结果都能被验证,而不是把全部问题都归因于模型精度。

后续做类似项目,我会继续把系统拆成可单独观测的节点:输入是否稳定,映射是否可复现,控制是否有补偿,最终动作是否达到预期。这样的拆法能让复杂系统的调试更可控。