基于神经符号的动力电池拆解任务与运动规划
2021-12-14王志刚张翌盛
任 伟 王志刚 杨 华 张翌盛 陈 铭
1(上海交通大学机械与动力工程学院 上海 200240) 2(英特尔中国研究院 北京 100086)
随着大容量锂离子电池技术的成熟,越来越多的汽车制造商采取动力电池作为新能源汽车动力源[1].我国电动汽车的使用寿命一般在5~8年之间,因此,在未来数十年内将有大量的动力电池需要回收[2].中国汽车技术研究中心提供的最新数据显示:伴随着退役动力电池量的不断增加,到2025年国内汽车动力电池累计退役量将高达78万吨(约116 GWh).动力电池中含有钴、镍、铜、铝、锂等金属元素,其电解液中含有多种有机溶剂、锂盐等,如果回收处理不当,将会对环境产生很大影响.为了减轻对环境的影响,动力电池的回收也变得越来越重要.目前,动力电池的回收再利用主要在两大方向进行开展:梯次利用和有价值材料回收再生.但不管是哪一种回收,首先都需要对电池进行拆解.目前,动力电池拆解回收主要采取人工拆解为主,机器辅助拆解的方式[3-4].这种方式不仅低效,而且拆解工作环境恶劣,风险高.为了应对大规模急速增加的拆解任务工作量,减少拆解工作环境对拆解工人的伤害,提高经济和社会效益,采取机器人自主智能化拆解回收动力电池势在必行[5].
当下,机器人智能化自主拆解面临的主要困难是非结构化的拆解环境和多种不确定的条件.汽车制造商为了迎合消费者个性化动力的需求,动力电池包不仅外观造型各异而且性能配置亦不同,即使是同一品牌同一型号的新能源汽车动力电池包的配置也往往不同[5],导致结构不同、连接约束件不同[6].此外,在非结构化的使用环境中动力电池包存在变形(如图1所示[7])、污浊、腐蚀等.而且,由于消费者使用的频次、时长和习惯不同,导致动力电池的健康状态和剩余寿命不同,废旧动力电池包拆解厂商无法批量获得特定批次的动力电池进行拆解.因此,拆解厂商无法像制造厂商一样,针对同一批次的电池包借助固定结构化的预编程控制机器人进行大规模的拆解回收.
Fig.1 Illustration of the electric vehicle battery pack after collision
Fig.2 Illustration with intelligent disassembly system based on NeuroSymbolic
本文的主要贡献是把动力电池的智能拆解任务规范为基于神经符号的任务与运动规划问题,并基于此形成一个感知和控制紧密结合的闭环控制系统.该系统的架构图如图2所示,与经典的规划方法类似,系统用PDDL(planning domain define language)描述每个拆解动作原语,包括每个动作执行的前提条件,以及该动作执行完成后对环境的影响.最佳方案搜索模块根据当前的状态和目标状态,使用逻辑推理的方法自动地设计(搜索)出达到目标的动作规划(动作原语序列).整个过程具有可解释性,系统清楚地知道为什么要做某步骤,以及该步骤的前提条件.与经典规划方法不同的是,我们引入了神经谓词,利用神经网络帮助符号系统完成符号接地(symbol grounding)的问题(即,将连续输入状态,如机器人位姿或图像等,映射到规划器生成所需的符号状态),使该规划方法不局限于符号空间,无需人工完成复杂的抽象工作,根据实际物理空间中任务类型自主完成任务规划,进而控制机器人执行任务.由于神经谓词的输出存在误差,如果简单粗暴(设定某个阈值)完成映射工作,很容易产生无效的状态.所以,我们将搜索模块进行了相应的扩展,使用基于概率逻辑的搜索策略[8-9],将神经网络中softmax层的输出与之对接,促使2个模块能够密切的协同工作.进一步,利用逻辑系统的可解释性,我们对系统进行扩展,在执行过程中,机器人根据当前的执行状态,判断出执行的结果,从而收集拆解现场的实时数据,并利用这些数据训练神经谓词,逐渐地提高系统的识别精度.
我们提出的模型将符号逻辑系统AI 1.0中的推理能力和神经网络系统AI 2.0中的感知和学习能力融合在一起,该模型系统具备4方面优势:
1)自主性.系统能够智能感知环境差别,自主选择并执行运动原语,实现动力电池连接约束件的自主解除;
2)可扩展性.系统通过添加新的动作原语完成更复杂的任务;
3)可学习性.系统通过引入神经谓词实现从连续空间状态到规划器所需的符号状态的映射,映射是基于数据进行学习获得的该映射.这种方法避免了像传统符号逻辑系统一样要求专业人员提前定义和抽象符号,而且,使得整个系统可以在工作中通过现场学习(in situ learning)不断的提高精度;
4)可解释性.任务规划采取符号逻辑驱动,它能够掌握拆解动作执行的原因和结果,因此,人类可以轻松地干预和指导.考虑到系统在可扩展性和可学习性方面的优势,人类的干预和指导可以进一步促进系统的完善和性能的提高.目前,我们基于该系统实现了在复杂多变的拆解工作环境中动力电池连接约束件的智能拆解,验证了系统的可行性.
1 相关工作
动力电池的智能拆解涉及到拆解策略、机器人规划和感知等多方面的工作,本节对现有的研究工作进行分析和概括.
1.1 动力电池的拆解现状
拆解策略研究是动力电池拆解领域最早开始的研究,主要目标是在环境影响最小化的约束条件下追求最大的拆解回收利润,在完全拆解和部分拆解之间设计了一个权衡策略[10].2014—2015年,研究人员设计了拆解工作站针对奥迪Q5电池包展开了深入的研究[11-12].最近的研究工作则是将问题进一步细化,主要根据动力电池的几何结构,利用遗传算法、基于矩阵或基于图论对拆解行为、拆解顺序甚至是拆解路径进行决策和优化[6,13-15].这方面的研究已基本成熟,为高效地拆解动力电池提供了科学的分析和指导.但具体执行环节仍需要人工完成.一些研究尝试通过结构化的编程控制机器人完成最终的执行,实现自动化拆解[16-18],但是忽略了实际拆解过程中高度动态的拆解环境和电池包的不确定性因素,这样的方案还无法大规模地推广应用.
目前在不确定环境下机器人根据感知结果进行自主规划,是实现智能化拆解的主要障碍.虽然机器人技术日臻成熟,已经广泛应用于各种工业场景,例如:切割、搬运、螺栓姿态检测[15]、动力电池抓取[6]等.然而在当下,机器人主要应用于结构化的环境中,人们采用固定编程的方式指导机器人完成任务[6-15],但这种方法却很难应对动力电池拆解过程中复杂多样的拆解任务.机器人要替代人类进行智能化拆解必须具备自主规划拆解任务的能力,例如:移动到目标、靠近目标、贴合目标、移除目标等[19],同时根据操纵目标的类型进行拆解任务和运动规划.
伴随着深度学习技术的发展,已有的一些研究工作尝试通过计算机视觉神经网络识别物体的类型和位置,根据识别定位信息规划机器人的运动轨迹[20-21].这类方案尝试打破传统结构化环境对机器人开发的约束,理论上能够有效提高机器人应对复杂环境的能力,但是深度学习技术依赖于海量的标注数据.在实际应用中,一方面在拆解环境中采集动力电池感知信息的条件受限,很难得到足够多的数据样本.另一方面,由于拆解过程中电池包及其组件的几何精度要求非常高(如图3所示:拆解夹具套筒的中心线和螺栓中心线之间的距离e要小于3 mm,拆解夹具套筒与螺栓的角度差δ在±7.5°范围内时,拆解夹具套筒才可以正常插入螺栓头部),很难对获取的数据进行高精度的标注.2种因素的叠加,使得深度学习模块的表现差强人意,计算机视觉感知模块无法长期、稳定、准确地识别出电池连接约束件的类型和位置,致使机器人行为具有随机性,影响拆解进程.此外,这类方案把感知和规划分开成2个完全独立的模块,而现实中非结构化的拆解环境是高度杂乱的,拆解对象周围经常出现障碍物导致机器人只能部分观察到物体,或者即便观察到了目标物体也无法直接接触拆解连接目标.这要求机器人使用推动、滑动物体的动作,从周围的杂物中部分或全部分离出连接约束件,使机器人有足够的空间进行拆解工作,而不是简单依靠识别定位,调整拆解器目标位置[22].
Fig.3 The angular relationship between thesocket and the bolt
1.2 机器人任务规划
机器人任务规划一直是机器人研究中的热点问题.机器人任务规划是指在无干涉情况下根据被操纵对象初始状态和目标状态,选择合理的动作和约束条件序列改变机器人和被操纵物体的状态,实现从初始状态到目标状态的转移[23-24].这类方法大部分都以人工智能为基础展开任务规划,先针对不同的任务定义问题,并通过对PDDL[25-27]进行调整和扩展,实现不同的解决方案,例如:在多阶段复杂的任务中,采取分层规划的方法将整体的机器人任务分解成简单的任务[28-29].为了减少计算的复杂性,利用连续性松弛规划器减少实时计算的开销[25-30].此外,一些学者针对不确定情况下运动规划决策[31],杂乱环境下机器人推离物体任务规划决策[22],智能机器人操作物体行为实时在线任务规划和决策[32]等进行了研究.尽管这类研究成果斐然,但它们都有一个共同的问题,即规划器要求输入系统状态的符号表征,这往往需要符号学专家预先定义,极大地限制了任务规划的应用范围.目前,这类研究仍停留在实验室阶段.
部分学者尝试利用深度学习的方法完成机器人任务规划[33-34],但深度学习需要大量的数据才能训练出满足要求的规划器.电池拆解任务中,任务步骤多,环境动态性强,很难找到足够的数据训练机器人.而且,电池拆解任务中,有些工作(例如,插拔电路接口)由于机器手的灵活性的限制,短期内无法完全由机器人完成;有些工作(例如,按顺序解除电池组与电池控制模块连接)对可靠性要求很高.人机协同工作是必然的.这对系统可解释性提出了很高的要求.人需要清楚的知道,机器人当下在做什么事,它为什么要做这件事.基于这些原因,在电池拆解领域鲜见采用深度学习完成机器人任务规划的方法.
1.3 第三代人工智能与动力电池拆解
人工智能已经经历了2代的发展.第一代是符号推理方法:研发人员通过定义符号表示和规则,把知识和逻辑表示出来,计算机根据这些知识和逻辑智能地进行推理.这类方法具有可解释性和可靠性高的优点,但依赖于人工定义的符号,所以应用范围有限,目前,机器人任务规划方面的研究主要沿着这个方向进行.第二代基于概率学习(或深度学习)方法:这类方法的本质是,首先针对问题设计概率模型,然后收集目标的大数据并从其中训练出模型中的参数.这种方法在图像处理、语音识别等领域取得了丰硕的成果,但也逐渐触及了该技术的天花板.该方法强烈依赖数据,且不可解释,这限制了它在更多更广泛的领域取得突破.有人尝试基于第二代人工智能技术完成机器人控制任务,包括Deep Reinforcement Learning(DRL)[33]和Learning from Demonstration(LfD)[35-36]等.尽管这类工作也取得了一些可喜的研究成果,但由于第二代人工智能技术本身的局限性,它们都只适用于简单的运动规划,鲜见在复杂的长程任务规划中取得突破.所以许多研究工作开始探讨第三代人工智能[37],把第一代人工智能和第二代人工智能的优势结合在一起.目前两者的结合存在不小的挑战,主要因为它们在不同空间中进行操作,一个是向量空间,一个是符号空间,必须借助新的数学工具.神经符号是一个新兴的技术,[38]最早可追溯到d’Avila Garcez A在2015年AAAI研讨会上的讨论,它的目标是将高级推理(通过逻辑系统实现)与低级感知能力(通过概率学习实现)紧密结合在一起.在架构方面,这些方法都采用了和人类思维方式相同的架构,将系统分成2层,在高层次进行基于知识的逻辑推理,在低层次进行基于概率学习的感知、控制等[39].2个层次互相协作,共同完成复杂的任务.通过高层推理,系统能够更清楚地了解当下的工作状态,基于该状态降低低层感知模块的识别难度.通过低层的识别,将原本复杂的高维信息,抽象成简单的低维信息,使高层可直接进行推理而无需人工介入.这一技术在很多领域都产生了不错的成果[40-42],不过目前还没有形成统一的解决方案.由于应用领域的不同,各项研究工作在状态表征、融合方法上各有千秋.神经符号仍是一个新兴的研究热点.
针对动力电池拆解开展的研究表明,这项工作所面临的问题与神经符号试图解决的问题完全一致.一方面,动力电池的拆解状态复杂多变,要求机器人根据实际情况实时推理出后续的行动方案.动力电池作为人造的产品,通过引入人类已有的知识,能够极大的加速拆解进程.在人机协作的背景下,系统对可解释性和可靠性等方面提出了更高的要求,需要系统融合符号推理的能力.另一方面,由于动力电池的拆解情况复杂多变,人工很难把所有拆解状态全部符号化,这要求系统能够融合概率学习的方法,具有从输入图像等信息中自主学习出符号表征的能力.另外,高层的符号推理系统可以为低层的感知提供上下文,系统无需学习通用复杂的识别模块,只需要根据当前的上下文在一定范围内进行识别和抽象,极大地降低了概率学习的难度,从而扩展系统的应用范围,促进从实验室走向实际的工业场景.基于这个理解,我们将神经符号应用于动力电池拆解任务中,希望为动力电池的智能化拆解提供有意义的尝试.
2 问题定义
作为将神经符号推广到动力电池拆解应用的初探,本文选取了动力电池拆解中最具有代表性的螺栓连接件的拆解移除作为研究案例对象.
2.1 拆解任务
对于人类而言,拆解螺栓轻而易举,但在不确定环境下,现有的机器人还不能持续、稳定地自主完成螺栓拆解.通过分析机械臂拆解螺栓的特点和拆解过程中需要关注的不同状态,我们将螺栓拆解任务可能涉及到的动作划分为靠近目标、姿态调整、拨动杂物、螺栓套接、解除连接5个动作原语.
1)靠近目标(Move).表示将机械臂末端执行器从当前的任意状态移动到目标螺栓附近(上方).执行该步骤需要知道螺栓的大概位置(注意不是精确位置,该位置可以从已有的3D模型获得,也可以从识别模块获知;由于电池包变形或者视觉识别误差等原因,识别模块通常只能提供一个粗略的位置),这一步,在移动过程中仅仅改变机械臂自身的位置状态,不涉及拆解对象和操纵物体.
2)姿态调整(Mate).表示调整机械臂末端执行器的姿态,使末端执行器和拆解对象的姿态一致,即:将末端执行器的中心线和拆解对象的中心线进行对齐.
3)拨动杂物(Push).表示机械臂执行推拉动作拨去拆解连接件周围的障碍物,确保后续螺栓套接任务能够顺利执行.当视觉相机捕获到拆解对象周围没有足够的拆解空间时,导致拆解末端执行器无法进行有效的拆解,将会调用该动作,为后续步骤创造条件.
4)螺栓套接(Insert).表示拆解末端执行器沿着螺栓轴心线进行移动,使拆解末端执行器和螺栓头能够有效地接触,一般接触深度为距离螺栓头部垫圈上方1mm处,同时拆解执行器顺时针低速旋转,当感知到力矩大于5Nm时停止旋转,避免拆解执行器无法正常螺栓套接.
5)解除连接(Disassembly).表示解除约束连接,拆解末端执行器采取逆时针高速旋转,同时沿着螺栓轴心线与插入方向相反的方向进行移动,移动速度为每秒钟螺栓旋转的螺距.
为实现机器人在动态、非结构化环境中自主拆解螺栓,需要根据当前的状态选择合适的动作原语并决定执行顺序如图4所示,到达目标位置并完成连接约束件的移除.
Fig.4 Illustration of process of taskfor robotic disassembly of electric vehicle battery pack
2.2 拆解任务的形式化定义
我们将螺栓拆解问题形式化为一个规划问题(S0,SG,A);S0表示拆解系统的初始状态,SG表示拆解系统的目标状态,A表示一组拆解动作原语集A={a},具体包括Move,Mate,Push,Insert,Disassembly等5个原语.将每个原语进行细化定义为:
action(a),pre(a),eff(a),param(a),
(1)
其中,action(a)表示动作原语的名字,如果该动作原语需要输入拆解参数,则在param(a)中定义,pre(a)表示执行该动作原语必备的前提条件,eff(a)表示执行该动作原语带来的后果.前提条件和后果借助拆解状态进行表征.在经典的规划方法中,状态是由符号谓词表征的.例如:A物体上方是否有其他物体,可以用谓词clear(A)进行表示,它返回True或者False,用于支撑后续的推理,我们对其进行扩充,详见后面章节.求解规划问题就是要找到一个拆解规划的顺序,次序执行plan中的动作原语,使机器人从初始状态S0转变成目标状态SG.
plan=(a1,a2,…,ai,ai+1,…,an),
(2)
PDDL[25-27]是描述形式化定义的标准语言,本研究借助此语言,定义不同的拆解状态和拆解动作,并基于此实现了动力电池的智能化拆解.
3 基于神经符号的规划
动力电池拆解面临的问题与神经符号试图解决的问题完全一致.我们大胆的尝试将神经符号应用于动力电池拆解任务,以实现智能拆解.但神经符号是一个新兴的研究热点,尚无成熟的技术方案可以直接使用.本文在经典规划问题的基础上,引入神经谓词,把神经网络中softmax层的输出,作为一种状态的表征,并输出给推理模块,根据神经谓词完成各个动作原语的定义.最后,我们使用基于概率的最佳方案搜索方法替换传统的基于符号的最佳方案搜索方法,从而在动力电池拆解方案中实现推理与概率学习的完美融合.
3.1 神经谓词符号
因为其强大的描述能力,谓词逻辑得到了广泛的应用[43].谓词是谓词逻辑中的核心概念,用来刻画个体词性质的词,即刻画事和物之间某种关系表现的词.例如:规划问题中常用谓词clear(A)描述物体A上方是否有其他物体,on(A,B)描述物体A是否在物体B上面.这样的定义非常适用于描述动作原语,并基于此进行推理得到规划问题的解,因此大量关于规划问题的研究都是基于这种方法展开的.但这种方法的缺陷在于,很难实现谓词与物理世界的关联.经典的方法通过规则不断地细化谓词的定义,直到能和传感器数据一一对应.例如:clear(A)将会被细化成不存在任何物体B在A上,物体B在A上又被细化成B在空间中的x,y坐标区间,与A在空间中的x,y坐标区间有重合,并且B的在空间中z坐标区间大于A在空间中的z坐标空间.这种定义需要非常有经验的人员才能完成,而且仅限于限定的实验环境中(不同环境谓词的定义可能不同,例如上文描述的“在..上”的定义并不能使用“在椅子上”),很难在动态的,开放的环境中推广应用.
针对很难实现谓词与物理世界的关联问题我们创造性地引入了神经谓词这个概念,它既是逻辑系统中的谓词,也是一个神经网络,负责将连续输入状态(如机器人位姿或物体之间的关系图像等信息)经过映射得到符号状态,该状态可以直接被动作原语使用,无需再去设计复杂的逐级展开的逻辑规则.对应的形式为p(sensor,O),与传统的谓词相比它有3个差异.
1)该谓词的输入是传感器数据,目前虽然在我们的实验系统中,我们主要的输入是图像,但理论上,选择哪一种传感器作为主要的数据来源可以在训练过程中由神经网络自主选择,所以我们将该谓词的输入定义为传感器数据.
2)假设该谓词有n个接地(grounding)的可能,则输出是一个n维向量,代表了该谓词在n个类别上的概率分布.例如谓词clear有True,False两种可能,输出[p1,p2]分别对应clear(sensor,True)和clear(sensor,False)的概率.系统进行推理时根据需要自动读取对应的概率值.这种方式既保证了通用性又可以适用于有多个接地可能的谓词(如和数字相似性),也保证了输出的一致性,同时保证利用同一个网络完成不同接地可能的评估.
Fig.5 The diagram of neuronal predicates
3)每一个神经谓词对应一个神经网络,该网络负责将输入的传感器数据,转换成一个n维的向量.深度学习中softmax的输出与n维的概率分布具有很好的匹配性,我们将softmax的输出作为神经谓词的输出.
在螺栓拆解机器人系统中,我们定义了2个神经谓词,如图5所示:对准目标(target_aim)和目标无遮挡(target_clear).值得一提的是,由于神经谓词针对的判断比较简单,对应的神经网络相对容易训练.实验系统中我们为每个神经谓词采集了400张图片,利用预训练的图像分类神经网络VGG-16[44]作为基础,展开训练.谓词‘对准目标(target_aim)’经过40轮次(epoch)的训练到达98%的精度,谓词‘目标无遮挡(target_clear)’经过40轮次(epoch)的训练到达96%的精度.这样的精度完全满足后续推理的要求.
3.2 拆解动作原语
原语是机器人任务规划问题中联系逻辑规划与机器人真实运动之间的桥梁.PDDL在逻辑规划空间中准确的描述每个原语以及每个原语执行所需要的前提条件(:pre)和执行动作后的状态(:eff).PDDL在描述动作原语的同时还清楚地描述系统的初始状态(Init)和目标状态(Goal).基于PDDL的描述规划器在逻辑规划空间中通过推理,找出从目标状态到初始状态的动作原语序列,形成执行规划.在动力电池拆解领域,针对螺栓连接件的拆解任务,拆解动作由靠近目标(Move)、拨动杂物(Push)、姿态调整(Mate)、螺栓套接(Insert)、解除连接(Disassembly)组成.对应的PDDL定义为:
(:Inithave(coarse_pose)
(:Goaldissembled(sensor)
(:actionMove
:param(coarse_posesensor)
:pre(have(coarse_pose))
:eff(and(above_bolt)(target_aim(sensor))
(target_clear(sensor)))
(:actionMate
:param(sensor)
:pre(and(above_bolt(sensor))(not(target_aim(sensor)))
:eff(target_aim(sensor)))
(:actionPush
:param(sensor)
:pre(and(above_bolt(sensor))
(not(target_clear(sensor))))
:eff(target_clear(sensor))
(:actionInsert
:param(sensor)
:pre(and(target_aim(sensor))(target_clear(sensor)))
:eff(cramped(sensor))
(:actionDisassembly
:param(sensor)
:pre(cramped(sensor))
:eff(dissembled(sensor))
完成逻辑规划空间定义的同时,系统定义每个原语对应的控制函数,将它称为原语控制函数.原语控制函数能够控制机器人在真实环境中完成原语定义的功能,即在环境满足前提条件(:pre)的情况下,以(:param)中定义的参数作为输入,控制机器人从当下状态转换成(:eff)中描述的状态.在本文的实验系统搭建过程中,我们基于ROS Moveit[45]人工开发了控制程序实现各个原语控制函数.但这并不是必须的,理论上,本系统允许采用运行任何方式实现原语控制函数.事实上,我们在开发过程中发现Mate和Push两个原语的目标明确,需要面对的情况复杂多样,若采用Deep Reinforce Learning(DRL)[33]的方法完成对应的原语控制函数,可以取得更佳的工作效果(我们计划在后续研究中深入探索).而Insert原语,工作流程简单,采用Learning from demonstration(LfD)[36]方法,并根据环境微调,可以取得满意的效果.总之,原语控制函数根据实际情况采用各种成熟的手段实现.
3.3 拆解规划
经过神经谓词符号和拆解动作原语的抽象,原本在连续空间中复杂的规划问题,被抽象成在逻辑空间中找到一个最佳的可行动作原语序列,顺序执行该序列中的每个动作原语,拆解系统将机器人从初始状态S0转变成目标状态SG.我们采用前向搜索的方法解决该问题,具体的算法描述如算法1所示.
算法1.基于神经符号的拆解任务规划算法.
输入:S0,SG,A;/*S0是初始状态,SG是目标状态,A是动作原语集合*/
输出:op_list./*能够完成任务的原语序列*/
①initial_queue(Q1);
②Q1.enqueue((S0,{}));/*用包含S0和{}的tuple初始化Q1;S0为规划问题的初始状态;{}拆解动作原语列表,初始状态为空*/
③ whileQ1≠null
④curr_status,curr_op_list=
Q1.pop_front();
⑤initial_set(tmp_set);/*临时记录当前
状态使用操作原语后的新状态*/
⑥ forainA;/*遍历规划问题定义中的
所有的动作原语*/
⑦ ifcurr_statusa.precondition
⑧new_status=apply(curr_status,a);
/*对当前状态应用动作原语a*/
⑨new_op_list=curr_op_list+a;
⑩ ifnew_statusSG;
/*到达目标状态*/
new_op_list));
/*根据概率把tmp_set中的tuple
排序并过滤掉概率太小的tuple*/
tuple按序加入队列*/
尽管在抽象过程中我们引入了神经谓词符号,并以概率的方式表征系统的各种状态,避免人为设定阈值造成不合理的表征或者逻辑冲突,但依然无法完全解决规划过程中的不确定性.例如:当机器人根据粗定位完成靠近物体的动作原语后,是否还需要进行姿态调整;当机器人在执行拨除杂物的动作原语时,能否真正清除杂物也具有一定的不确定性.为了有效地解决这个问题,我们采用了乐观估计、保守执行的策略.具体来说,动作原语定义时,我们都按照乐观的方式对系统状态进行估计.例如:在动作原语Move的效果定义中,我们乐观地认为执行完该操作后就能够实现对准目标且目标无遮挡.规划算法基于乐观估计的原语定义,生成乐观的执行方案.但在执行过程中,在执行每个原语前,系统都要根据原语的前提条件,检查当下的状态.如果满足条件的概率大于不满足条件的概率,就继续执行.反之,则以当前的状态为初始状态,目标状态不变,重新调用规划算法,获得新的行动方案.
目前,系统的原语还比较少,加上使用了乐观估计的原语定义,规划算法的复杂度不高.未来如果原语数量大量增加,复杂度变高,将考虑引入启发式搜索算法提高规划算法的效率,确保搜索仍能在线实时完成.
3.4 可解释与可学习性
虽然神经符号谓词是基于不可解释的神经网络实现的,但任务规划却是在一个可解释的逻辑空间中进行的.该方案使机器人清楚的知道目前正在执行的具体动作原语,以及为什么执行它.系统在力反馈机械臂的帮助下判断出动作原语的执行情况.如果执行某个动作原语获得成功的结果,说明对应的判断是正确的,如果执行失败,系统可以推理出哪些谓词判断出现了问题(必要时可请求人工帮助,针对有限个谓词做出判断).因此,系统不断地自动采集数据和标注数据.利用这些新的数据,系统利用持续学习的方法[46]不断地提高神经谓词的准确性,甚至适应新的环境变化,学习新的技能(动作原语).因为持续学习不是本文的重点,所以此处不展开深入讨论,但需要强调的是,基于神经符号的设计,使整个系统具备了很好的可解释性和可学习性.
4 实施实验
为验证本文提出的基于神经符号的动力电池拆解任务与运动规划模型的有效性,我们在机器人仿真平台上开展动力电池连接约束件拆解任务规划的实验.首先在无障碍物环境下展开实验,主要测试系统在感知系统出现误差时的应变能力.随后在实验环境中引入障碍物,机器人主动移除障碍物后,才能顺利地完成拆解任务,实验证明,本文提出的方法具备相当的优势.
4.1 实验条件
图6展示了本文的实验环境,在可视化仿真环境Gazebo中,以七自由度固定基座机械臂为实验载体开展螺栓的拆解任务.为了方便日后的工作迁移,仿真环境中的机器臂与实际场景中的机械臂一致,为珞石科技七自由度机械臂xMatePro7,相关参数如表1,并且机械臂末端安装有气动扭力末端执行器.可以使用ROS MoveIt!控制其运动.此外与真实环境对应的是,在仿真环境中加入了全局相机(安装在操作台正上方)和局部相机(安装在机械臂末端关节上),相机的相关参数与Intel RealSense Depth Camera D435i保持一致.仿真器中还加入了长安汽车EV460动力电池包、螺栓以及木块等障碍物.所有的实验运行在Intel NUC电脑上,相关参数见表2.
Fig.6 Illustration of platform of Disassembly
Table 1 Features Parameters of Motion with Robotic Arm
Table 2 Parameters of Configuration for Computer
4.2 评估指标
在机器人任务规划模型方面常见的指标是执行成功率(Success Rate, SR),我们沿用这一指标验证基于神经符号的拆解任务规划模型在动力电池拆解过程中的性能.分别在有障碍物和无障碍物的环境中进行评估.目前,业界尚无成熟可用的拆解方案,但为了验证我们提出的神经符号的动力电池拆解任务与运动规划的性能,实验中,我们采取成熟度相对较高的方法,也称为传统方法,该方法假设从已有的3D模型或者感知模块中获得的目标位置是准确的[15],通过求解运动方程,直接控制末端执行器到达目标位置实现套接,进而完成拆解,用此作为对比验证.在实验中我们分析对比了目标位置的感知误差对2种方法的影响.拆解任务规划实验相关的约束参数如表3所示:
Table 3 Simulation parameter setting for ROS
4.3 无障碍物拆解实验
Fig.7 Illustration of experimental simulation with free obstacle
拆解任务执行结果如图7所示:传统的拆解方法在方差小于1 mm(螺栓位置数据准确)时拆解成功率比较高,近乎全部成功拆解,但随着方差的增大(螺栓位置数据不准确)性能急剧下降.这与我们在实际工作中获取的经验一致.在静态结构化的环境中,机器人无需复杂的任务规划,也能够很好地完成任务.但这种方法,无法针对动态非结构的环境自主规划.相比之下,本文提出的拆解任务规划模型,借助神经符号进行动态规划,在发现螺栓位置信息误差较大是,重新自主规划,根据实际情况自动执行姿态调整,从而使拆解成功率始终保持在100%附近.我们在总共400次实验中发现了3次失败,失败的原因是由于在姿态调整的原语中对错误情况处理的不完备造成的(由于光线原因,无法找到螺栓的6个角点,导致进入死循环).
4.4 有障碍物拆解实验
Fig.8 Illustration of experimental simulation with obstacle
实验数据如图8所示.由于传统方法不具备清理碍障物的能力,当σ较小时,也就是障碍物影响螺栓套接的可能性较大时,失败概率较大,反之,成功概率较大.而本文提出的方法,始终保持较高的成功率,而传统方法则因为障碍物这一不确定性的引入导致性能显著下降.需要强调的是我们的方法并不总是执行清除障碍物的动作原语,如图9所示,我们的规划系统会根据实际情况动态确定是否需要进行清障工作.当σ较小时,也就是障碍物离螺栓较近,影响螺栓套接的可能性较大时,系统执行4个动作原语(Move→Push→Insert→Disassembly),而当σ较大时,也就是障碍物离螺栓较远,影响螺栓套接的可能性较小时,系统仅仅需要执行3个动作原语(Move→Insert→Disassembly).
Fig.9 Illustration of performance counter for average for experimental simulation with obstacle
Fig.10 Two Illustrations of explicability
需要说明的是,由于目前清理障碍物的动作原语实现的并不完美,导致清障的时候偶尔会出现错误,使得在有障碍物拆解实验中,成功率有所下降,平均为98%.
4.5 实验中的可解释性探讨
如3.4节所述,电池拆解任务对系统的可解释性要求很高.人们希望清楚的了解机器人目前正在做什么,以及为什么执行它以便支持安全的人机协同.本文提出基于神经符号的任务与运动规划方法,可以清楚地判断机器人的执行状态和原因.图10是实验过程中2个任意时刻的示意图.图中左半部分显示机器人的执行状态和传感器数据,右边是系统规划过程中的内部状态.这些状态基本上是符号化的,可以清晰地描述出当前状态,原计划,是否需要更新计划(乐观估计,保守执行)以及将要做什么操作.图10(a)中,系统完成Move操作后,发现当前状态与乐观估计值一致,无需重新规划,于是按照原有规划,继续执行Insert操作.图10(b)中,系统完成Move操作后,发现当前状态与乐观估计值不一致,不但没有对准目标,而且目标附近还有遮挡,于是基于当前状态重新规划,规划从(Move→Insert→Disassembly)更新为(Mate→Push→Insert→Disassembly),因此下一步系统将执行Mate操作.通过这2个典型例子不难看出,人们可以通过符号化的表示轻松的理解机器人的行为.这为人机协作完成复杂的拆解任务打下良好的基础.
5 总结与展望
在复杂的非结构化的拆解工作环境下,由于种种不确定性导致解除紧固动力电池零部件的连接关系时拆解任务难以规划,本文提出基于神经符号的任务与运动规划方法,让机器人在动态环境下也能够自主规划,完成任务.实验证明该方法具有很好的鲁棒性,实验整体成功率达到98%,而且该方法在自主性、可扩展性、可解释性、可学习性4方面与传统方法相比有明显的优势.
在未来的工作中,我们将把现有的工作迁移到实际场景中,并扩展拆解动作原语将整个系统推广到动力电池的抓取、搬运、收纳整理等方面;同时进一步深入研究目前系统中有待提高的学习环节,充分利用神经符号所带来的可解释,可学习等优势,在拆解现场基于云边端系统[47]不断地通过现场学习(in-situ learning)提升拆解效率和精度;最终真正实现动力电池拆解智能化.