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

AP_GPS: use only when HDT heading is available #22432

Closed
wants to merge 1 commit into from

Conversation

tatsuy
Copy link
Contributor

@tatsuy tatsuy commented Dec 17, 2022

Septentrio modules send HDT empty messages before getting correct heading.
When AP receives it, EKF yaw is aligned.
This PR changes to discard empty HDTs and processes only those that contain values.

Before
image
EKF3 yaw is aligned soon after EKF3 tilt alignment complete.

After
image
EKF3 yaw is aligned after GPS yaw is set.

Tested with CubeBlack+mosaic-H.

Note:
When ARMING_REQUIRE=0 is set, EKF Failsafe is not cleared forever.
After this changes, the problem with EKF Failsafe has also been fixed.
If I use THS instead of HDT, it also fixed this problem.

@tridge
Copy link
Contributor

tridge commented Dec 17, 2022

can you give me some samples of the full NMEA sentences when heading is and is not valid?
I have reworked yaw for NMEA GPS here and I want to know if this will work
#22261
Note that you can waf configure with --enable-gps-logging to get full GPS logs on the microSD card. These logs can be replayed in SITL for testing driver changes.
It would be great if you could get some Septentrio NMEA logs with and without yaw
It would also be good to find a message for Septentrio that gives the relative positions of the two antennas instead of just giving yaw. The HDT and THS messages just give a yaw value, which means ArduPilot has no way to confirm the yaw is reliable. It is much better to get the relative positions of the antennas, then use the GPS_MB1_ parameters to set the known FRD distance between the antennas, and ArduPilot calculates the yaw from that. That way ArduPilot can reject the yaw when the FRD distance doesn't match the relative antenna positions within a margin of error.
I'm also curious why you are not using the SBF driver, which is specific to Septentrio. Is there some advantage to using the NMEA driver?

@tatsuy
Copy link
Contributor Author

tatsuy commented Dec 18, 2022

@tridge Thank you for your review.
This is the empty message.
$GPHDT,,T*1B

and I tested your branch. but it doesn't work in my case.
The driver seems to accept empty HDTs and THSs.
I got full GPS logs, and I sent it partner_eams group on discord.

I'm also curious why you are not using the SBF driver, which is specific to Septentrio. Is there some advantage to using the NMEA driver?

SBF driver for heading is not yet supported.
#19165
I would like to help to get this PR merged too.

tridge added a commit to tridge/ardupilot that referenced this pull request Dec 18, 2022
tridge added a commit to tridge/ardupilot that referenced this pull request Dec 19, 2022
@tridge tridge closed this in fc5ae60 Dec 19, 2022
LuaTeo pushed a commit to LuaTeo/ardupilot that referenced this pull request Dec 22, 2022
xianglunkai pushed a commit to xianglunkai/ardupilot that referenced this pull request Dec 27, 2022
rsaxvc pushed a commit to rsaxvc/ardupilot that referenced this pull request Mar 18, 2023
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