自主移动药品配送机器人的设计与仿真

2022-09-24 10:29蔺晟杰王红军戈伦黄维轩马康
关键词:麦克底盘子系统

蔺晟杰,王红军,2,3,戈伦,黄维轩,马康

(1.北京信息科技大学 机电工程学院,北京 100192;2.北京信息科技大学 高端装备智能感知与控制北京市国际科技合作基地,北京 100192;3.北京信息科技大学 现代测控技术教育部重点实验室,北京 100192;4.北京邮电大学 现代邮政学院,北京 100876)

0 引言

临床上,对于传染性疾病最有效的应对办法是将感染的物品和病人与健康人群进行隔离。为了提高医护人员的工作效率,减少人员直接接触,以避免工作人员交叉感染,可以在医院内使用自主移动机器人(autonomous mobile robot,AMR)运送药品等物资至指定位置[1]。

甘粒等[2]认为目前物流机器人在药品配送场景的应用尚处于较浅层次,在各方面仍有很大发展空间,未来可以为医疗健康领域事业提供智慧保障。Prabhakar等[3]设计了一种红外循迹导航方式的药品配送自动导引车(auto guided vehicle,AGV),使用托盘盛装需要配送的药品,但红外循迹导航方式不能实现机器人的快速部署。胡小龙为了解决目前配送机器人存储量小的问题,设计了一种拖车型的自主医用配送机器人[4],但拖车型机器人的转弯半径较大,进入病房较为困难,不能实现全向移动。广州赛特智能科技有限公司的配送机器人产品采用了模块化设计,可以更换箱体。坎德拉(深圳)科技创新有限公司的“烛光”机器人产品采用分体式结构,以机器人自主更换箱体的方式实现了无缝切换多种功能[5]。这些机器人多是将药品配送到病区的护士站和病房门口,不能配送到病床旁,所能服务的病患群体有限。针对此现状,本文设计了一种具有全向移动能力的药品配送机器人,机器人可以将药品配送到病床旁,并可以根据实际需求更换药厢。

1 药品配送机器人的设计方案

1.1 结构设计

药品配送机器人应具有下列功能:一是自主移动功能,药品配送机器人可在医院室内环境自主移动;二是药品配送功能,药品配送机器人可以实现在医院内大范围的药品运输,可将药品配送至病床,以便病患或护理人员取药;三是身份认证功能,考虑到药品及用药安全,每位病患的药品应单独存放,存放和取出药品时均需进行相应的身份验证,在验证通过后方可进行相应操作。

使用SolidWorks搭建药品配送机器人的三维模型,如图1所示。

医院室内环境对药品配送机器人的灵活性有较高的要求,所以机器人的走行部采用麦克纳姆轮,既可以前后左右平移,也可以在原地绕回转中心自转[6]。多种传感器根据需求安装于药品配送机器人的不同部位。前端的屏幕用于人机交互,在运行中播放机器人状态提示语,在存取药品时播放操作提示。

图1 药品配送机器人三维模型

药品配送机器人采用模块化的结构设计,可以根据使用需求更换不同的药箱。不同用途的药厢具有相同的外形尺寸,并且可以通过相同的固定连接结构安装于机器人的底盘上。图1中的药厢由两组铁质厢体组成,单组厢体为4层,最下层为设备层,其余为储药层。设备层用于固定药厢、安装药厢的控制板以及检修更换储药层的电磁锁。储药层包括3个大号格口和6个小号格口。每个格口门均采用上翻式的结构,配有电磁锁进行开闭。

药品配送机器人的主要参数如表1所示。

表1 药品配送机器人主要参数

1.2 控制系统硬件设计

1.2.1 硬件系统

系统采用了上位机—下位机模式,上位机与下位机间的通信方式为串口通信。

上位机采用NVIDIA AGX Xavier开发板。下位机的主控芯片采用STM32F407IGT6,通过CH340芯片与上位机进行串口通信,通过RS485总线与电机驱动器通信以控制电机。药品配送机器人配有1个激光雷达用于扫描环境,8个单点测距激光雷达用于测距避障,1台相机用于在取药时对医护人员进行人脸识别以确认身份,1个惯性测量单元(inertial measurement unit,IMU)用于测量机器人的加速度,以及4个增量编码器用于测量电机转过的角度。图2为药品配送机器人的硬件拓扑图,展示了上位机、下位机和传感器的连接关系。

图2 药品配送机器人控制系统的硬件拓扑图

1.2.2 安全防护措施

药品配送机器人使用标称输出电压为24 V的锂电池作为电源。定义电机等动力装置为动力系统,其余为非动力系统。考虑到人身和设备安全问题,在电路设计中采取了如下措施。首先电路中设置了多级开关:第一级开关为漏电保护开关,可以通过大电流,并在电流过大时将电路切断以保护电路;第二级开关为动力系统和非动力系统的独立开关,根据机器人的运行计划和状态使用不同的开关。急停开关与动力系统分开关串联在中间继电器的控制电路中。其次在非动力系统设置隔离电路,对动力系统和非动力系统进行隔离。另外为防止漏电对人身及机器人造成伤害,将机器人的金属结构接地。

1.3 控制系统软件设计

1.3.1 系统架构

药品配送机器人的控制系统以机器人操作系统ROS(robot operating system)为核心框架,分别由上位机和下位机承担不同的工作[7]。上位机是药品配送机器人的主控单元,功能有:从服务器下载任务信息并上传机器人的状态信息至服务器;处理药品配送机器人的感知、规划任务;与下位机通信进行运动控制等。下位机主要处理实时任务,功能为运动控制等。

药品配送机器人的控制系统框架如图3所示,以向靠近服务器方向进行信息传递为“上传”,反之则为“下传”。系统基本控制流程如下:信息管理系统向药品配送机器人下传任务数据,经过数据处理、解析后,将目标点的位姿传送至导航子系统,经过规划后,机器人出发配送,将规划的速度通过串口发送至下位机,运动执行子系统解算后将速度通过RS485总线发送给电机驱动器。到达目标点后,药厢控制器读取相机数据识别人脸并发送至服务器校验,根据服务器的响应结果开启对应格口门或提示错误。

1.3.2 运动学建模

在控制系统中,麦克纳姆轮底盘的正运动学为已知机器人底盘的速度及角速度,推算4个轮子的线速度,即求4个麦克纳姆轮或电机的速度;逆运动学为已知每个轮子的线速度,推算底盘的速度、角速度,进一步可得机器人的位移,这是基于轮式编码器的里程计工作原理[8]。

在图4所示的坐标系中,定义药品配送机器人的底盘回转中心为原点O,前进方向为坐标系X轴的正方向,向左平移的方向为坐标系Y轴的正方向。其中n为麦克纳姆轮的序号,n=1~4;(xn,yn)为麦克纳姆轮中心点在底盘坐标系的坐标;v为底盘线速度,单位为mm/s;设xn、yn均为定值,a是麦克纳姆轮中心到底盘回转中心的距离的水平分量的绝对值,即xn的绝对值,b是麦克纳姆轮中心到底盘回转中心的距离的竖直分量的绝对值,即yn的绝对值。a、b的单位均为mm。

令k=a+b,则图4中麦克纳姆轮底盘的运动学逆解为

(1)

运动学正解为

(2)

式中:vx为底盘速度v在X轴的分量,单位为mm/s,定义正方向与X轴正方向相同;vy为底盘速度v在Y轴的分量,单位为mm/s,定义正方向与Y轴正方向相同;ω为底盘绕回转中心自转的角速度,单位为rad/s,定义正方向为俯视时逆时针方向;vω1、vω2、vω3和vω4分别为麦克纳姆轮1~4的线速度,单位均为mm/s。

图3 药品配送机器人控制系统框架

图4 麦克纳姆轮底盘坐标系

设系统采样周期为T,单位为s,初始状态时世界坐标系与机器人坐标系重合,则第t时刻机器人在世界坐标系中的位姿为

(3)

式中:vxt为第t时刻机器人底盘的速度在X轴的分量,单位为mm/s;vyt为第t时刻机器人底盘的速度在Y轴的分量,单位为mm/s;ωt为第t时刻机器人底盘绕回转中心自转的角速度,单位为rad/s;x(t)、y(t)为第t时刻机器人在世界坐标系中的坐标,单位均为mm;θ(t)为第t时刻机器人在世界坐标系中转过的角度,单位为rad。

1.3.3 控制算法设计

控制系统包括运动执行子系统和导航子系统。

运动执行子系统具有以下功能:解析由上位机发送的数据指令;使用PID控制器设置轮速;解析电机反馈的电机状态数据,并计算里程计数据;上传里程计数据到上位机。

运动执行子系统的流程如图5所示。在运算单元上电时运动执行子系统同步启动。首先进行各外设的初始化。当下位机通过串口中断接收到上位机下发的机器人的速度时,通过运动学逆解式(1)求得每个麦克纳姆轮的线速度,经换算求得电机转速。电机转速ω与麦克纳姆轮线速度v的转换关系为

(4)

式中:R为麦克纳姆轮的半径,单位为mm;ω的单位为rad/s,v的单位为mm/s。

当通过RS485中断接收到电机驱动器反馈的麦克纳姆轮转过的圈数信息时,运动执行子系统通过解析函数将数据写入到对应的电机反馈结构体中。轮速的PID控制器在定时器中断中调用,运行频率为1 kHz,即1 ms产生一次中断,以固定的频率对轮速进行控制。根据式(2)及式(3)推算里程计,将位姿及速度信息通过串口通信发送至导航子系统。相邻两次电机驱动器反馈的麦克纳姆轮的圈数之差为Δc,对应的时间之差为Δt(单位为s),则麦克纳姆轮的线速度为

(5)

为了防止上位机和下位机的串口通信异常时机器人出现失控,在检测到串口通信超时后运动控制子系统会控制电机停车,以确保安全。

图5 运动执行子系统流程

机器人里程计模块将根据轮式里程计数据和IMU数据计算后的里程计数据发送至导航子系统。导航子系统具有定位、路径规划等功能。定位功能以ROS的AMCL功能包为基础进行设计,采用自适应蒙特卡洛定位(adaptive Monte Carlo localization,AMCL)算法实现[9]。AMCL算法融合多种蒙特卡洛定位算法,根据已知地图使用粒子滤波器实现对机器人的定位,同时解决了“机器人绑架”问题[10]。

路径规划功能以ROS的move_base功能包为基础进行设计。导航子系统的路径规划功能细分为全局路径规划和局部路径规划。在配置机器人时,手动操作机器人,依托多种传感器信息,利用SLAM算法获得运行环境的全局代价地图(global_costmap)。机器人在获得目的地位置及位姿信息后,全局路径规划器根据全局代价地图计算出一条可行路线,在这条路线上机器人在行进中调用局部路径规划器根据激光雷达的信息、本地代价地图(local_costmap)及膨胀半径进行横向及纵向控制。

全局路径规划功能采用A*算法实现。A*算法是一种启发式搜索算法,多用于在静态地图中求解最短路径。A*算法使用代价函数f(n)=g(n)+h(n)的最小值作为寻找最优路径的依据,其中f(n)为经过该节点的路线从起点到终点的总代价值,g(n)为从起点到当前搜索点实际的距离代价值,h(n)为从当前搜索点到终点的代价的估计函数[11]。

局部路径规划功能采用动态窗口算法(dynamic window approaches,DWA)实现。DWA算法在速度空间内对机器人的速度进行采样并对运动轨迹进行预测,对所预测的轨迹进行评分,最终得到更安全、平滑的最优局部路径[12]。

在实际生产应用中,药品配送机器人往往是从固定点出发去往多个目的地进行配送,即药品配送机器人的导航系统具备多目标点导航的功能。多目标点导航功能基于ROS的Action消息机制开发。使用Action机制可以根据任务进度进行不同的操作,例如在到达当前目标点并等待一定时间后可以设置下一个目标点。

1.3.4 远程控制设计

使用Qt开发了运行于Windows操作系统的远程控制客户端。药品配送机器人与远程控制客户端处于同一局域网中,远程控制客户端通过用户数据报协议(user datagram protocol,UDP)与药品配送机器人通信,实现远程控制药品配送机器人移动及打开药厢格口门的操作[13-14]。

远程控制客户端界面如图6所示。

图6 远程客户端界面

在远程控制客户端输入机器人IP和药柜IP,可以远程控制相应的药品配送机器人运动。客户端界面有“上”“下”“左”“右”“停”等按钮,分别对应键盘上的4个方向键及空格键,用户可以通过键盘按键或鼠标点击按钮控制机器人运动。开启药柜时可以选择“一键开启药柜”或输入药柜标号后开启对应药柜。机器人接收到指令后执行相应动作。

2 仿真实验

自主移动功能是药品配送机器人提供药品配送服务的基础,使用仿真软件Webots对设计方案中该项功能的可行性进行验证。

Webots是一款开源的机器人仿真软件,由Cyberbotics公司开发出品,可以运行于Windows、Linux及MacOS等操作系统,支持 C、C++、Python、Matlab和ROS等多种控制器。用户可以利用Webots搭建仿真环境和机器人进行建模、编程和仿真。Webots通过Webots_ROS功能包与ROS进行通信。用户可通过Webots提供的ROS控制器接口联合ROS进行仿真[15-16]。

仿真实验模拟实体机器人的控制系统,通过建图和自主导航两项实验验证机器人的自主移动功能。仿真实验在虚拟的环境中进行,所以尚不能对存取药品功能进行验证。

2.1 实验准备

首先搭建医院室内环境。参照现实中医院的标准病房布局搭建仿真病房,每间病房有3张病床和3张桌子;医院住院部环境由4间病房和1条通道组成。如图7所示。

图7 使用Webots搭建的仿真环境

然后创建一个Robot节点搭建机器人,机器人的走行部采用麦克纳姆轮。机器人外形尺寸以及配备的传感器类型和安装位置均与实际机器人相同,但传感器的型号有所不同。仿真实验中的机器人与实际的机器人所使用的控制系统相同,不同的是在仿真实验中控制系统调用Webots_ROS功能包的接口对机器人进行控制并获取传感器信息。

2.2 实验过程与结果

首先使用Gmapping功能包建立全局代价地图,进行建图实验。将Gmapping功能包编译安装后,配置参数文件并订阅相关话题即可建图,使用Gmapping算法构建全局代价地图实验的主要参数如表2所示。

表2 建图配置主要参数

使用键盘控制机器人在仿真环境内移动,运行Gmapping算法并订阅激光雷达扫描数据、IMU数据和静态坐标变换等话题,最终发布“/map”话题完成代价地图的建立。对图7(b)所示的医院住院部场景,使用Gmapping算法构建的医院室内环境全局代价地图如图8所示。图中的栅格对应实际大小为1 m×1 m。对比图7(b)和图8,使用Gmapping算法构建的全局代价地图与实际环境基本一致,但是略有倾斜。

图8 使用Gmapping算法建立的地图

在完成构建全局代价地图后使用Navigation功能包进行自主导航实验。将Navigation功能包编译安装后,配合图8所示的全局代价地图和通用配置文件、全局代价地图配置文件、局部代价地图配置文件及本地运动规划器即可使用。自主导航实验的主要参数列于表3中。

表3 自主导航配置主要参数

在图8的全局代价地图上为机器人设定两个目标点,一个目标点位于大厅中,另一个目标点在下一间病房中。启动机器人,机器人从地图坐标系的原点出发,按照先后顺序前往上述两个目标点,该过程的路径规划结果如图9所示,其中细实线为药品配送机器人的行进路径。从图9可以看出,药品配送机器人从图中最左侧的病房出发进入大厅后前往下一间病房,在此过程中可以顺利进出病房并到达目标位置。

图9 自主导航实验结果

3 结束语

本方案提出的自主移动药品配送机器人具有全向移动的能力。药品配送机器人采用模块化的结构设计,可以通过换装不同用途的药厢满足不同场景的使用需求。

基于ROS设计的药品配送机器人控制系统,采用模块化的设计思路,搭载多种传感器,实现自主导航、人机交互等功能,同时具备良好的安全性和扩展性,满足了设计需求,为之后开发更多的功能和升级奠定了基础并提供了参考。同时,采用开源软件降低了开发成本并缩短了开发周期。

基于Webots进行的仿真实验,在逼真的三维物理环境中验证了自主移动功能的可行性,药品配送机器人在医院室内环境中可以正常实现建图、路径规划及导航功能,为之后的实机调试奠定了基础,提高了开发和迭代效率,同时有效降低了成本。

未来将进一步结合应用场景和用户反馈,完善药品配送机器人的结构设计,优化其控制系统并深入研究相关算法,以提升工作效率和服务质量。

猜你喜欢
麦克底盘子系统
不对中转子系统耦合动力学特性研究
生活很艰难,但你被爱着
基于AC-DC-AC的异步电机系统积分反步和滑模控制
网络空间供应链中入侵检测及防御子系统的投资机制研究
网络空间供应链中入侵检测及防御子系统的投资机制研究
轿车底盘评价调校初探
2017年西麦克展览公司展览计划
依维柯New Daily底盘改装房车中国首秀
底盘测功机的发展及应用
瑞风S5车底盘异响