From a1c4aa6dc9ecb83dcf31c91eab3f00dee655db4f Mon Sep 17 00:00:00 2001 From: Marco Hauswirth Date: Thu, 18 Sep 2025 17:22:18 +0200 Subject: [PATCH] * remove random lib since its not available on Nuttx * fix gps-stuck-failure to actually be stuck --- .../failure_injection/failureInjection.cpp | 7 +++---- .../sensor_sim_manager/SensorSimManager.cpp | 18 ++++++++---------- .../sensor_sim_manager/SensorSimManager.hpp | 7 +------ 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/src/modules/simulation/failure_injection/failureInjection.cpp b/src/modules/simulation/failure_injection/failureInjection.cpp index fc46d70368..4e0be41e73 100644 --- a/src/modules/simulation/failure_injection/failureInjection.cpp +++ b/src/modules/simulation/failure_injection/failureInjection.cpp @@ -92,12 +92,13 @@ bool FailureInjection::handle_gps_failure(sensor_gps_s &gps) } + _gps_prev = gps; + } else { gps = _gps_prev; } _last_gps_timestamp = gps.timestamp; - _gps_prev = gps; return true; } @@ -113,7 +114,6 @@ bool FailureInjection::handle_gps_alt_failure(sensor_gps_s &gps) if (_gps_alt_wrong) { gps.altitude_msl_m += 100.0; gps.altitude_ellipsoid_m += 100.0; - } if (_gps_alt_drift) { @@ -132,16 +132,15 @@ bool FailureInjection::handle_gps_alt_failure(sensor_gps_s &gps) } gps.altitude_msl_m = _gps_alt_offset; - } + _gps_prev = gps; } else { gps = _gps_prev; } _last_gps_timestamp = gps.timestamp; - _gps_prev = gps; return true; diff --git a/src/modules/simulation/sensor_sim_manager/SensorSimManager.cpp b/src/modules/simulation/sensor_sim_manager/SensorSimManager.cpp index 2938cafcbb..c51d2d10c8 100644 --- a/src/modules/simulation/sensor_sim_manager/SensorSimManager.cpp +++ b/src/modules/simulation/sensor_sim_manager/SensorSimManager.cpp @@ -45,9 +45,7 @@ using namespace matrix; SensorSimManager::SensorSimManager() : ModuleParams(nullptr), - ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default), - _gen(_rd()), - _uniform_dist(0.0f, 1.0f) + ScheduledWorkItem(MODULE_NAME, px4::wq_configurations::hp_default) { _px4_accel.set_temperature(kT1C); _px4_gyro.set_temperature(kT1C); @@ -61,7 +59,7 @@ SensorSimManager::SensorSimManager() : _gps_timing = { .interval_us = 125000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 125000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 125000), .enabled = false, }; @@ -69,7 +67,7 @@ SensorSimManager::SensorSimManager() : _baro_timing = { .interval_us = 50000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 50000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 50000), .enabled = false, }; @@ -77,7 +75,7 @@ SensorSimManager::SensorSimManager() : _mag_timing = { .interval_us = 20000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 20000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 20000), .enabled = false, }; @@ -85,7 +83,7 @@ SensorSimManager::SensorSimManager() : _airspeed_timing = { .interval_us = 125000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 125000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 125000), .enabled = false, }; @@ -93,7 +91,7 @@ SensorSimManager::SensorSimManager() : _agp_timing = { .interval_us = 500000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 500000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 500000), .enabled = false, }; @@ -101,7 +99,7 @@ SensorSimManager::SensorSimManager() : _distance_sensor_timing = { .interval_us = 20000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 20000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 20000), .enabled = false, }; @@ -109,7 +107,7 @@ SensorSimManager::SensorSimManager() : _imu_timing = { .interval_us = 4000, .next_update_time = now, - .offset_us = static_cast(_uniform_dist(_gen) * 4000), + .offset_us = static_cast((float(rand()) / RAND_MAX) * 4000), .enabled = true, }; diff --git a/src/modules/simulation/sensor_sim_manager/SensorSimManager.hpp b/src/modules/simulation/sensor_sim_manager/SensorSimManager.hpp index 5b25397b8d..80a095d396 100644 --- a/src/modules/simulation/sensor_sim_manager/SensorSimManager.hpp +++ b/src/modules/simulation/sensor_sim_manager/SensorSimManager.hpp @@ -64,7 +64,7 @@ #include #include #include -#include +#include using namespace time_literals; @@ -153,11 +153,6 @@ private: perf_counter_t _imu_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": imu")}; perf_counter_t _distance_sensor_perf{perf_alloc(PC_ELAPSED, MODULE_NAME": distance")}; - // Random number generator for offsets and noise - std::random_device _rd; - std::mt19937 _gen; - std::uniform_real_distribution _uniform_dist; - // Parameters DEFINE_PARAMETERS( (ParamInt) _param_sens_en_gpssim,