Overview
A public colab pocket book with a tutorial for dm_control software program is on the market here.
Infrastructure
- An autogenerated MuJoCo Python wrapper gives full entry to the underlying engine.
- PyMJCF is a Doc Object Mannequin, whereby a hierarchy of Python Entity objects corresponds to MuJoCo mannequin parts.
- Composer is the high-level “sport engine” which streamlines the composing of Entities into scenes and the defining observations, rewards, terminations and normal sport logic.
- The Locomotion framework introduces a number of summary Composer entities such because the Enviornment and Walker, facilitating locomotion-like duties.
Environments
- The Control Suite, together with a brand new quadruped and dog surroundings.
- A number of locomotion duties, together with soccer.
- Single arm robotic manipulation duties utilizing snap-together bricks.
Highlights
Named Indexing
Exploiting MuJoCo’s help of names for all mannequin parts, we enable strings to index and slice into arrays. So as a substitute of writing:
“fingertip_height = physics.information.geom_xpos[7, 2]”
…utilizing obscure, fragile numerical indexing, you’ll be able to write:
“fingertip_height = physics.named.information.geom_xpos[‘fingertip’, ‘z’]”
resulting in a way more sturdy, readable codebase.
PyMJCF
The PyMJCF library creates a Python object hierarchy with 1:1 correspondence to a MuJoCo mannequin. It introduces the connect() technique which permits fashions to be hooked up to at least one one other. For instance, in our tutorial we create procedural multi-legged creatures by attaching legs to our bodies and creatures to the scene.
Composer
Composer is the “sport engine“ framework, which defines a selected order of runtime operate calls, and abstracts the affordances of reward, termination and statement. These abstractions allowed us to create helpful submodules:
composer.Observable: An summary statement wrapper which may add noise, delays, buffering and filtering to any sensor.
composer.Variation: A set of instruments for randomising simulation portions, permitting for agent robustification and sim-to-real through mannequin variation.
Locomotion
The Locomotion framework launched the abstractions:
Walker: A controllable entity with widespread locomotion-related strategies, like projection of vectors into an selfish body.
Enviornment: A self-scaling randomised scene, during which the walker could be positioned and given a process to carry out.
For instance, utilizing simply 4 operate calls, we are able to instantiate a humanoid walker, a WallsCorridor area and mix them in a RunThroughCorridor process.
New Management Suite domains
Quadruped
- A generic quadruped area with a passively secure physique.
- A number of pure locomotion duties (e.g. stroll, run).
- An escape process requiring tough terrain navigation.
- A fetch process requiring ball dribbling.
Canine
- An elaborate mannequin based mostly on a skeleton commissioned from leo3Dmodels.
- A difficult ball-fetching process that requires precision greedy with the mouth.
Showcase
A quick-paced montage of dm_control based mostly duties from DeepMind: