mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-22 06:33:34 +08:00
EKF: Fix timeout parameter documentation and name
The parameter used to control the maximum dead reckoning time had 'gps' in the parameter name which was confusing because it was used for all measurement types capable of constraining horizontal velocity error growth. The parameter variable has been renamed and the documentation for it improved. The parameter used to control the maximum time since fusing a measurement before the measurement is considered to be not contributing to aiding had misleading documentation which has been updated.
This commit is contained in:
committed by
Paul Riseborough
parent
2354c30d81
commit
342c3ab202
+9
-9
@@ -310,7 +310,7 @@ void Ekf::controlExternalVisionFusion()
|
||||
_vel_pos_innov[4] = _state.pos(1) - _ev_sample_delayed.posNED(1);
|
||||
|
||||
// check if we have been deadreckoning too long
|
||||
if (_time_last_imu - _time_last_pos_fuse > _params.no_gps_timeout_max) {
|
||||
if (_time_last_imu - _time_last_pos_fuse > _params.reset_timeout_max) {
|
||||
// don't reset velocity if we have another source of aiding constraining it
|
||||
if (_time_last_imu - _time_last_of_fuse > (uint64_t)1E6) {
|
||||
resetVelocity();
|
||||
@@ -343,7 +343,7 @@ void Ekf::controlExternalVisionFusion()
|
||||
|
||||
} else if (_control_status.flags.ev_pos
|
||||
&& (_time_last_imu >= _time_last_ext_vision)
|
||||
&& (_time_last_imu - _time_last_ext_vision > (uint64_t)_params.no_gps_timeout_max)) {
|
||||
&& (_time_last_imu - _time_last_ext_vision > (uint64_t)_params.reset_timeout_max)) {
|
||||
|
||||
// Turn off EV fusion mode if no data has been received
|
||||
_control_status.flags.ev_pos = false;
|
||||
@@ -420,7 +420,7 @@ void Ekf::controlOpticalFlowFusion()
|
||||
_control_status.flags.opt_flow = false;
|
||||
_time_last_of_fuse = 0;
|
||||
|
||||
} else if (_time_last_imu - _time_last_of_fuse > (uint64_t)_params.no_gps_timeout_max) {
|
||||
} else if (_time_last_imu - _time_last_of_fuse > (uint64_t)_params.reset_timeout_max) {
|
||||
_control_status.flags.opt_flow = false;
|
||||
|
||||
}
|
||||
@@ -465,7 +465,7 @@ void Ekf::controlOpticalFlowFusion()
|
||||
&& !_control_status.flags.gps
|
||||
&& !_control_status.flags.ev_pos) {
|
||||
|
||||
bool do_reset = _time_last_imu - _time_last_of_fuse > _params.no_gps_timeout_max;
|
||||
bool do_reset = _time_last_imu - _time_last_of_fuse > _params.reset_timeout_max;
|
||||
|
||||
if (do_reset) {
|
||||
resetVelocity();
|
||||
@@ -572,13 +572,13 @@ void Ekf::controlGpsFusion()
|
||||
if (_control_status.flags.gps) {
|
||||
// We are relying on aiding to constrain drift so after a specified time
|
||||
// with no aiding we need to do something
|
||||
bool do_reset = (_time_last_imu - _time_last_pos_fuse > _params.no_gps_timeout_max)
|
||||
&& (_time_last_imu - _time_last_delpos_fuse > _params.no_gps_timeout_max)
|
||||
&& (_time_last_imu - _time_last_vel_fuse > _params.no_gps_timeout_max)
|
||||
&& (_time_last_imu - _time_last_of_fuse > _params.no_gps_timeout_max);
|
||||
bool do_reset = (_time_last_imu - _time_last_pos_fuse > _params.reset_timeout_max)
|
||||
&& (_time_last_imu - _time_last_delpos_fuse > _params.reset_timeout_max)
|
||||
&& (_time_last_imu - _time_last_vel_fuse > _params.reset_timeout_max)
|
||||
&& (_time_last_imu - _time_last_of_fuse > _params.reset_timeout_max);
|
||||
|
||||
// We haven't had an absolute position fix for a longer time so need to do something
|
||||
do_reset = do_reset || (_time_last_imu - _time_last_pos_fuse > 2 * _params.no_gps_timeout_max);
|
||||
do_reset = do_reset || (_time_last_imu - _time_last_pos_fuse > 2 * _params.reset_timeout_max);
|
||||
|
||||
if (do_reset) {
|
||||
// use GPS velocity data to check and correct yaw angle if a FW vehicle
|
||||
|
||||
Reference in New Issue
Block a user