unilab.envs.motion_tracking.g1.box_tracking

G1 box tracking environment with object-aware motion imitation.

Classes

BoxRewardConfig

Reward config extended with object-tracking terms.

G1BoxTrackingCfg

Configuration for the G1 large-box tracking task.

G1BoxTrackingDomainRandomizationProvider

Reset provider that restores both robot and object state from motion data.

G1BoxTrackingEnv

Motion tracking env extended with large-box state and rewards.

G1BoxTrackingEnvCfg

Registered config for G1 box tracking.

class unilab.envs.motion_tracking.g1.box_tracking.BoxRewardConfig[source]

Bases: RewardConfig

Reward config extended with object-tracking terms.

Parameters:
scales: dict[str, float]
std_object_pos: float = 0.3
std_object_ori: float = 0.4
__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, std_object_pos=0.3, std_object_ori=0.4)
Parameters:
class unilab.envs.motion_tracking.g1.box_tracking.G1BoxTrackingCfg[source]

Bases: G1MotionTrackingCfg

Configuration for the G1 large-box tracking task.

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 (BoxRewardConfig)

  • 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)

  • object_body_name (str)

  • object_pos_threshold (float)

  • object_ori_threshold (float)

motion_file: str | list[str] = '/home/admin1/ws/Eric/UniLab/src/unilab/assets/motions/g1/sub3_largebox_003_boxconverted.npz'
object_body_name: str = 'largebox'
object_pos_threshold: float = 0.25
object_ori_threshold: float = 0.8
reward_config: BoxRewardConfig
__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/sub3_largebox_003_boxconverted.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, object_body_name='largebox', object_pos_threshold=0.25, object_ori_threshold=0.8)
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 (BoxRewardConfig)

  • 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)

  • object_body_name (str)

  • object_pos_threshold (float)

  • object_ori_threshold (float)

pose_randomization: PoseRandomization
velocity_randomization: VelocityRandomization
domain_rand: Domain_Rand
noise_config: NoiseConfig
control_config: ControlConfig
sensor: Sensor
asset: Asset
class unilab.envs.motion_tracking.g1.box_tracking.G1BoxTrackingEnvCfg[source]

Bases: G1BoxTrackingCfg

Registered config for G1 box tracking.

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 (BoxRewardConfig)

  • 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)

  • object_body_name (str)

  • object_pos_threshold (float)

  • object_ori_threshold (float)

__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/sub3_largebox_003_boxconverted.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, object_body_name='largebox', object_pos_threshold=0.25, object_ori_threshold=0.8)
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 (BoxRewardConfig)

  • 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)

  • object_body_name (str)

  • object_pos_threshold (float)

  • object_ori_threshold (float)

class unilab.envs.motion_tracking.g1.box_tracking.G1BoxTrackingDomainRandomizationProvider[source]

Bases: G1MotionTrackingDomainRandomizationProvider

Reset provider that restores both robot and object state from motion data.

Parameters:
build_reset_plan(env, env_ids)[source]
Parameters:
Return type:

ResetPlan

class unilab.envs.motion_tracking.g1.box_tracking.G1BoxTrackingEnv[source]

Bases: G1MotionTrackingEnv

Motion tracking env extended with large-box state and rewards.

Parameters:

cfg (G1BoxTrackingCfg)

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

cfg (G1BoxTrackingCfg)

get_dof_pos()[source]
Return type:

ndarray

get_dof_vel()[source]
Return type:

ndarray

property obs_groups_spec: dict[str, int]

101}.

Subclasses MUST override this property.

Type:

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

Type:

98, “critic”