Implementation:Google deepmind Dm control CMU Subsets
| Knowledge Sources | |
|---|---|
| Domains | Robotics Simulation, Motion Capture |
| Last Updated | 2026-02-15 04:00 GMT |
Overview
This module defines curated subsets of motion capture clips from the CMU mocap database, organized by behavior type and size, for use in reference pose tracking tasks.
Description
The cmu_subsets module is a data configuration file that provides pre-defined collections of motion capture clip identifiers from the Carnegie Mellon University (CMU) motion capture database. It uses the ClipCollection type (imported from dm_control.locomotion.tasks.reference_pose.types) to define five named subsets, each containing tuples of string IDs following the CMU_XXX_YY naming convention where XXX is the subject number and YY is the trial number.
The five subsets are: GET_UP (7 clips of getting-up motions from subjects 139 and 140), WALK_TINY (approximately 2 minutes of walking behaviors from various subjects), RUN_JUMP_TINY (approximately 2 minutes of walking, running, and jumping behaviors), LOCOMOTION_SMALL (approximately 40 minutes of varied locomotion behaviors), and ALL (approximately 3.5 hours of varied locomotion and hand movements spanning dozens of subjects).
All subsets are aggregated into CMU_SUBSETS_DICT, a dictionary that maps human-readable names (walk_tiny, run_jump_tiny, get_up, locomotion_small, all) to their respective ClipCollection instances, enabling easy lookup by name in configuration and experiments.
Usage
Use this module when configuring reference pose tracking tasks to select a predefined set of motion capture clips. The subsets allow researchers to easily choose training datasets of different sizes and behavior types, ranging from small focused sets for debugging to comprehensive sets for full training.
Code Reference
Source Location
- Repository: Google_deepmind_Dm_control
- File: dm_control/locomotion/tasks/reference_pose/cmu_subsets.py
- Lines: 1-1289
Signature
ClipCollection = types.ClipCollection
GET_UP = ClipCollection(ids=(...)) # 7 clips
WALK_TINY = ClipCollection(ids=(...)) # ~35 clips, ~2 min
RUN_JUMP_TINY = ClipCollection(ids=(...)) # ~47 clips, ~2 min
LOCOMOTION_SMALL = ClipCollection(ids=(...)) # ~230 clips, ~40 min
ALL = ClipCollection(ids=(...)) # ~800+ clips, ~3.5 hours
CMU_SUBSETS_DICT = dict(
walk_tiny=WALK_TINY,
run_jump_tiny=RUN_JUMP_TINY,
get_up=GET_UP,
locomotion_small=LOCOMOTION_SMALL,
all=ALL,
)
Import
from dm_control.locomotion.tasks.reference_pose import cmu_subsets
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| (none) | -- | -- | This module is a data-only configuration; it takes no inputs at import time |
Outputs
| Name | Type | Description |
|---|---|---|
| GET_UP | ClipCollection | 7 clips of getting-up motions (subjects 139, 140) |
| WALK_TINY | ClipCollection | Approximately 2 minutes of walking behaviors |
| RUN_JUMP_TINY | ClipCollection | Approximately 2 minutes of walking, running, and jumping behaviors |
| LOCOMOTION_SMALL | ClipCollection | Approximately 40 minutes of varied locomotion behaviors |
| ALL | ClipCollection | Approximately 3.5 hours of varied locomotion and hand movements |
| CMU_SUBSETS_DICT | dict[str, ClipCollection] | Dictionary mapping subset names to ClipCollection instances |
Usage Examples
Basic Usage
from dm_control.locomotion.tasks.reference_pose import cmu_subsets
# Access a specific subset
walk_clips = cmu_subsets.WALK_TINY
print(f"Number of walking clips: {len(walk_clips.ids)}")
print(f"First clip ID: {walk_clips.ids[0]}") # 'CMU_016_22'
# Look up a subset by name
subset = cmu_subsets.CMU_SUBSETS_DICT['locomotion_small']
print(f"Locomotion small has {len(subset.ids)} clips")
# Use with a tracking task
from dm_control.locomotion.tasks.reference_pose import tracking
task = tracking.MultiClipMocapTracking(
walker=walker_fn,
arena=arena,
ref_path='/path/to/cmu_data.hdf5',
ref_steps=(1, 2, 3),
dataset=cmu_subsets.WALK_TINY, # Pass a ClipCollection directly
)
# Or use the string-based lookup
task = tracking.MultiClipMocapTracking(
walker=walker_fn,
arena=arena,
ref_path='/path/to/cmu_data.hdf5',
ref_steps=(1, 2, 3),
dataset='walk_tiny', # Look up by name in datasets.py
)