Browse Source

Land detector: Protect fixed wing logic from false-positives due to bad input data

sbg
Lorenz Meier 10 years ago
parent
commit
891829d3a7
  1. 11
      src/modules/land_detector/FixedwingLandDetector.cpp

11
src/modules/land_detector/FixedwingLandDetector.cpp

@ -85,9 +85,16 @@ bool FixedwingLandDetector::update() @@ -85,9 +85,16 @@ bool FixedwingLandDetector::update()
bool landDetected = false;
if (hrt_elapsed_time(&_vehicleLocalPosition.timestamp) < 500 * 1000) {
_velocity_xy_filtered = 0.95f * _velocity_xy_filtered + 0.05f * sqrtf(_vehicleLocalPosition.vx *
float val = 0.95f * _velocity_xy_filtered + 0.05f * sqrtf(_vehicleLocalPosition.vx *
_vehicleLocalPosition.vx + _vehicleLocalPosition.vy * _vehicleLocalPosition.vy);
_velocity_z_filtered = 0.95f * _velocity_z_filtered + 0.05f * fabsf(_vehicleLocalPosition.vz);
if (isfinite(val)) {
_velocity_xy_filtered = val;
}
val = 0.95f * _velocity_z_filtered + 0.05f * fabsf(_vehicleLocalPosition.vz);
if (isfinite(val)) {
_velocity_z_filtered = val;
}
}
if (hrt_elapsed_time(&_airspeed.timestamp) < 500 * 1000) {

Loading…
Cancel
Save