unilab.envs.mdp.rewards.upright

unilab.envs.mdp.rewards.upright(env, std, asset_cfg=SceneEntityCfg(name='robot', joint_names=None, joint_ids=slice(None, None, None), body_names=None, body_ids=slice(None, None, None), geom_names=None, geom_ids=slice(None, None, None), site_names=None, site_ids=slice(None, None, None), actuator_names=None, actuator_ids=slice(None, None, None), tendon_names=None, tendon_ids=slice(None, None, None), camera_names=None, camera_ids=slice(None, None, None), light_names=None, light_ids=slice(None, None, None), material_names=None, material_ids=slice(None, None, None), texture_names=None, texture_ids=slice(None, None, None), pair_names=None, pair_ids=slice(None, None, None), preserve_order=False))[source]

Gaussian reward for keeping one selected body upright (mjlab upright).

The reward is exp(-||pg_xy||^2 / std^2) where pg is the world gravity vector expressed in the selected body’s link frame. Flat-ground form only: mjlab’s optional terrain-normal sensors are not ported.

Parameters:
  • env (ManagerBasedRlEnv)

  • std (float)

  • asset_cfg (SceneEntityCfg)

Return type:

ndarray