刘今越,冯 凯,郭士杰
(河北工业大学机械工程学院,天津 300310)
截止到2015年底,我国失能人士已达4千万人,我国残疾人总数已经超过8000万[1]成为世界上失能人口最多的国家。随着我国人口老龄化程度的加深,这个数字还将急剧增加。因此,为这些失能群体提供一款帮助他们活动的护理机器人是机器人研究人员面临的急需解决的问题。鉴于以上情况,许多护理机器人被提出、设计并实现。美国的Astir Technologies公司发明的“Power Nurse”移乘设备可以帮助被护理人进行室内的转移。日本机械工程研究所发明的“RIBA”机器人采用抱人方式帮助被护理人移动。在国内,南昌大学研制的多功能全方位护理移动机器人,结合智能轮椅与智能护理床的优势,在帮助被护理人转移的同时实现远程监控等功能。智能导航技术是智能移乘护理机器人的关键技术,即:机器人在室内可以感知到自己的位置,并提前规划好一条到达目标位置的路线,被护理人不需要额外的手动操作就可以安全舒适的到达目的地,这些都需要机器人具备良好的路径规划能力,在避开障碍物的同时规划出一条安全、精确、高效的路线。
文献[2-6]采用向量场直方图(VFH)算法将障碍物对机器人行走方向的影响量化到各个角度,通过选定恰当的障碍物阈值确定机器人行走方向,但此方法对阈值敏感度较高。
本研究团队已在该领域开展了长期的研究工作,并于2017年完成了“白泽”智能护理移乘机器人[7]的成功研发。作为一种助老、助残产品,该机器人采用模仿人背人、人抱人动作的仿生设计,实现被护理人在床、轮椅、沙发、马桶等生活器具之间的安全舒适的移乘搬运。该机器人将人工智能技术与机器人技术相融合,具有良好的决策自主性、人机交互性和环境适应性。机器人“白泽”采用模仿人背人的转移方式,其路径规划方式与一般的轮椅式护理机器人和抱人机器人有所不同,需要在进行路径规划的同时考虑处于不同位置时相应位姿的调整,因此研究适用于“白泽”机器人路径规划方法具有重要的实际价值和意义。
机器人“白泽”结构,如图1所示。为了方便在室内移动,其底部设计成为一个三轮移动平台,后面2个是差分驱动轮,前面一个为万向轮。同时为了使机器人在运动中保持车身稳定,每个驱动轮后面装有1个可伸缩的后轮,在特定状态伸出防止车身翻倒。机器人主要由活动踏板、支座、腋下支撑和手柄组成,用于支撑人体重量的部件。为了固定人体位姿,在支座与腋下支撑之间配有一对自适应柔性臂,用来保护人的腰部,防止其摔倒。机器人胸靠部位装有柔性触觉传感器,在搬运过程中感知人体姿态,自动调整胸靠位姿,保证被护理人乘坐时的舒适性。
图1 “白泽”机器人Fig.1 Robot Sketch of BaiZhe
该机器人的自由度总数为11个,重95kg,整体尺寸为(950×650×1640)mm,负载能力100kg,最大走行速度0.7m/s,锂电池驱动,1次充电可连续工作2h。
机器人“白泽”的硬件控制系统,机器人具有编码器、激光雷达、陀螺仪和Kinect等传感器,如图2所示。固定在驱动轮上的编码器通过航迹推演算法估计机器人的运动;激光雷达作为SLAM的传感器用于构建地图和室内定位;Kinect固定在机器人顶部用于识别人体关节同时把深度信息转化为激光信息[8];陀螺仪用来估计机器人的位姿;上位机的作用是发送目标信息给机器人,同时实时监控机器人的轨迹规划。
图2 机器人硬件控制系统Fig.2 Hardware Control System of Robot
开源机器人操作系统ROS是由斯坦福大学人工智能实验室开发的一套提供类似操作系统服务的机器人专用开源系统[9],在这个系统中搭建上层导航节点和底层运动节点。其导航系统框架图,如图3所示。通过传感器的信息进行定位和建图,最后路径规划指令以速度的方式发送到底层运动节点。
图3 导航系统框架图Fig.3 Framework of Navigation System
机器人室内运动场景,如图4所示。它模拟了机器人把被护理人从客厅的沙发搬运到厕所的马桶上这一运动过程。其平面运动示意图,如图5所示。小矩形方块表示机器人的前端,大矩形方块表示机器人的尾端,即抱人部分。机器人运动时,首先通过Kinect感知并找到人的初始位置,而后慢慢靠近被护理人,将人安全抱起并通过柔性臂固定;然后,抱着被护理人一起运动到一个恰当的中间点,在此完成头尾朝向的转换;最后运动到目标点把人放下。这一过程分为两个阶段,第一阶段为机器人从初始点运动到中间点,第二阶段为从中间点运动到目标点,其中路径规划的关键在于中间点位置的确定以及在中间点处头尾朝向转换角度的判定。
图4 虚拟运动场景Fig.4 Virtual Motion Scene
图5 平面运动示意图Fig.5 Plane Motion Diagram
该移乘护理机器人采用的是仿人背抱式设计,其运动模式类似于背人行走。在机器人移动到中间点之前,被护理人面部方向与运动方向一致;而在机器人移动到目标点之前,需要调整被护理人朝向,使其背对目标点,以便将其安置于目标位置,实现被护理人在各家庭器具之间安全舒适的转移。因技术限制,目前相较于室内环境而言,护理机器人体积相对较大,而一般作为起始点的室内过道、门口等位置往往空间有限,不便于机器人姿态与朝向的调整,因此选取行进过程中恰当的中间点位置并在此完成机器人位姿的变换十分重要。机器人行驶路径规划如下:(1)确定初始位姿与目标位姿;(2)确定中间点处的最优位姿,即中间位姿,此位姿的选择不仅是减少转向角度和位姿调整次数的关键,同时也决定了到达目标位姿的变换路径;(3)采用分段式路径规划方法,分别制定初始点到中间点、中间点到目标点的行进路径。
考虑到家庭环境一般是规格化的,家具位置相对固定,障碍物随机性强但并不常见,因此,为了保证被护理人运送过程中的舒适和便捷,运动路径弯曲程度越小越好,这样角度变化幅度就小,理想情况下为直线。将房屋平面图左下角设置为图中:O—坐标系原点;x轴—水平方向;y轴—竖直方向;点A—初始点位置;点B—目标点位置;点C位于点A、点B之间,点A与点C间行进路径平行于x轴,点C与点B间行进路径平行于y轴,如图6所示。理想情况下,若取点C为中间点且无障碍物,机器人只需沿两段相互垂直的直线移动即可到达目标点,可避免过多的角度转换,但实际上点C位置往往受墙体、门、障碍物等实际器具限制,因此将中间点设置为尽量靠近点C的临近区域,位置评价函数为:
图6 中间点位置确定Fig.6 Coordinate Selection of the Intermediate Point
式中:ɑ,β,g—影响系数;A(x,y)—机器人与直线AC的垂直距离;B(x,y)—机器人与直线BC的垂直距离;Z(x,y)—机器人与障碍物的距离。ɑ越大表示机器人的第一段运动过程转向角变化幅度小,β越大表示机器人的第二段运动过程转向角变化幅度小,g越大表示机器人的位置安全性越高。
在机器人轨迹规划过程中,利用式(1)对机器人位置进行实时评价,确定最为适宜的中间点坐标。
中间位姿是第一段路径(A-C)的终止位姿,同时又是第二段路径(C-B)的初始位姿,是机器人行进过程中的关键位置,因此,对此位置进行恰当的位姿角度选择,能够使机器人有效避障的同时减少角度变化,使行进过程更加顺利。机器人角度选取模型图,如图7所示。图中:A、B、C—不同形状的障碍物,利用式(2)计算目标点与机器人的夹角α。
图7 中间点的角度选取Fig.7 Angle Selection of the Middle Point
计算公式如下:
式中:(xg,yg)—目标点位置坐标;(xr,yr)—机器人位置坐标。由图7可以看出机器可以从4个方向行走,机器人从不同的方向向目标点行驶时,初始方向与目标方向越接近,机器人所需的航向角转变幅度越小,θ2与θ3与目标点方向接近,通过β1与β2的比较可知,β1<β2,选择θ3为中间点位姿行驶方向,θ3的角平分线与x轴的夹角即为中间位姿角度。
通过中间点位姿的选取减小转向角度变化幅度后,机器人需要对角度变化频率进行调节,这样被护理人才会在平稳的运动中前进。在matlab仿真环境中进行同一段路径规划,用不同的速度时,航向角变化,如图8所示。
图8 航向角变化曲线Fig.8 Heading Angle Change Curve
机器人的速度分别为500mm/s、300mm/s和100mm/s。速度增大时,航向角变化率就大,虽然完成路径规划的时间短,但是角度变化频率快。为了减小角度变化频率,根据角度变化值来控制速度。规定如下:当角度变化大于15°时,机器人匀速速度为原来的二分之一。
调整前后在同一速度下的对比,速度为500mm/s,如图9所示。
图9 调整后角度对比Fig.9 Angle Comparison after Adjustment
由图9可知机器人角度变化率比改进前降低了,虽然增加量运行时间,但是使得角度变化更加平稳。
在机器人的运行过程中实时计算出中间点的坐标和角度,机器人从初始点沿着规划出的路径运动到中间点的坐标处,然后以尾部为前进方向旋转到指定角度。接着以中间点的位姿为第二段路径规划的初始点,运动到目标点,完成整段规划的路径。
机器人采用的避障算法是VFH算法,该算法流程图,如图10所示。
图10 VFH算法流程图Fig.10 Flow Chart of VFH Algorithm
在得到障碍物密度后,把密度值与阈值进行比较,由此来选择动态避障的路线。而传统的算法存在阈值敏感的问题,在给定一个阈值后,在阈值过小时会陷入“死区”,阈值过大时可能会碰到障碍物。结合动态环境的变化根据机器人的实时的速度来调节阈值的大小。
式中:T—阈值;e—放大系数;v—当前速度;vmax—最大速度。得到机器人阈值变化图,如图11所示。
图11 阈值变化图Fig.11 Threshold Change Map
横坐标是完成一段路径规划所用的时间,纵坐标是在这段过程中阈值的大小变化。途中B、C、D点分别是先后出现的障碍物点。A点为初始点,离第一个障碍物较远,所以最开始时阈值最大。当护理机器人向第一个障碍物靠近时,阈值减小,以防止护理机器人与障碍物发生碰撞。当护理机器人刚通过障碍物B时,它离下一个障碍物C还有一段距离,所以阈值会突然变大,以防止护理机器人走到局部的“死区”。接着通过障碍物C与D的过程类似,在通过障碍物D后,机器人又保持最大阈值。
在ROS框架下进行路径仿真,如图12、图13所示。在一个室内的地图中,白色圆点代表机器人,黑色方块为障碍物(一个桌子),黑色线段代表规划的路线。第一段路径规划,从初始点到中间点,箭头代表中间位姿的角度,如图12所示。第二段路径规划,从中间点到目标点,箭头代表目标点位姿的角度,如图13所示。
图12 第一段路径规划Fig.12 The First Segment of Path Planning
图13 第二段路径规划Fig.13 The Second Segment of Path Planning
由图(12)和图(13)可知:在两段路径规划过程中,机器人没有碰到障碍物和墙壁,两段路径轨迹均接近直线,且能够准确到达指定地点,这些均表明所提出的两段式路径规划方法能够选择合理的中间点,并有效避免了位姿调整中过多的角度转换,该方法在智能移乘机器人室内路径规划方面切实可行。
应用本团队自主研发的移乘护理机器人平台进行实验,得到的中间位姿为(4.33,3.57,29°)。为了验证中间点位置角度选取对整段路径规划的影响,在同一中间点的坐标下选择不同角度进行实验,结果如表1所示。
表1 实验结果Tab.1 Experimental Result
其中,角度变化次数指的是在机器人运动过程中角度变化量大于1°时计数一次。由表1可知:采用由这里算法得到的中间位姿,整段路径角度变化次数最少,同时机器人的行驶距离和用时时间也是最少的。这说明对于“白泽”机器人的路径规划,合理的中间位姿的选取不仅可以简化机器人行驶路径,而且可以使其在安全的完成导航任务的同时提高效率。
针对室内环境狭窄,机器人位姿调整受限等问题,基于本团队自主研发的移乘护理机器人“白泽”提出了一种两段式路径规划方法,结合实际工作环境,在初始点与目标点之间确定一个恰当的中间点,将机器人行进路线划分为两个阶段,令机器人的位姿变换在中间点位置完成,在满足机器人功能性要求同时尽可能提高效率。实验结果表明机器人可以安全有效的完成路径规划的任务。