【VA 系列】ALOHA(ACT):万字详解低成本双机械臂与模仿学习 ![【VA 系列】ALOHA(ACT):万字详解低成本双机械臂与模仿学习](https://picx.zhimg.com/v2-5179aa9137b9580cf8d5d9d7850b6dfb_720w.jpg?source=172ae18b) # 【VA 系列】ALOHA(ACT):万字详解低成本双机械臂与模仿学习 今天学习下从业人员都绕不开的 ALOHA 的这个文章,机器人行业需要这样低成本的机械臂。该文章分为硬件 ALOHA 部分,和算法 ACT 部分。算是 23 年的古早时代的论文了(深感这行业还是需要软硬件都学习的) 至于为什么说叫VA(Vision-Action)系列,狭义上更准也可以叫VP( Visuomotor Policy )。VP更强调机器人的运动控制policy,而VA我认为是更广义的概念,因此归类为VA 论文:Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware paper1(2023):  paper2(2024): 项目网站: 文章首发于具身智能之心: 保姆级分享!ALOHA:低成本双臂机器人结合模仿学习经典工作 ## 什么是 ALOHA? ![](https://pic4.zhimg.com/v2-eda27880f8c0523ee382b1c76fadd055_1440w.jpg) A L ow-cost O pen-source Ha rdware System for Bimanual Teleoperation. 一种低成本开源的双臂遥控操作系统 成本小于 20k 美刀 支持两种模式: 1. 遥控操作(主机械臂和从机械臂控制) 2. 学习端到端的 vision policy 自主操作 ## motivation 1.机器人需要精确的操纵任务,执行这些任务通常需要高端机器人,高精传感器和高精度标定,昂贵又难用。那么是否存在一种 learning 的方法,使低成本和不精确的硬件能够执行这些精细的操纵任务? 解决办法: 提出了一个低成本的系统,该系统直接从自定义的远程操作接口收集的真实演示(demonstration),执行端到端的模仿学习( imitation learning )。 其中包含两组低成本、现成的机械臂,使用关节空间映射进行遥控操作。也使用 3D 打印组件,在 20k 美元(我感觉其实也挺贵的)的预算内实现功能强大的远程作系统,2 个小时就能组装好。 2.精细的操作通常涉及具有复杂物理属性的对象,因此学习的操作 policy 比对整个环境进行建模要简单得多。以调味瓶操作为例:在轻推杯时对接触进行建模,并且撬开盖子时的变形涉及大量自由度的复杂物理。相比之下搞一个闭环的端到端的 Vision-Action/Policy 网络会更加容易一些。虽然可以通过上述的硬件系统收集高质量的演示数据,但是模仿学习的 policy 会随时间产生 复合 误差,而且人类的 demonstration 可能是不稳定(人的遥控操作数据也很难 100% 丝滑操作),如何让 IL 可以更好的适应这类问题? 再来解释一下这个老生常谈的问题:“复合误差” (Compounding Error ),模仿学习的模型预测误差,可能让机器人的观测输入出现“分布漂移” (Distribution Shift) 或“协变量偏移” (Covariate Shift) (分布漂移的一种特定类型,相当于世界运行规律没变,但是观测到的输入数据类型变化了)。两个因素互相促进,不断使预测结果越来越差,是模仿学习固有的一个根本性挑战。 核心机制是: 智能体在时间步 t 犯了一个微小的动作预测错误。 这个错误导致智能体进入了一个新的环境状态 s ′,这个状态可能与专家演示中出现的状态略有不同,甚至在训练数据中从未出现过。 当智能体处于这个“未曾见过”或“少见”的状态 s ′ 时,它从专家数据中学到的策略就可能不再那么可靠,甚至给出更差的动作预测。 这个更差的预测又会导致智能体进一步偏离专家轨迹,进入更“陌生”的状态。 如此循环往复,小的错误像滚雪球一样积累,最终导致智能体完全偏离专家行为,甚至无法完成任务。 解决办法: Action Chunking with Transformers (ACT) 该算法通过动作序列训练生成式模型。 ACT 学习 6 个任务,例如打开半透明的调味品杯,在只有 10 分钟的 demonstration 下,实现 80-90%的成功率。 “action chunking”的主要做法就是,预测接下来 k 个时间步的目标关节位置,而不是一次只预测一个 timestep。通过 k 次减少了任务的有效范围,从而减少了复合误差。预测动作序列还有助于解决时序上的噪声等,例如难以用马尔可夫单步策略建模的演示中的停顿。为了进一步提高策略的平滑性,我们提出了“temporal ensembling”, 更频繁地 query policy 并在重叠的 action chunk 之间取平均值。使用 Transformers 实现 action chunking policy,本身 transformer 就是序列建模而设计的架构,并将其训练为 conditional VAE ( CVAE )以捕获人类数据的可变性。方法命名为 Action Chunking with Transformers (ACT),在操作任务上效果优于以前的模仿学习算法。 ## ALOHA 硬件系统细节 ![](https://pic1.zhimg.com/v2-b6ec2695f60b1eb5e52c886b2675fe0e_1440w.jpg) 这套系统遵循了五个原则: 1. 低成本:整个系统应在大多数机器人实验室的预算范围内,与单个工业手臂相当。 2. 用途广泛: 它可以应用于对现实世界对象的各种精细作任务。 3. 用户友好:系统应直观、可靠且易于使用 4. 可修复:当装置不可避免地损坏时,研究人员可以很容易地修复它。 5. 易于构建:它可以由研究人员快速组装,使用易于采购的材料 原则 1、4 和 5 引导了使用 两个 ViperX 6-DoF 机械臂 构建双手动平行夹爪装置。由于价格和维护的考虑,不使用灵巧手。使用的 ViperX 臂的工作有效载荷为 750g,跨度为 1.5m,精度为 5-8mm。机器人是模块化的,易于维修:在电机发生故障的情况下,可以轻松更换低成本的 Dynamixel 电机。然而,OEM 手指(机械臂原本的夹爪)的通用性不足以处理精细操作任务。因此设计了 3D 打印“透明”手指,并用增加了黑色的防滑胶带(如图 3)。这允许良好的可见性(减缓遮挡,增加抓取摩擦力) 这里遥操方式不是 VR 控制器或摄像头捕获的手部姿势映射到机器人的末端执行器姿势( 任务空间映射 ),而是使用来自同一家公司制造的 WidowX 的直接关节空间映射(成本为 3300 美元 )。用户通过驱动较小的 WidowX(“主动臂”)进行远程操作,其关节与较大的 ViperX(“从动臂”)同步。 更多遥操数据采集方案,可见 https:// zhuanlan.zhihu.com/p/14 109860960 发现与任务空间映射方案相比,使用关节空间映射有一些好处。 1. 精细操作通常需要在机器人的奇点附近作,本文机器人有 6 个自由度并且没有冗余。在此设置中,现有的反向运动学 (IK) 经常失败。另一方面, 关节空间映射保证了关节限制内的高带宽控制,同时还需要更少的计算并减少延迟。 2. 主动臂的重量和惯性可以防止用户移动过快,抑制微小的振动(感觉也是缺点 )。 与手持 VR 控制器相比,使用关节空间映射在精确任务上的性能更好。 为了进一步改善远程操作体验,设计了 一种 3D 打印的“手柄和剪刀”机制,可以改装到引导机器人上 (图 3)。 它减少了操作员反向驱动电机所需的力,并允许连续控制抓手,而不是二进制打开或关闭 。 还设计了一种橡皮筋负载均衡机构,可部分抵消引线侧的重力 。减少了操作员所需的工作量,并使长程操作(例如 >30 分钟)成为可能。 其余设置包括一个用 20×20 mm 的铝制挤压件,通过交叉钢缆加固。 共有四个罗技 C922x 网络摄像头,每个网络摄像头流式传输 480×640 RGB 图像(30FPS)。其中两个网络摄像头安装在从动臂机器人的手腕上,可以近距离观察夹爪。其余两个摄像头分别安装在正面和顶部(图 3)。遥操数据记录都以 50Hz 的频率进行。 ALOHA 支持三类任务: 1. 精确的任务,例如从钱包中取出信用卡、打开或关闭拉链袋。 2. 接触式任务,例如将 288 针 RAM 插入计算机主板等 3. 动态任务,例如用真正的乒乓球拍杂耍乒乓球、平衡球而不掉落等。 项目网站开源了以上所有的硬件、3D 打印件等 ## ACT (Action Chunking with Transformers ) ![](https://pica.zhimg.com/v2-e03f0ceda0d1187cd27c8dbe843c7b3a_1440w.jpg) 首先使用 ALOHA 收集人工演示。记录主动臂(leader)机器人的关节位置(即人类操作员的输入)并将作为 action。使用 leader 关节位置而不是 follower 的位置很重要,因为施加的力的大小是通过低级 PID 控制器由目标位置和实际位置的差异定义的。 如果主动臂给出了机器人关节的目标位置(设定值),而从动臂的 Dynamixel 电机内部的 PID 控制器则会以非常高的频率去监测关节的实际位置(过程变量),并根据二者之间的误差,快速地驱动电机,使关节精准地跟踪到给出的目标位置。使用主动臂关节位置作为 action,不仅仅是记录了机器人最终到达的位置,更重要的是包含了人类操作时的“意图”和“力量反馈”。这使得机器人能够学习如何施加适当的力,而不是仅仅模仿最终的静止姿态。 输入: 观测结果 由 从动臂的当前关节位置和来自 4 个摄像头的图像。 输出: 未来序列动作。此处的动作作对应于下一个时间步中两个臂的目标关节位置。Dynamixel 电机内部的高频 PID 控制器会跟踪这些目标关节位置。 在测试时,选择在验证集上表现最好的策略(即损失最低的策略),并在环境中自主运行(roll it out)。出现的主要挑战是 compounding errors,其中先前动作的错误会导致状态超出训练分布范围。 ### Action Chunking ![](https://pic1.zhimg.com/v2-71521d158cf12c7c9a73fcf0bfb1b79e_1440w.jpg) 为了缓解 compounding errors ,采用 action chunking 方案。就是 单个动作被组合在一起并作为一个单元执行,使其更有效地存储和执行。将 action chunk 大小固定为 k:每 k 步,agent 会收到一个观察结果,生成接下来的 k 个动作,并按顺序执行动作(图 5)。这意味着任务的有效范围减少了 k 倍。公式表达的话,策略模型是 $\pi_\theta\left(a_{t: t+k} \mid s_t\right)$ 这种还可以帮助在人类演示中对非马尔可夫行为进行建模。具体来说,单步策略将难以处理时间上相关的噪声问题,例如 演示过程中的停顿 ,因为行为不仅取决于状态,还取决于时间步长。action chunk 可以缓解当噪声因素位于一个 action chunk 内时,此问题不会为 history-conditioned policy 引入因果混淆问题(causal confusion,这也是 imation learning 的老毛病了) 。 ### Temporal Ensemble Action chunk 的原始实现可能不是最佳选择: 每 k 步突然加入一个新的环境观测,并可能导致机器人运动不连贯,运动卡顿。为了提高平滑度并避免执行和观察之间的切换,在每个时间步查询策略。这使得不同的 action chunk 彼此重叠,在给定的时间步长中将有多个预测动作。如图 5,并提出了一个时间集成( Temporal Ensemble)来组合这些预测。 Temporal Ensemble 使用指数加权方案 $w_i=\exp (-m * i)$ 对这些预测执行加权平均值,其中 $w_0$ 是最旧动作的权重。参数 m 控制了系统融入新观察信息的速度, 这里的指数衰减中 i 越小代表越老,老的权重衰减越快,代表新信息权重更高,也就是新信息融入的更快。 这里不是聚合相邻时间步的动作,而是聚合同一时间步预测的动作。此过程也不会产生额外的训练成本,只会产生额外的推理时间计算。在实践中,发现动作分块和时间集成对于 ACT 的成功都很重要,可以产生精确和流畅的运动。 ### Modeling human data 另一个挑战是从带噪声的人类演示中学习。给定相同的观察结果,人类可以使用不同的轨迹来解决任务。在精度不太重要的区域,人类行为也将更加随机。因此 policy 必须关注重要的高精度的区域。 这里做法是将 policy 训练为条件变分自动编码器 (CVAE),生成 以当前观察为条件的动作序列。 复习一下 AE/VAE/CVAE: 自编码器 (AutoEncoder, AE):由一个编码器 (Encoder) 和一个解码器 (Decoder) 组成。编码器将输入数据(如图片 x)压缩成一个低维的潜在向量 (latent vector) z,解码器则试图从这个 z 中重建出原始输入 x。AE 的主要目的是学习数据的有效表示或进行数据压缩。 VAE (Variational AutoEncoder):解决了普通 AE 潜在空间不连续的问题,使得潜在空间更具“生成性”。 VAE 的编码器不直接输出一个 z,而是输出一个概率分布的参数(通常是均值 μ 和方差 σ)。 然后从这个由 μ 和 σ 定义的分布中采样得到潜在向量 z。 VAE 的损失函数除了重建损失(确保重建的数据与原始数据相似)外,还增加了一个 KL 散度损失。这个损失强制编码器输出的潜在分布(由 μ 和 σ 定义)接近一个预设的先验分布(通常是标准正态分布)。 目的:通过这种方式,VAE 学习到的潜在空间变得平滑和连续,使可以在潜在空间中随机采样 z,然后通过解码器生成全新的、合理的数据。 尽管 VAE 可以生成新数据,但它是无条件生成的,你无法控制它生成什么。例如,你用 VAE 训练了一堆手写数字图片,它可以生成新的手写数字,但你不能指定它生成一个“7”或一个“3”。 CVAE 的核心就是引入一个条件 c,将这个条件信息融入到 VAE 的编码器和解码器中,从而实现可控的生成 编码器条件化:Encoder(x, c) -> (μ_z, σ_z)。这意味着潜在空间 z 的分布是依赖于输入数据 x 和条件 c 的。模型学习如何根据给定的条件来将数据编码到潜在空间。 解码器条件化:Decoder(z, c) -> x'。这意味着解码器在从潜在向量 z 重建数据 x' 时,会考虑条件 c。当生成阶段提供一个特定的 c 时,解码器就会生成符合这个条件的数据。 CVAE 有两个组件:CVAE 编码器和 CVAE 解码器,分别如图 4 的左侧和右侧所示。 编码器只在训练阶段发挥作用,主要目的是帮助训练好解码器。 一旦训练完成,在机器人实际执行任务(测试时,test time)的时候,这个编码器就会被丢弃(discarded),不再使用。 编码器的输入 : 在训练时,编码器接收当前观察(current observation)(来自机器人传感器)和动作序列(action sequence)(来自人类演示数据)作为输入。 编码器的输出 : 它预测一个“style variable”z 的分布的均值(mean)和方差(variance)。这个 z 捕捉了人类执行任务时的细微差别或“风格”。这个分布被建模为一种对角高斯分布(diagonal Gaussian),这是一种简化的概率分布,意味着 z 的每个维度是独立的。 为了加快训练速度,在编码器的输入中,排除了图像观测部分。编码器只使用机器人的本体感受观察(proprioceptive observation)(如关节位置等内部状态信息)和人类演示的动作序列进行条件化。这是一种常见的优化手段,因为图像数据通常计算量大。 decoder 就是最终的 policy。接收风格变量 z 和当前观测(包括图像和关节位置,这里又把图像加回来了)。 测试时的 z: 由于编码器在测试时被丢弃,所以 z 不再是从输入中计算出来的。为了让机器人能够执行动作,他们将 z 固定为先验分布(prior distribution)的均值=0。 “确定性解码”(deterministically decode): 这使得解码过程是确定性的,每次给定相同的观察,都会生成相同的动作序列,而不会引入 z 带来的随机性或“风格”变化。这 意味着机器人会执行学到的“平均”或“标准”动作模式。 整个模型的目标是最大化人类演示 action chunks 的对数似然( log-likelihood) 等价于最小化负对数似然: $\min _\theta-\sum_{s_t, a_{t: t+k} \in D} \log \pi_\theta\left(a_{t: t+k} \mid s_t\right)$ 这个目标函数包含两个部分(与标准 VAE 相同): 1. 重建损失(reconstruction loss): 确保解码器生成的动作序列与人类演示的动作序列尽可能相似。 2. 正则化项(regularization term): 强迫编码器预测的 z 的分布(由均值和方差定义)接近一个简单的高斯先验分布(Gaussian prior)(通常是标准正态分布)。这有助于使潜在空间平滑且有意义。引入了一个超参数 β 来调整正则化项的权重。 这是一种常见的 VAE 变体,称为 β-VAE 。如果 β 值设得更高,模型就会更严格地强制 z 的分布接近先验,这意味着 z 中能承载的信息量会减少。这可能 迫使解码器更多地依赖于直接的观察来生成动作 。 ### ACT 实现 附录 C 有一个更完整的架构图 ![](https://picx.zhimg.com/v2-b6204322e8fe02cdf9d3c6b39f116565_1440w.jpg) ![](https://picx.zhimg.com/v2-1e3f235c8ed149bd6d482be65b47375d_1440w.jpg) 它包含一个编码器和一个解码器。 - CVAE 编码器: 功能: 学习从给定的机械臂演示数据中提取一个“风格变量” z。 实现: 采用一个 BERT-like Transformer 编码器。 输入(长度为 k+2 的序列): 一个特殊的、可学习的“[CLS]”标记(类似于 BERT 中的分类标记)+当前的机器人关节位置+一段长度为 k 的目标动作序列(来自演示数据)。 输出: Transformer 处理后,对应“[CLS]”token 的特征被用来预测“风格变量” z 的均值和方差。这个 z 变量捕获了动作序列的 high-level 的“风格”或“意图”。 - CVAE 解码器(即 policy network): 功能: 根据当前的观测数据和“风格变量” z,预测接下来的 k 个机器人动作。 实现: 由 ResNet 图像编码器、一个 Transformer 编码器和一个 Transformer 解码器组成。 输入: - - 4 张 RGB 图像(来自不同相机视角),每张分辨率为 480 × 640。 - 两个机器人手臂的当前关节位置(总共 14 个自由度,DoF)。 - 风格变量 z(来自 CVAE 编码器)。 解码器内部详细处理流程: 图像处理:每张 480 × 640 × 3 的 RGB 图像首先通过一个 ResNet18 骨干网络处理,生成 15 × 20 × 512 的特征图。这些特征图在空间维度上被展平为 300 × 512 的序列。为了保留空间信息,会添加一个 2D 正弦位置编码。对 4 张图像重复此过程,得到一个 1200 × 512 的特征序列。 关节位置和风格变量 z 的处理: 当前的关节位置(14 维)和风格变量 z 都通过线性层投影到 512 维。 Transformer 编码器(解码器内部): 将 1200 × 512 的图像特征与投影后的关节位置(512 维)和投影后的 z(512 维)进行拼接。因此,输入到这个 Transformer 编码器的总维度是 1202 × 512。这个编码器负责整合所有这些输入信息(图像、关节位置和 z)。 Transformer 解码器(解码器内部): - - 通过交叉注意力机制(cross-attention),从前面 Transformer 编码器的输出中获取信息。 - 它自己的输入是一个固定位置编码的序列,维度为 k × 512。 - 解码器输出一个 k × 512 维度的序列。 - 最后,这个输出通过一个 ML 下采样为 k × 14 的 tensor。 policy 输出: 这个 k × 14 的张量表示接下来 k 步的预测绝对关节位置(每一步是一个 14 维向量)。 损失函数: 使用 L1 loss 进行重建,而不是更常见的 L2 loss。这是 因为 L1 loss 被发现能更精确地建模动作序列。动作空间表示: policy 输出的是目标(绝对)关节位置,而不是关节位置的变化量(delta),因为使用变化量会导致性能下降。 模型规模与性能:参数数量:0.08B(小模型)。 训练: 每个任务都从头开始训练,在单个 11GB RTX 2080 Ti GPU 上大约需要 5 小时。 推理时间: 在同一台机器上,推理时间大约为 0.01 秒,速度非常快。 ## 实验 在 6 个真机任务 +2 个仿真任务(MuJoCo)实验。由于是 23 年的文章了,重点还是看 ablation 的实验 图六有很多任务定义 ![](https://pic1.zhimg.com/v2-5ebb054dc3ae8eee697d5706ca7a602c_1440w.jpg) ### 真机数据采集 对于所有 6 个实际任务,收集了使用 ALOHA 遥操的演示。根据任务的复杂程度,操作员每个 episode 需要 8-14 秒来执行,如果控制频率为 50Hz,则相当于 400-700 个时间步长。为每个任务记录了 50 个演示(除了 Thread Velcro 有 100 个)。因此,演示的总量为每个任务大约需要 10-20 分钟的数据,由于重置和远程作员错误,真实消耗时间为 30-60 分钟。 对于 2 个仿真任务,收集了两种类型的演示:一种具有脚本 policy 类型,另一种具有人工演示类型。为了在模拟中进行远程遥操,使用 ALOHA 的“leader 机器人”来控制模拟机器人,操作员在监视器上查看环境的实时渲染。在这两个案例中,都记录了 50 次成功的演示。所有人类 Demonstration 本质上都是随机的,即使一个人收集了所有 Demonstration 也是如此。 ### ABLATION ![](https://pic2.zhimg.com/v2-f06fc4db2632aae50066f725cf4de68b_1440w.jpg) (a)Action Chunking 的 K 的长度 由于 k 决定了每个“块”中的序列有多长,可以通过改变 k 来分析效果。 k = 1 对应于无动作分块,k = episode_length 对应于完全开环控制,其中机器人根据第一次观察输出整个情节的动作序列。这里禁用时间集成,只测量 chunk 的效果,并为每个 k 训练了单独 policy。在图 8 (a) 中,蓝线代表没有时间集合的 ACT。性能从 k = 1 时的 1% 急剧提高到 k = 100 时的 44%,然后随着 k 的增加而略有下降。这表明更多的分块和较低的有效范围通常会提高性能。将 k = 200, 400 (即接近开环控制) 的轻微下降归因于缺乏反应行为和难以对长动作序列进行建模。为了进一步评估行动分块的有效性和普遍性,用行动分块增强了两种基线方法。对于 BC-ConvMLP,将输出维度增加到 k ∗action_dim;对于 VINN,检索接下来的 k 个动作。在图 8 (a) 中用不同的 k 可视化它们的性能,显示出与 ACT 一致的趋势,其中更多的动作分块提高了性能。虽然 ACT 仍然以相当大的收益优于两种增强的基线,但这些结果表明,在这些情况下,动作分块通常有利于模仿学习。 对比的两种方法 BC-ConvMLP 是最简单但应用最广泛的 baseline,使用卷积网络处理当前图像观测,输出关节位置以预测动作。 VINN 是一种非参数方法,它假定在测试时访问演示。给定一个新观测值,它会检索具有最相似视觉特征的 k 个观测值,并使用加权 k-nearest-neighbors。 (b)Temporal Ensembling 在图 8 (b) 中,表明 BC-ConvMLP 从时间集成中受益最大,增益为 4%,其次是 ACT 增益 3.3%。 VINN(一种非参数方法)的性能下降很多。猜想是 时间集成主要通过消除建模误差来使参数化方法受益。相比之下,VINN 从数据集中检索真实动作,并且不会遇到此问题。 (c)Training with CVAE 在图 8 (c)中将 2 个仿真任务的成功率可视化,分别 使用脚本数据和人类数据绘制。在脚本数据上进行训练时,删除 CVAE 目标对性能几乎没有影响,因为数据集是完全确定的。而对于人类数据,从 35.3% 大幅下降到 2%。这表明,在从人工演示中学习时,CVAE 至关重要。 (d)高频率操作的必要性: 图 8 (d) 所示。平均而言,参与者以 33Hz 的频率穿上扎带需要 5 秒,在 20Hz 时降低到 50 秒。对于分离塑料杯,增加控制频率可将任务持续时间从 16 秒降低到 10 秒。总体而言,50Hz 允许参与者在短时间内执行高度灵巧和精确的任务。但是将频率从 50Hz 降低到 5Hz 会导致遥操时间增加 62%。总体而言高频率的控制是必要且有意义的,PI0-FAST 也论证了这点。 ( 实现 ALOHA 的 5Hz 版本,以 5Hz 的频率从 leader 机器人读取数据,在关节空间中进行插值,并以 50Hz 的频率将插值的位置发送给机器人) ## 限制 ### 硬件限制 1. 需要双手多根手指的任务 ,比如儿童安全药瓶(压旋盖)。要打开瓶子,一只手需要握住瓶子并按下按钮片,另一只手拧开盖子。 2. 需要很大力的任务 ,例如举起重物、拧开密封的水瓶。这是 因为低成本电机无法产生足够的扭矩来支持这些动 。 3. 需要指甲的任务 ,即使将夹爪设计的边缘很薄。例如,当包装胶带,目前无法提起包装胶带的边缘,也无法打开易拉罐。 ### Policy 限制 ACT 未能学习的行为。 1. 打开糖果的包装。这些步骤包括从桌子上拿起糖果,拉动它的两端,然后撬开包装纸以露出糖果。收集了 50 次演示来培训 ACT 政策。在我们 10 次试验的初步评估中,policy 以 10/10 的比例拾取糖果,以 8/10 的比例拉动两端,以 0/10 的方式解开糖果的包装。将失败归因于感知困难和缺乏数据。 具体来说,在两边拉糖果后用于撬开糖果包装纸的接缝可能会出现在糖果周围的任何地方。在示范采集过程中,即使是人类也很难辨别 。 操作员需要通过查看包装机上打印的图形来判断,并找到不连续性 。 2. 打开一个平放在桌子上的小拉链袋。右夹持器需要先拿起,调整好,使左夹持器能牢牢抓住拉动区域,然后右手抓住拉动区域的另一侧,将其拉开。受过 50 次演示训练的 policy 可以始终如一地捡起袋子,但后续的步骤无法执行。推测袋子很难感知,此外,拾取位置的微小差异会影响袋子的变形方式, 并导致拉动区域最终的位置存在巨大差异 。 预训练、更多的数据和更好的感知是解决这些极其困难的任务的有希望的方向。