Paul Riseborough
91423d4c71
AP_NavEKF3: Remove unncessary local position height reporting offset
...
The offset generated by the EK3_OGN_HGT_MASK parameter bit 2 option is applied to the baro or range finder sensor so it does not have to be applied to the local position height.
2024-05-23 10:35:51 +10:00
Peter Barker
10c8af3409
AP_NavEKF3: do not use fmaxF on floating point values
...
it returns double, which will not fit into this float
2023-09-12 09:47:17 +10:00
Peter Barker
ce8afaf57b
AP_NavEKF3: use quat.to_euler(Vector3f&)
2023-04-19 14:24:45 +10:00
Peter Barker
5d68f44694
AP_NavEKF3: move beacon variables into structure
...
AP_NavEKF3: change beacon variable names
2023-04-18 09:28:02 +10:00
Peter Barker
35a5a73f52
AP_NavEKF3: 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
Andy Piper
e4b8d8a9b6
AP_NavEKF3: ensure wind estimation from airspeed can be used on its own
2022-12-14 19:19:58 +11:00
Peter Barker
5cb6906968
AP_NavEKF3: add and use AP_BEACON_ENABLED
2022-11-16 08:16:31 +11:00
Andrew Tridgell
92f25150f6
AP_NavEKF3: fixed getLLH alt for local origin height
...
this fixes a bug introduced in #21834
this fix in #21834 was correct for getPosD, but should not have been
applied to getLLH
this caused cruise mode in plane to descend/ascend by the difference
between the public and local origins on mode entry
fixes #21984
2022-10-23 11:23:48 +11:00
Andrew Tridgell
17d9018a91
AP_NavEKF3: fixed EKF3 origin alt inconsistency
...
always use common origin, and adjust output posD for difference
between public and local lane origin heights
2022-09-30 07:44:42 +10:00
Paul Riseborough
eb0e9230a1
AP_NavEKF3: Add accessor function for airspeed health monitoring
2022-09-26 14:17:53 +10:00
Peter Barker
0665f9c32b
AP_NavEKF3: store and use lastKnownPositionD
...
When returning our last-known-position we were supplying lat/lng but not
altitude.
This usually really doesn't matter as this result generally isn't used,
especially for altitude. OTOH, it may prevent a bug into the future.
2022-08-22 19:48:03 +10:00
Peter Barker
1b13dd053b
AP_NavEKF3: use send_mesage for sending status report
2022-08-16 09:45:51 +10:00
Peter Barker
0443c8561b
AP_NavEKF3: 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
Randy Mackay
e0023a99bc
AP_NavEKF3: replace AP_HAL::millis() with dal.millis()
2022-05-18 17:59:57 +10:00
Peter Barker
df4911cbcb
AP_NavEKF3: avoid direct use of Location alt field
2022-03-22 10:33:37 +11:00
Randy Mackay
d1f2acd813
AP_NavEKF3: rename varInnovOptFlow to flowVarInnov
...
also renamed innovOptFlow to flowInnov
2021-08-24 16:49:04 +09:00
Randy Mackay
11847cfcf5
AP_NavEKF3: always calculate optical flow innovations and variances
2021-08-24 16:49:04 +09:00
Andrew Tridgell
ff59e0f72f
AP_NavEKF3: fixed output LLH to account for IMU offset
...
thanks to Paul and Randy
2021-08-09 19:19:21 +10:00
Peter Barker
c34284b6eb
AP_NavEKF3: stop using AHRS as conduit for Compass pointer
2021-07-30 12:19:42 +10:00
Peter Barker
795f412264
AP_NavEKF3: pass NavEKF failures back up to callers
2021-07-21 18:02:26 +10:00
Andrew Tridgell
6b73c2151a
AP_NavEKF3: implement moving origin
...
this shifts EKF_origin to the current location at 1Hz, while leaving
public_origin alone. All output APIs and logging are relative to
public_origin.
The effect of this change is to remove the distortion caused by a
spherical earth, which allows the EKF to operate without errors at
very long distances from the public_origin.
2021-07-14 17:34:40 +10:00
Andrew Tridgell
885e518741
AP_NavEKF3: allow for double EKF build
2021-07-10 07:20:41 +10:00
Peter Barker
d6348a0786
AP_NavEKF3: remove getBodyFrameOdomDebug
...
Not used after we moved logging to be within AP_NavEKF3
2021-06-07 09:28:52 +10:00
Peter Barker
dd3ab29b2f
AP_NavEKF3: remove getFilterGpsStatus
...
Not needed after we moved logging into NavEKF3
2021-06-07 09:25:53 +10:00
Peter Barker
f4591faeed
AP_NavEKF3: simplify taking of GPS measurements
2021-03-23 15:11:33 +11:00
Paul Riseborough
246b80dc06
AP_NavEKF3: Don't return a 0,0 lat,lng unless absolutely necessary
2021-03-05 12:10:01 +11:00
Paul Riseborough
a50be71b41
AP_NavEKF3: Fix inconsistency in reporting raw GPS position validity
2021-03-05 12:10:01 +11:00
Paul Riseborough
adae7365e1
AP_NavEKF3: Fix LLH reporting bug
2021-03-05 12:10:01 +11:00
Paul Riseborough
9a5a264aa0
AP_NavEKF3: Improve wind estimation without airspeed sensing
...
Enable default airspeed variance to be specified externally
Improve control of sideslip fusion
Don't modify non wind states unnecessarily when using synthesised air data measurements
2021-03-05 12:10:01 +11:00
Andrew Tridgell
ddc4d08e8f
AP_NavEKF3: make drag fusion optional
2021-01-24 11:56:52 +11:00
Andrew Tridgell
1ccda938cb
AP_NavEKF3: make external navigation optional
2021-01-24 11:56:52 +11:00
Andrew Tridgell
8da511f039
AP_NavEKF3: make body odomotry build depend on vehicle type
...
saves about 11k of flash
2021-01-24 11:56:52 +11:00
Peter Barker
3582b69e9c
AP_NavEKF3: remove getFilterTimeouts access methods
2021-01-22 13:04:36 +11:00
Peter Barker
b3bacdd33c
AP_NavEKF3: remove internal-only getTiltError method
2021-01-21 21:26:17 +11:00
Peter Barker
5ad0ac6727
AP_NavEKF3: remove unused getAccelNED method
2021-01-21 21:26:17 +11:00
Paul Riseborough
c9ab4b18b0
AP_NavEKF3: Add multicopter wind estimation
2020-12-11 15:21:41 +11:00
Andrew Tridgell
ac4a05ffbf
AP_NavEKF3: fixed null dereference of airspeed
...
this caused a segfault in replay
2020-12-11 14:22:46 +11:00
Peter Barker
e1a033b296
AP_NavEKF3: make logging a core concern
...
Also dissolve some methods only used for logging
2020-11-22 20:47:29 +11:00
Randy Mackay
33b6212cce
AP_NavEKF3: rename _sources to sources
2020-11-20 16:43:44 +09:00
Randy Mackay
6daaa06317
AP_NavEKF3: integrate AP_NavEKF_Source::useVelXYSource
...
also integrate useVelZSource
2020-11-20 16:43:44 +09:00
Randy Mackay
ba9f60abc7
AP_NavEKF3: add getVelInnovationsAndVariancesForSource
2020-11-20 16:43:44 +09:00
Randy Mackay
8931e50166
AP_NavEKF3: integrate Source for alt
2020-11-20 16:43:44 +09:00
Randy Mackay
c21d58ebea
AP_NavEKF3: integrate Source for position
2020-11-20 16:43:44 +09:00
Andrew Tridgell
9b81c5a1e0
AP_NavEKF3: use dal reference in EKF backends
...
saves a bit of flash space
2020-11-10 16:15:45 +11:00
Andrew Tridgell
096aab9388
AP_NavEKF3: 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
Paul Riseborough
16ae75a681
AP_NavEKF3: Consolidate and log tilt error variance calculation
2020-10-26 11:03:50 +11:00
Harshit Kumar Sankhla
edc3709653
AP_NavEKF3: implement sensor affinity using EK3_AFFINITY parameter
...
this allows the EKF core index to be used to select a GPS/baro/mag
instance. This is an alternative to GPS blending that allows EKF lane
switching to be used to select the right combination of GPS and IMU
add logging to XKFS message
2020-08-27 20:20:51 +10:00
Harshit Kumar Sankhla
d7edc946b6
AP_NavEKF3: Relative Error based Lane-Switching
...
Improvments to the lane selection logic, we accumulate error for each
EKF lane relative to the primary for a more robust core selection
2020-08-27 20:20:51 +10:00
Peter Barker
6b701ae3b3
AP_NavEKF3: correct includes
2020-08-07 19:20:07 +10:00
Peter Barker
2e55584417
AP_NavEKF3: correct comments on getFilterFaults and getFilterTimeouts methods
2020-07-07 10:50:41 +10:00