Commit Graph

260 Commits

Author SHA1 Message Date
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
Andrew Tridgell 285b53fe07 AP_InertialSensor: use vector polyfit
this reduces memory usage
2021-01-21 13:09:21 +11:00
Andrew Tridgell ffe20f7958 AP_InertialSensor: use a fixed reference temperature of 35C
this allows us to timeout the calibration when the temperature stops
rising as the polynomial no longer depends on the maximum temperature
2021-01-21 13:09:21 +11:00
Andrew Tridgell c9a83c8127 AP_InertialSensor: added INS_TCAL_OPTIONS
make persistent params optional, and allow save of accelcal
2021-01-21 13:09:21 +11:00
Andrew Tridgell 1ddc21c9bb AP_InertialSensor: support saving tempcal params persistently 2021-01-21 13:09:21 +11:00
Andrew Tridgell 8caea96ab1 AP_InertialSensor: start auto-learning at boot
This makes it easier to setup the params. The ENABLE=2 value only
takes effect at boot
2021-01-21 13:09:21 +11:00
Andrew Tridgell 30e55d8dfc AP_InertialSensor: cope with user changing TMAX while calibrating 2021-01-21 13:09:21 +11:00