Siddharth Bharat Purohit
8cdc9748b3
AP_Compass: publish raw and unfiltered field for AK8963 compass
2015-09-03 16:59:13 +10:00
Siddharth Bharat Purohit
f085e274c7
AP_Compass: add explaination for sample acceptance based on angular distance
2015-09-03 16:59:13 +10:00
Jonathan Challinger
f108383c11
AP_Compass: initialize CompassCalibrator _sample_buffer to NULL
2015-09-03 16:59:13 +10:00
Jonathan Challinger
358736a592
AP_Compass: correct calibrator sample acceptance math
2015-09-03 16:59:13 +10:00
Jonathan Challinger
bff9b9065e
AP_Compass: CompassCalibrator comment update
2015-09-03 16:59:13 +10:00
Siddharth Bharat Purohit
137bd25220
AP_Compass: add info about compass calibrator procedure
2015-09-03 16:59:12 +10:00
Siddharth Bharat Purohit
f5fbc2fac1
AP_Compass: use AP_Math inverse library
2015-09-03 16:59:12 +10:00
Jonathan Challinger
0edf1df28e
AP_Compass: loosen calibration acceptance tolerance
2015-09-03 16:59:12 +10:00
Jonathan Challinger
987f55387e
AP_Compass: style cleanup
2015-09-03 16:59:12 +10:00
Jonathan Challinger
5ef713f3db
AP_Compass: set AP_Notify::compass_cal_failed
2015-09-03 16:59:12 +10:00
Jonathan Challinger
5a12991d29
CompassCalibrator: remove dependence on AP_Notify
2015-09-03 16:59:12 +10:00
Jonathan Challinger
de600ca3da
AP_Compass: configured() only checks compasses with _USE set
2015-09-03 16:59:12 +10:00
Jonathan Challinger
72c8d0f530
AP_Compass: add samples to calibrator when published
2015-09-03 16:59:11 +10:00
Jonathan Challinger
cc36401b7c
AP_Compass: add calibration interface
2015-09-03 16:59:11 +10:00
Jonathan Challinger
05d3616e0d
AP_Compass: fix sitl build
2015-09-03 16:59:11 +10:00
Jonathan Challinger
7cb9fa8898
AP_Compass: Correct parameter checks in compass cal
2015-09-03 16:59:11 +10:00
Jonathan Challinger
6d45660568
AP_Compass: refactor run_fit_chunk logic
2015-09-03 16:59:11 +10:00
Jonathan Challinger
f2acf2cb88
AP_Compass: more parameter checks in compass calibrator
2015-09-03 16:59:11 +10:00
Jonathan Challinger
929ddb5685
AP_Compass: fix a math error in the compass calibrator
2015-09-03 16:59:10 +10:00
Jonathan Challinger
328cf82c3d
CompassCalibrator: update AP_Notify on failure
2015-09-03 16:59:10 +10:00
Jonathan Challinger
bfdbb55528
AP_Compass: make compasscalibrator running() public
2015-09-03 16:59:10 +10:00
Jonathan Challinger
d31d385490
AP_Compass: changes and fixes to LMA-based compass calibrate
2015-09-03 16:59:10 +10:00
bugobliterator
c66bfc95e1
Compass: Add Levenberg-Marquadt for ellipsoid fit
2015-09-03 16:59:10 +10:00
bugobliterator
7711dde2ad
Compass: implement 9 parameter ellipsoid fit
2015-09-03 16:59:10 +10:00
bugobliterator
35555c7b21
Compass: Add math for 9 parameter fitting
2015-09-03 16:59:10 +10:00
bugobliterator
7295537e8a
Compass: decrease sphere coverage to 1/3rd
...
for faster sample collection
2015-09-03 16:59:10 +10:00
bugobliterator
a2bd4e8997
Compass: Add less complex equations to calculate jacobians
2015-09-03 16:59:10 +10:00
bugobliterator
2ca0e80dc5
Compass: Add conditions to check sanity of results
2015-09-03 16:59:10 +10:00
bugobliterator
54bc28c96d
Compass: Add Levenberg-Marquadt optimiser for sphere_fit
...
increase iterations to get good results from LM
better check for convergence, comparison with initial fitness is a better way to determine if convergence occurs, if fitness has not improved compared to initial fitness it means optimiser has failed.
2015-09-03 16:59:10 +10:00
Jonathan Challinger
c0a662c819
AP_Compass: CompassCalibrator initial commit
2015-09-03 16:59:10 +10:00
Jonathan Challinger
f20ef69777
Compass: add soft-iron corrections
2015-09-03 16:59:09 +10:00
Jonathan Challinger
5fe6db0dc9
AP_Compass_PX4: use new compass backend interface
2015-09-03 16:59:09 +10:00
Jonathan Challinger
ade39abc7f
AP_Compass_HMC5843: use new compass backend interface
2015-09-03 16:59:09 +10:00
Jonathan Challinger
8800d03fce
AP_Compass_HIL: use new compass backend interface
2015-09-03 16:59:09 +10:00
Jonathan Challinger
cd5cf45ba8
AP_Compass_AK8963: use new compass backend interface
2015-09-03 16:59:09 +10:00
Jonathan Challinger
add1b8c257
AP_Compass: modify backend interface to push raw samples to frontend
2015-09-03 16:59:09 +10:00
Jonathan Challinger
b990eaed68
AP_Compass: add interface for raw and unfiltered field
2015-09-03 16:59:09 +10:00
Lucas De Marchi
a66a201bf5
AP_Compass: HMC5843: Add support for MPU6000 auxiliary bus
...
Allow HMC5843 to be on MPU6000's auxiliary bus.
2015-08-28 12:39:09 +10:00
Lucas De Marchi
628e446e3e
AP_Compass: HMC5843: use a struct for raw value
...
Like is done in AK8963, declare a raw_value struct.
2015-08-28 12:39:09 +10:00
Lucas De Marchi
9ecd1daf81
AP_Compass: HMC5843: remove useless delay
...
There's no need to add a delay after suspending timer in the
initialization. Also initialize _bus_sem earlier, like is done in
AK8963.
2015-08-28 12:39:09 +10:00
Lucas De Marchi
c66c9c41f2
AP_Compass: HMC5843: be agnostic to I2C bus
...
Like was done to inertial AK8963 and inertial sensor move the decision
regarding the I2C bus to the caller. We don't allow changing the address
because apparently HMC5843 doesn't support different addresses.
Changing only the bus could be more easily done but this prepares the
ground for using HMC5843 on an AuxiliarBus.
The need for a more generic abstraction is evidenced by this commit: a
"SerialBus" in AP_HAL would be a nice addition rather than letting each
driver to provide its own. However the methods are a little bit
different from what we have in AK8963. It's safer to do the simple
conversion now and later on to add the abstraction changing everybody to
use it.
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
3eb6be64c9
AP_Compass: ignore first two readings in a clearer way
...
This way we don't mix two different conditionals: settling and data validation.
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
633330db14
AP_Compass: rename calibration array in HMC
...
I think naming the variable "scaling" makes more sense.
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
d8bddcbf3a
AP_Compass: fix indentation in HMC's driver
2015-08-28 12:39:09 +10:00
Staroselskii Georgii
79ffddc6db
AP_Compass: add a macro for checking calibration values in HMC
2015-08-28 12:39:08 +10:00
Lucas De Marchi
f61386ae43
AP_Compass: HMC5843: release the lock before read
...
read() calls accumulate() which takes the lock by itself so we must
release it like we were doing before 669ae26 ("AP_Compass: encapsulated
calibration in HMC").
2015-08-28 12:39:08 +10:00
Staroselskii Georgii
a9e8c1c464
AP_Compass: encapsulated calibration in HMC
2015-08-28 12:39:08 +10:00
Staroselskii Georgii
0fbc295d97
AP_Compass: encapsulated version detection in HMC driver
2015-08-28 12:39:08 +10:00
Lucas De Marchi
868d0bf3c3
AP_Compass: AK8963: refactor constructors
...
Declare a common constructor that others can call.
2015-08-28 12:39:08 +10:00
Lucas De Marchi
a5df93bf10
AP_Compass: AK8963: be agnostic to I2C bus/address
...
This decision is better made by the caller rather than polluting the
driver with board-specific details.
2015-08-28 12:39:08 +10:00