Repository navigation
Conversation
There was a problem hiding this comment.
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] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.