当前位置: 首页 > 科技观察

教机器人捏橡皮泥?MIT、IBM、UCSD等联合发布了软件运行数据集

时间:2023-03-20 23:20:51 科技观察

虚拟环境(ALE、MuJoCo、OpenAIGym),极大地促进了学习算法在智能体控制和规划方面的开发和评估。然而,现有的虚拟环境通常只涉及刚体动力学。尽管软体动力学广泛应用于多个研究领域(例如,在医疗保健中模拟虚拟手术,在计算机图形学中模拟人形角色,在机器人技术中开发仿生执行器,在材料科学中分析断裂和撕裂),但关于标准的研究很少软件环境和基准。软体动力学的仿真、控制和分析比刚体动力学更复杂。最大的挑战之一来自其无限自由度(DoF)和相应的高维控制方程。软体动力学固有的复杂性阻碍了许多为刚体设计的机器人算法的直接应用,并抑制了用于评估软体任务算法的仿真基准的开发。在最近的一项研究中,麻省理工学院沃森人工智能实验室首席科学家甘创团队与麻省理工学院、USCD等机构的研究人员共同提出了梯度引导机器人软件操作平台(PlasticineLab)来解决这一问题。这篇论文的内容被选为ICLR2021会议的spotlight。论文地址:https://arxiv.org/pdf/2104.03311.pdf项目链接:http://plasticinelab.csail.mit.edu/代码下载:https://github.com/hzaskywalker/PlasticineLab这个benchmark可以用运行和评估总共10个软操作任务,其中包含50个配置,这些配置必须通过复杂的操作执行,包括捏合、滚动、切割、塑形和雕刻。它的特点是在模拟环境中使用可微物理,并首次为软件分析提供梯度信息,通过基于梯度的优化实现监督学习。在软体模型方面,我们选择研究橡皮泥(图1左),这是一种用于雕刻的多功能弹塑性材料,在小变形下表现出弹性,在大变形下表现出塑性。与传统的弹性软体相比,橡皮泥表现出更加多样化和逼真的行为,并提出了之前研究中未曾探索过的挑战,使其成为测试软体操纵算法的代表性媒介(图1右)。图1左:一个孩子用擀面杖把一块橡皮泥变成薄饼。右图:PlasticineLab中具有挑战性的RollingPin场景。智能体需要通过来回滚动擀面杖将橡皮泥变形为目标形状。我们通过Taichi实现了PlasticineLab的梯度支持和弹塑性材料模型,其CUDA后端采用GPU大规模并行实时模拟各种3D软体。然后通过移动最小二乘材料点法和vonMises屈服准则对弹塑性材料建模,并使用Taichi的双尺度逆模式微分系统自动计算梯度,包括具有数值挑战性的SVD梯度。有了可用的全梯度,我们在PlasticineLab中的所有软体操作任务上评估了基于梯度的规划算法,并将它们的效率与基于强化学习的方法进行了比较。实验表明,基于梯度的规划算法可以利用物理模型的额外知识在数十次迭代内找到更有价值的解决方案,而基于强化学习的方法即使在10,000次迭代后也可能失败。但是基于梯度的方法缺乏足够的能力来解决长期规划问题,尤其是在多阶段任务上。这些发现促进了对基于强化学习和基于梯度的规划算法的理解。此外,它提供了一个可能的研究方向,结合这两种方法的优点,以推进软体动力学中复杂规划任务的发展。这项工作有以下主要贡献:提出了涉及弹性和塑性软体的技能学习的第一个基准。开发了一个功能齐全的可微分物理引擎,支持弹性和塑性变形、软硬材料相互作用和可微分的自定义接触模型。基准中广泛的任务覆盖范围可以对代表性的基于强化学习和基于梯度的规划算法进行系统评估和分析。我们希望这个基准能够激发未来结合微分物理和强化学习的研究。我们还计划使用更清晰的系统来扩展基准测试,例如虚拟影子手。MPM作为一种起源于计算物理界的原理性模拟方法,在求精下收敛,在精度上有其自身的优势。在虚拟环境中建模错误是不可避免的,但是,模拟的梯度信息除了可以作为强大的规划监督信号外,还可以指导系统识别。这可能允许机器人研究人员自己“优化”任务,与控制器优化并行,自动最小化模拟与现实之间的差距。PlasticineLab可以显着降低未来软件操作技能学习研究的障碍,并为机器学习社区做出独特的贡献。PLASTICINELAB学习环境PlasticineLab包含由可微物理模拟器支持的具有挑战性的软体操纵任务,所有这些任务都需要代理使用刚体操纵器使一个或多个3D橡皮泥变形。底层模拟器允许用户对软体执行复杂的操作,包括捏合、滚动、切割、塑形和雕刻。任务描述PlasticineLab有10个任务集中在软件的操作上。每个任务由一个或多个软体和一个机械手组成,最终目标是通过规划机械手的运动使软体变形为目标形状。代理的设计遵循标准的强化学习框架,由马尔可夫决策过程建模。每个任务的设计都由其状态和观察、动作表示、目标定义和奖励函数来定义。马尔可夫决策过程通常,马尔可夫决策过程由状态空间、动作空间、奖励函数和转移函数组成。在PlasticineLab中,物理模拟器决定状态之间的转换。代理的目标是找到一个随机策略,该策略从给定状态对动作进行采样,以最大化预期的累积未来奖励,其中是折扣因子。状态任务的状态包括软体和机械臂末端执行器的正确表示。我们遵循先前工作中广泛使用的基于粒子的模拟方法,并将软体表示为粒子系统,其状态包括粒子的位置、速度以及应变和应力信息。具体来说,粒子状态被编码为大小为的矩阵,其中是粒子数。矩阵中的每一行包含来自单个粒子的信息:表示位置和速度的两个3D向量,表示变形梯度和仿射速度场的两个3D矩阵,所有这些都堆叠并展平为一维向量。作为运动学刚体,操纵器的末端执行器由7D矢量表示,该矢量由3D位置和4D四元数方向组成,尽管在某些情况下可能会禁用某些自由度。对于每个任务,此表示都会生成一个矩阵,该矩阵对机械手的完整状态进行编码,其中是任务中所需的机械手数量,3或7,具体取决于机械手是否需要旋转。关于软体和机械臂之间的相互作用,我们在刚体和软体之间实现了一种单向耦合,并固定了所有其他物理参数,如粒子质量和机械臂摩擦力。观察虽然粒子状态完全表征了软体动力学,但它的高自由度对于任何直接使用规划和控制算法来说都是难以处理的。因此,我们将粒子作为身份进行下采样,并将它们的位置和速度(每个id为6D)叠加到大小为的矩阵中,用作粒子系统的观察。值得注意的是,同一任务中的身份在橡皮泥的初始配置中具有固定的相对位置,从而能够在任务的不同配置中一致地观察粒子。结合粒子观察和操纵器状态,我们最终得到一个带有元素的观察向量。动作在每个时间步,代理会运动学地更新操纵器的线速度(和角速度,如果需要),导致大小为3或6的动作,具体取决于操纵器是否可以旋转。对于每个任务,我们提供全局的、下限和上限的动作来稳定物理模拟。目标和奖励每个任务都有一个由质量张量表示的目标形状,它本质上将其密度场离散化为大小为的规则网格。在每个时间步t,我们计算当前软体的质量张量。将目标和当前形状离散化为网格表示允许我们通过比较相同位置的密度来定义它们的相似性,避免匹配粒子系统或点云的挑战性问题。奖励函数的完整定义包括一个相似性度量和两个关于操纵器高级运动的正则化器:其中,是两个形状的质量张量之间的距离,并且是两个形状质量张量之间的符号距离。场的点积促使操纵器靠近软体。所有任务的正权重都是恒定的。偏差确保每个环境最初都有一个非负奖励。评估组件PlasticineLab总共包含10个不同的任务(图2)。我们在这里描述了4个代表性任务,其余6个任务在附录B中进行了详细说明。这些任务及其在不同配置下的变体形成了一套评估组件,用于对软件操作算法的性能进行基准测试。每个任务有5个变体(总共50个配置),通过扰动操纵器的初始和目标形状以及初始位置生成。图2.PlasticineLab的任务和参考解决方案,其中一些需要多阶段规划。绳索代理涉及通过两个球形操纵器将一根长橡皮泥绳缠绕在一个刚性柱上。支柱的位置在不同的配置中有所不同。作家代理需要操纵一支“笔”(由垂直胶囊表示)在橡皮泥立方体上绘制目标涂鸦。对于每种配置,我们通过在橡皮泥表面绘制随机二维线来生成涂鸦。笔尖是通过三维运动来控制的。使用一双筷子(由两个平行的胶囊表示),Chopsticks代理在地上捡起一根长绳子的橡皮泥并将其旋转到目标位置。机械手有7个自由度:6个自由度用于移动和旋转筷子,1个自由度用于控制每根筷子之间的距离。RollingPin智能体需要学习使用坚硬的擀面杖将“披萨面团”(由橡皮泥立方体表示)压平。我们用3个自由度的胶囊模拟擀面杖:1)擀面杖可以垂直下降压面团;2)擀面杖可以沿垂直轴旋转以改变其方向;3)剂也可以用擀面杖在橡皮泥上擀平。可微分弹塑性模拟模拟器在Taichi中实现并在CUDA上运行。连续介质力学通过移动最小二乘材料点法进行离散化,这是一种比B样条材料点法更简单、更有效的计算机图形学变体。模拟器中使用了拉格朗日粒子和欧拉背景网格。材料的属性包括位置、速度、质量、密度和变形梯度。这些属性存储在随材料移动的拉格朗日粒子上,而粒子与刚体的相互作用和碰撞则在背景欧拉网格上处理。在这里,我们专注于材料模型的(可微)塑性扩展,作为Plasticine的一个定义特征,利用Taichi的反向模式自动微分系统进行大多数梯度评估。vonMises屈服准则在Gao等人的工作之后,我们使用简单的vonMises屈服准则来模拟可塑性。根据vonMises屈服准则,当橡皮泥颗粒的偏应力第二不变量超过某个阈值时,橡皮泥颗粒就会屈服(即塑性变形),并且由于材料“忘记”了其静止状态,因此需要预测变形梯度。这个过程在MPM文献中通常被称为returnmap。返回图及其梯度遵循Klar等人的工作。对粒子的变形梯度执行奇异值分解(SVD)过程,研究人员在附录A中提供了该过程的伪代码。对于反向传播,需要评估SVD的梯度。Taichi内部的SVD算法是迭代的,在使用的时候,它的值是不稳定的,用暴力的方式自动微分。我们使用Townsend等人提出的方法。来区分SVD。对于奇异值不明显时的零分母问题,沿用Jiang等人的方法。强制分母的绝对值微接触模型及其软体版本遵循标准MPM实现,使用基于库仑摩擦网格的接触处理来解决与地板和刚体障碍物/操纵器的软体碰撞。刚体表示为随时间变化的SDF。在经典的MPM中,接触处理会导致速度沿软硬边界发生急剧、不平滑的变化。为了提高奖励平滑度和梯度质量,我们在反向传播过程中使用软化接触模型。对于任何网格点,模拟器计算其到刚体的有符号距离。然后我们计算一个光滑的碰撞强度因子,它在衰减到0时呈指数增加。直观地,随着刚体越接近网格点,碰撞效果变得越强。正参数决定了软化接触模型的清晰度。我们使用一个因子来线性混合碰撞投影前后的网格点速度,从而在边界周围形成平滑的过渡区和更好的接触梯度。实验评价指标首先为每个任务生成5个配置,产生50个不同的强化学习配置。我们计算归一化增量IoU分数来衡量状态是否在目标上,并使用软IoU来评估当前状态与目标之间的距离。首先提取网络Gridqualitytensor,也就是所有网格的quality。每个非负值代表存储在网格点中的材料量。设两个状态的3D质量张量分别为和。我们首先将每个张量除以它们的最大值以对其值进行归一化:然后,两个状态的软化IoU由计算。归一化的deltaIoU分数衡量的是IoU在结束时与初始状态相比增加了多少。对于初始状态、结束时的最终状态和目标状态,归一化增量IoU分数定义为。对于每项任务,我们在5种配置上评估算法并计算代数平均分。评估强化学习之后是评估现有强化学习算法在本文提出的任务上的性能。我们使用三种SOTA无模型强化学习算法:SoftActor-Critic(SAC)、TwinDelayedDDPG(TD3)和PolicyProximalOptimization(PPO)。每个算法在每个配置上训练10000个时期,每个时期包含50个环境步骤。图3显示了各种强化学习算法在每个场景上的归一化增量IoU分数。大多数强化学习算法都可以在Move任务上学习到合理的策略。但是,强化学习算法很难准确匹配目标形状,导致最终的形状匹配存在小瑕疵。我们注意到代理在探索过程中经常释放物体,使橡皮泥在重力作用下自由下落。然后,智能体重新抓住橡皮泥就变得很有挑战性,导致训练不稳定和结果不尽如人意。在Rope任务中,代理可以将绳子推向杆子并获得部分奖励,但最终未能将绳子缠绕在杆子上。TripleMove任务增加了机械手和三维橡皮泥的数量,这给强化学习算法带来了更大的困难,暴露了该算法在扩展到高维任务方面的不足。在Torus任务中,算法性能似乎取决于初始策略。他们有时可以找到合适的方向按压机械手,但有时会因为机械手从未接触过橡皮泥而失败,导致最终得分出现显着差异。PPO优于其他两者,在RollingPin任务中,SAC和PPO智能体都可以找到一种策略来回压平面团,但PPO生成更准确的形状,从而获得更高的归一化增量IoU分数。我们猜测这里的环境有利于PPO算法,而不是依赖于MLP评估网络。这可能是因为PPO受益于on-policy样本,而MPL评估网络可能无法很好地捕获详细的形状变化。图3.强化学习方法在104个epoch内得到的最终归一化增量IoU分数,低于0的分数被限制。橙色虚线表示理论上限。在一些更困难的任务上,例如需要代理仔细处理3D旋转的Chopsticks任务,以及需要代理规划复杂轨迹以绘制轨迹的Writer任务,被测试的算法很少能够找到合理的限时计划中的解决方案。在Assembly任务中,所有代理都容易陷入局部最小值。他们通常将球形橡皮泥移动到靠近目的地的位置,但未能将其抬起以获得所需的IoU。我们预计精心设计的奖励塑造、更好的网络架构和细粒度的参数调整可能对环境有益。总而言之,软体的可塑性和高自由度对强化学习算法提出了新的挑战。评估轨迹优化得益于PlasticineLab内置的可微分物理引擎,我们可以使用基于梯度的优化来规划任务的开环动作序列。在基于梯度的优化中,对于从状态开始的某些配置,会初始化一系列随机动作。模拟器将模拟整个轨迹,在每个时间步累积奖励,并反向传播以计算所有动作的梯度。然后,我们使用基于梯度的优化方法来最大化奖励总和。假定有关环境的所有信息都是已知的。这种方法的目标不是找到可以在现实世界中执行的控制器。相反,我们希望可微物理可以帮助有效地找到解决方案,并为其他控制或强化/模仿学习算法奠定基础。在图4中,我们通过绘制奖励曲线和比较不同梯度下降变体的性能来证明可微物理的优化效率。我们测试了Adam优化器(Adam)和动量梯度下降(GD),使用软接触模型计算梯度,并将Adam优化器与硬接触模型(Adam-H)进行比较。对于每个优化器,我们适度地为每个任务选择0.1或0.01的学习率,以处理不同任务的不同奖励级别。值得注意的是,这里只使用软接触模型来计算梯度和搜索解决方案。我们在硬接触环境中评估所有解决方案。在图4中,还绘制了强化学习算法的训练曲线,以展示基于梯度的优化的效率。结果表明,基于优化的方法可以在数十次迭代内找到具有挑战性任务的解决方案。Adam在大多数任务中都优于GD。这可能归因于Adam的自适应学习率缩放特性,它更适合高维物理过程的复杂损失表面。硬接触模型(Adam-H)在大多数任务上的表现都比软模型(Adam)差,验证了软模型通常更容易优化的直觉。图4.每项任务的奖励及其方差随训练次数的变化而变化。为了更好地说明,将奖励限制为大于0。表1列出了所有方法的标准化增量IoU分数和标准差。模型的整体知识为可微物理提供了获得更有价值结果的机会。使用Adam梯度下降可以在Rope任务中找到绕杆移动绳索的方法,在Assembly任务中跳过次优解决方案,将球体放在盒子顶部,并能够在Chopsticks任务中用筷子拿起绳子.更好地对齐目标形状和更稳定的优化过程,即使对于Move任务也能带来更好的性能。对于基于梯度的方法,某些任务仍然具有挑战性。在TripleMove任务中,优化器将粒子与最近目标形状的距离最小化,这通常会导致两个或三个橡皮泥聚集到同一目标位置。对于没有探索能力的基于梯度的方法,跳出这样的局部极小值并不容易。优化器在需要多阶段策略的任务上也会失败,例如Pinch和Writer任务。在Pinch任务中,机械手需要按下物体,释放它们,然后再次按下。然而,在机械手与橡皮泥第一次接触后,球形机械手的任何局部扰动都不会立即增加奖励,优化器最终会停止。我们还注意到基于梯度的方法对初始化非常敏感。实验将动作序列初始化为0左右,这在大多数环境中都具有良好的性能。表1.每种方法的平均归一化增量IoU分数和标准差。Adam-H表示使用Adam优化器优化硬接触模型。基于RL的方法使用10,000集进行训练,基于梯度的方法使用200集进行优化。潜在的研究问题这种环境为基于学习的软件操作提供了丰富的研究机会。实验表明,微分物理使基于梯度的轨迹优化算法能够极快地解决简单的规划任务,因为梯度为改进策略提供了强大而明确的指导。但是,如果任务涉及机械手和橡皮泥之间的分离和重新连接,梯度就会消失。当不能使用基于局部扰动分析的基于梯度的优化时,我们可能会考虑允许具有累积奖励的多步探索的方法,例如随机搜索和强化学习。因此,如何将可微物理与基于采样的方法相结合来解决软体操作规划问题将是非常有趣的。除了规划问题,研究如何在这种环境中设计和学习有效的软操纵控制器也很有趣。实验结果表明,在控制器设计和优化方面仍有足够的改进空间,可能的方向包括设计更好的强化学习奖励函数和研究合适的3D深度神经网络结构来捕捉软体动力学。第三个有趣的方向是将在PlasticineLab中训练的策略转移到现实世界中。虽然这个问题在很大程度上还没有被探索过,但我们相信我们的模拟器可以通过多种方式提供帮助:1.正如Gaume等人所示,MPM模拟结果可以准确地匹配现实世界。在未来的工作中,我们可能会使用模拟器为复杂任务规划高层轨迹,然后结合低层控制器进行规划;2.差分模拟器可以计算物理参数的梯度,优化参数以拟合数据,这可能有助于缩小sim2real的差距;3.PlasticineLab还可以结合域随机化和其他sim2real方法。可以在此模拟器中自定义物理参数和图像渲染器以实现域随机化。我们希望模拟器可以作为研究现实世界软件操作问题的好工具。最后,泛化是一个重要的探索方向。研究平台支持过程生成,可以生成和模拟不同对象的各种配置,以评估不同算法的通用性。PlasticineLab也为设计具有丰富目标条件的任务提供了一个很好的平台。