From 80c8130f078d0ea8590f3966a324b073b28430a2 Mon Sep 17 00:00:00 2001 From: Daniel Agar Date: Thu, 9 Feb 2017 02:27:52 -0500 Subject: [PATCH] sensors true airspeed fix - _voted_sensors_update.baro_pressure() is already in pascals --- src/modules/sensors/sensors.cpp | 10 ++++++---- src/modules/sensors/voted_sensors_update.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/modules/sensors/sensors.cpp b/src/modules/sensors/sensors.cpp index c54cfd39d2..8b406f9c20 100644 --- a/src/modules/sensors/sensors.cpp +++ b/src/modules/sensors/sensors.cpp @@ -383,6 +383,7 @@ Sensors::diff_pres_poll(struct sensor_combined_s &raw) /* push data into validator */ _airspeed_validator.put(_airspeed.timestamp, _diff_pres.differential_pressure_raw_pa, _diff_pres.error_count, ORB_PRIO_HIGH); + _airspeed.confidence = _airspeed_validator.confidence(hrt_absolute_time()); /* don't risk to feed negative airspeed into the system */ @@ -390,11 +391,12 @@ Sensors::diff_pres_poll(struct sensor_combined_s &raw) calc_indicated_airspeed(_diff_pres.differential_pressure_filtered_pa)); _airspeed.true_airspeed_m_s = math::max(0.0f, - calc_true_airspeed(_diff_pres.differential_pressure_filtered_pa + _voted_sensors_update.baro_pressure() * 1e2f, - _voted_sensors_update.baro_pressure() * 1e2f, air_temperature_celsius)); + calc_true_airspeed(_diff_pres.differential_pressure_filtered_pa + _voted_sensors_update.baro_pressure(), + _voted_sensors_update.baro_pressure(), air_temperature_celsius)); + _airspeed.true_airspeed_unfiltered_m_s = math::max(0.0f, - calc_true_airspeed(_diff_pres.differential_pressure_raw_pa + _voted_sensors_update.baro_pressure() * 1e2f, - _voted_sensors_update.baro_pressure() * 1e2f, air_temperature_celsius)); + calc_true_airspeed(_diff_pres.differential_pressure_raw_pa + _voted_sensors_update.baro_pressure(), + _voted_sensors_update.baro_pressure(), air_temperature_celsius)); _airspeed.air_temperature_celsius = air_temperature_celsius; _airspeed.differential_pressure_filtered_pa = _diff_pres.differential_pressure_filtered_pa; diff --git a/src/modules/sensors/voted_sensors_update.h b/src/modules/sensors/voted_sensors_update.h index 0fef71ec6c..c71b463ef3 100644 --- a/src/modules/sensors/voted_sensors_update.h +++ b/src/modules/sensors/voted_sensors_update.h @@ -246,7 +246,7 @@ private: orb_advert_t _mavlink_log_pub = nullptr; float _last_baro_pressure[SENSOR_COUNT_MAX]; /**< pressure from last baro sensors */ - float _last_best_baro_pressure = 0.f; /**< pressure from last best baro */ + float _last_best_baro_pressure = 0.0f; /**< pressure from last best baro */ sensor_combined_s _last_sensor_data[SENSOR_COUNT_MAX]; /**< latest sensor data from all sensors instances */ uint64_t _last_accel_timestamp[SENSOR_COUNT_MAX]; /**< latest full timestamp */ uint64_t _last_mag_timestamp[SENSOR_COUNT_MAX]; /**< latest full timestamp */