Andrew Tridgell
58281108c0
AP_InertialSensor: fix for ICM42688 stuck gyro issue
...
these undocumented bits in register 0x4d control the "adaptive full
scale range" mode of the ICM42688. The feature is enabled by default
but has a bug where it gives "stuck" gyro values for short periods
(between 1ms and 2ms):, leading to a significant gyro bias at longer
time scales, enough to in some cases cause a vehicle to crash if it is
unable to switch to an alternative IMU
this fixes https://github.com/ArduPilot/ardupilot/issues/25025
2023-11-07 17:36:12 +09:00
Andrew Tridgell
e0ec7a9c9d
AP_InertialSensor: fixed the error value for BMI088
...
the bad value is -32768 not 0xffff (which is -1)
-32768 badly corrupts the low-pass filter, and is what we see in logs
(a large negative spike on all 3 axes)
update to bug fix from:
https://github.com/ArduPilot/ardupilot/pull/23033
2023-10-13 16:26:01 +09:00
Randy Mackay
c74eea54c5
AP_InertialSensor: SCHA63T comment fix
2023-06-08 09:29:59 +10:00
Randy Mackay
655bdb3390
AP_InertialSensor: SCHA63T loses unused ret bool
2023-06-08 09:29:59 +10:00
Randy Mackay
fbfd8d506a
AP_InertialSensor: formatting fixes
2023-06-08 09:29:59 +10:00
jfbblue0922
81424e2d05
AP_InertialSensor: add SCHA63T IMU support
2023-06-08 09:29:59 +10:00
bugobliterator
42d21ab9bc
AP_InertialSensor: fix hardfault in BatchSampler
2023-04-21 09:48:59 +10:00
Peter Barker
f3502a71e9
AP_InertialSensor: correct access beyond array in Ins TCal
2023-04-21 09:48:59 +10:00
bugobliterator
b9e9d4cc4f
AP_InertialSensor: fix duplicate sensor detection for AUX sensors
2023-03-24 11:55:45 +11:00
bugobliterator
6eaa05960f
AP_InertialSensor: increase the temp tolerance for INV2 driver for fifo reset
2023-03-23 08:00:05 +11:00
bugobliterator
08bea2fcd2
AP_InertialSensor: move from INS_ top level parameters to INS
2023-03-21 10:04:16 +11:00
bugobliterator
10439cc42e
AP_InertialSensor: add support for extra Aux IMUs
2023-03-21 10:04:16 +11:00
Andrew Tridgell
34a52142c8
AP_InertialSensor: added support using the 2nd IMU for heater control
2023-03-15 19:08:53 +11:00
Iampete1
77540dff07
AP_inertialSensor: BatchSampler: add enabled and initalised getters
2023-03-07 10:56:16 +11:00
Andrew Tridgell
a0fe53414c
AP_InertialSensor: removed the error count on BMI088 0xff data
...
this error happens often enough that it is frustrating for users who
can't arm, which just encourages use of forced arming.
logs show this happening at a rate of once every few seconds, which
doesn't impact on the usability of the gyro (which is at 2kHz), but
does prevent arming with this error incremement
2023-02-28 11:28:25 +11:00
Peter Barker
601c46f7e0
AP_InertialSensor: add gyro bias simulation
2023-02-24 09:21:42 +11:00
Andy Piper
3cca401af8
AP_InertialSensor: calculate backend sample rates on ICM45686 correctly
2023-02-22 18:06:46 +11:00
bugobliterator
5680c411e9
AP_InertialSensor: can check icm45686 RTC_CONFIG reg because reserved value changes
2023-02-22 18:06:46 +11:00
bugobliterator
ef9e264919
AP_InertialSensor: set default data rate to 3.2kHz for ICM-45686
2023-02-22 18:06:46 +11:00
bugobliterator
b20ffce39d
AP_InertialSensor: add soft reset, clkin for icm45686 and other fixes
2023-02-22 18:06:46 +11:00
Andy Piper
727aa02c26
AP_InertialSensor: correct register setup for ICM45686, make CLKIN optional
2023-02-22 18:06:46 +11:00
Andy Piper
4aafb3ab71
AP_InertialSensor: fast sampling for ICM45686
...
Fix accel scale on ICM45686
2023-02-22 18:06:46 +11:00
Andrew Tridgell
18f0fc50d5
AP_InertialSensor: allow enabling of only some ExternalAHRS sensors
2023-01-30 09:22:02 +11:00
Andrew Tridgell
08d420a08c
AP_InertialSensor: reject 0xff frames from BMI088 gyro
...
a log on a board with a BMI088 seems to show that this happened
2023-01-24 11:16:39 +11:00
Andy Piper
bd05b548a7
AP_InertialSensor: use freq_min_ratio on notch tune setup
...
set harmonics in notch setup
2023-01-24 10:56:33 +11:00
Andrew Tridgell
645240cc2b
AP_InertialSensor: cleanup NAMED_VALUE_FLOAT for fifo error
2023-01-19 15:44:13 +11:00
Andrew Tridgell
786ae7c67f
AP_InertialSensor: fixed flood of log with fast fifo reset
2023-01-19 15:44:13 +11:00
Peter Barker
e5c3dd871c
AP_InertialSensor: create explicit define for AP_INERTIALSENSOR_BATCHSAMPLER_ENABLED
...
this allows the batch sampler to be removed for size reasons, or because you don't have logging enabled
2023-01-11 19:08:41 +11:00
Peter Barker
95527894de
AP_InertialSensor: define AP_INERTIALSENSOR_ENABLED in a new AP_InertialSensor_config.h
2023-01-04 18:02:34 +11:00
Iampete1
2e465b4c18
AP_InertialSensor: External: report name in output banner
2023-01-03 10:32:20 +11:00
Peter Barker
ee98d75173
AP_InertialSensor: rename HAL_INS_ENABLED to AP_INERTIALSENSOR_ENABLED
2023-01-03 10:28:42 +11:00
Andy Piper
7f7305a6d9
AP_InertialSensor: use correct include for sim-on-hardware
2022-12-31 09:32:32 +11:00
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