update history length to 10; update readme; add demo resources; update policy files and deploy config.

This commit is contained in:
wertyuilife
2026-06-12 05:20:29 +08:00
parent f78f791275
commit 7f13461612
9 changed files with 115 additions and 10 deletions

2
.gitignore vendored
View File

@@ -72,14 +72,12 @@ __pycache__/
# ML checkpoints / datasets
*.pth
*.onnx
*.npz
*.npy
# Large ML artifacts (do not commit)
*.pth
*.ckpt
*.onnx
# logs
logs/

View File

@@ -1,22 +1,90 @@
<div align="center">
<h1 align="center">Go2 RL RobotLab</h1>
<a href="https://robogauge.github.io/complete/">
<img src="https://img.shields.io/badge/Project-Page-green.svg" alt="Project Page"/>
</a>
<a href="https://robogauge.github.io/static/files/arxiv.pdf">
<img src="https://img.shields.io/badge/Paper-RSS%202025-blue.svg" alt="RSS 2025 Paper"/>
</a>
<a href="https://arxiv.org/abs/2602.00678">
<img src="https://img.shields.io/badge/arXiv-2602.00678-b31b1b.svg" alt="arXiv:2602.00678"/>
</a>
<a href="https://github.com/wty-yy/go2_rl_gym">
<img src="https://img.shields.io/badge/IsaacGym-go2__rl__gym-orange.svg" alt="IsaacGym go2_rl_gym"/>
</a>
</div>
## 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).
---
<p align="center">
<img src="resources/go2/isaaclab_scene.png" width="70%"/>
<img src="resources/results/isaaclab_scene.png" width="70%"/>
</p>
---
## Demos
<p align="center">
<b>Train in IsaacLab → validate with MuJoCo Sim2Sim → evaluate on the real Unitree Go2.</b>
</p>
<table>
<tr>
<td width="50%" align="center">
<b>IsaacLab Play</b><br/>
<sub>Policy rollout in the IsaacLab environment.</sub><br/><br/>
<img src="https://raw.githubusercontent.com/wertyuilife2/picture-bed/main/go2_rl_robotlab/demo-isaaclab.gif" width="80%"/>
</td>
<td width="50%" align="center">
<b>MuJoCo Sim2Sim</b><br/>
<sub>Exported policy running in MuJoCo before real-world deployment.</sub><br/><br/>
<img src="https://raw.githubusercontent.com/wertyuilife2/picture-bed/main/go2_rl_robotlab/demo-sim2sim.gif" width="80%"/>
</td>
</tr>
<tr>
<td width="50%" align="center">
<b>Real Robot</b><br/>
<sub>Robust walking front on stairs.</sub><br/><br/>
<img src="https://raw.githubusercontent.com/wertyuilife2/picture-bed/main/go2_rl_robotlab/demo-real-walk-front.gif" width="100%"/>
</td>
<td width="50%" align="center">
<b>Real Robot</b><br/>
<sub>Robust walking sideways on stairs.</sub><br/><br/>
<img src="https://raw.githubusercontent.com/wertyuilife2/picture-bed/main/go2_rl_robotlab/demo-real-walk-side.gif" width="100%"/>
</td>
</tr>
</table>
---
## RoboGauge Benchmark
<p align="center">
<b><a href="https://github.com/wty-yy/RoboGauge">RoboGauge</a> score comparison between go2_rl_robotlab and the original go2_rl_gym.</b>
</p>
<p align="center">
<img src="resources/results/robogauge_compare.png" width="100%"/>
</p>
### 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

View File

@@ -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

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,39 @@
<mujoco model="stairs_and_slope">
<include file="go2.xml"/>
<statistic center="0 0 0.1" extent="0.8"/>
<visual>
<headlight diffuse="0.6 0.6 0.6" ambient="0.3 0.3 0.3" specular="0 0 0"/>
<rgba haze="0.15 0.25 0.35 1"/>
<global azimuth="-130" elevation="-20"/>
</visual>
<asset>
<texture type="skybox" builtin="gradient" rgb1="0.3 0.5 0.7" rgb2="0 0 0" width="512" height="3072"/>
<texture type="2d" name="groundplane" builtin="checker" mark="edge" rgb1="0.2 0.3 0.4" rgb2="0.1 0.2 0.3"
markrgb="0.8 0.8 0.8" width="300" height="300"/>
<material name="groundplane" texture="groundplane" texuniform="true" texrepeat="5 5" reflectance="0.2"/>
</asset>
<worldbody>
<light pos="0 0 1.5" dir="0 0 -1" directional="true"/>
<geom name="floor" size="0 0 0.05" type="plane" material="groundplane"/>
<body name="stairs" pos="2 0 0">
<geom name="step_0" type="box" size="0.15 3.0 0.095" pos="0.15 0 0.095" rgba="1 1 1 1"/>
<geom name="step_1" type="box" size="0.15 3.0 0.095" pos="0.45 0 0.285" rgba="1 1 1 1"/>
<geom name="step_2" type="box" size="0.15 3.0 0.095" pos="0.75 0 0.475" rgba="1 1 1 1"/>
<geom name="step_3" type="box" size="0.15 3.0 0.095" pos="1.05 0 0.665" rgba="1 1 1 1"/>
<geom name="step_4" type="box" size="0.15 3.0 0.095" pos="1.35 0 0.855" rgba="1 1 1 1"/>
<geom name="step_5" type="box" size="0.15 3.0 0.095" pos="1.65 0 1.045" rgba="1 1 1 1"/>
<geom name="step_6" type="box" size="0.15 3.0 0.095" pos="1.95 0 1.235" rgba="1 1 1 1"/>
<geom name="step_7" type="box" size="0.15 3.0 0.095" pos="2.25 0 1.425" rgba="1 1 1 1"/>
<geom name="step_8" type="box" size="0.15 3.0 0.095" pos="2.55 0 1.615" rgba="1 1 1 1"/>
<geom name="step_9" type="box" size="0.15 3.0 0.095" pos="2.85 0 1.805" rgba="1 1 1 1"/>
</body>
<!-- 斜坡从最后一阶末端X=6开始向下倾斜0.4rad水平长度约4.493m,白色 -->
<geom name="ramp" type="box" size="2.2465 3.0 0.1" pos="7.0465 0 0.95" rgba="1 1 1 1" euler="0 0.4 0"/>
</worldbody>
</mujoco>

View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 KiB

View File

@@ -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