ekf2: reduce GPS initialization time for SITL from 10s to 0.5s

Speeds up SITL startup.
This commit is contained in:
Beat Küng
2019-05-15 10:17:28 +02:00
committed by Lorenz Meier
parent f7ff82c754
commit 5d6cc7d033
4 changed files with 22 additions and 2 deletions

View File

@@ -116,6 +116,8 @@ then
param set EKF2_ANGERR_INIT 0.01
param set EKF2_HGT_MODE 0
param set EKF2_GBIAS_INIT 0.01
# Speedup SITL startup
param set EKF2_REQ_GPS_H 0.5
# LPE: GPS only mode
param set LPE_FUSION 145

View File

@@ -521,7 +521,9 @@ private:
// Test used to determine if the vehicle is static or moving
(ParamExtFloat<px4::params::EKF2_MOVE_TEST>)
_param_ekf2_move_test ///< scaling applied to IMU data thresholds used to determine if the vehicle is static or moving.
_param_ekf2_move_test, ///< scaling applied to IMU data thresholds used to determine if the vehicle is static or moving.
(ParamFloat<px4::params::EKF2_REQ_GPS_H>) _param_ekf2_req_gps_h ///< Required GPS health time
)
@@ -651,6 +653,8 @@ Ekf2::Ekf2():
// initialise parameter cache
updateParams();
_ekf.set_min_required_gps_health_time(_param_ekf2_req_gps_h.get() * 1_s);
}
Ekf2::~Ekf2()

View File

@@ -1355,3 +1355,17 @@ PARAM_DEFINE_FLOAT(EKF2_GPS_TAU, 10.0f);
* @decimal 1
*/
PARAM_DEFINE_FLOAT(EKF2_MOVE_TEST, 1.0f);
/**
* Required GPS health time on startup
*
* Minimum continuous period without GPS failure required to mark a healthy GPS status.
* It can be reduced to speed up initialization, but it's recommended to keep this unchanged for a vehicle.
*
* @group EKF2
* @min 0.1
* @decimal 1
* @unit s
* @reboot_required true
*/
PARAM_DEFINE_FLOAT(EKF2_REQ_GPS_H, 10.0f);