Commit Graph

355 Commits

Author SHA1 Message Date
Michael Carpenter
b4c0e1215b AP_InertialSensor: Use return value of blocking_read to handle calibration timeouts 2014-08-07 13:04:18 +10:00
Andrew Tridgell
cc735a4200 AP_InertialSensor: some more debug info for VibTest 2014-07-31 12:48:30 +10:00
Andrew Tridgell
f7b01a6f3f AP_InertialSensor: avoid integer underflow in mavlink txspace check 2014-07-27 22:18:52 +10:00
Andrew Tridgell
662276597a AP_InertialSensor: fixed example build 2014-07-25 17:52:14 +10:00
Andrew Tridgell
79f453dfd3 AP_InertialSensor: use LSM9DSO_AM device 2014-07-19 13:23:54 +10:00
Randy Mackay
6baedbda1d AP_InertialSensor: add empty virtual destructor 2014-07-16 14:56:56 +09:00
Randy Mackay
a09f7b9198 AP_InertialSensor_MPU6k: init members to reduce compiler warnings 2014-07-16 14:40:55 +09:00
Randy Mackay
c5a03ea18e AP_InertialSensor: init members to reduce compiler warnings 2014-07-16 14:40:53 +09:00
LukeMike
85fc72c57c AP_InertialSensor: VRBRAIN added 3th inertial sensor 2014-07-15 20:42:15 +10:00
Andrew Tridgell
0f724c1d7a AP_InertialSensor: removed per-device example code
now can use a single generic test for all boards
2014-07-14 09:44:36 +10:00
Andrew Tridgell
5a170c6343 AP_InertialSensor: added INS_generic test 2014-07-14 09:44:36 +10:00
Andrew Tridgell
d1ba78002d AP_InertialSensor: added paranoid check for DRDY pin 2014-07-14 09:44:36 +10:00
Andrew Tridgell
6f9965cc22 AP_InertialSensor: fixed setup of DRDY pin on MPU9250 2014-07-14 09:44:36 +10:00
Andrew Tridgell
6a6dbe5790 AP_InertialSensor: added check for WHOAMI on MPU9250 2014-07-14 09:44:35 +10:00
Andrew Tridgell
abb53eb9a2 AP_InertialSensor: simplify using HAL board subtypes 2014-07-14 09:44:35 +10:00
Andrew Tridgell
848b563fc3 AP_InertialSensor: rotate acccel/gyro for PXF 2014-07-14 09:44:34 +10:00
Andrew Tridgell
ea188528fc AP_InertialSensor: fixed build errors for LSM9DSO 2014-07-14 09:44:34 +10:00
Víctor Mayoral Vilches
2982fc029c AP_InertialSensor_LSM9DS0: Fix _dump_registers method 2014-07-14 09:44:34 +10:00
Víctor Mayoral Vilches
feedc40f72 AP_InertialSensor_LSM9DS0: Move LSM9DS0_DEBUG flag to the header 2014-07-14 09:44:34 +10:00
Andrew Tridgell
297bb52ced AP_InertialSensor: added MPU9250 header 2014-07-14 09:44:34 +10:00
Víctor Mayoral Vilches
f213f01983 AP_InertialSensor_LSM9DS0: Remove previous CS handling.
CS is now being automatically handled by the SPI Driver.
2014-07-14 09:44:33 +10:00
Andrew Tridgell
3ed4f82cb0 AP_InertialSensor: fixed DRDY include for Linux 2014-07-14 09:44:33 +10:00
Andrew Tridgell
06b6d7aaf0 AP_InertialSensor: fixeup DRDY pin for different boards 2014-07-14 09:44:33 +10:00
Víctor Mayoral Vilches
3379ddd51f AP_InertialSensor_MPU6000: Add _register_write_check method.
This private method allows to check whether the value written and
the posterior value readed are the same.
Should be used only for debuging purposes, for release versions use
_register_write instead.
2014-07-14 09:44:33 +10:00
Víctor Mayoral Vilches
0fff8df491 AP_InertialSensor: fix LSM9DS0 test code 2014-07-14 09:32:30 +10:00
Víctor Mayoral Vilches
bb5de8a6a1 AP_InertialSensor_LSM9DS0: Fix the CS. 2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
ad3a3f9366 AP_InertialSensor_MPU6000: Fix the CS. 2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
aa60a89cda AP_InertialSensor_MPU9250: Fix SPI CS. 2014-07-14 09:29:45 +10:00
Víctor Mayoral Vilches
bae84e2942 AP_InertialSensor: Add missing library to test example. 2014-07-14 09:29:36 +10:00
Víctor Mayoral Vilches
4df3b55ed4 AP_InertialSensor_MPU9250: Add missing library for example/
In order to compile the examples test a library needed to
added.
2014-07-14 09:29:36 +10:00
Víctor Mayoral Vilches
eb95130441 AP_InertialSensor_MPU9250: remove legacy CS. 2014-07-14 09:29:18 +10:00
Víctor Mayoral Vilches
5e7e28a83e AP_InertialSensor_MPU9250.cpp: Update the DRDY pin. 2014-07-14 09:29:18 +10:00
Víctor Mayoral Vilches
d053a91cd5 AP_InertialSensor_MPU6000: Remove MPU6000_CS_PIN
Remove MPU6000_CS_PIN, a legacy way of handling
Chip Select.
2014-07-14 09:29:18 +10:00
Víctor Mayoral Vilches
d9cb29ea8b AP_InertialSensor_MPU6000: Correct DRDY pin. 2014-07-14 09:29:18 +10:00
Víctor Mayoral Vilches
df14318bbd AP_InertialSensor_L3G4200D: Clock-based wait_for_sample() impl. 2014-07-14 09:29:08 +10:00
Víctor Mayoral Vilches
7cf1187473 AP_InertialSensor_MPU9150: Clock-based wait_for_sample() impl.
Adapt the I2C driver to a system clock based wait_for_sample()
implementation.

The sample rate of the sensor has been corrected to 800 Hz (could be
further pushed up to 1KHz).

Filters for the mag have also been created but remain commented until
the code for the mag is ready.
2014-07-14 09:10:23 +10:00
Víctor Mayoral Vilches
c4babc543d AP_InertialSensor_LSM9DS0: SPI userspace sensor driver.
ST Microelectronics 9 DOF IMU userspace sensor driver. Some
work with the filters needs to be done.
2014-07-14 09:10:23 +10:00
Víctor Mayoral Vilches
1c07985518 AP_InertialSensor_MPU9150: Comment the suspend_timer_procs
It causes the driver to hang. This matter should be inspected.
2014-07-14 09:02:47 +10:00
Víctor Mayoral Vilches
d65aefbef5 AP_InertialSensor_MPU6000: Fix the test code so that compiles. 2014-07-14 09:02:47 +10:00
Víctor Mayoral Vilches
fac3d1c271 AP_InertialSensor_MPU9250: SPI userspace sensor driver.
InvenSense MPU9250 sensor driver and test code (available under
libraries/examples/).
2014-07-14 09:02:47 +10:00
Víctor Mayoral Vilches
4d79887cc5 L3G4200D: fix in the test example provided.
The test coded had a call to "wait_for_sample" that expected one
argument and 0 where provided.
2014-07-14 08:52:51 +10:00
Andrew Tridgell
ab7e96b9de AP_InertialSensor: updates for ERLE board type 2014-07-14 08:51:44 +10:00
Victor Mayoral Vilches
44320708a7 AP_InertialSensor_MPU9150: I2C userspace driver sensor added.
The MPU9150 is a 9 axis sensor that includes 3 accelerometers,
3 gyroscopes and 3 magnetometers. All accessible through I2C.
The AP_InertialSensor_MPU9150 class allows APM to use this sensor.
2014-07-14 08:16:29 +10:00
Randy Mackay
7e04b5d1f1 INS: calibrated method checks all accelerometers 2014-07-13 22:05:21 +09:00
Andrew Tridgell
d325f630e5 VibTest: added sample timing to console output 2014-07-09 12:12:23 +10:00
Andrew Tridgell
863e7a5f93 VibTest: fixed array bounds error 2014-07-09 08:11:52 +10:00
Andrew Tridgell
2c8240dbb4 VibTest: fixed gyro timestamps in logs
it was using the accel timestamps
2014-07-09 08:10:09 +10:00
Andrew Tridgell
d50d5b8f24 VibTest: fixed sample count output on console 2014-07-08 10:59:30 +10:00
Andrew Tridgell
03770c4d34 VibTest: added gyro data and support 3 sensors
will be used for vibration testing on FMUv3
2014-07-08 10:07:58 +10:00
Andrew Tridgell
ca12592448 AP_InertialSensor: allow for 3 accels and 3 gyros on Pixhawk
this supports FMUv3
2014-06-30 07:58:27 +10:00
Andrew Tridgell
ece01da10e AP_InertialSensor: fixed _dump_registers() for MPU6000
need to take the semaphore to prevent bus errors
2014-06-29 12:11:21 +10:00
LukeMike
8f552d5758 VRBRAIN: Changed the management of VirtualRobotix's boards. 2014-06-19 11:27:38 +02:00
Andrew Tridgell
4c43cd9775 AP_InertialSensor: fixes for HAL_GPIO_* 2014-06-02 10:42:35 +10:00
Andrew Tridgell
65fd25fb5a AP_InertialSensor: fixed example build 2014-05-18 08:08:19 +10:00
Andrew Tridgell
8533aecf18 AP_InertialSensor: fixed example build 2014-05-16 21:24:25 +10:00
Andrew Tridgell
086142580a AP_InertialSensor: added VibTest sketch
logs all accel data at high rate to SD card
2014-05-15 21:14:21 +10:00
Emile Castelnuovo
06744ea7d2 AP_InertialSensor: new files and definitions for VRBRAIN board 2014-04-08 16:19:19 +10:00
Andrew Tridgell
2763393908 AP_InertialSensor: fixed some compiler warnings 2014-03-24 12:52:16 +11:00
Andrew Tridgell
731f980327 AP_InertialSensor: fixed example build 2014-03-19 12:13:47 +09:00
Jonathan Challinger
e81d2e9584 AP_InertialSensor: Correct out-of-bounds array access that was causing SITL to crash 2014-02-28 17:25:54 +11:00
Andrew Tridgell
2c85a7ba56 AP_InertialSensor: expose get_primary_accel() for use in AHRS 2014-02-27 16:27:46 +11:00
Andrew Tridgell
840f1b9a1e AP_InertialSensor: make HIL timing more accurate
needed for 400Hz replay
2014-02-27 08:10:42 +11:00
Andrew Tridgell
6732d6c79b AP_InertialSensor: enable get_accel_count() and get_gyro_count() APIs for HIL 2014-02-23 19:10:07 +11:00
Andrew Tridgell
0e18079c47 AP_InertialSensor: allow HIL sensors to support multiple instances
this allows log replay to test both sets of sensors on a Pixhawk log
2014-02-23 08:16:33 +11:00
Randy Mackay
33fe778cdd InertialSensor_PX4: resolve compiler warning 2014-02-21 13:53:34 +09:00
Andrew Tridgell
fe0cb23733 AP_InertialSensor: fixed HIL for 400Hz INS 2014-02-19 10:29:00 +11:00
Mike McCauley
2c94a40310 AP_InertialSensor: AP_InertialSensor_Flymaple Remove unnecessary
comment
2014-02-17 05:56:37 +11:00
Mike McCauley
dd6abb49a9 AP_InertialSensor: AP_InertialSensor_Flymaple::healthy() was required after
all.
2014-02-17 05:56:37 +11:00
Mike McCauley
0a43cf8c5c AP_InertialSensor: AP_InertialSensor_Flymaple removed redundant definition of
healthy().
2014-02-17 05:56:37 +11:00
Mike McCauley
f7279aa13f AP_InertialSensor: AP_InertialSensor_Flymaple implement get_gyro_health
and get_accel_health.
2014-02-17 05:56:37 +11:00
Andrew Tridgell
f9d0747750 AP_InertialSensor: fixed example build 2014-02-15 06:39:35 +11:00
Andrew Tridgell
3617c65af7 AP_InertialSensor: make HIL treat time like PX4 does 2014-02-15 05:48:20 +11:00
Andrew Tridgell
b1c5f23bbd AP_InertialSensor: make get_delta_time() const
allows use from AP_NavEKF
2014-02-15 05:29:47 +11:00
Randy Mackay
b7565affcd INS: add support for 400hz for PX4 2014-02-15 05:27:33 +11:00
Andrew Tridgell
a95a3142e0 AP_InertialSensor: use fixed size arrays
apparently helps SITL build on MacOS
2014-02-08 19:32:26 +11:00
Andrew Tridgell
045efdb084 AP_InertialSensor: fixed example builds 2014-01-30 13:33:38 +11:00
Andrew Tridgell
58d3729d16 AP_InertialSensor: fixed default health functions
this fixes INS on APM1. Thanks to Mike McCauley for noticing this!
2014-01-22 22:08:28 +11:00
Don Gagne
68b3b31499 Param doc typo 2014-01-18 10:18:58 +09:00
Randy Mackay
965e5b2dfd INS: check for good calibration for 10seconds
Shortened gyro calibration commit also halved the total time we would
look for a good gyro calibration.  This restores the total time to 10
seconds.
2014-01-17 12:48:11 +09:00
Randy Mackay
1f76ada9dd INS: shortened gyro calibration
Removed delays before calibration, reduced number of samples taken,
widened convergence criteria
2014-01-16 13:40:49 +09:00
Randy Mackay
a400ddeb88 INS: replace APM with vehicle in accel calibrate 2013-12-28 10:41:49 +09:00
Andrew Tridgell
8dd34f8bc4 AP_InertialSensor: fixed example build 2013-12-17 11:51:37 +11:00
Andrew Tridgell
6d39cf5e49 AP_InertialSensor: another attempt at fixing the spurious bad gyro health warnings
cope with _get_sample() not being called for a while
2013-12-14 15:47:49 +11:00
Andrew Tridgell
99e2dc87c9 AP_InertialSensor: prevent INS healthy errors while initialising
during gyro cal we shouldn't mark the gyro unhealthy
2013-12-13 20:47:24 +11:00
Andrew Tridgell
23a112c5d5 AP_InertialSensor: reduce the number of format string warnings 2013-12-11 17:29:27 +11:00
Andrew Tridgell
433ad19335 AP_InertialSensor: fixed loop limits
stops pointless operations
2013-12-11 14:57:13 +11:00
Andrew Tridgell
e54fc6b8e3 AP_InertialSensor: make sure we wait for a sample before update() 2013-12-11 13:50:50 +11:00
Andrew Tridgell
cba0cb963a AP_InertialSensor: auto-failover to working gyro and accel 2013-12-09 20:02:04 +11:00
Andrew Tridgell
a0688a69d4 AP_InertialSensor: generalise the accel/gyro calibration for N sensors 2013-12-09 17:34:06 +11:00
Andrew Tridgell
d9b6f7f0f7 AP_InertialSensor: implement up to two sensors on PX4 2013-12-09 17:34:05 +11:00
Andrew Tridgell
2753449e75 AP_InertialSensor: added support for multiple accel/gyro devices
this makes it possible to ask for the gyro and accel vectors from
secondary INS devices.
2013-12-09 17:34:05 +11:00
Randy Mackay
fd9b115d01 INS: move Product ID to @User Advanced 2013-11-26 22:18:28 +09:00
Andrew Tridgell
71bb462ad0 AP_InertialSensor: use fabsf() 2013-11-15 10:43:10 +11:00
Andrew Tridgell
aef9289476 AP_InertialSensor: added INS_PRODUCT_ID values 2013-11-15 10:43:10 +11:00
Andrew Tridgell
f10a4b04ae AP_InertialSensor: make PX4 healthy call _get_sample()
this prevents a false positive during times like arming where we are
not reading the sensors
2013-11-10 17:03:16 +11:00
Andrew Tridgell
80def01fbe AP_InertialSensor: fixed semaphore error on startup for MPU6000 2013-11-09 11:26:50 +11:00
Andrew Tridgell
f5299e2e11 AP_InertialSensor: added healthy check for PX4 and HIL
used to detect bad accels
2013-11-07 13:53:59 +11:00
Andrew Tridgell
9ecd889e9d AP_InertialSensor: detect bad MPU6000 SPI transactions and lower bus speed
this uses bad data or bad INT_STATUS values from the MPU6000 to detect
the sensor running too fast and lower bus speed
2013-11-07 12:48:17 +11:00
Andrew Tridgell
b98bcbf715 AP_InertialSensor: automatically lower bus speed on mpu6k bad reads 2013-11-07 12:48:16 +11:00
Andrew Tridgell
bdc40cc7df AP_InertialSensor: try to lower SPI bus speed on errors 2013-11-07 12:48:16 +11:00