Commit Graph

71 Commits

Author SHA1 Message Date
Peter Barker cad4bd41e9 AP_Compass: make AHRS attitude member variables private 2024-01-14 12:47:47 +11:00
Mykhailo Kuznietsov 633bb159bf AP_Compass: Fix some typos
Fixed some typos found in the code.
2023-10-12 18:30:42 +11:00
Peter Barker 9a054876ff AP_Compass: use AP_GPS_ENABLED to exclude more code when GPS not compiled in 2023-09-27 16:38:15 +10:00
Peter Barker acf437b258 AP_Compass: correct compilation with COMPASS_CAL_ENABLED off 2023-09-19 16:54:59 +10:00
Peter Barker 275a667d41 AP_Compass: allow more libraries to compile with no HAL_GCS_ENABLED 2023-09-05 22:23:51 +10:00
Peter Barker d50c429355 AP_Compass: handle mag cal as both COMMAND_LONG and COMMAND_INT 2023-08-08 10:06:13 +10:00
Iampete1 262b11f0c1 AP_Compass: stop auto replacing missing CAN by default, add option to re-enable 2023-06-27 09:24:41 +10:00
Andrew Tridgell 863b4bf928 AP_Compass: fixed zero compass diagonals
this fixes a regression from 4.2 to 4.3.

previously we automatically set the diagnoals to 1,1,1 if they were
0,0,0. We don't do that any more. I was helping a user who had copied
an old config with 0,0,0 for diagonals and did not understand two
things:

- the compass did not work in 4.3
- large vehicle mag cal didn't work
2023-01-17 12:05:19 +11:00
Peter Barker aef745c693 AP_Compass: fix compilation when removing diagonals state 2022-11-09 21:14:04 +11:00
Peter Barker dc85169cb1 AP_Compass: send report if we are in the BAD_RADIUS state 2022-10-06 10:31:09 +11:00
Peter Barker 05a638a639 AP_Compass: correct is_calibrating check
before this we only ever looked at the first backend
2022-10-06 08:21:03 +11:00
Peter Barker 75919171b7 AP_Compass: remove default clause from calibrator status switch
bad_radius should almost certainly be treated just like bad orientation
2022-10-06 08:21:03 +11:00
Peter Barker d6c5a0ab2b AP_Compass: correct compilation when COMPASS_MAX_INSTANCE>1 and no diagonals 2022-10-06 08:21:03 +11:00
Iampete1 209ad965be AP_Compass: remove custom rotations 2022-03-02 18:16:42 +11:00
Peter Barker 38abec2133 AP_Compass: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Andrew Tridgell 3f2a72f9db AP_Compass: only magcal detected compasses
inflight compass learning with COMPASS_LEARN=3 was not working with
less than 3 compasses, as the force_use parameter was preventing
skipping compasses. This fixes it to calibate all detected compasses
that have USE enabled
2022-01-18 12:01:14 +11:00
Andrew Tridgell 8eb40bafc5 AP_Compass: revert compass parameter changes 2021-12-04 16:51:53 +11:00
Iampete1 071ff39ff8 AP_Compass: move instance params to shared table 2021-11-30 08:14:43 +09:00
Iampete1 1771481779 AP_Compass: never override custom orentation in calabration 2021-11-10 09:28:54 +11:00
Andrew Tridgell 2b19b8a988 AP_Compass: switched to GSF based compass learning
this makes inflight compass learning faster, more accurate and much
simpler
2021-11-01 09:00:27 +11:00
Peter Barker 224ff97f5c AP_Compass: move from HAL_NO_GCS to HAL_GCS_ENABLED 2021-09-22 21:37:00 +10:00
Peter Barker 62f6a5b033 AP_Compass: fail calibration unless at least 1 compass to cal 2021-08-24 10:18:38 +10:00
Peter Barker 944b82a7be AP_Compass: make is_calibrating const 2021-07-30 17:37:08 +10:00
Iampete1 36a80d46e3 AP_Compass: support auto orientation for new rotations 2021-07-28 18:09:05 +10:00
Siddharth Purohit b31a04e52b AP_Compass: allow single compass configure for autopilot boards 2021-05-19 18:04:20 +10:00
Patrick José Pereira 842360b5e3 AP_Compass: Add missing const in member functions
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
2021-02-03 18:45:14 +11:00
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
murata 7ec0cb47a5 AP_Compass: const extern hal reference 2020-04-07 20:45:51 +09:00
Rishabh cbccdfa8a3 AP_Compass: Alert GCS if user tries to calibrate compass while vehicle is armed 2020-03-03 11:37:19 +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
Peter Barker 823f2bb217 AP_Compass: make compass_cal_status_t enum class Status within CompassCalibrator 2019-12-05 17:38:57 +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
Randy Mackay 89fa324a2b AP_Compass: rename CompassCalibrator::clear to stop 2019-11-26 11:10:06 +11:00
Randy Mackay 09046aec66 AP_Compass: formatting fixes
this should be a non-functional change
2019-11-26 11:10:06 +11:00
Randy Mackay f58b09ebef AP_Compass: constify get_completion_mask and remove use of auto 2019-11-26 11:10:06 +11:00
Andrew Tridgell f4576ec8f3 AP_Compass: reduce firmware size for AP_Periph 2019-08-27 10:29:56 +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
Peter Barker 0e8722181f AP_Compass: take responsibility for not running cal if armed 2019-04-23 10:06:17 +10:00
Andrew Tridgell 15d2daabf0 AP_Compass: don't do auto-orientation if using ROTATION_CUSTOM 2018-07-18 16:07:19 +10:00
Andrew Tridgell 196ba0e858 AP_Compass: make COMPASS_ROT_AUTO take 3 values
0 for disabled, 1 for check only, 2 for check and fix
2018-07-18 16:07:19 +10:00
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
2018-07-18 16:07:19 +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
Peter Barker 6b53b5b5f3 AP_Compass: make handle_mag_cal_command return type stricter 2017-07-17 14:17:19 +01:00
Andrew Tridgell ee2afd3242 AP_Compass: added COMPASS_OFFS_MAX
this allows setup of airframes with hatch magnets
2017-04-04 00:49:34 +01:00
murata af47a8e91c AP_Compass: Unify from print or println to printf. 2017-01-27 18:20:22 +11:00
Michael du Breuil deec4ec6af Compass: Rework compass calibrator
Summary of significant changes:
  -Autsave doesn't depend on STREAM_EXTRA3
  -Don't risk only saving one compass on copter if CAL_ALWAYS_REBOOT is set
  -Only calibrate compasses that are both health and marked for use (there was a inconsistency in handling the mask)
  -Fix incorrect failure reporting on DO_ACCEPT_MAG_CAL with a mask of 0 if a channel was specifically not started
  -Fix not starting the buzzer if the delay is set to 0 seconds
  -Always send MAG_CAL_REPORT until its acknowledged
  -Correct the field in MAG_CAL_REPORT for autosave to indicate if the compass had actually been saved, rather then being scheduled to be saved
  -Remmove unused public interfaces
2016-10-27 14:04:33 +11:00