{{ title }}
{{ errorMessage }}


{{ errorMessage }}





{{ registerSuccessMessage }}
首页>技术应用> 正文 
投稿
安全革命: 揭开机器人安全气泡探测器的神秘面纱
  2024-09-18   

作者:Rajesh Mahapatra  ADI高级经理

Anil Sripadarao    ADI首席工程师

Prasanna Bhat     ADI嵌入式软件工程师

Colm Prendergast   ADI高级首席研究科学家

Shane O'Meara     ADI高级经理

Dara O'Sullivan     ADI系统应用总监

Anders Frederiksen  ADI首席专家

Sagar Walishetti    ADI软件工程师


本文将介绍实时安全气泡检测的架构,包括开发模块化解决方案所面临的挑战、优化此类高数据带宽应用以每秒 30 帧 (FPS) 的速度运行,以及设计多线程应用和算法以准确检测靠近地面的物体。

机器人在各行各业日益普及,提高了效率和生产力。然而,为了确保人类和近距离资产的安全,机器人必须具备碰撞检测和停止功能。安全气泡探测器旨在检测指定安全区域内是否存在物体或人员。

本文重点介绍使用 Analog Devices EVAL-ADTF3175D-NXZ 飞行时间平台实现安全气泡检测器应用。ADTF3175D 模块的视场角 (FoV) 为 75°。为了在实际应用中覆盖更宽的视场角,需要将多个传感器组合在一起。例如,要覆盖 270° 的视场角,需要使用四个模块。安全气泡检测算法在 EVAL-ADTF3175D-NXZ 平台的 i.MX8MP 处理器上运行。该算法捕捉传感器的深度图像,并检测安全气泡半径内的任何物体。为了便于集成到机器人应用中,安全气泡检测应用是使用机器人操作系统(ROS)框架实现的。该算法经过高度优化,可在该平台上实现 30 FPS 的帧速率。安全气泡检测器是自动导引车(AGV)和自主移动机器人(AMR)的基本组成部分。安全区域通常表示为 AGV/AMR 周围的虚拟圆形区域,如图 1 中的红圈所示。

图片6.png

图 1. 安全气泡探测器。


安全气泡探测器是任何 AGV/AMR 系统的基础。如图 2 所示,一个安全气泡探测器由四个 EVAL-ADTF3175DNXZ 模块组成,覆盖 278° 的视场角。这些模块水平布置,每个飞行时间(ToF)模块的相对位置为 67.5°。这种配置有助于减少盲点,并提供 278°的视场角。

为促进 ToF 模块与主机系统之间的通信,采用了 ROS 发布者-用户模型,如图 3 所示。在此设置中,使用 USB 以太网进行通信,以确保数据完整性并提高通信速度。

图片7.png

图 2. 水平设置。(a) 俯视图。(b) 正视图。


安全气泡检测算法用于检测安全气泡半径内的物体。检测标志以 ROS 主题的形式传输,使主机能够订阅所有模块的主题并合并检测结果。此外,各模块还会发布深度图像、红外图像和输出图像,以供进一步分析。ROS 提供了有效的可视化工具,如 rviz,可将发布的主题可视化。该应用程序设计为高度可配置,并将参数传递给 ROS 节点,用于调整摄像头位置、旋转和其他配置值。

如图 4 所示,应用程序采用了多线程架构。输入、处理和输出三个线程并行运行。设计的目的是最大限度地减少延迟,并确保处理模块持续对最近可访问的帧进行操作。输入线程从 ToF 模块读取图像并更新输入队列,而处理线程接收输入队列并运行安全气泡检测算法,发布检测到的标志并将输出推送到输出队列。输出线程读取输出队列并发布可视化主题。在实时场景中,如果处理块的帧速率低于输入线程,则会丢弃之前的帧,以最小的延迟优先处理最近的帧。

图片8.png

图 3. 主机作为订阅者,ROS 节点作为发布者的架构。

图片9.png


图 4. 多线程程序。


主机与 ToF 模块之间的通信是通过 ROS 发布者-订阅者模式进行的,使用的是 TCP/IP 协议。主机合并 ROS 节点(ToF 模块)发布的输出图像,并发布合并后的输出。

图片10.png

图 5. 使用英伟达 Jetson Xavier NX 的水平设置。


为了实现可视化,传感器将获取的图像转换为俯视图,并根据物体是在安全气泡内还是在安全气泡外,用绿色和红色像素对其进行标记。每个传感器也会将此图像作为 ROS 主题发布,主机会将它们合并为一张综合图像。图 6 显示了所有已发布输出图像主题的组合图像。

图片11.png

图 6. 四个 TOF 模块的组合俯视图。


为便于可视化,在左上角画了一个方框来显示物体检测状态(绿色:未检测到物体,红色:检测到物体)。见图 7。

此外,还可以使用 HDMI 电缆将英伟达 Jetson Xavier NX 连接到显示器上查看输出。可启用输入图像的深度图像、点云和俯视图等可视化效果进行分析。这些可视化效果可提供更详细的信息,让用户深入了解检测到的物体及其空间关系。见图 8。

图片12.png

图 7. 可视化 (a) 未检测到的物体。(b) 检测到的物体。

图片13.png

图 8. 可视化(用于分析的调试图像)。


使用的 SQA 流程

使用标准软件质量保证 (SQA) 方法确保软件的安全和质量。

单元测试: ROS 支持多级单元测试。

库单元测试: 对独立于 ROS 的库进行测试。

ROS 节点单元测试: 节点单元测试启动节点并测试其外部 API,即发布主题、订阅主题和服务。

代码覆盖率: 代码覆盖率分析由 ROS 的一个软件包完成,有助于消除死代码并提高单元测试质量。

文档: ROS 有一个名为 ros_doc_lite 的软件包,可以为源文件提供 doxygen 格式的文档。

Clang 格式用于格式化代码,Clang-tidy 用于维护 ROS 的编码风格指南。

安全气泡检测器能可靠地检测出各种形状、颜色和大小的物体,包括小至 5 毫米粗的电缆。

该算法的延迟时间低至 30 毫秒,确保了物体检测和响应的实时性。

通过在界面和可视化方面广泛利用 ROS 框架,该应用程序具有很强的可移植性。它可与任何使用 ROS 的主机兼容,从而缩短客户的产品上市时间。

透明和低反射物体的 ToF 传感器精度较低。这导致某些物体(如玻璃瓶和塑料球)的检测较晚。例如,图 9 显示了算法检测物体的距离(安全半径设为 100 厘米)。y 轴代表测试对象。玻璃瓶 (12, 7) 表示玻璃瓶高 12 厘米,宽 7 厘米;如果括号中只有一个参数,则表示物体的半径或立方体的长度。有关安全气泡检测仪的规格摘要,请参见表 1。

图片14.png

图 9. 探测精度。


指标数值备注
检测延迟30 毫秒图像分辨率 512 × 512
检测区域圆形/矩形,区域可配置默认值: 圆形区域,半径为1米
视场角75°使用 1 个传感器

表 1. 安全气泡检测器规格


结论

这款由 ADTF3175D 和 EVAL-ADTF3175DNXZ ToF 平台组成的安全气泡检测器具有许多优点。它针对 i.MX8MP 平台进行了高度优化,实现了 30 FPS 的流畅性能。它采用多线程方法最大限度地减少延迟,确保快速灵敏的操作。它还采用了 SQA 方法,以确保软件安全并维持质量标准。


致谢

感谢 ADI-TOF SDK 团队的支持。

参考文献

"工业视觉技术"。ADI公司

"模拟器件 ToF"。GitHub, Inc.

"模拟器件 3DToF ADTF31xx"。GitHub, Inc.

"模拟器件 3DToF 安全气泡检测器"。GitHub, Inc.

"模拟器件 3DToF 地面探测器"。GitHub, Inc.

"模拟器件 3DToF 图像拼接"。GitHub, Inc.

ECD china logo.jpeg

分享到:
  点赞
  收藏
  打印
评论(0
已输入0
最新文章
 2022-06-08