Page 1 of 1

position estimator

Posted: Thu Dec 15, 2016 6:03 am
by monsterhong
Hi,

I think the Crazyflie is using Kalman filter to estimate the position and orientation, I think it could also use complementary filter to estimate the position and orientation, since the complementary file is already given from the source file.

But I do not know how to change the crazyflie to use complementary filter for estimate.

Please let me know if you know how to do it.
Thank you

Re: position estimator

Posted: Thu Dec 15, 2016 7:32 am
by arnaud
Hi,

The Crazyflie source code contains both a complementary filter and an Extended Kalman Filter (EKF).

The complementary filter is estimating the orientation. We also have a small complementary filter that estimates the height from the pressure sensor and accelerometer, but not the full position.

The EKF is currently the only estimator in the Crazyflie that can estimate both orientation and position.

The complementary filer is compiled by default. The EKF can be compiled by adding "ESTIMATOR=kalman" to the file tools/make/config.mk when compiling. If you want to look at the code you can start by stabiliser.c. All estimators implements the functions defined in estimator.h and the two estimators are in estimator_complementary.c and estimator_kalman.c.

Re: position estimator

Posted: Tue Dec 27, 2016 7:32 am
by monsterhong
arnaud wrote:Hi,

The Crazyflie source code contains both a complementary filter and an Extended Kalman Filter (EKF).

The complementary filter is estimating the orientation. We also have a small complementary filter that estimates the height from the pressure sensor and accelerometer, but not the full position.

The EKF is currently the only estimator in the Crazyflie that can estimate both orientation and position.

The complementary filer is compiled by default. The EKF can be compiled by adding "ESTIMATOR=kalman" to the file tools/make/config.mk when compiling. If you want to look at the code you can start by stabiliser.c. All estimators implements the functions defined in estimator.h and the two estimators are in estimator_complementary.c and estimator_kalman.c.

Thank you very much for your help!