8题问答,解答 AMR/AGV 从电机控制到感知避障的集成难题

8题问答,解答 AMR/AGV 从电机控制到感知避障的集成难题

作者:DigiKey

1. ROS 是什么?

ROS(Robot Operating System,机器人操作系统)严格来说并不是传统意义上的操作系统,而是一套面向机器人开发的开源软件框架和中间件。它把复杂机器人系统拆分成多个功能独立的 节点(Node),例如电机控制、IMU 数据采集、视觉感知和路径规划,再通过标准接口交换数据。

对于 AMR/AGV 来说,这种架构最大的工程价值是解耦硬件与上层算法。例如更换电机驱动器或传感器时,只要 ROS 接口保持一致,导航层原则上无需跟着大幅重构。ROS 2 官方资料也强调,每个节点通常承担一个模块化功能,并通过标准通信接口与其他节点协作。 [docs.ros.org], [docs.ros.org]

2. ROS 节点之间靠什么通信?

ROS 2 节点主要通过 Topic、Service 和 Action 通信,其中本文涉及最多的是前两种。 [docs.ros.org], [docs.ros.org]

  • Topic(话题):发布/订阅模式,适合连续数据流。例如电机速度指令、IMU 数据、深度图和机器人状态。一个节点发布消息,其他节点可以订阅。
  • Service(服务):请求/响应模式,适合读取参数、初始化、配置设备等快速完成的离散任务。
  • Action(动作):适合耗时较长、需要执行反馈,且可能需要取消的机器人任务。

简单理解就是:

连续数据走 Topic,参数配置和即时请求走 Service,长时间任务走 Action。

3. ROS 2 对 AMR/AGV 有哪些专属能力?

ROS 2 并不是只负责“传数据”,它最大的价值是为机器人建立一个模块化软件生态。

在 AMR/AGV 中,可以把:

电机驱动 → 里程计 → IMU → 深度相机 → 定位 → 导航 → 避障

拆成相对独立的功能节点。ROS 2 的接口定义让这些节点可以通过 Topic、Service、Action 等机制协同运行,也方便后续替换不同硬件或算法模块。

从本文的应用角度,ROS 2 可进一步与导航、定位、地图、传感器融合以及可视化调试工具组合。ADI 当前也提供面向 ROS 2 的机器人 SDK 硬件支持,其中覆盖 Trinamic 电机控制器、ADIS 系列 IMU 和 3D ToF 设备。 [github.com]

工程上最重要的不是“ROS 2 能控制多少设备”,而是各个子系统不需要彼此了解底层硬件细节。

4. AMR/AGV 的电机控制如何接入 ROS 2?

以 TMCM-2611-AGV + adi_tmcl ROS 2 Driver 为例,整个控制链可以理解为:

ROS 2 导航/控制节点 → ROS Topic → adi_tmcl → TMCL → SocketCAN/CAN → TMCM-2611-AGV → BLDC 电机

ADI 的 adi_tmcl 是官方 ROS 2 Trinamic 电机控制器驱动,通过 TMCL 协议与硬件通信,目前文档列出的通信接口为 CAN(SocketCAN),而 TMCM-2611 也在支持硬件列表中。 [developer.analog.com], [github.com]

这样,上层导航算法无需直接理解 CAN 帧或 TMCL 底层细节,只需要按照 ROS 2 的接口与电机控制节点交换数据。

这恰恰体现 ROS 2 的系统价值:

把“机器人要怎么运动”与“驱动器具体怎么控制电机”分开。

5. TMCM-2611-AGV 的驱动能力是多少?

TMCM-2611-AGV 是针对 AGV/AMR 等应用设计的双轴三相 BLDC 伺服驱动平台。每个轴支持最高 +48 V 电机电源、14 A RMS 相电流。 [analog.com]

它还具备:

  • 双轴 BLDC 伺服驱动
  • +24 V 系统供电
  • +48 V 电机供电
  • 最高 14 A RMS 相电流
  • RS-485、CAN、USB
  • TMCL 通信协议
  • 增量正交编码器(ABN)接口
  • 数字霍尔传感器接口
  • 电机刹车功能 [analog.com], [analog.com]

对于典型差速 AMR/AGV,这种双轴架构尤其方便,因为左右驱动轮可以分别进行速度控制。

6. 为什么仅靠车轮编码器不足以定位?

编码器本质上测量的是车轮转了多少,而不是机器人在现实空间中真正移动了多少。

实际运行中会遇到:

  • 加速或制动时轮胎打滑
  • 地面不平
  • 左右轮径误差
  • 负载变化
  • 转弯滑移

这些误差会不断累积。因此,单纯依靠轮速里程计进行航位推算,机器人位置最终会出现越来越明显的漂移。

一种常见办法是加入 IMU。IMU 的三轴陀螺仪和三轴加速度计提供独立的惯性运动信息,再与 wheel odometry 等数据进行传感器融合,从而增强姿态和运动状态估计。

例如 ADIS16500 本身集成三轴陀螺仪及三轴加速度计,并经过工厂灵敏度、偏置和轴对准校准,定位目标就是高精度多轴惯性测量。 [analog.com],

7. ADIS16500AMLZ 的关键性能指标是什么?

ADIS16500AMLZ 是一款精密小型 MEMS IMU,内部集成三轴数字陀螺仪和三轴数字加速度计。 [analog.com],

几个值得 AMR/AGV 工程师关注的指标是:

参数

ADIS16500

陀螺仪量程

±2000°/s

陀螺仪运行中零偏稳定性

8.1°/hr

X/Y 轴角度随机游走

0.29°/√hr

加速度计量程

±392 m/s²

加速度计运行中零偏稳定性

125 μm/s²

校准温度范围

-10°C ~ +75°C

工作温度

-25°C ~ +85°C

通信接口

SPI

[analog.com], [analog.com]

此外,器件的灵敏度、偏置和轴向对准均经过工厂校准,可降低系统层面的标定与集成工作量。 [analog.com], [analog.com]

换句话说,对 AMR 来说,IMU 的价值不只是“多一个传感器”,而是为车轮里程计之外增加一套独立的运动参考。

8. ADTF3175BMLZ 的规格与免硬件开发方式?

ADTF3175 的关键规格

ADTF3175 是一款 1 Megapixel ToF 深度感知模块,具备:

  • 1024 × 1024 ToF 成像分辨率
  • 75° × 75° 视场角
  • 940 nm 光学带通滤波
  • 1024 × 1024 / 512 × 512 校准模式
  • 0.4 m ~ 4 m 深度范围
  • 全量程深度精度 ±5 mm
  • 4-lane MIPI CSI-2
  • SPI / I²C 控制接口 [analog.com], [analog.com]

在 AMR/AGV 中,它比较适合作为 LiDAR 的近场补充,用于获取稠密深度信息,例如地面、低矮障碍、近距离物体等。

如何“没有实际相机也先开发算法”?

这是这套 ROS 2 方案中很实用的一点。

ADI 的 adi_3dtof_adtf31xx ROS 包提供 Camera Sensor Mode、File-IO Mode 和 Network Mode。其中 File-IO Mode 可以让开发者在主机 PC 上运行预先录制的传感器输出文件,对 ROS 软件包和算法进行开发与测试,而无需当下连接实体 ToF 相机。 [developer.analog.com]

也就是说:

硬件还没到,ROS 2 感知算法开发可以先开始。

该 ROS 节点能够获取 Depth 和 Active Brightness(AB)帧,并以 ROS Topic 形式发布。 [developer.analog.com]

从缩短研发周期的角度,这种“硬件与软件并行开发”能力非常有价值。

工程师总结:一台 AMR 的 ROS 2 链路可以这样理解

ADI 官方 ROS 2 支持硬件清单同时覆盖 TMCM-2611、ADIS16500/05/07 等 IMU,以及 3D ToF 相关驱动,说明这种模块化集成思路可以从单一器件进一步延伸至完整机器人传感与执行链路。 [github.com]

总结:

从工程角度看,这篇文章真正要解决的问题不是“如何把三个 ADI 器件接起来”,而是如何借助 ROS 2,把电机执行、惯性定位与深度感知解耦成标准模块,从而减少重复开发、降低硬件替换成本,并让导航、控制和感知团队能够并行开发。

参考资料链接

  1. ADI TMCM-2611 产品资料 – https://www.analog.com/en/products/tmcm-2611.html
  2. TMCM-2611-AGV Hardware Manual – https://www.analog.com/media/en/technical-documentation/user-guides/tmcm-2611-agv_hardware_manual.pdf
  3. ADI adi_tmcl ROS 2 Driver 文档 – https://developer.analog.com/docs/adi-ros2/humble/adi_tmcl/
  4. ADI 官方 tmcl_ros2 GitHub – https://github.com/analogdevicesinc/tmcl_ros2
  5. ADI ROS 2 Supported Hardware – https://github.com/analogdevicesinc/adi_ros2/blob/main/src/adi_ros2/doc/Overview/Supported-Hardware.rst
  6. ADI ADIS16500 产品资料 – https://www.analog.com/en/products/adis16500.html
  7. ADIS16500 Datasheet – https://www.analog.com/media/en/technical-documentation/data-sheets/ADIS16500.pdf
  8. ADI ADTF3175 产品资料 – https://www.analog.com/en/products/adtf3175.html
  9. adi_3dtof_adtf31xx ROS 2 文档 – https://developer.analog.com/docs/adi-ros2/humble/adi_3dtof_adtf31xx/__README.html
  10. ROS 2 Topics / Services / Actions 官方说明 – https://docs.ros.org/en/humble/Concepts/Basic/Interfaces-Topics-Services-Actions.html

******

如任何问题,欢迎联系 DigiKey客服团队

中国(人民币)客服

service.sh@digikey.com

中国(美金)/香港客服

– china.support@digikey.com

打开微信搜一搜,输入「digikey」

点击关注 DigiKey 官方微信公众号

按指引完成会员登记

之后每周自动推送工程师专属秘技,边学技术边攒积分,各类工具好礼、专属采购福利等你来领。

Copyright©DigiKey Electronics