Paul Riseborough
240ea92947
AP_NavEKF: Re-center gyro bias limits on arming
...
Allows the gyro bias to vary by up to +-10 deg/second before and after arming.
2015-10-20 15:21:39 +11:00
Paul Riseborough
8515dda727
AP_NavEKF: Fix bug in vertical position derivative calculation
2015-10-20 15:21:39 +11:00
Paul Riseborough
6b3e114cd6
AP_NavEKF: Enable EKF1 to be disabled to reduce frame over-runs
2015-10-20 15:21:39 +11:00
Paul Riseborough
840f307d58
AP_NavEKF: Make EKF2 PosDownDerivative interface follow coding conventions
...
Updates arising from peer review.
2015-10-20 15:21:37 +11:00
Paul Riseborough
dab658f6ed
AP_NavEKF: Add methods to output and calculate vertical position derivative
2015-10-20 15:21:36 +11:00
Andrew Tridgell
f5b5a3b0f8
AP_NavEKF: added EKF_DISABLE_INTERRUPTS
...
this helps with performance tuning
2015-10-20 14:37:41 +11:00
Andrew Tridgell
10fddf4c7e
AP_NavEKF: enable optimisation level 3 for the EKF
2015-10-20 14:36:56 +11:00
Andrew Tridgell
6f36267a66
AP_NavEKF: fixed EKF error message during 10 second warmup
2015-10-16 14:58:46 +11:00
Gustavo Jose de Sousa
afccf615d5
AP_NavEKF: use compass get_{field,offsets}() functions
...
Both functions are equivalent, so we're going to simply use
get_{field,offsets}() instead of get_{field,offsets}_milligauss().
2015-10-15 19:56:03 +09:00
Paul Riseborough
3479a0e209
AP_NavEKF: Prevent blocking of synthetic position fusion
...
Fixes a potential error where changes to timing and arrival rate of magnetometer and baro data could block the fusion of synthetic position and velocity measurements, allowing unrestrained tilt errors during operation without GPS or optical flow.
Fusion of synthetic position or velocity measurements is now timed to coincide with fusion of barometer observations.
If a new barometer observation has not arrived after 200 msec then the synthetic position or velocity is fused anyway so that fusion of synthetic position or velocity observations cannot occur any slower than 5 Hz
2015-10-13 14:05:36 +09:00
Paul Riseborough
a895b16fa6
AP_NavEKF: Prevent GPS glitch activating EKF failsafe
2015-10-12 16:29:21 +09:00
Paul Riseborough
f451a81ef9
AP_NavEKF: Add missing GPs check report
2015-10-10 21:22:49 +09:00
Paul Riseborough
a3a1dabb94
AP_NavEKF: Update GPS check description and default setting
...
Previous check default only checked the number of satellites and horizontal position accuracy.
Updated default value also checks HDoP and speed accuracy.
2015-10-10 21:21:25 +09:00
Paul Riseborough
ef5049862a
AP_NavEKF: Add fix status to GPS check report message
2015-10-10 14:49:05 +09:00
Paul Riseborough
5177746c00
AP_NavEKF: Add reporting of GPS check status
2015-10-10 14:49:01 +09:00
Paul Riseborough
2b0434f089
AP_NavEKF: Improved detection of GPS glitch behaviour
2015-10-08 15:09:45 +09:00
Paul Riseborough
d48d4ac950
AP_NavEKF: Add GPS glitching monitor to EKF status report
2015-10-08 15:09:43 +09:00
Paul Riseborough
8a9d9c04c5
AP_NavEKF: Add public function to declare GPS glitch
2015-10-08 15:09:40 +09:00
Paul Riseborough
21e4910149
AP_NavEKF: Allow user to select preflight GPS checks
2015-10-08 15:09:37 +09:00
Paul Riseborough
cdae84aec1
AP_NavEKF: Additional pre-arm GPS quality checks
2015-10-08 15:09:34 +09:00
Paul Riseborough
8a66c9c2ed
AP_NavEKF: Critical Bugfix
2015-10-08 10:54:34 +09:00
Randy Mackay
b5c49e0792
AP_NavEKF: minor comment fix
...
No functional change
2015-09-24 16:57:36 +09:00
Jonathan Challinger
51fb13a329
AP_NavEKF: fix getLastYawResetAngle to return yaw reset system time
2015-09-24 16:57:33 +09:00
Paul Riseborough
02408861a1
AP_NavEKF: Remove unused function
2015-09-24 12:58:43 +10:00
Tom Pittenger
e2fde36ec6
AP_NavEKF: index out of range due to incorrect assignment
2015-09-22 11:41:51 +09:00
Paul Riseborough
5c32bb8858
AP_NavEKF: Add pre-flight check for gyro quality
2015-09-21 17:06:31 +09:00
Paul Riseborough
8cfde42e15
AP_NavEKF: Ensure bad mag data cannot cause the heading to reset too often
2015-09-16 15:13:37 +09:00
Paul Riseborough
930f730612
AP_NavEKF: Reset mag and heading states to try and pass pre-flight checks
2015-09-16 15:13:36 +09:00
Staroselskii Georgii
b5b6d767bd
AP_NavEKF: make EKF use milligauss
2015-09-09 10:38:16 +10:00
Andrew Tridgell
0ca534bfab
AP_NavEKF: only call calcGpsGoodToAlign if we need to
...
avoid calling it once we have an origin. This avoids some calculations
and string operations
2015-09-08 16:07:33 +10:00
Andrew Tridgell
c10ce3ffbd
AP_NavEKF: added prearm_failure_reason()
2015-09-08 16:07:33 +10:00
Paul Riseborough
21f873662c
AP_NavEKF: Prevent false triggering of optical flow takeoff detection
...
Now that we have a pre-arm check in place to detect bad lidar, the motion check is unnecessary and can false trigger for copters with flexible undercarriages or on uneven ground.
2015-08-27 20:57:38 +09:00
Randy Mackay
ec2bc5e41d
NavEKF: use maxf when retrieving vibration levels
...
This reduces the performance hit that was caused by multiple calls to get_vibration_levels
2015-08-19 16:44:36 +09:00
Randy Mackay
629a5fd714
NavEKF: IMUSwitchState enum
2015-08-19 16:44:31 +09:00
Randy Mackay
c179ed5253
NavEKF: IMU ratio set to primary accel when neither IMU is used
...
This forces the EKF IMU ratio to indicate which IMU is used except that it will be "0" in the unlikely case that the third IMU is used
2015-08-19 16:44:28 +09:00
Paul Riseborough
559cc29635
AP_NavEKF: Add hysteresis to IMU switching logic
2015-08-19 16:44:26 +09:00
Paul Riseborough
12e884ba6b
AP_NavEKF: Modify method used to check for vibration errors
...
This method checks for consistency between accelerometer readings and switches to the unit with the lowest vibration of the difference exceeds 0.3g
The threshold of 1.7 m/s/s corresponds to a maximum tilt error of 10 deg assuming one IMU is good, one is bad and the EKF is using the bad IMU.
2015-08-19 16:44:24 +09:00
Randy Mackay
0b981d38e8
NavEKF: incorporate use_gyro and use_accel
2015-08-19 16:44:17 +09:00
Randy Mackay
8b17d32994
NavEKF: check baro health before consuming
2015-08-12 16:32:48 -07:00
Gustavo Jose de Sousa
f7fd9e3d99
AP_NavEKF: standardize inclusion of libaries headers
...
This commit changes the way libraries headers are included in source files:
- If the header is in the same directory the source belongs to, so the
notation '#include ""' is used with the path relative to the directory
containing the source.
- If the header is outside the directory containing the source, then we use
the notation '#include <>' with the path relative to libraries folder.
Some of the advantages of such approach:
- Only one search path for libraries headers.
- OSs like Windows may have a better lookup time.
2015-08-11 16:38:20 +10:00
Randy Mackay
0acfcbfa81
NavEKF: use primary compass instead of first instance
...
Thanks very much to staroselskii for finding this bug
2015-07-17 10:02:42 +09:00
Paul Riseborough
610595bfb9
AP_NavEKF: Prevent position drift between arming and takeoff when using OF
2015-07-13 10:54:36 +09:00
Paul Riseborough
8b4b0b9576
AP_NavEKF: Add accelerometer clip monitoring and isolation
...
Isolates an accelerometer that is clipping and attempts to use the one that is clipping less.
2015-07-12 16:49:19 +09:00
Paul Riseborough
4fb7beba4b
AP_NAvEKF: Prevent failure due to magnetometer fusion numerical errors
...
If a badly conditioned covariance matrix causes negative innovation variances, then the filter will diverge. The previous approach of increasing process noise was not effective in some cases, so a hard reset of the covariance matrix has been adopted to guarantee recovery.
This fixes a numerical error observed using the replay on flight log which had significant periods of compass rejection.
2015-07-02 18:07:22 +10:00
Andrew Tridgell
686b1137fa
AP_NavEKF: added vehicle specific initial gyro bias uncertainty
2015-06-30 16:16:26 +10:00
Randy Mackay
9f17fc17ab
NavEKF: update parameter descriptions
2015-06-24 16:25:14 +09:00
Paul Riseborough
87e6a24154
AP_NavEKF: Add public method to reset EKF height datum and baro alt
2015-06-24 16:25:11 +09:00
Paul Riseborough
e3ccb74e12
AP_NavEKF: Publish amount of in-flight yaw angle reset
2015-06-24 11:49:29 +09:00
Paul Riseborough
6ba8cd05ff
AP_NavEKF: Fix bug preventing GPS vertical velocity being used
...
This fixes a bug that prevents GPS velocity being used permanently if there is a temporary unavailability
2015-06-18 09:01:21 +10:00
Andrew Tridgell
c9988d8b37
AP_NavEKF: rely on delta_velocity and delta_angles always being available
2015-06-17 13:10:26 +10:00