Commit Graph

1156 Commits

Author SHA1 Message Date
Andy Piper 16ca2e1179 AP_InertialSensor: use 234Hz accel LPF and 532Hz gyro LPF on BMI088 to more closely match Invensense
synchronize fifo reads with backend update on BMI088
2022-12-28 18:18:26 +11:00
Andy Piper 90cdc1aa52 AP_InertialSensor: allow FFT window to be captured post-filter
selectively apply filters twice to make sure that FFT is not tracking itself
clean-up notch disablement for non-DSP builds
use filter gyro data for FFT when analysing post-filter
always apply LPF after all of the notches
move to a phased application of window information for FFT
tap FFT gyro window at the appropriate place for downsampled FFTs
add accessor for FFT notch
document notch uses cases and flow
2022-12-28 18:14:56 +11:00
Andy Piper 9eb561639b AP_InertialSensor: add support for reading and writing INS data from a file in SITL
allow sketch to be stopped at end of SITL samples
2022-12-28 18:14:56 +11:00
Peter Barker fe10f15e17 AP_InertialSensor: various SITL INS improvements 2022-11-16 10:22:33 +11:00
Peter Barker 5e21a95016 AP_InertialSensor: change namespace of MultiCopter and FixedWing params
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
bugobliterator 5096023eef AP_InertialSensor: add fast reset for ICM20602 instead of full reset on bad temp sample 2022-11-01 10:53:09 +11:00
bugobliterator 35f05738d0 AP_InertialSensor: add support for ICM45686 IMU 2022-11-01 10:41:59 +11:00
Andy Piper 55aed98f81 AP_InertialSensor: ensure that hardware AAF and notch filter are enabled on 42605 and 42609 2022-10-25 11:06:02 +11:00
Andrew Tridgell 9fa3a433f5 Revert "AP_InertialSensor: disable temperature based fifo check on ICM20602"
This reverts commit 05f8e3c18d.

this leads to bad IMU data on ICM20602
2022-10-22 13:01:39 +11:00
Leonardo Garcia 72c6977ea5 AP_InertialSensor: Fix BMI085 accel scaling
Original BMI088 has 24G range so it was hardcoded for *scale* within
read_fifo_accel. Added a class variable accel_range which is assigned
the correct value when the sensor type is received (16.0 or 24.0).
2022-10-18 11:03:34 +11:00
Andrew Tridgell c42acd553e AP_InertialSensor: use motor_mask from SITL for which outputs are motors
generate noise based on motor_mask
2022-10-16 20:38:19 +11:00
bugobliterator 05f8e3c18d AP_InertialSensor: disable temperature based fifo check on ICM20602 2022-10-13 10:14:59 +11:00
Iampete1 4668e1b61e AP_InertialSensor: Logging: only log single notch frequency unless per-motor, never log fixed 2022-10-05 18:30:24 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Andy Piper 8037e10be7 AP_InertialSensor: make sure dynamic notches always get updates so that slew limiting is not too aggressive 2022-09-21 17:41:38 +10:00
murata a6d7d39364 AP_InertialSensor: Allow gyro counts to be returned 2022-09-20 09:37:29 +10:00
murata 734692460c AP_InertialSensor: Remove line breaks from PANIC strings 2022-09-15 13:21:09 +10:00
Andy Piper fcbaa0969e AP_InertialSensor: synchronize BMI70 on fifo reads 2022-09-06 09:31:21 +10:00
Peter Barker a4773413e4 AP_InertialSensor: correct INS_generic example
segfaults due to lack of singletoin objects in examples
2022-08-13 20:53:29 +10:00
Andy Piper a6312ac893 AP_InertialSensor: correctly detect bad frames on regular ICM42xxx 2022-08-12 20:53:36 +10:00
Andy Piper 221ab9752e AP_InertialSensor: synchronise fifo reads on the ICM42xxx 2022-08-12 20:53:36 +10:00
Iampete1 4e4bfda05d AP_InertialSensor: vector params always use set method 2022-08-03 13:43:48 +01:00
Iampete1 ea03ea320c AP_InertialSensor: params always use set method 2022-08-03 13:43:48 +01:00
Andy Piper 8855a54720 AP_InertialSensor: use filtered data in BMI270 and implement fifo reset
increase gyro ODR to 3.2Khz to allow higher AAF
use OSR4 on accel filter to achieve nominal 188Hz
2022-08-03 17:06:38 +10:00
Andy Piper 155d436807 AP_InertialSensor: support for fast sampling rates on ICM-42xxx series
thoughtfully set anti-aliasing filters on ICM-42xxx series
2022-08-02 17:26:46 +10:00
Andrew Tridgell 2582d5fad5 AP_InertialSensor: re-enable notch filter on 42688
thanks to Andy for pointing out this is for an internal resonance
2022-08-02 17:26:46 +10:00
Andrew Tridgell 8a6b8fc486 AP_InertialSensor: enable 180Hz LPF on ICM42670 2022-08-02 17:26:46 +10:00
Andrew Tridgell 5b579aebce AP_InertialSensor: enable AAF at 488Hz for gyro+accel on ICM42688
this should improve vibration handling
2022-08-02 17:26:46 +10:00
Andrew Tridgell 5bde9b0e7c AP_InertialSensor: added support for ICM42670 IMU 2022-08-02 17:26:46 +10:00
Iampete1 98d9f07507 AP_InertialSensor: defualt accel scale vector to 1.0 2022-07-28 16:51:33 +10:00
Andrew Tridgell 97646f4164 AP_InertialSensor: support BOARD_MATCH() for IMUs 2022-07-19 15:02:31 +10:00
Peter Barker e4ce4ebed3 AP_InertialSensor: remove un-needed methods 2022-07-19 10:30:36 +10:00
Peter Barker 80e70b2fb4 AP_InertialSensor: remove voiding of parameter
Clearly this is used - we pass it down
2022-07-05 09:54:53 +10:00
Andrew Tridgell c29b390e7b AP_InertialSensor: implemented harmonics in SITL vibration 2022-07-03 18:47:33 +10:00
Andy Piper 193375a7e5 AP_InertialSensor: implement triple notches 2022-07-03 18:21:41 +10:00
Andy Piper 9d851a0c1a AP_InertialSensor: allow concurrent logging of both pre- and post-filter IMU data for FFT
remove batch logging bitfields
2022-07-03 18:19:55 +10:00
Andrew Tridgell 9ac3472b47 AP_InertialSensor: add set_inactive() on notch filters 2022-06-30 20:58:37 +10:00
Andrew Tridgell d653499efc AP_InertialSensor: count filters to match notch options
this allows for much more complex filter setups as long as not
filtering on all IMUs
2022-06-12 15:39:44 +10:00
Andrew Tridgell a37f268dc6 Ap_Inertialsensor: by default only run harmonic notch on the active gyro
this should save quite a lot of CPU. Only the active gyro impacts
vehicle flight
2022-06-12 15:39:44 +10:00
Andy Piper 11f5d1974a AP_InertialSensor: don't print error when probing non-existant BMI270
fix device locking at startup on BMI270
2022-06-08 21:44:21 +10:00
Andy Piper 6cacdd1b34 AP_InertialSensor: properly reset MPU6000 signal path at startup
failure to reset the signal path as per the register spec leads to
very poor temperature response early on in startup.
2022-06-08 17:44:17 +10:00
Andrew Tridgell 19063a46a0 AP_InertialSensor: fixed build with logging disabled
fixes CubeOrange-periph build
2022-06-06 14:50:40 +10:00
Tom Pittenger 798f985ee5 AP_InertialSensor: relax is_still() threshold for SITL.. which is pretty darn still all the time for Plane 2022-05-20 10:52:47 -07:00
Randy Mackay 2382e58f04 AP_InertialSensor: extend ENABLE_MASK param desc IMUs 4 to 7 2022-05-19 07:54:24 +10:00
murata 324f5e3ac9 AP_InertialSensor: Console output can be disabled 2022-05-17 09:53:06 +10:00
Andy Piper e0b7e5f2a5 AP_InertialSensor: add throttle-based notch setup function
allocate harmonic notch filter if FFT is enabled
2022-05-04 17:05:51 +10:00
Peter Barker 94dc0e78cd AP_InertialSensor: tidy includes 2022-05-03 09:14:58 +10:00
Leonardo Garcia 0eb6ae365a AP_InertialSensor: Added BMI085 support
Fixed styling for 61125e2

Remove whitespace l202

Removed else
2022-04-27 18:37:39 +10:00
Iampete1 2d2165936a AP_InertialSensor: use pitch to guess which axis the user is trying to calibrate, warn about Q_TRIM_PITCH on plane 2022-04-26 10:03:30 +10:00
Andrew Tridgell db14ba46dc AP_InertialSensor: call notch param update with semaphore held 2022-04-19 09:39:03 +10:00