Andy Piper
6db09c9fdd
AP_InertialSensor: keep a queue of gyro samples for use by the rate thread
...
decimate the gyro window locally
configure rate loop buffer based on AP_INERTIALSENSOR_FAST_SAMPLE_WINDOW_ENABLED
allow backends to be updated from rate thread
output debug error if rate loop buffer overruns
add support for updating filter parameters independently of propagating samples
add rate loop config abstraction that allows code to be elided on non-copter builds
must be using harmonic notch to use rate thread
mediate fast rate loop buffer using mutex and binary semaphore
ensure gyro samples are used when the rate loop buffer isn't
Co-Authored-By: Andrew Tridgell <andrew@tridgell.net>
2024-12-04 07:45:05 +11:00
Peter Barker
ef0de65347
AP_InertialSensor: tidy IMU killing
2024-07-10 18:17:00 +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
Andy Piper
f78eb58fb4
AP_InertialSensor: ensure that notches get updated while converging
2024-05-03 07:34:21 +10:00
Peter Barker
6de3cce480
AP_InertialSensor: allow HarmonicNotches to be compiled out of the code
2024-03-19 07:04:13 +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
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
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
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
Michael du Breuil
b76d6d827f
AP_InertialSensor: Factor accel cal in from GCS_MAVLink
2023-04-21 21:33:16 +10:00
bugobliterator
13cdc8bda8
AP_InertialSensor: fix hardfault in BatchSampler
2023-04-05 18:22:03 +10:00
Andy Piper
c9382cd221
AP_InertialSensor: HAL_WITH_DSP -> HAL_GYROFFT_ENABLED
2023-03-29 20:49:40 +11:00
Peter Barker
3fada15681
AP_InertialSensor: correct access beyond array in Ins TCal
2023-03-28 21:25:11 +11:00
bugobliterator
10439cc42e
AP_InertialSensor: add support for extra Aux IMUs
2023-03-21 10:04:16 +11:00
Iampete1
77540dff07
AP_inertialSensor: BatchSampler: add enabled and initalised getters
2023-03-07 10:56:16 +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
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
jackhong12
4a4f361a17
all: use CLASS_NO_COPY() macro
2022-10-04 11:23:04 +11:00
murata
a6d7d39364
AP_InertialSensor: Allow gyro counts to be returned
2022-09-20 09:37:29 +10:00
Peter Barker
e4ce4ebed3
AP_InertialSensor: remove un-needed methods
2022-07-19 10:30:36 +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
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
Andrew Tridgell
dff0e5ecc1
AP_InertialSensor: fixed the last notch values to be per-instance
...
thanks to Andy for noticing this
2022-04-19 09:39:03 +10:00
Andrew Tridgell
e2e1e74da5
AP_InertialSensor: switch to HarmonicNotch class
...
this makes the logic much easier to follow, without indexes into
arrays
2022-04-19 09:39:03 +10:00
Andrew Tridgell
e67d9b4179
AP_InertialSensor: support two full harmonic notch filters
2022-04-19 09:39:03 +10:00
Andrew Tridgell
ab5e8419d8
AP_InertialSensor: move INS_HNTC2 to a new parameter table ID
2022-04-16 08:14:06 +10:00
Andy Piper
29e8f96275
AP_InertialSensor: move frontend update into ramfunc.
2022-04-12 09:19:45 +10:00
Peter Barker
3dae386ae3
AP_InertialSensor: correct compilation with HAL_INS_ACCELCAL_ENABLED false
2022-03-22 10:39:44 +11:00
Peter Barker
da21b48f7e
AP_InertialSensor: split AP_HAL_SITL and HAL_SIM_ENABLED
2022-03-17 14:39:55 +11:00
Iampete1
b77476caa1
AP_InertialSensor: remove custom orentations
2022-03-02 18:16:42 +11:00
Andy Piper
c7a43f2a90
AP_InertialSensor: put some functions in fast ram
...
precisely split backend/frontend on Invensense for RAMFUNC allocation
allow building with no IMUs
2022-02-09 12:47:55 +00:00
Peter Barker
c1c329e2b4
AP_InertialSensor: add and use AP_SIM_INS_ENABLED
2022-01-17 19:14:39 +11:00
Jaaaky
f80a9ba3ce
AP_InertialSensor: Fix issue #19599 Failed to build Pixhawk1 with O3
...
As suggested by @tridge
2022-01-17 08:33:27 +11:00
Peter Barker
6084682634
AP_InertialSensor: move INS notch filter logging into INS
2022-01-05 16:34:36 +11:00
Andy Piper
d44478ff59
AP_InertialSensor: calculate number of notches based on motor count
...
configure default harmonics if dynamic harmonics
set number of notches correctly for FFT operation
include static notch in filter calculation and allow harmonic options on static notch
2021-12-22 18:13:38 +11:00
Jaaaky
bbb38504d6
AP_InertialSensor: Fix multi #include's
2021-12-21 10:38:46 +11:00
Peter Barker
dac4134533
AP_InertialSensor: move from HAL_NO_GCS to HAL_GCS_ENABLED
2021-09-22 21:37:00 +10:00
Andrew Tridgell
fefade783b
AP_InertialSensor: allow accelcal with a rotation
2021-09-17 14:07:14 +10:00
Peter Barker
52a52e1e5b
AP_InertialSensor: remove HIL support
2021-06-15 09:47:31 +10:00
Josh Henderson
9792202810
AP_InertialSensor: Privatize Logging
2021-04-29 19:19:12 +10:00
Andrew Tridgell
b3ed4f4b12
AP_InertialSensor: fixed handling of more than 3 accel/gyro instances
...
allows for first 3 to work without a panic
2021-04-13 09:36:52 +10:00
Peter Barker
2b0bf45891
AP_InertialSensor: remove separate calls to get delta-times for vel and ang
2021-03-13 11:29:29 +11:00
Andrew Tridgell
25dd08a1fd
AP_InertialSensor: added force_save_calibration()
2021-02-15 07:24:40 +11:00
Andrew Tridgell
6c8a57c2d7
AP_InertialSensor: review fixes
2021-01-21 13:09:21 +11:00
Andrew Tridgell
5e60fac37e
AP_InertialSensor: remove unused variable
2021-01-21 13:09:21 +11:00