Skip to content

GNSS RTK: Add basic integration #90890

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

ubieda
Copy link
Member

@ubieda ubieda commented May 30, 2025

Description

This PR introduces RTK (Real Time Kinematics) to GNSS modems by providing a path to feed RTK correction data (proposed on #90363).

Detailed changes:

  • Add APIs so RTK clients can be added (basic Serial client is added to demo).
  • Add APIs to allow RTK clients to publish correction data, and for GNSS drivers to feed such data to their modems (applied to UBX F9P driver).
  • Add RTCM3 protocol decoder (framing detection, validated with unit-test suite).
  • Add GNSS RTK sample with python script to convert a PC in a Base-Station (requires a F9P module USB-connected), which feeds data to a Zephyr-powered board (over Serial port).

Note

  1. This PR depends on F9P driver introduction: gnss: Add UBX F9P driver #90027
  2. This PR will be submitted to present at the Architecture WG.
    Adding DNM until both conditions are resolved.

@ubieda ubieda added the DNM This PR should not be merged (Do Not Merge) label May 30, 2025
@@ -0,0 +1,73 @@
/*
Copy link
Member Author

@ubieda ubieda May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd like some feedback WRT this file: As far as I'm concerned this CRC (CRC24Q) calculation is specific to RTCM3, however I don't know if it's preferred to put this under the more generic include/zephyr/sys/crc.h

@ubieda ubieda force-pushed the gnss/rtk-integration branch 4 times, most recently from 36301ff to e333b76 Compare June 4, 2025 19:49
ubieda added 2 commits June 4, 2025 15:51
This patch incorporates the basic RTK API as well as a basic client
integration (Serial) as a way to receive and publish the RTK data.

Specifically, this patch includes:
- API additions.
- RTCM3 frame decoding.
- Unit testsuite for RTCM3 frame decoding.
- Serial client to receive and publish RTK data corrections.
- GNSS RTK sample with simple base-station script over serial and
Zephyr app displaying data-corrections applied.

Signed-off-by: Luis Ubieda <[email protected]>
Enable driver to consume RTK data-correction messages published
in order to enhance GNSS Navigation results.

Signed-off-by: Luis Ubieda <[email protected]>
@ubieda ubieda force-pushed the gnss/rtk-integration branch from e333b76 to a7984f5 Compare June 4, 2025 19:51
Copy link

sonarqubecloud bot commented Jun 4, 2025

Copy link
Member Author

@ubieda ubieda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comments captured from Arch WG review 260701

Comment on lines +5 to +6
menuconfig GNSS_RTK
bool "GNSS RTK client"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

select EXPERIMENTAL

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion: Move to drivers/gnss/*

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
DNM This PR should not be merged (Do Not Merge)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant