Question about EKF/AHRS/position internal update rate

Hello Everyone,

we are currently building a plane, that will be flying at a relatively high speed of about 20m/s. On board is a Raspberry Pi companion computer, communicating with our Pixhawk Cube Orange over Mavlink. For our application the companion computer needs a very precise GPS/global position of the aircraft at all times. For this we have a U-Blox F9P RTK GPS installed. The GPS can give position outputs at a rate of at most 10Hz.

I know, that the positions provided by the GPS are used in the ardupilot AHRS/EKF to correct/calculate an estimated position. However, despite reading through the documentation for quite a while I could not find any number on the rate at which a new estimated position is calculated within the autopilot.

This is very important for us to know, because at a speed of 20m/s a GPS position that is “too old” would result in a fairly large offset (for example two meters for 0.1 second old data, which would be the GPS NAV rate).

So this is my question: At max, how “old” can position data be, that our companion computer receives from the autopilot via Mavlink after sending a request for such data?
Based on this we have to choose between just using the values the autopilot gives us or implementing our own dead reckoning method on board the companion computer using speed/heading etc.

Any help is very much appreciated, thank you for reading!

I am no expert but my understanding is that parameter SCHED_LOOP_RATE can control how often sensors are pooled, position calculated and output delivered. I am not sure that one loop implies all the cycle is completed, but this gives you an idea of what to look for.

1 Like

Nice, I have never heard about this parameter before :smiley:
This is a good starting point for further research, thank you very much!

Still, if anyone happens to know exactly how the calculation of position is handled, I would be very happy about a confirmation of this :slight_smile:

1 Like