unilab.envs.locomotion.go2_arm.manip_loco¶
Classes
ArmStageConfig(freeze_arm_joints: 'bool' = False, disable_ee_goal_trajectory: 'bool' = False, fixed_ee_goal_cart: 'list[float]' = <factory>) |
|
CommandsConfig(vel_limit: 'list[list[float]]' = <factory>, resampling_time: 'float' = 0.0, heading_command: 'bool' = False, heading_range: 'list[float]' = <factory>, heading_control_stiffness: 'float' = 0.5, rel_standing_envs: 'float' = 0.0, resample_time_s: 'float | None' = None, zero_command_prob: 'float' = 0.2) |
|
Expand velocity command ranges when mean tracking_lin_vel exceeds a threshold. |
|
End-effector goal config in spherical coordinates. |
|
Go2ArmDomainRandConfig(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>) |
|
Go2ArmManipLocoCfg(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: 'Go2ArmSensor' = <factory>, ik: 'IKConfig' = <factory>, asset: 'Asset' = <factory>, iterations: 'int | None' = None, model_file: 'str' = <factory>, init_state: 'InitState' = <factory>, commands: 'CommandsConfig' = <factory>, reward_config: 'RewardConfig | None' = None, domain_rand: 'Go2ArmDomainRandConfig' = <factory>, goal_ee: 'EEGoalConfig' = <factory>, history: 'HistoryConfig' = <factory>, arm_stage: 'ArmStageConfig' = <factory>, curriculum: 'CurriculumConfig' = <factory>) |
|
Actor/critic observation history lengths. |
|
InitState(pos: 'list[float]' = <factory>) |
|
RewardConfig(scales: 'dict[str, float]', tracking_sigma: 'float', base_height_target: 'float', target_foot_height: 'float' = 0.1, object_sigma: 'float' = 0.1, leg_dof_upper_limits: 'list[float]' = <factory>, leg_dof_lower_limits: 'list[float]' = <factory>, dof_pos_limit_margin: 'float' = 0.01) |
- class unilab.envs.locomotion.go2_arm.manip_loco.InitState[source]¶
Bases:
objectInitState(pos: ‘list[float]’ = <factory>)
- class unilab.envs.locomotion.go2_arm.manip_loco.Go2ArmDomainRandConfig[source]¶
Bases:
DomainRandConfigGo2ArmDomainRandConfig(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:
- __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>)¶
- class unilab.envs.locomotion.go2_arm.manip_loco.EEGoalConfig[source]¶
Bases:
objectEnd-effector goal config in spherical coordinates.
- Parameters:
- __init__(sphere_l_range=<factory>, sphere_phi_range=<factory>, sphere_theta_range=<factory>, traj_time_range=<factory>, hold_time_range=<factory>, collision_upper_limits=<factory>, collision_lower_limits=<factory>, underground_limit=-0.57, num_collision_check_samples=10, num_resample_attempts=10, default_orn_roll=1.5707963267948966, arm_induced_pitch=0.78, delta_orn_r=<factory>, delta_orn_p=<factory>, delta_orn_y=<factory>, init_ee_cart=<factory>)¶
- class unilab.envs.locomotion.go2_arm.manip_loco.CommandsConfig[source]¶
Bases:
CommandsCommandsConfig(vel_limit: ‘list[list[float]]’ = <factory>, resampling_time: ‘float’ = 0.0, heading_command: ‘bool’ = False, heading_range: ‘list[float]’ = <factory>, heading_control_stiffness: ‘float’ = 0.5, rel_standing_envs: ‘float’ = 0.0, resample_time_s: ‘float | None’ = None, zero_command_prob: ‘float’ = 0.2)
- Parameters:
- __init__(vel_limit=<factory>, resampling_time=0.0, heading_command=False, heading_range=<factory>, heading_control_stiffness=0.5, rel_standing_envs=0.0, resample_time_s=None, zero_command_prob=0.2)¶
- class unilab.envs.locomotion.go2_arm.manip_loco.CurriculumConfig[source]¶
Bases:
objectExpand velocity command ranges when mean tracking_lin_vel exceeds a threshold.
- class unilab.envs.locomotion.go2_arm.manip_loco.RewardConfig[source]¶
Bases:
objectRewardConfig(scales: ‘dict[str, float]’, tracking_sigma: ‘float’, base_height_target: ‘float’, target_foot_height: ‘float’ = 0.1, object_sigma: ‘float’ = 0.1, leg_dof_upper_limits: ‘list[float]’ = <factory>, leg_dof_lower_limits: ‘list[float]’ = <factory>, dof_pos_limit_margin: ‘float’ = 0.01)
- Parameters:
- __init__(scales, tracking_sigma, base_height_target, target_foot_height=0.1, object_sigma=0.1, leg_dof_upper_limits=<factory>, leg_dof_lower_limits=<factory>, dof_pos_limit_margin=0.01)¶
- class unilab.envs.locomotion.go2_arm.manip_loco.HistoryConfig[source]¶
Bases:
objectActor/critic observation history lengths. A value of 1 disables history.
- class unilab.envs.locomotion.go2_arm.manip_loco.ArmStageConfig[source]¶
Bases:
objectArmStageConfig(freeze_arm_joints: ‘bool’ = False, disable_ee_goal_trajectory: ‘bool’ = False, fixed_ee_goal_cart: ‘list[float]’ = <factory>)
- Parameters:
- class unilab.envs.locomotion.go2_arm.manip_loco.Go2ArmManipLocoCfg[source]¶
Bases:
Go2ArmBaseCfgGo2ArmManipLocoCfg(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: ‘Go2ArmSensor’ = <factory>, ik: ‘IKConfig’ = <factory>, asset: ‘Asset’ = <factory>, iterations: ‘int | None’ = None, model_file: ‘str’ = <factory>, init_state: ‘InitState’ = <factory>, commands: ‘CommandsConfig’ = <factory>, reward_config: ‘RewardConfig | None’ = None, domain_rand: ‘Go2ArmDomainRandConfig’ = <factory>, goal_ee: ‘EEGoalConfig’ = <factory>, history: ‘HistoryConfig’ = <factory>, arm_stage: ‘ArmStageConfig’ = <factory>, curriculum: ‘CurriculumConfig’ = <factory>)
- Parameters:
scene (SceneCfg)
sim_dt (float)
max_episode_seconds (float)
ctrl_dt (float)
render_spacing (
float)render_offset_mode (
str)post_step_forward_sensor (
bool)control_config (ControlConfig)
noise_config (NoiseConfig)
sensor (Go2ArmSensor)
ik (IKConfig)
asset (Asset)
iterations (int | None)
model_file (str)
init_state (InitState)
commands (CommandsConfig)
reward_config (RewardConfig | None)
domain_rand (Go2ArmDomainRandConfig)
goal_ee (EEGoalConfig)
history (HistoryConfig)
arm_stage (ArmStageConfig)
curriculum (CurriculumConfig)
- model_file: str¶
- max_episode_seconds: float = 20.0¶
- init_state: InitState¶
- commands: CommandsConfig¶
- reward_config: RewardConfig | None = None¶
- sensor: Go2ArmSensor¶
- domain_rand: Go2ArmDomainRandConfig¶
- goal_ee: EEGoalConfig¶
- history: HistoryConfig¶
- arm_stage: ArmStageConfig¶
- curriculum: CurriculumConfig¶
- __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>, ik=<factory>, asset=<factory>, iterations=None, model_file=<factory>, init_state=<factory>, commands=<factory>, reward_config=None, domain_rand=<factory>, goal_ee=<factory>, history=<factory>, arm_stage=<factory>, curriculum=<factory>)¶
- Parameters:
scene (SceneCfg)
sim_dt (float)
max_episode_seconds (float)
ctrl_dt (float)
render_spacing (
float)render_offset_mode (
str)post_step_forward_sensor (
bool)control_config (ControlConfig)
noise_config (NoiseConfig)
sensor (Go2ArmSensor)
ik (IKConfig)
asset (Asset)
iterations (int | None)
model_file (str)
init_state (InitState)
commands (CommandsConfig)
reward_config (RewardConfig | None)
domain_rand (Go2ArmDomainRandConfig)
goal_ee (EEGoalConfig)
history (HistoryConfig)
arm_stage (ArmStageConfig)
curriculum (CurriculumConfig)
- class unilab.envs.locomotion.go2_arm.manip_loco.Go2ArmManipLocoDRProvider[source]¶
Bases:
LocomotionDRProvider- Parameters:
- class unilab.envs.locomotion.go2_arm.manip_loco.Go2ArmManipLocoEnv[source]¶
Bases:
Go2ArmBaseEnv- Parameters:
cfg (
Go2ArmManipLocoCfg)
- __init__(cfg, num_envs=1, backend_type='mujoco')[source]¶
- Parameters:
cfg (
Go2ArmManipLocoCfg)
- property obs_groups_spec: dict[str, int]¶
101}.
Subclasses MUST override this property.
- Type:
Return observation group dimensions, e.g. {“obs”
- Type:
98, “critic”
- apply_action(actions, state)[source]¶
子类实现:action → ctrl
- Parameters:
actions (
ndarray)state (
NpEnvState)
- Return type:
- update_state(state)[source]¶
子类实现:计算 obs/reward/terminated
- Parameters:
state (
NpEnvState)- Return type: