Roman Bapst
bec1a6831e
added method to get gyro bias
...
Signed-off-by: Roman Bapst <roman@px4.io>
9 years ago
Roman
703fb4e31b
do not return early in velocity reset method otherwise
...
some code will not be executed
9 years ago
Paul Riseborough
f26aca55a1
EKF: Fix bug in quaternion covariance initialisation function
...
The covariances between quaternion and non-quaternion states were not being updated
9 years ago
Paul Riseborough
6a55d908c5
EKF: replace reset event times with event counters
...
Using a 64bit integer was unnecessary given it was only being used to detect a new reset event.
9 years ago
Paul Riseborough
9ec09f5f4e
EKF: update output observer and capture reset event for magnetic heading resets
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
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
ad02818b3d
EKF: Improve height reset for external vision
...
reset to measurement closest in time to fusion time horizon
9 years ago
Paul Riseborough
1b6c5bbafd
EKF: Enable height source to be selected independent of EV aiding
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
Paul Riseborough
94a63ec9d5
EKF: don't interfere with quaternion covariances during tilt alignment
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
Paul Riseborough
1540e937b1
EKF: Improve tilt alignment monitoring
...
Convert quaternion covariances into an angular alignment variance vector and discard the z component so that yaw uncertainty does not affect the result.
9 years ago
Paul Riseborough
81469d6621
EKF: Add position, height and velocity reset for EV aiding
9 years ago
Paul Riseborough
25682dce91
EKF: Prevent badly conditioned covariance calculation when starting or resetting to optical flow
9 years ago
Paul Riseborough
7f5669fb2d
EKF: consolidate covariance corrections
...
Combines the forced symmetry, variance limiting and zeroing of covariances for unwanted states in the one function.
This ensures a consistent correction is applied after every covariance prediction or correction.
9 years ago
Paul Riseborough
da9d894441
EKF: Improvements to covariance reset
9 years ago
Paul Riseborough
fe9f88a8b4
EKF: test new derivation
...
Use direct attitude parameterisation
Discard scale factors
Add accel bias
9 years ago
Roman
0c77ebf6bd
EKF: Reduce likelihood of bad covariance values after height resets
...
The cross terms (covariances) are now reset before the variance variance is set.
The vertical velocity state variance following a reset without GPS has been reduced.
9 years ago
Paul Riseborough
469a7d1711
EKF: rework height reset
...
calculate and save the amount that the vertical states have changed and the time of the change
apply the change delta to the output observer states and buffer
9 years ago
Paul Riseborough
2fa8a11a29
EKF: replace unnecessary memcopy
9 years ago
Paul Riseborough
31bf342fc1
EKF: publish GPS check status
9 years ago
Paul Riseborough
e10093854a
EKF: correct outputs for IMU offset
9 years ago
Paul Riseborough
74078cde94
EKF: reset state variance when performing a height reset
...
Set vertical position and velocity variances using known sensor error characteristics if we have reset the states to the sensor readings.
9 years ago
Paul Riseborough
f4f108d57d
EKF: Reset vertical velocity when performing a height reset
9 years ago
CarlOlsson
f8878d41dc
adopted ekf_helper.cpp
9 years ago
Paul Riseborough
6b2e2dba90
EKF: Add GPS height option and improve height recovery
9 years ago
Paul Riseborough
c58ab3e256
EKF: Enable fallback to baro alt when using range finder for height
9 years ago
Paul Riseborough
370f643f42
EKF: Enable use of range finder for primary height source
9 years ago
Paul Riseborough
e0fcce1463
EKF: Make position and velocity reset publish success
...
Some users of the position and velocity reset functions will need to know if the reset has been successful.
9 years ago
Paul Riseborough
32b03819ef
EKF: Add function to calculate global position validity
9 years ago
Paul Riseborough
270451e17b
EKF: Update height reset to support range finder height use
9 years ago
Paul Riseborough
f7a53d69f2
EKF: Improve height reset function
...
Add a method to reset the vertical velocity to enable in-flight resets
Reset to GPS height if baro height is not available.
9 years ago
Roman Bapst
9192ced7bb
do not reset output attitude state after heading reset to avoid jumps in attitude
9 years ago
Paul Riseborough
cd0cac066a
EKF: Calculate and publish horizontal and vertical position accuracy
...
This calculation takes into account the uncertainty of the origin.
Dead reckoning status is also published
9 years ago
Paul Riseborough
380db7ebef
EKF: Reset angle error covariance after yaw and mag field reset
...
The yaw angle could have changed by a significant amount making the correlations invalid.
Setting angle variances to zero prevents the initial kick in angles due to 3D fusion starting
9 years ago
bugobliterator
263c48d089
EKF: remove dependecies and allow ekf to be built as standalone shared lib
9 years ago
Paul Riseborough
de02aebafd
EKF: Reset covariance matrix when doing a yaw and magnetic field reset
...
The correlation terms in the covariance matrix will be incorrect after a reset, so should be zeroed
9 years ago
Paul Riseborough
83945581ed
EKF: Add function to calculate the magnetic declination to use
9 years ago
Paul Riseborough
6140d4b21f
EKF: Add function to reset yaw and magnetic field states
9 years ago
Roman
ce0ddc0207
-added comments
...
-removed unused print functions
-removed false _imu_time_last variable (correct is _time_last_imu)
9 years ago
Paul Riseborough
9d7340e187
EKF: Fix bugs in position and velocity resets
...
The position reset was not being compensated for velocity and measurement delay
The height was being reset with the position. It has been moved into a separate reset function
The maximum accepted GPS delay of 100msec was inadequate
The states was being incorrectly reset to the GPS position and Baro height on initial alignment.
9 years ago
Paul Riseborough
da1de2cc4d
EKF: Correct for sensor noise and baro offset during alignment
9 years ago
CarlOlsson
1e766c7510
moved fuse function to ekf_helper.cpp
9 years ago
Paul Riseborough
fff2bd50f6
EKF: Fix bugs in position and velocity resets
...
The position reset was not being compensated for velocity and measurement delay
The height was being reset with the position. It has been moved into a separate reset function
The maximum accepted GPS delay of 100msec was inadequate
The states was being incorrectly reset to the GPS position and Baro height on initial alignment.
9 years ago
Paul Riseborough
40e174b81c
EKF: Correct for sensor noise and baro offset during alignment
9 years ago