mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-14 15:40:35 +08:00
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:
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user