Spanda provides first-class positioning types and sensor support for autonomous navigation.
| Type | Purpose |
|---|---|
GpsFix |
GPS fix with lat/lon and motion fields |
GnssFix |
Multi-constellation GNSS fix with quality metrics |
GeoPoint |
WGS84 coordinate pair |
GeoFence |
Circular geofence region |
Altitude, Heading, SpeedOverGround |
Navigation scalars |
SatelliteInfo, PositionAccuracy, NavigationStatus |
Fix metadata |
Create coordinates with the geo() builtin:
let home: GeoPoint = geo(30.2672, -97.7431);
sensor gps: GPS on "/gps";
sensor gnss: GNSS on "/gnss";
on gps.fix { update_route(gps); }
on gps.lost { enter degraded_mode; }
on gps.acquired { resume_navigation; }
Import types from std.positioning:
GpsFix, GnssFix, GeoPoint, GeoFence, NavigationStatus, …Inject positioning faults during compatibility simulation:
simulate_compatibility {
fault GPSLost;
fault GpsDrift; // accumulates ~5 cm/s coordinate drift; fires `on gps.drift`
fault GpsSpoofing; // offsets lat/lon and lowers fix quality; fires `on gps.spoofed`
}
Grant gps.read in robot permissions for signed GPS telemetry access.
See also: Geofencing, Connectivity.