Skip to content

docs/schema: server-side GPS lever-arm correction#680

Open
dirkwa wants to merge 1 commit into
SignalK:masterfrom
dirkwa:feat-gps-lever-arm-correction
Open

docs/schema: server-side GPS lever-arm correction#680
dirkwa wants to merge 1 commit into
SignalK:masterfrom
dirkwa:feat-gps-lever-arm-correction

Conversation

@dirkwa

@dirkwa dirkwa commented May 31, 2026

Copy link
Copy Markdown

Summary

Document the data-model contract for server-corrected navigation.position when GPS antenna offsets are configured.

  • sensors.<id>.sourceRef (new, optional) links a sensor instance to the $source of its data stream — needed when multiple sensors of the same class are present (e.g. multi-GPS).
  • navigation.position description expanded to define the Common Coordinate Reference Point (CCRP) as center-of-vessel on the centerline (body coordinates (design.length.value.overall / 2, 0) measured from the bow), matching the NMEA 2000 / radar / AIS industry convention.
  • Documents the meta.gpsOffsetCorrection entry that travels with corrected navigation.position deltas so history-recording consumers can preserve both the corrected value and the raw antenna measurement (with full provenance: sensorId, fromBow, fromCenter, lengthOverall, headingTrue, rawValue).
  • New section in mdbook/src/data_model.md explaining the lever-arm correction model end-to-end.

Motivation

This is the specification side of SignalK/signalk-server#2399, which adds the multi-GPS configuration UI and the in-server lever-arm corrector. Source priorities mean the active position source can flip between antennas with different offsets, which is fragile to correct client-side; the server has the active-source resolution and the heading, so it applies the correction in-process and emits the raw value plus correction provenance in meta for downstream history.

Document the data-model contract for server-corrected navigation.position
when GPS antenna offsets are configured. Adds sensors.<id>.sourceRef so
sensor metadata can be linked to its data stream; describes
navigation.position as the Common Coordinate Reference Point (CCRP) at
center-of-vessel on the centerline (body coordinates (length/2, 0)
measured from the bow) when correction is active; documents the
meta.gpsOffsetCorrection entry that preserves the raw value and the
correction provenance.

Motivated by SignalK/signalk-server#2399, which adds the multi-GPS
configuration UI and the in-server lever-arm corrector.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant