RTK Flight Stability Issues

We’ve been flying with a Here on GPS1 and RTK on GPS2 (NMEA inputs). If we fly in GPS “Best” mode, RTK looks great but the quad (or hex) oscillates back and forth about 3 foot horizontally. Any one else seeing this?

We’re trying to debug, and are thinking it could be one of the following:

  • we’ve got a parameter set wrong or sub-optimal
  • “blending” is not working correctly
  • ardupilot is confused with Here having a Compass but the RTK not
  • Since we’re sending NMEA from RTK to GPS2, it might be that the EKF is not getting some piece of info, like velocity data

Any comments or suggestions?


Hey Don, Here is a pic of the screen while we were in flight. You can see where the quad was moving back and forth. Remind me, we were getting “RTK Fix” during the flight, right?


Yes, we were in RTK Fix the whole time.

Blending is only meant to be used with units from the same manufacturer (and really the same hardware generation) as scaling and timing on the different units will all be slightly different, and can cause problems with the data weighting. What was the GPS source for the second GPS, and can you provide a log file?

Mixing two different GPS (from different manufacturers) using Blending is bad. Because different manufacturers have different ways of reporting precision, and the blending code uses those numbers to decide which of the two GPS to use and/or how to blend them. So please just do not do that. The ardupilot user manual warns you not to do that.

Just set that GPS_AUTOSWITCH parameter to 3 to permanently use GPS2 (the RTK one).
You will need to use ArduCopter 3.6.1

My fault, I meant “Best” not “Blend.” Both of the GPS units we’re using are uBlox, but different models. The RTK solution is coming from RTKLIB (RTKNAVI). I believe the Here sends its solution to GPS1 out at 5Hz, and we’re sending the RTK solution to GPS2 at 10Hz.

We are using RTKLIB (RTKNAVI) to provide the RTK solution to GPS2. One challenge with that is that RTKNAVI only starts streaming its NMEA solution when RTK-Float (or RTK-Fix) has been reached. So if if we tell ArduPilot to only listen to GPS2, and then RTK-Float is lost, there will be no GPS solution used by ArduPilot.