自适应机器人:定义工业机械臂的未来


本文转载至微信公众号 ROBOTICS

协作机械臂够用了吗?

工业机械臂的应用已有六十多年的历史,在各种各样的产线上都能找到他们的身影。传统的工业机械臂追求快速、精确的位置控制,它们能代替人工完美胜任那些靠“轨迹”就能定义的工作,比如把A处的东西移动到B处、比如在工件上切割一个圆形、比如往汽车外壳上喷油漆……事实上,在这一类工作上,机械臂依靠成熟的硬件设计和电子控制系统,完成任务的质量和速度都远超过人类。
生产线上搬运货物到传送带上的传统机械臂
即便如此,这一类传统的工业机械臂依然有三个主要的不尽人意的地方。

第一,它们完全专注于完成任务以至于对它可能对周围造成的危险漠不关心——大部分工业机械臂工作时都需要严禁任何人进入它的工作空间,由于对此的忽视而造成的悲剧并不少见;

第二,要“教会”它们做一个新的工作挺麻烦的——工业机械臂往往需要专门的工程人员使用特定的语言对其进行编程,告诉它们动作的次序、要实现的轨迹等等,由此在工业机械臂厂家与工业制造商之间催生了“集成商“这样一个产业;

第三,它们只能做一部分依靠快速、精确的位置控制就可以胜任的工作——现实中还有很大一部分工作是传统机械臂无法完成的。

二十世纪末,在对传统机械臂这几个局限性的认识下,研究人员提出了协作机器人的概念。这几年,协作机器人炒得非常火热:传统的工业机械臂制造商KUKA、ABB、发那科等等都纷纷推出了自己的协作机器人;以协作机器人起家的UR、Rethink、以至最新的Franka等也频繁出现在人们的视野中。

从“协作”的字面意义可以看到,人们希望工业机械臂不再只是被圈在围栏里自顾自地完成它被编程的任务,而是能够更多地与人类“协同工作”。针对上述传统工业机械臂的三点缺陷,协作机器人在现有技术能达到的水平基础上开出了几张处方:第一是通过降低机械臂负载、限制运动速度、限制关节输出力矩、在机械臂上包裹软性材料、算法实现碰撞检测等方式,提高机械臂的安全性、让机械臂可以走出围栏;第二是通过研发更容易看懂的示教器、图形化编程方法、拖拽示教算法等,开发更直观易用的人机交互方式,让没有经过专业训练的人也能轻松指挥机器人工作;第三是在前面两点的基础上,让机械臂与人一起合作去完成那些机械臂本身无法完成的事情,比如柔性打磨、装配等等。
图中机械臂与人合作完成组装
去年,协作机器人的先驱Rethink宣布倒闭,引发了行业里的很多思考:协作机器人真的如所说的那么好用吗?真的有能产生大规模价值的应用场景吗?制造工业真的愿意为此买单吗?其实依作者看来,协作机器人固然有它的市场,但从长远上看,它更像是一个过渡。协作机器人的“协”字,与其说是机械臂与人的协作,不如说是一种“妥协”,是在现有软硬件技术还无法彻底解决前述三个问题的情况下的妥协。大部分协作机械臂为了实现协作的目标,不得不以牺牲某些方面的性能为代价,包括但不限于负载、速度、位置精度等等。协作机器人并没有真正实现机械臂在产线的低成本快速部署,甚至产业对新兴集成商仍有很大的需求。传统机械臂无法完成的任务、协作机器人依然无法完成——用与人协作的方式完成这类工作的想法,似乎与制造业真正的需求背道而驰。

怎样才算自适应机械臂?

随着技术的发展,新一代的机械臂势必要跳出“协作”的框架,而真正从本源上去改进传统机械臂的不足:它需要能够在不牺牲性能的前提下具备本质的安全性;能够像一个学徒一样迅速理解并独立完成一项新的任务;能够完成那些传统机械臂不可能做好、但如今因为人工的紧缺或者工作环境的恶劣而急需被自动化的工作。一个能达到这些要求的机械臂,需要的不仅仅是与人协作的能力,更是自身对复杂环境与复杂任务的适应能力。因此,我们将新一代的机械臂定义为“自适应机器人”(Adaptive Robot)。

自适应是一个比较抽象的词,但也没有一个词能比它更准确地描述新一代机器人所具备的特性了。传统的机械臂几乎没有“适应性”可言——它们在工作时依赖于许多假设的成立,比如工件总是会在某个特定位置摆成某个姿势、机械臂工作时周围绝对不会有任何人任何东西来打扰它;即使加上了工业视觉,机械臂对工业视觉的精度要求也非常高,所以对每一条产线每一个工件,工业相机的标定、环境光的设置、视觉算法等都需要繁复的调整;即使加入了碰撞检测,机械臂也只是在检测到碰撞的时候停止一切运动,而不可能继续完成手头的工作。对种种假设的依赖决定了现有的机械臂每在一个产线实现一个应用都需要专门的人员花费大量的精力和金钱来部署。

针对这种种让人觉得机械臂依然“很蠢”的不便之处,我们认为自适应机器人需要满足以下三个特性:

  • 适应操作对象位置的不确定性(Tolerance for position variation)
  • 适应复杂外部环境的干扰(Great disturbance rejection)
  • 适应类似任务的快速迁移(Transferrable intelligence)

适应操作对象位置的不确定性

与传统机械臂不同,我们人类的手臂在“定位”这件事上是很弱的。如果闭上眼睛、只依靠所谓的“本体知觉”(即肌肉和关节的感觉),研究表明人手的定位误差能有5厘米之多。然而即使闭着眼睛,大部分人都能够轻松把钥匙插进门锁孔里,这显然不是靠“定位”做到的。并且,大部分人洗碗刷锅也不需要眼睛死死盯着锅碗瓢盆;不管它们在水池里是怎样的姿态,人手都可以依着它们的形状在正确的方向施力、把每一个角落都洗干净。一个自适应的机械臂需要具备类似人手在完成这些工作时的能力。即使工件的位置信息不够精确、或者因为某种原因在加工时产生了位移和姿态的改变,机械臂都能够通过与物体接触得到的信息及时调整末端操作器的位置和对外界施力的大小方向。
人在插内存条时基于“手感“的下意识调整
人在插内存条时基于“手感“的下意识调整

自适应机械臂在插插头时基于力的调整
自适应机械臂在插插头时基于力的调整

适应复杂外部环境的干扰

虽然在定位上非常弱,但人的手臂却具有很强的抗干扰性能。人可以稳稳把一杯水从一个地方拿到另一个地方,这个过程中别人推他的手或者手臂,这杯水都不会洒出来。清洁高层建筑外墙的“蜘蛛人”,在强风中、摇晃的平台上依然能够很好地完成这项工作。自适应机械臂同样应该具备这样在一定程度的外部干扰下仍然能够完成特定任务的能力,降低部署时对环境的要求、替代人类完成像高空外墙清洁这样复杂且危险的任务。

BBC纪录片:清洗世界最高建筑 人需要在绳索悬挂、强风中完成擦玻璃的工作
BBC纪录片:清洗世界最高建筑 人需要在绳索悬挂、强风中完成擦玻璃的工作

自适应机械臂的抗干扰性能:在工件同时水平/竖直运动+人手推机械臂的干扰下继续工作
自适应机械臂的抗干扰性能:在工件同时水平/竖直运动+人手推机械臂的干扰下继续工作

适应类似任务的快速迁移

毫无疑问,人类的“技能迁移能力”是惊人的:学会了插一种类型的接插件,就能学会USB、miniUSB、microUSB、typeC、lightning等等各种各样的接插件,进而学会拼乐高;学会了转瓶盖,就能学会转各种大小各种样式的瓶盖,进而学会拧螺母;学会了按一种开关,就能学会按会反弹的、不会反弹的、杠杆型的、船型的各种开关,进而学会弹奏键盘乐器……自适应机械臂也应该在“学会”抛光某个型号的手机背板之后,能够很快学会抛光各种型号的手机背板,再以很小的努力就学会抛光汽车外壳、打磨木制家具。在技能相似的任务之间快速迁移,是自适应机器人的核心能力。
自适应机械臂展示抛光应用的可迁移性
自适应机械臂展示抛光应用的可迁移性

什么让自适应成为可能?

前面我们说,协作机器人这个概念其实是对现有的硬件软件技术限制的妥协。那么,什么样的技术才让自适应机器人成为可能呢?我们认为最关键的有两点:

第一、 真正能用的、高精度、高响应的力控技术;这是奠定一切自适应技术的基石;

第二、 建立在完整感知能力(包括视觉和力觉)基础上的层级式智能;这是完整发挥力控技术潜力的一座大厦。

这两点缺一不可,仅仅依靠其中的一点不足以让机器人具备足够的适应性——也因此,自适应机器人的革新必须是自底向上的、系统性的、全面的革新。

力控技术

对力控技术的需求是显而易见的,尽管不自知,但人类日常生活99%以上的动作都离不开对力的感知和控制,比如拖地板、按开关、插插座……力觉对于人类操作行为如此重要,在机械臂中却长期缺失,也因此大部分需要力觉引导或需要直接控制接触力的任务,机械臂都无法胜任。

不过,在科研领域,机械臂的力控技术也不是什么新东西,关于它的各项研究已经进行了30年之久。这几年,工业界开始尝试应用力控技术,然而能将力控技术做到足够大规模应用的却几乎没有。机械臂的力控应用在工业制造业的相对空白并不是因为市场不需要,而是现有的力控技术从硬件到软件、从应用成本到长期使用的可靠性都与实际需求相差甚远。

用位置来控制力 ——

目前比较常见的一种力控的做法是在现有的位置控制机械臂末端加装六维的力/力矩传感器,用“外部”力控制回路、“内部”位置控制回路的方法来实现。通俗地说,这种方法把控制力转化为控制位移——想象用机械臂的末端去按压一个弹簧,那么机械臂从弹簧原点沿着弹簧方向的位移大小就会正比于它施加在弹簧上的力。然而,如果这个弹簧非常非常硬,那么很小的位移就会引起很大的力的变化,这会使机械臂变得非常容易不稳定。因此,采用这种方法做力控的机械臂通常会在末端加上柔性材料来应对外界的刚性冲击;而对需要刚性接触的抛光任务而言,这种算法就很难实现。
一个用六轴机器人+末端六维力/力矩传感器实现的基于力控的轮廓自适应,可以明显看到末端非常软;另外也可以间接看到机械臂施加在物体上的法向力并不是恒定的。
一个用六轴机器人+末端六维力/力矩传感器实现的基于力控的轮廓自适应,可以明显看到末端非常软;另外也可以间接看到机械臂施加在物体上的法向力并不是恒定的。

用关节电流控制力 ——

用位置来控制力很多时候是不得已而为之——机械臂本体生产商出于安全考虑,不会开放位置控制以外的回路,即使开放,刷新频率也比较低。对于开放电流控制的机械臂而言,另一种常用的力控算法是用末端的六维力/力矩传感器加关节电流控制来实现。通常,电机的输出力矩与输入电流的比值是一个常数,因此电流控制可以近似于关节力矩控制;然而由于减速传动机构的存在,这个近似是非常粗糙的。当我们需要末端施加一定的力时,我们算出关节需要施加的扭矩并换算成电流,这时每个关节实际输出的扭矩与我们的要求会有不小的偏差;于是控制器只好根据测到的末端的力来调整指令,接着每个关节的电流再做相应调整……显然,用每个关节不甚准确的扭矩去控制末端的力/力矩,控制回路必然需要做更多的调节,因此系统的响应很难做到足够快;同时由于误差的存在,机械臂本身的动态特性没办法被很好补偿,它的稳定性和运动精度也比较差。
平面抛光,注意左上角的”Speed 5X“
平面抛光,注意左上角的”Speed 5X“,实际运动速度只有图示的五分之一

关节力矩传感器 ——

这几年很多新型的机械臂会在每个关节中加入关节力矩传感器。关节力矩传感器的实现主要有两种方法,一种叫“串联弹性驱动器”(SEA),简单来说,就是用编码器测量关节内一个弹簧的位移来计算关节输出的力矩;另一种方法是通过测量金属应变片的微小形变来测量关节扭矩。SEA在足式机器人中有很大优势,因为关节自带的”弹簧“有很好的抗冲击保护作用;然而在机械臂中,它却会使整个机械臂变得“软绵绵”,大大降低位置控制的精度和响应速度。应变片(strain gauge)制作的扭矩传感器在机械臂中相对好用一些,但也有它自己的麻烦之处,比如贴应变片的工艺比较复杂、应变片本身温漂比较明显、抗冲击性能比较差容易被撞坏、成本比较高等等——这也是关节扭矩控制机器人价格居高不下的原因之一。

关节力矩传感器还有一个问题:虽然测量的是一个维度的扭矩,它的读数却很容易被其他维度施加的力/力矩影响,造成读数误差。在串联机械臂上,这个问题尤其明显,因为每一个关节都会受到其后所有关节/连杆施加在它上面的各个方向的力。为了尽可能降低这个因素造成的测量误差,除了优化关节力矩传感器,机械臂的关节也需要为此专门设计。

关节力矩加末端六维力传感器 ——

近年来,**具有关节力矩传感器的机械臂又在末端甚至基座也加上六维的力/力矩传感器。**这种做法对于提高末端力控制的精确度和响应速度都是很有必要的。可惜的是,由于现有产品的限制,这相当于在机械臂成本高昂又容易坏的关节扭矩传感器之上,又增加一个成本更高昂、更容易坏的六维力/力矩传感器。目前市面上可以买到的六维力/力矩传感器有几种不同的工作原理:依然用金属应变片的、用红外光检测硅传感器微小位移的、还有用电容去检测微小位移的;无论哪一种,在精度、零漂、噪音、滞回效应、耐用性上多少都有些不足,而足够好的又会非常贵。这些问题使得部署力控应用同样需要耗费大量精力去调整,力控机器人因此无法发挥出全部的潜力。

整机力控算法 ——

高精度、高响应、成本又在合理范围内的力控技术离不开在上述所提的各个方面的改进:首先,用位置或关节电流做力控都有本质上的局限性,配备力矩传感器的关节力矩控制必不可少:在关节力矩尽可能快速准确控制的基础上,机械臂末端的力控制性能才能有质的提升;其次,现有的力传感产品性能都不够好、价格也过高,为使传感器这个力控的基本要素具备足够好的性价比,关节力矩传感器以及末端的六维力/力矩传感器都需要重新设计;然后,机械臂的关节需要专门为力矩控制做优化,尽可能减少其他方向的力对一维力矩传感器的干扰;最后,在所有这些改进的基础上,一个先进的整机力控算法才能发挥出力控机器人所有的潜力。
自适应机械臂需要对硬件到软件都进行自主研发及优化
自适应机械臂需要对硬件到软件都进行自主研发及优化

由于一直以来硬件的限制,整机力控算法是一个业界少有人涉足的领域。虽然在论文里相关理论已存在许多年,但论文里永远只有最美最基本的描述;许多最新的研究结果甚至没有被发表出来。只有立足于为力控专门打造的硬件基础上,我们才能真正关注到每一处实现的细节,真正将理论落到实处——这一过程是远复杂于理论本身的。

层级式智能

高性能的力控技术只是第一步,在力控技术之上,机械臂需要知道如何结合其他信息、有效地使用这项能力。前面我们说,层级式智能是完整发挥力控技术潜力的一座大厦——那么什么是层级式智能呢?

非层级智能 ——

在讲层级式智能之前,我们先来看看非层级式的智能。这几年随着深度学习的火热发展,有一批学者和企业希望将深度学习的方法也引入到机器人的应用中。他们对机械臂采取了被称为“end-to-end training”的方法:比如说拧一个瓶盖,算法只关注机器人的动作距离成功拧好瓶盖有多远(通过原始图像和关节位置),深度神经网络的输出直接就是机械臂每个电机输出的扭矩;用这种方法,我们对机械臂运动学、动力学模型的依赖相对减小、机械臂的力/位置控制算法也不需要做了。

用这种方法教会机械臂去完成一些任务,效果还是很不错的。然而众所周知,训练深度神经网络离不开大量的数据:要么需要机械臂运行很多很多次以采集足够的数据、要么需要大量机械臂同时训练来减少数据采集的时间——这个难点是显而易见的,研究人员也提出了一些优化的方法。即使抛开这一点,我们认为end-to-end training至少还有以下几点局限,使它难以得到实际应用:

第一,训练的结果只能适应特定任务、特定环境、甚至特定的机械臂,不具备迁移性;每在新的地方接到新的任务,我们都需要对机械臂进行重新训练或者一定程度的再训练。

第二,外界的干扰、发生意外时的安全机制,这些对于机械臂的训练结果而言都是边角案例(Corner Case)。以完成任务为目的训练的深度神经网络难以应对过程中可能有的外界干扰,也很难保证机械臂运行过程中周围人的安全。

第三,用这种方法可以做一些简单任务,比如拧瓶盖、挂衣服、把积木放进对应形状的孔里等等。然而,如果让它去做抛光、擦窗户这样稍微复杂、步骤比较长的任务,或者套装轴承这种可行解非常少的任务,它是很难训练出一个深度神经网络模型来掌握这些技能的。

智能的底层、中层与高层 ——

忽略层级直接做end-to-end训练,似乎也不是我们人类掌握和运用技能的方法。比如说擦窗户这个事情,我们会先识别窗户玻璃的边界,然后手拿湿布在玻璃上一边来回移动、一边往垂直玻璃的方向施力以增加与污渍之间的摩擦力;同时确认玻璃的每一处都有被擦到。这个过程中,人需要调用自身很多的能力,有的是有意识调用,比如对玻璃和污渍的识别;还有的早已“编码”在潜意识里,人根本不知道自己正在使用这样的能力,比如对手臂移动和施力的控制。尽管不自知,但每时每刻需要往哪条肌肉发送多少电信号这样的问题,负责思考用什么轨迹擦窗户的“有意识的大脑”从来不需要去思考。

我们认为机械臂的智能也应该是类似的,负责识别哪里是窗户玻璃、思考应该怎么擦玻璃的那部分智能,并不需要知道每时每刻机械臂的每个关节应该在什么位置或者应该施加多少电流,甚至就连垂直玻璃表面用力然后来回移动的这个动作也已经学习在了机械臂的“潜意识”中。底层的智能就像潜意识般控制着手臂的基础运动,中层的智能编码各种基础运动的不同序列,而高层的智能负责认知、理解、规划等等复杂的智能——我们把这样的智能称为“层级式”智能。

在层级式智能的体系中,每一个层级相对独立,专注在自己控制/规划/思考的领域。底层智能无法直接影响顶层智能,但顶层智能的实施依赖于底层,顶层对底层起到指导、调节的作用。另外,每一层的智能通常只需调节直属下一层,而不需要跨级下达指令。
一个简化的层级式智能示意图

从简单到复杂,从快到慢 ——

如上图所示,在层级式智能中,**智能从底层到顶层是越来越复杂的,但相应的也是越来越慢的。**一个被蛇吓过的人会在碰到一根绳子时“下意识”地躲避,直到“定睛一看”是绳子才发现是虚惊一场——这个躲避的过程比起视觉的识别和认知要快上许多倍。同样的,如果机械臂在工作中受到人的干扰,其底层的控制算法应该能够快速做出反应,在继续完成任务的同时避免对人造成伤害,而不需要等到顶层智能去发现人的存在、再下达命令开启安全措施。如果机械臂在为一个有弧度的工件抛光,那么机械臂较为底层的“元动作”控制就足以让它快速“适应”工件的形状运动;如果通过三维视觉去给工件建模、再发送模型的信息给机械臂调整它的运动轨迹和施力方向,这个过程不仅太慢、而且严重受限于三维视觉能达到的精度。因此,无论是基于安全的考量还是为了完成任务的效率和效果,自适应机器人都必须有一个分层次、由简单到复杂、由快到慢的智能系统。

真正发挥人工智能的优势 ——

机械臂的控制/智能系统分层次以后,顶层的智能可以专注处理自己的事情、而不需要分配精力去关心底层的实现细节。传统机械臂自动化采用的工业视觉,通常专注于识别和定位——视觉定位的精度是一个极其重要的指标,直接影响任务的成败。在自适应机器人应用中,视觉的关键是“认知与理解”;我们可以用深度学习“认识”一类物品的方式去做物体的粗定位和空间位姿判定,也可以用视觉辅助判断工作的有效性(比如玻璃有没有擦到足够干净)。因为不再依赖于高精度的工业视觉,部署应用机械臂的自动化生产线将比以往省去许多成本与反复调试的精力。

除了视觉认知,力觉的认知是人工智能没有怎么涉足过的主题——因为比起机器视觉,机器力觉信息的获取太有限了。人拥有遍布全身的皮肤感受器,也能够知道关节的每一块肌肉施加了多少力气——依靠身上无数大大小小的“力传感器”,人能够了解所接触的物体的材质、分辨物品的形状、估算物体的重量;还能辨别容器里东西的数量和性质、判断物体之间的连接是否足够紧密、在打包时判断装箱的方式和效果……自适应机器人的人工智能在先进的力传感与力控技术之上,将会有无限的发挥空间去利用力觉信息来认识世界、解决各种实际问题。


很多人担忧机器人会取代人类的工作。 对于这种担忧,以前我们会说,这个担忧多余了,真实能用的机器人还是太笨、能做的事情还太有限;后来做协作机器人的人也说,我们依然需要“人类的大脑”去应对生产线上的诸多需求,机器人只是处于协作的位置。然而,如果你到工厂的一线去看看,工人们不停插拔同一个零件的无趣、抛光时飞扬的金属或木头粉末,对人的身心又何尝不是一种伤害呢?如果你知道还有多少工序必须要人来做、效率低下又出错率高;有多少工厂招工困难、生产成本上升,这些对行业发展又何尝不是一种制约呢?让机器人代替人类去完成这些危险、有害健康、越来越少人愿意进行的工作,让机器人去提高制造业的生产效率和质量,又何尝不是一件对人类有益的事情。

自适应机器人的诞生是带着这样的愿景的——新的技术,归根到底,应该是为了改善人类生活质量而生。


CC的碎碎念+广告时间

这是一篇科普文章,所以CC尽量不使用专业术语,写的概念又都比较复杂,难免有不严谨之处,还请见谅。

保密原因,CC不能透漏更深入的技术和理论细节。如果你感兴趣,欢迎你到Flexiv一探究竟。


参考资料、图片来源及视频出处

https://www.youtube.com/watch?v=Yqp7lcNDwuw&t=1s

https://www.youtube.com/watch?v=wcRuXrduj6Q&t=110s

https://www.youtube.com/watch?v=AVofbcEJ1Nk

https://www.kuka.com/en-us/products/robotics-systems/software/application-software/kuka-forcetorquecontrol

https://www.youtube.com/watch?v=10IeB4-lp7g

https://www.youtube.com/watch?v=s5gAKA-cYQg


  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值