Paul Riseborough
2b0d5c28f0
EKF: capture full quaternion change for reset events
9 years ago
Paul Riseborough
b2e432e211
EKF: publish position and velocity reset data
9 years ago
Paul Riseborough
733862f649
EKF: move the reset status struct to the Ekf class
...
This protects it from being modified externally
9 years ago
Paul Riseborough
aca0336392
EKF: update vertical position and velocity reset capture
...
Use reset event struct members instead of separate variables
9 years ago
Paul Riseborough
0605c88ecc
EKF: capture horizontal position reset events
9 years ago
Paul Riseborough
e3a1b4a3b3
EKF: capture velocity reset events
9 years ago
Paul Riseborough
4237269fab
EKF: add struct to capture state reset events
9 years ago
Paul Riseborough
65da9173b9
EKF: capture innovation checks and reset events in separate variables
...
rename the innovation check status class variable and remove the reset flags from it.
9 years ago
Paul Riseborough
79705da7e6
EKF: make output predictor states consistent with position reset
9 years ago
Paul Riseborough
54d90261d5
EKF: make output predictor states consistent with velocity reset
9 years ago
Paul Riseborough
52229da089
EKF: capture optical flow innovation test failures
9 years ago
Paul Riseborough
d80e71a499
EKF: capture HAGL innovation test failures
9 years ago
Paul Riseborough
8125717bf5
EKF: remove un-used airspeed health class variable
...
Airspeed rejection now is captured in _sensor_fault_status
9 years ago
Paul Riseborough
388e500180
EKF: remove un-used magnetometer health class variable
...
replaced by _sensor_health_status
9 years ago
Paul Riseborough
cf489f4248
EKF: capture airspeed innovation test failures
9 years ago
Paul Riseborough
e7690bd8f8
EKF: capture magnetometer innovation test failures
9 years ago
Paul Riseborough
3fb449295e
EKF: capture yaw innovation test failures
9 years ago
Paul Riseborough
52f6eea52b
EKF: capture position and velocity innovation test failures
9 years ago
Paul Riseborough
aea827aa8a
EKF: ensure filter fault status is initialised
9 years ago
Paul Riseborough
106482b078
EKF: add structure to capture innovation test failures and state resets
9 years ago
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
9 years ago
Paul Riseborough
c905684c12
EKF: Ensure bad initial data is flushed from buffers before using data to perform alignment
9 years ago
Paul Riseborough
ad02818b3d
EKF: Improve height reset for external vision
...
reset to measurement closest in time to fusion time horizon
9 years ago
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
9 years ago
Paul Riseborough
9f81b8f09e
EKF: provide reset protection for external vision height
9 years ago
Paul Riseborough
1b6c5bbafd
EKF: Enable height source to be selected independent of EV aiding
9 years ago
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
9 years ago
Paul Riseborough
6f412a73b4
EKF: Use correct height gate when using external vision
9 years ago
Paul Riseborough
e41524ac9d
EKF: remove unused variables
9 years ago
Paul Riseborough
7dd123094f
EKF: correct documentation
9 years ago
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
9 years ago
Paul Riseborough
5a40aa2c1a
EKF: prevent unwanted GPS use
9 years ago
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
9 years ago
Paul Riseborough
30917430e2
EKF: inline ring buffer functions used repeatedly
...
These functions get called 30 times each per output prediction cycle
9 years ago
Carl Olsson
0fafc49a49
fixed typos ( #147 )
9 years ago
Carl Olsson
dbe2513d48
updated logic of calculation of body field variance ( #146 )
9 years ago
CarlOlsson
eb70aca2e8
deleted second update of transformation matrix
9 years ago
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.
9 years ago
waltjohnson
a9ca8c294c
Generalized isfinite() in similar form as done in ekf.cpp e3b9800cac/EKF/ekf.cpp (L45-L52)
9 years ago
waltjohnson
6eaa00e3f9
isfinite() is not part of the math class, rather the math.h header file.
9 years ago
waltjohnson
7c158aa59b
Addressed C99 compiler issues of initializing variables in header and unused included statements.
9 years ago
Paul Riseborough
c1b02eaa91
EKF: Don't use 3-axis magnetometer fusion until the tilt is aligned
9 years ago
Paul Riseborough
aaac867da8
EKF: Adjust tilt alignment threshold
9 years ago
Paul Riseborough
e272d5f003
EKF: Use consistent position noise values during alignment
9 years ago
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.
9 years ago
Paul Riseborough
94a63ec9d5
EKF: don't interfere with quaternion covariances during tilt alignment
9 years ago
Paul Riseborough
22fba0fc6e
EKF: don't initialise filter without EV data if we are relying on it
9 years ago
Nic
1b16f3575a
added ev_pos flag check to valid_lpos, disable fake gps when ev_pos is valid
9 years ago
Paul Riseborough
e4b2e9c93d
EKF: Improve yaw alignment
...
Uses best conditioned of 321 or 312 Euler sequence to calculate initial yaw angle.
Allows alignment of yaw angle using external vision data
9 years ago
Paul Riseborough
57b2a256f7
EKF: Improve initialisation of quaternion covariances
...
Convert uncertainty in initial rotate vector into quaternion covariances using symbolic toolbox derived expressions.
Enable setting of initial angle uncertainty via a parameter
9 years ago