Commit Graph

857 Commits

Author SHA1 Message Date
Vlad-Andrei Dorobantu 83c641c76f AP_Compass: corrected the cause of SIGSEGV signal when running AP_Compass_test 2019-10-19 09:58:42 +11:00
Andrew Tridgell 7ad91fa1c9 AP_Compass: don't show too many params when max compasses 1 2019-10-16 08:58:52 +11:00
Peter Barker 8e412d0885 AP_Compass: adjust for new vehicle base class 2019-10-08 11:26:04 +11:00
murata ec0c49315f AP_Compass: Change direct value to define name 2019-09-24 13:23:24 +10:00
Peter Barker 6193d6cf69 AP_Compass: fix example by instantiating Baro
Baro is required to get location, and Compass tries to get the declination based on current location
2019-09-13 08:54:21 +09:00
Andrew Tridgell 71ad90819e AP_Compass: don't reset SITL compass offsets if set by user
makes for easier EKF compass bias learning testing
2019-09-11 14:22:18 +10:00
Andrew Tridgell df387dc396 AP_Compass: allow rotation of BMM150 compass 2019-09-07 09:53:21 +10:00
Andrew Tridgell 1cb775e2c2 AP_Compass: probe more addresses for IST8310
IST8310 can be on 4 possible i2c addresses
2019-09-07 07:35:54 +10:00
Andrew Tridgell bd0760f9d4 AP_Compass: removed unusued compass probes
now only use probe lists
2019-09-04 16:27:47 +10:00
Andrew Tridgell 3bc8522b54 AP_Compass: added ROTATION_NONE to probes
we no longer use defaults in the headers
2019-09-04 16:27:47 +10:00
Andrew Tridgell f877def909 AP_Compass: removed default rotations for compass probe
this prevents bugs where the force_external and rotation are mixed up
in hwdef.dat causing incorrect rotations
2019-09-04 16:27:47 +10: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 bcb139f02f AP_Compass: fixed uninitialised CAN device ID bits 2019-08-29 18:37:03 +10:00
Andrew Tridgell f4576ec8f3 AP_Compass: reduce firmware size for AP_Periph 2019-08-27 10:29:56 +10:00
Andrew Tridgell 0ec3f80bbe AP_Compass: enable LIS3MDL on I2C and RM3100 on SPI 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 58dbbd6d0e AP_Compass: Refactor battery current backend 2019-07-14 00:28:00 -07:00
Peter Barker 7b52c41287 AP_Compass: fix example by instantiating serial_manager 2019-07-01 19:11:03 +10:00
Michael du Breuil 9fc954b030 AP_Compass: Reduce scope of BattMonitor include 2019-06-18 10:02:05 +10:00
Andrew Tridgell 7206258587 AP_Compass: use new get_earth_field_ga() API 2019-06-03 12:21:29 +10:00
Andrew Tridgell 38c775e6df AP_Compass: removed old mRoControlZeroF7 config 2019-05-30 15:39:57 +10:00
Andrew Tridgell 481ae22671 AP_Compass: support new sensor config setup 2019-05-30 15:39:57 +10:00
Andrew Tridgell 532b82b3a3 AP_Compass: use DRIVER_HMC5843 to match driver name 2019-05-30 15:39:57 +10:00
Andrew Tridgell ba9b92c4af AP_Compass: rename to EXPECT_DELAY_MS() 2019-05-15 15:33:48 +10:00
Andrew Tridgell ecc6f15dc0 AP_Compass: use EXPECT_DELAY() macro 2019-05-15 15:33:48 +10:00
Andrew Tridgell 9e7929adf6 AP_Compass: removed unusued AP_Common/Semaphore.h 2019-05-15 15:33:48 +10:00
Phillip Kocmoud 1f827004be AP_Compass: Enable AK09916 inside the ICM20948 2019-05-10 15:05:42 +10:00
Pierre Kancir 427a88a1fe AP_Compass: fix AP_Compass_test 2019-05-01 14:17:34 -07: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
Andrew Tridgell 21aee52604 AP_Compass: flag compass cal as long expected delay 2019-04-22 16:53:35 +10:00
Siddharth Purohit 6dc94b0e3d Compass: fix compass orientation for AK09916 on Cube 2019-04-17 06:47:14 +10:00
Peter Barker 5455d27e84 AP_Compass: specify floating point constants
Probably indicates compiler floating-point-constants directive isn't
working
2019-04-05 23:04:17 -07: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
Michael du Breuil d65f4b5ff8 AP_Compass: Fix implicit include of SRV_Channel 2019-04-05 20:12:53 +11:00
Sagnik Bhattacharya 4c809888de AP_Compass: add more comments to example 2019-04-02 19:41:45 +11:00
Peter Barker 54e3959a99 AP_Compass: move enabled parameter into compass library 2019-04-02 10:24:49 +11:00
Mirko Denecke 9c8a7efbc6 AP_Compass: remove unused field 2019-03-26 16:09:11 +11:00
Peter Barker 2d16c37844 AP_Compass: examples: compass init never fails 2019-03-13 13:06:50 +11:00
Peter Barker f8be4efed4 AP_Compass: init never fails; return void rather than bool 2019-03-13 13:06:50 +11:00
Siddharth Purohit 6ff8f52957 AP_Compass: add support for AK09916 connected over fourth IMU over I2C 2019-03-06 20:47:10 +11:00
Siddharth Purohit 104c433081 AP_Compass: AK09916 fix sample register structure 2019-03-06 20:47:10 +11:00
Siddharth Purohit cff8bf14b7 AP_Compass: add support for AK09916 via invensensev2 aux bus 2019-03-06 20:47:10 +11:00
Andrew Tridgell 7f3103073a AP_Compass: setup for fmuv6 2019-02-26 16:18:26 +11:00
Peter Barker 7184d5e860 AP_Compass: add missing override keywords 2019-02-22 15:01:09 +00:00
Peter Barker 97f2d946ab AP_Compass: remove unused variables from AP_Compass_RM3100.h 2019-02-20 19:23:54 +11:00
Peter Barker f0fd6fd996 AP_Compass: remove keywords.txt 2019-02-17 00:29:38 -08:00
Peter Barker 7ab6a5d94d AP_Compass: uavcan: reindent after WITH_SEMAPHORE change (NFC) 2019-02-16 14:33:11 +11:00
Peter Barker 5b06d01402 AP_Compass: uavcan: use WITH_SEMAPHORE in place of give/take _registry 2019-02-16 14:33:11 +11:00
Tom Pittenger 2cd485e7ae AP_Compass: unify singleton naming to _singleton and get_singleton() 2019-02-10 19:09:58 -07:00
thomass 513964cdad AP_Compass: RM3100 simplify unisgned to signed integer conversion 2019-02-10 08:00:49 +11:00
thomass 97f3627bd5 AP_Compass: RM3100 added default cycle count value check on initialization as a whoami substitute 2019-02-10 08:00:49 +11:00
thomass 488133c396 AP_Compass: RM3100 make compliant with common methods for accumulating and draining samples 2019-02-10 08:00:49 +11:00
thomass ede80773b9 AP_Compass: RM3100 stop passing frontend for compliance with backend class 2019-02-10 08:00:49 +11:00
thomass 8155c8b178 AP_Compass: added backend implementation for RM3100 compass 2019-02-10 08:00:49 +11:00
Andrew Tridgell 4003ea841c AP_Compass: change to 3 compasses in SITL 2019-02-09 13:04:52 +11:00
Andrew Tridgell 700519d805 AP_Compass: raise default max compass offsets
the larger offset doesn't present any problems for the compass
drivers, and helps on planes with magnetic hatches
2019-02-03 04:57:25 -08:00
Andrew Tridgell a21f4dc0c9 AP_Compass: update COMPASS_LEARN docs 2019-01-27 14:31:28 +11:00
Andrew Tridgell 1b95f17940 AP_Compass: removed F4Light 2019-01-21 21:57:21 +11:00
Peter Barker 6fc76a32af GLOBAL: use AP::logger() and strip redundant Log_ from methods 2019-01-18 18:08:20 +11:00
Peter Barker b47733142f GLOBAL: rename DataFlash_Class to AP_Logger 2019-01-18 18:08:20 +11:00
Randy Mackay 68363ff4a2 AP_Compass: devid param desc include ReadOnly 2018-12-27 10:08:11 +09:00
Andrew Tridgell 3d9126ec4a AP_Compass: run lsm303d at 91Hz, not 100Hz
Peter and I have discovered an odd behaviour with the lsm303d mag. If
you fetch data a bit too soon then it will give a peridic oscillation
in the output.

Checking the data ready bit in the status register doesn't help. The
only fix I've found is to run the sampling at a bit lower rate
2018-11-30 11:39:54 +11:00
Peter Barker e7a981d2c3 AP_Compass: add override keyword where required 2018-11-08 11:30:12 +11:00
Phillip Kocmoud 27a2b8a350 AP_Compass: Increase default MAX compass offset
After discussing the @tridge and @rmackay9 it was suggested that raising the maximum allowable compass offset value would allow users of the LIS3MDL and possibly others with larger compass offsets to fly with the default setting. 

This has been deemed a fairly safe change that still allows for sufficient overhead to prevent saturation.
2018-10-30 09:25:51 +09:00
Lucas De Marchi 9d95579b2d AP_Compass: update TYPEMASK documentation
Add missing drivers IST8308 and MAG3110.
2018-10-25 20:19:30 -07:00
Lucas De Marchi 34fb98b1e0 AP_Compass: probe for IST8308 on external buses 2018-10-25 20:19:30 -07:00
Lucas De Marchi c3d87f91fc AP_Compass: add support to IST8308 2018-10-25 20:19:30 -07:00
Andrew Tridgell 70246cf954 AP_Compass: added notify events (LEDs and buzzer) for learning 2018-10-24 07:25:42 +10:00
Andrew Tridgell 23ddd994ec AP_Compass: allow multiple COMPASS_LEARN runs per boot 2018-10-24 07:25:42 +10:00
Andrew Tridgell 026089747d AP_Compass: use LEARN_NONE on learn completion
master doesn't yet have the statistical EKF learning
2018-10-24 07:25:42 +10:00
Andrew Tridgell 0a7170774a AP_Compass: allow learning of all compasses
slave secondary compasses to primary
2018-10-24 07:25:42 +10: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 84d7160128 AP_Compass: use new accumulate functions for UAVCAN 2018-10-19 16:03:45 +11:00
Andrew Tridgell 579a84b53e AP_Compass: use new accumulate functions for AK8963 2018-10-19 16:03:45 +11:00
Andrew Tridgell 55e4b64755 AP_Compass: don't apply offsets twice in SITL 2018-10-19 16:03:45 +11: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
Andrew Tridgell 83065d5e88 AP_Compass: convert SITL to new accumulate approach 2018-10-17 12:54:22 +11:00
Andrew Tridgell a260792e9e AP_Compass: use WITH_SEMAPHORE()
and removed usage of hal.util->new_semaphore()
2018-10-17 12:54:22 +11:00
vierfuffzig b455c7a769 AP_Compass: add rotation option for AK8963_MPU9250
allows using non-neutrally rotated AK8963 compass on MPU9250 as internal
reference: https://github.com/ArduPilot/ardupilot/pull/9459
2018-10-17 09:35:49 +11:00
Andrew Tridgell 0b9d0a4559 AP_Compass: removed incorrect semaphore take() in QMC5883L driver 2018-10-16 10:47:26 -07:00
Lucas De Marchi 1a9c386df2 AP_Compass: MMC3416: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi e83b345cbb AP_Compass: MAG3110: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi ac2771b311 AP_Compass: LSM9DS1: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi 2324a28e39 AP_Compass: LSM303D: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi 38d1f8705f AP_Compass: LIS3MDL: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi b05b3b9932 AP_Compass: IST8310: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi 8d54276263 AP_Compass: BMM150: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi 565df5ec94 AP_Compass: AK09916: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi e769c6932f AP_Compass: QMC5883L: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
Lucas De Marchi c0bccdaed6 AP_Compass: HMC5843: use common method to accumulate samples 2018-10-15 14:41:09 -07:00
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.
2018-10-15 14:41:09 -07:00
Andrew Tridgell 2f2be6afda AP_Compass: use rotation_equal() from AP_Compass 2018-10-01 14:26:56 +09:00
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
2018-10-01 14:26:56 +09:00
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.
2018-09-06 08:23:02 +10:00
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).
2018-09-06 08:23:02 +10: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
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.
2018-09-06 08:23:02 +10:00
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.
2018-09-06 08:23:02 +10:00