Properly setting up EKF3 for high velocity situations

Hi everyone,

I’m trying to misuse my pixhawk system for an additional camera stabilization inside a plane.
I am using C3.6 and ChibiOS and the results so far are promising.

However, I experience a problem that seems to me like a wrong parameter setting of the EKF3. The moment my plane dips into a high-speed corner (mostly rolling axis), the EKF also dives laterally (in the direction of movement), after a short time (at max. 1s) the horizon is levelled again.

It looks as if the short-term change is strongly influenced by the accelerometer and later, as soon as the GPS has a fix, is corrected by the calculated velocity.

I guess I need to adjust some values to improve the performance of the EKF, but I’m not sure where and with what to start. Do you have any suggestions on what to change?

Thanks a lot!

HI Jonathan,

I don’t have a good answer for your questions but I think it’s best to stick with the EKF2 in general. EKF3 is really meant for the rare situations where some advanced or unusual sensors are being used like the Pozyx beacond system or visual odometry. If these aren’t being used then the EK2 tends to give a better result.

Okay I thought - as I read in one of the wikis - that EKF3 was the next evolution. Thanks for your tip!

However - aren’t there some parameters that I can change to improve the weight of the gyros against the accelerometers? My plane is a glider - it basically doesn’t vibrate, so I don’t need any extensive vibration immunity. What other sensors/values could have an influence on this issue? Am I better of using a camera for x/y/z tracking instead of GPS?

Is this a Plane? in which case we should move this discussion into the Plane category instead of the Multicopter category.

We have a bit of advice here on the wiki about controling the weighting of the sensor blending. I think maybe EK2_GYRO_P_NSE might be good to adjust. Make it higher to trust the gyros more (and presumably accelerometers less).

I’m not much of plane user but I’m curious how do you get to such a conclusion?
I don’t get which state estimated does cause weird motion attitude or velocity?

From my experience, a helicopter with quite a vibration level did not cause weird state estimation when I used EKF2 with Pixhawk.
If you share some log or videos would be nice to find the cause.

1 Like

It is. I’m using the Arducopter 3.6 with ChibiOS though, that’s why I posted it in this forum. Feel free to move it if you think it doesn’t fit here.

Regarding the wiki - I spent already quite some time reading through the parameters list and I also change the AHRS_RP_P value to 0.1. But I will also change the GYRO_P_NSE that you mentioned. Thanks for the advice!

I will try to make a video, but it will take some time. The current weather situation here in Germany makes it difficult to even see the ground :wink:.

However, as mentioned above, I use the EKF3 (now switching back to EKF2) and my plane produces quite a strong acceleration as soon as it goes into the curve. It’s a semi-aerobatic plane and most turns have at least 45° roll. Most of the time I also pull the elevator, so the curve is tight. At this moment, when the lateral acceleration kicks in (probably about 2-3g), the horizon of the IMU moves in the direction of the curve and then quickly returns to the correct level again.

1 Like