Token导航 LogoToken导航

AI 资讯 · 科技行者

机器人手臂关节磨损后拧螺丝拧歪却未察觉

更新 2026-11-04科技行者正文 5562字阅读约 18分钟

你有没有想过,一个训练得再好的机器人,到了真实世界里也可能变得笨手笨脚?

这不是在开玩笑。想象一下,你花了几个月教会一个机器人手臂精准地抓取物体、开抽屉、拧螺丝。它在实验室里表现完美,每次都能把动作做到分毫不差。可是半年后,这个机器人的关节用旧了,齿轮磨损了,润滑油也变稠了,于是它伸出手去抓杯子时,手指却悄悄偏离了原本该到达的位置。它自己不知道,因为它"以为"自己已经执行了正确的指令。

这就是这篇论文要解决的核心问题:机器人大脑(VLA模型)发出的指令和机器人身体实际做出的动作,两者之间存在一道看不见的鸿沟。

VLA模型*:全称视觉-语言-动作模型,是一种能同时理解摄像头画面、语言指令,并直接输出机器人动作指令的AI系统,是目前机器人智能化的主流技术路线。

这道鸿沟有多大?来自实验数据的回答相当惊人。研究者在两台全新的AgileX Piper机械臂上测试发现,即便是刚出厂、几乎没怎么用过的机械臂,指令和实际执行的动作之间的偏差幅度也达到了32.9%。而用了一年的那台旧机械臂,偏差达到35.0%。换句话说,就算是全新设备,机器人大脑发出的"向左移动5厘米"这个指令,身体实际做出来的可能只是"向左移动4厘米不到一点,还歪了几度"。

核心问题出在哪里

过去研究者讨论机器人鲁棒性,关注的大多是摄像头画面模糊、光线变化、指令换了个说法这类"输入端"的干扰。但这篇论文指出了一个此前被忽视的角落:就算输入完全正常,机器人的"身体"本身也会说谎。

这种谎言来自四个物理层面的老毛病。

摩擦*:机械臂关节转动时受到的阻力,速度越慢,静摩擦力的影响越明显,导致小幅度动作执行不到位。

背隙*:齿轮之间存在的微小间隙,随着使用时间增长会越来越大,造成电机转了但连杆没跟着动的"空转"现象。

顺应性*:关节并非绝对刚性,在负载作用下会发生形变,导致实际角度偏离指令角度。

重力补偿误差*:控制器用来抵消重力影响的参数,和机械臂真实的质量分布总有些出入,尤其是抓取未知重量的物体时偏差会更大。

这四个毛病平时各自为政,但真实世界里它们是一起捣乱的。一个用了很久的机械臂,往往同时存在齿轮磨损、关节松动、负载变化这几个问题,它们叠加在一起产生的误差,远比单独测试某一个因素复杂得多。

而且更棘手的是,这些误差不是固定不变的随机噪声,它们跟机器人当前的姿势、速度、乃至最近几步的运动历史都有关系。机械臂举着一个重物时,重力补偿误差会突然变大;关节刚开始反向转动时,背隙误差会冒出来;长时间连续运转后,温度升高又会让摩擦系数悄悄改变。

过去评估机器人抗干扰能力的办法,是直接在机器人输出的末端执行器指令上加一点高斯噪声,模拟"手抖"。但这种做法有个根本性的缺陷:它假设误差是随机、均匀地落在整个指令上,而不管机器人当前在做什么动作、处于什么姿态。

这就好比你想测试一个人走夜路会不会摔跤,却只是蒙上他的眼睛原地转圈,这确实会让他晕,但完全没模拟真实情况下路面结冰、鞋底磨损、腿脚疲劳这些各自独立又会叠加影响的因素。如果不区分这些具体的物理成因,测出来的"抗干扰能力"其实很难对应到真实部署场景里机器人会遇到的麻烦。

RoboStress:在仿真里给机器人"做压力测试"

既然没法把成百上千台不同磨损程度的真实机器人凑齐来做实验,那就得想办法在仿真环境里把这些真实的物理退化过程精确地复现出来。

研究团队搭建了一个叫RoboStress的仿真基准测试平台。它的做法是,把前面提到的摩擦、背隙、顺应性、重力补偿误差这四种经过机器人动力学文献验证过的数学模型,精确地注入到仿真器MuJoCo的物理引擎里,作用在机械臂的每一个关节上。

这里有个设计细节值得说一说:噪声注入的位置是分层的。摩擦和重力补偿误差是"力矩层面"的噪声,加在控制器计算出的关节力矩上;而背隙和顺应性是"位置层面"的噪声,加在进入物理积分步骤之前的关节角度上。这种分层处理不是随便决定的,它精确对应了这四种物理现象在真实机械臂里发生的机制:摩擦确实是一种阻碍力矩,而齿轮间隙确实是一种位置偏移,把它们强行统一处理反而会失真。

更关键的是,因为机器人的各个关节是通过质量矩阵耦合在一起的,某一个关节上的扰动会牵连影响到其他关节的运动,最终在末端执行器上产生的偏差,会随着机械臂当前的姿态变化而变化。这跟直接在末端执行器指令上加噪声完全不同。

研究团队在此基础上组合出了七种部署场景,分别对应现实中会遇到的典型情况:负载抓取(Heavy Payload)、温度漂移导致的摩擦系数变化(Thermal Drift-Stribeck)、温度漂移导致的背隙变化(Thermal Drift-Backlash)、传动系统老化(Aged Transmission)、关节整体老化(Aged Joint-Uniform)、肩部关节老化(Aged Joint-Shoulder)、肘部关节老化(Aged Joint-Elbow)。

为了验证这套仿真模型不是闭门造车,研究者还专门做了一次对照实验。他们让一台真实的Piper机械臂抓着1公斤重物重复执行三次抓取放置动作,记录下末端执行器的实际偏差曲线。然后用调整过参数的RoboStress负载场景,以及传统的高斯噪声方法,各自在仿真里复现这个过程,比较哪个更接近真实偏差曲线。结果显示,RoboStress调整后的模型与真实曲线的动态时间规整距离只有0.027,而高斯噪声方法的距离是0.388,相差超过十倍。这说明基于物理原理建模出来的误差,确实比凭空加噪声更贴近真实世界里机器人身体会发生的事情。

自我补偿式VLA:让机器人学会"听自己身体的话"

搞清楚了误差从哪来,接下来的问题是怎么解决。

研究团队提出的方法叫self-compensating VLA(自我补偿式VLA),核心思路其实很朴素:机器人自己的本体感知,也就是它对自身关节位置和姿态的实时感知数据,本身就包含了纠正这个误差所需要的全部信息。

本体感知*:机器人通过内置传感器对自身关节角度、速度等状态的实时感知,不依赖外部视觉或人工标注就能获得。

具体来说,机器人大脑在每个时间步发出一个指令动作,而机器人身体通过本体感知测量出实际执行的动作,两者之间的差值就是一个残差信号。这个残差完全不需要人工打标签、不需要设计奖励函数、也不需要知道误差到底是摩擦引起的还是背隙引起的,它纯粹是从"我让你做什么"和"你实际做了什么"这两个数字的差异里直接算出来的。

拿到这个残差之后,方法做的事情是反过来用它构造一个补偿后的"伪目标":用原来的指令减去观察到的残差,得到一个新的目标动作。这个新目标的意思是,如果之前那次执行的偏差规律仍然成立,那么这一次应该发出一个"提前修正过"的指令,让身体实际执行出来的效果正好落在期望位置上。

这就好比你每次投篮总是偏右10厘米,问题不在于你瞄准的眼神不准,而是你的习惯性发力让球路总往右偏。聪明的做法不是每次都死磕"瞄准正中间",而是干脆把瞄准点往左挪10厘米,这样发力偏右之后,球恰好落进框里。如果不做这种"反向预判",你永远只能在投完之后才后知后觉地发现又偏了,却没法在下一次投篮之前就提前纠正。

技术实现上,研究团队没有去动摇整个预训练好的VLA大模型,而是用了一种叫LoRA的轻量化微调技术,只在动作专家模块上插入一个小小的可训练适配器,其余所有参数全部冻结不动。

LoRA*:全称低秩适应,是一种只训练模型里一小部分额外参数、而保持原始庞大模型权重不变的高效微调技术,能大幅降低训练成本。

flow matching*:流匹配,一种生成模型训练目标,通过让网络学习从噪声到目标数据之间的"速度场"来生成样本,是π0等VLA模型底层使用的生成框架。

研究者还在损失函数里加了一个锚定项,专门限制LoRA参数偏离初始值太远。消融实验显示,去掉这个锚定项之后,七个部署场景下的平均成功率从44.2%掉到了41.8%,下降了2.4个百分点,其中负载场景下降幅度最大,达到4.6个百分点。这说明在线适应这件事本身是有风险的,如果完全放任模型根据最近几次的反馈随意调整,反而可能学偏,锚定项就像给这个自我调整过程上了一道保险绳。

这里还有个很容易被忽略但其实至关重要的细节:整个调整过程完全是在线进行的,机器人一边执行任务一边更新策略,而且这个更新不会去修改已经发出去的那组动作指令,只会影响下一批新生成的指令。研究者维护了一个容量32的先进式缓冲区,每积累8个新的动作块就用其中采样的4个做一次参数更新。

实验结果:数字说话

在RoboStress的七个部署场景上,自我补偿式VLA相比基础策略和两种训练时鲁棒化方法(域随机化和RobustVLA)全面胜出。

以π0.5这个基座模型为例,七个场景下的平均成功率从基础策略的49.1%提升到了56.6%,提高了7.5个百分点。在负载场景下,提升尤其明显,从44.1%直接跃升到56.8%,涨了12.7个百分点。而对照组方法里,域随机化和RobustVLA的表现其实并不稳定,有时候甚至还低于什么都不做的基础策略。

| 场景 | π0.5基础 | π0.5域随机化 | π0.5 RobustVLA | π0.5我们的方法 |

|---|---|---|---|---|

| 负载抓取 | 44.1 | 42.1 | 38.9 | 56.8 |

| 温漂-摩擦 | 54.1 | 54.6 | 55.9 | 60.5 |

| 温漂-背隙 | 83.4 | 84.5 | 83.1 | 84.8 |

| 传动老化 | 33.2 | 39.7 | 40.2 | 41.8 |

| 关节老化-均匀 | 29.5 | 36.0 | 33.8 | 38.6 |

| 关节老化-肩部 | 43.9 | 46.4 | 43.0 | 51.2 |

| 关节老化-肘部 | 55.6 | 54.0 | 53.9 | 62.3 |

| 平均 | 49.1 | 51.0 | 49.8 | 56.6 |

更让人信服的是真实机器人上的实验。研究团队在两台AgileX Piper机械臂上(一台全新,一台用了一年)测试了三个抓取放置任务和一个开抽屉任务。无论用π0还是π0.5作为基座模型,自我补偿式VLA在每一个任务上都超过了基础策略和RobustVLA,平均成功率提升超过30个百分点。

比如在机器人A上用π0.5测试的开抽屉任务,基础策略只有40%的成功率,自我补偿式VLA达到68%。在机器人B上的一个抓取任务,基础策略只有32%成功率,自我补偿式VLA达到84%,成功率直接翻了一倍还多。

研究者还做了一个很有意思的补充实验,验证这个方法在换了未见过的物体时是否还管用。他们用五种训练时从未出现过的碗(木纹色、梅子色、浅蓝色等)来测试同一个抓取放置任务。结果显示,基础策略在这些新物体上的成功率只有16%,而自我补偿式VLA达到了64%。这说明这套方法学到的补偿逻辑,针对的是机器人身体本身的执行误差,而不是针对某个特定物体的视觉特征,所以换个颜色的碗,补偿机制照样起作用。

另外还有个很实用的发现:这套方法即便和已有的外部控制手段叠加使用,依然能提供额外收益。研究者加入了一个叫扰动观测器的传统控制方法,它利用关节反馈信号估计误差并在指令发出前做修正。结果显示单独用扰动观测器,成功率从48%提升到56%;而在扰动观测器基础上再加自我补偿式VLA,成功率进一步提升到80%,接近单独使用自我补偿式VLA达到的84%。这说明这个策略层面的调整和控制层面的传统修正并不是互相取代的关系,而是可以叠加互补的。

扰动观测器*:一种利用反馈信号估计外部干扰并在控制输入中加以补偿的传统控制方法,广泛应用于工业机器人控制系统。

写在后面

读完这篇论文,最让我意外的一点,其实不是方法本身有多精巧,而是那个32.9%的数字。一台全新出厂的机械臂,指令和实际动作之间的偏差幅度竟然接近三分之一。这意味着我们平时在实验室演示视频里看到的"完美执行",背后可能一直存在着某种程度的"睁一只眼闭一只眼"。机器人之所以看起来还算听话,很大程度上是因为任务本身的容错空间足够大,而不是因为它真的做到了指令里说的那么精确。

另一个值得琢磨的地方是,这篇论文选择用proprioception(本体感知)而不是视觉反馈作为纠错信号的来源。这个选择其实暗含了一种判断:视觉能告诉你任务有没有做成功,但没法精确告诉你关节级别到底偏差了多少、往哪个方向偏;而本体感知虽然看不到任务全局,却能提供最直接、最高频的"身体诚实度"数据。这种分工思路,其实在人类身上也成立,我们闭着眼睛伸手去摸桌上的杯子时,靠的也不是视觉,而是手臂肌肉和关节对自身位置的感知。

论文结尾提到未来会考虑引入外部传感器的运动估计,减少对本体感知的单一依赖。这句话背后其实藏着一个没说透的局限:如果机器人的本体感知传感器本身也存在系统性偏差(比如编码器老化导致读数本身就不准),那这套自我补偿机制岂不是在用一个不准的尺子去校准另一个不准的动作?这个问题论文里没有深入讨论,但确实值得继续追问下去。

Q&A

Q1:self-compensating VLA自我补偿式VLA是什么?

A:这是一种让机器人在部署时在线自我调整的方法,它利用指令动作和实际执行动作之间的差值作为信号,不需要任务奖励或人工标签,就能让策略学会提前补偿机器人身体的执行误差。

Q2:RoboStress基准测试平台解决了什么问题?

A:它在仿真环境里精确复现了摩擦、背隙、顺应性、重力补偿误差这四种真实机械臂会遇到的物理退化现象,组合成七种部署场景,用于在不损坏真实硬件的前提下系统性测试机器人策略的鲁棒性。

Q3:自我补偿式VLA在真实机器人上效果如何?

A:在两台使用历史不同的Piper机械臂上测试,无论用π0还是π0.5作为基座模型,该方法都比基础策略平均提升超过30个百分点的任务成功率,并且在训练时未见过的物体上依然有效。

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。