Peter Barker
38c6eb24cd
AP_NavEKF2: 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
Tatsuya Yamaguchi
a51c3206b2
AP_NavEKF2: do not check the second range finder if RANGEFINDER_MAX_INSTANCES is 1
2022-12-20 10:05:24 +11:00
Stephen Dade
c0df999094
AP_NavEKF2: Add support for fixed height optical flow
2022-12-01 08:03:47 +09:00
Peter Barker
81d39677ab
AP_NavEKF2: honour AP_BEACON_ENABLED
...
if the DAL cuts its APIs out based on AP_BEACON_ENABLED we have to modify EKF2 to not use those APIs
2022-11-16 08:16:31 +11:00
Peter Barker
a01202c723
AP_NavEKF2: change namespace of MultiCopter and FixedWing params
...
this stops the libraries knowing anything about AP_Vehicle
2022-11-09 19:04:37 +11:00
Peter Barker
65b00bcc2a
AP_NavEKF2: stop libraries including AP_Logger.h in .h files
...
AP_Logger.h is a nexus of includes; while this is being improved over
time, there's no reason for the library headers to include AP_Logger.h
as the logger itself is access by singleton and the structures are in
LogStructure.h
This necessitated moving The PID_Info structure out of AP_Logger's
namespace. This cleans up a pretty nasty bit - that structure is
definitely not simply used for logging, but also used to pass pid
information around to controllers!
There are a lot of patches in here because AP_Logger.h, acting as a
nexus, was providing transitive header file inclusion in many (some
unlikely!) places.
2022-04-08 19:18:38 +10:00
Josh Henderson
d5f5a3024a
AP_NavEKF2: use vector.xy().length() instead of norm(x,y)
2021-09-14 10:43:46 +10:00
Pierre Kancir
d95f503a32
AP_NavEKF2: remove unecessary assignements
2021-08-12 10:39:49 +09:00
Peter Barker
dec4ba86b6
AP_NavEKF2: stop using AHRS as conduit for Compass pointer
2021-07-30 12:19:42 +10:00
Andrew Tridgell
6aca0bb08a
AP_NavEKF2: allow for double EKF build
2021-07-10 07:20:41 +10:00
Josh Henderson
0561637350
AP_NavEKF2: Fix #17789 core's EKF origin altitude different if flying
2021-06-22 12:01:10 +10:00
Josh Henderson
d7ecd6883d
AP_NavEKF2: non_GPS modes ensure EKF origin set only once and stays in sync
...
ekf2
2021-06-22 12:01:10 +10:00
Andrew Tridgell
ea6724aca5
AP_NavEKF2: don't limit baro change when we are in fixed wing mode
2021-06-02 11:13:16 +09:00
Andrew Tridgell
32b079911f
AP_NavEKF2: use DAL APIs for takeoff/touchdown expected
2021-06-02 11:13:16 +09:00
Peter Barker
5dff32422d
AP_NavEKF2: remove separate calls to get delta-times for vel and ang
2021-03-13 11:29:29 +11:00
Andrew Tridgell
5e72907730
AP_NavEKF2: only fuse airspeed if healthy
2020-12-11 09:59:49 +11:00
Peter Barker
d600b87454
AP_NavEKF2: make logging a core concern
2020-12-01 13:06:04 +11:00
Peter Barker
400ba7a9df
AP_NavEKF2: move global state to be on the stack
2020-12-01 10:40:09 +11:00
Andrew Tridgell
7313e9eb0f
AP_NavEKF2: removed inhibitGps and inhibitGpsVertVel options
...
these were unused
2020-12-01 10:33:50 +11:00
Andrew Tridgell
39ba8a8c83
AP_NavEKF2: convert to using common buffer classes
...
this saves a considerable amount of flash
2020-11-20 21:56:32 +11:00
Andrew Tridgell
7099bb6096
AP_NavEKF2: fixed gcc 9.3 build error
...
gcc 9.3 doesn't like the use of get_accel(i) when array length is 1
2020-11-13 14:30:11 +11:00
Andrew Tridgell
16f7e51ea5
AP_NavEKF2: fixed use of pointers in ringbuffers
...
these don't work with AP_DAL
2020-11-10 16:15:45 +11:00
Andrew Tridgell
5f0e943f0f
AP_NavEKF2: use dal reference in EKF backends
...
saves a bit of flash space
2020-11-10 16:15:45 +11:00
Andrew Tridgell
bec095d661
AP_NavEKF2: support replay with external navigation data
2020-11-10 16:15:45 +11:00
Andrew Tridgell
224792b8b8
AP_NavEKF2: added optflow support for AP_DAL
2020-11-10 16:15:45 +11:00
Andrew Tridgell
6be3d19e82
AP_NavEKF2: convert to use AP_DAL for new replay structure
...
Co-authored-by: Peter Barker <pbarker@barker.dropbear.id.au>
2020-11-10 16:15:45 +11:00
Andrew Tridgell
35e95d3328
AP_NavEKF2: reset body mag variances at key points
...
reset on sensor switch or when changing to 3D fusion
2020-09-20 09:25:57 +10:00
Andrew Tridgell
d6dcbda0d3
AP_NavEKF2: removed duplicate compass switch check
...
left over from last set of changes
2020-09-20 09:25:57 +10:00
Paul Riseborough
da7bb44a61
AP_NavEKF2: Consolidate magnetometer timeout checks
2020-09-08 11:01:14 +10:00
Andrew Tridgell
6b9e595602
AP_NavEKF2: fixed handling of failed compass
...
when a compass goes unhealthy due to sensor failure we should try
another compass after 10s if another compass is available
2020-09-08 11:01:14 +10:00
Andrew Tridgell
83e5639225
AP_NavEKF2: apply min GPS accuracy at measurement point
...
this fixes an issue a RTK GPS gives 1cm horizontal and vertical
accuracy and that causes the variances to get too small
2020-08-21 07:40:13 +10:00
Peter Barker
032b7c81e5
AP_NavEKF2: correct includes
2020-08-07 19:20:07 +10:00
Dr.-Ing. Amilcar do Carmo Lucas
83dc46d539
AP_NavEKF2: fix vertical flyaways when rangefinder stops providing data
2020-06-24 21:16:50 +09:00
Randy Mackay
989ffb79cd
AP_NavEKF2: minor format fix
2020-06-19 13:46:52 +09:00
Randy Mackay
966d59a26d
AP_NavEKF2: protect against ExtNav being NaN
2020-06-19 13:46:52 +09:00
chobits
e64c92b322
AP_NavEKF2: use err info from ext nav interface
2020-06-09 13:31:21 +09:00
Randy Mackay
6c10655059
AP_NavEKF2: accept extnav at up to 50hz
2020-06-09 09:42:14 +10:00
chobits
dee095b4a4
AP_NavEKF2: support VISION_SPEED_ESTIMATE
2020-06-01 17:51:24 +09:00
Randy Mackay
f26a2a47b4
AP_NavEKF2: writeExtNavData accepts delay
2020-05-15 10:07:52 +09:00
Paul Riseborough
e1f27054d5
AP_NavEKF2: Don't use geomag data when user specifies declination
2020-04-28 11:42:31 +09:00
Andrew Tridgell
c83e2d7c0e
AP_NavEKF2: fixed loss of GPS fusion
...
we must not do a storedGPS.recall unless we will be using the data,
otherwise we will lose GPS samples and risk stopping GPS fusion
2020-04-24 09:43:23 +10:00
Andrew Tridgell
3edbe81b1e
AP_NavEKF2: removed 2nd set of imuSampleTime_ms
2020-04-24 09:43:23 +10:00
Paul Riseborough
de0040ad69
AP_NavEKF2: Enable use of EKF-GSF yaw estimate
...
Enables the yaw to be reset in flight to a value estimated from a specialised yaw estimator. This allows faster recovery if taking off with a bad magnetometer and also allows yaw alignment and GPS use to commence in-air when operating without any yaw sensing.
AP_NavEKF2: Add missing accesor functions for default airspeed
2020-04-24 09:43:23 +10:00
Randy Mackay
8749f30c64
AP_NavEKF2: external nav pos offsets from AP_VisualOdom library
2020-04-14 10:28:03 +10:00
Randy Mackay
fb7e68c53a
AP_NavEKF2: writeExtNavData reset handles system time wrap
2020-04-14 10:28:03 +10:00
Peter Barker
903d81c263
AP_NavEKF2: use compass reference rather than repeatedly asking AHRS for it
2020-03-13 08:26:18 +11:00
Peter Barker
369292f7f3
AP_NavEKF2: stop relying on the presence of a RangeFinder
2019-12-11 08:09:01 +11:00
Andrew Tridgell
fce4d6952f
AP_NavEKF2: don't use WMM tables unless we have a compass scale factor set
2019-12-03 20:48:23 +11:00
Peter Barker
99689f65f8
AP_NavEKF2: adjust for renaming of RangeFinder files
2019-11-12 07:14:37 +08:00
Peter Barker
9735684184
AP_NavEKF2: use enum-class for RangeFinder Status
2019-11-09 08:01:53 +11:00