Septentrio resillience reporting
Solved Problem
When errors occur in attached GNSS receivers, there is no way to report them to the user so they know what is going wrong.
This PR is needed by QGC : https://github.com/mavlink/qgroundcontrol/pull/13009 This is an update of PR made by @flyingthingsintothings https://github.com/PX4/PX4-Autopilot/pull/23096
Solution
- Add automatic configuration for Septentrio receivers to report resilience information every second
- Add to Septentrio parser so it can parse the new message
- Change the uORB message for GNSS information to support this new
- MAVLink message is in development.xml, you need to pass
CONFIG_MAVLINK_DIALECT="development"to yourdefault.px4board
Changelog Entry
For release notes:
Feature: Report resilience information from GNSS receivers
Documentation: Need to clarify page ...
Test coverage
- I have tested this PR using a Septentrio receiver to emulate jamming, there was just a typo that has now been fixed.
Context
- Link to old PR : https://github.com/PX4/PX4-Autopilot/pull/23096
- Link to QGC PR : https://github.com/mavlink/qgroundcontrol/pull/13009
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-june-11-2025-team-sync-and-community-q-a/45976/1
Hi :wave: Here is a quick update of this PR before the dev call,
-
Mavlink message have now 0 for default value (encoding 0 to 10 value to 1 to 11) has discussed in Mavlink discord channel. PR link : https://github.com/mavlink/mavlink/pull/2293
-
I have renamed spoofing and jamming to match mavlink message : JAMMING_STATE_WARNING -> JAMMING_STATE_MITIGATED JAMMING_STATE_CRITICAL -> JAMMING_STATE_DETECTED SPOOFING_STATE_NONE -> SPOOFING_STATE_OK SPOOFING_STATE_INDICATED -> SPOOFING_STATE_MITIGATED SPOOFING_STATE_MULTIPLE -> SPOOFING_STATE_DETECTED
-
GNSS_INTEGRITY.hpp have been simplified, no more constant needed
-
I have tested my change with a Septentrio receiver
I need more time to check raim (default value is not 0 in mavlink message) I will test on Ublox before re-opening this PR.
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-june-25-2025-team-sync-and-community-q-a/46161/3
@hamishwillee can you check wha'ts wrong with the docs ci?
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-june-25-2025-team-sync-and-community-q-a/46161/1
@hamishwillee can you check wha'ts wrong with the docs ci?
Yes, it's an error in a translation file that should have been removed. I'm fixing this in #25120
I have updated this PR to :
- Add uORB
gps_statusthat include all 4 quality metrics - Update
GNSS_INTEGRITY.hppto :- Send one message when at least,
sensor_gpsorgps_statusis updated - Set value to 0 for
gps_sensorand 255 forgps_statuswhen we have no data for a long time
- Send one message when at least,
- Send gps status information in Septentrio receiver
I have tested on QGroundControl, values are correctly set for Septentrio receiver.
Feel free to ask me some changes if needed, I may have time to do it before the dev call :)
Ps: I am not passing SITL test, should I change something ?
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-july-9-2025-team-sync-and-community-q-a/46369/4
@dagar you might wanna take a look, please! Thanks.
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-july-9-2025-team-sync-and-community-q-a/46369/1
@Louis-max-H, CI seems to have caught an issue. Can you please look into this?
../../src/drivers/gnss/septentrio/septentrio.cpp: In member function ‘septentrio::SeptentrioDriver::ConfigureResult septentrio::SeptentrioDriver::configure()’:
../../src/drivers/gnss/septentrio/septentrio.cpp:970:36: error: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘uint32_t’ {aka ‘unsigned int’} [-Werror=format=]
970 | snprintf(msg, sizeof(msg), k_command_sbf_output_pvt, _receiver_stream_main, com_port, sbf_frequency);
| ^~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~
| |
| uint32_t {aka unsigned int}
compilation terminated due to -Wfatal-errors.
cc1plus: all warnings being treated as errors
Hi @hamishwillee, @mrpollo , i will fix these over the weekend and let you know that its done
@mrpollo I've fixed the error, and the docs should now be in sync. please let me know if there's anything else I need to change, or if it's ready for final review
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-july-23-2025-team-sync-and-community-q-a/46617/4
Can you please look into the failing tests? Let us know if you need help with the errors.
Hi @mrpollo. I've resolved the failing tests related to my code changes. The only remaining failure is on the macOS build, which shows a SHA256 mismatch error which appears to be a CI environment issue that is out of my control (correct me pls if i am wrong)
Hello @mrpollo, could you pls let me know if there is anything you need me to address before the dev call tomorrow? We're hoping to get this ready for final review.
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-aug-06-2025-team-sync-and-community-q-a/46826/2
When this goes in and has been verified, it is important to move https://mavlink.io/en/messages/development.html#GNSS_INTEGRITY to common.xml and explain what testing has been done to verify this before it goes into a release.
Also some docs would be nice, though presumably that can be in QGC.
Thanks for the reply! I'll bring this up on the dev call to clarify the specific expectations for the testing report and docs. To ensure we can get this done in time, what's the deadline for these changes to be considered for the next release?
Thanks for the reply! I'll bring this up on the dev call to clarify the specific expectations for the testing report and docs. To ensure we can get this done in time, what's the deadline for these changes to be considered for the next release?
Assuming you mean the PX4 dev call and release, they will know about the deadline. Right now I think the way this is handled is after this merges you create a backport PR into the release/1.16 and any additional requirements go there.
My interest here is in MAVLink. Things in development that go into release builds are a real pain because stakeholders don't have to take them - then we end up with common.xml being forked ... more. The testing we need is a bit up the air. Confirming what fields are actually used and are useful would be a good start - i.e. not just set to the invalid values. Any information you have showing that they allow successful real world debugging, and so on. We're after due diligence. Remember that changing this later is very hard.
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-aug-06-2025-team-sync-and-community-q-a/46826/1
Hi @dagar! During last week's dev call, you mentioned this pr needed an extra review. I just wanted to check in and see if there’s any feedback or changes I can address in preparation for the call tomorrow?
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-aug-13-2025-team-sync-and-community-q-a/46972/2
Hi @dagar, you asked for some clarification on the status mapping during the last dev call. I've attached a file with some explanations. I also sent you a dm on Discord in case that's easier. resiliencePR.pdf
hi @dagar, I just wanted to check in and see if there’s any feedback or changes I can address in preparation for the call today?
/en/dev_log/logging.md
- LinkedFileMissingAnchor: #SDLOG_BACKEND not found in ../advanced_config/parameter_reference.md (/home/runner/work/PX4-Autopilot/PX4-Autopilot/docs/en/advanced_config/parameter_reference.md)
- LinkedFileMissingAnchor: #SDLOG_BACKEND not found in ../advanced_config/parameter_reference.md (/home/runner/work/PX4-Autopilot/PX4-Autopilot/docs/en/advanced_config/parameter_reference.md)
Hi @dagar! I just wanted to check in and see if there’s any feedback or changes I can address in preparation for the call tomorrow?
This pull request has been mentioned on Discussion Forum for PX4, Pixhawk, QGroundControl, MAVSDK, MAVLink. There might be relevant details there:
https://discuss.px4.io/t/px4-dev-call-sep-3-2025-team-sync-and-community-q-a/47287/1
@dagar, hi. I have applied your suggestions and tested. let me know if I should adjust it more