mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-11-07 03:11:35 +08:00
fix error from refactring commit, fix reset on ground (#23370)
This commit is contained in:
@@ -308,10 +308,10 @@ bool Ekf::resetGlobalPosToExternalObservation(double lat_deg, double lon_deg, fl
|
|||||||
pos_corrected += _state.vel.xy() * dt_s;
|
pos_corrected += _state.vel.xy() * dt_s;
|
||||||
}
|
}
|
||||||
|
|
||||||
const float obs_var = math::max(accuracy, sq(0.01f));
|
const float obs_var = math::max(sq(accuracy), sq(0.01f));
|
||||||
|
|
||||||
const Vector2f innov = Vector2f(_state.pos.xy()) - pos_corrected;
|
const Vector2f innov = Vector2f(_state.pos.xy()) - pos_corrected;
|
||||||
const Vector2f innov_var = Vector2f(getStateVariance<State::vel>()) + obs_var;
|
const Vector2f innov_var = Vector2f(getStateVariance<State::pos>()) + obs_var;
|
||||||
|
|
||||||
const float sq_gate = sq(5.f); // magic hardcoded gate
|
const float sq_gate = sq(5.f); // magic hardcoded gate
|
||||||
const Vector2f test_ratio{sq(innov(0)) / (sq_gate * innov_var(0)),
|
const Vector2f test_ratio{sq(innov(0)) / (sq_gate * innov_var(0)),
|
||||||
|
|||||||
@@ -529,8 +529,9 @@ void EKF2::Run()
|
|||||||
|
|
||||||
} else if (vehicle_command.command == vehicle_command_s::VEHICLE_CMD_EXTERNAL_POSITION_ESTIMATE) {
|
} else if (vehicle_command.command == vehicle_command_s::VEHICLE_CMD_EXTERNAL_POSITION_ESTIMATE) {
|
||||||
|
|
||||||
if ((_ekf.control_status_flags().wind_dead_reckoning || _ekf.control_status_flags().inertial_dead_reckoning) &&
|
if ((_ekf.control_status_flags().wind_dead_reckoning || _ekf.control_status_flags().inertial_dead_reckoning
|
||||||
PX4_ISFINITE(vehicle_command.param2) && PX4_ISFINITE(vehicle_command.param5) && PX4_ISFINITE(vehicle_command.param6)
|
|| (!_ekf.control_status_flags().in_air && !_ekf.control_status_flags().gps)) && PX4_ISFINITE(vehicle_command.param2)
|
||||||
|
&& PX4_ISFINITE(vehicle_command.param5) && PX4_ISFINITE(vehicle_command.param6)
|
||||||
) {
|
) {
|
||||||
|
|
||||||
const float measurement_delay_seconds = math::constrain(vehicle_command.param2, 0.0f,
|
const float measurement_delay_seconds = math::constrain(vehicle_command.param2, 0.0f,
|
||||||
|
|||||||
Reference in New Issue
Block a user