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
Kevin Lopez Alvarez
ca3627c140
AP_InertialSensor: add ppro support
2017-07-24 13:47:06 +10:00
Randy Mackay
51fa8fb0bd
AP_InertialSensor: resolve member init order compiler warning
2017-07-07 17:27:23 +09:00
Randy Mackay
edc9d4db5b
AP_InertialSensor: increase accel filter to 20hz
2017-07-03 09:38:15 +09:00
Peter Barker
6ae86a0b8c
AP_InertialSensor: use DataFlash should_log to determine raw logging
2017-06-29 15:26:27 +01:00
Leonard Hall
447b20efa5
AP_InertialSensor: reduce accel filter to 10hz
2017-06-01 14:53:48 +09:00
Andrew Tridgell
db25b6e966
AP_InertialSensor: estimate and log sensor rates for all IMUs
...
this adds IMU.GHz and IMU.AHz log fields so we can see the actual
observed sensor rates of each IMU
2017-05-01 15:06:46 +10:00
Andrew Tridgell
e62fdad12c
AP_InertialSensor: added get_last_update_usec()
...
this will be used by the inter-EKF scheduling changes
2017-05-01 14:24:55 +10:00
Lucas De Marchi
2e4e4365d0
AP_InertialSensor: enable fast sampling for aerofc
2017-03-24 12:06:19 +11:00
Lucas De Marchi
87846fe049
AP_InertialSensor: use MPU6500 on aerofc
2017-03-24 12:06:19 +11:00
Andrew Tridgell
b86513f503
AP_InertialSensor: support AUAV21 board
2017-03-01 17:24:10 +11:00
Andrew Tridgell
01da36295d
AP_InertialSensor: support the L3GD20H gyro
...
this is used by the MRo Pixhawk1
2017-01-31 07:39:36 +11:00
murata
2643e7e906
AP_InertialSensor: Unify from print or println to printf.
2017-01-27 18:20:22 +11:00
murata
d56bad781f
AP_InertialSensor: change if statements to switch statement
...
No functional change
2016-12-24 12:23:59 +09:00
murata
398b7b83dd
AP_InertialSensor: minor formatting fixes
...
No functional change
2016-12-24 12:23:58 +09:00
Andrew Tridgell
65b9b86099
AP_InertialSensor: unify MPU6000 and MPU9250 drivers
...
make a single AP_InertialSensor_Invensense driver. This avoids a lot
of duplication and will save time as new varients are added
2016-12-16 12:31:34 +11:00
Andrew Tridgell
0f984290c3
AP_InertialSensor: enable fast sampling by default on some boards
2016-11-25 17:59:54 +11:00
Andrew Tridgell
18d4286166
AP_InertialSensor: fixed pixfalcon 9250 detection
2016-11-18 14:24:39 +11:00
Andrew Tridgell
f3f1f6b0b6
AP_InertialSensor: fixed gyro orientation on l3gd20H on pixhawk
2016-11-16 20:33:56 +11:00
Francisco Ferreira
bfbb275577
AP_InertialSensor: on accel cal failure don't save values to zero
...
When the accel calibration fails leave the previous values saved but set them to defaults (scale default is ones, not zeros) and notify the GCS
This fixes an arithmetic exception when doing a second accel cal after the first one failed
2016-11-15 11:42:54 -08:00
Andrew Tridgell
624178f3be
AP_InertialSensor: added INS_FAST_SAMPLE parameter
...
this allows enable/disable of fast sampling per IMU, making
experimentation easier.
It also fixes the fast sampling to always average over 8 samples, and
fixes the 9250 to use the correct accumulator when not doing fast
sampling
2016-11-15 21:16:40 +11:00
Andrew Tridgell
4ebf3309f7
AP_InertialSensor: auto-handle invensense sensor changes
...
some boards swap out MPU6000 for MPU9250 or ICM20608
2016-11-11 08:08:55 +11:00
Andrew Tridgell
70c27a85de
AP_InertialSensor: on PH2 run the first MPU9250 at 8kHz
2016-11-10 13:04:15 +11:00
Andrew Tridgell
cb70bae167
AP_InertialSensor: use in-tree drivers for PH2SLIM
2016-11-10 11:44:52 +11:00
Andrew Tridgell
8a3f6a8902
AP_InertialSensor: use FIFO and implement fast sampling for MPU9250
2016-11-10 11:44:51 +11:00
Andrew Tridgell
e25a391a8f
AP_InertialSensor: fixed typo
2016-11-09 17:08:15 +11:00
Andrew Tridgell
7137d5c6f2
AP_InertialSensor: switch pixracer to always use in-tree drivers
2016-11-09 17:08:14 +11:00
Andrew Tridgell
84c3e29891
AP_InertialSensor: use AP_HAL rotations for MPU6000
2016-11-09 17:08:14 +11:00
Andrew Tridgell
03b7bc9e65
AP_InertialSensor: use internal drivers for PHMINI
...
this gets us fast sampling
2016-11-09 17:08:12 +11:00
Andrew Tridgell
3d7d773883
AP_InertialSensor: added support for ICM20608 on Pixracer
2016-11-09 17:08:08 +11:00
Andrew Tridgell
2c1e9024f1
AP_InertialSensor: detect missing accels or gyros
2016-11-09 17:08:07 +11:00
Andrew Tridgell
106a91c64c
AP_InertialSensor: use init_gyro() on startup
...
this saves the calibration parameters which should be done on
calibration
2016-11-09 17:08:07 +11:00
Andrew Tridgell
408593465f
AP_InertialSensor: fixed rotation for mpu9250 on pixracer
2016-11-09 17:08:07 +11:00
Andrew Tridgell
790dd4769b
AP_InertialSensor: simplify rotations for MPU9250
2016-11-09 17:08:07 +11:00
Lucas De Marchi
469efb00f6
AP_InertialSensor: save id for gyro and accel instances
...
This allows each sensor to be uniquely identified in the system by using
either the index inside the backend or for those that use the Device
interface, to use the bus type, location, and device id.
We leave 16-bit for each sensor to be able to change its own
identification in future, which allows them to be changed in an
incompatible manner forcing a re-calibration.
2016-11-09 17:08:05 +11:00
Lucas De Marchi
bbb9bfa95e
AP_InertialSensor: save only gyro calibration
...
When we are initializing the gyro and then saving the calibration we are
also saving the calibration values for the accelerometers. Right now
this is non-problematic, but we want to check that the ID of the
accelerometer corresponds to the ID of the sensor detected. If we also
save accel calibrations we would actually override the ID of the
accelerometer.
Rename the method to _save_gyro_calibration() and save only on gyro
values.
2016-11-09 17:08:05 +11:00
Lucas De Marchi
ace61087a1
AP_InertialSensor: remove product_id
...
We only leave the parameter there for backward-compatibility. However
product id on the inertial sensor is not much useful since it's only
kept for the first instance.
A better implementation per-gyro and per-accel is needed in order to
avoid problems with sensors taking the offsets configured for another
sensor.
2016-11-09 17:08:05 +11:00
Andrew Tridgell
4ef92b5e39
AP_InertialSensor: enable all 3 IMUs on PH2
2016-11-09 17:08:04 +11:00
Andrew Tridgell
a5c5e033d2
AP_InertialSensor: fixed threading and locking in remaining backends
...
use a backend semaphore for shared data and use thread per bus where
available
2016-11-09 17:08:01 +11:00
Andrew Tridgell
b92c48548a
AP_InertialSensor: added per-instance rotation for LSM9DS0
2016-11-09 17:08:00 +11:00
Andrew Tridgell
2df6ed08c2
AP_InertialSensor: added optional per-instance orientation
...
this is needed for multi-sensor boards to get orientation right for
each sensor
2016-11-09 17:08:00 +11:00
Andrew Tridgell
7832f1a1b6
AP_InertialSensor: allow for in-tree drivers for PX4
2016-11-09 17:07:58 +11:00
murata
c808ee2f49
Global: To nullptr from NULL.
...
RC_Channel: To nullptr from NULL.
AC_Fence: To nullptr from NULL.
AC_Avoidance: To nullptr from NULL.
AC_PrecLand: To nullptr from NULL.
DataFlash: To nullptr from NULL.
SITL: To nullptr from NULL.
GCS_MAVLink: To nullptr from NULL.
DataFlash: To nullptr from NULL.
AP_Compass: To nullptr from NULL.
Global: To nullptr from NULL.
Global: To nullptr from NULL.
2016-11-02 16:04:47 -02:00
priseborough
7460d97c9a
AP_InertialSensor: Update parameter documentation
...
Add brief description of body frame conventions.
2016-10-27 14:54:45 +11:00
priseborough
54a431a51d
AP_InertialSensor: Update position offset parameter documentation
...
Notify users of the potential for velocity noise when using larger offset values..
Specific advice in terms of values has not been provided because it is highly dependent on Gyro noise levels.
2016-10-27 14:54:43 +11:00
priseborough
6db93d8a21
AP_InertialSensor: Add parameters defining accelerometer position offset
2016-10-27 14:54:41 +11:00
Mathieu OTHACEHE
152edf7189
Global: remove mode line from headers
...
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Gustavo Jose de Sousa
68fe536da3
AP_InertialSensor: use BMI160 for Intel Aero
2016-09-03 01:03:07 -03:00
Gustavo Jose de Sousa
cd0d65dc3f
AP_InertialSensor: don't check {gyro,accel}_available twice
...
That gives a slightly simpler code.
2016-07-22 19:58:08 -03:00
Gustavo Jose de Sousa
69405cc99a
AP_InertialSensor: fix timing debug macro
...
- Use "INS_" prefix for the name in order to limit the scope for that macro.
- Don't define it in the code and check if it is defined instead of checking
the value. With that, there's no need to touch the code for enabling debug,
only a reconfiguration is necessary (e.g., `CXXFLAGS='-DINS_TIMING_DEBUG' waf
configure ...`).
2016-07-21 19:01:28 -03:00
Gustavo Jose de Sousa
ee7c40be61
AP_InertialSensor: BMI160: add backend
...
The reason of defining BMI160_MAX_FIFO_SAMPLES as 8 can be found on the
following histogram of the number of samples in the FIFO on each read while
performing the accelerometer calibration process:
Samples Count Freq Acc. Freq
------------------------------
1 3842 0.1201 0.120111
2 13172 0.4118 0.531904
3 9065 0.2834 0.815300
4 2710 0.0847 0.900022
5 2231 0.0697 0.969769
6 816 0.0255 0.995279
7 137 0.0043 0.999562
8 13 0.0004 0.999969
13 1 0.0000 1.000000
2016-07-15 16:46:06 -03:00
Gustavo Jose de Sousa
e85ac8b2c5
AP_InertialSensor: inform maximum gyro average difference
...
While at it, define GYRO_INIT_MAX_DIFF_DPS.
2016-06-27 17:22:43 -03:00
Gustavo Jose de Sousa
e6f62080f5
AP_InertialSensor: fix best_diff on gyro initialization
...
Without this patch, if accel_diff.length() > 0.2f and j == 0, then
best_diff[k] would be zero forever since diff_norm[k] >= 0 for any j.
2016-06-27 17:20:51 -03:00
Grant Morphett
34fa2a39bd
AP_InertialSensor: Changing the default gyro filter from 10 to 4
...
This change is only for Rovers.
2016-06-16 14:37:55 +09:00
Lucas De Marchi
b067bce140
AP_InertialSensor: remove support for flymaple
2016-05-23 21:49:45 -03:00
Lucas De Marchi
7503c1b6d4
AP_InertialSensor: update doc about used ids
2016-05-23 21:49:45 -03:00
dgrat
41661f815f
AP_Math: Replace the pythagorous* functions with a variadic template
...
The new function can deal with a variable number of function parameters.
Additionally, I renamed the functions to norm(), because this is the
standard name used in several other projects.
2016-05-10 11:41:26 -03:00
Andrew Tridgell
be41d402b5
AP_InertialSensor: added set of delta angle time for replay
2016-04-26 15:50:46 +10:00
Andrew Tridgell
4401cbec72
AP_InertialSensor: cope with zero delta angle time from Replay
2016-04-26 15:37:11 +10:00
mirkix
c3a6a56ebb
AP_InertialSensor: Add second MPU9250 autodetection to BBBmini
2016-04-24 10:57:57 -03:00
ashwinvasudevan
e33812e1cb
AP_InertialSensor: added missing brackets
2016-03-23 17:46:41 +09:00
raspilot
1d1d224c18
AP_InertialSensor: Enable dual IMU for raspilot
2016-03-18 21:51:37 -03:00
AndersonRayner
c9d5c548a6
Corrects a bracket error for the LSM9DS0 IMU
...
Switches the probe of the accel and gyro so they boot correctly (was
failing the WHOAMI with a switched result)
2016-02-25 20:08:01 -03:00
Jonathan Challinger
c454631be8
AP_InertialSensor: work around gyro and accel errors on startup
2016-02-19 16:40:52 +09:00
Lucas De Marchi
02a7fa5c2b
AP_InertialSensor: MPU9250: use AP_HAL::Device abstraction
...
This makes MPU9250 be almost the same as MPU6000 driver. Work has been
done here to make than similar so it's easier to spot the differences.
2016-02-16 19:49:09 -02:00
Lucas De Marchi
d2b267d026
AP_InertialSensor: LSM9DS0: use AP_HAL::SPIDevice abstraction
2016-02-16 19:49:09 -02:00
Lucas De Marchi
58f4624f8c
AP_InertialSensor: L3G4200D: use AP_HAL::I2CDevice abstraction
2016-02-16 19:49:09 -02:00
Lucas De Marchi
af846636e4
AP_InertialSensor: MPU60x0: use AP_HAL::Device abstraction
2016-02-16 19:49:09 -02:00
Lucas De Marchi
9c6bd38e91
AP_InertialSensor: sanitize includes
...
Due to the way the headers are organized changing a single change in an
inertial sensor driver would trigger a rebuild for most of the files in
the project. Time could be saved by using ccache (since most of the
things didn't change) but we can do better, i.e. re-organize the headers
so we don't have to re-build everything.
With this patch only AP_InertialSensor/AP_InertialSensor.h is exposed to
most users. There are some corner cases to integrate with some example
code, but most of the places now depend only on this header and this
header doesn't depend on the specific backends.
Now changing a single header, e.g. AP_InertialSensor_L3G4200D.h triggers
a rebuild only of these files:
$ waf copter
'copter' finished successfully (0.000s)
Waf: Entering directory `/home/lucas/p/dronecode/ardupilot/build/minlure'
[ 80/370] Compiling libraries/AP_InertialSensor/AP_InertialSensor.cpp
[ 84/370] Compiling libraries/AP_InertialSensor/AP_InertialSensor_L3G4200D.cpp
[310/370] Linking build/minlure/ArduCopter/libArduCopter_libs.a
[370/370] Linking build/minlure/bin/arducopter
Waf: Leaving directory `/home/lucas/p/dronecode/ardupilot/build/minlure'
2016-02-01 14:18:51 -02:00
Jonathan Challinger
4c2e6af6ee
AP_InertialSensor: statically register with AP_AccelCal
2016-01-23 10:35:34 +09:00
Randy Mackay
081beacb8d
AP_InertialSensor: replace sqrt with safe_sqrt to resolve compiler warning
...
Also add suppressing comment for missing break at end of switch
2016-01-23 10:10:17 +09:00
Andrew Tridgell
ee453783eb
AP_InertialSensor: added get_delta_angle_dt() API
2016-01-19 09:50:21 +11:00
Andrew Tridgell
b2745bb545
AP_InertialSensor: we only need peak hold for negative X for now
2016-01-02 09:58:32 +11:00
Tom Pittenger
3aaf2b1d2b
AP_InertialSensor: add pos/neg peak detector
...
new functions that get a filtered min/max accel peaks on each axis with fixed 500ms timeout:
Vector3f get_accel_peak_hold_pos()
Vector3f get_accel_peak_hold_neg()
This allows slower mechanisms, such as is_flying, to detect accel spikes which would indicate ground or object impacts. Vibe is too filtered. Independent positive and negative peaks are available
2016-01-02 09:58:31 +11:00
Jonathan Challinger
0a3c2774e9
AP_InertialSensor: fixes in response to review
2015-12-29 22:55:04 -08:00
Jonathan Challinger
137ace473d
AP_InertialSensor: add accel_cal_requires_reboot
2015-12-29 10:46:35 -08:00
Jonathan Challinger
f6a41a8936
AP_InertialSensor: ensure that accel calibration object isn't allocated more than once
2015-12-29 10:46:35 -08:00
Jonathan Challinger
492223cb84
AP_InertialSensor: support AP_AccelCal
2015-12-29 10:46:34 -08:00
Andrew Tridgell
17fc58f3cd
AP_InertialSensor: re-work for more flexible main loop rates
2015-12-27 14:57:12 +09:00
Andrew Tridgell
93ef881109
AP_InertialSensor: added get_loop_delta_t() API
2015-12-27 14:57:10 +09:00