2. AMR基础架构

AMR(自主移动机器人)的系统集成并非简单地将零部件拼装在一起,而是围绕“感知-决策-执行”闭环,将异构硬件、分层软件与多类总线协议深度融合的工程实践。本章从硬件组成、软件分层、通信总线三个维度拆解AMR的基础架构,帮助学员建立从物理器件到逻辑功能的完整映射关系,为后续控制系统集成方案设计打下根基。

AMR基础架构总览:硬件-软件-总线协同 硬件组成(物理实体) 底盘系统 驱动轮/转向轮 悬挂/减震机构 电池/充电接口 举升/牵引机构 传感器组 激光雷达(2D/3D) IMU/编码器 相机(RGB/深度) 安全触边/超声 工控机(IPC) CPU/GPU计算单元 运动控制卡/IO板卡 无线通信模块 存储/电源管理 执行器 伺服电机/轮毂电机 驱动器(Copley/Elmo) 电磁制动器 液压/气动元件 软件分层(逻辑功能) 应用层 任务调度/路径规划 交通管制/调度系统 UI/监控/数据记录 ROS2/自研框架 算法层 SLAM/定位(AMCL) 感知融合(点云/视觉) 运动控制(PID/MPC) 避障/脱困策略 驱动层 硬件抽象(HAL) 设备驱动(激光/电机) 总线协议栈(CANopen) 实时内核/RTOS 通信总线(数据链路) CAN/CANopen 1Mbps / 250kbps 电机驱动/IO控制 确定性高/抗干扰 EtherCAT 100Mbps全双工 伺服/高速IO同步 分布式时钟(DC) Ethernet 1Gbps/2.5Gbps 激光雷达/相机数据 调度系统/云端通信 图例: 硬件层 软件层 通信总线

2.1 硬件组成:从机械本体到计算核心

核心原理:硬件是AMR的物理载体与能量边界

AMR硬件系统设计遵循“功能模块化、接口标准化、冗余适度化”原则。底盘决定机器人的运动学模型(差速、全向、阿克曼),传感器组构成感知边界,工控机(IPC)作为算力中枢,执行器将控制指令转化为机械运动。四者通过总线互联,形成完整的物理闭环。硬件选型需同时考虑负载能力、精度指标、环境适应性(IP等级、温度范围)和功耗预算。

硬件选型与集成判断方法

  • 底盘评估:根据应用场景(室内/室外、载重、过坎高度)确定驱动形式。差速底盘结构简单、成本低,适合室内平坦地面;全向底盘(麦克纳姆轮)适合狭窄空间横向移动,但效率较低;阿克曼底盘适合室外长距离高速运行。
  • 传感器配置:激光雷达(2D/3D)负责建图与定位,IMU提供姿态参考,编码器反馈轮速,安全触边作为最后一道物理防线。传感器布局需避免盲区重叠,并考虑振动、灰尘、光线干扰。
  • 工控机选型:根据算法复杂度选择CPU/GPU算力。纯2D SLAM可用i5级别CPU;3D激光+视觉融合需独立GPU(如RTX 3060及以上)。同时需预留CAN卡、EtherCAT主站卡、串口/网口等扩展接口。
  • 执行器匹配:伺服电机需与驱动器、减速器、编码器形成闭环。选型时计算峰值扭矩、连续扭矩、转速范围,并验证驱动器是否支持目标总线协议(如CANopen、EtherCAT)。
硬件模块关键参数典型选型集成注意事项
底盘负载、速度、越障高度差速底盘(室内)、阿克曼(室外)重心高度影响稳定性
激光雷达扫描频率、测距范围、精度SICK TIM系列、速腾RS-LiDAR安装高度需避开人体腰部
工控机CPU/GPU、接口数量、功耗研华ARK系列、控创KBox散热设计、防振安装
伺服系统额定扭矩、响应带宽、编码器分辨率松下MINAS A6、汇川IS620N驱动器与电机匹配校验
实战经验:在AGV/AMR项目中,硬件故障率最高的三个环节依次为:连接器松动(振动导致)、电源纹波干扰(电机启停引起)、编码器线缆磨损。建议在硬件集成阶段对所有接插件进行点胶固定,并增加电源滤波电容。

案例拆解:某3C电子厂AMR底盘改造

背景与约束:某3C工厂原有AGV采用磁条导航,因产线调整需改为无轨导航,载重300kg,运行速度1.5m/s,要求定位精度±10mm。原车采用铅酸电池+直流无刷电机,无编码器反馈。

改造方案:保留原机械底盘,更换为伺服轮毂电机(带1024线编码器),加装SICK 2D激光雷达(前向180°)+ IMU(BMI088),工控机升级为i7-12700H + RTX A2000,通信总线由PWM控制改为CANopen。

实施过程:① 拆除原驱动控制器,安装Copley ACK-055-06-CANopen驱动器;② 重新布置线束,将动力线与信号线分离走线;③ 在工控机中安装CAN卡(周立功USBCAN-II),配置波特率500kbps;④ 编写底层驱动,将编码器数据接入ROS2的odom话题。

结果对比:改造后定位精度达到±8mm,满足产线要求;但初期出现电机啸叫问题,经排查为CANopen PDO映射周期过短(1ms)导致总线负载过高,调整为5ms后恢复正常。

复盘经验:硬件改造前务必测量原车电机电气参数(额定电流、反电动势系数),避免驱动器选型过小;总线周期设置需结合控制带宽需求与总线负载率综合权衡。

2.2 软件分层:驱动、算法与应用的解耦设计

核心原理:分层架构的核心价值在于“隔离变化”

AMR软件采用分层架构,驱动层屏蔽硬件差异,算法层提供通用能力,应用层聚焦业务逻辑。这种设计使得更换传感器品牌、升级导航算法或修改调度策略时,只需改动对应层,不影响其他模块。驱动层运行在实时环境(RTOS或Linux PREEMPT_RT),算法层通常运行在ROS2/自研框架中,应用层则与调度系统(如WCS)通过API交互。

分层职责与接口定义

  • 驱动层:负责硬件抽象(HAL),将激光雷达、IMU、电机等设备封装为统一接口。例如,将不同品牌的激光雷达统一输出为sensor_msgs/LaserScan消息。驱动层还需处理总线通信(CANopen PDO/SDO、EtherCAT过程数据)。
  • 算法层:包含SLAM建图、定位(AMCL)、全局路径规划(Nav2)、局部避障(DWA/TEB)、运动控制(PID/MPC)。算法层通过tf树维护坐标变换,通过costmap表示环境代价。
  • 应用层:实现任务调度(接单、分配)、交通管制(多车避让)、状态监控(电量、故障诊断)、人机交互(HMI)。应用层通过ROS2 Action/Service与算法层通信。
层级核心组件通信方式实时性要求典型技术栈
应用层任务管理、调度、UIROS2 Topic/Service软实时(100ms级)Qt、Python、REST API
算法层SLAM、规划、控制ROS2 Action/Topic硬实时(10-50ms)C++、Eigen、GTSAM
驱动层HAL、设备驱动CANopen/EtherCAT确定性(1-5ms)C、RTOS、Linux内核模块
常见误区:很多团队将算法层与驱动层混写,导致更换电机驱动器后需要重写整个控制代码。正确做法是驱动层只提供“速度指令-轮速反馈”的通用接口,算法层不感知具体电机型号。

实战场景:ROS2中驱动层与算法层的协作

在ROS2环境下,驱动层通常实现为ros2_control硬件接口插件,算法层通过cmd_vel话题发布速度指令。以下为驱动层关键代码片段:

// 驱动层:电机速度指令下发(CANopen PDO)
void MotorDriver::writeSpeed(double linear, double angular) {
    // 运动学解算:差速模型
    double v_left = linear - angular * wheel_base_ / 2.0;
    double v_right = linear + angular * wheel_base_ / 2.0;
    // 转换为RPM并写入PDO
    int16_t rpm_left = static_cast<int16_t>(v_left * gear_ratio_ * 60.0 / (2 * M_PI * wheel_radius_));
    int16_t rpm_right = static_cast<int16_t>(v_right * gear_ratio_ * 60.0 / (2 * M_PI * wheel_radius_));
    can_send_pdo(0x200, rpm_left, rpm_right);
}

算法层只需订阅cmd_vel并发布odom,无需关心底层CAN帧细节。这种解耦使得同一套算法代码可适配不同底盘。

2.3 通信总线:CAN、EtherCAT与Ethernet的协同分工

核心原理:不同总线服务于不同实时性等级的数据流

AMR内部存在三类数据流:① 控制流(电机指令、IO状态),要求确定性延迟;② 感知流(激光点云、图像),数据量大但容忍一定延迟;③ 信息流(调度指令、日志),对实时性不敏感。CAN/CANopen适合控制流,EtherCAT适合高速同步控制,Ethernet适合感知与信息流。三种总线在AMR中并存,通过工控机进行协议转换与数据路由。

总线选型与部署要点

  • CAN/CANopen:成本低、抗干扰强,适合电机驱动、IO模块。典型波特率500kbps,PDO周期5-10ms。注意总线终端电阻(120Ω)必须正确配置,否则通信不稳定。
  • EtherCAT:分布式时钟(DC)可实现亚微秒级同步,适合多轴伺服控制。需使用独立网卡(如Intel I210)并配置实时补丁。EtherCAT拓扑为环形或菊花链,断线检测需额外硬件支持。
  • Ethernet:用于激光雷达(通常为UDP点云数据)、相机(GigE Vision)、调度系统通信。建议使用独立VLAN隔离实时与非实时流量,避免广播风暴影响控制链路。
总线类型数据速率同步精度典型应用成本抗干扰
CAN1Mbpsms级IO控制、低速电机低强
EtherCAT100Mbps亚μs级多轴伺服、高速IO中中
Ethernet1Gbpsms级激光/相机/调度低弱(需屏蔽)
排障案例:某项目AMR运行中偶发“电机抖动”,排查过程:① 检查CAN总线波形,发现信号边沿过缓,确认终端电阻缺失;② 补装120Ω电阻后抖动消失;③ 后续又出现周期性丢帧,经分析为CANopen PDO周期与EtherCAT同步周期冲突,将PDO周期从5ms调整为10ms后解决。此案例说明总线问题往往不是单一原因,需结合示波器、总线分析仪和日志综合判断。

总线集成最佳实践

  1. 拓扑规划:绘制总线拓扑图,标注每个节点的站号、波特率、终端电阻位置。CAN总线建议采用“手拉手”菊花链,避免星型连接。
  2. 协议配置:CANopen需配置对象字典(OD),包括PDO映射、同步周期、心跳时间。EtherCAT需配置从站别名(Alias)和过程数据映射。
  3. 测试验证:使用CANalyzer或EtherCAT Master Monitor抓取总线报文,验证PDO周期、数据内容、错误帧计数。在满载工况下测试总线负载率,建议不超过60%。
  4. 冗余设计:对于安全关键信号(如急停),建议采用硬接线+总线双通道,避免单点故障。
经验提醒:在AMR集成项目中,总线调试占整个调试周期的30%以上。建议在硬件设计阶段就预留总线测试点(TP),并统一线缆颜色规范(如CAN_H为黄色、CAN_L为绿色),减少现场排查时间。

总结复盘:AMR基础架构的集成要点

本章从硬件、软件、总线三个维度剖析了AMR的基础架构。硬件是“骨骼”,软件是“大脑”,总线是“神经网络”。集成工程师需建立“系统思维”:选型时考虑硬件与总线的兼容性(如驱动器是否支持目标协议),开发时遵循分层解耦原则,调试时善用总线分析工具。下一阶段将深入AMR运动学模型与控制算法,但扎实的基础架构认知是后续所有高级功能的前提。