Commit Graph

84 Commits

Author SHA1 Message Date
Peter Barker 032b7c81e5 AP_NavEKF2: correct includes 2020-08-07 19:20:07 +10:00
Peter Barker 081c0bbfe0 AP_NavEKF2: correct comments on getFilterFaults and getFilterTimeouts methods 2020-07-07 10:50:41 +10:00
Randy Mackay b95bc9076b AP_NavEKF2: fix getLLH when no GPS 2020-05-10 15:35:55 +10:00
Randy Mackay 2919491298 AP_NavEKF2: getLLH fix when no GPS available 2020-04-24 20:29:18 +09:00
Randy Mackay a9cbd5aa29 AP_NavEKF2: getDataEKFGSF and getYawData pass by reference 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
Andrew Tridgell c9755cf9e6 AP_NavEKF2: make mag variance reporting consistent
logged scaled variance should match the value used in MAVLink
EKF_STATUS_REPORT
2020-04-06 17:30:29 +10:00
Peter Hall e0eeb4f863 AP_NavEKF2: add initalized flag and change to uint32_t 2020-02-19 06:45:07 +11:00
Peter Barker 060c851709 AP_NavEKF2: make send_status_report const 2019-12-11 07:54:41 +09:00
Peter Barker 369292f7f3 AP_NavEKF2: stop relying on the presence of a RangeFinder 2019-12-11 08:09:01 +11: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
hoangthien94 fc9ff2b09a AP_NavEKF2: add method to check if ext nav is used for yaw 2019-08-03 08:44:11 +09: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
Michael du Breuil 892b687c09 AP_NavEKF2: Fix AP_GPS.h include 2019-06-18 10:02:05 +10:00
Pierre Kancir 50e99b6e1a AP_NavEKF2: use get_distance_NE instead of location_diff 2019-04-08 08:00:52 -07:00
Paul Riseborough a40208ebd4 AP_NavEKF2: Improve optical flow height estimation
Updated derivation using sequential fusion of Y and X axis data.
2019-04-02 10:51:12 +11:00
Dr.-Ing. Amilcar do Carmo Lucas 79ee52917f AP_NavEKF2: replace location_offset() and get_distance() function calls with Location object member function calls
This allows removing duplicated code
2019-02-28 11:44:09 +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
Peter Barker 9be604e3ce AP_NavEKF2: adjust for location flags being moved out of union 2019-01-16 11:45:29 +11:00
Michael du Breuil 66e9286cf6 AP_NavEKF2: Fix roundoff, and missing offset handling of getLLH 2018-09-21 00:18:49 +01:00
Andrew Tridgell fb0deba3aa AP_NavEKF2: send airspeed variance over mavlink 2018-04-30 15:41:31 +10:00
Paul Riseborough c680b931dc AP_NavEKF2: Enable fusion of external nav position data 2018-03-27 20:28:42 +09:00
Peter Barker 9c8466dc03 AP_NavEKF2: use GPS singleton 2017-12-27 00:58:02 +00:00
Pierre Kancir 171e80d8dc AP_NavEKF2: only report terrain estimator innovations with valid rng value 2017-12-18 22:51:46 +00:00
Michael du Breuil dffa3d3b40 AP_NavEKF2: Fix possible compass nullptr dereference 2017-08-01 15:25:05 +01:00
priseborough 027552ef44 AP_NavEKF2: Fix default behaviour for height origin corrections
Previous default was to apply in-flight height origin changes to local position instead of to reported origin height. This caused problems with copters that took off before getting GPS lock.
2017-07-17 02:22:02 +01:00
priseborough fd25450632 AP_NavEKF2: Ensure reported local height = global height - origin height 2017-06-14 12:44:41 +01: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
Randy Mackay 563be389ee AP_NavEKF2: only use downward facing rangefinder 2017-02-27 15:18:10 +09:00
Michael du Breuil 8b69f1708e NavEKF2: Add optional check for GPS vertical accuracy before aligning the EKF 2017-02-22 11:53:42 -08:00
Randy Mackay 66a9093cd0 AP_NavEKF2: getRangeBeaconDebug returns false on failure to get beacon data 2016-11-30 17:56:51 +09:00
priseborough 0ec8f0932a AP_NavEKF2: Prevent output of NaN's in range beacon debug output
This can happen if this accessor function is called before the EKF states are initialised
2016-11-30 17:56:50 +09:00
priseborough ef03a85cd3 AP_NavEKF2: add range beacon interface and fusion method 2016-11-30 17:56:43 +09:00
priseborough 7d48054e6f AP_NavEKF2: Group GPS innovation tests when compiling error score 2016-11-24 19:58:07 +09:00
priseborough f6021c959d AP_NavEKF2: capture and publish vertical position reset deltas
Calculate the change in vertical position due to a internal EKF state reset or a EKF core switch
2016-11-24 19:57:45 +09:00
priseborough e62863f9a1 AP_NavEKF2: Reduce unnecessary EKF core switching
1) Do not switch to a core until its states have been updated.
2) Distinguish between mandated switches required for health failure and optional switches required due to innovation checks failing.
3) Apply hyseresis to innovation check levels
2016-11-24 19:57:41 +09:00
priseborough 13ca62b1c7 AP_NavEKF2: Correct velocity and position outputs for IMU offset
This can improve position hold performance where it is not practical to have the IMU located at the centroid.
Although this enables the effect of IMU position offsets to be corrected, users will still need to be instructed to place the IMU as close to the vehicle c.g. as practical as correcting for large offsets makes the velocity estimates noisy.
2016-10-27 14:54:43 +11:00
Mathieu OTHACEHE 152edf7189 Global: remove mode line from headers
Using a global .dir-locals.el file is a better alternative than
reincluding the same emacs header in every file of the project.
2016-10-24 09:42:01 -02:00
Jonathan Challinger dac59cb5da AP_NavEKF2: use exact matrix for trim rotation 2016-10-13 10:02:14 +11:00
priseborough 635826c056 AP_NavEKF2: Fix reporting of terrain estimator innovations
Terrain height is relevant whenever optical flow data is present
2016-10-10 14:49:35 +09:00
priseborough b6867e085d AP_NavEKF2: Don't report range finder variance on mavlink if not required 2016-09-21 10:41:21 +09:00
priseborough 230ba2700f AP_NavEKF2: fix documentation errors 2016-07-19 12:16:50 +10:00
priseborough 341d070db8 AP_NavEKF2: Separate filter status update and get functions
The filter status logic calculations were being repeated every time the get function was called.
The logic is now updated once per filter update step and a separate get function added
2016-07-19 12:16:49 +10:00
priseborough b1717649b1 AP_NavEKF2: remove combined NED local position interface 2016-07-19 12:16:49 +10:00
priseborough e374ec634d AP_NavEKF2: Add separate horizontal/vertical local position interfaces 2016-07-19 12:16:49 +10:00
priseborough 280395afa1 AP_NavEKF2: Don't declare ready to do aiding unless gyro bias is learned 2016-07-19 12:16:48 +10:00
priseborough 14bb4f4574 AP_NavEKF2: Publish output observer tracking errors 2016-07-09 15:57:35 +10:00
Paul Riseborough 5c59922574 AP_NavEKF2: Fix bug that could publish bad compass offsets
Magnetometer bias states will subject to larger errors early in flight before flight motion makes the offsets observable and the state variances reduce.
Adds a check on state variances.
Replaces the parameter check with a check of the actual filter fusion method being used.
2016-06-28 14:20:13 +10:00
Paul Riseborough dc6836988c AP_NavEKF2: Improve ground based magnetic anomaly protection for copter
The toilet bowling check during early flight has been removed. This check caused problems where bad compass calibration was the cause of the toilet bowling and resetting to the compass was a bad option. The handling of simultaneous failed mag and velocity innovations is already handled outside the EKF by the failsafe.
A check for yaw errors due to a ground based magnetic anomaly has been introduced.
The logic for in-flight yaw and magnetic field resets has been cleaned up and variable names improved.
2016-06-28 14:20:12 +10:00