ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

011、Moravec悖论:为什么感知容易而操作至今仍是机器人难题

011、Moravec悖论:为什么感知容易而操作至今仍是机器人难题 011、Moravec悖论为什么感知容易而操作至今仍是机器人难题昨晚调了一台六轴机械臂目标动作简单得离谱——把桌面上一个红色杯子从A点挪到B点距离不到二十厘米。视觉识别部分跑得飞快YOLO加SAM两秒钟就把杯子分割得干干净净深度相机给出的点云也漂亮得很。结果呢机械臂一碰到杯壁整个力控就崩了杯子被推出去半米远末端执行器在桌面上划出一道刺耳的刮擦声。那一刻我脑子里蹦出Moravec悖论——这个1988年就被Hans Moravec点破的诡异现象对人类来说毫不费力的事情对机器来说难如登天对人类来说需要大量推理的事情对机器反而简单。感知已经卷到天上去了CLIP能理解抽象概念SAM能分割一切多模态大模型甚至能描述场景里每个物体的物理属性。但让机器人真正去操作一个物体哪怕只是稳稳地抓起来依然会让无数实验室的博士生头秃。今天这篇笔记我想从底层逻辑聊聊这个悖论为什么至今仍然成立以及我们在做VLA模型时踩过的那些坑。从一次失败的抓取说起先还原一下那个场景。机械臂末端装了力传感器视觉系统给出了杯子的三维位姿误差在毫米级。控制代码里写好了阻抗控制参数刚度设得不高想着柔性接触。结果机械臂以每秒五厘米的速度靠近杯子接触瞬间力反馈曲线直接冲顶传感器读数跳变到设定阈值的六倍安全逻辑触发急停。问题出在哪视觉给出的位姿是静态的但杯子在接触瞬间会发生微小的滑动哪怕只有零点几毫米对于刚性机械臂来说就是巨大的位置误差。人类的手在接触物体时会自动调整抓取策略指尖的触觉感受器以毫秒级频率反馈信息肌肉的阻抗特性也在实时变化。这些对于人类来说完全是无意识的反射行为但机器人需要显式地建模每一个环节。更麻烦的是视觉感知本身就有延迟。相机帧率三十赫兹加上推理时间整个感知链路延迟超过一百毫秒。机械臂以五厘米每秒的速度运动一百毫秒就是五毫米的位移误差。这个误差在自由空间里无所谓但一旦进入接触状态五毫米足以让抓取彻底失败。为什么感知容易操作难Moravec悖论的核心在于人类的高级认知能力——比如逻辑推理、语言理解、数学计算——是进化后期才发展出来的这些能力在计算机上反而容易模拟。而感知和运动控制是亿万年进化打磨出来的底层能力它们依赖于极其复杂的神经回路和身体结构这些隐性知识根本无法用显式的规则来描述。拿抓杯子这个动作来说人类婴儿需要几个月的时间才能熟练掌握但一个三岁小孩就能轻松完成。而一个三岁小孩绝对做不了微积分但计算机可以。这背后的原因在于感知和运动控制涉及的是连续的高维空间状态空间巨大而且充满了不确定性。相比之下符号推理是离散的、结构化的可以用规则和逻辑来描述。具体到机器人操作难点集中在几个层面。首先是接触建模两个物体接触时的物理过程极其复杂涉及弹性形变、摩擦、粘附等多种效应精确建模几乎不可能。其次是状态估计机器人无法直接感知物体的内部状态只能通过视觉和力觉间接推断。第三是控制策略即使有了准确的状态估计如何生成合适的控制指令也是一个高维优化问题。我们在做VLA模型时最头疼的就是如何把语言指令映射到具体的动作序列上。大语言模型可以理解轻轻拿起杯子这句话但轻轻这个词对应的力控参数是多少刚度应该设多大速度应该多快这些物理量无法从语言中直接得到必须通过大量的试错来学习。从经典控制到端到端学习的演进早期的机器人操作完全依赖手工设计的控制律。以力控为例经典的阻抗控制公式是F M·Δẍ B·Δẋ K·Δx其中M、B、K分别是惯性、阻尼和刚度矩阵。这些参数需要工程师根据经验手动调节而且一旦物体属性变化参数就需要重新整定。这种方法的局限性在于它假设了环境的模型是已知的但现实世界充满了不确定性。后来发展出基于学习的方法比如强化学习。机器人通过与环境交互来学习策略不需要显式建模。但强化学习在真实机器人上训练极其昂贵一个简单的抓取任务可能需要数百万次试错这在物理世界中是不可行的。于是出现了仿真到现实的迁移但仿真和现实之间的差距——也就是sim-to-real gap——又带来了新的问题。最近几年VLA模型试图把大语言模型的语义理解能力与机器人的动作生成结合起来。思路很直观用语言模型来理解任务意图用视觉模型来感知环境状态然后用一个动作头来生成控制指令。但这里有个关键问题——动作表征。动作应该用关节角度、末端位姿、还是力控参数不同的表征方式对学习难度和泛化能力有巨大影响。我们实验过多种动作表征方式。关节空间的动作最直接但维度高而且不同机器人的关节配置不同迁移性差。末端位姿的动作更抽象但忽略了机器人的运动学约束。力控参数的动作最难学因为力觉反馈的噪声很大而且接触状态的切换会导致动作分布剧烈变化。接触感知被忽视的关键很多VLA模型把注意力放在视觉上却忽视了触觉和力觉信息。这其实是个大问题。视觉能告诉你物体在哪里但无法告诉你接触是否稳定、滑动是否发生、力是否过大。人类在操作物体时触觉信息的优先级远高于视觉——你可以闭着眼睛拿起一杯水但不可能蒙着手套靠视觉完成同样的任务。我们在一个抓取实验中做过对比只用视觉的模型成功率是百分之六十二加上力觉信息后提升到百分之八十九。这个提升幅度远超任何网络结构上的改进。但力觉信息的处理并不容易它的维度低、噪声大、时序依赖强而且不同传感器的特性差异很大。一个可行的方案是把力觉信息编码成触觉图与视觉特征在特征层面融合。但这里有个坑——力觉信息的时序对齐。视觉的帧率是三十赫兹力觉的采样率可能是一千赫兹如何对齐这两种不同频率的信息我们试过简单的最近邻插值效果一般后来改成用一个小型LSTM来编码力觉序列效果好了不少但训练时间也相应增加了。数据效率与泛化的两难VLA模型最大的问题是数据效率。大语言模型可以用互联网上的海量文本进行预训练但机器人操作数据必须通过真实的物理交互来获取成本极高。一个简单的抓取任务采集一万条演示数据可能需要一台机器人连续工作数周而且这些数据的多样性远远不够。我们尝试过用仿真数据来扩充训练集但仿真和现实之间的差距依然存在。一个典型的例子是摩擦系数——仿真中通常设为固定值但真实物体的摩擦系数会随着湿度、表面磨损等因素变化。即使是最先进的物理引擎也无法完全模拟真实世界的复杂性。另一个问题是泛化。VLA模型在训练场景中表现很好但一旦物体位置、光照、背景发生变化性能就会急剧下降。这背后的原因是模型可能学到了场景的统计特征而不是真正的操作技能。我们做过一个测试在训练集中加入随机背景干扰后模型在简单背景下的表现反而下降了——因为它把注意力分散到了无关的特征上。从仿真到现实的鸿沟Sim-to-real是VLA模型落地必须跨越的鸿沟。我们在仿真中训练了一个抓取策略成功率高达百分之九十五但迁移到真实机器人上只有百分之三十。问题出在哪里首先是视觉差异——仿真中的渲染图像与真实相机图像存在明显的分布偏移。其次是物理差异——仿真中的接触模型过于理想化真实世界的摩擦力、弹性形变都难以精确模拟。Domain randomization是一种常用的方法通过在仿真中随机化各种参数——光照、纹理、物理属性——来增强模型的鲁棒性。但这种方法也有局限随机化的范围过大会导致模型学不到有效的特征过小则无法覆盖真实世界的多样性。我们后来采用了一种渐进式迁移策略先在仿真中预训练然后在真实机器人上进行微调。微调时只更新部分网络层保持底层特征提取器的参数不变。这种方法在一定程度上缓解了sim-to-real gap但微调过程仍然需要大量的人工干预。操作中的时序依赖问题操作任务本质上是一个时序决策问题当前的动作会影响未来的状态。但很多VLA模型把每个时间步当作独立的决策来对待忽略了时序依赖。这导致模型在长期任务中表现不佳——它可能每一步都做出了合理的动作但整体策略却是错误的。举个例子插拔连接器这个任务。视觉上看起来很简单——把插头对准插座然后推入。但实际操作中插头可能因为重力而下垂需要先调整姿态插入过程中可能会遇到阻力需要调整力度和方向。这些时序上的依赖关系很难通过单步的监督学习来捕捉。我们尝试过用Transformer来建模时序依赖但效果并不理想。Transformer擅长捕捉长距离依赖但操作任务中的依赖往往是短期的、局部的而且高度非线性。后来我们改用了一种混合架构——用CNN提取视觉特征用LSTM建模时序依赖再用MLP生成动作。这个架构在插拔任务上取得了不错的效果但训练时间比纯Transformer架构长了不少。力控与位置控制的切换操作任务中经常需要在力控和位置控制之间切换。比如抓取前的接近阶段需要精确的位置控制接触后的操作阶段需要柔顺的力控。这种切换在人类看来是自然而然的但机器人实现起来却非常困难。问题在于力控和位置控制的切换点很难确定。切换太早机器人还没到位就开始力控会导致接触不稳定切换太晚机器人已经撞上物体力控来不及响应。我们试过用视觉来预测接触时刻但视觉延迟导致预测不准确也试过用力觉阈值来触发切换但力觉噪声导致误触发。一个可行的方案是采用混合控制——同时使用位置和力控通过权重来调节两者的比例。在接近阶段位置控制的权重大接触后力控的权重大。这种方法的难点在于权重的调节策略我们目前用的是基于力觉反馈的启发式规则效果一般但至少比硬切换稳定。从VLA到真正的具身智能回到Moravec悖论。为什么感知容易而操作难因为感知是一个从高维输入到低维语义的映射这种映射可以通过大量的数据来学习而操作是一个从低维语义到高维动作的映射这种映射不仅需要理解语义还需要精确控制物理过程。VLA模型目前的做法是用大语言模型来理解任务语义用视觉模型来感知环境状态然后用一个动作头来生成控制指令。但这种方法本质上还是把感知和操作分开处理没有真正解决操作中的物理交互问题。我认为真正的具身智能需要把感知、认知和行动融为一体。机器人不仅要理解任务语义还要理解物理规律不仅要感知环境状态还要感知自身的运动状态不仅要生成动作指令还要根据反馈实时调整策略。这需要新的架构设计而不是简单地把大语言模型和机器人控制拼接在一起。一些个人经验做了这么多年机器人操作最大的感受是不要低估物理世界的复杂性。很多在仿真中看起来很简单的问题在真实机器人上会变得异常棘手。一个看似简单的抓取任务可能因为摩擦力、重力、惯性等因素而失败。给正在做VLA模型的同学几个建议。第一不要忽视力觉信息视觉能告诉你物体在哪里但力觉能告诉你接触是否稳定。第二动作表征很关键不同的表征方式对学习难度和泛化能力有巨大影响。第三sim-to-real gap是真实存在的不要指望仿真中训练的策略能直接部署到真实机器人上。最后保持耐心。机器人操作是一个极其复杂的问题不可能一蹴而就。每一个看似微小的进步背后都是大量的试错和调试。但正是这些微小的进步最终会汇聚成突破性的成果。
返回列表