Commit Graph

102 Commits

Author SHA1 Message Date
Andrew Tridgell
601eb12efb AP_NavEKF2: allow for double EKF build 2021-07-22 19:07:36 +09: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
murata
a5b6ce9220 AP_NavEKF2: Change misnomer (NFC) 2021-03-19 17:49:27 +11:00
Peter Barker
3a98d51427 AP_NavEKF2: move posvel fusion health booleans 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
79148498d3 AP_NavEKF2: don't reset EKx_GPS_TYPE when GPS has no vertical velocity
setting the parameter to 1 causes the following issues:

 - the GPS may not have vertical velocity at the time the parameter
   set happens, but may get it later when the GPS is fully configured

 - we may switch between GPS modules which do/don't have vertical
   velocity

 - the user may download parameters after the set(1), and end up with
   incorrect parameters they may later load onto the vehicle,
   permanently disabling use of vertical velocity
2020-12-01 10:33:50 +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
8591b31665 AP_NavEKF2: cleanup unused code 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
Peter Barker
032b7c81e5 AP_NavEKF2: correct includes 2020-08-07 19:20:07 +10:00
Dr.-Ing. Amilcar do Carmo Lucas
280d33d030 AP_NavEKF2: reduce duplicated code. 2020-06-24 21:16:50 +09:00
Paul Riseborough
11a0fef3d0 AP_NavEKF2: Fix indent 2020-06-24 21:16:50 +09:00
Paul Riseborough
fc18ee91df AP_NavEKF2: Add missing fallback to baro for range beacon use case 2020-06-24 21:16:50 +09:00
Paul Riseborough
d118c8fc38 AP_NavEKF2: Fix range aid switching logic
Clarifies use of EK2_RANGE_USE_HGT and EK2_ALT_SOURCE parameters to control range finder use.
Setting EK2_RNG_USE_HGT to a positive number to enable automatic switching between the primary height source (baro or GPS) and range finder should be disabled if any primary height source other than Baro or GPS is selected via the EK2_ALT_SOURCE parameter.
2020-06-24 21:16:50 +09:00
chobits
dee095b4a4 AP_NavEKF2: support VISION_SPEED_ESTIMATE 2020-06-01 17:51:24 +09:00
Randy Mackay
6e93f54cff AP_NavEKF2: handle external nav position resets 2020-04-24 18:16:52 +09:00
Randy Mackay
43c9e13372 AP_NavEKF2: rename HGT_SOURCE_EV to HGT_SOURCE_EXTNAV
presumably EV stands for ExternalVision but we normally refer to this source as External Nav
2020-04-24 18:16:52 +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
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
35dcb0d752 AP_NavEKF2: CorrectExtNavForSensorOffset made const 2020-04-21 10:21:23 +10:00
Randy Mackay
85704e4989 AP_NavEKF2: CorrectGPSForAntennaOffset made const
also reduce scope of call to slightly reduce CPU load
2020-04-21 10:21: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
9f81da1bf9 AP_NavEKF2: minor comment fix 2020-04-13 14:39:53 +09:00
Andrew Tridgell
9030590a88 AP_NavEKF2: fixed use of antenna position when switching GPS primary
when GPS primary switches we were using a position which had not been
corrected for antenna offset. This was used for calculating the reset
for sensor change.

This fixes that (trivial fix) and also fixes a similar issue on
position reset
2020-02-19 18:12:54 +11:00
Peter Barker
369292f7f3 AP_NavEKF2: stop relying on the presence of a RangeFinder 2019-12-11 08:09:01 +11:00
Peter Barker
99689f65f8 AP_NavEKF2: adjust for renaming of RangeFinder files 2019-11-12 07:14:37 +08:00
Paul Riseborough
c26c6fd078 AP_NavEKF2: Add missing vertical position derivative calculation
Use a third order order complementary filter to estimate the rate of change of vertical position output.
2019-10-18 11:15:25 +09:00
Andrew Tridgell
f7e138bddd AP_NavEKF2: use parent class for intermediate static variables
this makes the code faster as well as using less memory when both EK2
and EK3 are enabled
2019-10-01 15:39:03 +10:00
Andrew Tridgell
255981c60c AP_NavEKF2: moved some of the intermediate vars to the stack
this keeps stack frames below 1k, while giving faster access to the
variables and saving more memory
2019-09-24 12:51:54 +10:00
Randy Mackay
94a52b3525 EKF2: RNG_USE_HGT param only used when ALT_SOURCE = rangefinder 2019-09-10 18:44:52 +10:00
Andrew Tridgell
098701ec79 AP_NavEKF2: fixed baro innovation gate when on ground with AIDING_NONE
when on the ground without a position source we would disable the
innovation gate for the barometer. This meant that a single (or small
number of) really bad baro readings would be fused into the EKF,
causing it to destabilise

Fixes #11903
2019-07-30 08:23:21 +10:00
Andrew Tridgell
2427440e13 AP_NavEKF2: origin handling fixes from Francisco 2019-07-11 06:40:55 +10:00
Andrew Tridgell
e8d9a1fae9 AP_NavEKF2: don't allow height datum reset when not on ground 2019-07-07 19:20:32 +10:00
Andrew Tridgell
f5fd38aef2 AP_NavEKF2: set terrainState to zero on height datum reset 2019-07-07 19:20:32 +10:00
Andrew Tridgell
9372073f63 AP_NavEKF2: continuously update gpsGoodToAlign
use it to determine how to handle a height datum reset
2019-07-07 19:20:32 +10:00
Andrew Tridgell
20ebb2500b AP_NavEKF2: ensure that both AMSL and relative alt are correct after a reset
this forces the EKF origin to the GPS alt on a height datum reset if
we have GPS lock. If we don't do this then the reported AMSL alt will
drift over time away from the GPS alt when we reset while on the
ground
2019-07-07 19:20:32 +10:00
Michael du Breuil
f04e47fc17 AP_NavEKF2: Reduce scope of AP_Baro.h 2019-06-27 14:56:21 +10:00
Michael du Breuil
892b687c09 AP_NavEKF2: Fix AP_GPS.h include 2019-06-18 10:02:05 +10:00
Arjun Vinod
78b165e36f AP_NavEKF2: fixed typos 2019-02-26 08:33:39 +11:00
Arjun Vinod
a0e7c37f8c AP_NavEKF2: fixed typos 2019-02-22 10:21:35 +11:00
Tom Pittenger
b32e8a4424 AP_NavEKF2: remove HAL_CPU_CLASS_150 check, 150 is already a minimum requirement 2019-02-17 12:59:52 -08:00
chobits
08b9bf4a89 AP_NavEKF2: fix extNav position noise 2018-10-24 19:14:54 +09:00
Paul Riseborough
c680b931dc AP_NavEKF2: Enable fusion of external nav position data 2018-03-27 20:28:42 +09:00
Peter Barker
5ab89324b2 AP_NavEKF2: use baro singleton 2018-03-08 21:20:05 -08:00
Peter Barker
9c8466dc03 AP_NavEKF2: use GPS singleton 2017-12-27 00:58:02 +00:00
Peter Barker
1e83ef3c44 AP_NavEKF2: use rangefinder backend accessors 2017-08-15 18:30:45 +01:00
priseborough
f2f3067326 AP_NavEKF2: Add interface to control GPS vertical velocity use 2017-08-10 19:49:45 +10:00
priseborough
36e7dfb5f6 AP_NavEKF2: Improve GPS reference height estimator
Fix rounding error bug preventing state from updating after initial convergence.
Decouple GPS reference height from published EKf origin height.
Add bitmask parameter to control update and publishing of GPS reference height.
2017-06-14 12:44:41 +01:00
Jonathan Challinger
c53125f3b5 AP_NavEKF2: apply height innovation floor only when barometer is in use 2017-03-24 14:42:36 -07:00