Token导航 LogoToken导航

机器人避障为何难以杜绝偶发碰撞

更新时间 2026-10-19来源 科技行者正文 7437字阅读约 24分钟

2024年,一台送餐机器人在某公司走廊里执行"把杯子送到会议室"的任务。它的AI大脑判断得很聪明,绕过了一把椅子,躲开了一个纸箱,眼看就要到达目的地。

然后它撞上了转角处一个刚好探出来的行李箱。

事后复盘的人很困惑:这个AI在训练时明明学过"避开障碍物",为什么还是撞了?答案让人哭笑不得,它确实学会了避开障碍物,但学会的方式是"平均意义上少撞点",而不是"每一次都不能撞"。这两者之间的差距,就是这篇论文要解决的问题。

**这篇论文,就是ShieldVLA,一个专门给机器人"装安全阀"的训练框架。**

它要解决的,是当下机器人智能里一个被长期低估的裂缝。

**VLA模型的野心和它的软肋**

VLA*:Vision-Language-Action,视觉-语言-动作模型,一种能看懂画面、听懂指令、然后直接输出机器人动作的AI系统,是当下机器人领域最火的技术路线。

VLA模型的故事最近两年讲得很热闹。谷歌的RT-2、斯坦福团队的OpenVLA、还有各种基于它们微调出来的变体,让机器人第一次能像人一样,看一眼环境、听一句"把黄色球拿给我",就直接执行动作。这背后是海量的视觉-语言预训练数据在撑腰,机器人因此获得了惊人的泛化能力,没见过的场景也能应付个七七八八。

但这些模型有个共同的短板:它们在训练时压根没考虑过"安全"这两个字。

现有的解决办法,主要靠一种叫Lagrangian优化的技术。

Lagrangian优化*:一种把"约束条件"转换成"惩罚项"加到目标函数里的数学方法,本质是让AI在追求奖励的同时,因为违反安全规则而扣分。

这个思路听起来没毛病,撞车就扣分,扣得越多,AI就越不想撞车。问题出在"扣分"这个机制本身太软了。它优化的是整个训练过程里"平均下来"违反了多少安全规则,而不是"这一次绝对不能违反"。这就好比一个学生考试,老师告诉他"你这学期平均分要保持在80分以上",学生完全可以在某几门课上考砸,只要别的科目补回来就行。可现实中有些"考砸"是不能接受的,比如撞上行人,你不能靠别的任务表现好来"平均"回来。

论文里管这个叫"persistent reward-cost trade-off",持续的奖励-代价权衡。翻译成人话就是:AI在整个训练期间,脑子里始终绷着一根"要不要为了任务表现牺牲点安全性"的弦,这根弦一直紧绷着,导致AI要么变得过度保守(畏首畏尾,任务完成率低),要么在关键时刻依然会踩雷。

第二个难题更隐蔽,是"怎么教AI认识危险"这件事本身缺乏教材。

在文字和语言的世界里,我们可以让AI标注每一句话是否有毒、是否违规。但在视觉场景里,给机器人的每一帧画面标注"这一步安全还是危险",几乎是不可能完成的工程量。你总不能雇一个人盯着几十万帧视频,一帧一帧打分吧。

于是研究者想到了用视觉语言大模型(VLM)来自动打分,让AI来评判AI。但这里又埋了一个坑:如果你直接问VLM"这张图安全不安全,打个1到10的分",它给出的答案会飘忽不定,同一张图不同时间问,分数都可能不一样。这种噪声太大的信号,根本没法用来稳定地训练一个安全模型。

**从"控制论"里借来的老智慧:可达性分析**

面对这两个难题,作者们没有在Lagrangian优化的框架里缝缝补补,而是转头去了控制理论这个更古老的领域,找到了一个叫Hamilton-Jacobi可达性(HJ Reachability)的工具。

HJ可达性*:一种控制理论方法,核心思想是计算出"从当前状态出发,是否存在某种操作方式能让系统永远维持安全",它关心的不是平均代价,而是每一个具体状态是否"有救"。

这个工具的核心洞察非常朴素:安全不该是一个"扣多少分"的问题,而应该是一个"这个状态还能不能救"的问题。

换句话说,HJ可达性把整个状态空间划分成两块。一块是"可行安全区",站在这个区域里,AI总能找到某种操作方式,让自己永远不违反安全规则;另一块是"不可行区",一旦进去,不管你怎么操作,迟早都会出事。

这就像医院的分诊制度。急诊室不会把每个病人都按"平均病情严重程度"来排队处理,而是先判断这个病人是否处于生命危险区域。处于危险区的病人,医生的第一反应不是"综合考虑一下病人舒适度和治疗成本",而是不计代价先稳住命;只有脱离危险区之后,才会考虑更精细化的治疗方案权衡。如果医院真按"平均代价"来分诊,那些处于临界状态的病人可能就在排队等待中错过抢救窗口。

HJ可达性传统上要求你知道系统的精确动力学方程,还得把状态空间切成网格来计算,这在高维视觉输入(一张图片动辄几万个像素)面前完全行不通。作者们借用了2019年Fisac等人的思路,把这个可达性的计算过程改造成了一种类似强化学习里"时序差分学习"的模型无关方法,不需要知道精确的物理方程,直接从数据里学。

**ShieldVLA的核心设计:让AI学会"分区而治"**

基于这个思路,ShieldVLA构建了一个"安全评论家"(Safety Critic),这是一个独立训练的神经网络模块,专门负责判断当前状态是安全的还是危险的。

安全评论家(Safety Critic)*:一个和主策略网络并行训练的小型神经网络,输入是当前的视觉观测和动作,输出一个数值,这个数值的正负代表这个状态是否在安全区域内。

这个安全评论家的训练遵循一个叫做"安全贝尔曼方程"(Safety Bellman Equation)的更新规则。它和普通强化学习里的价值函数更新公式长得有点像,但内核完全不同,普通的价值函数是把未来的奖励一层层累加起来,而安全贝尔曼方程用的是"取最小值"的操作,专门捕捉轨迹里最危险的那个瞬间。这个数学上的选择保证了这个更新过程是收敛的,论文附录里给出了严格的证明。

有了这个安全评论家,接下来最关键的设计出现了:门控式策略优化(Gated Policy Optimization)。

具体来说,AI在每一步决策时,先问一下安全评论家:"我现在这个状态,安全值是正的还是负的?"

如果是正的,说明当前处于可行安全区,AI就完全按照任务奖励去优化,不施加任何安全惩罚。这时候的梯度更新和一个完全没有安全约束的普通VLA训练一模一样。

如果是负的,说明当前已经踏入了危险区域,这时候任务奖励会被完全屏蔽,AI转而只接收一个"如何提升安全值"的梯度信号,专注于把自己拉回安全区。

这个设计最妙的地方在于它彻底切断了安全和任务表现之间那根一直紧绷的弦。

拿开车来打个比方。传统的Lagrangian方法就像一个司机,每次踩油门之前都要先心算一下"这脚油门带来的速度提升,值不值得承受一点点闯红灯的风险概率",每一次决策都夹杂着权衡,久而久之这个司机开车会变得又慢又犹豫,因为他永远在纠结这笔账划不划算。而ShieldVLA的门控机制更像一个有经验的老司机:只要红灯没亮、路况正常,他就一脚油门踩到底,脑子里根本不去想安全问题;只有当红灯真的亮起来、前方出现障碍时,他才会立刻切换到"刹车模式",这时候他也不会去想"刹车会不会让我迟到",先安全第一。这种"要么全力冲、要么全力刹"的分区处理,比那种时刻都在半踩油门半踩刹车的纠结状态,效率高得多,也更符合真实世界里安全决策的直觉。

那这个"安全"和"危险"的界限该怎么划?论文里引入了一个阈值δ,安全值大于δ才算安全区。这个δ并不是拍脑袋定的,实验里作者专门做了一组消融实验(见Dubins-VL环境),发现δ设为0时会有一定的残余违规成本(CSC为4.24),随着δ逐渐提高到0.2,违规成本能压到接近0,但任务成功率也会从0.42慢慢降到0.37。这其实揭示了一个朴素的道理:你把安全边界划得越宽,越不容易出事,但相应地,AI能自由发挥的空间也越小。这本身就是个需要权衡的旋钮,不存在完美答案。

**教AI"认识危险":把模糊的印象变成可用的分数**

解决了怎么用安全信号的问题,接下来要解决信号从哪来的问题。前面提到过,直接让VLM打一个笼统的安全分数太不稳定了。ShieldVLA给出的方案是结构化评分表(Rubric)。

评分表(Rubric)*:把一个笼统的问题拆解成多个具体的、可独立验证的小问题,每个小问题都配上清晰的评分标准(比如0分代表什么场景,1分代表什么场景),最后按权重加总得出最终分数。

这个思路其实和考试出题的逻辑很像。如果你让一个阅卷老师给一篇作文"打个总分",不同老师打出来的分数可能天差地别,因为每个人心里的评判标准都模糊不清。但如果你把作文拆成"立意是否清晰"、"论据是否充分"、"语言是否流畅"这几个维度,每个维度给出明确的评分锚点(比如1分对应"完全跑题",5分对应"立意深刻新颖"),不同老师打出来的总分就会趋于一致。ShieldVLA就是把这个思路用在了机器人安全评分上。

具体来说,针对导航任务,论文设计了五个评分维度:障碍物距离有多近、机器人是否正朝着障碍物移动、当前是否已经接触到障碍物、障碍物被遮挡的程度、以及周围还有多少可以机动的空间。每个维度独立打分(0到1之间),再按照预先设定的权重加总,得到一个原始的"危险严重度"分数。

这个原始分数还不能直接用,因为不同场景、不同VLM打分习惯不一样,分数的绝对值没有可比性。作者们用了一个叫Platt scaling的经典校准方法,用每一集任务结束后"到底出没出事"这个唯一的真实标签(这是唯一需要人工标注的地方,而且只需要标注到"整集任务"这个粒度,不需要逐帧标注),去反推一条逻辑回归曲线,把原始分数校准成一个真正有意义的安全边际值。

这套流程最巧妙的地方在于,它只需要"这一集任务最后有没有出事"这一个粗粒度的标签,就能倒推出每一帧画面的精细安全分数。这就像破案,你不需要知道嫌疑人每一分钟在做什么,只需要知道案发时间和最终结果,结合沿途的线索(每一帧VLM打的分),就能反推出案发前的关键时刻大概是哪个。

更进一步,论文还设计了一个叫"通过差异化精炼"(Refinement-through-Differentiation,简称RTD)的机制,用来发现评分表本身的盲区。

具体做法是,先用现有评分表给一堆场景打分,找出那些"明明后来出事了,但评分表却打了高安全分"的案例,把这些矛盾案例喂给一个更强大的VLM(论文用的是720亿参数的Qwen2.5-VL),让它反过来分析"应该增加一个什么样的新评分维度,才能把这个矛盾案例分辨出来"。

这个RTD机制在两个完全不同的机器人平台上(TurtleBot导航和Safety-CHORES家居机器人)都独立发现了类似的新维度,比如"障碍物边缘距离"和"障碍物重叠程度",这说明这套自动发现漏洞的机制具有一定的普适性,不需要针对每个新场景重新手工设计。

**五个战场,一次全面检验**

理论说得再漂亮,也得靠实验说话。ShieldVLA在五个覆盖导航和操作任务的环境里做了系统评测,涉及多种不同的VLA骨干模型,包括自定义的Dubins小车、基于OmniVLA的TurtleBot导航、基于SPOC-VLA的家居机器人Safety-CHORES(导航和抓取两个子任务),以及基于OpenVLA-OFT的Franka机械臂桌面抓取任务。

核心的评测指标有两个:成功率SR(既要到达目标又要全程零违规才算成功),以及累积安全代价CSC(整个任务过程中累计的违规程度)。

结果显示,ShieldVLA在几乎所有环境里都同时拿到了最高的成功率和最低的安全代价。以TurtleBot-Nav为例,无约束的普通VLA成功率只有0.30,安全代价高达22.2;而目前最强的公开基线SafeVLA虽然把安全代价压到了14.6,成功率也提升到了0.34,但ShieldVLA同时把成功率提到0.54,安全代价压到6.90。这不是简单的"牺牲一头补另一头",而是两个指标一起变好了。

在Safety-CHORES Fetch这个最复杂的抓取任务里,安全代价从SafeVLA的8.98降到了5.50,成功率从0.34提升到0.49。平均下来,论文汇报的数字是安全代价降低57%,成功率提升0.13个百分点,这个提升幅度对于安全和性能同时改善来说,是相当可观的。

论文还做了几组针对性的消融实验,来验证到底是哪个部件在起作用。

第一组对比了用VLM打分和用最简单的二元碰撞指示器(安全就是+1,撞了就是-5)之间的差异。结果发现二元信号会让任务表现明显崩塌,比如在TurtleBot-Nav上成功率从0.54掉到0.31,在Franka-Reach上从0.45掉到0.25。原因不难理解,二元信号在碰撞边界之外完全没有梯度信息,导致安全门控过早触发,把AI锁死在了一个很小的活动范围里,动弹不得。这个实验说明,那套精心设计的评分表机制不是可有可无的装饰,而是让整个门控机制能够"选择性介入"而不是"一刀切"的关键。

第二组对比了门控机制和传统惩罚机制之间的差异,在保持同一个安全评论家不变的前提下,把门控式的更新方式换成Lagrangian式的惩罚方式。结果显示,即使用的是同一个训练好的安全评论家,惩罚式的更新方式依然在成功率和安全代价两个指标上都全面落后于门控式(成功率0.33对0.54,安全代价7.80对6.90)。这直接证明了论文的核心创新点确实来自"门控"这个机制本身,而不只是因为用了一个更好的安全信号。

**当画面变了,AI还稳不稳**

一个训练好的机器人,走出实验室之后遇到的环境往往和训练时不一样,光照变了,物体颜色变了。这种情况下AI会不会突然变得不靠谱?

论文专门设计了一组分布外鲁棒性测试,在渲染引擎层面做了三类扰动:更换场景主色调(比如把障碍物颜色换成从没见过的紫色、青色)、改变光照条件(调暗或调暖)、以及两者叠加。这些扰动全程没有出现在训练数据里。

结果相当有意思。ShieldVLA在所有这些陌生场景下,安全代价指标始终保持全场最低,甚至在Safety-CHORES Nav这个环境里,安全代价在扰动下反而进一步下降了(从1.44降到平均0.77到1.17区间),而SafeVLA的安全代价却在扰动下明显恶化,从1.82上升到超过3。

这背后的机制其实挺符合直觉。当视觉输入变得陌生、不确定性上升时,安全评论家给出的安全值会本能地趋于保守,门控机制因此会更早地触发保护模式,把AI推向更谨慎的行为。而SafeVLA里那个单一的Lagrangian乘子是根据训练时的分布统计校准出来的,遇到陌生场景它没法临场调整,只能沿用训练时那套固定的权衡策略,这套策略一旦碰到没见过的情况,就容易失灵。

这就像一个经验丰富的老司机和一个死记硬背交规的新手司机在浓雾天开车的区别。老司机遇到能见度骤降,会本能地放慢车速、拉开车距,这是一种基于"当前情况有多大把握"的动态调整;而死记硬背规则的新手可能还是严格按照晴天时学的车速表来开,因为他的判断标准是固定死的,没法根据眼前的不确定性实时调整。ShieldVLA的安全评论家,本质上就是给AI装上了那种"感知到不确定性就本能收紧"的直觉。

**这套方法还没解决的事**

论文也很坦诚地列出了当前方案的局限。

一个是VLM打分器本身的能力天花板。论文测试发现,参数量小于80亿的打分模型会出现"模式坍塌"现象,也就是对不同场景给出几乎一样的分数,哪怕引入了RTD精炼机制去优化评分表,小模型依然打不出有区分度的分数。这说明这套流程对底层VLM的能力有硬性门槛,不是随便换个轻量模型就能用。

另一个是训练数据里"临界状态"覆盖不足的问题。安全贝尔曼方程的学习效果依赖于机器人在训练过程中真正走到过安全边界附近,如果某个环境里危险事件本身极其罕见,AI压根没机会探索到那个边界,安全边界的估计自然也就不准。这在真实世界的安全关键场景里恰恰是个悖论,越是罕见的危险,越难通过让AI"多撞几次去学习"来覆盖。

论文的所有实验都是在仿真环境里完成的,真机部署还需要重新校准VLM打分器以适应真实世界的视觉分布偏移。

写在后面

读这篇论文的时候,最让我意外的一个细节是那个Dubins小车的可视化实验(论文里的Figure 3)。作者们把训练好的安全评论家在不同朝向角度下的安全值画成了热力图,你能清楚看到安全区域会随着机器人朝向障碍物的角度不同而收缩或扩张,朝着障碍物开的时候安全区明显变小,背离障碍物时安全区又重新扩大。这个图本身没什么惊天动地的结论,但它让我第一次直观地"看见"了一个抽象的数学概念,安全不是一个静态的地图标记,而是一个随着你此刻的动作意图而实时变化的动态边界。这跟我们平时理解的"危险区域"完全不一样,我们习惯把危险想象成地图上一块固定的红色区域,但这篇论文告诉你,真正的危险其实取决于你正准备往哪个方向走。

另一个让我反复琢磨的地方是RTD机制那个跨平台一致性的发现。两个完全不同的机器人(轮式的TurtleBot和带机械臂的Stretch)用同一套自动发现漏洞的元提示词,竟然独立地"发明"出了几乎对应的评分维度。这多少说明,"障碍物边缘有多近"、"和障碍物有没有视觉重叠"这类判断危险的直觉,可能是某种跨场景通用的底层模式,不是针对某个具体机器人量身定做的经验。这让我忍不住想,如果把这套RTD机制用在更大范围的安全场景里,比如自动驾驶或者医疗机器人,它会不会也能自动挖出一些人类专家都没想到的评判维度?

这个问题,论文没有回答,但它留下的这个口子,值得有人接着往下挖。

Q&A

Q1:ShieldVLA是什么?

A:ShieldVLA是一个给机器人视觉语言动作模型(VLA)做安全微调的框架,核心是用Hamilton-Jacobi可达性理论训练一个安全评论家,判断机器人当前状态是否处于安全区域,并据此决定是追求任务奖励还是切换到安全恢复模式。

Q2:ShieldVLA和SafeVLA相比有什么优势?

A:ShieldVLA在五个导航和操作任务基准上平均降低了57%的累积安全代价,同时任务成功率提升了0.13,而且在测试时的视觉扰动(换光照、换颜色)下依然保持较低的安全代价,鲁棒性明显更好。

Q3:ShieldVLA怎么解决没有安全标注数据的问题?

A:它用一个冻结的视觉语言大模型(VLM),通过结构化评分表给每一帧画面打分,再用整集任务是否出事这个粗粒度标签做校准,把模糊的分数转换成稳定可用的安全边际值,不需要逐帧人工标注。

文章标签机器人大模型
资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。

继续浏览更多资讯

返回资讯目录

相关资讯

更多