Skip to content

Feature/booster locomotion tasks - #6

Closed
66Leslie wants to merge 2 commits into
mujocolab:mainfrom
66Leslie:feature/booster-locomotion-tasks
Closed

66Leslie wants to merge 2 commits into
mujocolab:mainfrom
66Leslie:feature/booster-locomotion-tasks

Conversation

@66Leslie

Copy link
Copy Markdown

No description provided.

Copilot AI lite review requested due to automatic review settings August 28, 2026 03:00
@66Leslie 66Leslie closed this Aug 28, 2026
@66Leslie
66Leslie deleted the feature/booster-locomotion-tasks branch August 28, 2026 03:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR extends mjlab_playground with Booster locomotion task implementations (velocity tracking, motion tracking, and target-location locomotion with AMP), adds Booster K1 robot assets/config, and updates repository documentation + licensing/third-party attribution to reflect the new task families and motion-data policy.

Changes:

  • Add Booster T1 velocity task (MDP terms, configs, task registration) plus unit tests.
  • Add Booster T1 tracking task with mixed motion/home reset behavior plus unit tests.
  • Add target-location locomotion AMP tasks for Booster K1 and T1, including shared AMP runner/components, plus policy/docs updates (motion data, checkpoints, third-party).

Reviewed changes

Copilot reviewed 80 out of 117 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
THIRD_PARTY.md Adds third-party component attribution summary.
third_party_licenses/RCSSServerMJ-MIT.txt Bundles MIT license text for RCSSServerMJ lineage.
tests/test_velocity.py Adds tests for velocity task registration and key config/MDP behaviors.
tests/test_tracking.py Adds tests for tracking task registration and config overrides.
tests/test_target_location_amp_t1.py Adds tests for T1 target-location AMP task variants and goal-state logic.
tests/test_getup.py Updates getup imports and adds K1 getup smoke/shape checks.
src/mjlab_playground/tasks/velocity/mdp/velocity_command.py Implements uniform velocity command term + GUI + debug viz.
src/mjlab_playground/tasks/velocity/mdp/terminations.py Adds velocity-task termination helper(s).
src/mjlab_playground/tasks/velocity/mdp/observations.py Adds velocity-task observation helpers (incl. heading encoding).
src/mjlab_playground/tasks/velocity/mdp/curriculums.py Adds velocity curricula/metrics helpers (command ranges, reward weights, terrain levels).
src/mjlab_playground/tasks/velocity/mdp/init.py Exposes velocity MDP helpers via package init.
src/mjlab_playground/tasks/velocity/config/t1/rl_cfg.py Adds PPO runner config for T1 velocity task.
src/mjlab_playground/tasks/velocity/config/t1/env_cfgs.py Adds T1 velocity env configs (rough/flat + play overrides).
src/mjlab_playground/tasks/velocity/config/t1/init.py Registers Mjlab-Velocity-Flat-Booster-T1.
src/mjlab_playground/tasks/velocity/config/init.py Exposes velocity config package.
src/mjlab_playground/tasks/velocity/init.py Adds velocity task package init.
src/mjlab_playground/tasks/tracking/mdp/events.py Adds tracking reset-source sampling event storing a mask in env.extras.
src/mjlab_playground/tasks/tracking/mdp/commands.py Implements mixed motion/home reset motion command term.
src/mjlab_playground/tasks/tracking/mdp/init.py Exposes tracking MDP extensions via package init.
src/mjlab_playground/tasks/tracking/config/t1/rl_cfg.py Adds T1 tracking RL config based on G1 tracking defaults.
src/mjlab_playground/tasks/tracking/config/t1/env_cfgs.py Adds T1 tracking env config with play-mode overrides and optional state-estimation removal.
src/mjlab_playground/tasks/tracking/config/t1/init.py Registers Mjlab-Tracking-Flat-Booster-T1.
src/mjlab_playground/tasks/tracking/config/init.py Adds tracking config package init.
src/mjlab_playground/tasks/tracking/init.py Adds tracking task package init.
src/mjlab_playground/tasks/target_location_amp/target_location_amp_env_cfg.py Adds shared base env config for target-location AMP task family.
src/mjlab_playground/tasks/target_location_amp/mdp/terminations.py Adds target-location AMP termination(s) for goal reaching.
src/mjlab_playground/tasks/target_location_amp/mdp/state.py Adds goal-pose progress and success-hold state management utilities.
src/mjlab_playground/tasks/target_location_amp/mdp/observations.py Adds goal-pose observation helpers.
src/mjlab_playground/tasks/target_location_amp/mdp/curriculums.py Adds curriculum logic for goal-pose command ranges + reward-stage updates.
src/mjlab_playground/tasks/target_location_amp/mdp/commands.py Implements goal-pose command term with bucketed sampling and resample policies.
src/mjlab_playground/tasks/target_location_amp/mdp/init.py Exposes target-location AMP MDP helpers.
src/mjlab_playground/tasks/target_location_amp/config/t1/rl_cfg.py Adds T1 AMP runner configs (base + competition variants).
src/mjlab_playground/tasks/target_location_amp/config/t1/init.py Registers T1 target-location AMP task IDs (incl. competition variants).
src/mjlab_playground/tasks/target_location_amp/config/k1/rl_cfg.py Adds K1 AMP runner config using clamped Gaussian distribution.
src/mjlab_playground/tasks/target_location_amp/config/k1/env_cfgs.py Adds K1 target-location AMP env config + goal curriculum/termination wiring.
src/mjlab_playground/tasks/target_location_amp/config/k1/init.py Registers Mjlab-TargetLocationAmp-Flat-Booster-K1.
src/mjlab_playground/tasks/target_location_amp/config/init.py Adds target-location AMP config package init.
src/mjlab_playground/tasks/target_location_amp/init.py Adds target-location AMP task package init.
src/mjlab_playground/tasks/getup/mdp/terminations.py Adds getup-specific termination(s) (energy-based).
src/mjlab_playground/tasks/getup/mdp/rewards.py Adds getup-specific rewards/metrics (posture gating, success metric).
src/mjlab_playground/tasks/getup/mdp/events.py Updates reset event to support invariant vs per-world joint limits.
src/mjlab_playground/tasks/getup/mdp/actions.py Adds “settle window” joint-position action that suppresses actions post-reset.
src/mjlab_playground/tasks/getup/mdp/init.py Exposes getup MDP helpers via package init.
src/mjlab_playground/tasks/getup/getup_env_cfg.py Updates imports to new tasks/getup module layout.
src/mjlab_playground/tasks/getup/config/t1/rl_cfg.py Adds PPO runner config for T1 getup task.
src/mjlab_playground/tasks/getup/config/t1/env_cfgs.py Updates T1 getup env config imports to new layout.
src/mjlab_playground/tasks/getup/config/t1/init.py Registers Mjlab-Getup-Flat-Booster-T1.
src/mjlab_playground/tasks/getup/config/k1/rl_cfg.py Adds PPO runner config for K1 getup task.
src/mjlab_playground/tasks/getup/config/k1/env_cfgs.py Adds K1 getup env config (rewards, curriculum, settle windows).
src/mjlab_playground/tasks/getup/config/k1/init.py Registers Mjlab-Getup-Flat-Booster-K1.
src/mjlab_playground/tasks/getup/config/go1/rl_cfg.py Adds PPO runner config for Go1 getup task (moved under tasks/getup).
src/mjlab_playground/tasks/getup/config/go1/env_cfgs.py Updates Go1 getup env config imports to new layout.
src/mjlab_playground/tasks/getup/config/go1/init.py Registers Mjlab-Getup-Flat-Unitree-Go1.
src/mjlab_playground/tasks/getup/config/init.py Adds getup config package init (empty module marker).
src/mjlab_playground/tasks/getup/init.py Adds getup task package init.
src/mjlab_playground/tasks/common/events.py Adds shared joint-reset helper supporting invariant/per-world joint limits.
src/mjlab_playground/tasks/common/init.py Exposes shared task helpers.
src/mjlab_playground/tasks/init.py Adds top-level tasks package marker.
src/mjlab_playground/asset_zoo/robots/booster_k1/xmls/scene_getup.xml Adds MuJoCo scene XML for K1 getup.
src/mjlab_playground/asset_zoo/robots/booster_k1/k1_constants.py Adds K1 robot spec loader, actuators, keyframes, action scale constants.
src/mjlab_playground/asset_zoo/robots/booster_k1/init.py Adds K1 robot package init.
src/mjlab_playground/asset_zoo/motions/retargeted/README.md Documents that retargeted motions are intentionally untracked.
src/mjlab_playground/amp/rl/runner.py Adds AMP on-policy runner integrating AMP observations and reward mixing.
src/mjlab_playground/amp/rl/runner_cfg.py Adds AMP-specific runner/algorithm config dataclasses.
src/mjlab_playground/amp/rl/replay_buffer.py Adds AMP transition replay buffer utility.
src/mjlab_playground/amp/rl/distributions.py Adds clamped Gaussian action distribution for stability.
src/mjlab_playground/amp/rl/discriminator.py Adds AMP discriminator network + reward/loss implementations.
src/mjlab_playground/amp/rl/init.py Exposes AMP RL components.
src/mjlab_playground/amp/mdp/terminations.py Adds shared AMP termination helpers.
src/mjlab_playground/amp/mdp/rewards.py Adds shared AMP reward/metric helpers.
src/mjlab_playground/amp/mdp/observations.py Adds shared AMP observation builder (robot-only discriminator input).
src/mjlab_playground/amp/mdp/events.py Adds shared AMP reset event for standing robot near origin.
src/mjlab_playground/amp/mdp/actions.py Adds delayed joint-position action term to simulate latency.
src/mjlab_playground/amp/mdp/init.py Exposes shared AMP MDP helpers.
src/mjlab_playground/amp/amp_schema.py Defines shared AMP observation schema constants and dimension helper.
src/mjlab_playground/amp/init.py Adds AMP package init.
src/mjlab_playground/init.py Updates task registrations to new task families (getup/k1/t1, velocity, tracking, AMP).
README.md Rewrites README for Booster locomotion tasks + motion/checkpoint policies.
pyproject.toml Pins Python range and updates mjlab dependency rev; tweaks pyright config.
NOTICE Adds attribution/notice text for upstream + referenced third-party sources.
docs/motion_data.md Adds detailed motion-data policy, layout, and schema guidance.
docs/checkpoints.md Adds checkpoint release policy and required model-card fields.
.gitignore Expands ignores for motion artifacts and retargeted motion directory contents.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +153 to +157
lin_vel_b = self.robot.data.root_link_lin_vel_b[init_vel_env_ids]
lin_vel_b[:, :2] = self.vel_command_b[init_vel_env_ids, :2]
root_lin_vel_w = quat_apply(root_quat, lin_vel_b)
root_ang_vel_b = self.robot.data.root_link_ang_vel_b[init_vel_env_ids]
root_ang_vel_b[:, 2] = self.vel_command_b[init_vel_env_ids, 2]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants