How luwudynamics/xgoduck_rl works
XgoDuck RL provides mjlab task configurations and robot models for training and using PPO policies. The main workflow is to select a registered task, train it against the configured robot and environment, then play from a checkpoint or export the policy to ONNX. Task coverage also includes terrain variants and specialized behaviors such as stand-up, ground-pick, sit-stand, ball-kick, and roulade. The README establishes the product workflow; sampled source supports selected MDP, actuator, and robot details, but not every task’s internal wiring.
Main entry points: tasks Behavior tasks · train_cli.py Training CLI · xgoduck_constants.py XgoDuck config · export.py ONNX export
Components 21
Tasks and MDP
- Task registration
src/mjlab_microduck/tasks/__init__.py - Behavior tasks
src/mjlab_microduck/tasks - MDP functions
src/mjlab_microduck/tasks/mdp.py - Terrain generation
src/mjlab_microduck/tasks/slope_terrain.py - Policy symmetry
src/mjlab_microduck/tasks/symmetry.py - Testbench tasks
src/mjlab_microduck/tasks/testbench_env_cfg.py
Robot and actuation
- XgoDuck config
src/mjlab_microduck/robot/xgoduck_constants.py - XgoDuck model
src/mjlab_microduck/robot/xgoduck - BAM actuation
src/mjlab_microduck/actuator/friction_dr_bam.py - Backlash modeling
src/mjlab_microduck/tasks/backlash.py
Policy workflow
- Training CLI
src/mjlab_microduck/train_cli.py - Training hook
src/mjlab_microduck/train_hook.py - Model checkpoint
- Checkpoint selection
src/mjlab_microduck/play_hook.py - Policy playback
scripts/play_latest.py - ONNX export
scripts/export.py
Integrations and validation
- HF job submission
src/mjlab_microduck/hf_jobs.py - Sim-to-real checks
scripts/testbench_sim2real.py
Other components
- Engineer
- mjlab PPO
- ONNX policy
Connections 22
- Engineer → Training CLI: selects task
- Training CLI → Task registration: loads tasks
- Task registration → Behavior tasks: registers
- Behavior tasks → MDP functions: configures terms
- Behavior tasks → Terrain generation: configures terrain
- Behavior tasks → Policy symmetry: uses symmetry
- Behavior tasks → XgoDuck config: selects robot
- XgoDuck config → XgoDuck model: loads model
- XgoDuck config → BAM actuation: configures actuator
- Behavior tasks → Backlash modeling: configures backlash
- Training CLI → Training hook: dispatches
- Training hook → mjlab PPO: starts training
- mjlab PPO → Model checkpoint: writes checkpoint
- Engineer → Policy playback: requests playback
- Checkpoint selection → Model checkpoint: selects latest
- Policy playback → Model checkpoint: loads checkpoint
- Engineer → ONNX export: requests export
- ONNX export → Model checkpoint: loads checkpoint
- ONNX export → ONNX policy: writes policy
- Training CLI → HF job submission: submits remotely
- Engineer → Sim-to-real checks: runs checks
- Sim-to-real checks → Testbench tasks: uses task