Vehicle types (config/vehicles/) — RFC #380 §1¶
A vehicle type is a data-only description of a class of airframe: which platform flies it, which URDF describes it, and which sensors it carries — with each sensor's real driver and sim representation declared in one entry, so a sim-generated wiring baseline diffs cleanly against a hardware bring-up. One directory per type:
In-tree types ship with trunk (quad_default is the reference); other
vehicles arrive as data modules (type: data in RFC #379's module mechanism).
Type vs. unit¶
| Vehicle type | Vehicle unit | |
|---|---|---|
| What | A class of airframe (quad_default) |
One physical serial number (SN-0042) |
| Content | URDF, sensor suite, tuning | Intrinsics/extrinsics calibration |
| Lives in | config/vehicles/<name>/ — shared, committed |
config/local/calibration/<serial>/ — gitignored, per machine |
| Changes when | The design changes | The camera gets re-mounted / re-calibrated in the field |
A fleet entry binds the two: vehicle: quad_default selects the type,
unit: SN-0042 binds config/local/calibration/SN-0042/ (exported to the
container as CALIBRATION_DIR). Recalibrating a unit never edits the shared
package — see config/local/README.md.
Fields (vehicle.yaml)¶
platform:— the platform class (code layer).px4_multirotoris the only platform today; platform modules are RFC #380 Part 2 (future).airframe.base_urdf:— pass-through form: the existing hand-built URDF, package-relative (whatURDF_FILEcarries today). RFC #380 §1's generated form (base xacro +mounts/extrinsics → URDF) is future work; when it lands,base_xacro:replacesbase_urdf:and monolithic URDFs retire.sensors:— list of{type, id, frame, driver, sim}entries.idnames thesensors/<id>/*topic namespace (interface conventions);driveris the hardware-side module,simthe Isaac/Pegasus subgraph that stands in for it. The fleet spawner reads this list (e.g. anylidar*entry enables the RTX lidar subgraph — theENABLE_LIDARenv var equivalent).sim_asset:— the sim asset the spawner instantiates.
Consumed by tools/fleet/resolve_fleet.py (URDF/vehicle exports per robot)
and simulation/isaac-sim/launch_scripts/fleet_spawn.py (spawn + sensor
toggles). See docs/development/fleets.md.