Lucas De Marchi
b05b3b9932
AP_Compass: IST8310: use common method to accumulate samples
6 years ago
Lucas De Marchi
8d54276263
AP_Compass: BMM150: use common method to accumulate samples
6 years ago
Lucas De Marchi
565df5ec94
AP_Compass: AK09916: use common method to accumulate samples
6 years ago
Lucas De Marchi
e769c6932f
AP_Compass: QMC5883L: use common method to accumulate samples
6 years ago
Lucas De Marchi
c0bccdaed6
AP_Compass: HMC5843: use common method to accumulate samples
6 years ago
Lucas De Marchi
329516373c
AP_Compass: add common method to accumulate and drain samples
...
Instead of repeating on each driver the same sequence of steps,
let's move them to the common parent class. This only implements
it, but no driver was ported yet.
6 years ago
Andrew Tridgell
2f2be6afda
AP_Compass: use rotation_equal() from AP_Compass
6 years ago
Andrew Tridgell
803f255c73
AP_Compass: fixed handling of duplication rotations
...
we have some rotations that are duplicated, such as ROLL_180_YAW_90
and PITCH_180_YAW_270. This copes with those in the auto-orientation
code
6 years ago
Lucas De Marchi
93d99dacd1
AP_Compass: UAVCAN: remove additional semaphore
...
We already inherit from AP_Compass_Backend, so use the semaphore from
there to synchronize with the main thread, like the other backends.
7 years ago
Lucas De Marchi
cd9b08dbae
AP_Compass: rename variable for more buses
...
"all_external" reflects better the fact that we can have more than 2
buses (and now we are using the foreach macro).
7 years ago
Lucas De Marchi
de535dc573
AP_Compass: remove unused external and name arguments
...
Aka "fix copy and pasta".
7 years ago
Lucas De Marchi
4039b51810
AP_Compass: stop passing frontend pointer
...
Let AP_Compass_Backend call AP::compass() *once* instead of passing
the frontend pointer over and over.
7 years ago
Lucas De Marchi
585b6dce0d
AP_Compass: support more external compasses on aerofc
...
Let it probe on external bus. Aerofc has an HMC5883 on internal bus, but
we don't want it enabled as it interferes with the internal baro. Also
the rotation for the compass that comes with Aero RTF is different from
the other that got added later. That means people would need to orient a
third party IST8310-based compass differently on Aero RTF than on other
boards... that's a problem of having orientation based on the chip that
can't be solved on this commit.
7 years ago
liang.tang
2c0b9a16a5
AP_Compass: fix UAVCAN mag message handlers
7 years ago
Siddharth Purohit
14b701cff8
AP_Compass: move UAVCAN mag subscribers and handlers to Compass Backend
7 years ago
Francisco Ferreira
317e8e0296
AP_Compass: adapt to changes in AP_BoardConfig_CAN
7 years ago
Andrew Tridgell
3ed7c060df
AP_Compass: address review comments
7 years ago
Jonathan Challinger
cefd998177
AP_Compass: add expected DEV_ID parameters
7 years ago
Jonathan Challinger
878e84a015
AP_Compass: correct edge case where checks pass when saved dev_id != detected dev_id
7 years ago
Randy Mackay
c88926f227
Compass: remove accumulate from example sketch
7 years ago
Randy Mackay
99b54935db
Compass: remove accumulate
...
this method is a noop on all backends
7 years ago
Andrew Tridgell
2ded88e611
AP_Compass: allow override of QMC5883L orientation
7 years ago
Randy Mackay
cb3731e08e
Compass: fix compile warning in calibrator output
7 years ago
Andrew Tridgell
e39d070b78
AP_Compass: clear DEV_ID for undetected compasses
...
this prevents user confusion with the number of compasses detected
7 years ago
Andrew Tridgell
b181340fd9
AP_Compass: allow override of COMPASS_AUTO_ROT
7 years ago
Andrew Tridgell
cbd6f4cc21
AP_Compass: fixed compass for tailsitters in SITL
7 years ago
Andrew Tridgell
027beb0dc1
AP_Compass: rename COMPASS_ROT_AUTO to COMPASS_AUTO_ROT
...
request from Randy
7 years ago
Andrew Tridgell
15d2daabf0
AP_Compass: don't do auto-orientation if using ROTATION_CUSTOM
7 years ago
Andrew Tridgell
a73492b40a
AP_Compass: fixed newline in statustext
7 years ago
Andrew Tridgell
196ba0e858
AP_Compass: make COMPASS_ROT_AUTO take 3 values
...
0 for disabled, 1 for check only, 2 for check and fix
7 years ago
Andrew Tridgell
d15a4ad92a
AP_Compass: improved error reporting, check all compasses
...
this uses extensions to the MAG_CAL_REPORT message to convey failures
of orientation checking.
It also checks all compasses, external or internal. It only tries to
fix the orientation if it is external
7 years ago
Andrew Tridgell
a5749c1869
AP_Compass: allow diagonals and off-diagonals to be calculated on rot change
...
this re-runs the fit on change in orientation
7 years ago
Andrew Tridgell
b4c7d1925e
AP_Compass: allow for runtime changes to SIM_MAG_DIA_?
...
this makes for easier testing
7 years ago
Andrew Tridgell
3c2e8baee2
AP_Compass: improved orientation reporting
...
and fail magcal if we fail orientation detection for an external
compass
7 years ago
Andrew Tridgell
8b0f40b402
AP_Compass: implement automatic compass orientation
...
this automatically determines the compass orientation when doing a 3D
compass calibration, if COMPASS_ROT_AUTO is enabled.
7 years ago
Andrew Tridgell
4acc06df87
AP_Compass: support diagonal, off-diagonal and rotation in SITL
...
compass
7 years ago
Andrew Tridgell
3c0ed01fd0
AP_Compass: prevent use of null dev_icm device in ICM20948 driver
7 years ago
Andrew Tridgell
71647cfc6b
AP_Compass: removed HMC5843 compass probe error
7 years ago
Andrew Tridgell
ff6d639ed7
AP_Compass: separated out external compass probing
...
this allows any ChibiOS board to specify that it wants to probe for
all possible external compass types with a define in hwdef.dat
It also implements duplicate compass detection for all i2c drivers,
ensuring we can't get a load of a driver on the same bus/address twice
7 years ago
Andrew Tridgell
7ec6522b9d
AP_Compass: default to right mag offsets for SITL
7 years ago
Andrew Tridgell
2fe2c8fbda
AP_Compass: initialise compass IDs saved in SITL
...
this ensures we don't get uncalibrates compasses in SITL
7 years ago
Andrew Tridgell
823c4523b3
AP_Compass: added SITL device IDs
7 years ago
Andrew Tridgell
f88a4b3a2f
AP_Compass: fixed compass orientations on PH4
7 years ago
Andrew Tridgell
8fd69250bd
AP_Compass: use I2C bus masks
...
this allows for external compasses on all external I2C ports, while
retaining existing device ordering
7 years ago
Peter Barker
051c811bfb
AP_Compass: make compass_cal_requires_reboot const
7 years ago
Peter Barker
4c2925d693
AP_Compass: remove pointless initialisations
...
If you are allocating one of these on the stack you're doing something
wrong.
7 years ago
Lucas De Marchi
49d08ba72a
Global: remove minlure
...
Minlure is a port of ArduPilot to Minnow Board connected to daughter
board. Very few of those were produced and nobody is flying with it.
It served its purpose and all the the improvements to ArduPilot remain
regardless of it not being supported anymore. Now it's just adding
maintenance work with no clear benefit, so pull the plug.
7 years ago
Peter Barker
9eb53e333b
AP_Compass: tidy consistency calculations
...
AP_Compass: normalize vectors in-place to save a few bytes (thanks MdB)
7 years ago
Patrick José Pereira
e456655932
AP_Compass: Use SITL singleton
...
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
7 years ago
Andrew Tridgell
b225868711
AP_Compass: detect conflict between AK09916 and ICM20948
...
this detects if we have both a AK09916 and an ICM20948 on the same i2c
bus. If that is found then the ICM20948 is disabled as it otherwise we
will have two devices on the same i2c address
7 years ago