EmuFlight Kalman Filter Tuning
The most distinctive feature of the EmuFlight flight controller software is it's gyro Kalman filter. Yes, the same filter that some people name the dynamic PT1, doubt that it works or calls it magic. I will not discuss if the EmuFlight Kalman works and how it works (it works tho, I have enough time in the air to confirm that). Instead, I will show you how to tune the filter to get your racer's best performance or a freestyle machine.
EmuFlight Kalman Gyro Trust Factor
The most important setting of the Kalman filter is the Q factor. It is so-called, the quality factor that describes how much the gyro data can be trusted. The higher the value, the most trust can be placed on the gyro signal, and less filtering applied. The lower the Q factor, the more filtering is used, since gyro is probably noisier.
Higher Q factor usually means lower phase delay and better flight performance as long as the gyro signal is clean enough Lower Q factor usually means higher phase delay but cleaner data output: less noise in the output gyro data
The process of tuning the EmuFlight Kalman filter is mostly about adjusting the Q factor. You can do it in an either fast or precise manner. In a precise way, you will be tuning each axis separately: separately for roll imuf_roll_q
, independently for pitch imuf_pitch_q
, and individually for yaw imuf_yaw_q
.
In a fast way, you will make one pass and adjust all three parameters to the same value.
- Start with the default Q of
3000
- Increase the Q factor by
500
and make a short test flight - Observe the flight performance and is there is no degradation (bounceback, audible oscillation, overheating motors, etc.) go back to step 2
- If there is a flight degradation, go back to the previously used value. You might want to do more precise tuning with steps 100 or even less.
- Move to the next axis or call it a day
Usually, target q factors lay somewhere between 5000
and 10000
. The default 3000
is very conservative and almost always can be easily increased to 6000
or even more.
Kalman Window Size
Kalman Window Size imuf_w
is a setting that does not affect the phase delay of filtering strength. It's a period in which Kalman filter computes variation of the incoming data and decides is it should filter more or less. The length of the period decided how rapid filtering updates will be.
In general:
- the bigger the multirotor drone, the bigger the window size
- 5" multirotors work fine with
imuf_w
of 32 - 7" multirotors might like
imuf_w
of 64 or even 128 - 9" and bigger might prefer even higher values, up to 192
- window size is also affected by the flying style. Racers might want to lower even down to 8-16 on 5" while freestyle pilots increase it
Video tutorial
If you want to know more about EmuFlight Kalman Tuning, here is a detailed video on this topic
I'm Paweł Spychalski and I do things. Mainly software development, FPV drones and amateur cinematography. Here are my YouTube channels: