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
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
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
184f84f4ee
AP_InertialSensor: don't update disabled notches
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
95ae150a21
AP_InertialSensor: catch FIFO overruns on BMI088
...
we have seen errors where the BMI088 gets out of sync, so that the 3
axes are rotated. The data is shifted by 4 bytes, so that X=Z, Y=X
and Z=Y
this changes the BMI088 to "stop on full" mode, which is what Bosch
use in their example drivers, and also catches FIFO overrun events and
triggers a full FIFO reset. This should fix the problem with the FIFO
sync
2022-04-16 19:24:16 +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
a53af5277c
AP_InertialSensor: assume accel cals are stored for sitl-on-hw
...
Same as for SITL - they don't need to actually be in storage to be valid
2022-03-17 14:39:55 +11:00
Peter Barker
da21b48f7e
AP_InertialSensor: split AP_HAL_SITL and HAL_SIM_ENABLED
2022-03-17 14:39:55 +11:00
murata
efe8427279
AP_InertialSensor: Change from division to multiplication
2022-03-16 18:41:52 +11:00
Iampete1
b77476caa1
AP_InertialSensor: remove custom orentations
2022-03-02 18:16:42 +11:00
Peter Barker
fda4a65e3e
AP_InertialSensor: include cleanups
2022-03-01 11:21:33 +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
558f6babc4
AP_InertialSensor: correct compilation if INS_TEMPERATURE_CAL_ENABLE is off
2022-02-08 10:44:01 +11: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
80178f5d07
AP_InertialSensor: mark FTN as a streamed message
2022-01-05 16:34:36 +11:00
Peter Barker
6084682634
AP_InertialSensor: move INS notch filter logging into INS
2022-01-05 16:34:36 +11:00
Andy Piper
3fd79b8ffb
AP_InertialSensor: BMI270 driver
2021-12-31 09:25:29 +11:00
Andrew Tridgell
7c8794b0bd
AP_InertialSensor: fixed INS_generic example
...
useful for driver development
2021-12-30 10:02:35 +11:00
Andrew Tridgell
662327f2ea
AP_InertialSensor: added support for more ADIS IMUs
...
support 32 bit delta angles and velocities
2021-12-29 18:25:18 +11:00
Andy Piper
6e3b502110
AP_InertialSensor: inline vector ops for backends and temp cal
2021-12-22 18:23:33 +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
c6734ad825
AP_InertialSensor: correct logging of inertial-sensor reg-change logging
2021-12-18 21:25:27 +11:00
QioTek
e5a8695640
AP_InertialSensor: added support for ICM-20608-D sensor
2021-12-17 07:58:48 +11:00
QioTek
586c2064a6
AP_InertialSensor: added support for IIM-42652 and ICM-40605 sensors
...
handle new Invensense v3 sensor types
2021-12-14 11:38:36 +11:00
Josh Henderson
27bcec9d6e
AP_InertialSensor: for all Cubes ensure use of non-isolated IMU
2021-11-30 10:20:54 +11:00
Randy Mackay
0de96f3f4a
AP_InertialSensor: vibe units m/s/s
...
also specify no multiplier
2021-11-18 13:23:06 +09:00
Andrew Tridgell
12c10dce32
AP_InertialSensor: fixed comments on IMU types supported
2021-11-09 08:05:03 +11:00
Buzz
168dc34566
AP_InertialSensor: New fallback type = NONE, which successfully does nothing like an INS, but without needing a real one, like esp32 dev boards.
...
Good for boards that u want to boot even when they dont have an IMU attached.
Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
2021-11-01 17:40:31 +11:00
Andy Piper
6a00819b2d
AP_InertialSensor: convert APM_BUILD_COPTER_OR_HELI() to APM_BUILD_COPTER_OR_HELI
2021-10-26 11:42:12 +11:00
Gone4Dirt
290794bf93
AP_InertialSensor: Add APM_BUILD_Heli
2021-09-29 19:55:48 +10: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
Andrew Tridgell
4fdc1ebc30
AP_InertialSensor: fixed locking issue in delta accumulation
...
this fixes a bug in calculating delta velocity and delta acceleration
between threads.
2021-08-31 10:10:18 +10:00
Pierre Kancir
29b13ff98a
AP_InertialSensor: fix externalAHRS detection
...
'A = B >= C' kind. The expression is calculated as following: 'A = (B >= C)'
2021-08-25 16:37:13 +09:00
Scott Parlane
4d95a9d1c3
AP_InertialSensor: BMI160: Allow configuring the rotation
2021-08-13 12:32:28 +10:00
Scott Parlane
700edd241f
AP_InertialSensor: BMI160: Make it possible to use I2C
...
The BMI160 chip talks the same protocol over SPI and I2C,
so simply allowing I2C in hwdef is sufficient to allow it to be used.
2021-08-13 12:32:28 +10:00
Scott Parlane
6554c535a1
AP_InertialSensor: BMI160: Remove linux-only restriction
2021-08-13 12:32:28 +10:00
bugobliterator
f20b7d0f8e
AP_InertialSensor: change class name from SITL::SITL to SITL::SIM
2021-08-05 07:25:31 +10:00