Daniel Agar
a892ececf8
cmake add ECL_TESTS option only enabled in standalone build
2019-03-12 23:29:30 -04:00
Paul Riseborough
fabd216ca5
EKF: Documentation edits
2019-03-13 08:14:23 +11:00
CarlOlsson
8d6e8ae078
EKF: update get_mag_decl_deg()
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-13 08:14:23 +11:00
CarlOlsson
2b17ced405
EKF: Clean up use of magnetometer declination. Before the innovation was not zero in fuseDeclination()
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-13 08:14:23 +11:00
CarlOlsson
1d91785a8e
EKF: correct quaternion order
2019-03-12 19:07:55 +11:00
CarlOlsson
000aa0de5d
EKF: do not update the newest attitude estimate in initialiseFilter(). Is is now done in alignOutputFilter()
2019-03-12 19:07:55 +11:00
CarlOlsson
96c5c14041
EKF: Change the EKF initialization to
...
1) init tilt
2) init yaw
3) init tilt uncertainty
4) init yaw uncertainty
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
CarlOlsson
ea259d358d
EKF: initialize the newest attitude estimate to a valid quaternion
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
CarlOlsson
6cf512f103
EKF: Also update the newest and oldest quaternion estimate in
...
alignOutputFilter()
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
CarlOlsson
78122b20a6
EKF: fix the rotation direction of the buffered attitude solutions
...
in alignOutputFilter()
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
CarlOlsson
56b6b7a778
EKF: cleanup use of _mag_filt_state
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
CarlOlsson
37339de57c
EKF: remove unused variable
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-03-12 19:07:55 +11:00
Todd Stellanova
6c759e0e9f
Initial unit tests for DataValidator ( #588 )
2019-03-09 14:47:13 -05:00
Nuno Marques
4e0e68e905
Ekf: add more useful methods to interface with the covariances ( #543 )
2019-03-09 11:57:35 -05:00
Daniel Agar
a85d3a43ed
attitude_fw remove unused
2019-03-05 17:26:19 -05:00
Daniel Agar
c66f7f4a09
EKF drop unused timestamp from collect_gps() and pass data by const reference
2019-03-05 17:26:19 -05:00
Freek van Tienen
78b899c72d
Add Paparazzi compatibility ( #580 )
...
This adds support for the paparazzi autopilot to use this library as EKF.
The header order change has to be done in order to have std.h included to get certain defines at the start of the estimator_interface.h.
2019-03-05 12:41:21 -05:00
Daniel Agar
5cd331055f
cmake standalone build pin PX4/Matrix to commit
...
- 6b0777d815
2019-03-05 12:35:37 -05:00
Daniel Agar
1378ec1797
EKF mag_fusion avoid unnecessary double promotion
2019-02-08 08:24:24 -05:00
Carl Olsson
54ab8191e3
EKF: add method to get the terrain variance
2019-02-06 08:49:16 -05:00
Daniel Agar
c5554cae96
EKF tests update SWIG usage and use latest containers
2019-02-03 18:27:00 -05:00
Paul Riseborough
dd58e69549
EKF: Ensure FW yaw alignment method is used on first in-air reset
2019-01-31 09:53:57 -05:00
Paul Riseborough
3accab1ac5
EKF: protect declination fusion from badly conditioned earth field estimates
...
Fusion with large initial magnetometer biases errors can result in the the NE earth field states reducing in magnitude and effectively flipping sign.
EKF: Move declination state limiting into a separate function
EKF: Limit NE mag states after each 3-axis mag fusion
EKF: Fix bug in mag field strength look-up scale factor
2019-01-31 09:53:57 -05:00
Paul Riseborough
7bddbd1cc5
EKF: Update cleaned up autocode fragment with sign error fix and missing LD
2019-01-31 09:53:57 -05:00
Paul Riseborough
fe378fd761
EKF: Prevent unwanted declination fusion when re-starting 3-axis fusion
2019-01-31 09:53:57 -05:00
Paul Riseborough
bd1647a7fb
EKF: Rework use of fuseDeclination()
...
Simplify calling so that it is only called in two ways:
1) Immediately before 3-axis mag fusion if not called since the last earth field covariance reset so that the earth field declination information can be formed.
2) Immediately after 3-axis mag fusion otherwise.
2019-01-31 09:53:57 -05:00
Paul Riseborough
d52f53635b
EKF: Save mag field covariance data before reset
2019-01-31 09:53:57 -05:00
Paul Riseborough
82ce7a83a5
EKF: Save mag field covariance information on startup
2019-01-31 09:53:57 -05:00
Paul Riseborough
708c79eb8f
EKF: Ensure mag field state covariance data is always available for re-use
...
Prevents use of _saved_mag_ef_covmat and _saved_mag_bf_variance before being initialised or when stale.
2019-01-31 09:53:57 -05:00
Paul Riseborough
8839e4e1f4
EKF: Don't discard declination certainty information when resuming 3-axis fusion.
...
In the case where the EKF is switching between 3-axis and heading fusion, off-diagonal elements containing the correlation between N,E components of the earth field were being lost on each switch event. These elements contained information about the declination uncertainty and should be preserved.
2019-01-31 09:53:57 -05:00
Paul Riseborough
25148e1b45
EKF: Prevent rapid changes in declination estimate after a reset
...
Ensures that each time the earth field covariance and variance data is reset, that the off-diagonal elements containing earth field declination angle certainty is restored.
2019-01-31 09:53:57 -05:00
CarlOlsson
6e7c119b31
EKF: limit yaw variance increase to 0.01 rad^2 to prevent a badly conditioned covariance matrix
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-01-31 09:53:57 -05:00
CarlOlsson
0896f7b9bd
EKF: Also fill in lower part of covariance matrix in increaseQuatYawErrVariance()
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-01-31 09:53:57 -05:00
Paul Riseborough
4b3140e5f7
EKF: Fix rebase error
2019-01-31 09:53:57 -05:00
Paul Riseborough
911d4d8f49
EKF: Fix sign error in increaseQuatYawErrVariance function
2019-01-31 09:53:57 -05:00
Paul Riseborough
a0b9cb002e
EKF: Use consistent method for recording completion of in-flight yaw alignment
2019-01-31 09:53:57 -05:00
Paul Riseborough
ef5a87c1d4
EKF: Rework quaternion yaw reset.
...
Use a new method that preserves the roll and pitch information and adds the uncertainty for yaw only.
Ensure that correlation information to non-quaternion states is removed when a reset occurs to prevent fusion of subsequent observations (e.g. GPS) causing incorrect yaw.
2019-01-31 09:53:57 -05:00
Paul Riseborough
fc2a089823
EKF: Add function to un-correlate quaternion states
...
This is necessary after a quaternion reset to prevent incorrect attitude corrections with subsequent observation fusions.
2019-01-31 09:53:57 -05:00
Paul Riseborough
bce1b96d17
EKF: Add function enabling yaw variance to be increased
2019-01-31 09:53:57 -05:00
Paul Riseborough
bf1f3a224e
EKF: Derive equations enabling yaw variance to be increased
2019-01-31 09:53:57 -05:00
Daniel Agar
81eabc1903
Jenkins update all containers to latest tag 2019-01-28
2019-01-31 08:06:00 +11:00
Daniel Agar
a5e6191ba7
EKF add clarity brackets to avoid potential confusion
...
- fixes https://github.com/PX4/ecl/issues/555
2019-01-30 09:15:53 -05:00
Anna Dai
721f5e61a5
increase optical flow buffer to imu buffer length
2019-01-17 10:23:15 +11:00
Anna Dai
44200e9649
add GPS drop out case to GPS fusion logic
...
EKF waits 10s after GPS signal is lost before setting GPS control status flag to false. As the position information given by the alternative position sources drifts from the last GPS position, the controller over corrects.
With this update, the time horizon until GPS control flag set to false is reduced and only alternative position source is used for estimation.
tested with optical flow as position souce
log from as is https://review.px4.io/plot_app?log=d624af5e-dde4-40ab-ba5b-a693a49f5a36
log with update https://review.px4.io/plot_app?log=13ed6dc3-22dd-43f8-b898-4add41d60439
2019-01-17 10:23:15 +11:00
CarlOlsson
8a813c57ec
EKF: fix comment typo
2019-01-14 09:57:44 +11:00
CarlOlsson
472f2286b7
EKF: initialize covariances before we reset the heading in order to preserve the yaw uncertainty
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-01-14 09:57:44 +11:00
CarlOlsson
490888285d
EKF: Remove flag prefix
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-01-13 23:48:46 +01:00
CarlOlsson
d223680197
EKF: add flt_mag_align_complete to control_status flags
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
2019-01-13 23:48:46 +01:00
Daniel Agar
b920910483
replace <cfloat> with <float.h>
...
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 12:09:05 -05:00
Paul Riseborough
c032126745
EKF: Fix bug causing incorrect yaw variance value to be used
...
This bug causes the variance of the Z axis rotation vector uncertainty to not be reset to the correct value.
2019-01-04 11:01:06 +01:00