unilab.envs.locomotion.go2.handstand

Classes

Go2DomainRandConfig

Go2DomainRandConfig(randomize_base_mass: 'bool' = False, added_mass_range: 'list[float]' = <factory>, randomize_body_mass: 'bool' = False, body_mass_multiplier_range: 'list[float]' = <factory>, random_com: 'bool' = False, com_offset_x: 'list[float]' = <factory>, randomize_gravity: 'bool' = False, gravity_range: 'list[list[float]]' = <factory>, randomize_ground_friction: 'bool' = False, ground_friction_multiplier_range: 'list[float]' = <factory>, randomize_dof_armature: 'bool' = False, dof_armature_multiplier_range: 'list[float]' = <factory>, push_robots: 'bool' = False, push_interval: 'int' = 750, max_force: 'list[float]' = <factory>, push_body_name: 'str | None' = None, randomize_kp: 'bool' = True, kp_multiplier_range: 'list[float]' = <factory>, randomize_kd: 'bool' = True, kd_multiplier_range: 'list[float]' = <factory>)

Go2HandStandCfg

Go2HandStandCfg(scene: 'SceneCfg' = <factory>, sim_dt: 'float' = 0.01, max_episode_seconds: 'float' = 20.0, ctrl_dt: 'float' = 0.02, render_spacing: float = 1.0, render_offset_mode: str = 'grid', motrix_max_iterations: Optional[int] = None, post_step_forward_sensor: bool = False, control_config: 'ControlConfig' = <factory>, noise_config: 'NoiseConfig' = <factory>, sensor: 'JoystickSensor' = <factory>, asset: 'Asset' = <factory>, init_state: 'InitState' = <factory>, commands: 'Commands' = <factory>, reward_config: 'RewardConfig | None' = None, domain_rand: 'Go2DomainRandConfig' = <factory>)

Go2HandStandDomainRandomizationProvider

Go2HandStandTask

InitState

InitState()

JoystickSensor

JoystickSensor()

RewardConfig

RewardConfig(scales: 'dict[str, float]', tracking_sigma: 'float', base_height_target: 'float', target_foot_height: 'float' = 0.1, knee_height_target: 'float' = 0.08)

class unilab.envs.locomotion.go2.handstand.InitState[source]

Bases: object

InitState()

pos = [0.0, 0.0, 0.42]
__init__()
class unilab.envs.locomotion.go2.handstand.Go2DomainRandConfig[source]

Bases: DomainRandConfig

Go2DomainRandConfig(randomize_base_mass: ‘bool’ = False, added_mass_range: ‘list[float]’ = <factory>, randomize_body_mass: ‘bool’ = False, body_mass_multiplier_range: ‘list[float]’ = <factory>, random_com: ‘bool’ = False, com_offset_x: ‘list[float]’ = <factory>, randomize_gravity: ‘bool’ = False, gravity_range: ‘list[list[float]]’ = <factory>, randomize_ground_friction: ‘bool’ = False, ground_friction_multiplier_range: ‘list[float]’ = <factory>, randomize_dof_armature: ‘bool’ = False, dof_armature_multiplier_range: ‘list[float]’ = <factory>, push_robots: ‘bool’ = False, push_interval: ‘int’ = 750, max_force: ‘list[float]’ = <factory>, push_body_name: ‘str | None’ = None, randomize_kp: ‘bool’ = True, kp_multiplier_range: ‘list[float]’ = <factory>, randomize_kd: ‘bool’ = True, kd_multiplier_range: ‘list[float]’ = <factory>)

Parameters:
randomize_kp: bool = True
kp_multiplier_range: list[float]
randomize_kd: bool = True
kd_multiplier_range: list[float]
__init__(randomize_base_mass=False, added_mass_range=<factory>, randomize_body_mass=False, body_mass_multiplier_range=<factory>, random_com=False, com_offset_x=<factory>, randomize_gravity=False, gravity_range=<factory>, randomize_ground_friction=False, ground_friction_multiplier_range=<factory>, randomize_dof_armature=False, dof_armature_multiplier_range=<factory>, push_robots=False, push_interval=750, max_force=<factory>, push_body_name=None, randomize_kp=True, kp_multiplier_range=<factory>, randomize_kd=True, kd_multiplier_range=<factory>)
Parameters:
class unilab.envs.locomotion.go2.handstand.RewardConfig[source]

Bases: object

RewardConfig(scales: ‘dict[str, float]’, tracking_sigma: ‘float’, base_height_target: ‘float’, target_foot_height: ‘float’ = 0.1, knee_height_target: ‘float’ = 0.08)

Parameters:
scales: dict[str, float]
tracking_sigma: float
base_height_target: float
target_foot_height: float = 0.1
knee_height_target: float = 0.08
__init__(scales, tracking_sigma, base_height_target, target_foot_height=0.1, knee_height_target=0.08)
Parameters:
class unilab.envs.locomotion.go2.handstand.JoystickSensor[source]

Bases: object

JoystickSensor()

local_linvel = 'local_linvel'
gyro = 'gyro'
feet_force = ['FL_foot_contact', 'FR_foot_contact', 'RL_foot_contact', 'RR_foot_contact']
feet_pos = ['FL_pos', 'FR_pos', 'RL_pos', 'RR_pos']
global_pos = 'global_position'
ternamate_contact = ['base1_contact', 'base2_contact', 'base3_contact', 'FL_hip_contact', 'FR_hip_contact', 'FL_thigh_contact', 'FR_thigh_contact', 'FL_calf_contact1', 'FL_calf_contact2', 'FR_calf_contact1', 'FR_calf_contact2']
penalty_contact = ['RL_hip_contact', 'RR_hip_contact', 'RL_thigh_contact', 'RR_thigh_contact', 'RL_calf_contact1', 'RL_calf_contact2', 'RR_calf_contact1', 'RR_calf_contact2']
__init__()
class unilab.envs.locomotion.go2.handstand.Go2HandStandCfg[source]

Bases: Go2BaseCfg

Go2HandStandCfg(scene: ‘SceneCfg’ = <factory>, sim_dt: ‘float’ = 0.01, max_episode_seconds: ‘float’ = 20.0, ctrl_dt: ‘float’ = 0.02, render_spacing: float = 1.0, render_offset_mode: str = ‘grid’, motrix_max_iterations: Optional[int] = None, post_step_forward_sensor: bool = False, control_config: ‘ControlConfig’ = <factory>, noise_config: ‘NoiseConfig’ = <factory>, sensor: ‘JoystickSensor’ = <factory>, asset: ‘Asset’ = <factory>, init_state: ‘InitState’ = <factory>, commands: ‘Commands’ = <factory>, reward_config: ‘RewardConfig | None’ = None, domain_rand: ‘Go2DomainRandConfig’ = <factory>)

Parameters:
  • scene (SceneCfg)

  • sim_dt (float)

  • max_episode_seconds (float)

  • ctrl_dt (float)

  • render_spacing (float)

  • render_offset_mode (str)

  • motrix_max_iterations (Optional[int])

  • post_step_forward_sensor (bool)

  • control_config (ControlConfig)

  • noise_config (NoiseConfig)

  • sensor (JoystickSensor)

  • asset (Asset)

  • init_state (InitState)

  • commands (Commands)

  • reward_config (RewardConfig | None)

  • domain_rand (Go2DomainRandConfig)

max_episode_seconds: float = 20.0
init_state: InitState
commands: Commands
reward_config: RewardConfig | None = None
sensor: JoystickSensor
domain_rand: Go2DomainRandConfig
__init__(scene=<factory>, sim_dt=0.01, max_episode_seconds=20.0, ctrl_dt=0.02, render_spacing=1.0, render_offset_mode='grid', motrix_max_iterations=None, post_step_forward_sensor=False, control_config=<factory>, noise_config=<factory>, sensor=<factory>, asset=<factory>, init_state=<factory>, commands=<factory>, reward_config=None, domain_rand=<factory>)
Parameters:
  • scene (SceneCfg)

  • sim_dt (float)

  • max_episode_seconds (float)

  • ctrl_dt (float)

  • render_spacing (float)

  • render_offset_mode (str)

  • motrix_max_iterations (Optional[int])

  • post_step_forward_sensor (bool)

  • control_config (ControlConfig)

  • noise_config (NoiseConfig)

  • sensor (JoystickSensor)

  • asset (Asset)

  • init_state (InitState)

  • commands (Commands)

  • reward_config (RewardConfig | None)

  • domain_rand (Go2DomainRandConfig)

class unilab.envs.locomotion.go2.handstand.Go2HandStandDomainRandomizationProvider[source]

Bases: LocomotionDRProvider

class unilab.envs.locomotion.go2.handstand.Go2HandStandTask[source]

Bases: Go2BaseEnv

Parameters:

cfg (Go2HandStandCfg)

__init__(cfg, num_envs=1, backend_type='mujoco')[source]
Parameters:

cfg (Go2HandStandCfg)

property obs_groups_spec: dict[str, int]

101}.

Subclasses MUST override this property.

Type:

Return observation group dimensions, e.g. {“obs”

Type:

98, “critic”

update_state(state)[source]

子类实现:计算 obs/reward/terminated

Parameters:

state (NpEnvState)

Return type:

NpEnvState