1.一种自动换输液瓶的智能服务机器人系统,其特征在于:包括医护机器人的硬件平台以及换输液瓶的软件平台;
所述的医护机器人的硬件平台,包括机器人智能移动平台、机械臂换输液瓶装置以及计算机识别定位装置;
所述机器人智能移动平台包括AGV移动底盘、供电系统、工控机、嵌入式控制器、路由器以及运动控制装置,所述AGV移动底盘包括驱动轮、麦克纳姆轮、超声波传感器和激光雷达,所述工控机安装于所述移动底盘上方,所述工控机拥有室内导航模块,通过由所述路由器提供的ETH网络连接的激光雷达传递而来的数据对室内环境进行建图与导航,通过连接所述路由器提供的ETH网络,运动控制装置接收同一局域网下所述工控机传递而来的指令处理所述超声波传感器所获得的数据,来对室内环境中的障碍物进行检测;所述工控机通过局域网将控制指令传递给运动控制装置,所述运动控制装置通过CAN总线将控制指令发送给嵌入式控制器,所述嵌入式控制器采用STM32F103单片机,同时所述STM32F103单片机也返回反馈数据给所述运动控制装置的NODE卡(17),所述STM32F103单片机将PWM信号传递给
2路电桥进行电机驱动控制,所述2路电桥同时通过电流采样IC来将电流信号反馈给STM32F103单片机,以及将电机电压信号传递给两个电机进行电机运转,电机通过光电编码器将转速信号反馈给STM32F103单片机,同时电机获得驱动转动信号用于驱动所述驱动轮(12)转动,且驱动轮带动所述麦克纳姆轮进行机器人整体的运动;所述供电系统包括电源管理器、变压器以及锂电池,所述运动控制装置通过485总线连接供电系统,所述电源管理器用于防止所述锂电池过载,所述变压器用于对所述锂电池电压进行升降压处理来连接机器人内部各个元器件;
所述机械臂换输液瓶装置安装于所述智能移动平台上方,包括机械臂、末端执行器和躯干部分,所述机械臂置于所述医护机器人左侧,所述机械臂末端安装所述末端执行器,所述躯干部分安装在所述医护机器人右侧部分,包括交互屏、载物台以及抬升杆,所述交互屏通过USB总线显示所述工控机的控制界面,所述载物台搭载所述机械臂,所述抬升杆与通过局域网接收所述工控机控制指令的运动控制装置通过CAN总线相连接,控制躯干部分的整体高度;
所述计算机识别定位装置包括双目RGBD相机以及四自由度云台,所述双目RGBD相机置于所述四自由度云台之上,所述工控机通过USB总线与所述双目RGBD相机连接,将所述双目RGBD相机获取的环境信息进行处理,通过深度信息以及RGB图像利用目标检测算法,用以完成待抓取物体的识别与定位,所述四自由度云台与运动控制装置通过485总线相连接,用以改变所述双目RGBD相机的角度;
所述的换输液瓶的软件平台包括安装在医护机器人的所述工控机上的药液有无检测模块、物体识别检测模块、坐标系转换模块、机械臂运动模块、物体抓取模块、底盘运动模块、机械臂柔顺控制模块,以及安装在嵌入式控制器上的驱动轮控制模块、升降杆控制模块、四自由度云台控制模块;
各模块的具体构成是:
驱动轮控制模块,控制驱动轮转动;从底盘运动模块输入速度信息,并通过PID控制器调整驱动轮内部电机转速,控制驱动轮的转动;
升降杆控制模块,控制升降杆升降运动的模块;从机械臂运动模块输入速度信息,并通过PID控制器调整升降杆内部电机转速,控制升降杆运动;
四自由度云台控制模块,控制四自由度云台运动;从所述机械臂运动模块输入速度信息,并通过PID控制器调整四自由度云台内部的电机转速,控制四自由度云台的转动;
药液有无检测模块,监测输液瓶中药液是否存在;接收所述双目RGBD相机传入的实时周围环境数据,将获取到的输液瓶中的药液高度与输液瓶中无药液时的状态做比对,确定某一时刻的药液有无;
物体识别检测模块,识别检测物体;通过目标检测算法以及所述双目RGBD相机传入的实时数据,识别检测出周围环境中物体的信息,并得到物体位于相机像素坐标系中的坐标,其中将所识别出的输液架位置信息输出给底盘运动模块,将针管、输液瓶、网绳、挂钩像素坐标输出给坐标系转换模块;
坐标系转换模块,转换物体坐标;接收物体识别模块的针管、输液瓶、网绳、挂钩像素坐标信息,并将其转换成为位于机械臂基坐标系下的坐标,再输出给机械臂运动模块;
机械臂运动模块,控制所述机械臂运动到目标位置;接收坐标系转换模块的机械臂基坐标系下针管、输液瓶、网绳、挂钩的坐标信息,设为所述机械臂末端所需要到达的位置,通过逆运动学求解获得所述机械臂各个关节所需要旋转的角度,并通过机械臂的轨迹规划获取执行最优路径,使得机械臂能够运动至待抓取物体处,同时,将速度信息输出给升降杆控制模块以及四自由度云台控制模块;
物体抓取模块,控制所述机械臂末端执行器;接收工控机的控制指令来控制机械臂末端执行器闭合,完成物体抓取与放置操作;
底盘运动模块,控制机器人智能移动平台进行轨迹规划,动态避障;接收超声波传感器以及所述激光雷达获得的周围环境的数据,并与物体检测模块结合,通过接收物体检测模块传入的输液架的位置信息定位出该物体位于整体环境的位置并通过路径规划算法使得所述工控机通过局域网将运动信息传输给所述运动控制装置,再通过CAN总线将控制指令发送给所述嵌入式控制器,同时所述嵌入式控制器也将返回反馈数据给所述运动控制装置,所述嵌入式控制器将PWM信号传递给2路电桥进行电机驱动控制,所述2路电桥同时通过电流采样IC来将电流信号反馈给所述嵌入式控制器,以及将电机电压信号传递给两个电机进行电机运转,电机通过光电编码器将转速信号反馈给所述嵌入式控制器,同时电机获得驱动转动信号用于驱动所述驱动轮转动,实现机器人可移动平台的运动;
机械臂柔顺控制模块,是一个用于机械臂运动的控制器,通过机械臂末端实时力反馈修正控制机械臂的各个关节的旋转角度;机械臂柔顺控制模块与环境的模型为:m(ad‑a)+b(vd‑v)+k(xd‑x)=F‑f (1)其中m、b、k分别表示质量、空气阻尼以及弹性系数;ad,vd,xd分别为期望的加速度、速度和位置,a,v,x分别为实际的加速度、速度和位置;F,f分别表示该模型中的期望交互力以及实际交互力;在实际换输液瓶任务中,由于插拔针管力矩实时变化,因此加速度变为0,因此将上式变为:mad‑bv+bvd=F‑f (2)将上式离散化,T为离散时间周期,将上式变形为:
其中,vs+1,vs分别表示s+1和s时刻的末端速度,整理得到基于速度的柔顺控制器,然而,在实际使用中,由于该控制器没有引入位置参数,因此无法对位置偏差进行校正;在考虑位姿信息后得到机械臂与环境的新模型为:其中△x表示期望位姿的偏差,将△x离散后得到:
其中△x0表示机械臂刚开始运动时,末端与期望位置的差值;该柔顺控制器最终变为:
最终,通过引入位姿反馈使得所述机械臂能够根据反馈值实时调整各关节角度值,完成换输液瓶的整个任务;
所述的换输液瓶的软件平台在静态环境下自动换输液瓶时执行如下步骤:
S1:根据上述医护机器人的硬件平台,所述机械臂为KINOVA机械臂,对KINOVA机械臂以及所述双目RGBD相机(9)进行手眼标定,用以将物体在相机像素坐标系下的坐标转换为物体在机械臂基坐标系下的坐标,所进行的手眼标定是眼在手外的标定方式;
S2:通过所述药液有无模块来判断输液瓶中的药液是否还充裕;
S3:在S2的基础上,若某一时刻的药液检测处于耗尽状态,则机器人将通过所述物体识别检测模块识别出针管位置;
S4:在S3的基础上得到针管位置时通过所述坐标系转换模块,获得针管在机械臂基坐标系下的坐标;
S5:所述NODE卡将速度信息传输给所述升降杆以及所述四自由度云台,采用PID控制来使得所述升降杆调整高度使得所述机械臂移动至合适的位置,同时所述四自由度云台调整角度使得相机更好的进行环境检测,再通过所述机械臂运动模块使得机械臂运动至针管处,同时基于所述双目RGBD相机(9)获取的实时数据,通过GPD物体位姿检测算法将得到针管的待抓取位姿;
S6:通过所述物体抓取模块使得机械臂夹住针管;
S7:给出机械臂被拔出时的位置,并通过所述机械臂运动模块使得机械臂运动至针管被拔出位置将针管拔出;
S8:通过所述物体检测模块识别出新输液瓶上网绳的位置,通过所述坐标系转换模块以及所述机械臂运动模块使得机械臂运动至新输液瓶处,并通过所述物体抓取模块使得机械臂夹住新输液瓶的网绳;
S9:通过所述双目RGBD相机实时获取的外界数据,并通过所述物体检测模块识别出输液架上挂钩所在位置,通过所述坐标系转换模块以及所述机械臂运动模块使得机械臂运动至输液架挂钩处,使得机械臂将输液瓶挂上输液架上;
S10:通过所述物体检测模块识别出针管所在位置,并通过所述坐标系转换模块、所述机械臂运动模块以及所述物体抓取模块使得所述机械臂夹住针管;
S11:通过所述物体检测模块识别出输液瓶瓶口并通过所述坐标系转换模块、所述机械臂运动模块使得所述机械臂运动至输液瓶;
S12:给出针管末端已经处于插入输液瓶状态时的位置信息,并将其作为所述机械臂末端执行器的目标位置信息,通过所述机械臂运动模块使得机械臂末端执行器移动至插入输液瓶时的状态,完成换输液瓶工作;
所述的换输液瓶的软件平台在动态环境下换输液瓶时,执行如下步骤:
T1:根据上述医护机器人的硬件平台,对所述的KINOVA机械臂以及双目RGBD相机进行手眼标定,用以将物体在相机像素坐标系下的坐标转换为物体在机械臂基坐标系下的坐标,由于硬件的设计要求,所进行的手眼标定是眼在手外的标定方式;
T2:利用SLAM中的Cartographer算法根据移动机器人的里程计数据和激光雷达数据,通过双目RGBD相机所获取的深度消息转换为雷达消息,来绘制二维的栅格地图,实现通过Cartographer算法来构建当前病房环境中的地图;
T3:通过ROS系统中所提供的map_server功能包中提供的map_saver以及map_server节点来完成栅格地图数据的转存,map_server节点将栅格地图保存到本地,map_server节点通过service方式将栅格地图发布;
T4:通过ROS系统中的amcl功能包,实现导航中的机器人定位用以确定机器人的位置,并以此作为机器人移动过程中的起始位置点;
T5:通过所述双目RGBD相机传入的实时环境数据,所述物体检测模块检测到输液架、输液瓶、网绳、挂钩、针管的信息;
T6:通过所述药液有无模块来判断输液瓶中的药液是否还充裕;
T7:在T6的基础上,若某一时刻的药液检测处于耗尽状态,所述工控机(4)通过局域网接收这一信息,并将通过所述物体检测模块所识别到的输液架这一物体位置信息作为目标位置,同时所述NODE卡将速度信息传递给所述驱动轮,通过PID控制完成移动底盘的运动,最终通过所述机械臂运动模块使得机械臂移动至输液架前;
T8:通过所述物体识别检测模块识别出输液架上针管的位置;
T9:在T8的基础上得到针管位置并通过所述坐标系转换模块,获得针管在机械臂基坐标系下的坐标,同时所述NODE卡将速度信息传输给所述升降杆以及所述四自由度云台,采用PID控制来使得所述升降杆调整高度使得所述机械臂移动至合适的位置,同时所述四自由度云台调整角度使得双目RGBD相机更好的进行环境检测,再通过所述机械臂运动模块使得机械臂运动至针管处,通过所述物体抓取模块使得机械臂夹住针管;
T10:给出机械臂被拔出时的位置,并通过所述机械臂运动模块使得机械臂运动至针管被拔出位置,同时通过所述机械臂柔顺控制模块规划机械臂的运动将针管拔出;
T11:通过所述物体检测模块识别出新输液瓶上网绳的位置,通过所述坐标系转换模块以及所述机械臂运动模块使得机械臂运动至新输液瓶处,并通过所述物体抓取模块使得机械臂夹住新输液瓶的网绳;
T12:通过所述双目RGBD相机实时获取的外界数据,并通过所述物体检测模块识别出输液架上挂钩所在位置,通过所述坐标系转换模块以及所述机械臂运动模块使得机械臂运动至输液架挂钩处,使得机械臂将输液瓶挂上输液架上;
T13:通过所述物体检测模块识别出针管所在位置,并通过所述坐标系转换模块、所述机械臂运动模块以及所述物体抓取模块使得所述机械臂夹住针管;
T14:通过所述物体检测模块识别出输液瓶瓶口并通过所述坐标系转换模块、所述机械臂运动模块使得所述机械臂运动至输液瓶处;
T15:给出针管末端已经处于插入输液瓶状态时的位置信息,并将其作为所述机械臂末端执行器的目标位置信息,通过所述机械臂运动模块以及所述机械臂柔顺控制模块规划所述机械臂运动使得所述机械臂末端执行器移动至插入输液瓶时的状态,最终完成动态场景下换输液瓶的工作。
2.如权利要求1所述的一种自动换输液瓶的智能服务机器人系统,其特征在于:所述机械臂包括从下而上的基座、大臂、肩关节、腰关节、肘关节、小臂以及腕关节,其中所述腕关节为所述机械臂末端关节,其接口处通过485总线与所述末端执行器相连接,所述机械臂基座安装于所述载物台上。
3.如权利要求2所述的一种自动换输液瓶的智能服务机器人系统,其特征在于:所述机械臂与所述交互屏下方装有所述抬升杆,通过所述抬升杆实现所述机器人整体高度的变化。
4.如权利要求1所述的一种自动换输液瓶的智能服务机器人系统,其特征在于:所述物体识别检测模块的目标检测算法采用Yolov4算法,通过训练包括输液架、输液瓶、网绳、挂钩、针管数据的数据集,使得能够通过该算法实时处理所述双目RGBD相机(9)所获取的机器人的周围环境信息,并能够检测出待识别的数据的信息,且获得输液架、输液瓶、网绳、挂钩、针管在相机像素坐标系下的位置坐标。
5.如权利要求1所述的一种自动换输液瓶的智能服务机器人系统,其特征在于:为了完成所述机械臂插拔针头的任务,使得所述机械臂在插拔针头时不将输液瓶以及针管拉扯坏,在步骤S7以及步骤S12插拔针头时所述机械臂柔顺控制模块用于控制机械臂实时关节运动,通过引入位姿反馈使得所述机械臂能够根据反馈值实时调整各关节角度值,完成换输液瓶的整个任务。