Andrew Tridgell
37866ec3cf
AP_Compass: fixed compass logging when first compass unhealthy
...
keep logging compasses if any are healthy
4 years ago
Andrew Tridgell
c2feebea13
AP_Compass: allow simulation of compass sensor failure
4 years ago
bugobliterator
de6b48f922
AP_Compass: set only if changed to save space in param storage
4 years ago
Siddharth Purohit
5cd6175d94
AP_Compass: fix reordering compass devid by priority at boot
5 years ago
Siddharth Purohit
bf1a7799f8
AP_Compass: move to using CANManager library
5 years ago
Andrew Tridgell
2a662793c2
AP_Compass: support probing RM3100 on all 4 addresses
5 years ago
Siddharth Purohit
f55ee264a7
AP_Compass: reset compass ids not present after compass cal
...
also implement replacement mechanism for UAVCAN compasses
5 years ago
Andy Piper
88cda25d62
AP_Compass: enable LIS3MDL and friends
5 years ago
Peter Barker
0f2bcea647
AP_Compass: remove use of Vector3 as function
5 years ago
Michael du Breuil
f25d20f549
AP_Compass: Only send a single MAG_CAL_* message per poll
...
this fairly allocates bandwidth between the calibrators
5 years ago
bugobliterator
82480f0a3d
AP_Compass: return id of max empty compass state when prio id is 0
5 years ago
Siddharth Purohit
c0eb27cc35
AP_Compass: pull compass calibrator out into a separate thread
5 years ago
bugobliterator
c914a91be9
AP_Compass: add support for per mag calibration
5 years ago
Andrew Tridgell
a0cf4e158a
AP_Compass: revert change to RM3100 scale factor and increase scale limit
...
This reverts the change from #13895 and instead resolves the issue by
increasing the scale factor limit to 1.4
There is an open question as to why some RM3100 compasses show a
different scale factor (by about 1.25 times) to other versions of the
same sensor. As we haven't resolved this properly it seems the correct
thing to do is follow the datasheet but allow for a wider range of
scale factors to cope with the variation between sensors
5 years ago
Andy Piper
63b5711a4d
AP_Compass: use a separate slot for the custom compass rotation
5 years ago
Andy Piper
f5320e8816
AP_Compass: make sure SITL rotation gets initialized like all the others
...
don't remove a custom rotation that has already been set
5 years ago
Andrew Tridgell
4a80313fdd
AP_Compass: added get_num_enabled()
...
used by EKF3
5 years ago
Andy Piper
b7b2d9a6ce
AP_Compass: add support for custom compass rotation via COMPASS_CUS_{ROLL,PIT,YAW}
...
add reboot required for parameters that need it
disable custom rotation on AP_Periph devices
5 years ago
Andrew Tridgell
66655212b1
AP_Compass: fixed compass ordering bug with AP_Periph
...
when a user swaps compasses on AP_Periph we want to immediately
replace it. The compass ordering code was rejecting the new compass
and calling panic as it was out of slots. This changes the AP_Compass
ordering so that when we only have a single compass we operate in a
very simple manner where we always accept the first compass found
5 years ago
Andrew Tridgell
660f65e6b8
AP_Compass: use GCS_SEND_TEXT()
5 years ago
Paul Riseborough
8e9dc1c393
AP_Compass: Add accessor function for COMPASS_AUTODEC
5 years ago
Mark Whitehorn
570aa929ca
AP_Compass: handle ROTATION_CUSTOM in SITL
5 years ago
Michael du Breuil
9b404669c8
AP_Compass: Skip rotating the mag data when the board orientation is none
5 years ago
Peter Barker
c36e06e7fa
AP_Compass: add documentation for COFS, compass-learning message
5 years ago
Peter Barker
851d9ae1ef
AP_Compass: log message information for MMC3416
5 years ago
Andrew Tridgell
dd4cf6ccdd
AP_Compass: change RM3100 device ID
...
changed scale factor means users need to recalibrate
5 years ago
Andrew Tridgell
18c3efc377
AP_Compass: fixed scaling of RM3100
...
scale factor was off by 200/256, resulting in COMPASS_SCALE of about
1.28
thanks to Arace for noticing
5 years ago
murata
7ec0cb47a5
AP_Compass: const extern hal reference
5 years ago
Andrew Tridgell
6d42e9502b
AP_Compass: fixed unreg compass check for AP_Periph
...
this fixes detection of compasses on peripherals where
COMPASS_MAX_UNREG_DEV is 0
5 years ago
Peter Barker
0665c379de
AP_Compass: correct use of incorrect backend-count macro
5 years ago
Peter Barker
934d05f4ff
AP_Compass: correct incorrect and misleading comment
5 years ago
Rishabh
cbccdfa8a3
AP_Compass: Alert GCS if user tries to calibrate compass while vehicle is armed
5 years ago
Andrew Tridgell
8f83bf5e80
AP_Compass: fixed in-flight learning for all compasses
...
after recent changes only first compass was learnt
See
https://discuss.ardupilot.org/t/break-in-latest-master-in-flight-compass-calibration/52602
5 years ago
Siddharth Purohit
f00a39af52
AP_Compass: run style script on Compass.cpp
5 years ago
Siddharth Purohit
8d227d401a
AP_Compass: modify compass driver to support consistent ordering and hotplugging
5 years ago
Siddharth Purohit
defc1b5fcb
ArduCopter: add arming message for compass not detected but assigned
5 years ago
Andrew Tridgell
521cf4d6a1
AP_Compass: removed annoying startup messages
...
these happen due to sensor probing for older configs
5 years ago
Peter Barker
cc3f6468e3
AP_Compass: mark some parameters as Calibration parameters
5 years ago
Andrew Tridgell
0ca45059ac
AP_Compass: make all semaphores recursive
...
the cost is very similar and this prevents an easy coding error which
can occur on less used code paths
5 years ago
Andrew Tridgell
4ee6fb9cdf
AP_Compass: use take_blocking instead of HAL_SEMAPHORE_BLOCK_FOREVER
...
this makes for cleaner and smaller code as the failure case is not
needed
5 years ago
Peter Hall
c870df0351
AP_Compass: get_time_flying in vehicle
5 years ago
Andrew Tridgell
ebceab9aa0
AP_Compass: don't probe for ICM20948 on AP_Periph
5 years ago
Andrew Tridgell
270844745f
AP_Compass: limit rotations we try to ROTATION_MAX_AUTO_ROTATION
5 years ago
Pierre Kancir
d332773689
AP_Compass: add register to checked ones and remove single-use goto
...
Also fix comment on TMRC register setting
5 years ago
Pierre Kancir
d6563bff7d
AP_Compass: probe for RM3100
5 years ago
Andrew Tridgell
09d7e732b7
AP_Compass: added mag_cal_fixed_yaw()
...
this is a fast compass calibration that uses a yaw value provided by
the user.
5 years ago
Peter Barker
880af0de4a
AP_Compass: tidy constructor
5 years ago
Peter Barker
823f2bb217
AP_Compass: make compass_cal_status_t enum class Status within CompassCalibrator
5 years ago
Andrew Tridgell
303030c524
AP_Compass: narrow range of allowed scale factor
5 years ago
Andrew Tridgell
421fbef2a0
AP_Compass: added COMPASS_OPTIONS
...
this allows user to set that calibration requires GPS lock
5 years ago