GPS for Yaw: How do I reduce tolerance for error in the computed distance between antennas?

I’m using two uBlox ZED F9P units in moving baseline mode to get yaw. In the documentation, I read that one of the tests for a valid GPS yaw is that the computed distance between antennas is different by less than 20% than the distance implied by the y-positions of the antennas. In my case, 20% of about 1.2m is 24 cm, which seems too generous (I have measured and input the actual separation to ~1 cm accuracy). Is there a way to reduce the tolerance to something closer to the actual RTK relative precision, which should be on the order of “a few” centimeters?

I’m asking because I believe the GPS yaw might have been off by 20 or so degrees on my last flight (it was dead-on when I tested it in the morning but seemed to be biased after rebooting), and I’m trying to rule out possible causes.

Generally, the distance of 40 cm has met the basic requirements.
As for why there was a deviation of 20 degrees, this is probably related to your initial value of rtk.
for the best choise, you can try novatel 617D/718D(using headingb msg)

You may have some questions about my suggestion, why use headingb message? It has its own state like the gps state. Through this state, it can be ensured that the course can be initialized correctly.

Check the GPS_POS parameters. They should be in the same plane in terms of X.

They are in the same plane. Also, the heading was exactly correct the first time I booted the system, but it was off when I rebooted 15 minutes later, which I don’t understand. That’s why I was wondering whether the 20% tolerance is too large.

Few centimeters should not have been an issue.

Is this a repeating issue?

Not sure yet. This is a new setup, and I haven’t had a chance to re-test it since my previous post. I did write some software to try to capture the actual heading reported by the GPS rover, as opposed to that reported by the EKF, but haven’t tried it out yet.