李一帆,蒋恒新,梁进,罗腾涵,王露
(重庆交通大学,重庆,400074)
医疗服务机器人技术是集医学、生物力学、机械学、机械力学、材料学、计算机图形学、计算机视觉、数学分析、机器人等诸多学科为一体的新型交叉研究领域,具有重要的研究价值,在军用和民用中有着广泛的应用前景,是目前机器人领域的研究热点之一[1]。目前,在我国医疗机器人市场中,康复机器人占比最大,约为41%;手术机器人占比相差不大,分别为 17%、16%[2]。医疗服务机器人主要包括医疗问诊、医院物流、影像定位等类型[3]。疫情以来,各种智能机器人在医院诊疗体系中发挥所长。物流机器人不仅分担了不同时段的配送药品任务,减少患者等待用药的时间,还降低了因人工配送产生交叉感染的风险,最大限度的保护了医患的健康和安全。基于医疗服务机器人的板块尚未普及,未来市场发展潜力巨大,本文拟设计一种实现医疗物资配送,降低人工成本的智慧医疗服务机器人,以此来提高医院日常运营和服务效率,让医护人员将精力集中在为患者提供诊疗服务上,让老百姓体验到更加智能、高效、舒畅的就医体验。
如图1所示,本设计是以树莓派4B为主控制器,STM32F103为从控制器的智慧医疗服务机器人。该机器人通过从控制模块将电机编码器与加速度传感器模块采集的数据融合后得到里程计数据,接着主控制模块综合里程计、惯性导航和激光雷达采集的数据,利用激光SLAM技术进行实时建图,建图完毕后保存地图。上位机远程确定行走目标点后,主控制器进行全局路径规划,之后利用激光雷达和惯性导航实时采集的数据通过局部路径规划算法前往目标点,完成自主避障导航。监测模块实时获取前方图像信息并传输至通信模块,通信模块将实时采集到的图像和机器人的姿态信息传输至上位机,以便实时观察机器人的运行状态(若有突发状况,相关人员可及时前往查看),从而保持高效的工作状态。驱动模块可驱动机器人行走(如遇突发情况可紧急制动)。机器人内部放药区采用升降放置平台,在用户取药的时,可通过扫描病人二维码的方式打开该病人的药物放置仓,以确保药品的精确送达。显示模块显示当前机器人的姿态与药品等相关信息,方便相关人员查看。通过ADC数模转换模块可用于检测电池模块剩余电压,根据功率计算剩余运行时间,以便低电量时即使充电避免影响正常使用。过充过放保护模块用于控制充电速度,防止电源在长时间使用后,因多次过充和过放导致电池寿命下降。稳压模块用于保证装置各个部分供电稳定,能够正常稳定运行。
图1 系统硬件原理图
本设计使用的加速度传感器模块采用高性能的微处理器和先进的动力学解算与卡尔曼动态滤波算法,能够快速求解出装置当前的实时运动姿态;采用数学积分及运动估算,解算出高精度旋转角度,避免出现大幅度误差;内部集成了姿态解算器,能够在动态环境下精确输出装置当前姿态,稳定度极高。从控制器通过串口获取该模块检测到的偏航角与角加速度,利用这些数据与轮式编码器的数据解算出里程计数据,为建图提供精确的数据基础。
本设计采用思岚RPLIDAR-AIM8激光雷达,可对周围环境进行360度全方位扫描测距,从而获得周围环境的轮廓图。内置了9自由度惯性导航系统,可在高低起伏、存在倾角的手持建图模式下正常工作,保证很好的建图数据质量。无论是室内复杂环境,还是室外强光直射环境,出色的展现出其面对室内外复杂场景地图构建和定位的能力。该模块通过USB与主控制器相连,主控制器通过USB不断获取雷达深度信息,并将其与里程计信息相结合完成建图与导航工作。
本装置显示模块采用LCD显示屏,通过显示模块可以查看机器人运动、电池剩余电量、已放置药品数量和药品是否被取走等信息,方便医护人员和患者的使用,提高运行效率。该LCD显示屏通过常规HDMI线与树莓派进行通信,树莓派将相关数据处理后显示在屏幕上反馈给用户。
里程计是反映机器人每时每刻坐标姿态变化的信息,是机器人建图导航不可或缺的数据之一。里程计信息则需要机器人底盘的运动学模型与相关传感器测量的数据相结合解算出。本设计采用的是两轮差分底盘,由于正常机器人运动时有x,y,z三轴自由度,而驱动差分底盘则只需要左右轮的速度便可以,所以该底盘是一个欠驱动系统。对于该底盘来说,机器人每时每刻运动时的轨迹都可以看成是一个圆弧,当机器人原地旋转时轨迹是一个半径为零的圆弧,当直线行走时轨迹是一个半径趋近于无穷大的圆弧。由于该底盘的机器人无法进行平移运动且运动轨迹是一个圆弧,所以运动学模型主要是运动的线速度与角速度。根据圆弧运动中线速度、角速度和运动半径之间的关系,我们便可以推算出底盘的线速度与角速度公式:
本设计采用Gmappinng建图方法对医院室内进行建图,该方法集成了Rao-Blackwellized粒子滤波算法。gmapping功能包订阅机器人的深度信息、IMU信息和里程计信息,同时完成一些必要参数的配置,即可创建并输出基于概率的二维栅格地图。在获取雷达和里程计信息后,树莓派有必要知道各坐标系之间的坐标变换,在ROS中称为tf变换。其中必须的tf变换为
图2 建图状态图
ROS中的自主导航是基于move_base这个导航关键功能包。自主导航较之建图多了定位手段,amcl功能包采用蒙特卡罗定位方法,用大量粒子来估计机器人位姿,粒子最密集处为amcl估算机器人在地图坐标系的位姿信息。
在导航过程中,move_base提供全局路径规划和本地实时规划,全局路径规划采用Dijkstra算法规划全局最优路径。本地实时规划采用适合于机器人底盘形状的Dynamic Window Approaches算法,搜索躲避和行进的多条路径,综合各评价标准选取最优路径。该规划提供多种接口,如goal:发布任务目标;cancel:请求取消任务;status:通知客户端当前的状态等。机器人在加入自主导航功能后,便有了基本的完成送药的能力。
本设计通过OPENCV完成对二维码的检测与识别,首先创建一个QRCodeDetector类的对象,然后调用dete ctAndDecode()函数完成对二维码的检测与识别。该函数首先获取摄像头图像并检测是否有二维码存在,当检测到二维码存在后,便开始搜索二维码的位置探测图形,即QR二维码中三个顶点处的“回”字区域,以此确定二维码在图像中的位置,然后对其进行解码获取字符信息并返回。树莓派获取二维码字符信息后,确定用户身份信息是否正确,如正确便开启舱门,使用户完成取药。
系统开始后,首先将上位机和下位机初始化,下位机通过通信模块接受上位机的远程控制指令,控制电机驱动机器人围绕所在空间行走,期间下位机不断获取来自激光雷达、轮式编码器与加速度传感器模块采集的数据,并利用Gmapping功能包进行实时建图并保存地图,同时将数据传送至上位机使其显示实时建图过程。当需要配送药品时,医护人员首先将药品放置升降平台上,然后通过上位机远程确定配送目标点,之后下位机利用建立好的地形图进行全局路径规划并开始配送。配送期间下位机不断接收来自各个传感器采集的数据并进行局部路径规划,通过局部路径规划与全局路径规划实现机器人的自主避障导航,并控制机器人前往配送地点。抵达配送点后,取药人员可通过扫描患者二维码认证身份信息,机器人确认取药人员身份信息后,打开舱门升起升降放置平台,同时显示模块显示药品相关信息,方便取药。在行进过程中,下位机不断传输摄像头采集的图像和机器人运行姿态等信息至上位机,上位机接收数据后显示摄像头图像与机器人姿态等信息以便工作人员查看。当工作人员通过摄像头图像确定出现异常情况时,可及时通知相关人员前往现场处理。在药品全部被取出后,机器人返回起点,完成一个工作任务。升降放置平台升起和降落状态如图3和图4所示。
图3 升降装置升起示意图
图4 升降装置降落示意图
本设计是基于激光SLAM技术的智慧医疗服务机器人,通过将激光雷达,惯性导航模块,加速度传感器模块和轮式编码器模块采集的数据进行融合,并利用激光SLAM技术进行实时建图并保存。在接收到远程发送的目的地信息后,机器人进行路径规划并通过自主避障导航算法前往目的地,实现药品的送达。针对目前疫情期间在医护人员配送药品时容易产生交叉感染的情况,本设计很好的实现了药品的无接触配送,降低了医患人员发生交叉感染的概率,并且不会影响医院的正常运行,提高了医院的日常运行与服务效率。这种能够实现药品无接触配送,节约时间与人力的智慧医疗服务机器人,不仅满足了如今疫情期间降低感染率的需求,也符合如今医疗服务机器人的作业环境一般在医院、家庭及非特定的多种场合,具有移动性与导航、识别及规避能力,以及智能化的人机交互界面;在需要人工控制的情况下,还要具备远程控制能力[4]的特点,具有广阔的市场前景。