EKF and rangefinder data

I’m trying to understand how ArduPlane’s EKF uses rangefinder data.

From what I understand about how EKF is supposed to work, you provide it with as many uncertain (noisy) sources of data as possible and it combines these sources, and depending on their reliability weighs them to produce the final estimate.

So we should really always feed all the relevant data: GPS, altimeter measurements, gyroscopes, accelerometer, compass, airspeed and barometric pressure measurements, etc.

However, reading the parameter list I see things like EK2_ALT_SOURCE (“This parameter controls which height sensor is used by the EKF”). Wait, do I have to pick just one source?

It gets even more interesting as, according to the parameter documentation, I cannot even use EK2_ALT_SOURCE = 1 (Range Finder as primary source) if I don’t have optical flow enabled. But I just want to use a range finder (little laser that measures distance from ground), not optical flow (determining position from how the ground patterns change below me), and I can’t do that?

Why are EKF sources in ArduPlane so restricted? Are there any plans to lift these restrictions?

1 Like