dm_control:连续控制的软件和任务

'dm_control software and tasks for continuous control'

概述

这里有一个带有dm_control软件教程的公共Colab笔记本。

基础架构
  • 自动生成的MuJoCo Python包装器提供对底层引擎的完全访问。
  • PyMJCF是一个文档对象模型,其中Python实体对象的层次结构对应MuJoCo模型元素。
  • Composer是高级的“游戏引擎”,可简化实体组合成场景以及定义观察、奖励、终止和通用游戏逻辑的过程。
  • Locomotion框架引入了几个抽象的Composer实体,如竞技场和行走者,便于进行类似运动的任务。
环境
  • 控制套件,包括一个新的四足动物和狗环境。
  • 几个运动任务,包括足球。
  • 使用可组装的积木进行单臂机器人操作任务。

亮点

命名索引

利用MuJoCo对所有模型元素的名称支持,我们允许使用字符串对数组进行索引和切片。所以,不再需要写:

“fingertip_height = physics.data.geom_xpos[7, 2]”

…使用晦涩、脆弱的数值索引,你可以写:

“fingertip_height = physics.named.data.geom_xpos[‘fingertip’, ‘z’]”

从而使代码更加健壮、可读。

PyMJCF

PyMJCF库创建了一个与MuJoCo模型一一对应的Python对象层次结构。它引入了attach()方法,允许模型之间的附加。例如,在我们的教程中,我们通过将腿部附加到身体和将生物附加到场景中,创建了程序化的多腿生物。

Composer

Composer是“游戏引擎”框架,定义了特定的运行时函数调用顺序,并对奖励、终止和观察的可用性进行了抽象。这些抽象使我们能够创建有用的子模块:

composer.Observable:一个抽象的观察包装器,可以为任何传感器添加噪声、延迟、缓冲和滤波。

composer.Variation:一组用于随机化模拟量的工具,可以通过模型变化实现代理的强化和模拟到真实世界的过程。

显示Composer回调生命周期的图表。圆角矩形表示任务和实体可以实现的回调。蓝色矩形表示内置的Composer操作。

Locomotion

Locomotion框架引入了以下抽象:

Walker:可控实体,具有常见的与行走相关的方法,如将向量投影到本体坐标系。

Arena:一个自动缩放的随机场景,可以在其中放置行走者并给予任务。

例如,只需4个函数调用,我们就可以实例化一个人形行走者、一个WallsCorridor竞技场,并将它们组合成一个RunThroughCorridor任务。

新的控制套件领域

四足动物
  • 一个带有被动稳定身体的通用四足动物领域。
  • 几个纯粹的运动任务(如行走、奔跑)。
  • 需要在崎岖地形上导航的逃生任务。
  • 需要用嘴准确抓取球的取球任务。
  • 一个基于leo3Dmodels委托的复杂模型。
  • 需要精确抓取球的具有挑战性的取球任务。
展示

dm_control基于任务的快节奏蒙太奇展示,来自DeepMind: