ekf2: init tilt using quaternion from gravity vector

This commit is contained in:
bresch 2023-03-30 15:46:50 +02:00 committed by Matthias Grob
parent 93ba7de0c3
commit ed7c4bc5d7

View File

@ -243,12 +243,8 @@ bool Ekf::initialiseTilt()
return false;
}
// get initial roll and pitch estimate from delta velocity vector, assuming vehicle is static
const Vector3f gravity_in_body = _accel_lpf.getState().normalized();
const float pitch = asinf(gravity_in_body(0));
const float roll = atan2f(-gravity_in_body(1), -gravity_in_body(2));
_state.quat_nominal = Quatf{Eulerf{roll, pitch, 0.0f}};
// get initial tilt estimate from delta velocity vector, assuming vehicle is static
_state.quat_nominal = Quatf(_accel_lpf.getState(), Vector3f(0.f, 0.f, -1.f));
_R_to_earth = Dcmf(_state.quat_nominal);
return true;