unilab.envs.motion_tracking.g1.flip_tracking_sac

SAC variants of the G1 flip / wall-flip tracking tasks.

These pair the flip-specialized configs (scene / motion / zeroed reset randomization, from flip_tracking) with the asymmetric actor-critic observation layout of G1MotionTrackingSACEnv (base_lin_vel appended to the critic obs).

The flip behavior lives entirely in the cfg dataclasses and the SAC obs augmentation lives entirely in the env class, so the two compose by simple inheritance — no obs override is duplicated here. Registered under separate names so the PPO flip pipeline (G1FlipTracking / G1WallFlipTracking) is untouched, and sit at the same level as G1WBTObs.

Classes

G1FlipTrackingSACCfg

Flip tracking cfg for SAC (identical fields, separate registry entry).

G1FlipTrackingSACEnv

Flip tracking env with the SAC asymmetric actor-critic obs layout.

G1WallFlipTrackingSACCfg

Wall-flip tracking cfg for SAC (identical fields, separate registry entry).

G1WallFlipTrackingSACEnv

Wall-flip tracking env with the SAC asymmetric actor-critic obs layout.

class unilab.envs.motion_tracking.g1.flip_tracking_sac.G1FlipTrackingSACCfg[source]

Bases: G1FlipTrackingCfg

Flip tracking cfg for SAC (identical fields, separate registry entry).

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 (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/flip_360_001__A304.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='start', 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.0, 0.0), anchor_pos_z_threshold=0.25, anchor_ori_threshold=1000000000.0, 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=True)
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 (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.flip_tracking_sac.G1FlipTrackingSACEnv[source]

Bases: G1MotionTrackingSACEnv

Flip tracking env with the SAC asymmetric actor-critic obs layout.

The motrix backend is registered for sim2sim eval/playback only.

Parameters:

cfg (G1MotionTrackingCfg)

class unilab.envs.motion_tracking.g1.flip_tracking_sac.G1WallFlipTrackingSACCfg[source]

Bases: G1WallFlipTrackingCfg

Wall-flip tracking cfg for SAC (identical fields, separate registry entry).

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 (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/flip_from_wall_104__A304.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.0, 0.0), anchor_pos_z_threshold=0.5, anchor_ori_threshold=1000000000.0, ee_body_pos_z_threshold=0.5, 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=True)
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 (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.flip_tracking_sac.G1WallFlipTrackingSACEnv[source]

Bases: G1MotionTrackingSACEnv

Wall-flip tracking env with the SAC asymmetric actor-critic obs layout.

The motrix backend is registered for sim2sim eval/playback only.

Parameters:

cfg (G1MotionTrackingCfg)