刘云
江西机电职业技术学院 江西 南昌 330013
归巢是一个从生物学中借用来的术语,它通常用来描述各种生物体,如昆虫,在沿着某条路径走了一段距离后返回巢穴的能力[1]。在工业机器人操纵器中,原点位置(HPos)是由人工操作员组成的一种预定义的关节配置,其中机器人的操作周期启动和终止。达到这个位置被认为是一种与安全相关的工作动作路径在一个安全的机器人单元外壳中执行。工业机器人引导的制造过程,如装配、分配、材料去除和检查通常需要一个六自由度(DOF)的机器人机械手在不同的关节配置之间转换,即肘部—手腕上下,改变手臂工具的末端执行器。这些机器人越来越多地在繁忙和紧凑的工作空间中操作,用不同的传感器操作各种部件和组件。万一发生意外事件而中断,例如,机器人单元警报,机械手的配置和位置将是不可预测的,这将使机器人从单元中的任何地方安全返回hpo点,以重新启动操作。
目前在制造环境中,机械手的归巢仍然是一项手工任务。机器人制造商在控制软件中提供了一些内置的功能,即线性或关节运动函数,但这些函数通常不考虑与机器人单元的任何潜在碰撞、关节极限、达到极限和奇点[2]。目前的工业方法是根据预定义的起始区域集来编程有限的归巢运动序列。一个典型的机器人单元将由3-10个起始区域组成,由人工操作员手动定义,每个区域手动编程3-5个运动段。例如,图1显示了一个自动焊接机器人,它使用一个操纵器,利用4个预定义的起始区域,向不同的飞机发动机组件分配不同类型的合金。
图1 一个带有4个预定义的起始区域的机器人细胞
目前的方法涉及烦琐的手动教学和机械手运动序列的验证,这可能需要数周的时间。此外,这种对一个具有有限起始区域的归巢序列的手动编程并不总是足以保证机械手的成功归巢过程,并且有无限数量的起始区域的安全运动和路径是不可行的。这必须要求训练有素的操作员手动将操纵器慢跑回HPos,从而导致机器人单元的停机时间过长。
目前,笔者正在探索一种学习策略,该策略允许代理在训练策略的机器人单元中,在没有额外训练的机器人环境下,找到其返回位置的路径。但不适用诸如编码静态障碍物的边界条件的动态规划等方法,因为它们在适应新环境时需要感知周围环境。这项工作利用了基于课程的学习方法,以便通过在简单的例子上启动代理的训练来帮助学习,并随着训练的发展而逐步增加复杂性。任务的难度通常由人类的直觉决定的。有大量的研究基础上,包括手工制作的课程和自动生成的课程,都在特定领域应用中显示了非常有前景的结果。
这里的方法包括学习控制原语,预先指定的,或要求识别相应的逆动力学模型。笔者的方法是直接求解给定的马尔可夫决策过程(MDP),并影响MDP中起始态的分布。另一个方法是激励平滑。该方法提出了用一个存在于整个状态空间中的平滑函数来代替奖励的稀疏信号。激励平滑的一个潜在情况是给出一个奖励信号,它相对于到目标状态的距离是二次的。本研究的方法不使用奖励平滑,因为涉及该方法的某些机器人控制问题产生了次优策略。通过修改训练过程中的起始状态分布,生成一种无模型的起始状态。研究表明,正是这些起始状态,可以获得良好的性能,因此,通过监测这些介质成功的起始状态,并选择随机动作来采样新的状态,机器人的工作在广泛的系统中都显示出了良好的效果。
本研究使用了PyBullet模拟机器人单元和操纵器的整个环境,它的主要特点是基于python的软件堆栈安装简便。此外,为了便于理解,笔者研究时使用费瑟斯通的算法进行多体动力学表示。与Gazebo使用的最大坐标刚体表示相比,更适合于机器人任务,并允许有关节间隙。
针对工业环境条件下,在真实和模拟机器人环境之间能进行精确映射,它包括所有模块(如摄像机、传感器、泵等)。在这个方向上,笔者开发了一个半自动化的流程管道。在这个过程中存在一个手动步骤,其中所有模块,包括组成工业机器人工具结束(EOAT)的组件,都以抽象表示形式导出为独立的STL格式,笔者基于的是一个机器人实际本体,在STL文件使用三维笛卡尔坐标系,用三角形的单位法线和顶点(按右边规则排序)来描述原始的、非结构化的三角形曲面。在接下来的步骤中,考虑到每个STL文件被导出的参考框架,笔者为每个实体协调出适当的位置和方向,以及搭建代理培训所需的抽象但准确的培训环境。
机器人姿态生成器依次生成每个关节的起始角度位置,这个姿态受伺服电机的角度限制。此外,当启动机器人姿态生成器验证时,启动状态过程中是否会与环境(如围栏、墙壁等)发生碰撞或其自身是否有干扰(例如,安装本体的接头)等,这都是需要考虑的问题。
笔者使用的工业机器人机械手是FANUC LR Mate 200iD,它是六个自由度。机器人在训练环境中的用到的是urdf格式,动作空间被统一归化为在[-1,1]范围内,随后将机器人的每个关节的每个动作值乘以相应的关节速度极限。因此动作向量有6个参数(即六轴机器人关节)。这个代理的状态向量总共有103个参数,包括:18个线性位置(即6个关节各3个位置),18个方向,18个线速度,18个角速度,工具的3个位置和3个方向以及特定的某些类型的环境感知。
在研究中还探索出,EOAT处引入了25条射线(参数)来感知与环境表面的距离,作为环境感知的一种方式,每组射线在状态描述中封装了关于EOAT的环境编码。不同的磁盘表示以不同角度投射的不同射线。但这种射线拓扑只在模拟环境中使用,而不是真正的机器人应用程序。
为了能够到达一个特定的目标状态,机器人需要学习控制策略,使得运行过程中无碰撞,能避免奇点。或者从任何起始状态开始,能从一个均匀的状态分布中采样。笔者简要介绍了所使用的RL算法以及相应的激励函数。
为了便于研究,笔者引入了SAC算法。它属于无模型、非策略的深度RL算法。SAC标准目标函数J(π)按激励顺序的方式,通过增加一个熵项,可以获得所需的策略π(at|st),使预期的E累积激励最大化。
其中,T是时间范围,ρΠ表示在该策略下生成的状态-行动分布π(at|st),α是响应系数。
在归巢环境中,加速学习过程,是一个关键的因素。在这个环境下,要想优化RL算法是很困难的。机器人的启动目标是,从任何均匀采样的起始状态开始,将其EOAT带到由HPos定义的目标位置。如图2所示,本研究建立了一个目标区域(TZ),以一个半径为r的边界球形体积表示,以归巢构型的原点为中心[3]。在这个边界体积之外的任何地方,激励都是零。每当机器人成功地将其EOAT带入该目标区域时,它就会获得一个固定的激励R区域,对于每个时间t,它都能保持在相应的EOAT内区域内,也就是,R区域t= 0.5.除了固定的激励函数外,为了方便机器人按照期望的归巢配置对齐所有轴,只需在一段时间内的姿态停留在目标区域,就可以获得一个额外的激励函数。
图2 归巢结构模型
通过大量的研究表明,笔者提供的这种方法,可以提高基于强化学习的工业机器人操作器自归巢能力。该方法的关键点在于,通过使用并行代理设置结合学习机制,基于现有策略逐步增加问题的复杂性,解决一个具有挑战性的目标导向问题的能力;也展示了并行代理生态系统在学习过程中引入和改进,可以获得推广到新环境中的能力。本次探究的方法还可以应用于具有工业机器人使用的标准编程管理的真实机器人系统中,也很容易地集成到任何工业机器人细胞中。
未来的发展方向是学习机制与规划目标二者相结合,满足机器人运动方向矢量的要求,以致能达到更加精准的自定位能力[4]。但也有很多不足之处,由于DRL代理学习中需要涉及的环境因素,为了避免与环境感知碰撞,这就要解决非刚性物体和具有不确定性的环境之间相互作用之间的问题。未来的研究还可以解决通过选择射线拓扑参数,即密度和密度,对环境传感的潜在影响。