afry-south / dragonfly-fcb

ÅF Dragonfly Quadrotor UAV Project
Other
7 stars 3 forks source link

Kalman filter algorithms design #119

Open stenbergd opened 9 years ago

stenbergd commented 9 years ago

Design linear Kalman filters for sensor fusion of gyroscope, magnetometer and/or accelerometer data.

Design estimators for

Some useful links http://www.linushelgesson.se/2012/04/pitch-and-roll-estimating-kalman-filter-for-stabilizing-quadrocopters/

http://www.mouser.se/newproducts/applications.aspx?virtualdir=sensor_solutions_mems

stenbergd commented 9 years ago

Update: It is at this moment not clear if we should use magnetometer or accelerometer for state correction.

The accelerometer will not be ideal since the quadrotor's own acceleration will be added to that of gravitation. In this regard, the magnetometer will be better. However, the motors will cause magnetic interference during flight...

adam-at-epsilon commented 8 years ago

Some info on gyroscope drift

http://forum.pololu.com/viewtopic.php?f=3&t=6192

stenbergd commented 8 years ago

This issue may be considered done. We have our Kalman filter algorithms design in place. Issue #18 concerns parameter tuning. #132 concerns numerical instability of Kalman filter. We should also look at improving the practical real-time design/implementation of the filter in the code.

adam-at-epsilon commented 8 years ago

A weakness in the current implementation is that we have set the sample period STATE_ESTIMATION_SAMPLE_PERIOD to be 20 ms when the sensors are in fact sampled at 3 different rates.

stenbergd commented 8 years ago

Yes, we need to differentiate more between them by assigning individual Q, R and deltaT values, so there are plenty of implementation aspects left to consider

adam-at-epsilon commented 8 years ago

Ok I've implemented deltaT in fcb_sensors.c, Q and R calculations in state_estimation.c

stenbergd commented 8 years ago

I've noticed the state value is updated on both prediction and correction. Is this desired? Or should we only update it on correction and use a separate variable for prediction?

stenbergd commented 8 years ago

Todo:

superdupersvard commented 8 years ago

Todo now:

stenbergd commented 8 years ago

Todo also: