Jonathan Challinger
358736a592
AP_Compass: correct calibrator sample acceptance math
10 years ago
Jonathan Challinger
bff9b9065e
AP_Compass: CompassCalibrator comment update
10 years ago
Siddharth Bharat Purohit
137bd25220
AP_Compass: add info about compass calibrator procedure
10 years ago
Siddharth Bharat Purohit
f5fbc2fac1
AP_Compass: use AP_Math inverse library
10 years ago
Jonathan Challinger
0edf1df28e
AP_Compass: loosen calibration acceptance tolerance
10 years ago
Jonathan Challinger
987f55387e
AP_Compass: style cleanup
10 years ago
Jonathan Challinger
5ef713f3db
AP_Compass: set AP_Notify::compass_cal_failed
10 years ago
Jonathan Challinger
5a12991d29
CompassCalibrator: remove dependence on AP_Notify
10 years ago
Jonathan Challinger
de600ca3da
AP_Compass: configured() only checks compasses with _USE set
10 years ago
Jonathan Challinger
72c8d0f530
AP_Compass: add samples to calibrator when published
10 years ago
Jonathan Challinger
cc36401b7c
AP_Compass: add calibration interface
10 years ago
Jonathan Challinger
05d3616e0d
AP_Compass: fix sitl build
10 years ago
Jonathan Challinger
7cb9fa8898
AP_Compass: Correct parameter checks in compass cal
10 years ago
Jonathan Challinger
6d45660568
AP_Compass: refactor run_fit_chunk logic
10 years ago
Jonathan Challinger
f2acf2cb88
AP_Compass: more parameter checks in compass calibrator
10 years ago
Jonathan Challinger
929ddb5685
AP_Compass: fix a math error in the compass calibrator
10 years ago
Jonathan Challinger
328cf82c3d
CompassCalibrator: update AP_Notify on failure
10 years ago
Jonathan Challinger
bfdbb55528
AP_Compass: make compasscalibrator running() public
10 years ago
Jonathan Challinger
d31d385490
AP_Compass: changes and fixes to LMA-based compass calibrate
10 years ago
bugobliterator
c66bfc95e1
Compass: Add Levenberg-Marquadt for ellipsoid fit
10 years ago
bugobliterator
7711dde2ad
Compass: implement 9 parameter ellipsoid fit
10 years ago
bugobliterator
35555c7b21
Compass: Add math for 9 parameter fitting
10 years ago
bugobliterator
7295537e8a
Compass: decrease sphere coverage to 1/3rd
...
for faster sample collection
10 years ago
bugobliterator
a2bd4e8997
Compass: Add less complex equations to calculate jacobians
10 years ago
bugobliterator
2ca0e80dc5
Compass: Add conditions to check sanity of results
10 years ago
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.
10 years ago
Jonathan Challinger
c0a662c819
AP_Compass: CompassCalibrator initial commit
10 years ago
Jonathan Challinger
f20ef69777
Compass: add soft-iron corrections
10 years ago
Jonathan Challinger
5fe6db0dc9
AP_Compass_PX4: use new compass backend interface
10 years ago
Jonathan Challinger
ade39abc7f
AP_Compass_HMC5843: use new compass backend interface
10 years ago
Jonathan Challinger
8800d03fce
AP_Compass_HIL: use new compass backend interface
10 years ago
Jonathan Challinger
cd5cf45ba8
AP_Compass_AK8963: use new compass backend interface
10 years ago
Jonathan Challinger
add1b8c257
AP_Compass: modify backend interface to push raw samples to frontend
10 years ago
Jonathan Challinger
b990eaed68
AP_Compass: add interface for raw and unfiltered field
10 years ago
Lucas De Marchi
a66a201bf5
AP_Compass: HMC5843: Add support for MPU6000 auxiliary bus
...
Allow HMC5843 to be on MPU6000's auxiliary bus.
10 years ago
Lucas De Marchi
628e446e3e
AP_Compass: HMC5843: use a struct for raw value
...
Like is done in AK8963, declare a raw_value struct.
10 years ago
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.
10 years ago
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.
10 years ago
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.
10 years ago
Staroselskii Georgii
633330db14
AP_Compass: rename calibration array in HMC
...
I think naming the variable "scaling" makes more sense.
10 years ago
Staroselskii Georgii
d8bddcbf3a
AP_Compass: fix indentation in HMC's driver
10 years ago
Staroselskii Georgii
79ffddc6db
AP_Compass: add a macro for checking calibration values in HMC
10 years ago
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").
10 years ago
Staroselskii Georgii
a9e8c1c464
AP_Compass: encapsulated calibration in HMC
10 years ago
Staroselskii Georgii
0fbc295d97
AP_Compass: encapsulated version detection in HMC driver
10 years ago
Lucas De Marchi
868d0bf3c3
AP_Compass: AK8963: refactor constructors
...
Declare a common constructor that others can call.
10 years ago
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.
10 years ago
Lucas De Marchi
d92c2ac9f5
AP_Compass: pass backend instead of pointer to function
...
Just like was done for inertial sensor, different detect() functions
might need different arguments and passing a pointer to function here is
cumbersome. For example, it forces to have a method like "detect_i2c2"
rather than allowing hal.i2c2 to be passed as parameter.
10 years ago
Lucas De Marchi
7e997564bf
AP_Compass: standardize inclusion of libaries headers
...
Do the missing header changes due to changing the code before the pr
getting accepted.
10 years ago
Andrew Tridgell
69a86a78a6
AP_Compass: removed AVR1280 specific ifdef
10 years ago