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:一组用于随机化模拟量的工具,可以通过模型变化实现代理的强化和模拟到真实世界的过程。
Locomotion
Locomotion框架引入了以下抽象:
Walker:可控实体,具有常见的与行走相关的方法,如将向量投影到本体坐标系。
Arena:一个自动缩放的随机场景,可以在其中放置行走者并给予任务。
例如,只需4个函数调用,我们就可以实例化一个人形行走者、一个WallsCorridor竞技场,并将它们组合成一个RunThroughCorridor任务。
新的控制套件领域
四足动物
- 一个带有被动稳定身体的通用四足动物领域。
- 几个纯粹的运动任务(如行走、奔跑)。
- 需要在崎岖地形上导航的逃生任务。
- 需要用嘴准确抓取球的取球任务。
狗
- 一个基于leo3Dmodels委托的复杂模型。
- 需要精确抓取球的具有挑战性的取球任务。
展示
dm_control基于任务的快节奏蒙太奇展示,来自DeepMind: