Commit Graph

821 Commits

Author SHA1 Message Date
Lucas De Marchi
b05610870c global: use static method to construct AP_Rally 2017-09-26 03:01:21 +01:00
Lucas De Marchi
69b6d95cb2 global: use static method to construct AP_Board_Config{,_CAN} 2017-09-26 03:01:21 +01:00
Lucas De Marchi
87b30b4552 global: use static method to construct AP_InertialSensor 2017-09-26 03:01:21 +01:00
Lucas De Marchi
d566567d87 AP_InertialSensor: add static create method 2017-09-26 03:01:21 +01:00
Lucas De Marchi
caa4e3ee89 AP_InertialSensor: remove raspilot 2017-09-12 15:06:19 -07:00
Lucas De Marchi
06fe5ce8ba AP_InertialSensor: implement periodic thread for AuxiliaryBus 2017-09-11 09:52:41 -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
62b826953d AP_InertialSensor: use AP_Math rand_float() 2017-05-03 20:12:04 +10:00
Andrew Tridgell
bfd8d151c8 AP_InertialSensor: lower slave rate with fast sampling
On an invensense IMU with fast sampling we need to lower the slave
sample rate for slave sensors such as the built-in AK8963 compass on a
MPU9250.

The slave rate is set as a multiple of the main rate, so it needs to be
much lower for fast sampling. If we leave it high then it greatly
impacts on IMU sample rate.

Without this change a MPU9250 with fast sampling and a compass enabled
will give a gyro rate of around 7200Hz. With this change it gets 7760Hz
2017-05-02 12:11:08 +10:00
Andrew Tridgell
519a293af9 AP_InertialSensor: fixed instance usage in set_gyro_oversampling()
thanks Francisco!
2017-05-02 08:27:11 +10:00
Andrew Tridgell
112b22516a AP_InertialSensor: fixed use of accel2_noise
thanks Francisco!
2017-05-02 08:24:50 +10:00
Andrew Tridgell
2876f1467c AP_InertialSensor: converge sensor rate quickly, then slowly
converge fast for the first 60 seconds, then more slowly to reduce
noise
2017-05-01 15:13:56 +10: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
49cc0965c0 AP_InertialSensor: separate handling of FIFO and non-FIFO sensors
FIFO sensors produce data at a well known rate, but samples come in
bunches, so we can't use the system clock to calculate deltaT.

non-FIFO sensors produce data when we sample them, but that rate is
less regular due to timing jitter.

For FIFO sensors this changes makes us use a learned sample rate,
which allows for different clock speeds on sensor and system board.

For non-FIFO sensors we use the system clock to measure deltaT

the overall effect is a fix for sensors that produce samples at other
than the claimed datasheet rate.
2017-05-01 15:06:46 +10:00
Andrew Tridgell
74eb7a7243 AP_InertialSensor: make SITL sensor rate match a Pixhawk1
use 760Hz 2nd gyro and 800 Hz 2nd accel
2017-05-01 15:06:46 +10:00
Andrew Tridgell
25cd16a275 AP_InertialSensor: fixed LSM303D registered sample rate
we are running the LSM303D at 1600Hz, and are sampling it at 1kHz. We
need to tell the AP_InertialSensor layer that samples will arrive at 1kHz
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
Andrew Tridgell
c952e58edb AP_InertialSensor: fixed invensense driver temp reading
different parts have quite different zero offsets in temperature
2017-04-03 10:06:27 +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
875274e761 AP_InertialSensor: added support for ICM-20602
treat the same as a 20608
2017-03-02 14:21:36 +11:00
Andrew Tridgell
b86513f503 AP_InertialSensor: support AUAV21 board 2017-03-01 17:24:10 +11:00
Lucas De Marchi
2d50eb312c AP_InertialSensor: add support to MPU6500
Just like and MPU9250 without mag and with different WHOAMI register.
2017-02-26 13:37:13 +11:00
murata
a3f5b4f319 AP_InertialSensor: Change from magic number 0 to definition name. 2017-02-18 14:12:36 +00:00
Lucas De Marchi
9535b45cc9 AP_InertialSensor: examples: fix double to float warnings
While at it add function prototype.
2017-02-12 01:22:35 +00: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
0733d760f6 AP_HAL_VRBRAIN: Unify from print or println to printf.
AP_InertialSensor: Unify from print or printin to printf.
2017-01-27 18:20:22 +11:00
murata
2643e7e906 AP_InertialSensor: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Julien Beraud
3d9dacb227 AP_InertialSensor: push gyro data for opticalflow
Do it only if there is an optical flow in the current HAL
2017-01-23 21:23:16 +11:00
Lucas De Marchi
5472bc4de1 Global: change Device::PeriodicCb signature
Remove bool return as it's never being used and not supported on PX4.
2017-01-14 10:03:54 +11:00
mirkix
62fabca19d AP_InertialSensor: Enable I2C bypass for MPU9250 conntected via I2C to access internal AK8963 2017-01-11 21:44:24 -08:00
Randy Mackay
946d30476a AP_InertialSensor: fix whoami for MPU6k 2017-01-05 10:29:51 +09: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
Lucas De Marchi
9569ed94a9 AP_InertialSensor: Invensense: use capital letters for define 2016-12-20 09:23:30 +09:00
Andrew Tridgell
a30745903a AP_InertialSensor: use ACC2_BIAS 2016-12-19 08:07:15 +11:00
priseborough
60ebe97e10 AP_InertialSensor: remove unused EKF1 include 2016-12-19 08:07:11 +11: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
Pierre Kancir
de05e6ba29 InertialSensor : MPU9250 utilize an explicit type cast to avoid the loss of a fractional part 2016-12-05 12:39:30 -08:00
Pierre Kancir
13c16e187f InertialSensor: MPU6000 utilize an explicit type cast to avoid the loss of a fractional part 2016-12-05 10:59:45 -08:00
Randy Mackay
dfd58cc57b AP_InertialSensor: fix build warning for MPU9250 2016-11-30 18:00:14 +09:00
Randy Mackay
699279ed1f AP_InertialSensor: fix build warning for MPU6000 2016-11-30 18:00:13 +09:00
Andrew Tridgell
f9845c93b1 AP_InertialSensor: keep transfers nicely setup for DMA on stm32
this avoids using stack based bounce buffers which may not support DMA
on stm32
2016-11-27 11:26:10 +11:00
Andrew Tridgell
771cedca3d AP_InertialSensor: reduced number of SPI transfers
use cached copy of temperature in MPU6000 and MPU9250 to detect FIFO
error when possible
2016-11-26 19:02:22 +11:00
Andrew Tridgell
27605b0258 AP_InertialSensor: run invensese reg checking at low speed
config register read/write should be at low bus speed.

also change to check every 20 calls to reduce checking cost
2016-11-25 20:31:40 +11:00