Commit Graph

131 Commits

Author SHA1 Message Date
Peter Barker 904707de15 AP_AHRS: clarify get_vert_pos_rate AHRS method name to include 'D' 2023-06-06 20:09:28 +10:00
Peter Barker 7fa0b75d48 AP_AHRS: avoid using struct Location
clang reports this could be a problem when compiling under some EABIs.  Remove it from most places as it is just noise, replace with class where we want to avoid including Location.h
2023-02-04 22:51:54 +11:00
Peter Barker aa7ab28969 AP_AHRS: add a bool wind_estimate(...)
NavEKF3 can fail to return a wind estimate, and we lose that value
2023-01-18 11:20:32 +11:00
Peter Barker c42754b691 AP_AHRS: create an AP_AHRS_SIM backend 2023-01-12 13:11:40 +11:00
Andrew Tridgell 87b4b031bf AP_AHRS: if DCM has no yaw source then don't fallback when hovering
this copes with quadplanes with no compass. With a compass we are
better off using EKF when not in fly-forward as it will give better
height control.

This makes QHOVER for takeoff in quadplanes with no compass a lot more
flyable
2022-12-20 10:34:22 +11:00
jackhong12 4a4f361a17 all: use CLASS_NO_COPY() macro 2022-10-04 11:23:04 +11:00
Andrew Tridgell f80ba734c8 AP_AHRS: removed use of "blended" accel values
calculate a single EF accel based on primary IMU
2022-08-21 18:51:59 +10:00
Andrew Tridgell 924759510d AP_AHRS: fixed use of filtered gyro with DCM active
we need to overwrite _omega with the filtered gyro value, so we get
both the low pass filter and the notch filters. Otherwise we will fly
with very high noise gyro data

this also fixes the accel_ef_blended to use the filtered accel. It is
not blended, and removing "_blended" from the API will be worthwhile
as a followup
2022-08-21 18:51:59 +10:00
Peter Barker cfb391dc2c AP_AHRS: stop using GCS_MAVLINK.h in header files
... by passing through a reference to a link object instead
2022-08-16 09:45:51 +10:00
Peter Barker ff63b62b0c AP_AHRS: rename AP_AHRS::get_position to get_location 2022-01-25 10:47:22 +11:00
Joshua Henderson 8a6942a9df AP_AHRS: add define AP_AIRSPEED_ENABLED 2022-01-19 18:21:32 +11:00
Peter Barker 2f69dcc085 AP_AHRS: cache some trig results for yaw in DCM backend 2021-10-06 19:10:36 +11:00
Peter Barker 44d56854be AP_AHRS: make AP_AHRS_DCM an AP_AHRS backend 2021-10-06 19:10:36 +11:00
Peter Barker 29d2eed9e4 Sub: view update does not take skip_ins_update 2021-08-31 14:28:53 +10:00
Peter Barker 9dbd9d1e06 AP_AHRS: call INS update in AP_AHRS::update w/o holding data sem
We shouldn't be holding the data semaphore while waiting for the samples
- lots of things might be unnecessarily blocked

DCM's update function doesn't need to take the semaphore as it is
already taken by AP_AHRS
2021-08-31 14:28:53 +10:00
Peter Barker 9114d4fc86 AP_AHRS: make home-relative functions AHRS-frontend only 2021-08-25 18:32:07 +10:00
Peter Barker e2722c8e12 AP_AHRS: move active_accel_instance into DCM private header section 2021-08-24 10:23:36 +10:00
Peter Barker 645a5302d0 AP_AHRS: move DCM parameters into DCM header 2021-08-24 10:23:36 +10:00
Peter Barker 74709c6292 AP_AHRS: move groundspeed vector up to AP_AHRS_DCM
The other estimators all have their own implementation of this
2021-08-24 10:23:36 +10:00
Andrew Tridgell 53e7436525 AP_AHRS: allow for fallback to DCM in quadplanes
this adds the necessary functions to allow for flying a quadplane on
DCM as an emergency fallback. It sets the NavGainScalar to 0.5 to
reduce the VTOL controller gains to allow planes to cope with the
higher lag of DCM
2021-08-19 14:42:28 +10:00
Peter Barker 8daa0a099c AP_AHRS: rename yaw_initialised access method to dcm_yaw_initialised
This is what it really means.

Also put the relevant state within the DCM object
2021-08-18 18:37:39 +10:00
Peter Barker 608608f32f AP_AHRS: internalise application of correct_centrifugal
This is a DCM-only option but that's not clear with the interface.
Internalise the variable and base it off build type.
2021-08-17 10:36:46 +10:00
Peter Barker 7f4a4a99d6 AP_AHRS: move home and origin methods to frontend 2021-08-05 10:37:47 +10:00
Peter Barker d131cf01d3 AP_AHRS: use compass reference rather than pointer 2021-07-30 17:37:08 +10:00
Peter Barker ca58aa9c5f AP_AHRS: stop using AHRS as conduit for Compass pointer 2021-07-30 12:19:42 +10:00
Peter Barker a4d98a457b AP_AHRS: move init of dcm state into variable declarations 2021-07-23 09:55:14 +10:00
Peter Barker d351b7c7dc AP_AHRS: fix includes for moved files 2021-07-22 21:21:40 +10:00
Peter Barker b450a96698 AP_AHRS: shuffle AP_AHRS classes 2021-07-21 21:01:39 +10:00
Peter Barker ee0a373b60 AP_AHRS: remove HIL support 2021-06-15 09:47:31 +10:00
Randy Mackay 62932f884f AP_AHRS: pre_arm_check may skip position checks 2021-01-26 10:46:49 +11:00
Randy Mackay 1d97416a51 AP_AHRS: replace prearm_healthy with pre_arm_check
Also removes prearm_failure_reason
2020-10-07 11:53:07 +11:00
Harshit Kumar Sankhla b5b3298f0a AP_AHRS: get airspeed estimate from non-primary instances too
with multiple airspeed sensors and airspeed affinity in EKF3,
it is possible to have switched over to a lane not using the
primary airspeed sensor, so AHRS should know which airspeed
sensor to use, i.e, the one being used by the primary lane.
2020-08-27 20:20:51 +10:00
Peter Barker 4e12f16608 AP_AHRS: provide accessor for synthetic airspeed 2020-08-04 23:12:03 +10:00
Randy Mackay b0b78e974b AP_AHRS: add get_quaternion 2020-04-09 19:41:08 +09:00
Peter Hall f6897632f8 AP_AHRS: move to airspeed_estimate with pointer 2020-01-14 22:34:37 -07:00
Andrew Tridgell 74e56ab8cc AP_AHRS: use new persistent_data interface 2019-05-15 15:33:48 +10:00
Andrew Tridgell f7026b854e AP_AHRS: added save/restore of attitude in backup registers 2019-04-22 16:53:35 +10:00
Andrew Tridgell b8605c9ee6 AP_AHRS: save/restore home to backup registers
restore on watchdog reset

# Conflicts:
#	libraries/AP_AHRS/AP_AHRS_DCM.cpp
2019-04-22 16:53:35 +10:00
Andrew Tridgell 2ffded4dd7 AP_AHRS: implement get_velocity_NED() for DCM 2019-03-19 14:39:04 +11:00
Michael du Breuil 2ed1757353 AP_AHRS: Remove unused uptime 2019-03-19 11:42:54 +11:00
Randy Mackay b202270d1a AP_AHRS: minor format fixes 2019-02-22 13:00:07 +09:00
Peter Barker 2e403bfd52 AP_AHRS: make setting of home boolean in preparation for sanity checks 2019-02-15 08:28:45 +11:00
Andrew Tridgell 1056e64419 AP_AHRS: added get_DCM_rotation_body_to_ned()
this specifically asks for the DCM attitude, which will be used for
the comass calibration to help determine compass orientation
2018-07-18 16:07:19 +10:00
Peter Barker 355752ebb8 AP_AHRS: remove pointless initialisations
These are either in bss or new'd.

Saves ~130 bytes
2018-04-04 10:14:40 +01:00
Peter Barker 1dabcc473d AP_AHRS: use ins singleton 2018-03-16 00:37:35 -07:00
Peter Barker 024b29858d AP_AHRS: use baro singleton 2018-03-08 21:20:05 -08:00
Peter Barker e15442355a AP_AHRS: use GPS singleton 2017-12-27 00:58:02 +00:00
khancyr d89d496c8f AP_AHRS: make getter const 2017-12-18 22:43:59 +00:00
Andrew Tridgell 0ccaa5bcba AP_AHRS: 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
Lucas De Marchi cd1ff7b86f AP_AHRS: DCM: add static create method 2017-09-26 03:01:21 +01:00