Bug Report
Synthetic airspeed is fused for copters when dead-reckoning using wind estimates, which leads to very fast explode of EKF3 in moderate wind conitions.
Issue details
AP 4.6 introduced new feature to use last estimated airspeed when dead-reckoning for planes.
This feature also takes action with copters, here
|
if (lastAspdEstIsValid && imuDataDelayed.time_ms - prevTasStep_ms > 200) { |
.
This synthetic airspeed is then fused here
This results in EKF3 attitude exploding after ~25sec of dead-reckoning using drag forces with moderate wind.
In 4.5.7 copter would steadily drift with attitude gradually increasing till reaching max roll of 30deg in ~2min, but EKF3 would never explode.
Changed parameters:
- EK3_DRAG_BCOEF_X/Y = 9.5
- EK3_DRAG_MCOEF = 0.082
- FS_DR_ENABLE = 0
- FS_DR_TIMEOUT = 300
- SIM_WIND_DIR = 0
- SIM_WIND_SPD = 5
To reproduce, take off to 50m altitude, turn GPS off with long 218 65 2 and wait.
The issue is fixed by extending condition
|
if (lastAspdEstIsValid && imuDataDelayed.time_ms - prevTasStep_ms > 200) { |
to
if (lastAspdEstIsValid && imuDataDelayed.time_ms - prevTasStep_ms > 200 && assume_zero_sideslip()) {
Version
4.6.3
Platform
[ ] All
[ ] AntennaTracker
[*] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
Airframe type
Copter
Hardware type
SITL
Logs
BIN log
Bug Report
Synthetic airspeed is fused for copters when dead-reckoning using wind estimates, which leads to very fast explode of EKF3 in moderate wind conitions.
Issue details
AP 4.6 introduced new feature to use last estimated airspeed when dead-reckoning for planes.
This feature also takes action with copters, here
ardupilot/libraries/AP_NavEKF3/AP_NavEKF3_Measurements.cpp
Line 884 in 12a6efe
This synthetic airspeed is then fused here
ardupilot/libraries/AP_NavEKF3/AP_NavEKF3_AirDataFusion.cpp
Line 211 in 12a6efe
This results in EKF3 attitude exploding after ~25sec of dead-reckoning using drag forces with moderate wind.
In 4.5.7 copter would steadily drift with attitude gradually increasing till reaching max roll of 30deg in ~2min, but EKF3 would never explode.
Changed parameters:
To reproduce, take off to 50m altitude, turn GPS off with
long 218 65 2and wait.The issue is fixed by extending condition
ardupilot/libraries/AP_NavEKF3/AP_NavEKF3_Measurements.cpp
Line 884 in 12a6efe
to
Version
4.6.3
Platform
[ ] All
[ ] AntennaTracker
[*] Copter
[ ] Plane
[ ] Rover
[ ] Submarine
Airframe type
Copter
Hardware type
SITL
Logs
BIN log