从Fast-UMI到Diff-Control:分别改进刷盘机器人UMI的硬件及其所用的扩散策略

前言

24年9.28日下午,微信上的好友丁研究员和我说

  1. hi 周总,我们基于umi改进了一下——弄了一个用户友好的采集系统(当然,现在这个版本还比较初级 后续不断迭代)
    项目网站为:https://fastumi.com/
    技术报告见:https://fastumi.com/fastumi_short.pdf
    作者团队为:Ziniu Wu, Tianyu Wang, Zhaxizhuoma, Chuyue Guan, Zhongjie Jia, Shuai Liang, Haoming Song, Delin Qu, Dong Wang, Zhigang Wang, Nieqing Cao,Yan Ding, Bin Zhao, Xuelong Li


    希望周总给些建议
    我当时(周六)和家人在李自健美术馆,故回复之:帅气,我晚上到家后看下
  2. 第二天上午找我确认,问:不知道周总 有没有什么建议
    我个人确实准备 这几天仔细研究下,毕竟我们之前也在基于umi、dexcap做二次开发,有很多契合点
    前者umi的详细介绍见:UMI——斯坦福刷盘机器人:从手持夹持器到动作预测Diffusion Policy(含代码解读)
    后者dexcap的详细介绍见:DexCap——斯坦福李飞飞团队泡茶机器人:更好数据收集系统的原理解析、源码剖析
  3. 他说,我很喜欢周总写的那些帖子,所以第一时间找周总问fastumi的意见
    我深知这种感觉,因为当我司做出一个大模型应用或机器人解决方案,哪怕只是一篇博客时,都渴望和同行做各种深入交流
    而且正如技术合伙人姚博士所说,“fastumi数据采集方式的改进强,因为我们当时也考虑过t265,但确实是人手不足”

丁研究员希望帮他们宣传下,我说我看下你们论文(当然,本质更多是相对初级的技术报告),可能会给你们论文 还做下解读,毕竟在博客里给你们技术报告 做解读,便是一个持久且足够高定位的宣传了(毕竟,本博客内的机器人系列已经吸引了来自国内各大知名高校、知名企业等同行们的持续关注)

于此,本文就来了:部分翻译、部分解读,且为了写好fastumi的解读,我又特地重温了一遍UMI的论文,且打印下来一字一句仔细抠了一遍(然后针对该UMI博客增补了不少内容)

且过程中还注意到了一个针对UMI所用扩散策略的改进——Diff-Control,故本文第二部分会再详细介绍Diff-Control: A Stateful Diffusion-based Policy for Imitation Learning

第一部分 UMI的不足与Fast-UMI的改进

1.1 现有数据收集系统及UMI的不足

1.1.1 机器人现有的数据收集系统

对于目前的机器人而言,现有的数据收集系统可以分为三类:

  1. 直接人类远程操作 [16,Viola: Imitation learning for vision-based manipulation with object proposal priors]
    直接人类远程操作涉及操作员控制直接人类遥控操作涉及操作员远程或现场控制机器人,以获取包括视觉输入、运动状态和动作指令在内的全面数据。尽管这种方法提供了高质量的数据,但其成本高且劳动强度大。即使使用像SpaceMouse1这样的六自由度控制器,收集细粒度操作的数据仍然具有挑战性,因为很难精确对准小目标物体
  2. 基于沉浸式技术的远程操作 [7 Digital twin-driven mixed reality framework for immersive teleoperation with haptic rendering, 12 Hubotverse: Toward internet of human and intelligent robotic things with a digital twin-based mixed reality framework]
  3. 基于视觉的数据收集 [2 Human-to-Robot Imitation in the Wild, 9 Learning hand-eye coordination for robotic grasping with deep learning and large-scale data collection]
    基于视觉的数据收集使用摄像头,如可穿戴设备,以捕捉交互数据而无需直接控制机器人。虽然这种方法收集了一些视觉信息,但它缺乏表示机器人手臂与其环境之间复杂交互的能力[8]。
  4. 界面中介操控 [3 Scaling data-driven robotics with reward sketching and batch reinforcement learning, 11 MimicPlay: Long-Horizon Imitation Learning by Watching Human Play, 13 Deep Imitation Learning for Complex Manipulation Tasks from Virtual Reality Teleoperation]
    界面中介操作系统,以通用操作界面UMI——Universal manipulation interface: In-thewild robot teaching without in-the-wild robots为例,使用手持夹具和专门的界面从人类演示中收集数据,特别是捕捉机器人手臂末端执行器的姿态
    然后再通过像Diffusion Policy [5,详见此文的第三部分 Diffusion Policy:基于CNN或Transformer]这样的算法随后从收集的数据中推断出机器人动作,从而降低成本并简化数据收集过程

1.1.2 UMI的不足之处:依赖特定的硬件且所用的SLAM2相对复杂

UMI系统解决了人类演示中的挑战UMI系统解决了人类示范数据收集中的挑战,并支持在各种场景中进行动作策略学习,但它仍然存在两个局限性:

  1. 与特定机器人硬件的强耦合性
  2. 系统中使用开源SLAM2带来的复杂性

具体而言

  • 首先,系统严格的硬件要求——如必须使用WeissWSG-50夹持器3——带来了限制
    用户必须采购这些特定组件才能直接实施UMI,增加了成本,并限制了那些拥有不同机器人配置的用户的采用
  • 将UMI适应其他硬件需要重新设计夹持器、重新校准摄像头、进行SLAM校准以及修改代码参数,这些都是劳动密集型任务,阻碍了即插即用功能
    此外,这些修改往往缺乏普遍性,复杂了在不同实验室和设备间的应用
  • 其次,虽然利用SLAM技术可以估计末端执行器的姿态,但使用像ORB-SLAM3这样的开源解决方案引入了额外的挑战

    SLAM性能高度依赖于手持设备的参数设置,部署和调试过程复杂且耗时。用户在配置过程中必须投入大量精力进行数据可视化和对齐
    且系统还需要全局坐标、涉及多次转换步骤的校准,降低了用户友好性
  • 此外,收集到的数据在训练中的可用性取决于SLAM算法的性能;无法获得准确的末端执行器坐标可能需要丢弃数据,从而降低收集效率

不同于依赖SLAM算法的UMI系统,Fast-UMI直接使用RealSense T265相机获取机器人的末端执行器姿态,消除了复杂的SLAM部署和校准需求,从而简化了数据处理,且该方法不需要重复的外部校准,简化了软件和硬件的集成

1.2 Fast-UMI的原型设计、数据收集、评估与验证

1.2.1 原型设计:含手持设备、机器人、视觉对齐、相机等设计

他们采用了解耦设计理念,即将手持设备上的相同指尖扩展件连接到机器人的夹爪上

  1. 这种设计保持了机器人系统与手持设备之间的一致性,使得通过手持设备收集的数据训练的模型可以直接应用于真实机器人
  2. 此外,开发了可插入的指尖扩展件,这些扩展件兼容五种主流夹爪型号,包括XArm夹爪和robotiq 2f-856,且这种方法也可以适用于其他类型的夹爪

    下图Fast-UMI原型设备的各个组成部分,蓝色代表需要购买的组件,而黄色表示需要3D打印的组件

具体而言,首先如下图左侧的子图所示

在手持设备的设计上,他们通过手持设备用于手动数据采集以训练动作策略。它包括:

  • 配备鱼眼扩展模块的GoPro相机:用于捕捉鱼眼图像以进行监控和数据收集
  • RealSense T265相机:获取末端执行器的六自由度姿态
    值得一提的是,斯坦福dexcap团队也用到了这个T265相机
    比如下图c中的4个相机中
    前两个:最顶部的L515 LiDAR相机,和三个T265相机中最上面的T265相机(红色)固定在相机支架上,这两个相机侧重记录3D观察和校准
    后两个:即两个较低的(即绿色、蓝色)T265相机设计为可拆卸的,并可以固定在手套的背部进行手部6自由度姿态跟踪

    当然,据友人丁研究员所说,他们在做这个fastumi工作时,尚不知道dexcap,而是准备研究灵巧手之后,才知道这个dexcap
    关于灵巧手,比较有名的之一,就是本博客中之前提到过的AnyTeleop「
    当然,还包括AnyTeleop 的论文中提到的Dexpilot,至于AnyTeleop的介绍详见此文《UC San Diego的三大机器人:AnyTeleop、Open-TeleVision、Bunny-VisionPro——从RGB相机到VR远程控制机器人》的第一部分
  • 手持夹持器:在其指尖处配备了两个标记,用于记录夹持器的宽度
    且他们特别注意将摄像头的视角与夹持器的指尖对齐,以确保与机器人安装设备的视觉一致性

在机器人安装设备的设计上,机器人安装设备旨在适应各种机器人手臂配置,如下图右侧所示

它主要包括:

  • GoPro-机器人支架(GoPro-Robot Mount ,即棕色延长板):作为GoPro相机的安装点
  • 可调节延长臂(Adjustable Extension Arm,即蓝色延长臂):允许进行横向和纵向调整,以对齐相机的视角
    通过调整延长臂,可以在不同平台上实现与手持设备的视觉一致性,而可插入的指尖延长件确保尽管抓取器的尺寸和形状有所不同,视觉视角仍然保持一致
    By adjusting the extension arm, we can achieve visual consis-tency with the handheld device across different platforms. The insertable fingertip extensions ensure that, despite variationsin gripper sizes and shapes, the visual perspective remainsconsistent

在视觉对齐与一致性上,他们为了确保手持设备和机器人安装设备之间的视觉一致性,建立了一条视觉对齐准则:GoPro 鱼眼镜头图像的底部与夹持器指尖的底部对齐

该准则增强了视觉一致性,并确保了两个设备上摄像头的正确定位。即使指尖延伸部分相同,夹持器尺寸的变化也会影响视觉对齐

他们可调节的机械设计能够补偿这些位移,使延伸臂可以根据需要进行调整,以保持一致的观察视角

下图显示了分别由手持设备和机器人安装设备上的 GoPro 摄像头捕获的视图

在相机的选择与安装上,选择GoPro相机是有意为之的。其鱼眼镜头能够捕捉广角图像,可能取代传统算法如ACT和DP中使用的第一人称和第三人称平面相机的组合,且他们初步观察表明,单个相机的鱼眼图像可以提供足够的时空信息,简化了硬件设置,不需要多个摄像头

且更重要的是,他们使用了专门设计的限制器安装了RealSense T265摄像头,以确保其始终垂直于GoPro摄像头。这一设计选择简化了安装过程,并保证了两个摄像头之间的精确对齐,从而在不需要复杂的SLAM算法的情况下实现准确的姿态估计

此外,与原始UMI系统不同,他们省略了夹持器侧面的镜子。UMI的实验表明,镜子对系统性能的提升有限。省略镜子可以在夹持器顶部保留宝贵的空间,以便集成额外的传感器,例如触觉传感器,从而增强未来系统扩展的潜力

且为了提高机器人安装设备的稳定性和耐用性,他们还进行了以下几项优化:

  1. 加固了GoPro机器人支架:增强了结构完整性以减少振动
  2. 使用碳纤维材料:在增加强度的同时减轻重量
  3. 标准化的Male-Female接口设计:允许顺序连接延长臂以调整长度而不会产生显著振动(已测试最多可连接三个延长臂),这些改进确保了数据传输过程中的可靠性能

最后

  • 他们的配置允许所有用户共享一个标准化的手持设备——通过统一的手持设备确保了数据收集的一致性
  • 安装在机器人上的设备可以调整以适应各种机器人手臂和夹持器模型——可调节的机器人安装设备则增强了系统的多功能性
  • 另,延长臂的长度可以通过标准化接口进行修改,其模块化设计便于轻松调整

1.2.2 数据收集流程(GoPro捕捉鱼眼图像、RealSense T265获取六自由度位姿数据)

数据收集主要包括从GoPro捕捉鱼眼图像,以及从RealSense T265获取六自由度位姿数据

与依赖复杂的基于SLAM的位姿估计的原始UMI系统不同,他们利用T265的内置跟踪功能直接获取末端执行器的位姿数据,简化了数据处理流程。所有数据通过有线连接传输,以确保稳定性和实时性能

  • GoPro相机:一台配置为超广角模式的GoProHero 9相机以1280×720的分辨率和60帧每秒(FPS)捕捉鱼眼图像,提供广泛的视野以全面覆盖场景。实时图像传输通过Elgato HD60 X采集卡进行。对于更高的分辨率,可以使用更先进的采集卡
  • RealSense T265:该设备捕捉手持夹具的六自由度姿态数据,他们将其转换为工具中心点(TCP)姿态,以表示人类演示的轨迹
    与UMI相比,他们的设计消除了重建TCP轨迹所需的复杂后处理SLAM流程——complex post-processing SLAM pipeline,显著简化了数据处理

对于数据同步和ROS节点,他们为了协调来自多个传感器的数据采集,使用机器人操作系统ROS[10]作为中间件「ROS提供了一个灵活的框架,用于开发机器人应用程序,能够实现各个节点之间的通信——这些节点是执行特定任务的独立进程,并确保来自多个来源的数据的精确同步

在他们的数据采集设置中,使用了以下ROS节点:

  1. GoPro节点:从GoPro摄像机捕捉鱼眼图像,并发布图像数据流以供后续处理
    这些图像提供了广阔的视野,对于捕捉全面的环境视觉信息至关重要
  2. T265 节点:与 RealSense T265 跟踪相机接口,以获取末端执行器的姿态和方向
    末端执行器的准确跟踪对于模仿学习任务至关重要,该节点实时发布姿态数据以监控和记录运动
  3. 夹爪宽度计算节点——Gripper Width Calculation Node:使用手持设备上的基准标记计算夹爪开口(Calculates the gripper aperture using fiducial markers on the handheld device)

由于精确同步这些数据流对于确保传感器读数的时间对齐至关重要。毕竟任何不一致会导致在模仿学习过程中对机器人的动作解释错误,从而对学习性能产生不利影响

故,他们为了实现时间同步,实现了一个专用的数据收集节点。该节点聚合来自GoPro、T265和夹爪宽度计算的实时数据,并使用统一的时间戳记录它们。通过存储这些同步的数据点,我们构
建了一个全面且准确的数据集,代表了机器人的动作和周围环境,这对于训练机器人学习模型以高保真度复制人类演示至关重要

最终,数据收集过程的步骤如下

  1. 步骤1:初始化传感器节点:启动GoPro节点、T265节点和夹爪宽度计算节点,以验证所有传感器的数据是否正确发布
  2. 步骤2:使用手持设备执行数据收集:在所有传感器节点正常运行的情况下,人工操作员使用手持设备执行所需任务
    且数据收集节点在操作员执行动作时实时记录所有传感器的同步数据
  3. 步骤3:执行数据转换:完成数据收集后,运行数据转换节点,将原始数据集转换为与特定模仿学习模型(如ACT或Diffusion Policy)兼容的格式

1.2.3 与UMI使用扩散策略不同,fastumi使用ACT推断动作策略

有意思的是,他们通过在收集的数据集上训练的ACT算法推断出的动作策略,没用UMI默认用的扩散策「毕竟如本文的1.2节所述:“UMI使用扩散策略进行动作预测,当然,也可以换成mobile aloha所用的ACT算法

具体如下图所示,前三张图像描绘了一名人类操作员使用fastumi的操作设备来收集演示数据,接下来的两张图片显示了机器人执行推断的动作策略,该策略是使用ACT算法在收集的数据上训练的

第二部分 Diff-Control:改进UMI所用的扩散策略

2.1 Diff-Control是什么及其提出的背景

2.1.1 背景

自从24年年初斯坦福等一系列机器人横空出世以来,模仿学习已经成为训练机器人的重要方法,其中,基于扩散的策略[4-Diffusion policy: Visuomotor policy learning via action diffusion]——因其有效建模多模态动作分布的能力而脱颖而出,从而提升了性能

然而,在实践中,动作表示的不一致性问题仍然是一个持续的挑战,这种不一致性可能导致机器人轨迹分布与底层环境之间的明显差异,从而限制控制策略的有效性[5-Robot learning from human demonstrations with inconsistent contexts.]

这种不一致性的主要原因通常源于

  • 人类演示的丰富上下文性质[6-What matters in learning from offline human demonstrations for robot manipulation]
  • 分布转移问题[7- A reductionof imitation learning and structured prediction to no-regret online learning]
  • 以及高动态环境的波动性
    其实本质上是无状态的,缺乏将记忆和先验知识纳入控制器的机制,从而导致动作生成的不一致性,即they are fundamentally stateless, lackingprovisions for incorporating memory and prior knowledgeinto the controller, potentially leading to inconsistent actiongeneration

先前的方法,如动作分块[8-Learning fine-grained bimanual manipulation with low-cost hardware,即ACT,其原理详见此文]和预测闭环动作序列[4-扩散策略],已被提出以解决这一问题。此外,Hydra[9]和基于航点的操作[10]修改动作表示以确保一致性。然而,这些方法通过改变动作表示来解决问题,而不是直接使用原始动作

相反,能否通过在扩散策略中加入时间转换来明确地施加时间一致性?在深度状态空间模型领域[11- Deep state space models for time series forecasting]–[13-How to train your differentiable filter],有效学习状态转换模型能够识别潜在的动态模式

2.1.2 什么是Diff-Control

对此,作者团队提出了Diff-Control,一种基于扩散的状态策略,它生成动作并同时学习动作转换模型。基于[14- Adding conditional control to text-to-image diffusion models]在图像生成中引入的ControlNet框架,利用它作为转换模型,为基础扩散策略提供时间调控

如下图所示,先前的动作序列(蓝色)在生成新的动作序列(红色)时用作条件

Diff-Control的关键目标是学习如何将状态信息融入扩散策略的决策过程中

下图展示了这种行为的一个示例:

  • 如上图中部所示,一个学习近似余弦函数的策略,在时间点t给定单一观测值时,无状态策略在生成轨迹的延续方面遇到困难。由于存在歧义,扩散策略[4]往往会学习到多种模式
  • 相比之下,如上图左侧所示,Diff-Control通过整合时间条件,使其能够在生成轨迹时考虑过去的状态
    为此,所提出的方法利用了最新的ControlNet架构,以确保机器人动作生成中的时间一致性
    在CV领域中,ControlNet用于稳定扩散模型,以在生成图像或视频序列时启用额外的控制输入或附加条件

Diff-Control团队将ControlNet的基本原理从图像生成扩展到动作生成,并将其用作状态空间模型,在该模型中,系统的内部状态、观测(摄像头输入)、和人类语言指令共同影响策略的输出Our method extends the basic principle of ControlNet from image generation to action generation, and use it as a state-space model in which the internal state of the system affects the output of the policy in conjunction with observations (camerainput) and human language instructions

如下图所示,是Diff-Control在“打开盖子”任务中的实际应用

  • 每个时间窗口内(如红色所示),Diff-Control 生成动作序列
    Within each time window (depicted in red), Diff-Control generates action sequences
  • 在生成后续动作序列时,它利用先前的动作作为额外的控制输入,如蓝色所示
    When generat-ing subsequent action sequences, it utilizes previous actionsas an additional control input, shown in blue.

    这种时间过渡是通过贝叶斯公式实现的,有效地弥合了独立策略与状态空间建模之间的差距
    This temporaltransition is achieved through Bayesian formulation, effec-tively bridging the gap between standalone policies and statespace modeling

2.2 Diff-Control的技术架构

2.2.1 从扩散模型到递归贝叶斯公式

回顾一下扩散模型的背景知识

扩散模型通过迭代的将高斯噪声映射到目标分布,且可以选择性的基于上下文信息进行条件生成

  1. 比如给定初始点\mathbf{a}_{T} \sim \mathcal{N}(\mathbf{0}, \mathbf{I}),扩散模型预测输出序列为\mathbf{a}_{T-1}, \mathbf{a}_{T-2}, \cdots, \mathbf{a}_{0},其中每个后续输出都是前一个输出的去噪版本(说白了,整个过程就是去噪的过程),故\mathbf{a}_{0}就是扩散过程的输出
  2. 然后使用去噪扩散概率模型(DDPM)作为骨干网络。在训练过程中,噪声输入可以通过不同的噪声水平生成:\mathbf{a}_{\tau}=\sqrt{\bar{\alpha}_{\tau}} \mathbf{a}+\sqrt{1-\bar{\alpha}_{\tau}} \mathbf{Z},其中\bar{\alpha}_{\tau}是方差调度,\mathbf{z}是随机噪声,\mathbf{z} \sim \mathcal{N}(\mathbf{0}, \mathbf{I})
  3. 接下来,可以训练一个神经网络\epsilon(\cdot)来预测添加到输入中的噪声,通过最小化以下公式
    \mathcal{L}_{\mathrm{DDPM}}:=\mathbb{E}_{\mathbf{o}, \mathbf{a}, \tau, \mathbf{z}}\left[\|\epsilon(\mathbf{o}, \mathbf{a}, \tau)-\mathbf{z}\|_{2}^{2}\right]
    其中,(\mathbf{o}, \mathbf{a})表示观察和动作对,\tau是去噪时间步,\tau \in[1, T]

    在采样步骤中,迭代运行去噪过程
    \mathbf{a}_{\tau-1}=\frac{1}{\sqrt{\alpha_{\tau}}}\left(\mathbf{a}_{\tau}-\frac{1-\alpha_{\tau}}{\sqrt{1-\bar{\alpha}_{\tau}}} \epsilon\left(\mathbf{o}, \mathbf{a}_{\tau}, \tau\right)\right)+\sigma_{\tau} \mathbf{z}
    整个过程相当于不断减掉每一步添加的噪声

接下来,目标是学习一个以条件\mathbf{c}和观察\mathbf{o}为输入的策略

在这个背景下,定义\mathbf{a}为包含机器人末端执行器姿态的轨迹。与之前的方法[4],[32]一致,现在的目标也是将多个条件作为输入。然而,正如在上文所提到的,尽管之前的工作[4], [8], [9]已经努力探索稳健的动作生成,但它们并没有考虑到a的状态性

故下面通过在动作空间中引入转移,从贝叶斯的角度解决动作一致性问题(We address the action consistency from a Bayesian perspective by introducing transition in action spaces)

  1. 首先,有如下方程
    \begin{array}{l} p\left(\mathbf{a}_{t} \mid \mathbf{a}_{1: t-1}, \mathbf{o}_{1: t}, \mathbf{c}\right) \\ \quad \propto p\left(\mathbf{o}_{t} \mid \mathbf{a}_{t}, \mathbf{c}\right) p\left(\mathbf{a}_{t} \mid \mathbf{a}_{1: t-1}, \mathbf{o}_{1: t-1}, \mathbf{c}\right) \end{array}
  2. \operatorname{bel}\left(\mathbf{a}_{t}\right)=p\left(\mathbf{a}_{t} \mid \mathbf{a}_{1: t-1}, \mathbf{o}, \mathbf{c}\right),应用马尔可夫性质,即假设下一个生成的轨迹仅依赖于当前的轨迹,得到

\operatorname{bel}\left(\mathbf{a}_{t}\right)=\eta \underbrace{p\left(\mathbf{o}_{t} \mid \mathbf{a}_{t}, \mathbf{c}\right)}_{\text {observation model }} \prod_{t=1}^{t} \overbrace{p\left(\mathbf{a}_{t} \mid \mathbf{a}_{t-1}, \mathbf{c}\right)}^{\text {transition model }} \operatorname{bel}\left(\mathbf{a}_{t-1}\right)

其中,\eta是归一化因子,p\left(\mathbf{o}_{t} \mid \mathbf{a}_{t}, \mathbf{c}\right)是观测模型,p\left(\mathbf{a}_{t} \mid \mathbf{a}_{t-1}, \mathbf{c}\right)是转移模型,这个转移模型描述了系统动力学演化的规律,而观测模型则确定了系统内部状态与观测到的噪声测量值之间的关系

相当于如之前所说的:系统的内部状态、观测(摄像头输入)、和人类语言指令——相当于条件,共同影响策略的输出

2.2.2 Diff-Control Policy:结合贝叶斯公式与扩散模型

接下来,展示如何将贝叶斯公式和扩散模型结合在一起,使得一个策略可以生成有状态的动作序列,从而促进一致的机器人行为

我们提出了如下图所示的Diff-Control策略\pi_{\boldsymbol{\theta}}\left(\mathbf{a}_{\left[W_{t}\right]} \mid \mathbf{o}, \mathbf{a}_{\left[W_{t-h}\right]}, \mathbf{c}\right),其参数为\theta

其中,h代表执行时间范围,\mathbf{c}表示以自然人类指令形式出现的语言条件,\mathbf{o}表示由场景的RGB相机捕获的一系列图像

策略\pi_{\boldsymbol{\theta}}生成一个轨迹窗口\mathbf{a}_{\left[W_{t}\right]}=\left[\mathbf{a}_{1}, \mathbf{a}_{2}, \cdots \mathbf{a}_{W}\right]^{T} \in \mathbb{R}^{7 \times W},其中W指的是窗口大小或预测时间范围

贝叶斯公式中的Diff-Control策略包含两个关键模块

  1. 转换模块接收先前的动作\mathbf{a}_{\left[W_{t}\right]}并生成潜在的嵌入,以供基础策略后续使用
  2. 作为观测模型,基础策略结合了与\mathbf{a}_{\left[W_{t}\right]}相关的时间信息,并生成一个新的动作\mathbf{a}_{\left[W_{t+h}\right]}

这种双模块结构使得Diff-Control策略能够巧妙地捕捉时间动态,并有助于准确且一致地生成后续动作

2.2.3 基础策略与转换模型

对于基础策略

  1. 首先,按照第2.2.1节中的步骤训练一个基于扩散的策略[4]作为基础策略\bar{\pi}_{\boldsymbol{\psi}}\left(\mathbf{a}_{\left[W_{t}\right]} \mid \mathbf{o}, \mathbf{c}\right)
  2. 然后采用[15]中的一维时间卷积网络,并构建U-net骨干网络
  3. 策略\bar{\pi}_{\boldsymbol{\psi}}可以自主执行并生成动作,而无需依赖任何时间信息

对于转换模型

所提出的框架将ControlNet纳入为转换模块,如下图所示(Diff-Control Policy通过使用锁定的 U-net 扩散策略架构来实现。该策略复制了编码器和中间模块,并引入了零卷积层,即The Diff-Control Policy is implemented through the utilization ofa locked U-net diffusion policy architecture. It replicates the encoder and middle blocks and incorporates zero convolution layers)

这种利用有效地扩展了策略网络的能力,使其包含时间条件(This utilization extends the capability of the policy networkto include temporal conditioning effectively)

  1. 为实现这一目标,利用先前生成的动作序列\mathbf{a}_{\left[W_{t-h}\right]}作为ControlNet的提示输入
    To achieve this,we utilize the previously generated action sequences as the prompt input to ControlNet.
  2. 通过这样做,基础策略\bar{\pi}_{\boldsymbol{\psi}}可以了解先前的动作\mathbf{a}_{\left[W_{t-h}\right]},且通过创建一个可训练的\bar{\pi}_{\boldsymbol{\psi}}编码器副本来实现ControlNet,然后冻结基础策略\bar{\pi}_{\boldsymbol{\psi}}
    By doing so, the base policy¯πψψψ becomes informed about the previous actions a[Wt−h].We implement ControlNet by creating a trainable replica of the ¯πψψψ encoders and then freeze the base policy ¯πψψψ.

    可训练的副本通过零卷积层[33]连接到固定模型
    The trainable replica is connected to the fixed model with zero convolutional layers [33]
  3. 最终,ControlNet可以将\mathbf{a}_{\left[W_{t-h}\right]}作为条件向量,并重用训练好的基础策略\bar{\pi}_{\boldsymbol{\psi}}来构建下一个动作序列\mathbf{a}_{\left[W_{t}\right]}
    ControlNet can then take a[Wt−h] as the conditioning vector and reuses the trained base policy¯πψψψ to construct the next action sequence a[Wt]

2.2.4 策略的训练与相关模型的选择

在策略的训练上,其中

  • 对于基础策略\bar{\pi}_{\boldsymbol{\psi}}\left(\mathbf{a}_{\left[W_{t}\right]} \mid \mathbf{o}, \mathbf{c}\right)的训练
    首先将观察\mathbf{o}和语言条件\mathbf{c}编码到相同的嵌入维度
    然后我们利用方程\mathcal{L}_{\mathrm{DDPM}}:=\mathbb{E}_{\mathbf{o}, \mathbf{a}, \tau, \mathbf{z}}\left[\|\epsilon(\mathbf{o}, \mathbf{a}, \tau)-\mathbf{z}\|_{2}^{2}\right]中定义的学习目标来训练基础策略
  • 在微调ControlNet时也使用相同的学习目标:\mathcal{L}:=\mathbb{E}_{\mathbf{o}, \mathbf{c}, \mathbf{a}, \mathbf{a}_{\left[W_{t}\right]}, \tau, z}\left[\left\|\epsilon_{\theta}\left(\mathbf{o}, \mathbf{c}, \mathbf{a}_{T}, \mathbf{a}_{\left[W_{t}\right]}, \tau\right)-\mathbf{z}\right\|_{2}^{2}\right]
    整个扩散模型的总体学习目标是\mathcal{L}\epsilon_{\boldsymbol{\theta}}(\cdot)是对应的由\boldsymbol{\theta}参数化的神经网络,且基础策略和Diff-Control策略都是端到端训练的

在模型的选择上,他们采用了基于CNN的U-net架构。这种基于CNN的骨干网络选择已被证明适用于多种任务,无论是在模拟环境还是现实场景中

在整个的模型架构中,如之前的下图所示

编码器和解码器块使用了具有不同核大小的1D卷积层

  1. 为了实现ControlNet的零卷积层,采用了权重初始化为零的1D1×1卷积层
    这种方法确保在训练的初始阶段,任何潜在的有害噪声不会影响可训练神经网络层的隐藏状态[14]
  2. 且在所有实验中使用窗口大小W=24作为默认预测范围,执行范围h在\mathbf{a}_{\left[W_{t-h}\right]}\mathbf{a}_{\left[W_{t}\right]}之间为12步,故在实验中默认只执行12步(h=12),以与[4-Diffusion policy: Visuomotor policy learning via action diffusion]保持一致
    因为根据[4],执行范围过大或过小都可能导致性能下降

此外,在实施语言条件任务时,他们还观察到基于扩散的策略在利用复杂的CLIP语言特征作为条件学习多样化动作时达到了某种能力上限

为了解决这个问题,更实用的方法是引入融合层并增加视觉和语言表示的嵌入大小,而不是直接将它们拼接在一起「To address this,a more practical approach is to incorporate a fuse layerand increasing embedding size for visual and language representations, instead of concatenating them directly」,这一修改可以提升策略在语言条件任务中的整体表现

2.3 实验与评估:围绕5个任务与4种基线方法PK

2.3.1 对五个任务的一般性建模

通过将Diff-Control策略与四种基线方法在五个不同的机器人任务上进行比较,包含的任务包括:(a)语言条件下的厨房任务,(b)厨房场景中的开盖任务,作为高精度任务,(c)动态场景中的捞鸭任务,(d)作为周期性任务的打鼓任务

  • UR5机器人手臂的动作表示为\mathbf{a}\left[W_{t}\right],其中每个动作表示为\mathbf{a}_{i}=[x, y, z, \alpha, \beta, \gamma]^{T}i \in[1, W]其中,包括末端执行器在笛卡尔坐标系中的位置(x, y, z)、方向(\alpha, \beta, \gamma)和夹爪的关节角度\text { g }
  • 且对于所有任务,输入模态包括两种模态:\text { o }\mathbf{c}
    第一种模态,\mathbf{o} \in \mathbb{R}^{224 \times 224 \times 3},对应于RGB图像
    第二种模态,\mathbf{c},指的是从自然语言序列中提取的语言嵌入。这个嵌入作为机器人理解和决策过程的语言输入

下表 按主观难度升序排列任务,提供了任务特征的摘要,如干扰物数量(Dis)、专家演示数量(Dem)、不同动作数量(Act)以及是否需要高精度(HiPrec)

以下是具体的五个任务

  1. 语言条件厨房任务:该任务旨在模拟厨房场景中的多个任务 [35], [36]
    机器人工作区由一个缩小的现实模型厨房组成,如下图所示

    厨房环境包含各种物体,包括锅、平底锅、碗和类似毛绒蔬菜的干扰物。在数据收集过程中,干扰物会被随机放置。训练有素的专家负责远程操作机器人在厨房环境中执行两个特定动作。这些动作包括取回一个西红柿,并根据给定的语言指令将其放置在炉灶上的锅中(A)或水槽中(B)
  2. 高精度开盖:任务包括抬起盖子并随后将其放置在附近的碗上,这需要精确的控制,如下图所示,盖子的把手相对较小,且盖子的表面是反光的

    为了收集此任务的数据,他们获得了50次专家示范。每次示范中,引入了5个或更多干扰物体的随机放置,以及锅的位置和盖子的旋转的轻微变化
  3. 鸭子舀取:受[37]的启发,他们为机器人配备了一个勺子,机器人的目标是将鸭子从水中舀出来,如下图右下角所示,这一任务由于勺子进入水中引起的扰动而具有挑战性

    水流影响橡皮鸭的位置,要求机器人执行精确而谨慎的动作,以成功捕捉鸭子
  4. 鼓点:该任务专门为机器人学习周期性动作而设计,由于需要独特的动作表示,这是一项具有挑战性的任务[38],如下图所示

    该任务的难点在于机器人必须准确地计数鼓点的次数并确定何时停止敲鼓。通过远程操作机器人在每次示范中敲击鼓三次,共获得了150次专家示范

2.3.2 与4种基线在性能上的PK

为了评估diff-control的泛化能力、整体性能及其优势,他们提出的基线如下:

  1. Image-BC:这个基线采用图像到动作的代理框架,类似于BC-Z[2],它基于ResNet-18骨干网络,并使用FiLM [39]通过CLIP语言特征进行条件处理
  2. ModAttn[32]:该方法采用transformer风格的神经网络,并使用模块化结构通过神经注意力来处理任务的各个子方面,它需要人类专家正确识别每个任务的组件和子任务
  3. BC-Z LSTM:这个基线代表了一种受BC-Z架构启发的有状态策略。通过使用MLP和LSTM层将先前的动作和语言条件融合,实现了先前输入的整合
  4. 扩散策略[4]:这个基线是一个标准的扩散策略

所有基线模型均使用相同的专家演示数据进行再现和训练,总共训练3,000个周期。在整个训练过程中,每300个周期保存一次检查点。在他们的分析中,他们报告了这些保存的检查点中每种基线方法所获得的最佳结果。每个实验均在单个NVIDIA Quadro RTX 8000 GPU上以64的批量大小进行,持续约24小时。对于所有任务,使用Adamw优化器,学习率为1e-4

具体PK结果详见原论文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

v_JULY_v

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值