configuration of Kalman filter

Post here to get support
Post Reply
hyperglider
Beginner
Posts: 16
Joined: Tue Mar 15, 2016 10:12 pm

configuration of Kalman filter

Post by hyperglider » Wed Sep 21, 2016 11:09 am

Hi,

Is there any variables that can be adjusted in the Kalman filter like in the standard particle filter.
eg - pf = pfilter.ParticleFilter(200, 0.1, (10, 10, 2)) could adjust the 200.

Where is the kalman filter called other than in the config.mk > ESTIMATOR = kalman. the standard filter routine is in lps_pf.py. So where is the kalman routine located?

regards
HG



arnaud
Bitcraze
Posts: 2120
Joined: Tue Feb 06, 2007 12:36 pm

Re: configuration of Kalman filter

Post by arnaud » Wed Sep 21, 2016 11:24 am

Hi hyperglider,

The Kalman filter is implemented in the Crazyflie firmware so all parameters are in the firmware. Some of them are accessible using the parameter subsystem. The estimated position is accessible via the log subsystem.

To make the ros nodes compatible I have create a bridge that reads the Crazyflie position using the log subsystem and publish the same topic and tf as lps_pf.py: https://github.com/bitcraze/lps-ros/blo ... _bridge.py

The kalman filter is implemented there: https://github.com/bitcraze/crazyflie-f ... r_kalman.c

Best,
Arnaud

hyperglider
Beginner
Posts: 16
Joined: Tue Mar 15, 2016 10:12 pm

Re: configuration of Kalman filter

Post by hyperglider » Wed Sep 21, 2016 12:38 pm

Hi,

In the code at line 59 these is a comment "kalman is only compatible with the Crazyflie 2.0 // since it requires an FPU"

What is an "FPU". in the flie specs it mentions Inertial measurement unit (IMU) but no FPU. Can you explain what an FPU is.

HG

hyperglider
Beginner
Posts: 16
Joined: Tue Mar 15, 2016 10:12 pm

Re: configuration of Kalman filter

Post by hyperglider » Wed Sep 21, 2016 12:40 pm

Is the FPU a floating point calculator??

HG

arnaud
Bitcraze
Posts: 2120
Joined: Tue Feb 06, 2007 12:36 pm

Re: configuration of Kalman filter

Post by arnaud » Wed Sep 21, 2016 1:16 pm

FPU is Floating Point Unit, it is a CPU co-processor that do math on floating point numbers. The Crazyflie 2.0 has an STM32F450 Cortex-m4f that contains an FPU. The Crazyflie 1 has a Cortex-M3 that does not, so it has to emulate the FPU which leads to much slower performance. Since the kalman filter is computational intensive it requires the FPU to run fast enough.

Post Reply