Overview
A public colab pocket book with a tutorial for dm_control software program is accessible right here.
Infrastructure
- An autogenerated MuJoCo Python wrapper offers 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 “recreation engine” which streamlines the composing of Entities into scenes and the defining observations, rewards, terminations and normal recreation logic.
- The Locomotion framework introduces a number of summary Composer entities such because the Area and Walker, facilitating locomotion-like duties.
Environments
- The Management Suite, together with a brand new quadruped and canine 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 an alternative of writing:
“fingertip_height = physics.knowledge.geom_xpos[7, 2]”
…utilizing obscure, fragile numerical indexing, you possibly can write:
“fingertip_height = physics.named.knowledge.geom_xpos[‘fingertip’, ‘z’]”
resulting in a way more strong, readable codebase.
PyMJCF
The PyMJCF library creates a Python object hierarchy with 1:1 correspondence to a MuJoCo mannequin. It introduces the connect() methodology which permits fashions to be hooked up to 1 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 “recreation engine“ framework, which defines a specific order of runtime perform calls, and abstracts the affordances of reward, termination and commentary. These abstractions allowed us to create helpful submodules:
composer.Observable: An summary commentary wrapper which might 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 by way of mannequin variation.
Locomotion
The Locomotion framework launched the abstractions:
Walker: A controllable entity with frequent locomotion-related strategies, like projection of vectors into an selfish body.
Area: A self-scaling randomised scene, through which the walker might be positioned and given a job to carry out.
For instance, utilizing simply 4 perform calls, we are able to instantiate a humanoid walker, a WallsCorridor area and mix them in a RunThroughCorridor job.
New Management Suite domains
Quadruped
- A generic quadruped area with a passively steady physique.
- A number of pure locomotion duties (e.g. stroll, run).
- An escape job requiring tough terrain navigation.
- A fetch job requiring ball dribbling.
Canine
- An elaborate mannequin primarily based on a skeleton commissioned from leo3Dmodels.
- A difficult ball-fetching job that requires precision greedy with the mouth.
Showcase
A quick-paced montage of dm_control primarily based duties from DeepMind: