Commit Graph

451 Commits

Author SHA1 Message Date
Andrew Tridgell
53ee7d6e75 AP_InertialSensor: fixed check for changes to notch filters
if the configured freq changes on any type of notch then A and Q
change, so init must be called. This does not affect only Fixed
notches
2024-11-30 17:59:47 +11:00
bugobliterator
9381404a9f AP_InertialSensor: fix continuing after ins init fail in AP_Periph 2024-10-23 06:46:22 +09:00
Andy Piper
cb111504e2 AP_InertialSensor: cope with negative ESC frequencies in notch updates 2024-10-09 18:31:57 +11:00
James O'Shannessy
66817e207f AP_InertialSensor: Check the gyro/accel id has not been previously registered
If the Gyro/Accel ID is already in the registered list, do not try to add it again.

This stops an issue seen on a CubeOrangePlus BG3 where, during the very first boot after a parameter wipe, software incorrectly registers a fourth IMU.
The Fourth IMU is registered because the AUX IMU is the same DevID as the third ICM45686.
2024-07-25 09:49:35 +10:00
Peter Barker
8ddac54b17 AP_InertialSensor: rename ins get_primary_accel to get_first_usable_accel 2024-06-26 17:12:12 +10:00
Andrew Tridgell
a0acccb1f9 AP_InertialSensor: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Andy Piper
f78eb58fb4 AP_InertialSensor: ensure that notches get updated while converging 2024-05-03 07:34:21 +10:00
James O'Shannessy
ac271cf4e0 AP_InertialSensor: Improve bitmask indicating persistent parameters on bootloader flash
INS_TCAL_OPTIONS parameter description indicates a singular bit in a bitmask to persist Accels/TCAL parameters, however there are two separate bits for persistence.
2024-03-26 11:39:11 +11:00
Peter Barker
6de3cce480 AP_InertialSensor: allow HarmonicNotches to be compiled out of the code 2024-03-19 07:04:13 +11:00
Andrew Tridgell
88fb38b524 AP_InertialSensor: added comments 2024-03-16 06:54:27 +11:00
Andrew Tridgell
25ffcc1580 AP_InertialSensor: use num_composite_notches()
this prevents duplication of the logic for the priority of the double
notch vs the triple notch option
2024-03-16 06:54:27 +11:00
Andrew Tridgell
08ccead215 AP_InertialSensor: fixed num_filters to be uint16_t
max is more than 256
2024-03-16 06:54:27 +11:00
Andrew Tridgell
de8bec596e AP_InertialSensor: removed zero checks and clamping on notch filters
and pass params object down into HarmonicNotchFilter
2024-03-16 06:54:27 +11:00
Andrew Tridgell
66ff84e6fb AP_InertialSensor: fixed wait_for_sample() in examples 2024-02-28 19:22:14 +11:00
Andrew Tridgell
280bc3a285 AP_InertialSensor: fixed accel cal simple to remove unused IMUs
when we change EAHRS_SENSORS to remove use of IMU from an external
AHRS we need to be able to zero the accel and gyro offsets to get
prearms to pass
2024-02-27 21:10:20 +11:00
Hayden Donald
fdf56c2ec4 AP_InertialSensor: Move accel/gyro_consistent to AP_IntertialSensor
Move the accel_consistent and gyro_consistent methods from AP_Arming to AP_IntertialSensor
2024-02-09 18:54:43 +11:00
Peter Barker
1051da5cb4 AP_InertialSensor: correct compilation when AP_AHRS_ENABLED is off
e.g. CubeOrange-periph-heavy
2024-01-16 16:14:04 +11:00
Peter Barker
a81b229997 AP_InertialSensor: make AHRS attitude member variables private 2024-01-14 12:47:47 +11:00
Andrew Tridgell
aba5ec6854 AP_InertialSensor: added support for writing raw IMU data to a UART
this is for supporting external visual odomotry systems which need the
IMU data to correctly process image data

# Conflicts:
#	libraries/AP_InertialSensor/AP_InertialSensor.cpp
2023-11-30 07:05:02 +11:00
Iampete1
eb4e3fc36a AP_InertialSensor: init all notch center frequencies 2023-11-28 18:05:37 +11:00
Andrew Tridgell
0ebf9e7af5 AP_InertialSensor: pre-fetch instances for use in filter setup
we use the instance numbers during filter configuration to check if
fast sampling is enabled. We need to ensure these instance numbers
have been setup before the filtering functions get called
2023-10-25 19:23:11 +11:00
Iampete1
e35a459090 AP_InertialSensor: call init for harmonic notch params 2023-10-10 08:07:16 +09:00
Iampete1
3429276224 AP_InertialSensor: add INS_RAW_LOG_OPT to allow raw logging of post, and pre+post on primary or all gyros 2023-10-03 10:24:58 +11:00
Peter Barker
baf5d34256 AP_InertialSensor: create define specifically for the developer feature for killing IMUs 2023-06-07 18:23:01 +10:00
jfbblue0922
458fbb7f90 AP_InertialSensor: add SCHA63T IMU support 2023-05-10 17:24:02 +10:00
Michael du Breuil
b76d6d827f AP_InertialSensor: Factor accel cal in from GCS_MAVLink 2023-04-21 21:33:16 +10:00
Henry Wurzburg
00858dce78 AP_InertialSensor: add buzzer noises 2023-04-05 09:05:14 +10:00
Andy Piper
c9382cd221 AP_InertialSensor: HAL_WITH_DSP -> HAL_GYROFFT_ENABLED 2023-03-29 20:49:40 +11:00
bugobliterator
866e6672c8 AP_InertialSensor: fix duplicate sensor detection for AUX sensors 2023-03-23 13:53:44 +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
18f0fc50d5 AP_InertialSensor: allow enabling of only some ExternalAHRS sensors 2023-01-30 09:22:02 +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
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
Peter Barker
ee98d75173 AP_InertialSensor: rename HAL_INS_ENABLED to AP_INERTIALSENSOR_ENABLED 2023-01-03 10:28:42 +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
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
35f05738d0 AP_InertialSensor: add support for ICM45686 IMU 2022-11-01 10:41:59 +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
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
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
Andy Piper
193375a7e5 AP_InertialSensor: implement triple notches 2022-07-03 18:21:41 +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
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