mirror of
https://github.com/okalachev/flix.git
synced 2025-07-27 17:49:33 +00:00
Remove dt multiplier from acc correction and increase acc weight
More classical complementary filter implementation Increase effective accelerometer weight for faster convergence
This commit is contained in:
parent
e66f6563a5
commit
bda44fca02
@ -8,7 +8,7 @@
|
|||||||
#include "lpf.h"
|
#include "lpf.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
#define WEIGHT_ACC 0.5f
|
#define WEIGHT_ACC 0.003
|
||||||
#define RATES_LFP_ALPHA 0.2 // cutoff frequency ~ 40 Hz
|
#define RATES_LFP_ALPHA 0.2 // cutoff frequency ~ 40 Hz
|
||||||
|
|
||||||
LowPassFilter<Vector> ratesFilter(RATES_LFP_ALPHA);
|
LowPassFilter<Vector> ratesFilter(RATES_LFP_ALPHA);
|
||||||
@ -35,7 +35,7 @@ void applyAcc() {
|
|||||||
|
|
||||||
// calculate accelerometer correction
|
// calculate accelerometer correction
|
||||||
Vector up = attitude.rotateVector(Vector(0, 0, 1));
|
Vector up = attitude.rotateVector(Vector(0, 0, 1));
|
||||||
Vector correction = Vector::angularRatesBetweenVectors(acc, up) * dt * WEIGHT_ACC;
|
Vector correction = Vector::angularRatesBetweenVectors(acc, up) * WEIGHT_ACC;
|
||||||
|
|
||||||
// apply correction
|
// apply correction
|
||||||
attitude = attitude.rotate(Quaternion::fromAngularRates(correction));
|
attitude = attitude.rotate(Quaternion::fromAngularRates(correction));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user