ekf2_terrain: handle height reset

This commit is contained in:
bresch
2023-09-25 09:34:14 -04:00
committed by Daniel Agar
parent 6cb2c176d5
commit 514e0330e5
5 changed files with 38 additions and 1 deletions
+1
View File
@@ -917,6 +917,7 @@ private:
float getTerrainVPos() const { return isTerrainEstimateValid() ? _terrain_vpos : _last_on_ground_posD; }
void controlHaglFakeFusion();
void terrainHandleVerticalPositionReset(float delta_z);
# if defined(CONFIG_EKF2_RANGE_FINDER)
// update the terrain vertical position estimate using a height above ground measurement from the range finder
+4
View File
@@ -211,6 +211,10 @@ void Ekf::resetVerticalPositionTo(const float new_vert_pos, float new_vert_pos_v
_rng_hgt_b_est.setBias(_rng_hgt_b_est.getBias() + delta_z);
#endif // CONFIG_EKF2_RANGE_FINDER
#if defined(CONFIG_EKF2_TERRAIN)
terrainHandleVerticalPositionReset(delta_z);
#endif
// Reset the timout timer
_time_last_hgt_fuse = _time_delayed_us;
}
@@ -452,3 +452,7 @@ bool Ekf::isTerrainEstimateValid() const
return false;
}
void Ekf::terrainHandleVerticalPositionReset(const float delta_z) {
_terrain_vpos += delta_z;
}