Skip to content

Commit 6823cbc

Browse files
committed
sensors/vehicle_angular_velocity: add IMU_GYRO_RATEMAX constraints
1 parent beaebe4 commit 6823cbc

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

src/modules/sensors/vehicle_angular_velocity/VehicleAngularVelocity.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,23 @@ void VehicleAngularVelocity::ParametersUpdate(bool force)
377377

378378
_calibration.ParametersUpdate();
379379

380+
// IMU_GYRO_RATEMAX
381+
if (_param_imu_gyro_ratemax.get() <= 0) {
382+
const int32_t imu_gyro_ratemax = _param_imu_gyro_ratemax.get();
383+
_param_imu_gyro_ratemax.reset();
384+
PX4_WARN("IMU_GYRO_RATEMAX invalid (%" PRId32 "), resetting to default %" PRId32 ")", imu_gyro_ratemax,
385+
_param_imu_gyro_ratemax.get());
386+
}
387+
388+
// constrain IMU_GYRO_RATEMAX 50-10,000 Hz
389+
const int32_t imu_gyro_ratemax = constrain(_param_imu_gyro_ratemax.get(), (int32_t)50, (int32_t)10'000);
390+
391+
if (imu_gyro_ratemax != _param_imu_gyro_ratemax.get()) {
392+
PX4_WARN("IMU_GYRO_RATEMAX updated %" PRId32 " -> %" PRIu32, _param_imu_gyro_ratemax.get(), imu_gyro_ratemax);
393+
_param_imu_gyro_ratemax.set(imu_gyro_ratemax);
394+
_param_imu_gyro_ratemax.commit_no_notification();
395+
}
396+
380397
// gyro low pass cutoff frequency changed
381398
for (auto &lp : _lp_filter_velocity) {
382399
if (fabsf(lp.get_cutoff_freq() - _param_imu_gyro_cutoff.get()) > 0.01f) {

0 commit comments

Comments
 (0)