基于 Jetson 的机器人智能安全防护系统设计*论文

2023-06-17 13:55:47 来源: 作者:xieshijia
摘要:针对机器人安全防护问题,设计一种基于Jetson和深度学习算法的智能安全防护系统。硬件上,采用Jetson和STM32双处理器冗余控制模式以提高系统的可靠性。以Jetson为主控平台,搭建视觉传感器、网络通讯、视频存储、云台驱动、投影灯等外围模块。软件方面,利用YOLOv5算法检测闯入机器人工作区域的人员,借助DeepSORT算法进行人员定位及轨迹跟踪,并根据机器人实际应用场景灵活设置安全区域以实现安全防护的分级监控处理。结合机器人搭建测试平台,实验结果表明:本系统能有效区分人员和运动的机器人,准确识别、
摘要:针对机器人安全防护问题,设计一种基于Jetson和深度学习算法的智能安全防护系统。硬件上,采用Jetson和STM32双处理器冗余控制模式以提高系统的可靠性。以Jetson为主控平台,搭建视觉传感器、网络通讯、视频存储、云台驱动、投影灯等外围模块。软件方面,利用YOLOv5算法检测闯入机器人工作区域的人员,借助DeepSORT算法进行人员定位及轨迹跟踪,并根据机器人实际应用场景灵活设置安全区域以实现安全防护的分级监控处理。结合机器人搭建测试平台,实验结果表明:本系统能有效区分人员和运动的机器人,准确识别、定位及跟踪入侵机器人工作区域的人员,并可靠控制机器人响应相应的安全处理措施。该系统具有安装部署简单、鲁棒性高、使用友好的特点,对人机协作普遍推广具有积极的促进作用。
关键词:机器人;安全防护;Jetson;深度学习
引言
目前机器人在工业生产、商业服务等领域发挥着重要作用,是企业增效降本的有效手段之一。据国际机器人联合会(IFR)统计数据显示,截止到2020年,全球工业机器人的运营存量创下了300多万台的新纪录。随着工业化进程不断深入,出现了较多的人机共融场景,如图1所示。人机共融是指人和机器人同处一个自然空间里工作,紧密协调地共同完成工作。人机共融生产方式,不再是人类单纯地下指令给机器人,而是让机器人变成人类的伙伴。在传统的工业机器人逐渐取代单调、重复性高、危险性强的工作之时,人机共融的理念也将会慢慢渗入各个工业领域[1-3]。因此,人机共融、人机协作将是机器人未来最重要的发展趋势。
人机共融的显著特征是机器人和环境高度适应,在非结构动态环境能更好地理解人的行为意图,并在一定的规则下实现人机、机器人群体间的交互与协同作业。这对机器人安全防护技术提出了更高的要求,机器人安全防护手段也成为实现人机共融的核心技术指标之一[4-6]。
机器视觉技术作为人工智能的一个重要分支,已被广泛应用于各类智能安防、先进辅助驾驶等领域。它可获取物体的尺寸数据,具有识别精度高、几何特征突出、数据信息丰富等特点[7-8]。同时,随着视觉传感器大规模制造,其硬件成本也已较低。因此,本文设计基于et⁃son的机器人智能安全防护系统,利用机器视觉技术来预测机器人与人类之间可能发生的碰撞,并控制机器人及时响应减速或停机指令以避免人机碰撞,保障人机安全。
1系统总体结构及工作原理
本系统主要包括主体和磁吸式法兰两部分,主体通过自身颗粒强磁铁背板直接吸附在机器人上方的磁吸式法兰上,以实现快速安装部署和主体的位置调节。如图2所示,系统通过网线与POE交换机连接,且POE交换机为其供电。系统主体用于投射机器人工作区域以直观警示、实时监控是否有人员非法闯入机器人工作区域等。上位机通过VNC软件可远程连接至本系统,用以设置机器人工作区域、调整投影灯的警示范围、转储监控视频、调整两自由度云台监控视角等。
当系统检测到人员非法进入机器人工作区域时,则驱动语音报警模块发出一定频率的警告信号、同时发送指令至机器人控制器使机器人减速或停机。无人员入侵时,本系统不影响机器人的正常工作。
2硬件设计
本系统硬件部分主要包括主处理器模块、冗余处理器模块、投影灯警示模块、视觉传感器模块、语音报警模块、通讯模块、电源模块、数据存储模块、看门狗模块、两自由度云台模块、颗粒强磁铁背板模块等,其组成框图如图3所示。
2.1处理器模块
由于系统属于安全等级较高的设备,其自身的可靠性极为重要。因此,采用主处理器和冗余处理器的双机架构。
选用低成本、高性能、高能效的AI处理器Jetson Na⁃no为主控,其内置一块四核Cortex-A57 CPU和一块128核Maxwell架构的GPU。高性能的GPU为深度学习算法提供算力强劲的运行载体,在运行多个神经网络AI算法的同时,可处理来自多个高清传感器的数据。Jetson Na⁃no不仅提供了以太网、USB2.0/3.0、HDMI、MIPI CSI、SPI、UART、GPIO等丰富的硬件接口,而且还支持一系列主流的AI框架和算法,如TensorFlow、PyTorch等,使开发人员能够方便地将AI模型和框架集成到产品中,快速实现图像识别、目标检测、姿势估计、语义分割、视频增强和智能分析等强大功能[9]。
冗余处理器使用STM32F407ZGT6,两个处理器间通过串行SPI总线方式进行定期数据交互和校验。当某一处理器发生数据校验出错或未响应时,另一处理器立即通过RS485总线或安全IO触发外部报警信号,使得外部被监控对象紧急停机,并输出异常报警信号。
2.2通讯模块
通讯模块用于和机器人控制器进行控制命令交互。为适应各类机器人控制器接口,本系统提供以太网、RS485、安全IO模块3种方式。其中,以太网采用TCP/IP协议通讯,RS485采用Modbus协议通讯,安全IO模块采用PNP三线常闭电平信号通讯。如图4所示,Jetson Nano以太网单元的外围电路只需增加网络变压器和RJ45连接器。
2.3视觉传感器模块
视觉传感器用于实时监控机器人工作区域。本系统选用有效像素约808万的背照式CMOS视觉传感器IMX219,其视场角可达160°,能满足拍摄帧率180帧/s高速视频,具有高灵敏度、高帧率拍摄等特点。视觉传感器模块通过CSI接口和Jetson Nano连接,其硬件电路如图5所示。
2.4云台及投影灯模块
两自由度云台模块用于调节视觉传感器的视角,包括偏航角度轴、俯仰角度轴。每轴均采用34型步进电机来驱动,通过Jetson Nano GPIO引脚发送脉冲信号至步进电机驱动芯片LV8728MR来控制电机转动。如图6所示,视觉传感器安装于云台俯仰轴上,俯仰轴再安装于偏航轴上,则视觉传感器可获得2自由度的运动控制。
投影灯警示模块用于投射机器人工作区域、警示人员禁止闯入,通过黄、红两种灯光颜色将机器人工作区域投影为黄色报警区域、红色报警区域,并通过调节镜片距离来设定投影区域的范围。
3软件设计
本系统软件基于Ubuntu18 OS环境开发,主要包括人员入侵检测算法和外设控制程序两部分。其中人员入侵检测采用深度学习方法实现,具体而言,YOLO算法检测人员、DeepSORT算法进行人员定位和轨迹跟踪[10]。外设控制程序包括双CPU冗余控制、云台驱动、视频压缩存储、语音播报、可靠性冗余校核、外部通讯、参数配置、系统日志以及主框架程序等。软件架构如图7所示。
3.1人员入侵检测算法设计
YOLO是当前发展最为迅速的目标检测算法。相比二阶段算法如Faster-RCNN,一阶段YOLO算法通过省略粗定位过程而调整骨干网络可获得更优性能[11],尤其是基于PyTorch框架的YOLOv5兼顾了轻量级和高准确度的特点。
DeepSORT是多目标跟踪中常用到的一种算法。相较于常规的基于特征的图像处理算法,该算法具有重复检测更稳定、算法结构更简单的特点,特别在目标交叉时ID交换和目标消失后重识别的问题上有较好效果。
故本系统选用YOLOv5和DeepSORT作为人员入侵目标检测算法模型。
3.1.1算法流程
算法总体流程是:首先,Jetson Nano读取视觉传感器的视频流,并将每帧视频数据写入视频队列。其次,YOLOv5算法从队列中取出当前数据帧送入主干网络Backbone。Backbone负责运动目标的特征提取,包括Fo⁃cus、BttlenCSP、SPP三个模块。再次,由颈部网络Neck对主干网络所提取的特征进行增强,所采用的模块是PANet路径聚合结构。然后,头部网络Head分别对原图像进行了8倍、16倍和32倍下采样,并分别生成3个不同大小的特征向量,用来检测不同大小的目标。最后,由DeepSORT算法对YOLOv5算法输出的预测框信息进行目标特征建模、匹配和跟踪,输出人员入侵的检测结果。算法工作流程如图8所示。
3.1.2 YOLO算法实现
(1)软件环境搭建
选取操作系统为Ubuntu18.04,在Ubuntu环境下通过指令分别安装软件包:Anaconda3、PyTorch1.8.0、Py⁃thon3.8、Cuda10.2、cuDnn8.2.0。以PyTorch为例,其安装过程如下:
S1.创建一个新的名为yolov5_wyy的虚拟环境:
conda create-n yolov5_wyy python==3.7
source activate yolov5_wyy
S2.安装PyTorch,torchvision:
conda install pytorch==1.8.0 torchvision==0.9.0
S3.验证pytorch和torchvision是否正确安装完。
(2)模型训练
按照如图9所示数据存储的目录格式,对包含人员的机器人作业图片进行处理和存储。人员标注采用labe⁃limg软件,其中图片和标签文件的名字一一对应,标签文件的形式为类别、中心点x、中心点y、边框宽度w、边框高度h。
修改yolov5_wyy目录下面的data和models两个模板文件,在yolov5_wyy.yaml文件中修改factory、robots、nc以及names四行,分别对应的是训练图片的路径、验证图片的路径、总数量以及类别。然后在models目录下面修改yolov5s.yaml文件,主要修改nc变量。最后,通过以下命令即可训练本文所需模型:python train.py--img 640--batch 16–epochs 5--data./data/yolov5_wyy..yaml--cfg./models/yolov5s.yaml--weights weighs/yolov5s.pt。
(3)模型测试
模型训练完成后,将runs/exp/weights下的模型(文件名后缀为pt)复制在yolov5文件夹下。运行命令:py⁃thon detect.py--weights yolov5_wyy.pt--source../proj⁃ect_train_data/
/images/Robots_img,对模型进行测试。
3.1.3 DeepSORT算法实现
本系统基于Yolov5_DeepSort_Pytorch开源软件实现人员的定位和追踪,其代码可从该地址获取:https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch.git。
Yolov5_DeepSort_Pytorch的DeepSORT算法流程主要包括4个阶段[12]。
(1)检测阶段:分析YOLOv5输入的视频帧,识别属于特定类型的对象,给出分类和坐标。
(2)轨迹处理和状态估计阶段:提取表观特征和运动特征,表观特征用于比对以避免ID Switch,运动特征便于卡尔曼滤波对其进行预测;同时,使用轨迹预测器预测该目标的下一个位置。
(3)相关性度量阶段:表观特征和运动特征用来计算两个目标之间的相似性。
(4)级联匹配阶段:计算前后两帧目标之前的匹配程度(利用匈牙利算法和级联匹配),为每个追踪到的目标分配ID。
本文结合YOLOv5目标检测和DeepSORT目标追踪算法,通过设置基本阈值参数控制轨迹预测的欧式距离,以实现人员入侵检测和跟踪功能。
3.2外设控制程序设计
外设控制程序主要包括双CPU冗余控制、云台驱动、外部通讯、视频处理、语音播报、参数配置及日志等。
(1)双CPU冗余控制
为提高系统可靠性,本系统采用Jetson Nano和STM32F407ZGT6构成双机冗余控制方式。Jetson Nano为主处理器,STM32F407ZGT6处于热备形式,两者通过SPI总线通讯[13]。利用校验算法相互监视对方的运行状况和通讯情况,一旦发现对方故障,当即发出报警,经过RS485总线或安全IO接口控制机器人停机,并将异常状态信息写入系统日志。
(2)云台驱动
设计PWM线程任务控制GPIO分别输出脉冲和方向信号至LV8728MR,以驱动步进电机转动。其工作流程是,第一次上电开机时,系统控制每个轴的步进电机往正方向运行到机械限位,并将机械限位设定为原点位置。然后根据系统已保存的参数,运行至工作角度。在远程调整模式下,通过上位机可以点动每个轴,以设定最佳的视觉传感器监控位置。
(3)外部通讯
通讯模块包括USB、以太网、RS485以及安全IO接口。USB用于U盘方式拷贝监控视频等文件。以太网用于连接上位机软件进行参数配置,也可连接机器人输出监控信号。以太网作为监控信号输出时,采用TCP/IP协议与机器人通讯。Jetson Nano和STM32F407ZGT6同时拥有对RS485和安全IO的控制权,在系统正常时,仅由Jetson Nano输出信号。当系统故障时STM32F407ZGT6通过RS485和安全IO同时输出报警信号。
(4)视频处理
视频处理模块创建3个线程,T1线程负责读取视频流,T2线程进行YOLOv5算法处理,T3线程负责压缩和存储视频流数据。
T1线程利用OpenCV库接口函数从视觉传感器获取视频流,将每帧视频数据先后写入到Q1、Q2队列中。其中Q1送至T3进行视频处理和存储,Q2送至T2进行YOLOv5算法处理。当算法检测到人员入侵时,T2线程将添加检测框的视频帧数据送至T3进行标记处理和存储。
(5)语音播报
语音播报模块根据人员入侵检测结果播报对应的语音提示,系统中事先存储录制好的音频文件,通过调用Ubuntu系统提供的音频播放API实现语音播放功能。
(6)参数配置及日志
为方便远程或远距离调试参数以及查看系统日志文件,本系统提供VNC后台服务供上位机PC远程连接,用户仅需在上位机PC上安装VNC软件,输入智能防护系统的IP地址即可远程操控其参数和日志文件。
4实验与分析
为测试系统的有效性,搭建了基于安全防护系统的机器人测试平台。通过设定机器人警示区、危险区等不同工作区域以验证对入侵人员识别以及分级报警的准确性。
机器人工作区域分为3个部分,最外圆和中间圆之间的环形区域为警示区,当系统检测到人员进入该区域将控制机器人减速。中间圆和最内圆之间的环形区域为危险区,一旦系统监测到人员入侵该区域则驱使机器人立即停止运行。
测试结果如图10—12所示。图10显示,当机器人工作区域没有人或者人员处于警示区之外时,系统不影响机器人的正常工作。此时,系统将实时追踪该入侵人员的动态位置但不发出任何报警指令。
由图11可知,当人员局部或全部处于警示区内时,系统控制机器人减速到额定速度的30%。若人员局部或全部处于危险区内,系统驱使机器人立即停机。如图12所示,人员在危险区的位置发生变化时,机器人位姿已不再变化,处于停止状态。
实验结果表明,本系统能够有效区分人员和运动的机器人,准确识别、定位及跟踪入侵机器人工作区域的人员,并可靠控制机器人响应相应的安全处理措施。
5结束语
本文针对人机共融、协同作业场景的安全防护问题,设计了一种基于Jetson和深度学习算法的智能安全防护系统。该系统利用Jetson作为主控平台,搭建视觉传感器、网络通讯、视频存储、云台驱动等外围模块。借助YOLO和DeepSORT算法实现了人员的实时且准确的识别、定位及跟踪。系统通过投影灯分级投射机器人工作区域以警示,在检测到人员闯入时语音报警,并控制机器人减速或停止运行以避免人机碰撞。本系统安装部署简单、鲁棒性高、识别准确、使用友好,为提高人机安全提供了一种有效手段,对人机协作普遍推广具有积极地促进作用。
参考文献:
[1]何玉庆,赵忆文,韩建达,等.与人共融——机器人技术发展的新趋势[J].机器人产业,2015(5):74-80.
[2]王志军,刘璐,李占贤.共融机器人综述及展望[J].制造技术与机床,2020(6):30-38.
[3]王秋惠,赵瑶瑶.机器人人机共融技术研究与进展[J].机器人技术与应用,2021(5):16-22.
[4]万燕英,伍祁林.工业机器人安全防护技术综述[J].机电工程技术,2021,50(9):121-123+173.
[5]王朝立.人机共融安全技术发展趋势展望[J].自动化仪表,2020,41(3):1-5.
[6]蔡灿,刘璇,张建华,等.工业机器人避碰算法研究与展望[J].机械设计,2018,35(4):1-7.
[7]刘畅.物联智能家居家庭安防系统关键技术研究[D].武汉:武汉工程大学,2014.
[8]吴昊,王浩,苏醒,等.自动驾驶系统中视觉感知模块的安全测试[J].计算机研究与发展,2022,59(5):1133-1147.
[9]陈一豪.基于Jetson的动态目标检测与测距装置研制[D].哈尔滨:哈尔滨工业大学,2021.
[10]王嘉琳.基于YOLOv5和DeepSORT的多目标跟踪算法研究与应用[D].济南:山东大学,2021.
[11]黄凯文,凌六一,王成军,等.基于改进YOLO和DeepSORT的实时多目标跟踪算法[J].电子测量技术,2022,45(6):7-13.
[12]金立生,华强,郭柏苍,等.基于优化DeepSort的前方车辆多目标跟踪[J].浙江大学学报(工学版),2021,55(6):1056-1064.
[13]王峰,刘功斌.基于双机冗余雷达伺服控制系统设计与应用[J].电子世界,2020(6):120-121.
