"Error pos horiz variance" while using PX1122R RTK GPS

I am trying to use the RTK GPS based on PX1122R by NavSpark.

Hardware : Pixhawk 2
Firmware: Copter 4.2.2
Frame Type : Quad X
Frame size : 290mm diagonal
GPS1 on serial3 : UBlox M8N
GPS2 on serial4 : PX1122R NS-HP-GN2 @ 230400 baud and 5 Hz update rate. Only the GGA, RMC and VTG sentences are enabled as Ardupilot only uses these. The other sentences such as KSXT and PHD are not available on PX1122R. It does not report the vertical velocity.

The GPS is verified and provides a good rtk fixed solution.
However, when we connect it to pixhawk and move the copter around (by hand without flying it, as we are not very confident yet that it will work), the GPS position drifts when we take a turn or if there is a velocity change. The horizontal position and velocity variance goes very high and results in “Error pos horiz variance”. The position and velocity innovations under XKF3 shoot up as well.

There is no horizontal position drift when copter is stationary on ground or if we move it very very very slowly.

Please refer to the graph below taken from flight controller logs. The vehicle was moved manually by hand. No actual flight was carried out.
It shows the GPS Lat (Red) with the EKF estimated Lat (Green) when using PX1122R.
You will observe that there is a difference in estimated position when we change direction of movement or the velocity is changed.
We did not use any RTK correction here. The raw GPS readings are consistent with movement. The number of satellites was 25.

To verify that there is no problem with the setup, we carried out similar experiment with UBlox M8N GPS receiver. the graph below shows same parameters for Ublox M8N. The vehicle was moved manually by hand. No actual flight was carried out. The GPS Lat (red) and estimated Lat by EKF (Green) do not have such a large difference even when the direction of motion and velocity changes. We are using the same setup. Just the GPS is switched by enabling / disabling appropriate ports.

We have tried following things

  1. Ensure that GPA.delta is under control
  2. Use GPS_DELAY_MS 30ms, 40ms, 50ms, 60ms, 70ms, 80ms, 90ms, 100ms, 120ms, 180ms
  3. Use EKF2 instead of EKF3
    However the drift in horizontal position is not going away. I repeat, this happens only when there is sudden change in velocity or direction of motion.

The logs can be found here for your reference.

Hope someone can point me in right direction.


1 Like