虚拟环境(ALE、MuJoCo、OpenAI GyM)极大地促进了在智能体控制和规划方面学习算法的发展和评估,然而现有的虚拟环境通常只涉及刚体动力学。尽管软体动力学在多个研究领域有着广泛的应用,关于构建标准软体环境和基准的研究却很少。
与刚体动力学相比,软体动力学的模拟、控制和分析更加错综复杂。最大的挑战之一来自其无限的自由度(DoFs)和对应的高维控制方程。软体动力学的内在复杂性使许多为刚体设计的机器人算法无法直接应用,并抑制了用于评估软体任务算法的模拟基准的发展。
在一项近期研究中,MIT 沃森人工智能实验室首席科学家淦创团队与来自MIT, USCD等机构的研究者共同提出了一个支持梯度可导的机器人软体操作平台(PlasticineLab) 来解决这个问题。这篇论文内容在 ICLR 2021 大会上被选为spotlight。
论文地址:
https://aRxiv.oRg/pdf/2104.03311.pdf
项目链接:
http://plasticinelab.csAIl.MIT.edu/
code 下载:
https://Github.coM/hzaskywalkeR/PlasticineLab
该基准可用于运行和评估总共 10 种软体操作任务,这些任务包含 50 种配置,必须通过复杂的操作来执行,包括捏、滚、切、成型和雕刻。其特点在于模拟环境采用可微物理,并且首次为软体分析提供梯度信息,从而可以通过基于梯度的优化进行监督学习。
PLASTICINELAB 学习环境
PlasticineLab 包含由可微物理模拟器支持的具有挑战性的软体操作任务,其中的所有任务都需要智能体使用刚体操纵器将一块或多块 3D 橡皮泥变形。底层模拟器允许用户对软体执行复杂的操作,包括捏、滚、切、成型和雕刻。
任务描述
PlasticineLab 具有 10 种侧重于软体操作的任务。每个任务都包含一个或多个软体和一个操纵器,最终目标是通过规划操纵器的运动将软体变形为目标形状。智能体的设计遵循标准的强化学习框架,通过马尔可夫决策过程进行建模。每个任务的设计由其状态和观察、动作表征、目标定义以及奖励函数来定义。
马尔可夫决策过程
一般来说,马尔可夫决策过程包含状态空间、动作空间、奖励函数和转换函数。在 PlasticineLab 中,物理模拟器决定了状态之间的转换。智能体的目标是找到一个随机策略,根据给定状态对动作进行采样,从而最大化预期累积未来回报,其中为折扣因子。
任务的状态包括软体的正确表征和操纵器的末端执行器。我们遵循先前工作中广泛使用的基于粒子的模拟方法,将软体物体表示为一个粒子系统,其状态包括粒子的位置、速度以及应变和应力信息。具体来说,粒子状态被编码为大小为的矩阵,其中是粒子的数量。矩阵中的每一行都包含来自单个粒子的信息:两个表示位置和速度的 3D 向量,两个表示形变梯度和仿射速度场的 3D 矩阵,所有信息堆叠并压平为一个维向量。
作为运动学刚体,操纵器的末端执行器由 7D 向量表示,由 3D 位置和 4D 四元数方向组成,尽管在某些场景中可能会禁用某些自由度。对于每个任务,该表征会产生一个矩阵来编码操纵器的完整状态,其中为任务中所需的操纵器数量,为3或7,取决于操纵器是否需要旋转。关于软体和操纵器之间的交互,我们实现了刚体和软体之间的单向耦合,并固定了所有其他物理参数,例如粒子质量和操纵器摩擦力。
观察
虽然粒子状态完全表征了软体动力学,但其高自由度对于任何直接使用的规划和控制算法都难以处理。因此,我们下采样个粒子作为标识,并将它们的位置和速度(每个标识为 6D)叠加到大小为的矩阵中,用作粒子系统的观察。值得注意的是,同一任务中的标识在橡皮泥的初始配置中具有固定的相对位置,从而在任务的不同配置中实现一致的粒子观察。结合粒子观察和操纵器状态,我们最终得到的观察向量具有个元素。
动作
在每个时间步长,智能体以运动学的方式更新操纵器的线速度(必要时也包括角速度),得到大小为的动作,其中为3或6,取决于操纵器是否能否旋转。对于每个任务,我们提供全局,动作的下限和上限以稳定物理模拟。
目标和奖励
每个任务都具备一个由质量张量表示的目标形状,它本质上是将其密度场离散为大小为的规则网格。在每个时间步长t,我们计算当前软体的质量张量。将目标和当前形状离散为网格表示,便于我们通过比较相同位置的密度来定义它们的相似性,避免匹配粒子系统或点云的挑战性问题。奖励函数的完整定义包括一个相似性度量以及两个关于操纵器高层次运动的正则化器:
其中,为两个形状的质量张量之间的距离,为两个形状质量张量的带符号距离场的点积,鼓励操纵器靠近软体。对于所有任务,正权重都是常数。偏差确保每个环境最初的奖励为非负值。
评估组件
PlasticineLab 共包含 10 种不同的任务。我们在这里描述了 4 个具有代表性的任务,其余 6 个任务在附录 B 中有详细说明。
这些任务及其不同配置下的变体形成了一套评估组件,用于对软体操作算法的性能进行基准测试。每个任务有 5 种变体(总共 50 种配置),通过扰动初始和目标形状以及操纵器的初始位置生成。