diff --git a/.gitignore b/.gitignore index d8b21e7..7809a4f 100644 --- a/.gitignore +++ b/.gitignore @@ -72,14 +72,12 @@ __pycache__/ # ML checkpoints / datasets *.pth -*.onnx *.npz *.npy # Large ML artifacts (do not commit) *.pth *.ckpt -*.onnx # logs logs/ diff --git a/README.md b/README.md index ce1813f..25908db 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,90 @@

Go2 RL RobotLab

+ + Project Page + + + RSS 2025 Paper + + + arXiv:2602.00678 + + + IsaacGym go2_rl_gym +
## Overview +Train a Unitree Go2 robot in IsaacLab, and deploy policy to MuJoCo for Sim2Sim. For more, see the [project page](https://robogauge.github.io/complete/). -Train the Unitree Go2 robot with MoE-CTS in IsaacLab, and deploys policy to MuJoCo for Sim2Sim. - -It is a official reproduction of [go2_rl_gym](https://github.com/wty-yy/go2_rl_gym), adapted to the IsaacLab / RobotLab ecosystem. +It is an official [MoE-CTS](https://robogauge.github.io/static/files/arxiv.pdf) algorithm implementation in IsaacLab / RobotLab, as a reproduction of [go2_rl_gym](https://github.com/wty-yy/go2_rl_gym). ---

- +

--- +## Demos + +

+ Train in IsaacLab → validate with MuJoCo Sim2Sim → evaluate on the real Unitree Go2. +

+ + + + + + + + + + +
+ IsaacLab Play
+ Policy rollout in the IsaacLab environment.

+ +
+ MuJoCo Sim2Sim
+ Exported policy running in MuJoCo before real-world deployment.

+ +
+ Real Robot
+ Robust walking front on stairs.

+ +
+ Real Robot
+ Robust walking sideways on stairs.

+ +
+ +--- + +## RoboGauge Benchmark + +

+ RoboGauge score comparison between go2_rl_robotlab and the original go2_rl_gym. +

+ +

+ +

+ +### Algorithm Results (Best of 150k training steps) + +| Model | Score | Tracking | Safety | Quality | Level | +| --- | --- | --- | --- | --- | --- | +| go2_moe_cts (go2_rl_robotlab) | **0.6828** | **0.6785** | 0.7552 | **0.7645** | **8.17** | +| go2_moe_cts (go2_rl_gym) | **0.6713** | 0.6669 | **0.7857** | 0.7392 | 7.85 | +| [CTS](https://arxiv.org/pdf/2405.10830) vanilla | 0.5786 | 0.5755 | 0.7066 | 0.6624 | 6.83 | +| [HIM](https://github.com/InternRobotics/HIMLoco) | 0.5379 | 0.5453 | 0.6476 | 0.6050 | 6.19 | +| [DreamWaQ](https://arxiv.org/abs/2301.10602) | 0.5054 | 0.5105 | 0.6149 | 0.5730 | 5.74 | + +--- + ## Installation Guide ### 1. Install IsaacLab diff --git a/deploy/deploy_mujoco/configs/go2.yaml b/deploy/deploy_mujoco/configs/go2.yaml index af680e6..6097cd3 100644 --- a/deploy/deploy_mujoco/configs/go2.yaml +++ b/deploy/deploy_mujoco/configs/go2.yaml @@ -1,8 +1,8 @@ -policy_path: "{ROOT_DIR}/deploy/pre_train/go2/xxx.pt" # policy.pt exported by running scripts/rsl_rl/play.py +policy_path: "{ROOT_DIR}/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt" # policy.pt exported by running scripts/rsl_rl/play.py -xml_path: "{ROOT_DIR}/resource/go2/stairs.xml" +xml_path: "{ROOT_DIR}/resources/go2/stairs_and_slope.xml" -render_fps: 240 +render_fps: 300 video_fps: 60 save_video: false diff --git a/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx b/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx new file mode 100644 index 0000000..7f647c9 Binary files /dev/null and b/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx differ diff --git a/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt b/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt new file mode 100644 index 0000000..9e153b3 Binary files /dev/null and b/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt differ diff --git a/resources/go2/stairs_and_slope.xml b/resources/go2/stairs_and_slope.xml new file mode 100644 index 0000000..75897c9 --- /dev/null +++ b/resources/go2/stairs_and_slope.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/resources/go2/isaaclab_scene.png b/resources/results/isaaclab_scene.png similarity index 100% rename from resources/go2/isaaclab_scene.png rename to resources/results/isaaclab_scene.png diff --git a/resources/results/robogauge_compare.png b/resources/results/robogauge_compare.png new file mode 100644 index 0000000..6b4379e Binary files /dev/null and b/resources/results/robogauge_compare.png differ diff --git a/source/robot_lab/robot_lab/tasks/go2/env_cfg.py b/source/robot_lab/robot_lab/tasks/go2/env_cfg.py index 0651bd1..d9e26f7 100644 --- a/source/robot_lab/robot_lab/tasks/go2/env_cfg.py +++ b/source/robot_lab/robot_lab/tasks/go2/env_cfg.py @@ -159,7 +159,7 @@ class ObservationsCfg: scale=1.0, ) def __post_init__(self): - self.history_length = 5 + self.history_length = 10 self.enable_corruption = True self.concatenate_terms = True self.flatten_history_dim = True