Skip to content

aerocar

Independent three-policy AeroCar runtime for MuJoCo sim2sim.

Classes:

Name Description
AeroCarSimState

Policy phase owned entirely by the MuJoCo sim2sim runtime.

AeroCarMuJoCoConfig

Configuration for independent AeroCar MuJoCo policy playback.

AeroCarMuJoCoRunner

Run aerial trajectory, landing, and ground policies in MuJoCo.

AeroCarSimState

Bases: str, Enum

Policy phase owned entirely by the MuJoCo sim2sim runtime.

AeroCarMuJoCoConfig dataclass

AeroCarMuJoCoConfig(aerial_model_path: str = '', landing_model_path: str = '', ground_model_path: str = '', device: str = 'cpu', scene_path: str = str(LAV2_ASSETS.scene_path), initial_state: AeroCarSimState = AeroCarSimState.AERIAL_TRAJ, initial_altitude: float = 1.0, aerial_trajectory: str = 'helix', ground_trajectory: str = 'rectangle', trajectory_time_offset: float = 0.0, ground_z: float = 0.0, landing_target_height: float = 0.05, touchdown_max_vertical_speed: float = 0.25, touchdown_stable_s: float = 0.4, decimation: int = 2, ground_actuator: GroundDriveActuatorConfig = (lambda: GroundDriveActuatorConfig(yaw_allocation_scale=2.1, left_delay_s=0.01, right_delay_s=0.03))(), log_output_folder: str = 'results', save_log: bool = True, plot_log: bool = True, params: TrackVehicleParams = (lambda: copy.deepcopy(LAV2_ASSETS.vehicle_params))(), flight_mapping: FlightMappingConfig = FlightMappingConfig(), ground_mapping: DifferentialDriveMappingConfig = DifferentialDriveMappingConfig())

Configuration for independent AeroCar MuJoCo policy playback.

Methods:

Name Description
__post_init__

Validate settings used directly by the MuJoCo loop.

__post_init__

__post_init__() -> None

Validate settings used directly by the MuJoCo loop.

AeroCarMuJoCoRunner

AeroCarMuJoCoRunner(cfg: AeroCarMuJoCoConfig, *, policy_runners: dict[str, Any] | None = None)

Run aerial trajectory, landing, and ground policies in MuJoCo.

Load policies and initialize MuJoCo-specific controllers.

Methods:

Name Description
request_landing

Request the normal aerial-to-landing transition.

force_state

Force a policy phase for isolated interactive playback.

reset

Reset controllers and reactivate the configured initial phase.

step

Advance the policy FSM and produce a MuJoCo actuator command.

control_callback

Run policy inference at decimated rate and apply latched controls.

key_callback

Handle interactive phase selection in the MuJoCo viewer.

load_callback

Load the LAV2 scene and register the MuJoCo control callback.

run

Launch the interactive MuJoCo AeroCar playback session.

request_landing

request_landing() -> bool

Request the normal aerial-to-landing transition.

force_state

force_state(new_state: AeroCarSimState, now_sec: float) -> bool

Force a policy phase for isolated interactive playback.

reset

reset() -> None

Reset controllers and reactivate the configured initial phase.

step

step(m: MjModel, d: MjData) -> dict

Advance the policy FSM and produce a MuJoCo actuator command.

control_callback

control_callback(m: MjModel, d: MjData) -> None

Run policy inference at decimated rate and apply latched controls.

key_callback

key_callback(keycode: int) -> None

Handle interactive phase selection in the MuJoCo viewer.

load_callback

load_callback() -> tuple[mujoco.MjModel, mujoco.MjData]

Load the LAV2 scene and register the MuJoCo control callback.

run

run() -> None

Launch the interactive MuJoCo AeroCar playback session.