Skip to content
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

GPS: Add support for GNSS receiver resilience information #11781

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

chiara-septentrio
Copy link

@chiara-septentrio chiara-septentrio commented Aug 19, 2024

Added support for GNSS receivers' resilience information

Description

This pull request modifies the UI to adapt to the resilience information for GPS interference (jamming and spoofing) as well as status for the GPS that were both recently added to mavlink. These changes only impact users that have GPS that use those mavlink messages, otherwise nothing new will show and it won't crowd the UI.

Interference

For interference, the status are shown with a new icon that colors depending on the status:

Status Color Example
Unknown (default) None, the icon won't show N/A
OK White image
Mitigated Orange image
Ongoing Red image

A drop-down menu will then allow user to have more insight into the kind of interference happening, for example:

Example of mitigated interference Example of interference
image image
Note: the lower-case 'i' has been fixed later

Authentication

GNSS authentication is another way to check for interference, for example using Galileo OSNMA. An icon was also added for this purpose the same as the interference with a drop-down menu :

Status Color Example
Unknown (default) None, the icon won't show N/A
OK White
Initializing/In progress Yellow image
Ongoing Red image
Available but sisabled Gray image

GPS Status

The added GPS status message allow to know the error concerning the GPS. If one or more error happen, to warn the user, the GPS icon will turn red and a field, GPS status, will be added to the drop-down menu (it isn't visible otherwise).

Status Example
One error image
Multiple errors image

NB

  • I am more than willing to discuss any changes to the UI to improve this pull request, and implement them.

Test Steps

I used PX4 with the resilience message enabled with a Pixhawk4 and a Septentrio Mosaic go. Not all status could be easily recreated, interference was hard-coded to test its impact on the UI and not all error were tested, only ones that could be provoked.
As of creating this pull request, the resilience PR has to be approved after a minor style change and its logic will not be modified, it can be safely used for testing.

Checklist:

Related Issue

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@chiara-septentrio chiara-septentrio force-pushed the resilience_new branch 3 times, most recently from 0d6eecb to c509c48 Compare August 19, 2024 14:21
@chiara-septentrio
Copy link
Author

@julianoes Would it be possible to have some feedback on it shortly? I unfortunatly will soon finish my internship and will have a harder time testing changes

@julianoes
Copy link
Contributor

@chiara-septentrio thanks for this. I've put it on my list for next week when I'm back.

Copy link
Contributor

@julianoes julianoes left a comment

Choose a reason for hiding this comment

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

This looks very clean overall, thanks for that!

I made a few minor comments.

@HTRamsey any objections from your side?

src/UI/toolbar/GPSAuthenticationIndicator.qml Outdated Show resolved Hide resolved
} else if (_activeVehicle.gps.systemErrors.value === 64) {
return qsTr("Output congestion")
}
return "Multiple errors"
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it be worthwhile to concatenate all errors or does that not fit? I'm just thinking "Multiple errors" might not be very helpful, right?

Copy link
Author

Choose a reason for hiding this comment

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

I was worried that too many errors would make it too crowdy even if it's unlikely to happen, I could try concatenatinge all them as it would make it clearer though

Copy link
Contributor

Choose a reason for hiding this comment

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

This change was probably not on purpose, right?

Copy link
Author

Choose a reason for hiding this comment

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

I was not, the fork was created a while ago and had the old bash file and I modified it to make it work correctly before updating it. I accidentally added it to a commit and removed it later when I realized, it still shows up in the pull request though

@@ -1312,7 +1312,7 @@ void MockLink::_sendGpsRawInt(void)
0, // Altitude uncertainty in meters * 1000 (positive for up).
0, // Speed uncertainty in meters * 1000 (positive for up).
0, // Heading / track uncertainty in degrees * 1e5.
65535); // Yaw not provided
Copy link
Collaborator

Choose a reason for hiding this comment

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

?

@@ -0,0 +1,26 @@
find_package(Qt6 REQUIRED COMPONENTS Core Qml)

add_custom_target(UiToolbarQml
Copy link
Collaborator

Choose a reason for hiding this comment

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

Not really necessary as this doesn't actually do anything

@HTRamsey
Copy link
Collaborator

@chiara-septentrio if you have plans to do an update to this, I am definitely interested in it

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.

4 participants