diff --git a/src/modules/ekf2/EKF/aid_sources/range_finder/range_height_control.cpp b/src/modules/ekf2/EKF/aid_sources/range_finder/range_height_control.cpp index 712aa1aca3..676e504b55 100644 --- a/src/modules/ekf2/EKF/aid_sources/range_finder/range_height_control.cpp +++ b/src/modules/ekf2/EKF/aid_sources/range_finder/range_height_control.cpp @@ -163,6 +163,7 @@ void Ekf::controlRangeHaglFusion(const imuSample &imu_sample) _control_status.flags.rng_hgt = true; if (!_control_status.flags.opt_flow_terrain && aid_src.innovation_rejected) { + ECL_INFO("starting %s height fusion, resetting terrain", HGT_SRC_NAME); resetTerrainToRng(aid_src); resetAidSourceStatusZeroInnovation(aid_src); } @@ -173,6 +174,13 @@ void Ekf::controlRangeHaglFusion(const imuSample &imu_sample) if (_control_status.flags.rng_hgt || _control_status.flags.rng_terrain) { if (continuing_conditions_passing) { + if (do_conditional_range_aid) { + _height_sensor_ref = HeightSensor::RANGE; + + } else if (_height_sensor_ref == HeightSensor::RANGE) { + _height_sensor_ref = HeightSensor::UNKNOWN; + } + if (_range_sensor.isDataHealthy() && _control_status.flags.rng_kin_consistent ) { diff --git a/src/modules/ekf2/EKF/height_control.cpp b/src/modules/ekf2/EKF/height_control.cpp index bc7f95f0e3..c91306a0eb 100644 --- a/src/modules/ekf2/EKF/height_control.cpp +++ b/src/modules/ekf2/EKF/height_control.cpp @@ -112,8 +112,11 @@ void Ekf::checkHeightSensorRefFallback() || ((fallback_list[i] == HeightSensor::GNSS) && _control_status.flags.gps_hgt) || ((fallback_list[i] == HeightSensor::RANGE) && _control_status.flags.rng_hgt) || ((fallback_list[i] == HeightSensor::EV) && _control_status.flags.ev_hgt)) { - ECL_INFO("fallback to secondary height reference"); + + _height_sensor_ref = fallback_list[i]; + + ECL_WARN("fallback to secondary height reference %d", (int)_height_sensor_ref); break; } } diff --git a/src/modules/ekf2/EKF2.cpp b/src/modules/ekf2/EKF2.cpp index ec2c975500..2b6ae0dc0b 100644 --- a/src/modules/ekf2/EKF2.cpp +++ b/src/modules/ekf2/EKF2.cpp @@ -1059,12 +1059,12 @@ void EKF2::PublishBaroBias(const hrt_abstime ×tamp) if (_ekf.aid_src_baro_hgt().timestamp_sample != 0) { const BiasEstimator::status &status = _ekf.getBaroBiasEstimatorStatus(); - if (fabsf(status.bias - _last_baro_bias_published) > 1e-6f) { - _estimator_baro_bias_pub.publish(fillEstimatorBiasMsg(status, _ekf.aid_src_baro_hgt().timestamp_sample, timestamp, - _device_id_baro)); + //if (fabsf(status.bias - _last_baro_bias_published) > 1e-6f) { + _estimator_baro_bias_pub.publish(fillEstimatorBiasMsg(status, _ekf.aid_src_baro_hgt().timestamp_sample, timestamp, + _device_id_baro)); - _last_baro_bias_published = status.bias; - } + _last_baro_bias_published = status.bias; + //} } } #endif // CONFIG_EKF2_BAROMETER