lower dof_acc_l2 weight in Lab due to physics-step level implementation and sensitivity to outliers.

This commit is contained in:
wertyuilife
2026-04-13 14:56:15 +08:00
parent d0224eb62f
commit fd3650b6da
2 changed files with 6 additions and 1 deletions

View File

@@ -160,6 +160,7 @@ xml_path: "{ROOT_DIR}/resources/go2/your-custom-scene.xml"
## Differences from `go2_rl_gym` ## Differences from `go2_rl_gym`
- Different tracking reward formulation (fixed sigma vs. dynamic sigma) - Different tracking reward formulation (fixed sigma vs. dynamic sigma)
- Different reward weights (e.g., lower dof_acc_l2 weight in Lab due to physics-step level implementation and sensitivity to outliers)
- Lack domain_rand: randomize_motor_strength - Lack domain_rand: randomize_motor_strength
--- ---

View File

@@ -367,9 +367,13 @@ class RewardsCfg:
) )
lin_vel_z_l2 = RewTerm(func=mdp.lin_vel_z_l2, weight=-2.0) lin_vel_z_l2 = RewTerm(func=mdp.lin_vel_z_l2, weight=-2.0)
ang_vel_xy_l2 = RewTerm(func=mdp.ang_vel_xy_l2, weight=-0.05) ang_vel_xy_l2 = RewTerm(func=mdp.ang_vel_xy_l2, weight=-0.05)
# The dof_acc reward is not implemented on the same scale in Gym and Lab.
# In Lab, it is computed at the physics-step level,
# and because the L2 term is more sensitive to outliers, it can produce a larger penalty.
# Thus, we need to use a smaller weight for the dof_acc_l2 term in Lab compared to Gym.
dof_acc_l2 = RewTerm( dof_acc_l2 = RewTerm(
func=mdp.joint_acc_l2, func=mdp.joint_acc_l2,
weight=-2.5e-7, weight=-1.0e-7, # gym和lab的dof_acc reward实现尺度不一样lab是physic step level的由于l2对于离群值的敏感性会导致更大的惩罚
params={"asset_cfg": SceneEntityCfg("robot", joint_names=JOINT_NAMES)} params={"asset_cfg": SceneEntityCfg("robot", joint_names=JOINT_NAMES)}
) )
joint_power = RewTerm( joint_power = RewTerm(