Heuristic:Google deepmind Dm control Warning Deprecated Legacy Base Walker
| Knowledge Sources | |
|---|---|
| Domains | Robotics_Simulation, Reinforcement_Learning |
| Last Updated | 2026-02-15 12:00 GMT |
Overview
Deprecation warning: The legacy_base module (legacy_base.Walker and legacy_base.WalkerObservables) is explicitly self-identified as legacy code. While still in active use by most walker implementations, it may be superseded by base.Walker in future versions.
Description
The file dm_control/locomotion/walkers/legacy_base.py labels both its main classes as "Legacy" in their docstrings:
- Line 32: "Legacy base class for Walker robots."
- Line 211: "Legacy base class for Walker observables."
Multiple walker implementations (CMU Humanoid, Ant, Rodent, FruitFly, JumpingBall, BoxHead) currently inherit from legacy_base.Walker rather than base.Walker. The newer base.Walker provides a minimal interface, while legacy_base.Walker adds richer observables, contact detection, and initializer support.
Usage
Be aware of this legacy status when:
- Extending existing walkers (they use legacy_base, so new subclasses will also depend on it)
- Creating new walkers (consider whether base.Walker is sufficient)
- Updating dm_control to future versions (this module may be refactored or removed)
The Insight (Rule of Thumb)
- Action: Prefer base.Walker for new walker implementations when the additional features of legacy_base.Walker are not needed.
- Trade-off: legacy_base.Walker provides rich observables and contact detection out of the box; base.Walker is simpler but requires manual observable setup.
- Risk: The legacy_base module may be deprecated or refactored in future dm_control releases.
Reasoning
The code self-identifies as legacy through its module name and docstrings. The existence of both base.Walker (modern, minimal) and legacy_base.Walker (legacy, feature-rich) suggests an ongoing migration that has not yet completed. Until all walkers are migrated, the legacy module remains the practical choice for most use cases.