Servers by jDrones

Perplexity about the EKF running cycle


(pxb) #1

Hello!
I am a multi rotor UAV enthusiast from China. I’ve been studying the “Copter3.3.2” code recently. There are some questions about EKF. I transplanted the EKF of the source code to run on STM32F429, the EKF.UpdateFilter() [include CovariancePrediction, FuseVelPosNED, FuseMagnetometer] requires 4ms run time, but in fast_loop() the ahrs.update() was a 2.5ms cycle call, EKF was not finished in 2.5ms. I’m very confused here, can you help to answer it?


(Amilcar Lucas) #2

Please try our ArduCopter code from github master branch: https://github.com/ArduPilot/ardupilot/tree/master/libraries/AP_HAL_ChibiOS/hwdef/f427-min
It already supports STM32F427 it should be easy to adapt to STM32F429


(pxb) #3
Thank you very much for your answer. I saw you in the introduction of the source code author. You are the big God responsible for "Camera mount library". It's a great honor to see your reply.
 I only migrate the sensor read and EKF1 related code to STM32F429, and the firmware library of the source code and the task scheduling are not ported, and I'm not sure that this way will cause the code to run too long. In addition, I would like to ask you, can fast_loop() be executed in the 2.5ms cycle? This includes the operation of EKF.update() which takes a lot of time.This EKF1 cycle problem bothers me for a long time.
Look forward to your reply.

(Amilcar Lucas) #4

Regarding the EKF I can not answer, because I do not know.
But I do know that we now have EFK2 and EKF3 those are superior solutions.