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
Andrew Tridgell
f68ed4f0a4
AP_InertialSensor: mark log messages as streaming
2021-08-03 10:23:36 +10:00
Andrew Tridgell
0f3dc195b6
AP_InertialSensor: fixed build warning
2021-07-27 19:50:21 +10:00
Siddharth Purohit
c4caf2ff54
AP_InertialSensor: add HAL_INS_ENABLED
2021-06-30 17:06:02 +10:00
Siddharth Purohit
447935bf4c
AP_InertialSensor: remove dependence on gcs for AP_Periph builds
2021-06-30 17:06:02 +10:00
Peter Barker
731cf038f0
AP_InertialSensor: remove @Values from param metadata where @Bitmask exists
2021-06-23 18:37:34 +10:00
Peter Barker
52a52e1e5b
AP_InertialSensor: remove HIL support
2021-06-15 09:47:31 +10:00
nkruzan
f4c18e0f9c
AP_InertialSensor_Invensense: set reset count to 1 if 10s has passed since last reset
2021-05-25 10:46:38 +10:00
Josh Henderson
2b20dcf128
AP_InertialSensor: move GYR & ACC logging functions to Logging.cpp
2021-05-01 14:15:58 +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
Andrew Tridgell
dcf6bcea6e
AP_InertialSensor: removed assert calls
...
these waste flash space and do not do us any good
2021-03-25 14:03:40 +11:00
Tatsuya Yamaguchi
2c95093d36
AP_InertialSensor: fix temperature sensor on LSM9DS0
2021-03-16 12:09:19 +11: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
Pierre Kancir
67540dc5bb
AP_InertialSensor: fix example
2021-03-03 18:07:38 +11:00
Pierre Kancir
c8a7ab1a75
AP_InertialSensor: fix example
2021-03-03 18:07:38 +11:00
Andrew Tridgell
bf999f701f
AP_InertialSensor: fixed ICM-20602 y offset bug
...
this works around a bug in the ICM-20602 that can cause the Y facttory
offset register to change unexpectedly. We don't know what triggers
this.
The fix is to save the factory offset at boot and restore it if it
changes. We log a message describing the change, but don't mark the
IMU unhealthy as this happens too often and we don't want to fallback
to a 2nd less good quality IMU (eg. MPU6000 on MatekH743)
2021-02-24 18:18:37 +11:00
Andrew Tridgell
4cddf37984
AP_InertialSensor: log unexpected register changes
...
when the register checking code finds an error we will log what
register changed and to what value
2021-02-24 18:18:37 +11:00
Andrew Tridgell
85ef6b7ac6
AP_InertialSensor: added optional logging of register changes
2021-02-24 18:18:37 +11:00
Andrew Tridgell
25dd08a1fd
AP_InertialSensor: added force_save_calibration()
2021-02-15 07:24:40 +11:00
Peter Barker
3da156e358
AP_InertialSensor: prevent nullptr dereference in SITL
2021-02-05 15:02:12 +11:00
Andrew Tridgell
0535c4f592
AP_InertialSensor: default TMAX to 70
...
if user forgets to set this then better to just timeout rather than
calibrating over a small range
2021-01-27 09:49:35 +11:00
Andrew Tridgell
bdb364d461
AP_InertialSensor: save the accelerometer ID parameters
...
this is needed for factory accel cal
2021-01-27 09:49:35 +11:00
Andrew Tridgell
2843cfa42d
AP_InertialSensor: use mavlink statustext for cal info
2021-01-25 16:24:50 +11:00
Andrew Tridgell
b542f947f7
AP_InertialSensor: don't mark accels as calibrating during trim
...
we need the accels with offsets applied when doing accel trim
2021-01-25 16:24:50 +11:00
Andrew Tridgell
e908a996af
AP_InertialSensor: support SIM_ACC_TRIM
...
and cleanup vector maths
2021-01-25 16:24:50 +11:00
Andrew Tridgell
6c8a57c2d7
AP_InertialSensor: review fixes
2021-01-21 13:09:21 +11:00
Andrew Tridgell
3ff71c7814
AP_InertialSensor: changes from review feedback
2021-01-21 13:09:21 +11:00
Andrew Tridgell
b12a663f7a
AP_InertialSensor: apply accel scaling
2021-01-21 13:09:21 +11:00
Andrew Tridgell
73ddde3629
AP_InertialSensor: changes for new SITL IMU params
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
dc58b0b950
AP_InertialSensor: changes from review feedback
...
thanks Sid!
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
7cb7ad3636
AP_InertialSensor: fixed build error
2021-01-21 13:09:21 +11:00
Andrew Tridgell
2e9f61fe49
AP_InertialSensor: fixed IMU index display in msgs
...
start at 1 for users
2021-01-21 13:09:21 +11:00
Andrew Tridgell
d5b511f4a0
AP_InertialSensor: fixed start timer for temperature in SITL
...
when we are doing an autotest we want the temperature to start
climbing when we first set SIM_IMUT_FIXED=0
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
Andrew Tridgell
e2e97c67ce
AP_InertialSensor: catch user attempt to change TMAX during cal
2021-01-21 13:09:21 +11:00
Andrew Tridgell
3fb720354d
AP_InertialSensor: added notify events for temperature calibration
2021-01-21 13:09:21 +11:00
Andrew Tridgell
cc3579ea5d
AP_InertialSensor: change TCAL sampling to be even in temperature
2021-01-21 13:09:21 +11:00
Andrew Tridgell
fc0f8b990a
AP_InertialSensor: added online learning of temp cal
...
use INS_TCAL1_ENABLE=2 to start learning
2021-01-21 13:09:21 +11:00
Andrew Tridgell
6f6f89e5aa
AP_InertialSensor: enable temperature sensor on LSM9DS0
...
this allows for temperature calibration of the LSM303D in CubeBlack
and Pixhawk1
2021-01-21 13:09:21 +11:00
Andrew Tridgell
4bdf506d10
AP_InertialSensor: apply 1e-5 scale factor
...
this keeps the params in a reasonable range for parameter editors
2021-01-21 13:09:21 +11:00
Andrew Tridgell
0f6f6bac6b
AP_InertialSensor: expose TCal class for use in SITL
2021-01-21 13:09:21 +11:00
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
murata
219dc2e7da
AP_InertialSensor: Set the gravitational acceleration value to the defined value
2021-01-05 09:11:14 +09:00
Andy Piper
3db6203fb6
AP_InertialSensor: reduce FIFO buffer size to avoid DMA contention
2020-12-23 18:03:12 +11:00
Peter Barker
72acc8bfc8
AP_InertialSensor: use primary gyro (not accel) for get_delta_angle_dt
2020-11-29 13:21:53 +11:00
Peter Barker
2437cf8a24
AP_Logger: use instance number for IMU logging
2020-11-11 19:31:53 +11:00
Andrew Tridgell
f6c45c3bcd
AP_InertialSensor: cope with INS_MAX_INSTANCES < 3
2020-11-10 16:15:45 +11:00
Andrew Tridgell
e8f21d3458
AP_InertialSensor: fixed rpm indexing for vtol motors
...
quadplane vtol motors start at 1
2020-10-28 14:20:44 +11:00
Michael du Breuil
c86dcf91d6
AP_InertialSensor: Run vibration monitoring on all instances
2020-10-24 09:54:04 +11:00
Peter Barker
02c9aa2ae2
AP_InertialSensor: remove unused define
2020-10-20 11:24:34 +11:00
mhefny
02daa4c3ec
AP_InertialSensor: update L3G4200D driver
2020-10-06 09:27:26 -07:00
Andrew Tridgell
cfc59497f6
AP_InertialSensor: trigger internal error on persistent IMU reset
...
this will give users a warning when they are getting the Invensense
IMU FIFO reset issue
2020-09-02 06:42:44 +10:00
Andrew Tridgell
d5c0522651
AP_InertialSensor: instantiate SIM_IMU_COUNT sensors in SITL
2020-08-28 10:17:00 +10:00
bugobliterator
4cdb4b74f3
AP_InertialSensor: add support for checked register in Invensensev2 Drvr
2020-08-06 12:41:35 +10:00
Andy Piper
e53a43461b
AP_InertialSensor: remove ICM gyro pre-filter
2020-08-04 09:24:16 +10:00
bugobliterator
43c16cd417
AP_InertialSensor: ensure that we use environment Python interpreter
2020-08-03 14:02:09 +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
duccan
cdcdd5ce27
AP_HAL_ChibiOS: Added support for Bitcraze Crazyflie 2.1
...
Rework after review:
- Kept old IMU and barometer definition of crazyflie 2.0 in hwdef
- Added comment regarding soft-reset command
- Added defaults.parm for crazyflie
2020-06-07 07:49:37 +10:00
duccan
0d96c7f7a5
AP_HAL_ChibiOS: Added support for Bitcraze Crazyflie 2.1
2020-06-07 07:49:37 +10:00
Andrew Tridgell
cab3630009
AP_InertialSensor: switched to supplying timestamps for SITL
...
this allows the time step to change on each loop as we no longer use
the average sensor rate when calculating deltas
2020-06-03 18:11:06 +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
Andrew Tridgell
5c6749ee54
AP_InertialSensor: use wait_pin() to wait for DRDY pin if available
2020-04-23 07:28:13 +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
Andrew Tridgell
d8b33bcac9
AP_InertialSensor: suppress expected errors from invensense IMUs
2020-03-11 16:30:06 +11:00
Andy Piper
507bd9eea9
AP_InertialSensor: add in user-specified background noise when there is no rpm noise
2020-02-25 08:35:09 +11:00
Andy Piper
41b41c05f3
AP_InertialSensor: scale SITL motor noise by SIM_VIB_MOT_MULT
2020-02-22 11:15:37 +11: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
58708c483f
AP_InertialSensor: make all semaphores recursive
...
the cost is very similar and this prevents an easy coding error which
can occur on less used code paths
2020-01-19 20:19:30 +11:00
Andrew Tridgell
b89c241329
AP_InertialSensor: use take_blocking instead of HAL_SEMAPHORE_BLOCK_FOREVER
...
this makes for cleaner and smaller code as the failure case is not
needed
2020-01-19 20:19:30 +11:00
Andy Piper
52f59fb573
AP_InertialSensor: more accurately compute INS noise taking throttle into account and adding frequency noise noisily
...
make SITL fast-sampling correct
2019-12-31 10:34:02 +11: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
Andy Piper
143a071788
AP_InertialSensor: add rpm-based motor noise to gyros and accels
...
Remove sample time error in backend.
2019-12-17 10:07:06 +11:00
Andy Piper
7e35622015
AP_InertialSensor: correct loop rate on BMI055, clean up setting of loop rate on BMI055 and BMI088
2019-12-09 13:29:34 +11:00
Andy Piper
763089addb
AP_InertialSensor: slight improvement to LOG_BAT_OPT docs.
2019-12-01 12:19:46 +11:00
Andrew Tridgell
9dc618ddd4
AP_InertialSensor: added gyro_harmonic_notch_enabled()
2019-11-19 07:08:01 +08:00
Andrew Tridgell
77d21f9f5d
AP_InertialSensor: return HarmonicNotchDynamicMode
2019-11-19 07:08:01 +08:00
Andrew Tridgell
eb582ac0cc
AP_InertialSensor: avoid SITL build on non-SITL
2019-11-17 20:10:54 +11:00
Mark Whitehorn
00948c33d5
AP_InertialSensor: rename sensor_config_error to config_error
2019-11-08 10:14:34 +11:00
Andrew Tridgell
236ce28339
AP_InertialSensor: updated for heater changes
2019-11-02 16:31:04 +11:00
Andy Piper
6381183aa3
AP_InertialSensor: expose harmonic notch tracking mode
2019-10-31 11:18:40 +08:00
Andrew Tridgell
d6e17b0c2b
AP_InertialSensor: publish an IMU temperature
...
makes testing of mavlink extension easier
2019-10-10 13:23:03 +11:00
Andrew Tridgell
850892c3d9
HAL_ChibiOS: fixes from LGTM errors
2019-09-22 18:35:15 +10:00
Andy Piper
8e385d7453
AP_InertialSensor: correct formatting
2019-09-11 18:41:05 +10:00
Andy Piper
5b7f9f6bea
AP_InertialSensor: while sensors are converging update the filters sample rates. if gyro filtering produces invalid output, keep the previous value
2019-09-11 18:41:05 +10: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
Randy Mackay
6a154c4e4c
AP_InertialSensor: resolve gcs::send_text compiler warning
2019-07-30 09:02:39 +09:00
Andrew Tridgell
8e5c0fa32b
AP_InertialSensor: disable kill IMUs with HAL_MINIMIZE_FEATURES
2019-07-07 19:03:01 +10:00
Andrew Tridgell
09d3392aee
AP_InertialSensor: zero accumulators on time step
...
this zeros the delta angle and delta velocity accumulators when a
sensor is unavailable for a period of 0.1s. This prevents garbage
values being passed into the EKF when a sensor dies and then becomes
available again some time later
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
31ea3466af
AP_InertialSensor: Post-filter logging takes precedence over sensor-rate logging.
2019-06-06 17:09:17 +10:00
Andy Piper
36878e9b3c
AP_InertialSensor: Allow all filter frequencies to be 16bit.
2019-06-06 17:09:17 +10:00
Andy Piper
fff81a2163
AP_InertialSensor: Make sure the LPF output is used by the notch input.
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
Andrew Tridgell
4e769730c9
AP_InertialSensor: removed unusued AP_Common/Semaphore.h
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
Andrew Tridgell
893b49d145
AP_InertialSensor: disable register checking in invensensev2 driver
...
register checking doesn't work for the banked registers used in the
invensensev2 register layout. It ends up setting the wrong register
value in some cases, which can either cause the sensor to stop working
or in the worst case give bad data
2019-05-10 14:55:39 +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
Andrew Tridgell
c7ed4bfbcc
AP_InertialSensor: allow testing of IMU failure
2019-04-22 14:56:42 +10:00
Randy Mackay
9fa742e1be
AP_InertialSensor: fix compiler warning in BMI088 driver
2019-04-11 10:32:51 +09:00
Peter Barker
e0fc73776c
AP_InertialSensor: return floats from raw-sample-rate getters
...
The underlying type changed at some stage but the getters did not
2019-04-09 10:02:16 +10:00
Andrew Tridgell
fa63243eb0
AP_InertialSensor: added BMI088 accel config retry
2019-04-08 19:58:12 +10:00
Peter Barker
ef860db558
AP_InertialSensor: add floating point constant designators
2019-04-05 23:04:17 -07:00
Michael du Breuil
c7a9e8bf93
AP_InertialSensor: Fix implicit include of AP_Logger
2019-04-05 20:12:53 +11: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
Tom Pittenger
3eeaa2c8df
AP_InertialSensor: rename dataflash to logger
2019-03-28 16:40:57 +11:00
na
494a3f86ad
AP_IntertialSensor: support ICM20601 IMU
2019-03-28 09:15:27 +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
Andrew Tridgell
880a55c6a2
AP_InertialSensor: fixes for BMI088 on SPI
...
The sensor has an unusual SPI interface, with a pad byte on read, and
retries needed on write
2019-03-14 16:10:40 +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
Andrew Tridgell
dff3ea416c
AP_InertialSensor: allow for LSM9DS0 to be used on I2C
2019-03-10 09:03:06 +11:00
Siddharth Purohit
086b4c1cfd
AP_InertialSensor: use default value for temperature scale and offset
2019-03-06 20:47:10 +11:00
Siddharth Purohit
b76ec8cc11
AP_InertialSensor: fix slave register structure for Invensensev2
2019-03-06 20:47:10 +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
103af72859
AP_InertialSensor: remove more px4 remnants
2019-02-27 20:32:37 +11:00
Andrew Tridgell
2b285089e9
AP_InertialSensor: widen allowable temp gap on invensense IMUs
...
some sensors have more temperature noise
2019-02-26 16:18:26 +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
6fc76a32af
GLOBAL: use AP::logger() and strip redundant Log_ from methods
2019-01-18 18:08:20 +11:00
Peter Barker
b47733142f
GLOBAL: rename DataFlash_Class to AP_Logger
2019-01-18 18:08:20 +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
Andrew Tridgell
a84af85689
AP_InertialSensor: support fast sampling in SITL
...
this allows testing of fast sample logs for FFT
2019-01-08 21:04:05 +11:00
Andrew Tridgell
512c50a6c4
AP_InertialSensor: use SIM_VIB_FREQ for SITL vibrations
...
this allows for testing of FFT on logs
2019-01-08 06:49:02 +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
Peter Barker
011c93f38e
AP_InertialSensor: add override keyword
2018-11-08 11:30:12 +11:00
Andrew Tridgell
755dc8dc5d
AP_InertialSensor: use WITH_SEMAPHORE()
...
and removed usage of hal.util->new_semaphore()
2018-10-17 12:54:22 +11:00
Michael du Breuil
f51d757844
AP_InertialSensor: Remove unused (and conflicting in some builds) include
2018-10-02 07:09:41 +10:00
Peter Barker
04c36efdbf
AP_InertialSensor: eliminate SITL float-equals issues
2018-08-28 09:54:47 +10:00
Michael du Breuil
1efad07a84
AP_InertialSensor: Remove unused ADC include
2018-07-17 09:29:50 +10:00
Andrew Tridgell
5f8b57ba19
AP_InertialSensor: added SITL device IDs
2018-07-13 10:19:01 +10:00
Lucas De Marchi
49d08ba72a
Global: remove minlure
...
Minlure is a port of ArduPilot to Minnow Board connected to daughter
board. Very few of those were produced and nobody is flying with it.
It served its purpose and all the the improvements to ArduPilot remain
regardless of it not being supported anymore. Now it's just adding
maintenance work with no clear benefit, so pull the plug.
2018-06-26 07:32:08 -07:00
Patrick José Pereira
0c06bf89e5
AP_InertialSensor: Use SITL singleton
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2018-06-26 00:02:01 +01: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