signalk-attitude-calibrator
v0.2.1
Published
SignalK plugin that applies configurable pitch, roll and yaw offsets (in radians) to navigation.attitude. Supports source filtering and publishes calibrated values as a distinct source to preserve the original data.
Readme
signalk-attitude-calibrator
SignalK plugin that applies fixed offsets (in radians) to navigation.attitude pitch, roll and yaw values.
The calibrated values are republished on navigation.attitude with the plugin as source, so both the original and calibrated values coexist in SignalK with distinct sources.
A feedback loop guard prevents the plugin from processing its own output.
Configuration
| Option | Description | Default |
|--------|-------------|---------|
| Source filter | Only calibrate values from this source label. Leave empty to calibrate all sources. | (all) |
| Pitch offset (rad) | Value added to pitch. Positive = bow up. | 0 |
| Roll offset (rad) | Value added to roll. Positive = starboard down. | 0 |
| Yaw offset (rad) | Value added to yaw. | 0 |
How it works
At each update received on navigation.attitude:
- The source label is checked — updates from the plugin itself are ignored (anti-loop guard)
- If a source filter is configured, updates from other sources are skipped
- The offsets are applied:
calibrated = source_value + offset - The result is published on
navigation.attitudewithsource.label = signalk-attitude-calibrator
Units
All offsets are in radians. The plugin declares units: rad metadata for navigation.attitude.pitch, .roll and .yaw at startup.
Typical use case
Chain with signalk-attitude-converter to expose calibrated individual paths:
- signalk-attitude-calibrator — subscribes to
navigation.attitudefrom your sensor source, applies offsets, republishes assignalk-attitude-calibrator - signalk-attitude-converter (mode
object-to-values, source filter =signalk-attitude-calibrator) — splits the calibrated object into individualpitch,roll,yawpaths
Installation
npm install --prefix ~/.signalk signalk-attitude-calibratorRestart SignalK after installation, then configure via Server → Plugin Config → Attitude Calibrator.
Changelog
0.1.1
- Added optional source filter to limit calibration to a specific source label
- Added anti-loop guard to prevent processing the plugin's own output
- Improved package description
0.1.0
- Initial release: pitch/roll/yaw offset calibration in radians
License
MIT — Jean-Laurent Girod
