协作机器人及其运动规划方法研究综述
2021-07-14解迎刚兰江雨
解迎刚,兰江雨
北京信息科技大学 物联网系,北京100101
工业机器人在工业生产领域中具有广泛作用。但是随着社会的发展,传统的工业机器人已经无法满足人们对于安全协作和灵活部署的需求。人们希望机器人能够处理更为复杂的任务,具有更加灵活和精准的性能[1]。协作机器人(collaborative robot)是机器人领域最热门的研究方向之一[2-3]。相对于在围栏中工作的传统工业机器人,协作机器人更加轻便、安全、智能化,可以与人类近距离共同工作,在各类的场景中完成复杂的工作任务[4]。同时,协作机器人结构简单,价格相对便宜,更加适合中小型企业的需求。
但是,协作机器人在实际应用中遇到了一系列问题[5]。首先,为了提高协作任务的效率,协作过程中要合理地分配协作任务,实现时间、资源等成本的最优利用。其次,协作机器人应用于各类生产、生活场景中,操作员通常对机器人的了解程度有限,需要更加简单高效的人机交互方式。另外,协作机器人与人类近距离接触,要保证协作过程中操作员与机器人的安全性。这三个问题对应协作机器人核心的三个特点:高效、简单和安全。
为了解决以上问题,近年来人们对协作机器人进行了广泛的研究[6]。研究涉及硬件、软件和算法三个方面,包括协作机器人的本体设计,适合人机协作的编程方法,满足安全、效率等需求的人机协作方法,以及协作机器人运动规划方法等。同时,中国科学院院士丁汉提出协作机器人最重要特征就是“共融”[7],即人机之间高度共融,机器人将能够理解人类的思维和动作,近年来的研究也围绕协作机器人的共融性。
运动规划(motion planning)是机器人学的核心问题之一[8]。运动规划可以使机器人在工作空间中规划出一条可行路径,且运行过程中满足运动学和动力学等约束条件。经过多年发展,工业机器人运动规划已经较为成熟,在分拣[9]、焊接[10]、磨削[11]等领域应用广泛。但是,协作机器人通常工作在复杂环境中,面对动态障碍物(工作台等)和动态障碍物(协作者等),需要适合的运动规划方法,保证机器人顺利完成任务。
本文围绕上述问题,对近年来协作机器人、人机协作方法以及运动规划方法的研究进行分类综述。其中,第1 章介绍协作机器人的基本情况,包括主要产品、本体设计、应用案例等。第2 章介绍人机协作方法,包括协作机器人编程方法、安全协作方法和高效协作方法等。第3章介绍协作机器人的运动规划方法,包括路径规划方法和轨迹规划方法。第4 章讨论协作机器人研究当下的不足和未来的发展方向。第5章为全文总结。
1 协作机器人介绍
1.1 主要产品
协作机器人是一种新型机器人,其特点在于可以与人类近距离协同工作,不需要设置围栏[3]。协作机器人的外形与传统工业机器人类似,多为6/7 自由度的串联型机器人。不同之处在于,协作机器人体型较小,重量较轻,结构相对简单。其优点在于部署灵活,操作简单,缺点则是运行速度较慢,负载较小,通常在10 kg以下。
近年来国内外的各大厂商开始陆续推出自己的协作机器人产品。国外的协作机器人厂商主要包括ABB、KUKA、FANUC、YASKAWA等老牌工业机器人公司,以及优傲(Universal Robots,UR)等新兴公司。表1 中整理了六款国外协作机器人的主要产品[12-18],列出了其所属公司和国家、发布年份、主要特征以及参考文献。其中,UR 公司在2008 年推出的UR5[12]是全球第一款商用协作机器人,以模块化、轻型、安全、人机交互与较高精度为特点,是目前业内最受关注的协作机器人之一。
表1 国外协作机器人产品
国内机器人市场上也涌现了大批协作机器人,其中既包括老牌机器人公司,也包括新兴的创业公司,它们为国产协作机器人阵营注入了崭新的活力。国内的协作机器人厂商主要有新松、遨博等公司。表2中列出了四款国产协作机器人主要产品[19-22]。
表2 国内协作机器人产品
协作机器人相比传统的工业机器人,有着价格低廉、智能化程度高、操作简单、应用场景丰富等优势。目前已经有众多协作机器人产品推出,相信未来会有更多协作机器人出现,应用在各种工业生产、生活服务中。
1.2 本体设计
协作机器人的本体设计涉及机械、材料、电子等多个学科,是实现人机协作的关键点之一[6,23]。本节介绍协作机器人的本体设计,包括机器人构型、柔顺性结构、多传感器以及末端执行器等。
1.2.1 构型设计
构型设计对机器人性能有重要影响。工业机器人大多设计为3~6自由度,因为工业场景中机器人工作环境固定,不需要考虑避障问题,并且低自由度的设计可以节省成本。但是,协作机器人的任务通常面对多种障碍物以及突发事件,需要较高的灵活性,所以大多设计成6/7 自由度[24]。这类自由度较高,具有冗余度的机器人称为冗余机器人。冗余机器人的优势在于,当其末端姿态保持不变时其他关节仍可以运动。因此,冗余机器人具有运动灵活性好、能够克服关节极限、能在末端位姿不变的情况下完成避障的优点,而且可以有效地避免非冗余机器人常出现的奇异构型问题[25]。
另外,偏置的设计[26-27]也影响机器人性能。田勇等[28]对几种协作机器人的构型进行了对比分析,得到结论是偏置降低机器人的全局性能、工作空间体积性能,但能够提高机器人的灵活工作空间性能,对于协作机器人而言能够加强其协作能力。
1.2.2 柔性结构设计
机器人的柔性结构可以降低人机碰撞的危险[29],目前主要存在两种方式:(1)机器人连杆采用柔性材料;(2)采用柔性驱动器。其中前者称为软体机器人[30-31],理论上具有无限的自由度,可以灵活进行避障,完成复杂任务。但由于运动学和动力学分析过于复杂,软体机器人的精确控制难以实现[32],所以软体机器人目前不适用于工业生产。采用柔性驱动器是机器人柔顺控制的主流做法,即将弹性材料引入驱动器中,达到在碰撞冲击中保护自身的作用。常见的柔性驱动器有串联弹性驱动器(SEA)[33]、并联弹性驱动器(PEA)等[34]。例如SEA是在电机输出轴和负载之间串联加入弹簧等弹性结构,张秀丽等[33]利用SEA设计了一款3自由度柔顺机器人,可以实现人机柔顺交互的功能,上文提到的Baxter机器人[13]也用到了这样的柔顺结构设计。
1.2.3 多传感器设计
机器人集成多种传感器,以实时精确地感知自身和外部环境的变化,做出准确的应对。协作机器人的传感器分为接触式和非接触式。通常情况下,协作机器人利用非接触式传感器获取工作空间的环境信息;在一些特定任务中(如装配、医疗等),协作机器人利用接触式传感器完成人机协作。
非接触式传感器包括视觉传感器(摄像头)[35]、激光雷达[36]等。其中激光雷达的效果较好,扫描范围较大,精度较高,但是成本高昂。视觉传感器的成本较低,但是感知范围、精度相对较差。目前机器人视觉的研究非常热门,良好的算法设计可以弥补硬件性能的差距。针对人机协作应用,研究者利用视觉传感器获取机器人周边环境信息以及协作者的实时动作。桑海峰等[37]利用Kinect 相机获取人体关节点,并提出快速动作识别算法,从而识别人类动作,完成人机交互功能。Tsuji 等[38]提出了在机器人末端安装飞行时间(Time of Flight,ToF)传感器,用于感知机器人与周边物体的距离,保证人机安全。
接触式传感器包括触觉传感器[39]、扭矩/力传感器[40]等,其中扭矩/力传感器可以检测外力的大小,在人机协作中较为常用。Ren等[40]利用扭矩传感器进行碰撞检测,以保证人机协作的安全。Maric 等[41]提出一种机器人打磨方法,利用配备了扭矩传感器/力传感器的机器人,检测打磨工具与零件间的力和扭矩,完成复杂形状的零件表面精细打磨。此外,为了节省成本,一些机器人采取无需附加扭矩传感器的设计。Yen等[42]提出一种虚拟传感器方法,利用机器人内部的霍尔传感器和电流传感器估算出外力的大小,对重力、摩擦力等做补偿,同样可以用来进行人机协作,但是需要建立精确的动力学模型。
单一传感器采集信息较少,且易收到干扰,多传感器信息融合可以很好地增强机器人感知性能。柯显信等[43]建立多传感器系统进行机器人的定位,选用红外传感器、声音传感器和双目视觉传感器三种传感器。其中双目视觉在理想条件下的定位效果较好,红外传感器和声音传感器环境适应能力强,弥补了光照、噪音等不利条件下的视觉定位困难问题。Lin等[44]建立一套多传感器系统,通过体温传感器、血压传感器等监测人体的健康情况,气压传感器、视觉传感器等监测机器人状态和周边环境信息,实现机器人在医疗人机交互中的应用。
1.2.4 末端执行器设计
机器人的末端执行器一般固定在机器人的末端位置,用来抓取、移动物体或实现一些特定功能。末端执行器大致可以分为夹持器和末端工具。针对协作机器人的特点,研究者对两类末端执行器均进行了研究与改进。
为了实现抓取等功能,机器人一般配有夹爪、真空吸盘等形状的夹持器。Franchi 等[45]为Baxter 机器人设计了一款基于3D 打印的夹爪,优势在于轻便且成本较低。Birglen等[46]设计了一款自适应的夹爪,可以自适应地进行抓取,并且针对协作机器人的安全避碰功能进行了结构优化。
针对一些特殊应用场景,研究者也根据需求设计了特定的机器人末端工具。Welleweerd 等[47]针对乳腺癌诊断应用设计了一款末端工具,包括三维相机、探针支架、导针器以及探针等。这款末端工具固定在医疗协作机器人KUKA LBR Med的末端上,可以实现探测点的识别与自动化探测,帮助放射科医生完成诊断。
1.2.5 机器人本体安全设计
利用柔性材料作为机器人连杆具有技术上的难度,目前研究人员提出在机器人连杆上附加安全设计,用来保证人机协作中的安全性。
Zeng等[48]提出在机器人的表面覆盖一层泡沫罩,以减轻人机碰撞时的冲击力。实验证明,在受到意外碰撞时,该设计可以有效保护人类与机器人的安全。Weitschat等[49]提出了一种人机协作安全模块,类似于汽车工业中的安全气囊。与普通安全气囊的不同之处在于它的可重复使用性,而且在机器人的每一个动作中,安全气囊都是充气的。
1.3 应用案例
随着工业4.0 的不断推进,协作机器人越来越多进入工业生产中,在装配[50-52]、分拣[53-54]等工业应用中发挥重要作用。同时,因为协作机器人具有轻便、成本低、易部署的特点,在医疗[55]、服务[56]等非工业领域中也有一系列应用。本文通过几个案例,简单介绍近年来协作机器人的应用。
在装配任务中,工人需要进行大量的重复性体力劳动,工作效率较低,并且有很多工人因为患上了职业病(如肌腱炎等)。目前工业机器人已经成功用于大量重复性装配体力劳动,协作机器人可以进一步地解决以上问题。Realyvasquez等[52]中提出了一种装配任务中的人机协作方案,包括设计人机协作工作台,对协作机器人进行配置,进行协作机器人的可靠性测试,以及对操作人员进行操作培训。研究结果表明,该方案有效地将工人从职业病的风险中解救出来,并提高了装配效率。Michalos等[50]提出了一种人机协作的汽车装配方法,采用手动引导技术和机器人安全控制功能。协作者利用可穿戴设备(如AR眼镜和智能手表)对协作机器人进行控制。针对装配中的任务分配问题,Malik 等[51]提出了一种基于技能(复杂度)的任务分配方法,根据任务的复杂度不同,合理地将任务分配给机器人和工人。
在货物分拣任务中,协作机器人往往与移动机器人协同工作,自动化地解决分拣问题。D'Souza 等[53]提出了一种由自动导航车辆(AGV)、协作机器人、机械手以及摄像头组成的机器人拣选系统的简化模型。首先利用摄像头识别货物,然后利用协作机器人和机械手对货物进行抓取,放置到AGV 上,最后AGV 在仓库和其余工作站之间传送货物。Fager等[54]提出了一种人机协作的试剂盒制备方法,利用协作机器人从仓库挑选试剂的成分进行制备,并利用AGV进行运输。研究结果显示,与纯人工的方式对比,人机协作的试剂盒制备方法效率更高。
除了工业生产,协作机器人在医疗,服务等场景中也广泛应用。在医疗方面,Su等[55]提出了一种人机协作的手术方法,外科医生可以借助协作机器人更加精准高效地完成手术。此外,随着人口老龄化的不断加深,老年人护理问题愈发重要。Lyu等[56]提出了一种远程机器人控制系统,利用协作机器人对老年人进行护理。该系统由一个双臂协作机器人Yumi和可穿戴的运动捕捉系统组成,利用机器人遥操作技术,使护理人员可以远程照顾行动不便的老人。
随着人机协作方法和运动规划方法的不断进步,协作机器人更加安全、高效,可以完成更复杂的任务,在各个领域的应用也会越来越广泛。
2 人机协作方法
协作机器人最大的特点就是在近距离内与人类协同工作。人机协作有三个关键因素:简单、安全和高效。本章围绕以上三个关键因素,将人机协作方法分为三方面,包括协作机器人编程方法、安全协作方法和高效协作方法,如图1所示。
图1 人机协作方法
2.1 协作机器人编程方法
工业机器人通常使用人工示教或离线编程。早期工业机器人的控制主要是利用示教器进行示教再现[57]。这种方法在一些简单的任务中可以胜任,如点到点的搬运等。但是对于复杂的任务,示教编程无法满足工业生产需求。为了解决该问题,20 世纪80 年代起机器人离线编程技术逐步发展[58]。离线编程借助计算机图形学,在仿真环境中建立工作环境和机器人模型。由于离线编程可以对复杂曲线进行精准规划,在汽车喷涂、装配等领域应用较广。
但是上述两种编程方式要求操作人员进行学习和适应,对技术经验要求较高[59],很多企业并没有足够多满足上述要求的操作人员[51]。此外,以上两种方法对于特定作业任务需要单独进行编程。如果任务改变,重新编程需要耗费大量人力和时间[60]。这就需要开发出更加简单、高效的协作机器人编程方法,以满足企业的生产需求。本节介绍几种目前研究较广的协作机器人编程方式。
2.1.1 拖动示教
拖动示教又称直接示教(direct teaching),即操作者通过拖动机器人进行示教编程。该方法简单直观,对操作人员的技术经验要求较低,很适合人机协作的需求。目前大部分的协作机器人产品都配备了这项技术。拖动示教可以分为功率级脱离示教和伺服级接通示教[61]。功率级脱离示教就是在示教过程中切断机器人的电源,使各个关节电机处于无伺服状态,操作员在示教时需要克服机器人的重力和摩擦力等。这种方法相对容易实现,但由于工业机器人一般重量较大,其关节执行机构摩擦力较大。此外,在扰动力的作用下,操作员很难将机器人定位到准确的示教点。因此,伺服级接通示教应用更加广泛。伺服级接通示教主要有两种示教方法,一种是利用末端多维传感器的位置控制,一种是建立机器人动力学模型进行力矩补偿。
第一种方法利用机器人末端的多维传感器获取位置信息,牵引机器人末端在笛卡尔空间运动。这种方法不受机器人重力和摩擦力影响,并且实施简单。该方法的缺点在于,多维传感器增加了机器人的成本,降低了机器人的负载能力,并且只能在笛卡尔空间对机器人示教。Almusawi等[62]在机械臂末端安装扭矩传感器,测量力和扭矩的六个分量,通过人的直接引导和机器人响应之间的瞬时匹配,将力和扭矩转换到所需的位置/方向,实现了简单化的拖动示教。杨浩等[63]利用机器人末端的力传感器,实现了康复机器人的拖动示教,简化了康复训练中对机器人编程的复杂过程。
第二种方法建立机器人的动力学模型进行力矩补偿。在示教过程中,控制器实时算出机器人运动所需要的力矩,然后对其进行补偿。这种方法可以节省多维传感器的成本,并且可以在关节空间对机器人示教,所以目前应用更为广泛。Chen 等[64]提出了一种用于协作机器人的零力控制拖动示教方法,利用霍尔传感器检测电流信号实时对力矩进行补偿。Yuan 等[65]使用机械臂各关节电流传感器的值计算出所需扭矩,抵消预先校准的重力和摩擦阻力。Gao等[66]针对温度、速度和负载三个变量对关节摩擦的模型展开研究,利用建立的综合摩擦模型完成了拖动示教过程中的力矩补偿。
2.1.2 基于演示学习的编程
基于演示学习(Learning from Demonstration,LfD)的编程是目前机器人学的重要研究方向。该方法结合了学习的思想,简单直观的同时具有泛化能力[67],尤其适合协作机器人的编程需求。与传统示教方法相比,该方法不是对示教动作的简单重复,而是从示教动作中提取信息、形成运动模型,最终可以在多种场景中广泛应用。该方法可以分为基于运动的演示学习和基于任务的演示学习,前者根据机器人的示教轨迹进行学习,一般可以应用在简单任务中;后者根据任务语义进行学习,主要用来完成复杂任务。这两种学习方法之间的界限并不具体,具有依赖的关系[68]。
基于运动的演示学习需要获取机器人的运动轨迹信息和交互力信息,根据提取到的有效信息建立运动模型[67]。轨迹信息的获取可以通过摄像机等外部传感器。李建良等[69]提出了一种演示学习的编程方法,利用摄像机对人类的抓取行为拍摄视频,然后特征提取得到了轨迹信息,通过演示学习的方式使机器人完成了相同的抓取。此外,机器人本体的轨迹数据也可以作为演示数据,比如上文提到的拖动示教方法。Najafi 等[70]利用势场函数和速度控制器记录医师的交互力信息,使机器人在治疗过程中可以给患者提供同样的交互力。
基于任务的演示学习主要针对具体应用任务,是一系列机器人运动的组合。Malekzadeh 等[71]提出了一种低层控制到高层运动规划的架构,对软体机器人末端执行器的位置和方向进行记录,完成了苹果摘取的任务。Hwang等[72]提出了一种基于视觉的演示学习编程系统,使用两个摄像头进行目标检测和多动作识别,根据学习到的动作序列,让机器人完成倒咖啡的任务。在人机协作过程中,演示学习也能起到重要作用。Wang 等[73]提出了一个用于协作机器人的教-学-协作(TLC)模型,可以从人类操作员的演示中学习。协作过程中如果出现任务的变更,机器人也可以通过演示学习自行更新任务信息,协助操作员完成工作任务。
2.1.3 其他编程方法
为了实现简单高效的人机协作,人们尝试利用多种方式简化机器人的编程过程。例如,通过对视觉或声音的识别,机器人可以实时完成人类的操作命令;通过VR/AR 的方法,人类可以在实景中直观地对机器人的编程;甚至通过脑机接口,人类可以免去手动编程,直接用意念控制机器人。但是目前,这些方法多数尚在研究中,没有实际的工业应用。
利用三维摄像机识别人类的身份及动作,可以有效地进行人机交互。Makrini等[74]提出了一种基于视觉识别的人机协作系统,利用Kinect相机对操作员进行人脸识别,手势识别以及行为识别。其中人脸识别用以确定操作员的身份;手势识别用以操作员实时对机器人下达命令;行为识别可以识别操作员的几种动作,如点头、摇头等,作为人机协作中的反馈信息,以实时调整协作任务。
虚拟现实/增强现实(VR/AR)技术可以直观显示人机协作操作过程,极大降低了操作者的编程难度。Chacko等[75]提出了一种AR 交互的人机协作方法,用于完成分拣任务。可以使操作员可视化地控制机器人姿态和使用虚拟AR元素,从而降低了对于不同任务的机器人编程工作量。Hietanen 等[76]提出了用于安全HRC 的交互式AR 用户界面,并且对比了投影镜(Projector-Mirror)和可穿戴AR设备(HoloLens)两种方法。在一个实际的柴油机装配任务中进行实际试验,结论为基于HoloLens的AR技术还不适合工业制造,而投影镜方法更为适合。脑机接口(Brain-Computer Interface,BCI)是近年来的热门研究方向,研究人员尝试将其与协作机器人结合。Li等[77]提出了一种基于脑机接口的人机协作系统,用于缺陷零件的分拣。该系统与BCI、视觉模块和机器人驱动器集成,使操作人员可以将决策直接从大脑发送给机器人。但是该方法较为复杂,并且在工业生产中的应用有限制,需要进一步进行研究。
2.2 安全协作方法
上一节介绍了协作机器人的各类编程方法,通过上述方法可以简单高效地操作机器人完成协作任务。此外,在人机协作过程中,由于机器人与人类近距离接触,安全性是首位需要考虑的。文献[6]中提到,安全策略可以考虑三个步骤:(1)与内在安全相关的步骤;(2)可以防止碰撞的步骤(碰撞前);(3)在发生碰撞时的步骤(碰撞后)。综合目前对于人机协作安全的研究,本节从人机协作安全准则、碰撞避免方法、碰撞处理方法三个方面,介绍人机协作中的安全协作方法。
2.2.1 人机协作安全准则
实现机器人的安全协作,首先需要制定一系列安全准则。国际标准化组织(International Organization for Standardization,ISO)在2011 年发布了工业机器人安全标准ISO 10218:2011,标准文件分为ISO 10218-1[78]和ISO 10218-2[79],前者规定了机器人本体设计和制造中的安全标准,后者规定了机器人系统集成、安装、功能测试、编程、维护和修理等标准[80],该标准可以全面地对工业机器人的使用安全进行规范。但是协作机器人对人机协作的要求更高,不能简单地沿用工业机器人安全标准。所以在2016年,ISO组织针对ISO 10218进行了补充,并发布了协作机器人安全技术规范ISO/TS 15066:2016[81]。
重要的是,在ISO/TS 15066 中定义了四种的安全协作准则,包括安全级监控停止、手动引导、速度和距离监控、功率和力限制,如图2 所示。其中:(1)安全级监控停止,当操作员进入协作范围内机器人停止工作;(2)手动引导,只有操作员直接对机器人手动引导操作,机器人才能进行工作;(3)速度和距离监控,保持操作员与机器人的安全距离,当距离小于定值时机器人停止工作;(4)功率和力限制,当操作员与机器人发生必要/非必要接触时,保持机器人功率与力的限度,突破上限则停止工作。
图2 安全协作准则
这四种协作准则可以用做人机协作应用中的安全标准,文献[80]中其进行了详细解读,并由此提出了人机协作安全的一般性指导原则。此外,Chemweno 等[82]对ISO/TS 15066 中的安全标准进行了探讨,针对危险分析和风险评估提出了协作机器人安全的保障措施。
2.2.2 碰撞避免方法
通过非接触式传感器进行环境感知以避免不必要的碰撞,称为机器人碰撞避免,或事前控制。这类方法的目的是在机器人发生意外碰撞前采取相应的安全措施来避免碰撞发生。根据上节描述的协作准则,如果有操作员出现在工作空间,可以通过预先设定的安全策略对机器人进行调整,如图3所示。
图3 机器人主动碰撞避免方法
目前针对速度和距离监控的研究较多,实际应用也较为普遍。Byner 等[83]对速度监控进行研究,提出了求解机器人极限速度的方法。在协作机器人照料的应用中将该方法与传统的设置围栏的方法进行对比,证明了该方法可以提升任务效率。Flacco等[84]提出了距离监控的方法。他们利用Kinect 深度相机获取机器人工作空间的深度信息,由此计算出机器人与工作空间动态障碍物之间的距离,并为末端执行器和机器人的其他控制点分别设计了不同的排斥力,得到平滑可行的关节速度指令,从而避开障碍物。王政伟等[85]同样针对距离监控进行研究,提出了一种人机距离模型构建方法和人机最小距离迭代算法,实现了动态的人机协作距离监控。
此外,人类操作员的行动通常遵循某种特定模式[86],所以碰撞避免的另一个思路是对操作员进行实时检测,并建立运动模型预测其下一步行为,以避免潜在的碰撞出现。同时,这种行为预测方法可以加强人机协作的效率。Callens 等[87]提出了一个识别和预测正在进行的人体运动的框架。由这个框架生成的预测可用于机器人设备的控制器,使人类和机器人协作者之间产生直观和可预测的交互。经过测试,该框架具有良好的识别和预测效果,但是只能预测一定时间内的运动,不能预测完整的运动过程。陈友东等[88]提出了一种基于LSTM网络的动作终点预测方法,通过采集少量人的动作数据训练出模型,可以实现对于装配任务中抓取动作的预测,达到安全避碰等效果。
2.2.3 碰撞处理方法
在人机协作应用中,碰撞避免不足以解决全部问题,一些必要的碰撞不可避免。在发生碰撞后,超过一定阈值的力,以及机器人的特殊姿态都可能导致人类的受伤甚至死亡。如何在必要/意外碰撞中保证人类的安全成为了研究热点,可以从以下几个方面考虑。首先,机器人本体的柔性设计可以减缓冲击的能量,协作机器人本体大多采用这种柔性设计,本文的2.2.2 小节对此进行了介绍。其次,机器人本体的多传感器设计可以对外力进行检测,本小节对此进行介绍。最后,利用碰撞处理方法可以减少碰撞后的冲击/伤害,保障人类安全。碰撞处理方法包括碰撞的检测与识别,机器人柔顺控制等。
机器人碰撞的检测与识别,即识别碰撞力的大小方向、碰撞的意图等。Ren 等[40]提出了一种基于本体感受传感器(编码器和扭矩传感器)的碰撞检测方法,可以对碰撞力进行检测,包括力信号的大小和方向信息。Heo等[89]提出了一个基于深度学习的碰撞检测框架(Collision-Net),利用深度神经网络模型学习机器人的碰撞信号和识别任何发生的碰撞,具有较强的检测性能和泛化能力。Kouris 等[90]提出了一种基于机器人本体感受传感器的方法,测量的外力谱导数来识别接触点,在人机协作过程中可以区分有意接触和意外碰撞。
此外,为了建立人类对于接触力和压力承受的安全标准,Park 等[91]将人的疼痛耐受力作为标准,测定了90名男性15 个身体部位的疼痛阈值,为协作机器人的施力上限做了参考。文献[92-93]对于大量碰撞数据进行分析,将碰撞造成的伤害严重程度作为标准,分析了不同机器人造成的伤害,得到了机器人碰撞损伤的安全标准。同时,ISO/TS 15066中对此也有相关规定,可以参考。
在完成了碰撞力的识别后,需要精确地对机器人力矩进行控制,以满足上述安全标准。机器人的主动柔顺控制方法可以实现这个需求,包括阻抗控制[94]、力/位混合控制[95]以及结合神经网络的智能控制方法[96]等。Ernesto等[97]提出一种自适应非传统滑膜阻抗控制方法,利用力矩传感器实时检测碰撞力矩,实现了人机协作的抛光、打磨任务。Li等[98]提出一种神经网络阻抗控制方法,根据传感器获取的力位信息估计人类运动意图,并使机器人配合人类完成协作应用。不同应用有不同的安全标准,针对具体应用,需要根据实际情况设计其控制方案。
2.3 高效协作方法
在确保了协作安全的前提下,最重要的是提高人机协作的效率。如文献[99]中所述,人机协作任务的最大挑战在于两个方面:人与机器人的协作方式;有效的任务调度和分配策略。本节针对人机协作的效率问题展开讨论,重点介绍协作任务的分配方法。此外,协作任务中人类操作员会面临一系列心理问题,本节对此进行介绍。
2.3.1 协作任务分配方法
早期的人机协作任务分配主要依靠操作员的直觉,没有合理的任务分配方法。为了提高效率,研究人员提出了一系列协作任务分配方法。本节将这些任务分配方法主要分为两类:一类是基于任务进行分配;另一类是基于操作员与机器人进行分配。
第一类方法通常基于任务的复杂度、时间成本等指标,对协作任务进行分配。Chen等[99]提出了一种基于遗传算法的动态优先级任务调度算法,将装配时间和支付成本实现最小化,实现了人与机器人间的顺序和并行任务分配。Malik 等[100]提出了一种动态任务分配框架,对每个任务的自动化潜力做评分,包括循环时间、适应性和安全性等,然后根据评分将这些任务分配给人类或机器人,从而平衡工作负载。Mateus等[101]提出了一种装配任务的优先级识别算法,通过识别装配任务中每个子任务的优先级,实现不受线性序列阻碍的并行任务,并将其分配给了操作员和机器人。
第二类方法基于机器人及操作员的实际情况进行任务分配。Ranz等[102]提出了一种结合人与机器人实际能力来确定任务分配的方法,将能力与特定任务的给定需求进行匹配。首先对一些必须自动化的任务(人类无法完成)进行分配,剩余任务根据人类能力进行量化评分,合理分配。Smith 等[103]提出了一个人机协作任务分配框架,通过量化系统中每个元素的能力和性能,进行有效的评估。为了合理地对人类能力进行量化,他们提出了一个成本函数,基于任务时间和工人疲劳度进行计算。Lamon 等[104]对装配过程中任务分配问题进行研究,综合考虑了任务复杂度、灵巧度和努力度三个指标,来评价人类和机器人的任务表现,并且加权将三种指标进行组合,利用一个启发式搜索算法将任务进行最优分配。
2.3.2 协作心理问题
人机协作可以提高任务效率,但是在协作过程中通常会给操作员带来心理压力。这种压力来源于操作员需要与机器人共存,并且共同完成工作[105]。合理的协作方法可以减轻协作任务中操作员的不适感,加强人类与协作机器人之间的合作关系,保证操作员的身心健康及协作任务的顺利完成。
人机协作过程中,机器人的运动会对操作员造成心理压迫。问题在于如何减轻这种心理压迫,并且不影响协作任务的效率。Arai 等[105]提出了一种保证操作员心理安全的协作标准,包括距离应大于2.0 m,移动速度应小于500 mm/s,在机器人运动前通知操作员等。Rojas等[106]针对这个问题提出了一种轨迹规划方法。他们根据人类操作员的心理承受能力,设计了冲击(jerk)最小化的轨迹,并在装配任务中完成了验证。
此外,协作机器人加入情感感知和反馈功能,可以提高协作的效果。Shayganfar 等[107]对人机协作过程中人类的情感意识展开研究,他们设计了一个桌面的协作环境,操作员和机器人一起安装太阳能电池板。协作过程中,机器人感知操作员的情感并给予反馈(语音和表情符号)。结果表明,加入了情感感知的人机协作效果更好,人类喜欢与具有情感感知的机器人合作。
目前关于协作心理问题的研究尚且较少,随着人机协作的广泛应用,这类问题应引起更多的重视。
3 协作机器人运动规划方法
机器人运动规划的目的是构建出一条从机器人初始位姿到目标位姿的无障碍轨迹,通常分为路径规划和轨迹规划两部分。路径规划[108]根据工作空间的环境信息,构建一条无障碍的机器人路径,包含了机器人各关节的位置信息;轨迹规划[109]建立机器人各关节的时间-轨迹序列,满足运动学和动力学约束条件。
对于协作机器人而言,合适的运动规划方法尤为重要。首先,协作机器人需要在非结构化环境中执行任务,运行中避开各类动态/静态障碍物。其次协作任务通常复杂多变,不像工业机器人一样具有轨迹可重复性。最后,协作机器人的自由度通常较高,难以利用常规算法进行规划。所以协作机器人的运动规划具有较高的研究价值,是目前的研究热点之一。
3.1 路径规划方法
路径规划的定义即为从起始点到目标点选择一条路径,使得机器人能够安全、快速到达目标点,保证机器人不与障碍物发生碰撞[110]。机械臂的路径规划是从初始位姿到目标位姿的离散规划,不考虑机械臂位姿参数随时间变化的因素。协作机器人通常具有6/7 自由度,需要在高维空间进行路径规划,并且协作环境内有静态和动态的障碍物,对算法的实时性要求高,所以一些传统的路径规划方法并不适用。本节介绍三种主流的路径规划方法,并针对协作机器人的特点,介绍适用于协作机器人的路径规划方法。
3.1.1 基于图搜索的路径规划
基于图搜索的路径规划方法,首先需要建立环境地图,根据地图信息构建从起点到终点的最优路径。环境地图的构建方法主要有可视图法[111]和栅格法[112]等,其中栅格法应用较为广泛。在已知环境信息后,可以采用搜索算法寻找最优路径,常用的算法有A*和D*算法。
A*算法是一种启发式搜索算法,其思路为在Dijkstra 算法中加入估值函数,适用于静态环境中的路径规划。宗成星等[113]提出了一种基于A*算法的机械臂路径规划方法,并用二次B 样条曲线对路径点进行插值,得到了平滑的机器人轨迹。D*算法根据A*改进,从目标点开始搜索,直到搜索到机器人当前位置。该算法可以用于动态环境中的移动机器人和机械臂路径规划。Chen 等[114]提出了一种基于D*算法的动态路径规划方法,利用实时避障策略,根据动态障碍物的位置调整路径节点,实现了机械臂的实时避障。
但是协作机器人的维数较高,环境复杂多变,难以建立环境模型。这类图搜索算法需要精确的环境模型,并且对于高维空间的路径规划耗时较长,对于协作机器人并不适用。
3.1.2 基于采样的路径规划
基于采样的路径规划是目前多自由度机器人路径规划的常用方法,主要有概率路图(Probabilistic Roadmaps,PRM)算法和快速扩展随机树(Rapidly-exploring Random Trees,RRT)算法等。
PRM算法是一种多次查询(multi-query)算法,分为学习和查询两个阶段[115]。学习阶段构建路径图,首先在地图中进行随机采样,然后连接各点,形成无向网络路径图;查询阶段搜索最优路径,首先将初始节点和目标节点与路径图相连,然后利用A*等算法寻找最优路径。该方法不用事先建立精确的障碍物模型,适合高维空间的机器人规划。但是PRM 算法的问题在于,搜索到的路径并不是最优路径,需要进行路径优化。Janson等[116]针对这个问题提出一种思路,用确定性采样序列代替随机采样序列,实现了PRM算法的渐进最优,并将这个思路拓展到其他采样算法。在实际应用中,邹宇星等[117]提出了一种基于快速构型空间创建的改进PRM算法,在采摘机器人上进行了实验,取得了良好的效果,但是这种方法在高维空间进行规划时较为复杂。文献[118]提出了一种基于PRM 算法的实时路径规划方法,在码垛任务中实现了高效的机器人运动规划。
RRT 算法是一种单查询(single-query)算法,相比PRM算法节省了前期的路径图构建。RRT算法的基本原理是从起点构建一颗搜索树,在空间中进行随机取点,搜索树向样本点方向扩散,直到树中的叶子节点扩散到目标点附近,完成搜索过程,并返回该节点到根节点的路径连线。该方法具有环境建模简单、搜索能力强、能够添加多种约束等优点,非常适合于协作机器人在动态高维空间中的路径规划。
但是基本RRT算法存在节点利用率低,路径不稳定等缺点[119],研究人员提出了多种改进算法。本文选取几种有代表性的改进算法进行总结。根据适用场景不同,可以分为全局路径规划算法和动态路径规划算法,如表3所示[120-128]。
表3 RRT改进算法总结
对于RRT算法在机器人上的实际应用,研究者通常基于以上几种算法进行改进。刘建宇等[129]提出了一种基于RRT*-connect的改进算法,利用目标偏置策略加快算法收敛速度,以及梯度下降法优化路径平滑度,在协作机器人UR5 上进行了验证。Cao 等[130]提出了一种荔枝采摘机器人的运动规划方法,引入目标重力的思想加快算法收敛速度,并利用遗传算法和平滑算法对路径进行优化。但是以上两种方法耗时较长,无法做到实时路径规划。Wei 等[131]针对人机协作中机器人在动态非结构环境的运动规划问题,提出了一种改进RRT算法,利用目标定向节点扩展方法加快算法的采样速度,提高了协作机器人的路径规划效率。
3.1.3 基于人工势场的路径规划
人工势场法是Khatib[132]提出的一种机器人路径规划方法,其基本思想是在机器人工作环境中设定一个虚拟力场,目标点处势能低,障碍物处势能高。利用势差生成吸引力和排斥力,驱使机器人向目标点运动,远离障碍物。这种方法的优点在于无需对全局路径进行规划,且规划时间较短,适合实时性任务。缺点在于容易陷入局部极小点,存在目标不可达问题,且在狭窄区域容易发生路径抖动等。
对于协作机器人而言,人工势场法可以保证任务中的实时避障,但是需要针对其缺点进行改进。谢龙等[133]提出了一种改进人工势场法的路径规划方法。对机器人末端执行器建立吸引力,对机械臂与障碍物的最近点出建立排斥力,根据动力学定律分别产生吸引速度和排斥速度,实现动态避障。针对局部最小值问题,采用添加虚拟点的方法跳出局部极小值。
3.2 轨迹规划方法
轨迹规划指对机器人的各关节和末端执行器建立时间-轨迹序列,生成控制系统的参考输入[134]。机器人轨迹规划可以分为两种:一种是笛卡尔空间(Cartesian Space)轨迹规划,首先对末端执行器的空间轨迹进行规划,在每个插补点做运动学逆解,计算对应的关节值;另外一种是关节空间(Joint Space)轨迹规划,根据机器人首末位姿的关节值,对各关节分别规划轨迹曲线。一般来说,点到点(PTP)的轨迹,如搬运、码垛等应用,使用关节空间轨迹规划较为方便;需要规划一条连续轨迹,如焊接、喷涂等应用,则使用笛卡尔空间轨迹规划。
机器人通常先利用函数曲线对插值点进行拟合,得到时间-轨迹序列,包括轨迹位置、速度、加速度等信息。完成轨迹插值后,在机器人本身运动学性能的约束下,针对各类约束条件做轨迹优化[135],根据实际任务情况选择不同的优化方案。本节从轨迹插值和轨迹优化两个步骤介绍机器人轨迹规划。
3.2.1 规划插值
常见的轨迹规划方法一般分为直线规划、圆弧规划、多项式曲线规划以及样条曲线规划等。早期研究者提出了三次和五次多项式插值法[136]对工业机器人进行轨迹插值。该方法计算量小,但是容易出现失真现象,在精度要求不高的机器人应用中较为常用。
随着硬件计算能力的增强,研究者开始使用样条曲线对机器人做规划,样条曲线在平滑性上则比多项式更加优秀,但计算量则大大增加。Alessandro等[137]提出三次样条曲线的轨迹规划方法。这种算法约束较少,运算速度快,但是加速度曲线有抖动,导致机器人磨损较大。为了进一步提高轨迹规划的精度和稳定性,研究者提出B样条(B-Splines)曲线插值。Kong等[138]利用三次B 样条进行轨迹插值,得到的轨迹曲线较为平滑,但是无法自行指定始末加速度和冲击。Li 等[139]利用五次B样条对机器人进行轨迹插值,得到了高阶连续的运动轨迹。
为了对比几种常用的样条函数插值效果,Lan 等[20]利用三次样条、五次B 样条、七次B 样条对同一组轨迹点进行插值,得到了三组轨迹序列,并对三组轨迹的冲击(Jerk,加加速度)曲线进行对比。冲击值可以反映机器人力矩变化的快慢。图4 为不同样条函数的冲击(Jerk)曲线对比,其中横坐标为时间,纵坐标为样条函数的冲击值。由图可以看出,三次样条的冲击曲线不连续,五次B 样条的冲击曲线不平滑,且始末位置不为0;而七次B样条曲线较为平滑,且始末位置都为0,防止了力矩的突变。
图4 不同样条函数的冲击Jerk曲线对比
本文对各类机器人轨迹插值算法的优缺点和适用场景进行对比,如表4所示。
表4 机器人轨迹插值算法总结
3.2.2 轨迹优化
经过轨迹插值后,得到了一条机器人的运动轨迹,包含位置、速度、加速度等信息。但是通常得到的轨迹并不符合预期,需要进一步进行轨迹优化。对于协作机器人而言,高效和平稳的轨迹可以减少异常情况发生的可能,对协作者的安全有很好的保障。同时,良好的轨迹可以很好地保护机器人的减速器、电机等部件,有利于延长使用寿命。所以,在满足运动学及动力学约束的前提下,通常利用轨迹优化算法对轨迹优化。
机器人轨迹优化的主要优化方向包括时间、能耗和平滑性等[140]。其中,时间目标指机器人完成相同路径所用时间最短。Xidias 等[141]提出了一种基于多种群遗传算法的时间最优轨迹规划方法,在超冗余机器人上实验,考虑三维空间中的复杂障碍物环境以及运动学约束,得到时间最优的机器人轨迹。能量目标指机器人完成相同路径消耗最少的能量。Luo 等[142]提出了一种拉格朗日插值法和迭代法的方法,进行工业机器人的能量最优轨迹规划。该方法为数值法,计算简单,在实际应用中可以保证机器人的平稳运行。平滑性目标指机器人完成相同路径最为平滑。Lin等[143]提出一种基于k均值聚类的粒子群算法,求解最小冲击轨迹,得到平滑的机器人轨迹曲线并在六自由度机器人上进行了实验,但是该算法收敛速度较慢。
但是,以上的单目标轨迹优化难以满足复杂情况的应用需求,越来越多的研究者开始关注多目标轨迹优化。传统方法是将多目标问题转换为单目标问题,再用单目标优化方法进行优化。Gasparetto 等[144]将时间-冲击目标加权转化为单目标,利用序列二次规划法进行轨迹优化。这种方法的问题是难以合理分配权值,解的多样性不足,同时可能陷入局部最优解。
对于上述问题,多目标优化算法是一种有效处理方法。多目标优化算法可以对多个目标同时进行优化,得到一组Pareto最优解集,再根据具体的情况选择合适的解。Shi 等[145]利用NSGAII 算法得到了一组Pareto 最优解,并选取了合适的解作为机器人轨迹。Lan 等[20]提出了一种改进的多目标粒子群算法,针对时间、能耗和平滑性三个指标同时进行优化,得到了一组Pareto最优解集,并提出了一种权值选择方法,可以根据实际情况选择满足应用需要的轨迹,但是算法的收敛需要一定时间。
4 协作机器人发展方向
经过近年来的研究与发展,协作机器人已经在各类场景中应用愈发广泛,人机协作方法和运动规划方法也有了大量的研究成果。但是,目前协作机器人距离理想的程度还有很大差距。由于协作机器人的研究是多学科、多领域的交叉,涉及到材料、机械、信息等学科,所以其发展依赖于这些学科的发展。根据本文的总结,以下几方面可能成为协作机器人未来的发展方向:
(1)协作机器人本体设计
协作机器人的本体是实现人机协作的根本条件。随着人机协作应用的不断增多,协作机器人需要适应具体的应用需求,对本体进行定制化设计。例如机器人连杆采用柔性材料,即利用软体机器人进行人机协作;研发新型驱动装置,使机器人具有更好的柔顺性;机器人内部加入多传感器,利用多传感器信息融合使机器人更好地感知协作环境等。想要实现这些机器人本体的改进,需要同时对控制、运动规划等配套算法进行大量研究,以保证人机协作的顺利完成。
(2)智能人机交互
目前操作员对协作机器人操作,还是以事先编程为主。但是在协作环境下,人类与机器人之间需要更加方便智能的交流方式,比如以下几种方式:人机协作过程中,机器人利用摄像机对操作员的行为进行识别和预测;人类通过手势、声音等方式,在协作任务中实时对机器人发出命令;通过VR/AR技术,操作员在虚拟环境中对机器人做控制;操作员通过脑机接口装置,利用意念对机器人做控制。
(3)安全协作方法的完善
目前ISO/TS 15066为协作机器人安全制订了一系列规则,但是相比于工业机器人,协作机器人的安全标准还有很多方面需要完善。对于特定的协作任务,需要建立具体的安全标准。同时,为了保证人机协作中的安全,需要加强对碰撞避免方法以及碰撞后处理方法的研究,利用多传感器系统进行环境感知,以及人工智能算法进行识别与预测。
(4)协作任务中的心理问题
随着人机协作应用的不断增加,协作中的心理问题需要引起重视。人类在面对机器人工作时会有一定的心理压力,合理的协作方法可以减轻这种压力。此外,机器人与人类的情感互动可以创造一种亲密感和愉悦感,让人类想要继续与机器人合作。加入情感功能的机器人能够更好地维持合作关系,并且加强协作任务的效果。人机协作心理及情感是协作机器人未来的重要研究方向之一。
(5)机器人自主学习能力
目前的协作任务需要人类对机器人的每个动作进行规划。但是在人机协作任务中,需要机器人执行一系列复杂的任务,例如医疗服务场景中,通过协作机器人照顾病人,帮助病人穿衣服等。这些复杂的应用需要机器人能够具有自主学习能力。目前机器人只有在特定场景中能够完成自主学习,如本文3.1.2小节中所述,机器人可以利用演示学习编程技术学习到人类的特定技能。但是该技术尚不成熟,且需要复杂的准备工作。人类希望机器人能够更智能地对进行学习,以便于完成复杂任务。机器人自主学习能力已经成为机器人学的重点研究方向之一。
5 结束语
本文首先介绍了协作机器人的基本情况,包括主要产品、本体设计与应用案例。其次围绕本文提出的协作机器人三个主要特点:简单、安全和高效,对近年来人机协作方法的研究进行分类介绍。然后从路径规划和轨迹规划两方面,对协作机器人的运动规划方法进行介绍。最后,根据本文总结的内容,提出了目前协作机器人研究的不足之处,对其未来发展趋势进行了展望。
协作机器人是当前的热点研究内容,也是未来机器人产业的发展方向。在科技不断进步,人力成本不断上升的今天,协作机器人不仅可以在工业领域中加快生产效率,也能在医疗、服务等领域中帮助人们实现更美好的生活。希望从业人员继续完善协作机器人的研究、开发与应用,让协作机器人发挥更大的作用。