基于YOLOv5目标检测技术的送药机器人设计与实现

(整期优先)网络出版时间:2023-03-13
/ 3

基于YOLOv5目标检测技术的送药机器人设计与实现

黄家谦,黄家晖,周业森,何俊熙,黎俊毅,陈俊坚

广州南方学院 广东省 广州市 510970

摘要:现如今,医疗水平不断提高,医院的病患越来越多。医院在繁忙时医护人员会人手不足的情况,传染病也越来越受人们重视,在疫情时也衍生出“无接触”这个流行词,并被运用于各个领域。为减轻医护人员的工作量,减少医护人员与传染病患者的直接接触,为此我们设想制作一款送药机器人,利用了“无接触”的方式进行药物的配送,以此便利医护人员。本产品采用STM32作为机器人运动控制器,利用Jaston nano作为主控,上位机使用ROS控制系统,控制和监测机器人。YOLOv5目标检测技术、摄像头与Jaston nano结合进行图像识别,更快更精准的识别物品。同时机器人拥有六自由度机械臂,实现配送全程“无接触”。机器人使用物联网传感器,通过WiFi与激光雷达、UWB等技术相结合,实现传输实时数据反馈,便于监控机器人实时状态。

关键词:送药机器人;YOLOv5算法;无接触;机械臂;物联网;nano;

1、绪论

该款送药机器人能够精准识别任务所需药瓶,通过机械臂进行精确抓取。再通过物联网技术精准定位机器人位置和任务目标点,将所需要的药品投放运送至目标点,该项目主要应用于医院感染隔离病区或者医院的住院部为患者配送药物,减少医护人员对病患的接触进而降低医护人员感染的风险,也在一定程度下减少了医护人员的工作量,同时该项目机器人也可以应用于医院的各个场景,药房—手术室,药房—病房,药房-急诊抢救室等场景。

为了响应国家“十四五规划”加快数字化产业的发展,同时未来与5G技术结合,实现实时通信,智能送药机器人也配备了WIFI通信模块,实时联网,并结合云端服务器处理任务数据,让机器人更智能,更方便,更高效。

2、送药机器人的整体结构设计

为了适应医院场景中各个场景的应用,机器人身体采用金属作为框架,增加其抗损坏能力。底盘部分采用阿克曼底盘和橡胶轮,增强其地形适应性。 采用MD36N 35W直流有刷电机以及S20F 20kg扭矩数字电机,提高其负载能力以及转向能力。

机械臂部分采用六自由度机械臂,机械臂采用S20F大扭矩数字舵机,使其抓取更加有力、更加牢固。以jeston nano作为机械臂的主控,控制机械臂对物体精准识别和抓取。

在机器人前端安装有激光雷达,用于机器人室内建图与感知障碍。并配合上RGB摄像头,用于路线规划,使机器人灵活性更高。机器人模拟图如图1所示。

17758b0c01bd62ae3bf2f22d3e3d1dc

图1 机器人模拟图

3、送药机器人的硬件设计

3.1机器人主控

机器人底盘MCU采用STM32F407VET6作为底层节点控制器,控制小车底盘运动。其拥有丰富的串口,相比起STM32F1系列可以扩展更多的外接设备,丰富机器人的功能。机器人采用jeston nano作为ROS主控与STM32之间进行通信,控制机器人的整体运动,以及采集机器人的姿态信息,反馈到上位机中。用户可通过上位机与jeston nano之间的通信,对机器人发布相应的指令。

3.2机械臂控制部分

机械臂采用六自由度机械臂,机械臂舵机采用可180°旋转的S20F大扭矩数字舵机,使机器人的灵活性更高。其采用STM32F103作为底层控制器,与jeston nano进行连接,使机械臂作为ROS系统的一个控制节点,使机械臂的运动姿态和控制可以通过上位机使用ROS系统进行查看和实现。

3.3障碍感知以及建图部分

在机器人的设计当中采用了镭神N10激光雷达模块,当机器在行进的过程中,雷达可以扫描周围的障碍物,当在设定范围内遇到障碍物的时候机器人会立即停下来。与此同时,雷达还具有建图导航功能,能够很好的辅助机器人进行路径规划。N10激光雷达模块可以实现在二维平面的11-25米半径范围内进行 360 度全方位的激光测距扫描,并产生所在空间的平面点云地图信息。这些云地图信息可用于地图测绘、机器人定位导航、物体/环境建模等实际应用中。在将采样周期设为4500点采样/周的条件下,RPLIDAR 扫描频率达 6hz,并且最高可达 12hz 的扫描频率。N10激光雷达采用更先进的TOF测距原理,使其具备更高的稳定性、更好的抗光性,整体性能远胜于使用三角测距的雷达,在各种室内环境以及无日光直接照射的室外环境下均表现出色。

3.4机器人定位部分

机器人采用超宽带(UWB)与激光SLAM 实现实时定位功能,该设计主要是在UBUNTU 环境下,通过ROS控制系统完成的,在ROS控制系统中,将UWB的定位信息和滤波位置解算引入,将位置坐标信息和坐标系结合,结合激光雷达实时扫描的数据,以话题(topic)的形式发布出去,再引入IMU中磁力计的角度来补充位姿中的角度信息,由Gmapping订阅当前位置坐标和点云信息,然后在RVIZ 中生成可视化栅格地图,便于用户查看和操控。

图2 机器人定位操作

3.5机器人姿态采集部分

姿态采集方案是采用了MPU9250集成模块,其可直接输出航向角数据。MPU9250内部集成有3轴陀螺仪、3轴加速度计和3轴磁力计,输出都是16位的数字量;可以通过集成电路总线(IIC)接口和单片机进行数据交互,传输速率可达400kHz/s。陀螺仪的角速度测量范围最高达±2000(°/s),具有良好的动态响应特性。加速度计的测量范围最大为16g(q为重力加速度),静态测量精度高。磁力计采用高灵度霍尔型传感器进行数据采集,磁感应强度测量范围为±4800uT,可用于对偏航角的辅助测量。MPU9250自带的数字运动处理器硬件加速引擎,可以整合九轴传感器数据,向应用端输出完整的9 轴融合演算数据。有了DMP,我们可以使用InvenSense公司提供的运动处理库,非常方便的实现姿态解算,降低了运动处理运算对操作系统的负荷,同时大大降低了开发难度。

3.6机器人智能语音部分

智能语音部分采用了科大讯飞的语音模块,该麦克风阵列是由一定数目的声学传感器(一般为麦克风)组成,对声场的空间特性进行采样并处理的系统。其主要作用有声源定位,抑制背景噪声、干扰、混响、回声,信号提取与分离。声源定位是指利用麦克风阵列计算声源距离阵列的角度和距离,使用基于TDOA(Time Difference Of Arrival,到达时间差)实现对目标声源的跟踪;信号的提取与分离是指在期望方向上有效地形成一个波束,仅拾取波束内的信号,从而达到同时提取声源和抑制噪声的目的;此外利用麦克风阵列提供的信息基于深度神经网络可实现有效的混响去除,从而极大程度上提升了真实应用场景中语音交互的效果。

4、送药机器人基于YOLOv5实时目标检测技术的图像识别部分

YOLO(You only look once)是一种实时目标检测算法。本课题采用YOLO v5与jeston nano结合,精准的识别物体,提高物体识别速度,YOLO v5是一种单阶段目标检测算法。其组成如下:

输入端:在模型训练阶段,主要包括Mosaic数据增强、自适应锚框计算、自适应图片缩放;

Backbone网络:融合其它检测算法中的一些新思路,主要包括:Focus结构与CSP结构;

Neck网络:各种混合和组合图像特征的网络层,并将图像特征传递到预测层。目标检测网络在BackBone与最后的Head输出层之间往往会插入一些层,Yolov5中添加了FPN+PAN结构;

Head输出层:对图像特征进行预测,生成边界框和并预测类别。输出层的锚框机制与YOLOv4相同,主要改进的是训练时的损失函数GIOU_Loss,以及预测框筛选的DIOU_nms。

YOLOv5采用了跨邻域网格的匹配策略,从而得到更多的正样本anchor,可加速收敛。其GT可以跨层预测,即有些bbox在多个预测层都算正样本,匹配数范围可以是3-9个。这使其得到的样本用于识别可以提高速度和准确率。

5、送药机器人软件设计部分

5.1送药机器人上位机设计与实现

上位机软件主要包括了:当前及目的地坐标显示模块、机器人电量模块、机器人控制指令按钮发送模块、发送和处理参考节点数据的模块。本课题中“无接触”式的送药机器人系统中,参考节点与上位机软件之间使用 UDP 传输数据,上位机软件与下位机软件使用 TCP 传输数据,以UDP为主,TCP为辅的方式。

5.2送药机器人下位机设计与实现 

下位机系统以STM32F407VET6芯片为控制核心,通过串口连接WIFIESP8266模块,WIFI模块接收上位机发送的任务信息,然后通过串口将数据传输给控制核心;数据处理后,发送运行指令。在送药机器人运行过程中,系统采用超声波避障传感器采集信息并通过I2C将数据传输给STM32控制核心,将采集到的距离信息用于判断机器人前的障碍物与自身的距离,如果障碍物与机器人之间的距离已经小于设定的安全距离,使用紧急制动停下机器人的运作,避开危险后继续前进;通过串口分别采集里程信息和方位角信息,用于判断机器人的姿态,辅助机器人及时调整;通过接一块TFT触控板,显示送药信息和提供查询科室服务。STM32控制核心外接jseton nano控制板,与其产生通信,用于处理摄像头识别的任务二维码、药品大小、抓取药品是否正确和确定抓取方式,并控制机械臂进行抓取。

5.3任务发布系统整体设计与实现

本课题研究中,我们设计了一款微信小程序作为任务发布系统。在微信小程序数据存储上,我们采用的是Mysql数据库,MySQL具有可移植性强的特点,能够运行在多种系统平台上面,如windouws,Linux等,其中SQL可以使用集合作为输入、查询等操作的参数,从而实现复杂的、有条件的镶套查询,在此基础上有利于本课题研究中任务的发布、接收、查看。对于小程序后端开发,我选择的是Java语言,Java这一高级程序设计语言与其他高级语言相比,最突出的优点是它的与平台的无关性,其在编写后可以在其他地方运行它,而无需在编译后更改它。其中Java的MQTT协议能够从断开的故障中恢复不需要进一步的代码需求,比起HTTP每个新请求都需要重新建立HTTP,会导致较大的开销,而MQTT使用的永久连接减少了这一开销,而且MQTT的简单性更有助于以极少的精力在额外的客户端实现MQTT,所以我们选择以MQTT协议来进行对Tomact服务器的编写。在小程序与机器人的通讯方面,机器人配备有ESP8266-WIFI模块,Tomact服务器可以通过WIFI与上位机以及机器人进行数据传输。

5fb2cbaaa2574eb9001e1791a5c888b

图3 任务发布系统框架

588194cb92efe305c369f744ed0744f

图4 微信小程序

6、总结

系统基于STM32于jeston nano结合开发的送药机器人,通过无线通信技术和物联网技术的结合,用网络通信的方式传输信息和指令,设计一款可以在医院使用的“无接触”式的药物配送机器人,该机器人的功能包括:基于UWB技术的精准定位,基于YOLO v5的药瓶大小、形状、二维码识别和药物抓取、投放,行进中自动对障碍物的判断、躲避和反馈,拥有语音播报、语音唤醒与指路功能,并可以多客户端配对操控。

本文设计的送药机器人,针对当下医院人手不足的问题,减轻医护人员的工作强度,以及目的是希望智慧医疗行业可以日益突破。