APP下载

基于三维视觉的机器人安全预警系统

2022-07-26郑泽凡谷飞飞王思成

集成技术 2022年4期
关键词:禁区标定控制器

郑泽凡 谷飞飞 王思成 宋 展

1(中国科学院深圳先进技术研究院 深圳 518055)

2(中国科学院大学 北京 100049)

3(人工智能与数字经济广东省实验室 深圳 518052)

4(粤港澳人机智能协同系统联合实验室 深圳 518055)

1 引 言

随着自动化制造技术的不断发展,越来越多的工业机器人被应用在分拣、装配、上料、焊接、涂装等领域,工业机器人的广泛应用对提高劳动产品的质量、产量有着十分重要的意义[1-2]。在机器人运行过程中,保证操作人员和周围设备的绝对安全,是扩大机器人应用领域、保障人机协作安全进行的首要前提。因此,研究机器人安全技术将成为推动未来机器人发展的必然需求[3]。

随着人们对机器人安全技术的研究,工业机器人安全防护技术逐渐形成了 3 个主要方向——机器人本体控制、机器人操作、人机干涉碰撞。着重在工业机器人控制器的完善、工业机器人对危险指令的识别和工业机器人隔离设备的搭建[4-6]3 个领域提高工业机器人的安全性。其中,隔离设备的发展最为快速多样,目前最常见的安全防护手段是在机器人工作区域外部安装金属防护栏[7]。安装护栏不仅可以有效隔绝人体,而且具有成本低、制作简单等优势。但护栏的安装需要预留足够的位置,在配置机器人设备时,护栏的设计和安装还需要耗费一定的时间,在实际应用过程中,很难快速地改变护栏的位置。针对安装护栏的弊端,相关领域人员对基于传统传感器和机器视觉的安全防护系统进行了更加深入的研究。例如,利用“光幕技术”模拟物理护栏[8]、利用红外距离传感器标记人与机器人之间的距离[9]和利用力传感器来判断机器人是否与周边的人或物体发生碰撞[10]。基于传统传感器的安全防护系统,一定程度上减少了传统护栏的弊端,但其仍需要一定的安装空间,需要针对特定的工作环境进行部署方案的设计。且为了实现全方位的防护,需要大量传感器,若使用高精度的传感器,还会增加成本。基于机器视觉的安全防护系统,凭借机器视觉技术在运动目标检测、人体识别、实时定位等方面的技术积累[11-12],通过识别对象与机器人的位置[13],结合机器人控制器的防控策略,来防止安全问题的发生[14]。然而,目前的视觉防护系统大多依靠二维(Two-Dimensional,2D)图像进行禁区划分和人员检测,无法实时反映人员与禁区的真实距离,容易误判。

本文提出一种基于三维( T h r e e -Dimensional,3D)视觉的机器人安全预警系统,在机器视觉安全防护系统中引入场景的 3D 点云信息来协助判断安全状态。系统分为双 Kinect 采集模块、点云处理模块、控制模块和显示模块。在双 Kinect 采集模块中,采用 Azure Kinect 的飞行时间(Time of Flight,ToF)模块实时对监控场景进行 3D 重建[15]。点云处理模块首先对所获取点云中的 3D 人体关键点进行识别,然后在刚性配准后拼接得到更完整的场景点云,最后逐一比较人体与所设置的禁区中心之间的最小距离,并将最小距离与预设的安全距离进行比较,判断人体与禁区之间的关系,及时与机器人控制器进行通信,控制机器人的工作状态,以确保机器人安全工作。此外,显示模块将监控画面和状态通过软件进行展示,方便操作员实时监管。

2 系统方案设计

2.1 系统硬件设计

基于 3D 视觉的机器人安全预警系统由Azure Kinect 设备、上位机、机器人控制器等部分组成。

本文的系统设计图如图 1 所示。首先,由Azure Kinect 设备采集各自视角下的点云、彩色(Red-Green-Blue,RGB)图像和人体关节点信息,并传到上位机;然后,上位机利用双目标定得到的刚性配准参数,将点云进行拼接,在一个统一坐标系下得到更加完整的场景点云和 3D 人体关键点的坐标信息;最后,根据预设好的禁区中心和安全距离判断人体是否处于危险状态,并且通过传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)将状态传送给机器人控制器,确保机器人的安全运行。

图1 系统设计图Fig. 1 The diagram of system design

2.2 系统软件设计

在 Windows 系统环境下,将 Visual Studio 20017 作为软件开发平台,C++ 语言作为程序开发环境。系统软件结构运用类设计思想,对应的软件结构如图 2 所示,其分为双 Kinect 采集模块、点云处理模块、控制模块和显示模块。

图2 系统软件结构Fig. 2 Structure of system software

(1)双 Kinect 采集模块。该模块首先对两台Azure Kinect 设备中深度相机之间的旋转平移矩阵参数进行标定;然后通过设备的软件开发工具箱(Software Development Kit,SDK)获取每台设备捕获的 RGB 图像、深度图和点云;最后将 RGB 图像和深度图发送到显示模块进行显示,将点云和RGB 图像发送给点云处理模块进行后续处理。

(2)点云处理模块。该模块首先利用 Azure Kinect 的 SDK 对场景中 3D 人体关键点进行提取;然后,通过双目标定得到深度相机之间的外参矩阵,再利用该外参矩阵对两个点云进行刚性配准后拼接,将 3D 人体关键点转换到统一坐标系下;最后,将 3D 人体关键点映射到 RGB 图像上,将 RGB 图像中的 2D 人体关键点检测结果发送到显示模块,将统一坐标系下的点云发送到控制模块。

(3)控制模块。该模块在收到的点云上设置禁区,并结合 3D 人体关键点进行距离计算,从而得到人体到禁区的最短距离,并根据此距离决定机器人的运行状态。最后通过 TCP/IP 通信将控制命令发送给机器人控制器。

(4)显示模块。该模块负责将接收到的 RGB图像、深度图结果进行显示;当人体处于危险状态时,予以警示。方便操作员进行人工监控。

3 系统实现的关键技术

本文提出的基于 3D 视觉的机器人安全预警系统的关键技术大致分为 3 步:(1)标定两台Azure Kinect 设备中深度相机的外参矩阵,并通过标定得到的外参矩阵实现点云的配准、拼接;(2)利用拼接好的点云进行禁区中心点和禁区半径的设定,得到禁区范围后,结合 Azure Kinect设备获取的 3D 人体关键点信息,进行状态判断;(3)根据(2)中得到的状态判断结果与机械臂控制器进行通信,保证人员安全。

3.1 点云获取与系统标定

根据透视投影原理[16]得到空间点坐标的计算公式,如公式(1)所示:

将 Azure Kinect 设备中 ToF 模块直接获取的深度图,与该设备出厂自带的标定好的内参相结合,再代入公式(1),可计算得到深度相机坐标系下的空间点坐标。同时,利用 Azure Kinect 设备的 SDK 可以获取设备视野中的有关人体信息的数据帧,进而提取人体的关节位置信息。

本系统的标定指两台 Azure Kinect 设备中深度相机之间的外参矩阵标定。其目的是获取两个深度相机坐标系之间的旋转平移矩阵,并根据该旋转平移矩阵将其中一台相机获得的点云结果转移到另一台相机的坐标系下。图 3 为两个深度相机之间的坐标关系图。根据图 3 所示的几何关系可以得到两台相机之间的变换关系,如公式(2)所示:

图3 坐标关系图Fig. 3 Coordinate diagram

图4 双目标定原理图Fig. 4 System calibration schematic diagram

3.2 安全区域设定与侵入体识别

图5 禁区示意图Fig. 5 The range of restricted area

3.3 机器人运动状态控制

基于上位机通过 TCP/IP 发送状态控制指令和机器人控制器上部署对应的指令响应脚本,可实现对机器人运动状态的控制。上位机为网络通信的客户端,机器人控制器为服务端。

为避免上位机频繁发送控制指令,上位机会维持两个机器人运动状态变量。一个负责记录当前计算得到的机器人状态Statenow,另一个负责记录上一个时刻的机器人状态Stateprevious。当且仅当当前状态与上一个时刻的状态不一致时,才将当前状态通过字符串发送给机器人控制器。

机器人控制器与上位机建立链接后,可监听端口发送的指令,根据指令调用机器人的调速模块,从而设置机器人的全局运动速度。其中,safe 表示正常运行,slowdown 表示调速至运行速度的 50%,dangerous 表示暂停运行。

4 实验结果与分析

4.1 实验设备

本实验平台由两台 Azure Kinect 设备、优傲 UR5 机械臂、越疆 CR5 机械臂和上位机电脑组成。其中,Azure Kinect 设备的 RGB 相机的分辨率设置为 1 920×1 080,帧率设置为30 fps,视野范围为 90°×59°;ToF 相机工作模式设置为窄视野范围 2×2 像素融合模式,分辨率为 320×288,帧率为 30 fps,视野范围为75°×65°,工作范围为 0.50~5.46 m,曝光时间为 12.8 ms;由于两台 Azure Kinect 对重叠的视场成像,为避免 ToF 模块投射的激光互相干扰,两台 Azure Kinect 设备用 AUX 线连接,主 Azure Kinect 的 ToF 模块激光投射完毕后,将通过AUX 线发出一个信号触发副 Azure Kinect 工作;机器人选用丹麦优傲机械臂(UR5),其有效负载为 5 kg,有效工作半径为 850 mm,自由度为 6 个旋转关节;上位机处理器为 Intel i7 9700,显卡为Nvidia RTX 2080 Super,内存大小为 32 GB。实验平台搭建如图 6 所示。

图6 实验平台搭建Fig. 6 The experimental setup

4.2 实验结果分析

在基于 3D 视觉的机器人安全预警系统实验中,首先计算两台 Azure Kinect 设备中深度相机的外参矩阵,然后根据第 3.1 节表述的步骤对深度相机进行双目标定,标定结果如图 7 所示。双Azure Kinect 不仅解决了单 Azure Kinect 存在的视野盲区问题,如图 7(b)~(e)所示,还具有较高的标定精度,拼接后的点云也显示该系统的监控区域覆盖面积大,可满足机器人工作场景下的人员安全监控要求。本文选取场景中的某一薄木板进行重建,拼接后的木板点云如图 7(f)所示,由图 7(f)可知,主、副深度相机中木板的点云基本重合。本文还对场景中的某一方形柜子进行重建,拼接后的柜子点云如图 7(g)所示,由图 7(g)可知,柜子的几何特征基本上得到了复原。

图7 标定结果Fig. 7 The result of calibration

为进一步量化深度相机标定的精度,本文利用第 3 节双目标定使用的标定纸,根据第 3 节描述的过程,在统一坐标系下,分别记录两个Azure Kinect 视角下标定纸上 9 个角点的坐标值并进行比较,比较结果如表 1 所示。由表 1 可知,两个深度相机外参标定精度均在 5 mm 以内。

表1 9 点坐标值比较Table 1 Comparison of 9 points’ position

为验证系统的可靠性,针对不同体型、服装、性别的行人,本文从各个角度对禁区进行侵入测试,记录预警的准确率。此外,为更直观地观察系统状态,本文还设计了一套基于微软基础类库的控制软件,如图 8 所示。该软件可以自定义禁区中心点、禁区半径等参数,且可以实时显示监控画面和标记人体所处状态。

图8 软件界面Fig. 8 Software interface

本文在优傲 UR5 机械臂和越疆 CR5 上进行行人闯入实验,当机械臂处于运动状态时,使行人闯入,机械臂需要根据人和机械臂的距离做出相应的减速或停止动作。累计重复 100 次随机穿着的随机人员进行随机方向的闯入实验。系统按照第 3 节中的程序进行计算,部分实验过程如图 9 所示,部分实验记录如表 2 所示。

表2 实验结果Table 2 Result of experiment

图9 实验过程Fig. 9 Experiment procedure

由表 2 可知,在实时监控下,系统对各种穿着的人员侵入禁区行为的检测率为 100%,且系统在两种机械臂上均可以正常运行。如图 9(a)~(c)所示,在优傲 UR5 机械臂场景中,当行人进入预设的减速距离和停止距离时,可触发相应的警告,并对机器人控制器发出相应的控制指令。如图 9(d)~(f)所示,在越疆 CR5 机械臂场景中,当其中一台 Azure Kinect 丢失对白布后面行人的监控后,另一台 Azure Kinect 依旧可以从它的视角继续监控场景,保证人员安全。综上所述,本文所搭建系统具有稳定性和可靠性。

与现有的安全防护系统相比,常州节卡智能装备有限公司发布了一种基于 2D 视觉的机械臂安全防护系统[21],其通过获取机械臂正上方的俯视图结合人体识别,实现类似虚拟栏杆的功能。该系统实现了对固定禁区的人体侵入监控,但无法根据机械臂的运动状态实时改变禁区。ABB(Asea Brown Boveri)公司推出“Safe Move 2(机器人安全区域控制技术)”,该系统使用大量传感器对禁区进行覆盖监控[22],结合软件对禁区进行高度定制化的监控,但高精度的传感器会导致系统成本增加,此外,“Safe Move 2”系统只适用于 ABB 公司的产品,难以泛化到其他机器人上。目前,虽然有基于视觉检测的机器人安全防护系统,也有许多基于传感器的解决方案,但是基于人体检测的方案缺少 3D 位置信息,导致精度不够,且对监控相机的架设有一定要求。基于传感器的解决方案,其监控效果与传感器精度和布置方案有很大关系,通用性较差[23]。与现有方法相比,本文的机器人安全防护系统可作为保障机器人安全作业的一种全新的可行解决方案。

5 结 论

在机器人作业过程中,针对人员安全保障问题,本文搭建了基于 3D 视觉的机器人安全预警系统。首先,本文利用 Azure Kinect 可以高速重建大场景点云和检测人体的优势,实时获取场景中的点云信息。为了实现安全防护功能,先对两台 Azure Kinect 中的深度相机进行双目标定,获取其外参矩阵,再根据外参矩阵将点云都统一到一个公共坐标系下;然后,根据设定好的禁区范围和获取的 3D 人体关键点信息计算判断人员的安全状态;最后,通过 TCP/IP 协议与机器人控制器通信,确保机器人安全工作。该系统能够利用多 Azure Kinect 进行多角度监控,利用更完整的 3D 位置信息,正确控制机器人的工作状态,保障人员安全,同时具有架设简单、部署方便的优势,是保障人机交互安全作业的一个新思路。

猜你喜欢

禁区标定控制器
肖文儒:为生命禁区带去希望
肖文儒:为生命禁区带去希望
肖文儒:为生命禁区带去希望
工商业IC卡控制器改造为物联网控制器实践
使用朗仁H6 Pro标定北汽绅宝转向角传感器
PLC可编程控制器相关外置的选择计算研究
CT系统参数标定及成像—2
CT系统参数标定及成像—2
基于MATLAB 的CT 系统参数标定及成像研究
不让你去的五大旅游禁区