503 Commits

Author SHA1 Message Date
Paul Riseborough
79705da7e6 EKF: make output predictor states consistent with position reset 2016-06-01 17:13:00 +10:00
Paul Riseborough
54d90261d5 EKF: make output predictor states consistent with velocity reset 2016-06-01 17:13:00 +10:00
Paul Riseborough
52229da089 EKF: capture optical flow innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
d80e71a499 EKF: capture HAGL innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
8125717bf5 EKF: remove un-used airspeed health class variable
Airspeed rejection now is captured in _sensor_fault_status
2016-06-01 17:13:00 +10:00
Paul Riseborough
388e500180 EKF: remove un-used magnetometer health class variable
replaced by _sensor_health_status
2016-06-01 17:13:00 +10:00
Paul Riseborough
cf489f4248 EKF: capture airspeed innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
e7690bd8f8 EKF: capture magnetometer innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
3fb449295e EKF: capture yaw innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
52f6eea52b EKF: capture position and velocity innovation test failures 2016-06-01 17:13:00 +10:00
Paul Riseborough
aea827aa8a EKF: ensure filter fault status is initialised 2016-06-01 17:13:00 +10:00
Paul Riseborough
106482b078 EKF: add structure to capture innovation test failures and state resets 2016-06-01 17:13:00 +10:00
Paul Riseborough
654093cae1 Merge pull request #155 from PX4/pr-ekf2AlignmentNoiseFilterInit
EKF: Initialise alignment noise filters using valid data
2016-05-28 09:12:15 +10:00
Paul Riseborough
70c40d695d EKF: Initialise alignment noise filters using valid data
Don't initialise the states for the alignment data noise filters until the buffers have been flushed
2016-05-28 09:04:26 +10:00
Paul Riseborough
35bb6cc6e9 Merge pull request #154 from PX4/pr-ekf2AlignmentBufferFlush
EKF: Ensure bad initial data is flushed from buffers before use
2016-05-28 08:41:24 +10:00
Paul Riseborough
c905684c12 EKF: Ensure bad initial data is flushed from buffers before using data to perform alignment 2016-05-28 08:28:57 +10:00
Paul Riseborough
9557f64248 Merge pull request #153 from PX4/pr-ekf2ExternalVision
EKF: external vision bug fixes
2016-05-27 18:57:41 +10:00
Paul Riseborough
ad02818b3d EKF: Improve height reset for external vision
reset to measurement closest in time to fusion time horizon
2016-05-27 14:00:50 +10:00
Paul Riseborough
98c0b74a71 EKF: Initialise height correctly when using external vision data
If EV height selected ensure switch to correct height mode as soon as EV data is received
The 0 height datum is not at the initialisation position, so the height state needs to be reset to the measurement on startup
2016-05-27 13:59:14 +10:00
Paul Riseborough
9f81b8f09e EKF: provide reset protection for external vision height 2016-05-27 13:15:53 +10:00
Paul Riseborough
1b6c5bbafd EKF: Enable height source to be selected independent of EV aiding 2016-05-27 13:14:52 +10:00
Paul Riseborough
00bada8f25 EKF: Clean up logic for horizontal position fusion
Remove reference to optical flow fusion mode
Simplify logic flow for selection of observation noise
Remove unnecessary conditional statement
2016-05-27 11:29:10 +10:00
Paul Riseborough
6f412a73b4 EKF: Use correct height gate when using external vision 2016-05-27 11:24:53 +10:00
Paul Riseborough
e41524ac9d EKF: remove unused variables 2016-05-27 11:21:04 +10:00
Paul Riseborough
53030b9297 Merge pull request #152 from PX4/pr-ekf2FixObsDataHandling
EKF: Fix vulnerability to loss of observations due to high input data rates
2016-05-26 21:44:10 +10:00
Paul Riseborough
7dd123094f EKF: correct documentation 2016-05-26 21:42:56 +10:00
Paul Riseborough
d5b5cb5899 EKF: improvements to observation collection
Remove unnecessary function calls
Remove un-used functions
Apply a consistent maximum safe data rate check for all observation inputs
2016-05-26 13:27:08 +10:00
Paul Riseborough
e2d9e19a5d Merge pull request #148 from PX4/pr-ekf2OutputPredictor
EKF2 provide alternative output velocity prediction
2016-05-24 08:46:33 +10:00
Paul Riseborough
9f0b9909e7 Merge pull request #149 from PX4/pr-ekf2FixUnwantedGpsUse
EKF: prevent unwanted GPS use
2016-05-24 08:45:18 +10:00
Paul Riseborough
5a40aa2c1a EKF: prevent unwanted GPS use 2016-05-24 07:55:09 +10:00
Paul Riseborough
90d65071c1 EKF: Add output predictor processing option
Setting the velocity tracking tine constant to a negative number causes the output predictor to use a different method of correcting the velocity which provides a velocity output that is kinematically consistent with the position output.

This may improve height controller performance under some circumstances
2016-05-23 07:47:10 +10:00
Paul Riseborough
30917430e2 EKF: inline ring buffer functions used repeatedly
These functions get called 30 times each per output prediction cycle
2016-05-23 07:43:59 +10:00
Paul Riseborough
c8c2d6d963 Merge pull request #145 from CarlOlsson/small_fix
Deleted second update of transformation matrix
2016-05-23 07:40:58 +10:00
Carl Olsson
0fafc49a49 fixed typos (#147) 2016-05-22 17:40:43 +02:00
Carl Olsson
dbe2513d48 updated logic of calculation of body field variance (#146) 2016-05-22 17:39:25 +02:00
CarlOlsson
eb70aca2e8 deleted second update of transformation matrix 2016-05-22 16:03:30 +02:00
Paul Riseborough
4c5252269c Merge pull request #142 from PX4/pr-ekf2ImproveHeadingReset
EKF: Improved heading reset
2016-05-21 22:38:26 +10:00
Paul Riseborough
ae5071f668 EKF: Improve heading reset
Improves reset of quaternion covariance matrix after a heading reset by preserving variance in roll and pitch and resetting yaw variance to the measurement variance.
2016-05-21 19:30:15 +10:00
Paul Riseborough
4b279a8836 Merge pull request #144 from waltjohnson/master
Addressed C99 compiler issues of initializing variables in header and…
2016-05-20 07:37:24 +10:00
waltjohnson
a9ca8c294c Generalized isfinite() in similar form as done in ekf.cpp e3b9800cac/EKF/ekf.cpp (L45-L52) 2016-05-19 10:34:16 -06:00
waltjohnson
6eaa00e3f9 isfinite() is not part of the math class, rather the math.h header file. 2016-05-19 10:07:45 -06:00
waltjohnson
7c158aa59b Addressed C99 compiler issues of initializing variables in header and unused included statements. 2016-05-19 09:58:18 -06:00
Paul Riseborough
f5e2dabc2b Create CONTRIBUTING.md 2016-05-19 18:14:33 +10:00
Paul Riseborough
e3b9800cac Merge pull request #138 from pickledgator/evTesting
EV testing
2016-05-19 12:56:41 +10:00
Paul Riseborough
867bc8c601 Merge pull request #139 from PX4/pr-ekf2Alignment
EKF: Improve angular alignment consistency
2016-05-18 21:23:31 +10:00
Paul Riseborough
c1b02eaa91 EKF: Don't use 3-axis magnetometer fusion until the tilt is aligned 2016-05-18 21:06:45 +10:00
Paul Riseborough
aaac867da8 EKF: Adjust tilt alignment threshold 2016-05-18 20:34:12 +10:00
Paul Riseborough
e272d5f003 EKF: Use consistent position noise values during alignment 2016-05-18 20:11:08 +10:00
Paul Riseborough
b9a3712ccb EKF: record yaw alignment event during initialisation to allow heading fusion to start early
This ensures bad yaw gyro biases are compensated for early, rather than waiting for the tilt alignment to fully converge before fusing heading.
2016-05-18 19:25:19 +10:00
Paul Riseborough
94a63ec9d5 EKF: don't interfere with quaternion covariances during tilt alignment 2016-05-18 19:25:19 +10:00