yaapu
5e88a856e9
AP_Compass: support for MSP compass
4 years ago
Siddharth Purohit
5cd6175d94
AP_Compass: fix reordering compass devid by priority at boot
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
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
Siddharth Purohit
c0eb27cc35
AP_Compass: pull compass calibrator out into a separate thread
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
Paul Riseborough
8e9dc1c393
AP_Compass: Add accessor function for COMPASS_AUTODEC
5 years ago
Peter Barker
0665c379de
AP_Compass: correct use of incorrect backend-count macro
5 years ago
Siddharth Purohit
8d227d401a
AP_Compass: modify compass driver to support consistent ordering and hotplugging
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
Andrew Tridgell
421fbef2a0
AP_Compass: added COMPASS_OPTIONS
...
this allows user to set that calibration requires GPS lock
5 years ago
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
5 years ago
Andrew Tridgell
2a48241ebb
AP_Compass: fixed naming of QMC5883L driver
...
needed for probe using COMPASS macro in hwdef.dat
6 years ago
Andrew Tridgell
f4576ec8f3
AP_Compass: reduce firmware size for AP_Periph
6 years ago
Peter Barker
1adda1ccf0
AP_Compass: move automatic declination setting into AP_Compass itself
6 years ago
Peter Barker
df01bed14f
AP_Compass: take GCS link in place of channel to calibration routines
6 years ago
Michael du Breuil
9fc954b030
AP_Compass: Reduce scope of BattMonitor include
6 years ago
Andrew Tridgell
532b82b3a3
AP_Compass: use DRIVER_HMC5843 to match driver name
6 years ago
Peter Barker
bf23f1df67
AP_Compass: move responsibility for logging into library
6 years ago
Peter Barker
0e8722181f
AP_Compass: take responsibility for not running cal if armed
6 years ago
Peter Barker
7ae7c48362
AP_Compass: remove set_and_save_offsets taking integer parameters
...
because the only caller that mattered had floats to offer...
6 years ago
Peter Barker
54e3959a99
AP_Compass: move enabled parameter into compass library
6 years ago
Peter Barker
f8be4efed4
AP_Compass: init never fails; return void rather than bool
6 years ago
thomass
8155c8b178
AP_Compass: added backend implementation for RM3100 compass
6 years ago
Lucas De Marchi
34fb98b1e0
AP_Compass: probe for IST8308 on external buses
6 years ago
Andrew Tridgell
5ac6309848
AP_Compass: enable in-flight compass learning system
...
using COMPASS_LEARN=3
6 years ago
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
6 years ago
Lucas De Marchi
de535dc573
AP_Compass: remove unused external and name arguments
...
Aka "fix copy and pasta".
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
99b54935db
Compass: remove accumulate
...
this method is a noop on all backends
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
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
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
Peter Barker
a3a1967e05
AP_Compass: add AP::compass() singleton getter
7 years ago
Francisco Ferreira
0a3af28d17
AP_Compass: remove Qualcomm board support
7 years ago
Jacob Walser
6699c59ad3
AP_Compass: add support for custom board orientations
7 years ago
night-ghost
f26bb0cfbe
AP_Compass: added range filter to backend, added its use in some sensors (thanks khancyr for style correction)
7 years ago
Michael du Breuil
c66d15efd7
AP_Compass: Read current for compensation from the battery singleton
7 years ago
Andrew Tridgell
487b615faa
AP_Compass: allow for override of MAG_BOARD_ORIENTATION
7 years ago
Andrew Tridgell
57a3bc1397
AP_Compass: new compass learning system
...
this learns compass offsets using magnetic tables and compass
observations
7 years ago
Andrew Tridgell
ca30f6aec8
AP_Compass: added per-motor compass calibration
...
this allows for a motor calibration vector per motor
7 years ago
night-ghost
b6bf90ab93
AP_Compass: mAG3110 driver
7 years ago
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
7 years ago
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
7 years ago