每日前沿技术分享——机器人执行时出问题怎么办?看看英伟达研究院和斯坦佛的Sentinel 框架

各位小伙伴大家好,欢迎来到每日前言技术专栏专题。

祝大家百尺竿头,更进一步。


在昨天的每日前沿技术分享中,给大家带来的是机器人策略故障检测的一项技术:Code-as-Monitor。那么实际上这段时间,斯坦福联合英伟达研究中心一起也研发出了一个框架,也能对于机器人策略故障做一个很好的检测。

我们可以和上一篇对比着来去看,同时,对于这种问题,我们也可以多了解了解,因为确实在研究和生产实际过程中,这项技术都是非常重要的——它相当于是对一个闭环系统提供一个保证。


项目主页:

https://sites.google.com/stanford.edu/sentinel

一、另一个角度说说为何要“故障检测”?

随着机器人技术的不断发展,通过模仿学习训练的机器人行为策略在很多场景下都展现出了不错的性能。不过,一旦遇到与训练数据不同的情况,也就是所谓的分布外(OOD)场景,这些策略就很容易出问题。想象一下,一个在实验室里训练得很好的机器人,能熟练地完成各种任务,但到了真实的复杂环境中,却可能状况百出,不是和周围的物体碰撞,就是在执行任务时停滞不前。

image.png

造成这种情况的原因之一,是机器人策略的多模态性。多模态使得机器人在运行时的行为更加随机,从一个时间步到下一个时间步,它的动作可能会有很大变化,这就导致了复杂的运行时行为和多样化的故障模式。

而且,传统的故障检测方法大多是针对已知故障模式或者基于模型的,对于无模型的生成式策略不太适用。另外,现有的一些方法在计算上开销很大,或者无法准确地检测出策略在闭环运行中的故障。所以,设计一种新的、适合生成式机器人策略的故障检测方法迫在眉睫。

二、Sentinel:机器人策略的 “安全卫士”

Sentinel 是一个运行时监测框架,它就像是机器人策略的 “安全卫士”,把检测生成式策略故障的任务分成了两个互补的类别,以此来提高故障检测的准确性。

1、第一类:不稳定故障检测

不稳定故障指的是策略表现出不稳定行为的情况,比如机器人可能会与周围环境发生碰撞,这往往是因为策略的动作分布在时间上不一致。

为了检测这类故障,Sentinel 采用了统计时间动作一致性(STAC)方法。STAC 通过计算策略在不同时间步生成的动作分布之间的统计距离,来衡量动作的一致性。如果这个距离超过了一定的阈值,就说明策略可能出现了不稳定行为,Sentinel 会发出故障警告

2、第二类:任务进展故障检测

任务进展故障则是指策略虽然在时间上表现出一致性,但却无法在任务上取得进展。比如机器人可能会一直重复某个无效的动作,却始终无法完成任务。Sentinel 利用视觉语言模型(VLMs)来检测这类故障。VLMs 可以通过分析机器人执行任务的视频,结合任务描述,判断机器人是否在朝着完成任务的方向前进。如果 VLMs 认为机器人无法在规定时间内完成任务,就会检测到任务进展故障

通过将这两种故障检测方式结合起来,Sentinel 能够更全面地检测生成式策略的故障,大大提高了故障检测的覆盖率和准确性。这就好比给机器人配备了两双不同的 “眼睛”,一双关注动作的稳定性,另一双关注任务的执行进度,全方位保障机器人的正常运行。

三、核心方法

整体PipeLine如下图所示:

image.png

1、STAC:捕捉策略的 “异常举动”

STAC 是 Sentinel 检测不稳定故障的核心手段,它的原理基于一个简单而有效的想法:当策略在正常情况下运行时,它的动作分布应该是相对稳定的。就像我们走路,如果一直走得很稳,突然开始东倒西歪,那就说明可能出问题了。STAC 就是通过监测策略动作分布的变化,来发现类似的 “异常举动”

在技术实现上,STAC 会计算相邻时间步动作分布之间的统计距离。由于生成式策略的动作具有多模态性,直接比较两个采样动作比较困难,所以 STAC 采用了一些近似方法。比如,使用最大平均差异(MMD)和基于核密度估计(KDE)的 KL 散度等统计距离函数。这些函数可以有效地衡量动作分布之间的差异,让 STAC 能够更准确地判断策略是否出现了不稳定行为。

为了计算统计距离,STAC 还会考虑动作序列的重叠部分。在策略执行过程中,不同时间步的动作序列会有部分重叠,STAC 通过分析这些重叠部分的动作分布,来评估策略的时间一致性。而且,STAC 不是只看某一个时间步的距离,而是计算累积的统计距离。

这样做有两个好处:

一是可以检测到那些在整个过程中一致性指标只是略微高于正常水平的情况,比如动作的轻微抖动;

二是能够发现策略在时间上不一致的频率比正常情况更高的情况。

image.png

在实际运行时,STAC 会根据一个预先设定的阈值来判断是否发出故障警告。这个阈值是通过验证数据集来校准的,以确保在正常情况下不会频繁发出错误警报。通过这种方式,STAC 能够快速检测出策略的不稳定行为,为机器人的安全运行提供及时的保障。

而且,它还采用类似于ACT这种Action Chunck的方式往前推进:

点击每日前沿技术分享——机器人执行时出问题怎么办?看看英伟达研究院和斯坦佛的Sentinel 框架查看全文