forked from Archive/PX4-Autopilot
EKF: Use consistent test for navigation validity reporting
This will enable controller to take advantage of non-inertial dead reckoning.
This commit is contained in:
parent
19074fdd9e
commit
e10ec59058
|
@ -1144,9 +1144,8 @@ void Ekf::zeroCols(float (&cov_mat)[_k_num_states][_k_num_states], uint8_t first
|
||||||
|
|
||||||
bool Ekf::global_position_is_valid()
|
bool Ekf::global_position_is_valid()
|
||||||
{
|
{
|
||||||
// return true if the position estimate is valid
|
// return true if we are not doing unconstrained free inertial navigation and the origin is set
|
||||||
// TODO implement proper check based on published GPS accuracy, innovation consistency checks and timeout status
|
return (_NED_origin_initialised && !inertial_dead_reckoning());
|
||||||
return (_NED_origin_initialised && ((_time_last_imu - _time_last_gps) < 5e6) && _control_status.flags.gps);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// return true if we are totally reliant on inertial dead-reckoning for position
|
// return true if we are totally reliant on inertial dead-reckoning for position
|
||||||
|
|
|
@ -464,8 +464,6 @@ void EstimatorInterface::unallocate_buffers()
|
||||||
|
|
||||||
bool EstimatorInterface::local_position_is_valid()
|
bool EstimatorInterface::local_position_is_valid()
|
||||||
{
|
{
|
||||||
// return true if the position estimate is valid
|
// return true if we are not doing unconstrained free inertial navigation
|
||||||
return (((_time_last_imu - _time_last_optflow) < 5e6) && _control_status.flags.opt_flow) ||
|
return !inertial_dead_reckoning();
|
||||||
(((_time_last_imu - _time_last_ext_vision) < 5e6) && _control_status.flags.ev_pos) ||
|
|
||||||
global_position_is_valid();
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue