机器人安全新突破:安全气泡探测器的强大功能

摘要

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

简介

机器人的普及程度越来越高,目前正在逐渐提高在各行各业的效率和生产力。然而,为了确保周边人员和资产的安全,机器人必须配备碰撞检测和停止功能。安全气泡探测器可以探测指定安全区域内是否存在物体或人员。

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

图1. 安全气泡探测器

安全气泡探测器是AGV/AMR系统必不可少的组成部分。图2中的安全气泡探测器由四个EVAL-ADTF3175DNXZ模块构成,覆盖278°的视场。这些模块呈水平分布,飞行时间(ToF)模块之间彼此相隔67.5°,这种配置有助于减少盲点,呈现278°的视场。

图2. 水平设置。(a)顶视图;(b)前视图

为了方便ToF模块和主机系统之间的通信,系统采用ROS发布者订阅者模型,如图3所示。此设置使用Ethernet over USB进行通信,以确保数据完整性并提高通信速度。

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

系统采用安全气泡探测算法来探测安全气泡半径内的物体。探测标志以ROS 话题(Topic)的形式传输,主机可以订阅所有模块的话题,并合并各个探测结果。此外,这些模块还可发布深度图像、红外图像和输出图像以供进一步分析。ROS提供了有效的可视化工具,例如rviz,它可以将发布的话题可视化。该应用设计为高度可配置的,将参数传递给ROS节点即可调整摄像头位置、旋转角度和其他配置值。

该应用实现了多线程架构,如图4所示。输入、处理、输出三个线程并行运行。该设计旨在有效减少延迟,确保持续对最新可访问帧运行算法模块。输入线程从ToF模块读取图像并更新输入队列,而处理线程获取输入队列并运行安全气泡探测算法,发布探测到的标志并将输出推送到输出队列。输出线程读取输出队列并发布话题以实现可视化。在实时场景中,当算法模块的帧速率低于输入线程时,先前未来得及处理的的帧将被丢弃,从而以最小延迟优先处理最新的帧。

图4. 多线程程序

主机和ToF模块之间的通信采用TCP/IP协议,通过ROS发布者-订阅者模型进行。主机将来自ROS节点(ToF模块)的已发布输出图像合并,并发布合并后的输出。

如图5所示,主机是NVIDIA® Jetson Xavier NX,利用Ethernet over USB协 议为所有四个ToF模块供电并与之通信。安全气泡的默认半径为一米,这可以在ROS启动文件中进行配置。如果在该区域内探测到物体,则会触发设置中的物体探测标志,并通过ROS主题发送到主机。主机订阅每个ToF模块的物体探测话题。结果通过简单的逻辑工作范围OR(或)运算合并。如果任何一个传感器在安全气泡内探测到物体,合并后的结果就会指示存在物体。

图5. 采用NVIDIA Jetson Xavier NX的水平设置

为了实现可视化,传感器将获取的图像转换为顶视图,并根据物体位于安全气泡内部还是外部,用绿色和红色像素标记物体。各传感器也会将此图像作为ROS 话题发布,随后主机将它们合并成组合图像。图6为所有已发布输出图像主题的组合图像。

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

为了实现可视化,在左上角绘制一个方框来显示物体探测状态(绿色:未探测到物体;红色:探测到物体)。参见图7。

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

这些图像可以通过ROS工具rviz进行可视化。此外,NVIDIA Jetson Xavier NX可以通过HDMI线连接到显示器,以便查看输出。为了进行分析,我们可以启用输入图像的深度图像、点云和顶视图等可视化功能。这些可视化功能为探测到的物体及其空间关系提供更详细的信息和洞察。参见图8。

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

所用SQA流程

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

  • 单元测试:ROS支持多级别的单元测试。
  • 库单元测试:测试独立于ROS的库。
  • ROS节点单元测试:节点单元测试启动节点及其外部API,即 已发布话题、已订阅话题和服务。
  • 代码覆盖率:代码覆盖率分析由ROS的一个工具包完成,有 助于消除从未被执行的“死代码”并提高单元测试质量。
  • 文档:ROS有一个工具包ros_doc_lite,它能为源文件生成doxygen格式的文档。
  • 使用Clang格式来格式化代码,并使用Clang-tidy来维护ROS编码风格指南。

安全气泡探测器能够可靠地探测各种形状、颜色和尺寸的物体,包括厚度仅5毫米的电缆。

算法的延迟非常低,只有30 ms,可确保实时探测物体并作出响应。

由于充分利用了ROS框架来构建用户界面和提供可视化功能,该应用具有高度可移植性,可兼容任何使用ROS的主机,帮助缩短客户产品的上市时间。

对于透明和低反射物体,ToF传感器的准确度较低。因此,对玻璃瓶和塑料球等物体,会出现探测滞后。例如,图9显示了算法探测到物体的距离(安全半径设置为100 cm)。y轴代表测试对象。玻璃瓶(12, 7)表示玻璃瓶高12 cm,宽7 cm。如果括号中只有一个参数,则它表示物体的半径或立方体的边长。表1总结了安全气泡探测器的规格。

图9. 探测准确度
表1. 安全气泡探测器规格
指标 说明
探测延迟 30 ms 图像分辨率:512×512
探测区域 可配置面积的圆形/矩形 默认值:圆形区域,半径1米
视场 75° 使用1个传感器

结论

这款由ADTF3175D和EVAL-ADTF3175DNXZ ToF平台组成的安全气泡探测器 具有许多优势。它针对i.MX8MP平台进行了高度优化,实现了30 FPS的流畅性能;而且采用多线程方法来有效减少延迟,确保快速响应;此外还实施了SQA方法来确保软件安全并维护质量标准。

参考电路

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

Analog Devices ToF”。GitHub, Inc.

Analog Devices 3DToF ADTF31xx”。GitHub, Inc.

Analog Devices 3DToF Safety Bubble Detector”。GitHub, Inc.

Analog Devices 3DToF Floor Detector”。GitHub, Inc.

Analog Devices 3DToF Image Stitching”。GitHub, Inc.

致谢

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

作者

Rajesh Mahapatra

Rajesh Mahapatra

Rajesh Mahapatra拥有超过30年的工作经验,目前就职于班加罗尔ADI公司的软件和安全部门。他热衷于使用基于ADI硬件解决方案的算法和嵌入式软件来帮助客户解决问题。他与非政府组织密切合作,植树造林,并为城市里经济困难的人群提供培训,帮助他们谋生。他在系统、图像处理和计算机视觉领域拥有5项专利。

Anil Sripadarao

Anil Sripadarao

Anil Sripadarao于2007年加入ADI公司,目前就职于班加罗尔ADI公司的软件和安全部门。他感兴趣的领域包括音频/视频编解码器、AI/ML、计算机视觉算法和机器人技术。他在图像处理和计算机视觉领域拥有6项专利。

Prasanna Bhat

Prasanna Bhat

Prasanna Bhat是班加罗尔ADI公司软件和安全部门的嵌入式软件工程师。他是软件开发和前沿技术交叉领域的专家,工作范围涉及多个领域,包括机器人、深度学习、嵌入式系统、Python GUI以及飞行时间(ToF)传感器应用的图像处理算法等。

Colm Prendergast

Colm Prendergast

于1989年加入ADI公司,在爱尔兰利默里克担任设计工程师。 在ADI任职期间,Colm领导爱尔兰利默里克视频部门以及马萨诸塞州诺伍德混合信号、DSP和汽车应用部门设计多个项目。 他目前担任IoT技术部总监。 空闲时,他会作为FIRST机器人导师建造机器人。 Colm已获得爱尔兰利默里克大学的电子工程学士学位和科克大学硕士学位。

Shane Omeara

Shane O’Meara

Shane O'Meara是ADI公司工业自动化事业部的高级经理,常驻爱尔兰,从事软件系统设计工程工作,侧重于为工业机器人开发软件。他于2011年加入ADI公司,担任产品应用工程师,致力于推动电机控制应用中精密ADC的技术发展。Shane毕业于利默里克大学,获工程学士学位。加入ADI公司之前,他曾在不同的岗位上负责汽车电子和视觉系统领域的工作。

Dara O'sullivan

Dara O’Sullivan

Dara O'Sullivan是ADI公司自动化、能源与传感器业务部电机和电源控制团队(MPC)的高级系统应用工程师。其专长领域是交流电机控制应用的功率转换和控制。Dara拥有爱尔兰科克大学工程学士、工程硕士和博士学位。自2001年起,Dara便从事研究、咨询和工业领域的工业与可再生能源应用方面的工作。

Anders Frederiksen

Anders Frederiksen

Anders Frederiksen是ADI公司互连运动和机器人事业部机器人和新兴技术高级战略营销经理,常驻丹麦。Anders在数字IC设计、产品及高级管理方面拥有超过25年的行业经验,工作足迹遍布全球,曾入职多家半导体和机器人行业的跨国公司和初创公司,此外也多次受邀出席各种行业会议和论坛并发表演讲。他于1998年加入ADI公司,担任电力电子和电机控制系统工程师,在美国马萨诸塞州诺伍德市工作。他在ADI公司内担任过多种职务,推动了全球和本地的技术开发、市场拓展和销售战略实施。Anders毕业于丹麦技术大学,获电气工程硕士学位,成绩优异。加入ADI公司之前,他曾担任丹麦技术大学助理教授。

Sagar Walishetti

Sagar Walishetti

Sagar Walishetti是班加罗尔ADI公司软件和安全部门的软件工程师。他于2019年加入ADI公司,曾从事嵌入式系统、图像处理、机器人和深度学习方面的工作。在ADI任职期间,有关这些领域的整合工作让他十分兴奋。