24年8月来自伯克利分校和CMU的论文“Scaling Cross-Embodied Learning: One Policy for Manipulation, Navigation, Locomotion and Aviation”。
现代机器学习系统依赖大型数据集来实现广泛的泛化,而这通常会给机器人学习带来挑战,因为每个机器人平台和任务可能只有一个小数据集。通过在许多不同类型的机器人上训练单一策略,机器人学习方法可以利用更广泛、更多样化的数据集,从而实现更好的泛化和鲁棒性。然而,在多机器人数据上训练单一策略具有挑战性,因为机器人可能具有差异很大的传感器、执行器和控制频率。CrossFormer,是一种可扩展且灵活的基于Transformer策略,可以使用来自任何具身的数据。本文在一个迄今为止最大、最多样化的数据集上训练 CrossFormer,该数据集涵盖了 20 种不同机器人具身的 900K 条轨迹。其相同的网络权重可以控制截然不同的机器人,包括单臂和双臂操纵系统、轮式机器人、四轴飞行器和四足机器人。与之前的工作不同,该模型不需要手动调整观察或动作空间。现实世界中的大量实验表明,其方法与针对每个具身量身定制的专家策略性能相匹配,同时在跨具身学习中也明显优于先前的现有技术水平。
网址:https://crossformer-model.github.io
如图所示:CrossFormer 是一种基于 Transformer 的策略,该策略在 900K 条多样化、多具身机器人数据轨迹上进行训练,可以控制截然不同的机器人,包括单臂和双臂操作系统、轮式机器人、四轴飞行器和四足机器人,同时匹配针对每个具身的专家策略性能,并在跨具身学习方面性能突出。
机器学习领域近期取得的大部分成功,都是由在日益多样化和多任务的数据上训练通用模型所推动的。例如,视觉和语言任务曾经由特定于任务的方法处理,现在由能够跨任务迁移知识的通用视觉-语言模型更有效地执行 [1、2、3、4]。同样,在机器人技术领域,最近的数据聚合工作 [5] 使得在跨多个具身、任务和环境收集的机器人数据上训练通用策略成为可能。这些通用策略通过迁移视觉表征和技能,可以胜过仅使用目标机器人和任务数据训练的狭义策略 [6、5]。除了正迁移的好处之外,训练通用的跨具身策略,还可以最大限度地减少设计和调整每个机器人的策略架构所需的工程量。
然而,训练通用机器人策略具有独特的挑战性,因为机器人系统的摄像头视图、本体感受输入、关节配置、动作输出和控制频率可能有很大差异。最初,在训练大规模跨具身策略方面所做的努力,通常仅限于单个机械臂或地面导航机器人,它们可以通过单个摄像头视图和基座或末端执行器相对的航点动作来控制 [5、6、7、8]。进一步增加这些策略可以控制的具身多样性,需要一个模型架构,去支持以任意数量的摄像头视图或本体感受观察为条件,以及预测任意维度的动作。
跨具身机器人策略学习的早期研究探索了许多技术,包括以具身的显式或学习的表示为条件 [11, 12]、域随机化和自适应 [13, 14, 15, 16, 17, 18]、模块化策略 [19, 20, 21, 22] 或基于模型的 RL [23, 24, 25]。一般来说,这些先前的项目规模较小,仅在模拟中评估或训练少量机器人数据的策略,控制少数机器人执行少数任务。
许多先前的研究,试图使用来自单个机器人具身的大量数据来扩大机器人学习,这些数据要么是自主收集的 [26, 27, 28, 29, 30, 31],要么是人类远程操作收集的 [32, 33, 34, 35, 36, 37, 38, 39]。其他先前的研究使用来自多个机器人的数据进行训练,但要求每个机器人具有相同的观察和动作空间 [7、40、5、41、42、43、44]。例如,Shah [42] 使用自我中心相机视图和 2D 航点动作在许多导航机器人上训练一个策略,而 RT-X 模型 [5] 使用第三人称相机视图和 7-DoF 末端执行器位置动作在单个机械臂上进行训练。
已经有一些大规模的努力来在具有不同观察和动作空间的机器人数据上训练单一策略 [10、9、6、8]。 Octo [6] 可以在机器人上进行微调,其观察和动作与预训练期间看到的不同。然而,Octo 只对来自单个机械臂的数据进行预训练,并没有探索对更异构数据的协同训练。Reed [9] 和 Bousmalis [10] 提出一种灵活的基于 Transformer 策略,可以在预训练期间处理不同的观察和动作空间。他们证明他们的策略可以控制具有不同动作空间的机械臂,包括 4-DoF、6-DoF、7-DoF 和 14-DoF(使用一个 3 指手)。Yang [8] 研究了跨操作和导航数据的迁移。然而,他们的重点是利用导航中的自我中心运动与操作中手腕摄像机自我中心运动相似这一事实,并且他们在这两个具身之间执行手动对齐动作。
训练通用的跨具身策略需要多机器人数据集,并且已经进行了一些努力来收集此类大规模跨具身数据集 [45、41、42、5、46]。具体来说,开放跨具身数据集 (OXE) [5] 汇总了 150 万次机器人数据,在 90 万条轨迹的子集上进行训练。 Octo [6] 和 RT-X [5] 模型也在 OXE 数据集上进行训练,但它们仅使用单个机械臂的子集。
根据前期工作,本文采用顺序建模方法进行跨具身模仿学习 [9、10]。CrossFormer是一种基于 Transformer 的策略,通过将输入和输出转换为序列来支持可变的观察和动作。进一步扩展这种方法,用单一策略控制迄今为止最多样化的具身集,包括单手和双手机械臂、地面导航机器人、四轴飞行器和四足机器人。
具有多种具身的机器人学习,主要挑战在于处理变化广泛的观察和动作空间,以及控制频率和机器人系统其他方面的差异。机器人系统可以具有不同数量的摄像机视图或本体感受传感器,并且它们可能由各种不同的动作表示控制,包括关节角度、笛卡尔位置和电机扭矩。为了将数据标准化为通用格式,一些关于训练跨具身策略的先前工作忽略了某些观察类型(例如操纵中手腕上或第三人称的视图)[5, 7] 或跨机器人对齐的动作空间 [8]。相反,遵循其他先前的工作 [9, 10, 6],跨具身模仿学习视为序列-到-序列问题,并选择基于Transformer的策略架构,该架构可以处理不同长度的序列输入和输出。
由于它们的顺序性,Transformer策略能够通过将每个具身的所有可用观察类型序列化为一个扁平序列来对其进行编码。类似地,可以解码可变长度的动作,这样能够针对每个具身使用最佳动作类型。使用这种灵活的输出,还可以预测大小各异的动作块。动作分块 [48、47、49] 可提高动作的时间一致性并减少复合误差,这对于高频精细操作尤为重要。Transformer 主干和动作分块相结合,使策略能够控制各种机器人,包括一个具有 20Hz 关节位置控制的双手 ALOHA 系统,和具有 5Hz 二维航点控制的地面和空中导航机器人。
从高层次来看,该Transformer策略遵循先前在多模态数据上训练Transformer的工作 [9、10、6]。观察结果和任务规范由特定模态的token化器进行token化,组装成一个token序列,并输入到因果的、仅解码器Transformer 主干中,该主干在所有具身之间共享。然后,将输出嵌入输入到每个具身类的单独动作头中,以产生相应维度的动作。如图所示CrossFormer策略架构:该架构通过 transformer 主干实现跨具身策略学习。该策略通过token化图像和本体感受信息来接受可变观察输入,使用动作读出的token预测可变动作输出,并根据语言指令或目标图像进行调节。
训练数据
训练数据组合涵盖 20 种不同的机器人具身,在观察空间、动作空间和控制频率方面差异很大。从 Octo [6] 使用的 Open Cross-Embodiment 数据集单臂操作子集开始。然后,添加 DROID Franka 操作数据集 [35]、跨两个机构收集的 7K 条 ALOHA 数据轨迹(称为 ALOHA-multi-task)、来自 GNM 数据集 [41] 的 60 小时导航、来自 Go1 四足机器人的 25 分钟步行数据(称为 Go1-walk)以及在其实验室中收集的 200 条额外 Franka 数据轨迹(称为 Franka-tabletop)。将与每种评估设置最相关的数据集归类为目标数据集,并在训练期间相对于其他数据集增加它们的权重。目标数据集包括用于 WidowX 评估的 BridgeData [36]、用于 ALOHA 评估的 ALOHA-multi-task、用于导航评估的 GNM [41]、用于四足机器人评估的 Go1-walk 和用于 Franka 评估的 Franka-tabletop。在模拟中推出使用 RL 训练的专家策略来收集 Go1 数据 [50]。
变量观察类和任务规范的token化
训练跨具身策略的第一步是创建输入序列。机器人训练数据中的轨迹是时间步序列,其中每个时间步包含图像观察 I、本体感受观察 P 和一个动作。每个具身的数据可能在每个时间步中具有不同数量的摄像机视图,并且可能包含或不包含本体感受观察。为了创建输入序列,首先定义观察历史长度 k,并将每个轨迹分成 k 为长度的段,[It, Pt,…, It+k, Pt+k]。然后,根据其模态对每个观察进行token化。
使用 ResNet-26 编码器 [51] 处理图像,生成沿空间维度展平并投影到token嵌入大小的特征图。本体感受观察只是投影到token嵌入大小。除了观察序列之外,该策略还接受任务规范。对于跨具身控制而言,重要的是,该策略接受以语言指令 l 或目标图像 g 形式指定的任务。在某些设置(例如导航)中,任务更自然地指定为图像目标,而在其他设置(例如操作)中,任务更容易用语言指定。使用 FiLM [52] 将语言指令与图像观察联合处理。目标图像沿通道维度堆叠在当前图像上,然后输入到图像编码器中。
由于训练数据包含来自单臂操纵器、双臂操纵器、四足机器人和地面导航机器人的数据,因此该策略支持对以下观察类型的任何子集进行条件调节:(1)工作区图像:操作设置中的第三人称摄像机视图。(2)导航图像:导航设置中的自我中心摄像机视图。(3)手腕图像:操作设置中腕戴式摄像机的视图。(4)四足机器人本体感觉:四足机器人的关节位置和速度估计。 (5) 双手本体感受:双手操作设置的关节位置。
为了最大限度地实现跨具身的迁移,为相同类型的相机视图共享图像编码器权重。因此,例如,单臂和双手操作设置中的工作空间图像由相同的 ResNet 图像编码器处理。总共使用四个图像编码器:一个用于操作设置中的工作空间视图,一个用于地面导航机器人的自我中心视图,两个用于操作设置中的腕部摄像机。输入token化后,得到一系列观察tokens [I^(1:L)/t, P^(1:M)/t …, I^(1:L)/t+k, P ^(1:M)/t+k],其中 L 和 M 表示图像和本体感受观察的token数。
预测可变长度的动作
创建输入序列后,下一步是使用Transformer处理输入序列,预测每个具身适当维度的动作。用带有分块因果注意掩码的Transformer,使得观察token身只能关注相同或之前时间步 t 的观察tokens。根据先前的工作 [6],输入token序列中每个时间步的观察token化后插入特殊读出token R。这些读出token只能关注先前的观察 tokens,因此可作为预测动作的方便表示。最终输入序列为 [I^(1:L)/t, P^(1:M)/t, R^(1:N)/t…, I^(1:L)/t+k, P^(1:M)/t+k, R^(1:N)/t+k],其中 N 表示读出token的数量。
将输入token序列传递给Transformer以获得嵌入序列。然后,将动作头应用于对应于读出token的嵌入,产生动作。动作头有几种可能性。过去的工作探索了使用 L1 或 L2 损失的回归、使用交叉熵损失的分类或扩散。本文选择预测连续动作并采用 L1 损失,因为它在先前的高频双手操作工作中取得了成功 [47]。因此,动作头只是将读出token嵌入投射到动作维度。对于某些具身,我们预测一组连续动作。动作分块已被证明可以在先前的工作 [47, 49] 中提高策略性能,并且对于控制频率高的实施例来说是必不可少的,因为复合误差会积累得太快。由于我们的动作头将读出标记投射到动作维度,因此将读出token的数量与每个具身的动作块大小相匹配。该策略有 4 个动作头,可产生以下类型的分块动作:(1)单臂笛卡尔位置:一个 7 维动作,表示末端执行器笛卡尔位置的相对变化以及夹持器驱动。预测一组 4 个动作,并以 5-15Hz 的频率在单个机械臂上执行 [6]。(2)导航路点:一个 2 维动作,表示相对于机器人当前位置的路点。预测一组 4 个动作,并以 4Hz 的频率在导航机器人上执行 [42]。(3)双手关节位置:一个 14-维动作,表示双臂的关节位置。预测一组 100 个动作,并以 20Hz 的频率在双手机械臂上执行 [47]。(4)四足机器人关节位置:一个 12-维动作,未经分块预测,表示腿部的关节位置。仅预测 1 个动作,并以 20Hz 的频率在四足机器人上执行 [50]。动作块大小取自每个机器人设置中的先前工作。
训练细节
在实践中,屏蔽具身中缺失的观察结果,以便每个批处理元素包含所有观察类型和所有读出token组,并且这些token组在上下文窗口内占据固定位置。或者,为了提高内存效率,观察和读出token可以密集打包以删除填充,并为观察类型较少的具身拟合更多时间步长的上下文。这是先前工作 [9] 使用的策略。但是,通过不将观察和读出token类固定到上下文窗口中的一个设定位置,模型将需要纯粹从观察中推断具身,以便预测正确类型的动作(而不是依赖于读出token的位置嵌入)。一些具身的观察结果可能看起来相似(例如仅使用腕式摄像头进行导航和操作),因此这种设计可能需要在token序列后附加一个前缀来指示具身。
Transformer 主干有 12 层、8 个注意头、MLP 维度为 2048,以及 512 的token嵌入大小。总的来说,连同 ResNet-26 图像编码器和动作头,该模型有 1.3 亿个参数。用 ImageNet 预训练权重初始化 ResNet-26 编码器。用一个 2135 个tokens的上下文窗口大小,它用所有观察和读出token组匹配 5 个时间步长的上下文。良好的导航性能需要 5 个时间步长的观察历史,并且使用此上下文长度不会损害其他具身的性能。训练 300K 梯度步,批次大小为 512,在 TPU V5e-256 pod 上花费 47 个小时。用 AdamW 优化器 [53]、平方根倒数的衰减学习率调度 [54]、权重衰减为 0.1,梯度剪裁为 1.0。应用标准图像增强。在训练期间,用事后目标重标记,并随机均匀地抽取未来观察值作为目标 [55]。如果轨迹有语言指令,会随机屏蔽语言或目标,以便在测试时可以使用任一任务规范来调节策略 [56]。
如图所示评估设置:任务包括单臂操作设置、灵巧和双手任务设置、导航和飞行。
针对多种任务和实施方案的评估:(1)WidowX 操作:用 Walke 的 Bridge 设置 [36]。用过肩摄像机视图并从策略的单臂头采样动作。在两个语言条件任务和两个目标条件任务中对每个策略执行 48 次试验。(2)Franka 操作:用 Khazatsky 的 DROID 设置 [35]。用过肩摄像机视图并从策略的单臂头采样动作。在两个语言条件任务中对每个策略执行 39 次试验。(3)ALOHA 双手操作:用 Zhao 的 ALOHA 设置 [47]。用 3 个摄像机视图,一个过顶和两个手腕,并从策略的双手头采样动作。在两个语言条件任务中对每个策略执行 20 次试验。 (4) LoCoBot 导航:用 Shah 的 LoCoBot 设置 [42],它有一个摄像头视图。评估三项技能:路径跟踪、避障和急转弯。收集与 Shah [42] 类似的目标拓扑图,并根据到目标图像拓扑图中最近节点的距离来评估成功率。从策略的导航头采样动作。在 6 个位置进行评估,每个位置和策略使用一次试验,就像之前的工作一样 [41, 42]。 (5) Go1 四足机器人:在 Unitree Go1 上进行评估,它使用本体感受观察 ot。从策略的四足机器人头采样动作。作为评估指标,报告 25 分钟内获得的平均奖励,该奖励由生成数据的 RL 训练专家策略获得的奖励归一化。 (6)Tello 四轴飞行器:最后,用策略中的导航头对 Tello 四轴飞行器进行实验。由于导航头输出二维相对航点,因此在整个轨迹中保持静态高度 [42, 41]。值得注意的是,不使用四轴飞行器数据进行训练,因此此设置需要对新具身进行零样本泛化(但不是一组新的观察输入和动作输出)。在 3 个位置进行评估,每个位置和策略使用一次试验,就像之前的工作一样 [41, 42]。