Commit Graph

974 Commits

Author SHA1 Message Date
Andy Piper 7e35622015 AP_InertialSensor: correct loop rate on BMI055, clean up setting of loop rate on BMI055 and BMI088 2019-12-09 13:29:34 +11:00
Andy Piper 763089addb AP_InertialSensor: slight improvement to LOG_BAT_OPT docs. 2019-12-01 12:19:46 +11:00
Andrew Tridgell 9dc618ddd4 AP_InertialSensor: added gyro_harmonic_notch_enabled() 2019-11-19 07:08:01 +08:00
Andrew Tridgell 77d21f9f5d AP_InertialSensor: return HarmonicNotchDynamicMode 2019-11-19 07:08:01 +08:00
Andrew Tridgell eb582ac0cc AP_InertialSensor: avoid SITL build on non-SITL 2019-11-17 20:10:54 +11:00
Mark Whitehorn 00948c33d5 AP_InertialSensor: rename sensor_config_error to config_error 2019-11-08 10:14:34 +11:00
Andrew Tridgell 236ce28339 AP_InertialSensor: updated for heater changes 2019-11-02 16:31:04 +11:00
Andy Piper 6381183aa3 AP_InertialSensor: expose harmonic notch tracking mode 2019-10-31 11:18:40 +08:00
Andrew Tridgell d6e17b0c2b AP_InertialSensor: publish an IMU temperature
makes testing of mavlink extension easier
2019-10-10 13:23:03 +11:00
Andrew Tridgell 850892c3d9 HAL_ChibiOS: fixes from LGTM errors 2019-09-22 18:35:15 +10:00
Andy Piper 8e385d7453 AP_InertialSensor: correct formatting 2019-09-11 18:41:05 +10:00
Andy Piper 5b7f9f6bea AP_InertialSensor: while sensors are converging update the filters sample rates. if gyro filtering produces invalid output, keep the previous value 2019-09-11 18:41:05 +10:00
Andy Piper a9a7fe3ea5 AP_InertialSensor: ensure harmonic notch gets appropriate defaults 2019-09-11 18:41:05 +10:00
Andy Piper 3261677e01 AP_InertialSensor: remove _ prefix from methods. use changed filter methods. 2019-09-11 18:41:05 +10:00
Andy Piper 50f7e50634 AP_InertialSensor: add harmonic notch filter to gyro filter chain
Allow dynamic updates to the calculated frequency. Convert bandwidth and frequency to floats.
backend variables do not need to be indexed per-backed
2019-09-11 18:41:05 +10:00
Andy Piper dde6dec145 AP_InertialSensor: correct reboot documentation for batch logger and filters 2019-09-10 20:29:56 +10:00
Andrew Tridgell 15e15e0b9d AP_InertialSensor: define GET_I2C_DEVICE() 2019-09-04 16:27:47 +10:00
Andrew Tridgell 1c92ecc89f AP_InertialSensor: removed old method of specifying most IMUs
and removed dangerous default values for rotations
2019-08-28 06:54:11 +10:00
Andrew Tridgell c99923d500 AP_InertialSensor: require gyro orientations in LSM9DS probe
this prevents a bug where they are missing in hwdef.dat
2019-08-27 19:29:37 +10:00
Andrew Tridgell 992016069a AP_InertialSensor: fixed watchdog on AHRS trim gyro wait 2019-08-19 14:37:46 +10:00
Andrew Tridgell e1ce735886 AP_InertialSensor: special check for CubeBlack to force INS_USE3=1
this will cope with users loading old parameter files
2019-07-31 12:53:57 +10:00
Andrew Tridgell 123800ccd2 AP_InertialSensor: default INS_USE3 to 1 2019-07-31 12:53:57 +10:00
Randy Mackay 6a154c4e4c AP_InertialSensor: resolve gcs::send_text compiler warning 2019-07-30 09:02:39 +09:00
Andrew Tridgell 8e5c0fa32b AP_InertialSensor: disable kill IMUs with HAL_MINIMIZE_FEATURES 2019-07-07 19:03:01 +10:00
Andrew Tridgell 09d3392aee AP_InertialSensor: zero accumulators on time step
this zeros the delta angle and delta velocity accumulators when a
sensor is unavailable for a period of 0.1s. This prevents garbage
values being passed into the EKF when a sensor dies and then becomes
available again some time later
2019-07-07 19:03:01 +10:00
Andrew Tridgell 3444e82ef9 AP_InertialSensor: added RC switch for killing IMUs 2019-07-07 19:03:01 +10:00
Andrew Tridgell 053f0cb689 AP_InertialSensor: try much harder to get all IMU samples
this we ensures we get new data for all active IMUs on each loop,
rather than sometimes returning with some IMUs not having data.

This matters as not having a sample on an IMU for a single loop can
cause an EKF IMU failover, which will degrade the learned bias
variances

The issue is usually only seen under high load, such as requesting a
loop rate beyond what the hardware is capable of
2019-07-07 19:03:01 +10:00
Andy Piper 31ea3466af AP_InertialSensor: Post-filter logging takes precedence over sensor-rate logging. 2019-06-06 17:09:17 +10:00
Andy Piper 36878e9b3c AP_InertialSensor: Allow all filter frequencies to be 16bit. 2019-06-06 17:09:17 +10:00
Andy Piper fff81a2163 AP_InertialSensor: Make sure the LPF output is used by the notch input. 2019-06-06 17:09:17 +10:00
Andy Piper 18d403c3ac AP_InertialSensor: Rework notch filter allocation and sampling
https://github.com/ArduPilot/ardupilot/issues/11346

Allocate a notch filter per-IMU.
Update the notch filters in the backend at the sensor sample rate.
Allow raw logging of post-filtered gyro and accel values.
2019-06-06 17:09:17 +10:00
Andrew Tridgell aef343bfd0 AP_InertialSensor: removed old mRoControlZeroF7 config 2019-05-30 15:39:57 +10:00
Andrew Tridgell 039e7366b0 AP_InertialSensor: support new sensor config setup 2019-05-30 15:39:57 +10:00
Andrew Tridgell 3823ba539c AP_InertialSensor: rename to EXPECT_DELAY_MS() 2019-05-15 15:33:48 +10:00
Andrew Tridgell 02326ac52c AP_InertialSensor: use EXPECT_DELAY() macro 2019-05-15 15:33:48 +10:00
Andrew Tridgell 4e769730c9 AP_InertialSensor: removed unusued AP_Common/Semaphore.h 2019-05-15 15:33:48 +10:00
Phillip Kocmoud 6665e4c0a7 AP_InertialSensor: probe IMUs for mRoControlZeroF7 2019-05-10 15:05:42 +10:00
Andrew Tridgell 893b49d145 AP_InertialSensor: disable register checking in invensensev2 driver
register checking doesn't work for the banked registers used in the
invensensev2 register layout. It ends up setting the wrong register
value in some cases, which can either cause the sensor to stop working
or in the worst case give bad data
2019-05-10 14:55:39 +10:00
Jaaaky 47c65314fb AP_InertialSensor: fix accelcalsimple watchdog 2019-05-01 14:23:20 +10:00
Andrew Tridgell 034d476fa5 AP_InertialSensor: prevent watchdog in accelcal 2019-04-22 16:53:35 +10:00
Andrew Tridgell 9c48d001ac AP_InertialSensor: skip gyro cal on watchdog reset 2019-04-22 16:53:35 +10:00
Andrew Tridgell c988eb2fd9 AP_InertialSensor: don't set INS_ENABLE_MASK to found IMU mask 2019-04-22 14:56:59 +10:00
Andrew Tridgell c7ed4bfbcc AP_InertialSensor: allow testing of IMU failure 2019-04-22 14:56:42 +10:00
Randy Mackay 9fa742e1be AP_InertialSensor: fix compiler warning in BMI088 driver 2019-04-11 10:32:51 +09:00
Peter Barker e0fc73776c AP_InertialSensor: return floats from raw-sample-rate getters
The underlying type changed at some stage but the getters did not
2019-04-09 10:02:16 +10:00
Andrew Tridgell fa63243eb0 AP_InertialSensor: added BMI088 accel config retry 2019-04-08 19:58:12 +10:00
Peter Barker ef860db558 AP_InertialSensor: add floating point constant designators 2019-04-05 23:04:17 -07:00
Michael du Breuil c7a9e8bf93 AP_InertialSensor: Fix implicit include of AP_Logger 2019-04-05 20:12:53 +11:00
L Kurt Shaw d08ab88dea INS: AP_InertialSensor comments for new cubes
Correct comments ICM20648 should have been ICM20948
2019-04-02 10:52:43 +11:00
Tom Pittenger 3eeaa2c8df AP_InertialSensor: rename dataflash to logger 2019-03-28 16:40:57 +11:00