ekf2: start fake pos fusion after dead-reckoning timeout

Starting the fake position as soon as all the aiding sources stop makes
the local position immediately invalid while we could continue to navigate
for a couple of second with inertial dead-reckoning
This commit is contained in:
bresch 2022-09-15 15:29:51 +02:00 committed by Daniel Agar
parent bb790c9bec
commit f753b92cff
2 changed files with 5 additions and 2 deletions

View File

@ -50,7 +50,9 @@ void Ekf::controlFakeHgtFusion()
if (fake_hgt_data_ready) {
const bool continuing_conditions_passing = !isVerticalAidingActive();
const bool starting_conditions_passing = continuing_conditions_passing;
const bool starting_conditions_passing = continuing_conditions_passing
&& _vertical_velocity_deadreckon_time_exceeded
&& _vertical_position_deadreckon_time_exceeded;
if (_control_status.flags.fake_hgt) {
if (continuing_conditions_passing) {

View File

@ -51,7 +51,8 @@ void Ekf::controlFakePosFusion()
if (fake_pos_data_ready) {
const bool continuing_conditions_passing = !isHorizontalAidingActive();
const bool starting_conditions_passing = continuing_conditions_passing;
const bool starting_conditions_passing = continuing_conditions_passing
&& _horizontal_deadreckon_time_exceeded;
if (_control_status.flags.fake_pos) {
if (continuing_conditions_passing) {