Andrew Tridgell
7921e042f1
AP_InertialSensor: added IMU temperature calibration support
...
this adds parameters that can be setup by an external script for
compensating for temperature variation in gyros and accels using a 3rd
order polynomial
2021-01-21 13:09:21 +11:00
Peter Barker
239b09fb34
AP_InertialSensor: add simulator for ICM40609
2021-01-12 17:43:36 +11:00
Andrew Tridgell
957842f7eb
AP_InertialSensor: added support for v3 Invensense sensors
...
starting with ICM-40609, ICM-42688 and ICM-42605
2021-01-11 14:43:35 +11:00
Andrew Tridgell
b74e5c0e2f
AP_InertialSensor: added ExternalAHRS backend
2021-01-05 21:13:12 +11:00
Andrew Tridgell
4f176c25de
AP_InertialSensor: relax IMU wait time for low loop rates
...
allow for waiting for all IMUs for up to 1/3 of the loop time
2021-01-05 21:13:12 +11:00
Andrew Tridgell
f6c45c3bcd
AP_InertialSensor: cope with INS_MAX_INSTANCES < 3
2020-11-10 16:15:45 +11:00
Peter Barker
02c9aa2ae2
AP_InertialSensor: remove unused define
2020-10-20 11:24:34 +11:00
Andrew Tridgell
d5c0522651
AP_InertialSensor: instantiate SIM_IMU_COUNT sensors in SITL
2020-08-28 10:17:00 +10:00
Andy Piper
d4ba821297
AP_InertialSensor: make the backend fast gyro rate configurable and independent from the accel rate
...
allow fast sampling of gyros on MPU6000 and MPU6500
2020-07-28 20:47:16 +10:00
Andy Piper
05366e9aa9
AP_InertialSensor: delegate active harmonic calculation to the filter
2020-07-14 09:50:06 +10:00
Andy Piper
faf9bbbf3a
AP_InertialSensor: make the backend fast gyro rate configurable
...
raise gyro rate default on F7 and H7
clean up gyro rate docs and output startup banner
2020-07-10 16:45:29 +10:00
Andy Piper
61bb42cc0c
AP_InertialSensor: allow up to four distinct notch center frequencies to be updated
...
apply the LPF after the notch filters to reduced notch-induced noise
2020-06-21 19:09:35 +10:00
Andy Piper
8ac79da643
AP_InertialSensor: FFT gyro window would overflow on windows >= 256
...
convert FFT buffers to ObjectBuffer<float> for lock-free access
push gyro samples directly into the FFT ring buffer from the gyro thread
2020-05-24 07:43:34 +10:00
Andy Piper
d0a241597a
AP_InertialSensor: add support for double harmonic notches to more effectively target wider noise peaks
2020-04-28 09:32:02 +10:00
Peter Barker
efbf929bc0
AP_InertialSensor: rename APMrover2 to Rover
2020-04-14 09:50:34 +09:00
Andrew Tridgell
d772289b0d
AP_InertialSensor: added driver for ADIS16470
2020-04-13 11:57:04 +10:00
Andy Piper
0e9b2a26c5
AP_InertialSensor: SITL the raw sample rate is not the same as the sensor rate
...
use regulated time for frequency noise to avoid spurious harmonics
SITL sensors must be true separate instances
don't compile in FFT structures if DSP disabled
2020-02-22 11:15:37 +11:00
Andy Piper
3d9776dd6d
AP_InertialSensor: expose statically filtered gyro values for FFT analysis and allow sampling to gyro window for FFT analysis.
...
FFT windows can be dynamically allocated
add harmonic notch dynamic tracking mode
unwind gyro window allocation in the case of failure
allow access to harmonic notch harmonics
2020-02-22 11:15:37 +11:00
Peter Barker
ab7ee46423
AP_InertialSensor: mark some parameters as Calibration parameters
2020-02-04 20:29:09 +11:00
Randy Mackay
b7f6f4a05e
AP_InertialSensor: reduce POS param range to 5m and add increment
2020-02-01 08:46:03 +09:00
Andrew Tridgell
e52a3b9978
AP_InertialSensor: default fast sampling on
...
if we have a first IMU capable of fast sampling then we want it
enabled by default
2019-12-23 09:55:07 +11:00
Mark Whitehorn
00948c33d5
AP_InertialSensor: rename sensor_config_error to config_error
2019-11-08 10:14:34 +11:00
Andy Piper
a9a7fe3ea5
AP_InertialSensor: ensure harmonic notch gets appropriate defaults
2019-09-11 18:41:05 +10:00
Andy Piper
3261677e01
AP_InertialSensor: remove _ prefix from methods. use changed filter methods.
2019-09-11 18:41:05 +10:00
Andy Piper
50f7e50634
AP_InertialSensor: add harmonic notch filter to gyro filter chain
...
Allow dynamic updates to the calculated frequency. Convert bandwidth and frequency to floats.
backend variables do not need to be indexed per-backed
2019-09-11 18:41:05 +10:00
Andy Piper
dde6dec145
AP_InertialSensor: correct reboot documentation for batch logger and filters
2019-09-10 20:29:56 +10:00
Andrew Tridgell
15e15e0b9d
AP_InertialSensor: define GET_I2C_DEVICE()
2019-09-04 16:27:47 +10:00
Andrew Tridgell
1c92ecc89f
AP_InertialSensor: removed old method of specifying most IMUs
...
and removed dangerous default values for rotations
2019-08-28 06:54:11 +10:00
Andrew Tridgell
c99923d500
AP_InertialSensor: require gyro orientations in LSM9DS probe
...
this prevents a bug where they are missing in hwdef.dat
2019-08-27 19:29:37 +10:00
Andrew Tridgell
992016069a
AP_InertialSensor: fixed watchdog on AHRS trim gyro wait
2019-08-19 14:37:46 +10:00
Andrew Tridgell
e1ce735886
AP_InertialSensor: special check for CubeBlack to force INS_USE3=1
...
this will cope with users loading old parameter files
2019-07-31 12:53:57 +10:00
Andrew Tridgell
123800ccd2
AP_InertialSensor: default INS_USE3 to 1
2019-07-31 12:53:57 +10:00
Andrew Tridgell
8e5c0fa32b
AP_InertialSensor: disable kill IMUs with HAL_MINIMIZE_FEATURES
2019-07-07 19:03:01 +10:00
Andrew Tridgell
3444e82ef9
AP_InertialSensor: added RC switch for killing IMUs
2019-07-07 19:03:01 +10:00
Andrew Tridgell
053f0cb689
AP_InertialSensor: try much harder to get all IMU samples
...
this we ensures we get new data for all active IMUs on each loop,
rather than sometimes returning with some IMUs not having data.
This matters as not having a sample on an IMU for a single loop can
cause an EKF IMU failover, which will degrade the learned bias
variances
The issue is usually only seen under high load, such as requesting a
loop rate beyond what the hardware is capable of
2019-07-07 19:03:01 +10:00
Andy Piper
36878e9b3c
AP_InertialSensor: Allow all filter frequencies to be 16bit.
2019-06-06 17:09:17 +10:00
Andy Piper
18d403c3ac
AP_InertialSensor: Rework notch filter allocation and sampling
...
https://github.com/ArduPilot/ardupilot/issues/11346
Allocate a notch filter per-IMU.
Update the notch filters in the backend at the sensor sample rate.
Allow raw logging of post-filtered gyro and accel values.
2019-06-06 17:09:17 +10:00
Andrew Tridgell
aef343bfd0
AP_InertialSensor: removed old mRoControlZeroF7 config
2019-05-30 15:39:57 +10:00
Andrew Tridgell
039e7366b0
AP_InertialSensor: support new sensor config setup
2019-05-30 15:39:57 +10:00
Andrew Tridgell
3823ba539c
AP_InertialSensor: rename to EXPECT_DELAY_MS()
2019-05-15 15:33:48 +10:00
Andrew Tridgell
02326ac52c
AP_InertialSensor: use EXPECT_DELAY() macro
2019-05-15 15:33:48 +10:00
Phillip Kocmoud
6665e4c0a7
AP_InertialSensor: probe IMUs for mRoControlZeroF7
2019-05-10 15:05:42 +10:00
Jaaaky
47c65314fb
AP_InertialSensor: fix accelcalsimple watchdog
2019-05-01 14:23:20 +10:00
Andrew Tridgell
034d476fa5
AP_InertialSensor: prevent watchdog in accelcal
2019-04-22 16:53:35 +10:00
Andrew Tridgell
9c48d001ac
AP_InertialSensor: skip gyro cal on watchdog reset
2019-04-22 16:53:35 +10:00
Andrew Tridgell
c988eb2fd9
AP_InertialSensor: don't set INS_ENABLE_MASK to found IMU mask
2019-04-22 14:56:59 +10:00
L Kurt Shaw
d08ab88dea
INS: AP_InertialSensor comments for new cubes
...
Correct comments ICM20648 should have been ICM20948
2019-04-02 10:52:43 +11:00
Randy Mackay
5d8747c81d
AP_InetialSensor: fixup ENABLE_MASK parameter desc
2019-03-27 13:14:48 +09:00
Andrew Tridgell
4a334d0ed7
AP_IneertialSensor: fixed startup race in SITL
2019-03-21 18:54:32 +11:00
Andrew Tridgell
0a718ba330
AP_IneertialSensor: fixed orientations and gyro scale factors for new Invensense IMUs
2019-03-21 18:54:32 +11:00
Siddharth Purohit
8c2d3945de
AP_IneertialSensor: add support for custom accel scale
...
adds support for 30g measurement on ICM20649
2019-03-21 18:54:32 +11:00
Siddharth Purohit
3a833d9a90
AP_InertialSensor: fix rotation for ICM20649
2019-03-21 18:54:32 +11:00
L Kurt Shaw
8d75e8c5bb
INS: AP_InertialSensor.cpp
...
Fix typo in comments should be NFC
2019-03-12 15:56:55 +09:00
Andrew Tridgell
81cd103073
AP_InertialSensor: probe for new v2 invensense IMUs
...
also suppress LSM9DS0 whoami warnings, as these will now be common
with new IMUs
and make 20602 show up as a new devtype so we can distinguish it
2019-03-11 12:40:21 +11:00
Siddharth Purohit
528c0b4d7c
AP_InertialSensor: add drivers for register bank based Invensense Sensors
2019-03-06 20:47:10 +11:00
Siddharth Purohit
0cfcd0986e
AP_InertialSensor: look for icm20602 for Pixhawk 2 series flight boards
2019-03-06 20:47:10 +11:00
Andrew Tridgell
07e2167996
AP_InertialSensor: setup for fmuv6
2019-02-26 16:18:26 +11:00
Tom Pittenger
9347e6d36f
AP_InertialSensor: unify singleton naming to _singleton and get_singleton()
2019-02-10 19:09:58 -07:00
Andrew Tridgell
6048c10a7c
AP_InertialSensor: added driver for BMI088
...
setup for 1600 Hz accel sample, 2kHz gyro sample, 24g accel range
2019-01-31 12:05:57 -08:00
Andrew Tridgell
9520f5f768
AP_InertialSensor: removed F4Light
2019-01-21 21:57:21 +11:00
Peter Barker
43e3acc954
AP_InertialSensor: remove use of never-set AP_HAL_PX4 and AP_HAL_VRBRAIN
2019-01-18 09:53:44 +11:00
Peter Barker
43e47f33e4
AP_InertialSensor: remove PX4 backend
2019-01-17 06:41:33 +11:00
Michael du Breuil
983356213a
AP_InertialSensor: Remove unused parameter
2018-12-23 12:46:37 -08:00
Randy Mackay
6b3fa520b5
AP_InertialSensor: add range to POS param description
2018-12-13 20:14:01 +09:00
Andrew Tridgell
3de860f73b
AP_InertialSensor: fixed orientation of 2nd OmnibusF7V2 IMU
2018-12-12 16:27:34 +11:00
Andrew Tridgell
89b8124560
AP_InertialSensor: added BMI055 IMU driver
2018-06-08 09:56:41 +10:00
Andrew Tridgell
bfa66c9397
AP_InertialSensor: detect two IMUs on FMUv5
2018-06-06 07:15:41 +10:00
Francisco Ferreira
8b32960d3e
AP_InertialSensor: remove Qualcomm board support
2018-05-17 09:57:20 +10:00
Peter Barker
1a640e3405
AP_InertialSensor: parameterise sensor-rate logging, generalise it
...
AP_InertialSensor: add parameters for push-to-log interval and count
AP_InertialSensor: rename BAT_RAW to BAT_OPT
This becomes a bitmask of options for the BatchSampler
AP_InertialSensor: rename 'fast sample' to 'sensorrate sample'
AP_InertialSensor: const sensor-rate filter method
AP_InertialSampler: remove hard-coding of sample rate multiplier
AP_InertialSensor: use parameter to enable/disable sensor-rate logging
AP_InertialSensor: use a parameter to control sensor-rate logging
AP_InertialSensor: allow backends to override sensor data multiplier
e.g. some accelerometers are sensitive over wider ranges than the default 16G
AP_Inertialsensor: correct sample rate multiplier
2018-05-01 09:35:29 +10:00
Jacob Walser
ad4e928e7d
AP_InertialSensor: add support for custom board orientations
2018-04-24 13:04:37 +01:00
Andrew Tridgell
ea2dc9b831
AP_InertialSensor: added OMNIBUSF7V2 INS sensors
...
a dual-IMU board
2018-04-12 11:50:44 +10:00
Peter Barker
aca87ab638
AP_InertialSensor: remove pointless initialisations
...
AP_InertialSensor: avoid pointless zeroing in constructor
AP_InertialSensor is either in bss or is created via new (which zeroes
memory)
2018-04-04 12:14:02 +01:00
Peter Barker
2396a248ed
AP_InertialSensor: use ahrs singleton for simple accelcal
2018-04-02 23:25:05 +01:00
Andrew Tridgell
455c0e25e1
AP_InertialSensor: allow for HAL_INS_NONE
2018-03-02 12:52:50 +11:00
Andrew Tridgell
b61caa9c57
AP_InertialSensor: added SP01 board type
2018-02-14 18:27:00 +11:00
Peter Barker
096f7367bf
AP_InertialSensor: add ins() to AP:: namespace
2018-02-13 17:15:05 +11:00
Andrew Tridgell
0e6497aa85
AP_InertialSensor: merged in Revo driver
2018-02-10 09:14:41 +11:00
Andrew Tridgell
ad8db6cda3
AP_InertialSensor: added sensor type ICM20789_SPI
2018-02-08 17:36:33 +11:00
Andrew Tridgell
b9e5649888
AP_InertialSensor: support PCNC1
2018-02-08 17:36:33 +11:00
Igor Anokhin
e6d4b2a087
AP_InertialSensor: add LSM9DS1 entry
...
Enable LSM9DS1 in case it is selected
2018-02-06 09:31:26 -08:00
LukeMike
502f19cbae
VRBRAIN / AP_InertialSensor: added inertial sensors init for VR Brain boards
2018-02-05 08:26:49 +11:00
Andrew Tridgell
100363ba03
AP_InertialSensor: if no sensors found allow parameter change
2018-01-20 10:36:22 +11:00
Andrew Tridgell
c0c5f23aa5
AP_InertialSensor: added INS_ENABLE_MASK
...
this allows for only a specified subset of IMUs to be probed, so you
can disable IMUs that aren't needed.
The back corresponds to bits in the order the IMUs are normally probed
on the board
2018-01-20 10:36:22 +11:00
Andrew Tridgell
8ab35e8aca
AP_InertialSensor: fixed MindPX-v2 orientation of IMU2
2018-01-15 11:46:02 +11:00
Andrew Tridgell
dcab40459d
AP_InertialSensor: support MindPX-v2
2018-01-15 11:46:02 +11:00
Andrew Tridgell
febe414766
AP_InertialSensor: disable fast sampling on 2nd IMU on Pixracer
...
it also hosts a mag, and gets lots of FIFO resets if we try to run it
at 8kHz
2018-01-15 11:46:02 +11:00
Andrew Tridgell
3fc095589c
AP_InertialSensor: support ChibiOS FMUv4
2018-01-15 11:46:02 +11:00
Andrew Tridgell
39362a81ae
AP_InertialSensor: support ChibiOS
2018-01-15 11:46:02 +11:00
Andrew Tridgell
39c206ca03
AP_InertialSensor: limit delta-time from INS
...
limit delta-time to 2x average time
DEBUG CODE - DO NOT MERGE
2017-12-12 11:39:38 +11:00
Randy Mackay
38145f9541
AP_InertialSensor: fix param docs for notch and log settings
2017-12-12 07:59:41 +09:00
Peter Barker
161e2145cb
AP_InertialSensor: tighten type of simple_accel_cal result
2017-12-01 17:01:10 +00:00
HeBin
efbb030494
AP_InertialSensor: add Robsense PhenixPro Devkit Board support
2017-11-22 10:10:21 -08:00
Peter Barker
9566abb3a8
AP_InertialSensor: add IMU batch sampling
2017-10-27 16:33:45 +11:00
Peter Barker
5096e2fca9
AP_InertialSensor: use df singleton, factor out log_{gyro,accel}_raw
2017-10-27 16:33:45 +11:00
Alexey Bulatov
069c98b8a9
AP_InertialSensor: Edge: add sensor's rotation YAW_90
2017-10-20 13:03:08 -07:00
Georgii Staroselskii
4f2d8f8df4
AP_InertialSensor: use ICM backend for Edge
2017-10-20 13:03:08 -07:00
Andrew Tridgell
6a6f9681ab
AP_InertialSensor: allow for 1,1,1 accel scaling
...
this supports simple accel calibration
2017-10-10 10:57:38 +11:00
Andrew Tridgell
d5cab1140a
AP_InertialSensor: added simple_accel_cal()
...
this is useful for mass market vehicles where a full 3D accel cal is
too complex.
2017-10-10 10:57:38 +11:00
Lucas De Marchi
caa4e3ee89
AP_InertialSensor: remove raspilot
2017-09-12 15:06:19 -07:00
Andrew Tridgell
7e1368f7a5
AP_InertialSensor: implement notch filter on gyro
2017-08-29 13:52:29 +10:00