利用 ROS 2 组件简化 AMR 和 AGV 的集成

作者:Kenton Williston

投稿人:DigiKey 北美编辑

自主移动机器人 (AMR) 和自动导引车 (AGV) 的正常运行需要多个子系统的紧密协调,包括传感器、电机、导航和基于人工智能 (AI) 的决策。对开发人员来说,整合所有这些子系统具有一定的挑战性。

机器人操作系统 (ROS) 为破解这一复杂难题提供了一条清晰的路径。ROS 是开源的机器人中间件,可提供标准化通信框架和庞大的可重复软件包生态。选用支持原生 ROS 的组件,设计人员可以直接使用自带软件可寻址功能的预制硬件模块,从而缩短调试时间并提高互操作性。

本文简要梳理了 AMR 和 AGV 设计人员面临的各种挑战,以及 ROS 如何助力解决这些挑战。然后介绍 Analog Devices (ADI) 的 ROS 兼容硬件,包括电机控制器、惯性测量单元 (IMU) 和飞行时间 (ToF) 传感器,并解释了这些组件如何与 ROS 软件栈集成以加速产品开发。

AMR 和 AGV 的集成挑战

在 AMR 或 AGV 设计中,集成工作可能会决定设计初期的进度。在硬件层,团队必须选择组件、设计接口并验证信号完整性和定时功能。在软件层,他们必须加载驱动程序、定义数据流,并确保系统特性在实际条件下具有可预测性。

优秀的研发团队能够通过内部自研设计实现这些目标,但这样做往往意味着需要重复开发现货产品的已有功能。这种努力往往难以证明其合理性,尤其是传统方案还会将研发团队束缚于专有接口体系之中。当需求发生变化时,更换一个组件可能需要重新设计软件栈的大部分内容。

ROS 如何解决集成难题

创建 ROS 就是为了解决这些问题。尽管名为 ROS,但它并不是传统意义上的操作系统。相反,ROS 是一个开放源码框架,提供丰富全面的工具集、软件库和标准化开发规范。

ROS 的关键概念是将复杂的机器人应用结构化为模块节点(图 1)。这些小程序可执行特定任务,如读取传感器数据或控制电机速度。

ROS 的基本构件包括软件包、节点、信息和服务图 1:ROS 的基本构件包括软件包、节点、消息和服务。(图片来源:Analog Devices,由 Kenton Williston 修改)

节点通过两种主要机制进行通信:

  • 话题:订阅者模式 —— 一种用于连续数据流的发布,如传感器数据
  • 服务:请求 - 响应模式,最适合离散式动作,如设备配置和初始化等

多个节点及其依赖项(包括相关话题和服务)可整合成一个软件包,以实现更全面的功能。例如,Analog Devices 为其专为 AGV 和 AMR 设计的传感器和执行器模块创建了 ROS 驱动程序包。这些软件包封装了将硬件集成到基于 ROS 的系统中所需的节点、消息定义和配置文件。

ROS 如何简化 AMR 和 AGV 设计

这种模块化架构可实现互操作性并加快开发速度。在硬件层,ROS 为相机和电机控制器等组件提供标准化接口。这既加快了集成速度,又使设计人员免于被供应商锁定和支付许可费用。

在软件层,ROS 提供工具和中间件,有助于设计人员开发、测试、部署和维护复杂的机器人。当前版本的 ROS 2 框架提供了一些对 AMR 和 AGV 特别有用的功能。具体包括:

  • Nav2 导航堆栈支持行为树、进行区域、限速等功能
  • 先进的定位算法,包括建图和定位工具,以使 AMR 和 AGV 实现环境感知
  • 实现了与仿真、可视化和日志工具的集成,有助于开发和诊断

ROS 2 通常在基于 Linux 的计算机上运行,同时也支持其他操作系统。ROS 2 还支持 micro-ROS 操作系统,这是一种可在搭载如 Zephyr 和 FreeRTOS 等实时操作系统 (RTOS) 的微控制器 (MCU) 上直接运行的变体版本。

集成了 ROS 2 的电机控制

为了阐明 ROS 2 的潜力,请考虑驱动控制的复杂性。大多数 AMR 和 AGV 采用差速驱动配置,即两组独立控制的车轮可同时前行和转弯。这种结构要求电机控制器能够同时驱动两个车轮,同时接受导航系统的协调指令。

ADI 的 TMCM-2611-AGV(图 2)直接满足了这一需求。该板属于 Trinamic 电机控制器模块 (TMCM) 系列,是用于三相无刷直流 (BLDC) 电机的双轴伺服驱动平台,专为 AGV 和 AMR 牵引应用而设计。每个轴可在 48 伏电压下驱动可达 14 安培 (A) RMS 的电机,并通过增量式正交编码器或数字霍尔效应传感器进行位置反馈。

Analog Devices 的 TMCM-2611-AGV 双轴控制器/驱动器图 2:TMCM-2611-AGV 是一款用于三相无刷直流电机的双轴控制器/驱动器。(图片来源:Analog Devices)

adi_tmcl ROS 2 驱动程序主要通过话题将这些硬件与 ROS 2 生态系统连接起来(图 3)。例如,导航堆栈可以通过 /cmd_vel_X 话题向每组车轮发布速度指令。adi_tmcl 驱动程序订阅这些话题,将命令转换成 Trinamic Motion Control Languag (TMCL) 语言框架,并通过 Linux 本地 SocketCAN 接口在 CAN 总线上发送。

Analog Devices TMCL ROS2 驱动器软件包(点击放大)图 3:TMCL ROS2 驱动程序软件包集成了一套强大的接口。(图片来源:Analog Devices)

在另一个方向上,adi_tmcl 驱动程序向 /tmc_info_X 话题发布电机反馈,提供速度、位置、扭矩和状态信息。其他节点可以订阅这些数据,以便在应用层面进行里程测量计算、诊断或闭环控制。

这一双向流程说明了 ROS 2 是如何实现模块化系统设计的。导航算法无需了解 TMCL 或 CAN 总线的任何信息,只需发布标准速度信息并接收反馈信息即可。

adi_tmcl 驱动程序还使用服务来完成初始化和参数访问等任务。例如,/tmcl_gap_all 可读取所有轴参数值,/tmcl_ggp_all 可读取控制器板的所有全局参数值。

用于位置跟踪的惯性测量

虽然车轮编码器能让系统根据车轮行程估算位置,但仅靠车轮里程计往往不足以实现精确的位置跟踪。随着时间的推移,车轮打滑和路面不平都会带来很大的误差。在许多室内环境中,GPS 信号不可靠,无法进行持续校正,这一点尤其令人担忧。

IMU 提供独立的运动参考,AMR 和 AGV 能够利用这一特性提高航位推算精度。这方面的典型产品如 ADIS16500/05/07 系列,它通过三轴陀螺仪和三轴加速度计提供六自由度精密惯性传感,且全部采用 15 × 15 × 5 毫米 (mm) BGA 封装。工厂校准会针对每个传感器的灵敏度、偏置、轴对准特性和温度补偿进行特性标定,以此减轻系统设计人员的集成负担。

ADIS16500AMLZ 就是一款典型的产品(图 4)。该部件的陀螺仪量程为每秒 ±2000° (˚/s),陀螺仪运行中零偏稳定性为 8.1° 每小时 (˚/hr),角度随机游走为 0.29° 每根号小时 (°/√hr)。这些性能指标可有效降低随时间累积的漂移,提升两次外部校正间隔内的航位推算性能。

Analog Devices 的 ADIS16500AMLZ 精密 MEMS IMU图 4:ADIS16500AMLZ 是一款采用紧凑型 BGA 封装的精密 MEMS IMU。(图片来源:Analog Devices)

为集成 ROS 2,imu_ros2 驱动程序支持 ADIS16500/05/07 系列。该驱动程序通过 LibIIO 利用 Linux 工业 I/O 子系统,其输出兼容机器人定位等常见的 ROS 2 传感器融合软件包,后者采用扩展卡尔曼滤波器将 IMU 和里程计数据结合在一起。

有意对该 IMU 进行测试评估的设计人员,可先使用 ADIS16500/PCBZ 评估板(图 5)开启前期工作。该评估板通过一个与标准 2 mm 间距带状电缆兼容的 16 针针座,提供 IMU 的 SPI 接口。

Analog Devices 的 ADIS16500/PCBZ 评估板图 5:ADIS16500/PCBZ 评估板通过一个 16 针针座提供 SPI 接口。(图片来源:Analog Devices)

障碍物探测的深度感知

障碍物探测是 AMR/AGV 的另一项标准功能。虽然激光雷达擅长在较远距离探测障碍物,但许多应用也需要近场感知功能来探测低洼障碍物、地面不连续性或位于 LiDAR 扫描平面之外的物体。ToF 深度相机通过在宽视场提供稠密深度图像,弥补了这一不足。

ADTF3175BMLZ ToF 模块(图 6)非常适合这些要求。该模块搭载了 CMOS 深度传感器与照明光学器件,可捕捉分辨率高达 1024 × 1024 的深度和主动亮度 (AB) 帧,视场角为 75˚ × 75°。这种分辨率和覆盖范围的结合,使其非常适合在仓库和制造环境中进行安全区域监控和地面检测,因为在这些环境中可能会出现不同高度的障碍物。

Analog Devices 的 ADTF3175BMLZ ToF 模块图 6:ADTF3175BMLZ ToF 模块集成了 CMOS 深度传感器和照明光学器件。(图片来源:Analog Devices)

adi_3dtof_adtf31xx 驱动程序可使用标准 ROS 2 消息格式发布深度和 AB 帧,从而能够轻松访问相机数据。这些输出可直接与常见的感知软件包集成,用于实现点云生成、楼层检测和安全气泡监测等任务。该驱动程序还支持文件播放模式,允许在没有物理硬件连接的情况下,进行算法开发和测试。

EVAL-ADTF3175D-NXZ 开发套件(图 7)为开发和进行原型设计提供了一个完整的传感器平台。该套件最显著的特点是,搭载一块基于 Arm® 的 Linux 开发板,可以直接部署 ROS 2 节点。另外,传感器还可通过以太网将深度数据流传输到单独的 ROS 2 主机,以提升不同系统架构的灵活性。

Analog Devices 的 EVAL-ADuCM360QSPZ 评估套件图 7:EVAL-ADTF3175D-NXZ 评估套件包括一个基于 Arm 的 Linux 主机。(图片来源:Analog Devices)

Analog Devices Autonomous Mobot (ADAM) 参考平台展示了这些 ROS 兼容组件如何与电池管理、电源转换和通信方面的其他解决方案集成,从而形成一个完整的 AMR 系统。

结语

通过选择与 ROS 兼容的组件,可以大大降低 AMR 和 AGV 设计研发的复杂性。选择象 ADI 这样成熟可靠的元器件供应商,该公司可为各类传感器与执行器提供 ROS 2 驱动,是极具价值的合作伙伴。

DigiKey logo

免责声明:各个作者和/或论坛参与者在本网站发表的观点、看法和意见不代表 DigiKey 的观点、看法和意见,也不代表 DigiKey 官方政策。

关于此作者

Image of Kenton Williston

Kenton Williston

Kenton Williston 于 2000 年获得电气工程学士学位,并开始了他的职业生涯,担任处理器基准分析师。此后,他在 EE Times 集团担任编辑,并帮助创办和主导了多个服务于电子行业的出版物和多场会议。

关于此出版商

DigiKey 北美编辑