diff --git a/README.md b/README.md index 72cfe34..3ee1144 100644 --- a/README.md +++ b/README.md @@ -73,12 +73,12 @@ It is an official [MoE-CTS](https://robogauge.github.io/static/files/arxiv.pdf)

-### Algorithm Results (Best of 150k training steps) +### Algorithm Results (Best Checkpoint Results) | 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 | +| go2_moe_cts (go2_rl_robotlab) | **0.6984** | **0.7055** | **0.8159** | **0.7693** | **8.30** | +| 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 | @@ -251,16 +251,17 @@ xml_path: "{ROOT_DIR}/resources/go2/your-custom-scene.xml" ## Differences from `go2_rl_gym` - Motor: - - use official unitree motor model instead of simple PD controller + - use official unitree motor model instead of simple PD controller. - Rewards: - - different tracking reward form (fixed sigma vs. dynamic sigma) - - lower joint_acc_l2 weight in Lab due to physics-step level implementation and sensitivity to outliers - - extra joint_pos_penalty_l1 reward in Lab due to better performance + - 2x tracking reward weights due to better performance. + - different tracking reward form (fixed sigma vs. dynamic sigma). + - lower joint_acc_l2 weight in Lab due to physics-step level implementation and sensitivity to outliers. + - extra joint_pos_penalty_l1 reward in Lab due to better performance. - Domain randomization: - - no randomized action delay, use motor-level delay instead + - no randomized action delay, use motor-level delay instead. - no motor strength randomization due to implementation constraints in Lab. - History length: 10 in Lab vs. 5 in Gym, due to better performance with longer history in Lab. - +- Terrain Difficulty: use lab's continuous difficulty levels. --- ## Acknowledgements diff --git a/deploy/deploy_mujoco/configs/go2.yaml b/deploy/deploy_mujoco/configs/go2.yaml index 6097cd3..54f4624 100644 --- a/deploy/deploy_mujoco/configs/go2.yaml +++ b/deploy/deploy_mujoco/configs/go2.yaml @@ -1,4 +1,4 @@ -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 +policy_path: "{ROOT_DIR}/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.pt" # policy.pt exported by running scripts/rsl_rl/play.py xml_path: "{ROOT_DIR}/resources/go2/stairs_and_slope.xml" diff --git a/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.onnx b/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.onnx new file mode 100644 index 0000000..d06b013 Binary files /dev/null and b/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.onnx differ diff --git a/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.pt b/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.pt new file mode 100644 index 0000000..061e37e Binary files /dev/null and b/deploy/pre_train/go2/go2_moe_cts_176k_0.6984.pt differ 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 deleted file mode 100644 index 7f647c9..0000000 Binary files a/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.onnx and /dev/null 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 deleted file mode 100644 index 9e153b3..0000000 Binary files a/deploy/pre_train/go2/go2_moe_cts_185k_0.6828.pt and /dev/null differ diff --git a/resources/results/robogauge_compare.png b/resources/results/robogauge_compare.png index 6b4379e..a1b7e6a 100644 Binary files a/resources/results/robogauge_compare.png 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 d9e26f7..3b6f325 100644 --- a/source/robot_lab/robot_lab/tasks/go2/env_cfg.py +++ b/source/robot_lab/robot_lab/tasks/go2/env_cfg.py @@ -350,12 +350,12 @@ class RewardsCfg: track_lin_vel_xy_exp = RewTerm( func=mdp.track_lin_vel_xy_exp, - weight=1.0, + weight=2.0, params={"command_name": "base_velocity", "std": 0.5} ) track_ang_vel_z_exp = RewTerm( func=mdp.track_ang_vel_z_exp, - weight=0.5, + weight=1.0, params={"command_name": "base_velocity", "std": 0.5} ) lin_vel_z_l2 = RewTerm(func=mdp.lin_vel_z_l2, weight=-2.0) @@ -466,7 +466,7 @@ class Go2EnvCfg(ManagerBasedRLEnvCfg): """Merged configuration for the Go2 robot on rough terrain.""" # Scene settings - scene: Go2SceneCfg = Go2SceneCfg(num_envs=8192, env_spacing=0.5) + scene: Go2SceneCfg = Go2SceneCfg(num_envs=16384, env_spacing=0.5) # Basic settings observations: ObservationsCfg = ObservationsCfg() actions: ActionsCfg = ActionsCfg() diff --git a/source/robot_lab/robot_lab/tasks/go2/mdp/terrains.py b/source/robot_lab/robot_lab/tasks/go2/mdp/terrains.py index 2be5f03..fd4192d 100644 --- a/source/robot_lab/robot_lab/tasks/go2/mdp/terrains.py +++ b/source/robot_lab/robot_lab/tasks/go2/mdp/terrains.py @@ -178,7 +178,7 @@ TERRAIN_CFG = Go2TerrainGeneratorCfg( # slope correction = 0.75 ~ 36.9 degrees by default, # but recommended to set for each terrain type separately using with_slope_threshold slope_threshold=0.75, - use_gym_difficulty=True, + use_gym_difficulty=False, use_cache=False, sub_terrains={ "wave": with_slope_threshold(