mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-10 06:23:43 +08:00
37 lines
2.2 KiB
Markdown
37 lines
2.2 KiB
Markdown
# Live Maps source boundary
|
|
|
|
`plannerd` subscribes to `mapdOut` when SLC transport is available.
|
|
`runtime.py` samples the Maps adapter when Maps is configured or a highest/lowest
|
|
selection policy considers it. The [controller contract](README.md) owns adoption,
|
|
confirmation and car-control behavior.
|
|
|
|
`map_source.MapTracker` validates v2 wire structure, source ordering and freshness.
|
|
It exposes diagnostics, not a valid SLC candidate. `map_observation.MapSource`
|
|
projects a fresh `matchedLimit` diagnostic into a valid observation only when its
|
|
way-selection type is `current`. Possible, predicted and extended ways, missing
|
|
speed metadata, GPS/coverage loss and `matchedNoLimit` remain unknown or stale;
|
|
they do not mean regulatory absence. The map provider rejects multiple plausible
|
|
loaded-tile road IDs before selecting a current way and applies direction and
|
|
one-way checks. Provider and offline-package admission remain with the Maps
|
|
lifecycle and storage owners.
|
|
|
|
Map output uses BOOTTIME nanoseconds on Linux. The runtime samples a paired
|
|
MONOTONIC/BOOTTIME clock and passes BOOTTIME to the tracker; the clocks must not
|
|
be interchanged after suspend. Apple uses monotonic as the host fallback.
|
|
GPS observation, computation and output timestamps stay separate. External GPS
|
|
fixes expire after 500 ms, internal fixes after 2 s and car fixes after 2.5 s;
|
|
computation and output expire after 250 ms. V1 records remain decodable but cannot
|
|
create a live candidate because their GPS clock domain was ambiguous.
|
|
|
|
Unknown versions, conflicting status/limit fields, stale evidence and reordering
|
|
cannot authorize a candidate. Source-generation changes clear held evidence.
|
|
A source change without a generation change, generation regression, clock
|
|
regression or excessive restarts fails closed until an explicit tracker reset;
|
|
late packets from retired producers cannot restore a limit.
|
|
|
|
The observation identity binds the current drive, vehicle, producer, source
|
|
generation, GPS source and OSM way ID. It is not a durable identity for restoring
|
|
a limit in a later drive. Freshness and a unique loaded-tile match do not establish
|
|
real-road accuracy or current map metadata. Synthetic host tests verify these
|
|
software gates; they do not qualify Maps on the vehicle.
|