From 361502a8a5a376844963984f29b39d58f7494f58 Mon Sep 17 00:00:00 2001 From: 8x54zj-m <8x54zj-m@motrixlab.local> Date: Tue, 30 Jun 2026 15:43:02 +0800 Subject: [PATCH] fix: terrain start level 0, clear ep_report after consume --- motrix_envs/src/motrix_envs/locomotion/go1/dreamwaq.py | 2 +- motrix_rl/src/motrix_rl/rslrl/torch/wrap_vec_env.py | 5 +++-- motrix_rl/src/motrix_rl/tasks/go1.py | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/motrix_envs/src/motrix_envs/locomotion/go1/dreamwaq.py b/motrix_envs/src/motrix_envs/locomotion/go1/dreamwaq.py index 766dd55..a3a4447 100644 --- a/motrix_envs/src/motrix_envs/locomotion/go1/dreamwaq.py +++ b/motrix_envs/src/motrix_envs/locomotion/go1/dreamwaq.py @@ -410,7 +410,7 @@ class DreamWaQTask(Go1WalkTask): all_indices = np.tile(np.arange(self._num_cols), self._num_rows) all_origins = self._make_origins(all_levels, all_indices) self._terrain_origins = all_origins.reshape(self._num_rows, self._num_cols, 2) - self._max_init_level = 5 + self._max_init_level = 0 # 从平地起步,靠课程升级 if num_reset > 0 and self._init_done and state is not None and hasattr(state, 'info'): old_info = state.info diff --git a/motrix_rl/src/motrix_rl/rslrl/torch/wrap_vec_env.py b/motrix_rl/src/motrix_rl/rslrl/torch/wrap_vec_env.py index 25c7d12..dbb7a3d 100644 --- a/motrix_rl/src/motrix_rl/rslrl/torch/wrap_vec_env.py +++ b/motrix_rl/src/motrix_rl/rslrl/torch/wrap_vec_env.py @@ -127,9 +127,10 @@ class RslrlNpEnvWrap(VecEnv): if "time_outs" in state.info: extras["time_outs"] = torch.from_numpy(state.info["time_outs"]).to(self._device) - # 将 episode 各项奖励传入 TensorBoard + # 将 episode 各项奖励传入 TensorBoard(消费后清除,防止重复上报) if "ep_report" in state.info: - extras["episode"] = state.info["ep_report"] + extras["episode"] = dict(state.info["ep_report"]) + del state.info["ep_report"] return obs, rewards, dones, extras diff --git a/motrix_rl/src/motrix_rl/tasks/go1.py b/motrix_rl/src/motrix_rl/tasks/go1.py index 99d2b1e..55360df 100644 --- a/motrix_rl/src/motrix_rl/tasks/go1.py +++ b/motrix_rl/src/motrix_rl/tasks/go1.py @@ -135,7 +135,7 @@ class rslrl: runner.actor.class_name = ( "motrix_rl.rslrl.torch.models.cenet_actor:CENetActorModel") runner.actor.hidden_dims = [512, 256, 128] - runner.actor.init_noise_std = 0.5 # 降噪声先学站稳,再探索行走 + runner.actor.init_noise_std = 1.0 # 上游原值 # Critic:标准 MLPModel,输入 privileged_obs runner.critic.class_name = "MLPModel"