Software and Tasks for Continuous Control


A public colab pocket book with a tutorial for dm_control software program is accessible right here.

  • 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.
  • 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.


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.


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 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.

Diagram displaying the life-cycle of Composer callbacks. Rounded rectangles symbolize callbacks that Duties and Entities might implement. Blue rectangles symbolize built-in Composer operations.


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

  • 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.

  • An elaborate mannequin primarily based on a skeleton commissioned from leo3Dmodels.
  • A difficult ball-fetching job that requires precision greedy with the mouth.


A quick-paced montage of dm_control primarily based duties from DeepMind:

Leave a Comment