四臂医疗转运机器人设计及仿真平台搭建*
2021-08-27钟彩意王殿龙
钟彩意,王 欣※,吴 迪,王殿龙
(1.大连理工大学机械工程学院,辽宁大连 116024;2.大连理工大学计算机学院,辽宁大连 116024)
0 引言
根据联合国发布的《世界人口展望:2019 年修订版》的数据,2019 年全球65 岁以上人口占比为9%,到2050 年这一占比将达到16%,人口老龄化问题将日益加剧[1]。人口老龄化的加剧使得医疗护理的需求不断增加,从而造成医护人员的相对缺乏[2]。为此,能够辅助医护人员提供医疗服务的机器人具有极大的发展潜力,尤其是能够转运行动不便病人的机器人[3-4]。目前,美国、日本、英国等国都先后研制了用于转运病人的机器人,如日本的RIBA机器人[5-6]、美国的战场救援机器人“Vecna Bear”[7]、韩国的PAM 移动机器人[8]以及英国的RoNA 机器人[9]等,这些机器人都能够实现病人的转运。我国对医疗转运机器人也进行了一定的研究,如南京理工大学的“MT-Bear”机器人[10]和北京建筑大学的转运护理机器人[11]。
在机器人的设计与研究过程中,仿真是不可或缺的。通过仿真,一方面可以提前发现机器人设计上的问题,如结构是否合理、工作空间是否满足要求;另一方面可以对控制算法进行验证,避免因控制算法问题对机器人造成损坏[12-15]。机器人仿真技术的应用可以极大地缩短机器人开发周期、降低开发成本。Webots 软件是一款集建模、编程、仿真、程序移植为一体的专业机器人仿真软件[16],应用广泛。山东大学的王铭昌[17]利用Webots 软件搭建了服务机器人的故障仿真平台;刘俊飞[10]利用Webots 软件对MT-Bear 护理机器人的路径规划和目标抱取进行仿真;李柳群[18]利用Webots 软件对汽车起重机的路径规划进行研究。
现有转运机器人多为双臂形式,搬运病人时仅对背部和大腿有支撑,对病人头部和小腿无支撑。为此,本文提出一种新型医疗转运机器人,具有4条机械臂,可分别为病人的头部、背部、大腿及小腿提供支撑,且可实现转运过程中病人姿态的调整。本文首先设计机器人结构,分析机械臂正逆运动学,其次在Webots软件中建立机器人工作环境、机器人以及病人模型,接着编写控制程序,设计机器人控制器软件,最后通过仿真实验验证仿真平台的可行性及机器人结构的可行性。
1 机器人结构设计及机械臂运动学分析
1.1 机器人结构设计
要进行机器人的结构设计,首先要确定机器人托臂的尺寸要求。根据《YY 0003-90——病床》《GB/T 12996-2012 电动轮椅车》《GB 10000-88 中国成年人人体尺寸》等资料确定机器人托臂距地高度范围为400~900 mm,长度为600 mm,外侧两臂间距范围为1 600~2 000 mm。除此以外,还需进行机构选型与设计,初步设定机器人所能搬运病人的最大体重为150 kg,单机械臂最大负载为50 kg,据此计算出机器人各关节所需的驱动力,并进行选型,最终所设计的机器人如图1所示。
图1 机器人结构三维模型
机器人由3 个部分组成,分别是底盘行走部分、躯干部分以及机械臂部分。底盘行走部分为四轮形式,其中2个轮为舵轮,对角分布,为驱动轮,另2个轮为万向轮,为从动轮,此形式可实现机器人任意方向的运动及原地旋转,以适应室内狭小的工作环境。躯干部分由躯干主体和外罩组成,用于连接底盘和机械臂。机器人共有4条机械臂,每条机械臂均由4 个关节组成(即4 自由度),分别为起升关节、肩关节、肘关节和腕关节,如图1所示。机械臂的末端托臂呈扁平状,可楔入病人与病床之间的缝隙,实现病人与病床的分离。4条机械臂运动的相互配合可改变病人的姿态,例如由平躺姿态变为坐起姿态,从而实现病人从病床到轮椅的转运。
1.2 机械臂正运动学分析
由于机器人的4 条机械臂构型类似,故以左侧臂为例进行运动学分析。以机器人底盘在地面投影的中心为原点,以竖直向上为Z轴正方向,以前进方向为X轴正方向,建立机器人基坐标系,再根据D-H法依次建立左侧臂其余连杆的坐标系,如图2所示。
图2 机器人左侧臂连杆坐标系
机器人D-H 法通过4 个参数来确定相邻两坐标系间的齐次变换矩阵,分别为关节角(θ)、连杆偏距(d)、连杆长度(a)和连杆转角(α)[19]。根据机器人的实际结构尺寸,得出左侧臂的D-H参数,如表1所示。
表1 机器人左侧臂D-H参数
机器人的正运动学问题是根据机械臂的关节位置求解机械臂末端相对于基坐标系的位姿[19]。根据D-H 法可得两相邻连杆间的齐次变换矩阵为:
为简化表示,将sin记为s,cos记为c(以下同),根据表1 数据得出左侧臂各连杆坐标系间的变换矩阵,并依次相乘,得出左侧臂手掌坐标系与基坐标系间的变换矩阵,如下所示:
其中
1.3 机械臂逆运动学分析
机器人逆运动学问题是根据机械臂末端位姿求解机械臂各关节位置参数,常用解法有数值解法和几何解法[19],本文采用数值解法。首先引入6个参数来表示机械臂末端的位置和姿态:x、y、z、θr、θp和θy,其中x、y、z为机械臂末端坐标,即机械臂末端位置向量为
θr、θp、θy为欧拉角,θr为绕X轴的旋转角(roll角度),θp为绕Y轴的旋转角(pitch角度),θy为绕Z轴的旋转角(yaw角度),欧拉角的顺序为X→Y→Z,可得末端坐标系相对于基坐标系的旋转矩阵为:
则左侧臂末端坐标系与基坐标系间的齐次变换矩阵为:
由机械臂末端正运动学所得齐次变换矩阵与期望的齐次变换矩阵相等,即,解得:
2 仿真平台三维模型的建立
本文利用Webots 软件建立仿真平台模型,该软件是一款多平台的开源机器人仿真软件,集建模、编程、仿真和程序移植于一体。软件使用VRML 语言进行建模,使用ODE 作为物理引擎。软件内置有丰富的传感器和执行器,可以满足绝大多数机器人的需求。Webots 软件可使用内置的IDE 或第三方开发环境进行编程,支持C/C++、Java、Python、MATLAB等多种编程语言,支持TCP/IP 协议,可以通过网络实现仿真环境中机器人的远程控制。
2.1 仿真工作环境的建立
该机器人主要工作在医院、养老院等有大量病人搬运工作的场所,为此,本文设定机器人的工作环境为医院病房,其地面平整,四周为墙壁,包含有病床、椅子、柜子等物品。
首先创建基本环境,包括背景、光源及仿真参数等,其中背景通过Background 节点设置;环境光源通过Direction⁃alLight节点设置;仿真参数可通过WorldInfo节点设置。
其次在环境中添加地面、墙壁、病床、椅子等,Webots中的实体模型可在软件内部建立也可通过其他三维软件建立后转为VRML 格式再导入,本文针对不同的物品采用不同的建模方式,其中结构简单的地面和墙壁直接通过内置的Rect⁃angleArena 和Wall 节点创建;对于病床、椅子等,在Solid⁃works软件中建模后,导出VRML格式文件,再导入Webots软件中,并转成PROTO文件,就能以节点的方式添加到仿真环境中。最终完成的机器人仿真工作环境效果图如图3所示。
图3 机器人工作环境模型
2.2 机器人及病人模型的建立
机器人和人体模型除了需要实体,还需要运动关节,We⁃bots软件使用HingeJoint和SliderJoint节点模拟转动关节和移动关节,关节节点下的jointParameters 用于设置关节参数,de⁃vice用于添加驱动电机和传感器。
由于机器人结构复杂,不利于仿真,需进行简化,简化后的机器人仿真模型如图4所示。Webots软件机器人通过Ro⁃bot 节点创建,机器人的机械结构、关节、传感器等均作为Robot节点的子节点,机器人的控制器也通过该节点下的con⁃troller 添加。创建好的机器人模型也可转成PROTO 节点,这样就可以将机器人以节点的形式添加到任意环境中。
图4 机器人仿真模型
对于病人模型,除了结构需要简化,关节数也要减少,由于只考虑病人整体姿态的变化,因此病人模型可简化为3部分,即上半身、大腿和小腿,仅保留腰部关节和膝关节,忽略其他关节。腰部关节和膝关节均为转动关节,与机器人关节不同,病人关节不需要添加驱动电机。最终完成的病人模型如图5所示。与机器人类似,人体模型也转成PROTO节点。
图5 人体模型
3 仿真平台机器人控制器设计
机器人采用分层控制方式,分为上层控制器和底层控制器。上层控制器负责机器人的控制算法和人机交互,底层控制器负责运动控制和状态的采集,两控制器间通过TCP/IP 协议进行通信。控制器组成框图如图6所示。
图6 仿真平台控制器总体框图
底层控制器包括机械臂关节电机控制模块、行走电机控制模块、传感器模块和通信模块。电机控制模块用于机器人电机的控制;传感器模块用于采集电机位置和力/力矩等信息;通信模块用于与上层控制器进行信息交互。底层控制器流程如图7所示。底层控制器使用Webots自带的IDE 开发,编程语言为C 语言,通过调用API 函数设置电机参数以及获取传感器参数,利用套接字(socket)进行通信模块的编程。Webots 软件使用PID 控制电机位置,PID 参数可通过函数设置也可在电机节点下设置。
图7 底层控制器流程
上层控制器包括人机交互界面、控制算法模块、数据处理模块和通信模块,人机交互界面负责参数的输入和信息显示,控制算法模块包括正逆运动学、轨迹规划等算法,数据处理模块负责传感器数据的处理,通信模块负责与底层控制器建立连接,实现信息交互。
上层控制器使用Qt开发,Qt是一种跨平台的图形用户界面应用程序开发框架,具有丰富的图形界面库,使用简便。上层控制器有3种模式,分别为电机控制模式、手动控制模式和轨迹规划模式,模式的切换通过选项卡的方式实现。电机控制模式可直接设置电机转角(位移)控制机器人的运动;手动控制模式是通过按钮来控制机械臂末端的运动,包括上下左右的4个方向的运动及转动;轨迹规划模式用于机械臂的轨迹规划,以验证不同的规划方法。受篇幅限制,本文以轨迹规划模式为例进一步说明,轨迹规划模式界面如图8所示,其流程图如图9所示。
图8 上层控制器轨迹规划模式界面
图9 轨迹规划模式流程
轨迹规划模式界面包括机械臂末端路径预览区、轨迹规划设置区、机器人控制区等,其中机械臂末端轨迹预览区用于显示机器人末端的轨迹,轨迹规划设置区用于设置轨迹相关参数,机器人控制器用于控制机器人的启动、停止和复位。
4 仿真实验分析
由于该机器人的主要任务是转运病人,因此仿真平台能否模拟机器人与病人间的相互作用是该仿真平台的基本要求,为此,设计机器人将病人由平躺姿态转变为半坐起姿态的仿真实验。假设该过程中病人腰部保持不动,仅改变上半身姿态,可知机械臂末端的轨迹为圆弧,且所在平面平行于机器人基坐标系的Y-Z 平面,故进行笛卡尔空间的圆弧轨迹规划,采用插补的方式来逼近目标轨迹。本文采用定时插补方式,速度曲线为梯形曲线。设轨迹圆心为O1(y0,z0),起点为P1(y1,z1),终点为P2(y2,z2),轨迹转角位移为θ(逆时针旋转为正),如图10所示。
图10 机械臂圆弧轨迹规划
设匀速时角速度为ω,加减速过程的加速度均为α。则总插补点数:
式中:Pn为插值参数,与系统控制周期有关。
则任意插补点角位移为:
根据几何关系,可得任意插补点的位置坐标:
为进行机械臂逆解计算,还需进行机械臂末端姿态的规划。根据几何关系,为使托臂始终贴合人体,机械臂末端横滚角(roll)需变化,且横滚角始终等于圆弧轨迹转角,故可直接代入计算。
根据人体尺寸确定左前臂和左侧臂圆弧轨迹的起点和圆心坐标以及角位移,并在相应的输入框中输入,如图11 所示。图中,X、Y、Z 为相应的坐标输入,r、p、y 为横滚角(roll)、俯仰角(pitch)和偏航角(yaw)的输入。在设置好角速度、角加速度参数后点击显示轨迹按钮,预览轨迹,确认无误后保存轨迹,并开始进行仿真,观察机械臂的运动。仿真时的机器人运动过程如图12所示,机器人左侧臂的关节转角(位移)、角速度(速度)、角加速度(加速度)以及力矩(力)曲线如图13所示。
图11 轨迹规划参数设置
图12 机械臂运动仿真过程
图13 仿真过程左侧臂关节参数
从图12中可以看出,机械臂末端能够沿着预设的轨迹运动,病人的姿态也能随着机械臂的运动由平躺姿态变为坐起姿态,说明该仿真平台能在一定程度上模拟机器人与病人间的相互作用,且能输出机器人运动过程中关节的转角(位移)、角速度(速度)、角加速度(加速度)和力矩(力)曲线,也在一定程度上说明了机器人能够改变病人的姿态,验证了机器人结构的可行性。
5 结束语
本文提出了一种四臂医疗转运机器人,对机器人的结构进行设计,并对机器人机械臂进行了正逆运动学分析。为研究机器人控制算法,本文搭建了基于Webots软件的机器人仿真平台,首先在Webots软件中建立机器人工作环境模型、机器人模型以及病人模型,然后编写控制程序,设计机器人控制器,最后通过病人由平躺状态变为坐起状态的仿真实验验证了仿真平台的可行性以及机器人结构的可行性,为该机器人的后续研究奠定了基础,也为其他机器人的仿真平台的搭建提供一定的参考。