从自主停靠到自动充电:机器人舰队的全任务自主方案解析(上)
e-con Systems 发布一套基于 ROS 2 的自主对接系统,利用 ArUco 标记与 LiDAR 引导机器人完成低电量检测、精确停靠、自动充电并恢复任务。系统支持多机器人舰队共享地图与基础设施,可在 Yocto 嵌入式环境部署,并内置充电中断自动恢复机制。
本文介绍 e-con Systems 开发的 ROS 2 自主对接系统项目,旨在让机器人舰队在无人工干预下管理自身电量、返回充电并继续执行任务。系统通过 ArUco 标记与 LiDAR 精确对准充电座,完整覆盖低电量检测、对接、充电、脱离、后退和任务恢复流程。本文为系列第一篇,聚焦系统架构与核心组件。
商业价值
- 更高自主性与更低运营负担:机器人可自行返回充电站并恢复任务,减少操作人员配置,适合仓库、医院和工业走廊的无人值守运行。
- 断电恢复能力:充电过程中若电力中断,系统会自动脱离、重新对齐并再次进入对接,减少充电失败周期。
- 优化 CPU 与内存占用:对接期间关闭 Nav2 导航栈,降低处理开销,并实现操作模式间的任务级隔离。
- 舰队级可扩展:基于命名空间的 ROS 2 设计允许多台机器人共享同一地图和基础设施,每台机器人独立管理自身的低电量对接循环。
- 嵌入式就绪:完整支持 Yocto 构建系统,可将运行镜像直接部署到工业边缘设备,适用于资源受限场景。
核心组件与工作流程
系统由四个主要部分构成:优化的 ArUco 标记检测包、电池感知的转换与对接逻辑、服务级模式切换,以及安全恢复充电循环。
优化 ArUco 标记检测包
该检测包面向资源受限的嵌入式硬件做了实时优化,具备高效图像处理流水线,支持可配置的标记 ID、字典类型、相机标定和检测阈值,并通过干净的 ROS 2 接口将检测与对接控制逻辑解耦。该模块也可复用于定位、检测或人机交互等其他场景。
电池感知的转换与对接逻辑
battery_manager 节点持续监控电池状态,并根据可配置的低电量和临界阈值自动触发对接序列:
- 低电量检测:电量低于阈值时,自动取消当前导航,生成指向充电站的目标点,并启动对接服务。
- 精确对准:对接控制器结合 ArUco 检测和滤波后的 LiDAR,修正偏航和横向误差,即使 Nav2 存在偏航或 XY 偏移也能对准。
- 对接状态机:依次经历接近、对接、充电、脱离状态,每个转换可配置延迟以保证机械稳定性,随后执行受控后退并将控制权交还导航栈。
- 充电后逻辑:电池达到满充阈值后才触发脱离,并内置保护延迟,避免过早断开和电机打滑。
服务级模式切换
系统提供 base、nav、docking 三种模式服务,用于管理操作模式间的任务级切换。battery_manager 根据电池状态自动触发相应转换,无需人工干预。启动脚本也可按应用需求选择启动对应服务。
安全恢复充电循环
若充电过程中发生间歇性断电(如电源抖动、物理碰撞或连接器松动),系统会自动脱离充电座,执行短距离后退,等待可配置的恢复延迟,然后通过 ArUco 重新对齐并再次进入对接以继续充电。
关键技术栈
- ROS 2 Humble
- Nav2 导航栈
- 优化的 ArUco 标记检测包
- 滤波 LiDAR 接近传感
- 模式化服务编排
- Yocto 嵌入式构建系统
- 自定义 ROS 2 Python 节点
文章第二部分将讨论实际工程挑战、解决方案,以及从仿真到物理机器人的部署经验。
