update history length to 10; update readme; add demo resources; update policy files and deploy config.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -72,14 +72,12 @@ __pycache__/
|
|||||||
|
|
||||||
# ML checkpoints / datasets
|
# ML checkpoints / datasets
|
||||||
*.pth
|
*.pth
|
||||||
*.onnx
|
|
||||||
*.npz
|
*.npz
|
||||||
*.npy
|
*.npy
|
||||||
|
|
||||||
# Large ML artifacts (do not commit)
|
# Large ML artifacts (do not commit)
|
||||||
*.pth
|
*.pth
|
||||||
*.ckpt
|
*.ckpt
|
||||||
*.onnx
|
|
||||||
|
|
||||||
# logs
|
# logs
|
||||||
logs/
|
logs/
|
||||||
|
|||||||
76
README.md
76
README.md
@@ -1,22 +1,90 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<h1 align="center">Go2 RL RobotLab</h1>
|
<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>
|
</div>
|
||||||
|
|
||||||
## Overview
|
## 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 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).
|
||||||
|
|
||||||
It is a official reproduction of [go2_rl_gym](https://github.com/wty-yy/go2_rl_gym), adapted to the IsaacLab / RobotLab ecosystem.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="resources/go2/isaaclab_scene.png" width="70%"/>
|
<img src="resources/results/isaaclab_scene.png" width="70%"/>
|
||||||
</p>
|
</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
|
## Installation Guide
|
||||||
|
|
||||||
### 1. Install IsaacLab
|
### 1. Install IsaacLab
|
||||||
|
|||||||
@@ -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
|
video_fps: 60
|
||||||
save_video: false
|
save_video: false
|
||||||
|
|
||||||
|
|||||||
BIN
deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx
Normal file
BIN
deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx
Normal file
Binary file not shown.
BIN
deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt
Normal file
BIN
deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt
Normal file
Binary file not shown.
39
resources/go2/stairs_and_slope.xml
Normal file
39
resources/go2/stairs_and_slope.xml
Normal 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>
|
||||||
|
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
BIN
resources/results/robogauge_compare.png
Normal file
BIN
resources/results/robogauge_compare.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 896 KiB |
@@ -159,7 +159,7 @@ class ObservationsCfg:
|
|||||||
scale=1.0,
|
scale=1.0,
|
||||||
)
|
)
|
||||||
def __post_init__(self):
|
def __post_init__(self):
|
||||||
self.history_length = 5
|
self.history_length = 10
|
||||||
self.enable_corruption = True
|
self.enable_corruption = True
|
||||||
self.concatenate_terms = True
|
self.concatenate_terms = True
|
||||||
self.flatten_history_dim = True
|
self.flatten_history_dim = True
|
||||||
|
|||||||
Reference in New Issue
Block a user