NAO 机器人自主找球与踢球系统
面向 NAO 人形机器人的感知、决策和运动控制闭环系统。
项目概述
本项目在 NAO 人形机器人 上实现自主找球、接近、对齐和踢球任务。系统形成了一个完整的具身智能闭环:
视觉感知 -> 目标定位 -> 行为规划 -> 人形机器人运动控制
项目集成了实时计算机视觉、有限状态机行为规划、头部主动扫描、行走控制和踢球动作执行。相比静态视觉演示,本项目的核心挑战在于机器人必须不断行动、观察行动结果,并根据新的观测更新决策。
这个项目让我很早就理解到具身智能中的一个基本事实:感知只有能够支持可靠行动时,才真正有意义。
该图展示了闭环流程:NAO 机器人通过 onboard camera 获取图像,检测并定位球,估计相对位置,使用有限状态机决定行为,然后通过 NAOqi 执行行走、对齐或踢球动作。
项目动机
机器人系统的难点在于感知、决策和控制紧密耦合。一个小的感知误差可能导致错误动作,而错误动作又会改变下一帧观测。因此,本项目关注完整闭环,而不是单独做一个视觉模块。
找球和踢球任务本身相对简单,便于测试,但它包含具身系统的关键组成:
- 机器人需要检测目标;
- 需要估计目标相对位置;
- 目标丢失时需要主动搜索;
- 接近时需要避免过冲;
- 踢球前需要完成身体对齐;
- 执行动作时需要保持稳定。
因此系统采用模块化、可解释的设计,便于在真实硬件上调试。
系统架构
系统作为连续的 perception-action loop 运行:
- 从 onboard RGB camera 采集图像;
- 在图像中检测球;
- 估计球相对机器人的方向和距离;
- 更新行为状态;
- 执行头部扫描、行走、对齐或踢球动作;
- 观察新的环境状态并重复循环。
这使机器人能够自主与环境交互。
感知模块
轻量视觉检测
感知模块使用轻量级传统视觉流程,适合 NAO 的板载计算和实时控制要求。
主要步骤包括:
- 将 RGB 图像转换到 HSV 颜色空间,提高对光照变化的鲁棒性;
- 颜色阈值分割球区域;
- 形态学处理去除噪声;
- 提取轮廓;
- 根据面积、圆度和位置过滤候选区域;
- 对检测到的球中心进行时间平滑。
最终输出包括图像坐标中的球中心位置,以及当前是否可靠看到球的置信信息。
距离估计
距离估计使用简化针孔相机模型。根据图像中球的半径,可以近似估计距离:
[ Z \approx \frac{fR}{r} ]
其中:
- (f) 是焦距;
- (R) 是球的真实半径;
- (r) 是图像中观测到的球半径;
- (Z) 是估计距离。
图像中的水平偏移用于估计相对朝向。距离和朝向共同支持接近、对齐和踢球决策。
行为规划
系统使用 有限状态机 控制机器人行为。FSM 使系统具有可解释性,并能处理间歇性的感知失败。
主要状态
- Search:看不到球时主动扫描环境;
- Track:通过头部和身体调整,让球保持在图像中心附近;
- Approach:朝球移动,同时修正朝向;
- Alignment:踢球前调整身体位置;
- Kick:执行踢球动作;
- Recovery:接近过程中丢失球时停止或重新搜索。
状态转移
状态转移由以下信号触发:
- 球是否可见;
- 估计距离;
- 图像水平偏移;
- 检测置信度;
- 行走或踢球动作是否完成。
FSM 避免了过早踢球、丢失目标时继续前进、以及在搜索和接近状态之间频繁震荡等问题。
运动控制
行走控制
行走控制通过 NAOqi API 实现,包括 setWalkTargetVelocity。系统根据球的位置调整前进速度和角速度。
朝向修正采用简单比例控制:
[ \omega = k_\theta \cdot \Delta x ]
其中 (\Delta x) 是球中心和图像中心之间的水平偏差。
头部控制
机器人通过 head yaw 主动扫描环境。当看不到球时,机器人在一定角度范围内移动头部;当检测到球时,头部跟踪球,使其尽量保持在图像中心。
这种主动感知机制提升了目标丢失后的恢复能力。
踢球控制
踢球动作使用预定义关节轨迹实现,协调髋关节、膝关节和踝关节动作,以在保持平衡的同时完成踢球。
只有当 FSM 确认以下条件时才执行踢球:
- 球足够近;
- 球与踢球腿基本对齐;
- 机器人身体姿态稳定。
技术栈
硬件
- NAO 人形机器人;
- onboard RGB camera;
- IMU 和关节编码器。
软件
- NAOqi framework;
- Python / C++ API。
计算机视觉
- HSV 分割;
- 形态学过滤;
- 轮廓检测;
- 几何距离估计。
算法
- 有限状态机;
- 比例朝向控制;
- 主动视觉搜索;
- 人形机器人行走与踢球控制。
项目结果
系统实现了:
- 实时检测和跟踪球;
- 目标不可见时主动搜索;
- 朝球接近并修正身体朝向;
- 踢球前完成对齐;
- 执行稳定踢球动作。
关键收获
- 搭建了完整的 具身智能闭环系统,连接感知、决策和控制。
- 在真实机器人硬件上设计并实现了 FSM 行为规划。
- 理解了感知不确定性如何影响运动决策。
- 获得了调试闭环机器人行为的实践经验。
该项目提供了我对 闭环智能系统 的早期实践经验,并影响了我后来对 自动驾驶、具身感知和多智能体感知系统 的研究兴趣。