unilab.tasks.locomotion.go2.tensor_parity

Minimal tensor parity runtime for the canonical Go2 joystick-flat owner.

This module is an M9 contract pilot only. It is intentionally not registered as a production backend and does not change any backend support claim. The runtime negotiates UniSim’s public tensor lifecycle and keeps the canonical Go2

observation, reward, termination, and mask-reset equations tensor-native.

Classes

Go2ParityConfig

Numerical parameters of the canonical DR-free Go2 parity owner.

Go2ParityRuntime

Exercise the canonical Go2 equations through public backend tensor APIs.

Go2ParityState

Torch state returned by the Go2 parity pilot.

class unilab.tasks.locomotion.go2.tensor_parity.Go2ParityConfig[source]

Bases: object

Numerical parameters of the canonical DR-free Go2 parity owner.

Parameters:
  • action_scale (float)

  • ctrl_dt (float)

  • max_episode_steps (int)

  • gait_frequency (float)

  • tracking_lin_vel_std (float)

  • tracking_ang_vel_std (float)

  • base_height_target (float)

  • foot_target_height (float)

  • foot_height_kernel (float)

  • swing_start (float)

  • contact_threshold (float)

  • stance_threshold (float)

  • bad_orientation_limit (float)

  • tracking_lin_vel_weight (float)

  • tracking_ang_vel_weight (float)

  • lin_vel_z_weight (float)

  • ang_vel_xy_weight (float)

  • base_height_weight (float)

  • action_rate_weight (float)

  • joint_deviation_weight (float)

  • contact_weight (float)

  • swing_feet_weight (float)

action_scale: float = 0.25
ctrl_dt: float = 0.02
max_episode_steps: int = 1000
gait_frequency: float = 2.0
tracking_lin_vel_std: float = 0.5
tracking_ang_vel_std: float = 0.5
base_height_target: float = 0.3
foot_target_height: float = 0.1
foot_height_kernel: float = 0.01
swing_start: float = 0.6
contact_threshold: float = 0.1
stance_threshold: float = 0.6
bad_orientation_limit: float = 1.0471975511965976
tracking_lin_vel_weight: float = 1.0
tracking_ang_vel_weight: float = 0.2
lin_vel_z_weight: float = -5.0
ang_vel_xy_weight: float = -0.1
base_height_weight: float = -100.0
action_rate_weight: float = -0.005
joint_deviation_weight: float = -0.1
contact_weight: float = 0.24
swing_feet_weight: float = 4.0
__init__(action_scale=0.25, ctrl_dt=0.02, max_episode_steps=1000, gait_frequency=2.0, tracking_lin_vel_std=0.5, tracking_ang_vel_std=0.5, base_height_target=0.3, foot_target_height=0.1, foot_height_kernel=0.01, swing_start=0.6, contact_threshold=0.1, stance_threshold=0.6, bad_orientation_limit=1.0471975511965976, tracking_lin_vel_weight=1.0, tracking_ang_vel_weight=0.2, lin_vel_z_weight=-5.0, ang_vel_xy_weight=-0.1, base_height_weight=-100.0, action_rate_weight=-0.005, joint_deviation_weight=-0.1, contact_weight=0.24, swing_feet_weight=4.0)
Parameters:
  • action_scale (float)

  • ctrl_dt (float)

  • max_episode_steps (int)

  • gait_frequency (float)

  • tracking_lin_vel_std (float)

  • tracking_ang_vel_std (float)

  • base_height_target (float)

  • foot_target_height (float)

  • foot_height_kernel (float)

  • swing_start (float)

  • contact_threshold (float)

  • stance_threshold (float)

  • bad_orientation_limit (float)

  • tracking_lin_vel_weight (float)

  • tracking_ang_vel_weight (float)

  • lin_vel_z_weight (float)

  • ang_vel_xy_weight (float)

  • base_height_weight (float)

  • action_rate_weight (float)

  • joint_deviation_weight (float)

  • contact_weight (float)

  • swing_feet_weight (float)

class unilab.tasks.locomotion.go2.tensor_parity.Go2ParityRuntime[source]

Bases: object

Exercise the canonical Go2 equations through public backend tensor APIs.

Parameters:
__init__(backend, *, command, reset_qpos, reset_qvel, device='cpu', cfg=Go2ParityConfig(action_scale=0.25, ctrl_dt=0.02, max_episode_steps=1000, gait_frequency=2.0, tracking_lin_vel_std=0.5, tracking_ang_vel_std=0.5, base_height_target=0.3, foot_target_height=0.1, foot_height_kernel=0.01, swing_start=0.6, contact_threshold=0.1, stance_threshold=0.6, bad_orientation_limit=1.0471975511965976, tracking_lin_vel_weight=1.0, tracking_ang_vel_weight=0.2, lin_vel_z_weight=-5.0, ang_vel_xy_weight=-0.1, base_height_weight=-100.0, action_rate_weight=-0.005, joint_deviation_weight=-0.1, contact_weight=0.24, swing_feet_weight=4.0))[source]
Parameters:
reset(reset_mask=None)[source]
Parameters:

reset_mask (Tensor | None)

Return type:

dict[str, Tensor]

step(actions, nsteps=2)[source]
Parameters:
Return type:

Go2ParityState

class unilab.tasks.locomotion.go2.tensor_parity.Go2ParityState[source]

Bases: object

Torch state returned by the Go2 parity pilot.

Parameters:
obs: dict[str, Tensor]
reward: Tensor
terminated: Tensor
truncated: Tensor
info: dict[str, Any]
__init__(obs, reward, terminated, truncated, info)
Parameters: