unilab.envs.motion_tracking.g1.tracking¶
G1 Motion Tracking Environment - Motion imitation task.
Classes
Domain randomization config required by motrix backend hooks. |
|
Configuration for G1 motion tracking environment. |
|
Deploy-oriented G1 motion tracking env with unitree_rl_lab mimic actor inputs. |
|
Registered deploy configuration for G1 motion tracking. |
|
G1 Motion Tracking Environment. |
|
Registered configuration for G1 motion tracking. |
|
Pose randomization ranges for reset. |
|
Reward configuration for motion tracking. |
|
Velocity randomization ranges for reset. |
- class unilab.envs.motion_tracking.g1.tracking.RewardConfig[source]¶
Bases:
objectReward configuration for motion tracking.
- Parameters:
- __init__(scales=<factory>, std_root_pos=0.3, std_root_ori=0.4, std_body_pos=0.3, std_body_ori=0.4, std_body_lin_vel=1.0, std_body_ang_vel=3.14, std_joint_pos=0.2, std_joint_vel=1.0)¶
- class unilab.envs.motion_tracking.g1.tracking.PoseRandomization[source]¶
Bases:
objectPose randomization ranges for reset.
- Parameters:
- class unilab.envs.motion_tracking.g1.tracking.VelocityRandomization[source]¶
Bases:
objectVelocity randomization ranges for reset.
- Parameters:
- class unilab.envs.motion_tracking.g1.tracking.Domain_Rand[source]¶
Bases:
objectDomain randomization config required by motrix backend hooks.
- Parameters:
- __init__(randomize_base_mass=False, added_mass_range=<factory>, random_com=False, com_offset_x=<factory>, com_offset_y=<factory>, com_offset_z=<factory>, randomize_gravity=False, gravity_range=<factory>, push_robots=False, push_interval=750, max_force=<factory>, push_body_name=None, randomize_kp=False, kp_multiplier_range=<factory>, randomize_kd=False, kd_multiplier_range=<factory>, randomize_geom_friction=False, friction_range=<factory>, friction_geom_pattern='^(left|right)_foot[1-7]_collision$', randomize_joint_default_pos=False, joint_default_pos_range=<factory>)¶
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingCfg[source]¶
Bases:
G1BaseCfgConfiguration for G1 motion tracking environment.
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- motion_file: str | list[str] = '/home/admin1/ws/Eric/UniLab/src/unilab/assets/motions/g1/dance1_subject2_part.npz'¶
- anchor_body_name: str = 'torso_link'¶
- body_names: tuple[str, ...] = ('pelvis', 'left_hip_roll_link', 'left_knee_link', 'left_ankle_roll_link', 'right_hip_roll_link', 'right_knee_link', 'right_ankle_roll_link', 'torso_link', 'left_shoulder_roll_link', 'left_elbow_link', 'left_wrist_yaw_link', 'right_shoulder_roll_link', 'right_elbow_link', 'right_wrist_yaw_link')¶
- sampling_mode: Literal['start', 'clip_start', 'uniform', 'adaptive', 'mixed'] = 'adaptive'¶
- sampling_start_ratio: float = 0.0¶
- truncate_on_clip_end: bool = False¶
- max_episode_seconds: float = 10.0¶
- reward_config: RewardConfig¶
- pose_randomization: PoseRandomization¶
- velocity_randomization: VelocityRandomization¶
- domain_rand: Domain_Rand¶
- joint_position_range: tuple[float, float] = (-0.1, 0.1)¶
- anchor_pos_z_threshold: float = 0.25¶
- anchor_ori_threshold: float = 0.8¶
- ee_body_pos_z_threshold: float = 0.25¶
- ee_body_names: tuple[str, ...] = ('left_ankle_roll_link', 'right_ankle_roll_link', 'left_wrist_yaw_link', 'right_wrist_yaw_link')¶
- undesired_contact_z_threshold: float = 0.05¶
- terminate_on_undesired_contacts: bool = False¶
- __init__(scene=<factory>, sim_dt=0.006666666666666667, max_episode_seconds=10.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>, motion_file='/home/admin1/ws/Eric/UniLab/src/unilab/assets/motions/g1/dance1_subject2_part.npz', anchor_body_name='torso_link', body_names=('pelvis', 'left_hip_roll_link', 'left_knee_link', 'left_ankle_roll_link', 'right_hip_roll_link', 'right_knee_link', 'right_ankle_roll_link', 'torso_link', 'left_shoulder_roll_link', 'left_elbow_link', 'left_wrist_yaw_link', 'right_shoulder_roll_link', 'right_elbow_link', 'right_wrist_yaw_link'), sampling_mode='adaptive', sampling_start_ratio=0.0, truncate_on_clip_end=False, reward_config=<factory>, pose_randomization=<factory>, velocity_randomization=<factory>, domain_rand=<factory>, joint_position_range=(-0.1, 0.1), anchor_pos_z_threshold=0.25, anchor_ori_threshold=0.8, ee_body_pos_z_threshold=0.25, ee_body_names=('left_ankle_roll_link', 'right_ankle_roll_link', 'left_wrist_yaw_link', 'right_wrist_yaw_link'), undesired_contact_z_threshold=0.05, terminate_on_undesired_contacts=False)¶
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingEnvCfg[source]¶
Bases:
G1MotionTrackingCfgRegistered configuration for G1 motion tracking.
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- __init__(scene=<factory>, sim_dt=0.006666666666666667, max_episode_seconds=10.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>, motion_file='/home/admin1/ws/Eric/UniLab/src/unilab/assets/motions/g1/dance1_subject2_part.npz', anchor_body_name='torso_link', body_names=('pelvis', 'left_hip_roll_link', 'left_knee_link', 'left_ankle_roll_link', 'right_hip_roll_link', 'right_knee_link', 'right_ankle_roll_link', 'torso_link', 'left_shoulder_roll_link', 'left_elbow_link', 'left_wrist_yaw_link', 'right_shoulder_roll_link', 'right_elbow_link', 'right_wrist_yaw_link'), sampling_mode='adaptive', sampling_start_ratio=0.0, truncate_on_clip_end=False, reward_config=<factory>, pose_randomization=<factory>, velocity_randomization=<factory>, domain_rand=<factory>, joint_position_range=(-0.1, 0.1), anchor_pos_z_threshold=0.25, anchor_ori_threshold=0.8, ee_body_pos_z_threshold=0.25, ee_body_names=('left_ankle_roll_link', 'right_ankle_roll_link', 'left_wrist_yaw_link', 'right_wrist_yaw_link'), undesired_contact_z_threshold=0.05, terminate_on_undesired_contacts=False)¶
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingDeployEnvCfg[source]¶
Bases:
G1MotionTrackingCfgRegistered deploy configuration for G1 motion tracking.
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- __init__(scene=<factory>, sim_dt=0.006666666666666667, max_episode_seconds=10.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>, motion_file='/home/admin1/ws/Eric/UniLab/src/unilab/assets/motions/g1/dance1_subject2_part.npz', anchor_body_name='torso_link', body_names=('pelvis', 'left_hip_roll_link', 'left_knee_link', 'left_ankle_roll_link', 'right_hip_roll_link', 'right_knee_link', 'right_ankle_roll_link', 'torso_link', 'left_shoulder_roll_link', 'left_elbow_link', 'left_wrist_yaw_link', 'right_shoulder_roll_link', 'right_elbow_link', 'right_wrist_yaw_link'), sampling_mode='adaptive', sampling_start_ratio=0.0, truncate_on_clip_end=False, reward_config=<factory>, pose_randomization=<factory>, velocity_randomization=<factory>, domain_rand=<factory>, joint_position_range=(-0.1, 0.1), anchor_pos_z_threshold=0.25, anchor_ori_threshold=0.8, ee_body_pos_z_threshold=0.25, ee_body_names=('left_ankle_roll_link', 'right_ankle_roll_link', 'left_wrist_yaw_link', 'right_wrist_yaw_link'), undesired_contact_z_threshold=0.05, terminate_on_undesired_contacts=False)¶
- 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 (Sensor)
asset (Asset)
motion_file (str | list[str])
anchor_body_name (str)
body_names (tuple[str, …])
sampling_mode (Literal[‘start’, ‘clip_start’, ‘uniform’, ‘adaptive’, ‘mixed’])
sampling_start_ratio (float)
truncate_on_clip_end (bool)
reward_config (RewardConfig)
pose_randomization (PoseRandomization)
velocity_randomization (VelocityRandomization)
domain_rand (Domain_Rand)
joint_position_range (tuple[float, float])
anchor_pos_z_threshold (float)
anchor_ori_threshold (float)
ee_body_pos_z_threshold (float)
ee_body_names (tuple[str, …])
undesired_contact_z_threshold (float)
terminate_on_undesired_contacts (bool)
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingDomainRandomizationProvider[source]¶
Bases:
DomainRandomizationProvider- Parameters:
- validate(env, capabilities)[source]¶
- Parameters:
env (
Any)capabilities (
DomainRandomizationCapabilities)
- Return type:
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingEnv[source]¶
Bases:
G1BaseEnvG1 Motion Tracking Environment.
- Parameters:
cfg (
G1MotionTrackingCfg)
- __init__(cfg, num_envs=1, backend_type='mujoco')[source]¶
- Parameters:
cfg (
G1MotionTrackingCfg)
- apply_action(actions, state)[source]¶
子类实现:action → ctrl
- Parameters:
actions (
ndarray)state (
NpEnvState)
- Return type:
- 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:
- class unilab.envs.motion_tracking.g1.tracking.G1MotionTrackingDeployEnv[source]¶
Bases:
G1MotionTrackingEnvDeploy-oriented G1 motion tracking env with unitree_rl_lab mimic actor inputs.
- Parameters:
cfg (
G1MotionTrackingCfg)