鞠 庆,刘飞飞,李光昌,姚志博
(1.江西理工大学机电工程学院,江西 赣州 341000;2.江西理工大学江西省机器视觉及智能系统重点实验室,江西 赣州 341000)
由于对疫情爆发的地点进行人工消毒有着巨大传染风险,因此通过自主导航机器人代替人员在高危地区消毒是当前最适当的解决方案[1]。空气和物体表面消毒工作采用的过氧化氢(H2O2)是一种清洁的消毒剂,可催化转化为氧气(O2)和水蒸气,在环境中的空气和物体表面无残留。对于室内空间消毒,可直接喷洒低浓度(如10%以下)的H2O2液体,但人工喷洒方法会导致H2O2的浪费。为了更有效地利用H2O2消毒,当前主流方法为干雾过氧化氢(DHP)技术[2]。
本文设计和开发一种新型的室内环境自主消毒防疫机器人系统,通过DHP的消毒方式与机器人自主导航技术系统地结合,广泛适用于室内场所的消毒防疫工作。
本文自主消毒防疫机器人系统设计分为机械结构设计、传感与控制系统设计、机器人系统集成与控制模式3个部分。机械结构主要是通过差速模型搭建的自主移动平台搭载相应的传感器,通过集成到机器人操作系统(robot operating system,ROS)中进行自主导航以及相应装置的控制。实现机器人以1 m/s 速度在室内环境中匀速移动,雾化消毒装置以2 000 mL/h的雾化速度持续工作10 h。
机器人结构如图1 所示,分为自主移动平台、H2O2雾化消毒模块以及配套连接装置3个部分。自主移动平台是由2个驱动轮和4 个万向轮组成的差速运动平台,包括移动平台内部结构、传感器以及外壳。配套连接装置将自主移动平台与H2O2雾化消毒装置紧密连接。H2O2雾化消毒装置是通过超声波雾化器将H2O2液体雾化成微米(μm)级的雾气,经过管道出口向四周散开消毒。
图1 防疫消毒机器人设计模型
自主移动平台的运动装置可以在平整的室内环境下前进、后退以及原地自转,通过式(1)可计算出运动平台的移速以及转速,实现高移动能力的消毒工作。根据图2 中两轮差速模型中左轮线速度vl、右轮线速度vr、轮距l可求得机器人的线速度v、角速度ω、旋转半径r。
图2 机器人两轮差速模型示意
为了能在有限的空间内无障碍通过,自主移动平台的尺寸设计为600 mm×500 mm,并且设计了配套连接装置能够与20 L容量的H2O2消毒装置相连。整个机器人的高度设计为1 300 mm,方便对室内空间进行充分消毒。在机器人底盘外壳上设计了激光雷达(LiDAR)、深度相机、超声波测距模块等传感器的安装口,方便传感器的安装。此外,自主移动平台背后设计了充电装置,可安装接触式充电桩模块。
机器人传感与控制系统中包含了感知传感器、H2O2雾化装置控制、伺服电机、电机驱动器等模块。机器人控制系统核心为搭载的i5-8265 的占美工控机,并基于ROS 搭建软件系统,实现通过话题接收或发送电机驱动信息、编码器信息以及各传感器信息。其中,通过编码器能够实时输出机器人的轮式里程计信息;通过LiDAR、深度相机、惯性测量单元(inertial measurement unit,IMU)能够对机器人的工作环境进行定位与建图;通过深度相机、LiDAR可以在导航过程中进行实时感知避障;通过LiDAR点云能够在机器人电量低于10%的情况下快速将机器人中心与充电桩中心对齐,实现自主充电功能。如图3所示,充电桩的充电电压为29.4 V,可直接为24 V 磷酸铁锂电池充电,并通过磷酸铁锂电池管理模块给整个系统供电。
图3 机器人系统电源与硬件的电路连接
自主消毒防疫机器人是将上述硬件组件包括移动机器人平台、配套连接装置、H2O2雾化消毒装置、传感器和控制板集成在一起。机器人的自主控制框架如图4 所示,可通过手柄、App无线远程、自主导航的方式控制消毒机器人移动,以及通过USBCAN分析仪向继电器发送指令控制雾化消毒装置的开关。
图4 防疫消毒机器人自主控制框架
机器人的控制可分为手动模式和自动模式。在手动控制模式下,操作者使用手柄遥控器或键盘来控制机器人的运动和雾化消毒装置的开关。这有助于在没有环境地图的情况下,根据操作者的独立判断进行快速消毒。通过遥控器驱动机器人扫描环境,建立自动导航的环境地图。在地图生成后,可使用自动模式来简化消毒任务,通过手动轨迹规划可以规划出一条合适的路线,重复消毒指定的区域,并在此过程中避开障碍物。
本文消毒机器人采用LiDAR 线段点云与充电桩V型槽进行对准匹配。如图5所示,LiDAR扫描至V型槽区域内,计算出扫描4个面组成的3个夹角θ1,θ2,θ3与V型槽的夹角是否匹配(本文设计充电桩V型槽的θ1和θ3相同)。若匹配,机器人根据机器人几何中心与LiDAR 的安装距情况,通过补偿距离,将在θ2角平分线与机器人几个中心对齐处停止运动,根据机器人位姿(箭头为机器人前进方向)旋转相应角度后退至充电桩接触完成自动充电任务。
图5 机器人与充电桩位姿匹配方法
消毒机器人需要在不熟悉的环境中进行自动导航,以赋予机器人生成跟踪行动的能力,特别是路径规划和导航策略需要实时在线[3]。移动机器人导航可以通过几何地图导航、拓扑地图导航和语义地图导航3 种不同的方法来解决。即时定位与建图(simultaneous localization and mapping,SLAM)已广泛用于生成度量地图,用于指导机器人通过度量路径规划在地图中移动[4]。
机器人在进行SLAM的过程中需要输入轮式里程计和IMU位姿信息配合激光里程计进行定位。单一的轮式里程计可直接测量机器人的位移和角度,具有较高局部角度测量精度和局部位置测量精度[5]。但轮式里程计具有累计误差和在非均匀的地面接触以及不同位置变化的摩擦系数导致滑移。IMU可以直接测量角速度和线加速度,可以通过积分方式得到机器人的角度和线速度变化,但低端的IMU在静止状态下存在漂移和噪声[6]。通过融合轮式里程计与IMU为下一步SLAM提供较为准确的里程计信息。
ROS官方提供了基于扩展卡尔曼滤波(EKF)的ROS_Pose_EKF功能包可以对轮式里程计、IMU 进行融合。而本文采用无迹卡尔曼滤波(UKF),通过使用加权统计线性回归过程实现随机线性化,这种线性化的方法叫做无损变换(unscented transform,UT)。这一技术主要通过n个在先验分布中采集的点(Sigma points)的线性回归来线性化随机变量的非线性函数。由于考虑的是随机变量的扩展,这种线性化要比EKF使用的泰勒级数线性化更准确[7],最后通过50Hz的频率发布里程计信息可更好地实现SLAM功能。
考虑到消毒机器人的应用场景中对象大多数形状都是规则的,且二维栅格地图能清晰无误地反映真实情况,足以满足室内消毒工作。因此,使用低成本的TOF二维LiDAR足以准确地识别物体,从而避免了部署昂贵的三维LiDAR。SLAM的主要功能是分析多只传感器的输入数据,确定机器人的位姿,并构建环境对应的地图。如图6所示,本文应用上一节中轮式里程计与IMU 通过UKF 融合得到的里程计,与LiDAR的点云里程计信息构建局部SLAM 与全局SLAM。二维激光SLAM中最常见的算法有Gmapping、Hector、Cartographer等[8],澳门科技大学团队研究的自主消毒机器人工作环境为像房间这种小空间,使用的是基于粒子滤波的Gmapping 算法[9]。本文研究的消毒机器人H2O2容量高且续航时间长,可适用于中、大型环境中。图7(a1)在酒店长廊环境中使用Gmapping 算法建立的二维栅格地图有明显的变形,以及图7(a2)在Gmapping算法绘制的地图中房间门口存在重投影现象以及边界不清晰现象。
图6 消毒机器人SLAM过程
图7 2 种算法建立的栅格地图质量对比
本文使用Cartographer算法是因为它具有回环检测以及鲁棒性[10],普遍适用于小型、大型、以及环形的场所,如医院大厅、图书馆大厅以及教室。Cartographer是使用scanmap的点云匹配方式,相较于scan-scan 提高了匹配精度,并且Cartographer支持轮式里程计数据、IMU 数据、LiDAR数据多源数据建图。通过众多submap 局部图构建全局地图,可以规避建图中动态物体的干扰。尤为重要的是在自主导航过程中Cartographer 可以通过submap 进行自定位(pure-localization),效果也是优于自适应蒙特卡罗粒子滤波定位方法(adaptive Monte Carlo localization,AMCL)。
经实践表明,在相同酒店走廊环境下如图7(b1)所示,使用UKF融合的里程计与Cartographer建的栅格地图在地图质量上明显优于Gmapping。如图7(b2)所示,通过Cartographer建的地图也不存在重投影和边界不清晰的现象。
在构建地图后,需要解决单点路径规划问题,使机器人能够在生成的二维网格图中的指定位置安全地进行多点消毒。在这项工作中,一个全局路径规划和一个局部路径规划被用于联合规划一个单点路径[11]。其中,全局路径规划可以快速计算出机器人到网格图中目标点的路径,然而可能会有人突然出现在预先计划的道路上,这些障碍没有记录在原始地图中。在这种情况下,局部路径规划将执行部分辅助路径规划,以避开障碍,使机器人安全到达目的地。
2.3.1 手动路径规划插件
本文采用waypoint 插件构建一条机器人工作路径,计算出规划的起始点与地图远点在X、Y方向的补偿值,然后在定位补偿后进行导航。这样就可以使得消毒机器人在固定的场景里面通过操作者设置的循环次数不停地工作。
2.3.2 全局路径规划
本文采用A*算法作为全局路径规划方法。A*算法是一种常用的图遍历方法,它连续查找优先级队列中优先级函数值最小的节点作为下一个遍历节点,并不断遍历直到达到目标。因此,它可以以最小的成本规划最佳路径。
2.3.3 局部路径规划
局部路径规划通常使用动态窗口算法(dynamic window algorithm,DWA)和基于优化的时间弹性带(time elastic band,TEB)算法。TEB在运动过程中会调整自己的位姿朝向,当到达目标点时,通常机器人的朝向也是目标朝向而不需要旋转[12]。DWA则是先到达目标坐标点,然后原地旋转到目标朝向。由于本文机器人为两轮差速机器人平台,TEB在运动中不断调节自身的运动方向,致使机器人运动不流畅,在启动和到达目标点时,出现不必要的后退,故而局部路径规划选择使用DWA算法。
本文基于java_rosbridge 库为自主消毒防疫机器人设计了远程控制App 界面,通过机器人的IP 地址连接ROS并进行控制。可视化显示机器人的Rviz界面,同时可以进行单点、多点、划线循环指令,控制机器人按照指定的路径工作。界面中还能够反馈机器人的电量,在电量过低报警时,也可通过App控制机器人到指定的充电桩进行充电。
样机由3部分组成,底盘框架与电器件、底盘外壳、超声波雾化消毒装置。其中,底盘框架与电器件的实验样机如图8(a)所示,图8(b)为3D打印的底盘外壳,图8(c)为超声波雾化消毒装置。将上述3 部分组装而成图8(d)中自主消毒防疫机器人样机,并通过了在酒店走廊的10 h自主消毒功能测试。
图8 试验样机与工作效果
本文实验在实际场景下测得10 m 的距离,通过ROS的/里程计(ODOM)话题收集机器人的实际行驶里程计与多传感器融合优化后里程计数据,如表1。
表1 里程计优化前与进行UKF融合后的误差对比 m
本文提出了一种基于ROS 的室内环境自主消毒防疫机器人的设计和实现。该机器人采用H2O2雾化法对室内空气和表面进行深度消毒工作;集成了导航、ROS规划和雾化H2O2消毒等功能,制造了一个智能消毒的机器人模型。所开发的机器人系统已在实验室、图书馆、高铁站、酒店等真实室内环境中部署和测试。通过里程计定位精度、建立栅格地图的精度、H2O2雾化状况,表明所设计的自主消毒防疫机器人能够在室内环境下高精度定位与建图、高效率地消毒,降低了人在室内感染病毒的风险。