Обзор
Публичный блокнот для совместной работы с учебным пособием по программному обеспечению dm_control доступен здесь.
Инфраструктура
- Автоматически сгенерированная оболочка MuJoCo Python обеспечивает полный доступ к базовому движку.
- PyMJCF — это объектная модель документа, в которой иерархия Python Сущность объекты соответствуют элементам модели MuJoCo.
- Composer — это высокоуровневый «игровой движок», который упрощает компоновку сущностей в сцены и определение наблюдений, вознаграждений, завершений и общей игровой логики.
- Платформа Locomotion представляет несколько абстрактных сущностей Composer, таких как Arena и Walker, облегчающих выполнение задач, подобных передвижению.
Окружающая среда
- Control Suite, включая новую среду для четвероногих и собак.
- Несколько заданий на передвижение, включая футбол.
- Задачи манипулирования роботом с одной рукой с использованием соединяемых вместе кирпичей.
Основные моменты
Именованное индексирование
Используя поддержку MuJoCo имена для всех элементов модели мы разрешаем индексировать строки и нарезать их на массивы. Поэтому вместо того, чтобы писать:
“fingertip_height = physics.data.geom_xpos[7, 2]”
…используя непонятную, хрупкую числовую индексацию, вы можете написать:
“fingertip_height = physics.named.data.geom_xpos[‘fingertip’, ‘z’]”
что приводит к гораздо более надежной, читаемой кодовой базе.
PyMJCF
Библиотека PyMJCF создает иерархию объектов Python с полным соответствием модели MuJoCo. Он вводит метод attach(), который позволяет прикреплять модели друг к другу. Например, в нашем туториале мы создаем процедурных многоногих существ, прикрепляя ноги к телам и существам к сцене.
Композитор
Composer — это структура «движка игры», которая определяет определенный порядок вызовов функций во время выполнения и абстрагирует возможности награда, прекращение и наблюдение. Эти абстракции позволили нам создать полезные подмодули:
composer.Observable: абстрактная оболочка наблюдения, которая может добавлять шум, задержки, буферизацию и фильтрацию для любого датчика.
composer.Variation: набор инструментов для рандомизации величин симуляции, позволяющий робастифицировать агента и преобразовать симуляцию в реальность с помощью вариации модели.
Передвижение
Фреймворк Locomotion представил абстракции:
Уокер: управляемая сущность с обычными методами передвижения, такими как проекция векторов в эгоцентрическую систему координат.
Арена: рандомизированная сцена с автоматическим масштабированием, в которую можно поместить ходячего и дать ему задание для выполнения.
Например, используя всего 4 вызова функций, мы можем создать человекоподобного ходока, арену WallsCorridor и объединить их в задаче RunThroughCorridor.
Новые домены Control Suite
Четвероногий
- Общий четвероногий домен с пассивно устойчивым телом.
- Несколько чисто двигательных задач (например, ходьба, бег).
- Задача побега, требующая навигации по пересеченной местности.
- Задача, требующая ведения мяча.
Собака
- Продуманная модель, основанная на скелете, заказанном leo3Dmodels.
- Сложная задача по извлечению мяча, требующая точного захвата ртом.
Витрина
Быстрый монтаж задач на основе dm_control от DeepMind: