Siddharth Purohit
f55ee264a7
AP_Compass: reset compass ids not present after compass cal
...
also implement replacement mechanism for UAVCAN compasses
2020-07-27 19:48:15 +10:00
Michael du Breuil
f25d20f549
AP_Compass: Only send a single MAG_CAL_* message per poll
...
this fairly allocates bandwidth between the calibrators
2020-06-16 10:09:14 +10:00
Siddharth Purohit
c0eb27cc35
AP_Compass: pull compass calibrator out into a separate thread
2020-06-05 09:38:40 +10:00
Andy Piper
63b5711a4d
AP_Compass: use a separate slot for the custom compass rotation
2020-05-24 07:46:17 +10:00
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
2020-05-21 16:28:27 +10:00
Andrew Tridgell
4a80313fdd
AP_Compass: added get_num_enabled()
...
used by EKF3
2020-05-09 12:33:33 +10:00
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
2020-05-05 09:25:18 +10:00
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
2020-04-29 18:51:16 +10:00
Paul Riseborough
8e9dc1c393
AP_Compass: Add accessor function for COMPASS_AUTODEC
2020-04-28 11:42:31 +09:00
Peter Barker
0665c379de
AP_Compass: correct use of incorrect backend-count macro
2020-03-17 11:25:16 +11:00
Siddharth Purohit
8d227d401a
AP_Compass: modify compass driver to support consistent ordering and hotplugging
2020-02-19 13:59:53 +09:00
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.
2019-12-18 17:20:37 +11:00
Andrew Tridgell
421fbef2a0
AP_Compass: added COMPASS_OPTIONS
...
this allows user to set that calibration requires GPS lock
2019-12-03 20:48:23 +11:00
Andrew Tridgell
6fd0ca36aa
AP_Compass: added estimation of compass scale factor
...
this adds new COMPASS_SCALE, COMPASS_SCALE2 and COMPASS_SCALE3
parameters, which give the sensor scaling factor. It is used to
compensate for an incorrect scaling in a compass.
The 3D compass calibration process will set the correct value
automatically, otherwise users can set the value to a known value for
an existing compass
2019-12-03 20:48:23 +11:00
Andrew Tridgell
2a48241ebb
AP_Compass: fixed naming of QMC5883L driver
...
needed for probe using COMPASS macro in hwdef.dat
2019-09-04 16:27:47 +10:00
Andrew Tridgell
f4576ec8f3
AP_Compass: reduce firmware size for AP_Periph
2019-08-27 10:29:56 +10:00
Peter Barker
1adda1ccf0
AP_Compass: move automatic declination setting into AP_Compass itself
2019-08-13 10:02:13 +10:00
Peter Barker
df01bed14f
AP_Compass: take GCS link in place of channel to calibration routines
2019-08-05 09:23:10 +10:00
Michael du Breuil
9fc954b030
AP_Compass: Reduce scope of BattMonitor include
2019-06-18 10:02:05 +10:00
Andrew Tridgell
532b82b3a3
AP_Compass: use DRIVER_HMC5843 to match driver name
2019-05-30 15:39:57 +10:00
Peter Barker
bf23f1df67
AP_Compass: move responsibility for logging into library
2019-04-23 10:06:17 +10:00
Peter Barker
0e8722181f
AP_Compass: take responsibility for not running cal if armed
2019-04-23 10:06:17 +10:00
Peter Barker
7ae7c48362
AP_Compass: remove set_and_save_offsets taking integer parameters
...
because the only caller that mattered had floats to offer...
2019-04-05 06:09:25 -07:00
Peter Barker
54e3959a99
AP_Compass: move enabled parameter into compass library
2019-04-02 10:24:49 +11:00
Peter Barker
f8be4efed4
AP_Compass: init never fails; return void rather than bool
2019-03-13 13:06:50 +11:00
thomass
8155c8b178
AP_Compass: added backend implementation for RM3100 compass
2019-02-10 08:00:49 +11:00
Lucas De Marchi
34fb98b1e0
AP_Compass: probe for IST8308 on external buses
2018-10-25 20:19:30 -07:00
Andrew Tridgell
5ac6309848
AP_Compass: enable in-flight compass learning system
...
using COMPASS_LEARN=3
2018-10-24 07:25:42 +10:00
Andrew Tridgell
925555c995
AP_Compass: move accum fields to frontend
...
this is needed to ensure they are per-instance. Without this the SITL
backend produces zero for all but the first instance. The same would
be true for any multi-instance backend
2018-10-17 12:54:22 +11:00
Lucas De Marchi
de535dc573
AP_Compass: remove unused external and name arguments
...
Aka "fix copy and pasta".
2018-09-06 08:23:02 +10:00
Jonathan Challinger
cefd998177
AP_Compass: add expected DEV_ID parameters
2018-08-07 10:00:10 +10:00
Jonathan Challinger
878e84a015
AP_Compass: correct edge case where checks pass when saved dev_id != detected dev_id
2018-08-07 10:00:10 +10:00
Randy Mackay
99b54935db
Compass: remove accumulate
...
this method is a noop on all backends
2018-08-06 11:05:34 +10:00
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.
2018-07-18 16:07:19 +10:00
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
2018-07-14 17:51:50 +10:00
Peter Barker
051c811bfb
AP_Compass: make compass_cal_requires_reboot const
2018-07-03 13:44:11 +10:00
Peter Barker
4c2925d693
AP_Compass: remove pointless initialisations
...
If you are allocating one of these on the stack you're doing something
wrong.
2018-07-02 10:44:34 +10:00
Peter Barker
a3a1967e05
AP_Compass: add AP::compass() singleton getter
2018-05-17 15:37:14 +10:00
Francisco Ferreira
0a3af28d17
AP_Compass: remove Qualcomm board support
2018-05-17 09:57:20 +10:00
Jacob Walser
6699c59ad3
AP_Compass: add support for custom board orientations
2018-04-24 13:04:37 +01:00
night-ghost
f26bb0cfbe
AP_Compass: added range filter to backend, added its use in some sensors (thanks khancyr for style correction)
2018-04-11 14:46:42 +10:00
Michael du Breuil
c66d15efd7
AP_Compass: Read current for compensation from the battery singleton
2018-03-27 22:12:21 +01:00
Andrew Tridgell
487b615faa
AP_Compass: allow for override of MAG_BOARD_ORIENTATION
2018-03-02 12:52:50 +11:00
Andrew Tridgell
57a3bc1397
AP_Compass: new compass learning system
...
this learns compass offsets using magnetic tables and compass
observations
2018-02-08 17:36:33 +11:00
Andrew Tridgell
ca30f6aec8
AP_Compass: added per-motor compass calibration
...
this allows for a motor calibration vector per motor
2018-02-08 17:36:33 +11:00
night-ghost
b6bf90ab93
AP_Compass: mAG3110 driver
2018-02-02 21:07:40 +11:00
Andrew Tridgell
f326377a5c
AP_Compass: removed create() method for objects
...
See discussion here:
https://github.com/ArduPilot/ardupilot/issues/7331
we were getting some uninitialised variables. While it only showed up in
AP_SbusOut, it means we can't be sure it won't happen on other objects,
so safest to remove the approach
Thanks to assistance from Lucas, Peter and Francisco
2017-12-14 08:12:28 +11:00
Andrew Tridgell
5646afac1c
AP_Compass: avoid double detection of the AK09916
...
with an ICM20948 we can double detect the compass due to the i2c pass-thru
2017-10-04 11:49:06 +11:00
Lucas De Marchi
320260a151
AP_Compass: add static create method
2017-09-26 03:01:21 +01:00
Lucas De Marchi
b1740e2d9c
AP_Compass: remove raspilot
2017-09-12 15:06:19 -07:00