Skip to content

aerocar

Minimal three-policy AeroCar sim2real runtime.

Classes:

Name Description
AeroCarState

Deployment state visible to ROS and sim2sim transports.

AeroCarProfile

Deployment scope for a full mission or one isolated policy task.

AeroCarFeedback

ROS-independent subset of MAVROS vehicle feedback.

AeroCarRuntimeConfig

Fixed-contract configuration for the minimal AeroCar deployment.

AeroCarPlayRuntime

Orchestrate fixed aerial, landing, and ground policies without ROS types.

Functions:

Name Description
adapt_aerocar_firmware_yaw_rate

Compensate the AeroCar firmware's reverse differential-drive mixer.

AeroCarState

Bases: str, Enum

Deployment state visible to ROS and sim2sim transports.

AeroCarProfile

Bases: str, Enum

Deployment scope for a full mission or one isolated policy task.

AeroCarFeedback dataclass

AeroCarFeedback(connected: bool = False, armed: bool = False, offboard: bool = False, vtol_state: int = 0, landed_state: int = 0)

ROS-independent subset of MAVROS vehicle feedback.

AeroCarRuntimeConfig dataclass

AeroCarRuntimeConfig(profile: AeroCarProfile | str = AeroCarProfile.MISSION, model_path: str = '', aerial_model_path: str = '', landing_model_path: str = '', ground_model_path: str = '', device: str = 'cpu', 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, touchdown_idle_signal: float = 0.04, mode_switch_retry_s: float = 1.0, mode_switch_timeout_s: float = 10.0, params: TrackVehicleParams = TrackVehicleParams(), flight_mapping: FlightMappingConfig = FlightMappingConfig(), ground_mapping: DifferentialDriveMappingConfig = DifferentialDriveMappingConfig(), thrust_model: ThrustModelConfig = ThrustModelConfig())

Fixed-contract configuration for the minimal AeroCar deployment.

Methods:

Name Description
__post_init__

Validate fixed-contract runtime settings.

__post_init__

__post_init__() -> None

Validate fixed-contract runtime settings.

AeroCarPlayRuntime

AeroCarPlayRuntime(cfg: AeroCarRuntimeConfig, *, policy_runners: dict[str, Any] | None = None)

Orchestrate fixed aerial, landing, and ground policies without ROS types.

Load policies and initialize deterministic deployment state.

Methods:

Name Description
set_external_collective_acc

Provide delayed IMU collective acceleration to the thrust estimator.

request_landing

Request the only automatic mission transition exposed to operators.

step

Advance the mission and return one transport-neutral command.

set_external_collective_acc

set_external_collective_acc(value: float | None) -> None

Provide delayed IMU collective acceleration to the thrust estimator.

request_landing

request_landing() -> bool

Request the only automatic mission transition exposed to operators.

step

step(state: ControllerState | None, feedback: AeroCarFeedback, now_sec: float) -> dict | None

Advance the mission and return one transport-neutral command.

adapt_aerocar_firmware_yaw_rate

adapt_aerocar_firmware_yaw_rate(forward_speed: float, yaw_rate: float) -> float

Compensate the AeroCar firmware's reverse differential-drive mixer.

The firmware interprets yaw as a steering direction while reversing, but the policy command is a body yaw rate whose sign is independent of forward speed. Reverse the transport value only where the firmware enters its backward-motion branch. Policy/runtime commands remain unchanged.