Paul Riseborough
5b5bddebea
EKF: Always reset yaw and mag field states on entry into 3-axis mag fusion mode
2016-02-25 08:16:42 +11:00
Paul Riseborough
2d09a5f3ac
EKF: Don't reset yaw and mag field states when not necessary
2016-02-25 08:16:42 +11:00
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
2016-02-25 08:16:42 +11:00
Paul Riseborough
e938475acc
Merge pull request #59 from PX4/pr-ImprovedStartup
...
Improvements to EKF startup - partially replaces PR#57
2016-02-24 18:27:12 +11:00
Paul Riseborough
0ad5329caf
EKF: Update comments in heading fusion to clarify calculation of magnetic heading
2016-02-24 12:06:11 +11:00
Paul Riseborough
36affe3cd8
EKF: Fix bug causing incorrect initial roll when inverted
2016-02-24 11:56:12 +11:00
Paul Riseborough
016695fc3e
EKF: Reduce startup transients
...
Update initial state variance values
2016-02-24 11:48:42 +11:00
Siddharth Bharat Purohit
9c7a3f366c
Merge pull request #54 from mcsauder/master
...
Address C99 compatibility issues by relocating variable initialization. - Replaces PR#50
2016-02-23 15:53:04 -08:00
mcsauder
6613335937
Added constexpr back from const var type.
2016-02-23 16:15:52 -07:00
mcsauder
342010c113
Update c style array initialization to attempt to pass Travic CI build tests.
2016-02-23 15:52:02 -07:00
mcsauder
48e80e9e3e
Correct C style array initialization.
2016-02-23 15:16:40 -07:00
mcsauder
f9f00fa52b
Remove unnecessary include.
2016-02-23 14:00:39 -07:00
mcsauder
ccb5736353
Spaces to tab.
2016-02-23 19:58:30 -07:00
mcsauder
a4cecb1704
Match variable initialization order difference with upstream.
2016-02-23 19:57:27 -07:00
mcsauder
79d07c831f
Convert spaces to tabs to match upstream.
2016-02-23 19:53:55 -07:00
mcsauder
6c96f45f08
Remove whitespace differences with upstream for pull request.
2016-02-23 19:49:27 -07:00
mcsauder
fad1c87631
Merge upstream and resolve merge conflicts.
2016-02-23 19:29:30 -07:00
Siddharth Bharat Purohit
237ecfef1a
Add travis build check badge
2016-02-22 23:49:58 -08:00
Roman Bapst
8eb63a150d
Merge pull request #53 from bugobliterator/pr-sharedlib
...
Shared Library build
2016-02-23 08:30:46 +01:00
Paul Riseborough
35865048a2
Merge pull request #55 from PX4/pr-FixYawFusionBug
...
Fix bug in heading fusion and add new method for ground/indoor use
2016-02-21 09:41:18 +11:00
Paul Riseborough
70a3b91217
EKF: Update magnetometer fusion derivations
2016-02-20 20:09:15 +11:00
Paul Riseborough
a711632017
EKF: Add method to fuse horizontal magnetometer data
...
This method is more suitable than a raw heading measurement because it works across a full range of pitch angles.
It has been made the default for ground operation.
2016-02-20 19:45:32 +11:00
mcsauder
4ce4724105
Added variable initializations back into EstimatorInterface() constructor to resolve a runtime error that occurs with uninitialized variables.
2016-02-19 23:57:06 -07:00
Paul Riseborough
6df6ac0023
EKF: Fix sign error in heading innovation calculation and clean up
2016-02-20 11:54:53 +11:00
Paul Riseborough
90e1bd3e36
EKF: wrap compass yaw estimate
2016-02-19 16:53:55 +11:00
Paul Riseborough
7d6226eb45
EKF: Improve efficiency of yaw angle fusion
...
Use direct calculation of Kaman gains with optimised algebra
2016-02-19 16:25:01 +11:00
Paul Riseborough
7f121e81e4
EKF: Update yaw innovation calculation to match revised derivation
...
The new derivation does not use magnetic field measurements in the observation model and instead fuses in a heading measurement directly.
2016-02-19 16:18:07 +11:00
mcsauder
72243c4a84
Resolve tab/space differences with upstream master.
2016-02-18 03:28:40 -07:00
mcsauder
437f6ca5fb
Moved initialization to object constructors to allow C99 compiler compatibility.
2016-02-18 03:21:04 -07:00
Lorenz Meier
2b2c490382
Validator: Add function for 1D use of the 3D validator
2016-02-18 09:31:36 +01:00
bugobliterator
ba7f0fc9ff
EKF: add licensing information for mathlib header and src
2016-02-17 20:02:08 -08:00
bugobliterator
80632cc12c
EKF: add comments and licensing information to builder files
2016-02-17 19:55:47 -08:00
bugobliterator
e65c348905
EKF: add travis build
2016-02-17 18:51:40 -08:00
bugobliterator
a40eb7cf37
EKF: add check for existence of matrix submodule
2016-02-17 17:51:09 -08:00
Siddharth Bharat Purohit
64a7b14171
update readme to include steps to build EKF shared object
2016-02-17 17:46:48 -08:00
bugobliterator
cba5271785
add matrix submodule
2016-02-17 17:38:21 -08:00
bugobliterator
2f05f778de
ignore build directory
2016-02-17 17:34:28 -08:00
bugobliterator
263c48d089
EKF: remove dependecies and allow ekf to be built as standalone shared lib
2016-02-17 17:33:18 -08:00
Paul Riseborough
96c0e18acb
Merge pull request #49 from PX4/pr-fixMagCovariance
...
EKF: Fix magnetometer fusion and covariance handling
2016-02-18 10:22:36 +11:00
Roman Bapst
678d6f45cc
Merge pull request #52 from bugobliterator/pr-airspeed-sample-fix
...
EKF: fix time of sample receive setting
2016-02-17 22:34:30 +01:00
bugobliterator
2096e24c06
EKF: fix time of sample receive setting
2016-02-17 13:29:12 -08:00
Paul Riseborough
a679cdf1fb
EKF: Change parameter default to not fuse declination when aiding
...
Ground and flight testing has shown declination drift to not be a problem with current tuning and realistic vehicle motion.
2016-02-17 17:22:02 +11:00
Paul Riseborough
abf9476853
EKF: miscellaneous formatting and typo updates
2016-02-16 11:08:30 +11:00
Paul Riseborough
ffe1d30864
EKF: Set covariances to zero for un-used states
2016-02-16 11:08:30 +11:00
Paul Riseborough
294aca8609
EKF: Improve variance limiting for stationary states
...
Turn off the process noise if they grow too large and use the hard variance limit as a backup. This is numerically more stable than relying on a hard variance limit which does not deal with the covariances.
2016-02-16 11:08:30 +11:00
Paul Riseborough
1d40507af8
EKF: Set Kaman gains to zero for un-used states
...
This is a defensive programming technique. In theory this should not be necessary if the corresponding covariance entries are zero.
2016-02-16 11:08:30 +11:00
Paul Riseborough
69b8982043
EKF: Initialise variances to zero for un-used states
...
Setting these variances to zero makes it less likely that these states will be modified by fusion processing.
2016-02-16 11:08:30 +11:00
Paul Riseborough
d9bf4e9870
EKF: Enable control mode transitions to be detected
...
Save the previous value of the filter control modes
2016-02-16 11:08:30 +11:00
Paul Riseborough
402206a305
EKF: Fix critical bug in fusion of yaw and declination observations
...
This bug was in the derivation and resulted from use of a tan instead of an atan operator. The derivations have been reworked and the updated auto-code has been imported as part of this patch.
2016-02-16 11:08:30 +11:00
Paul Riseborough
d8afca5e7a
EKF derivations: Correct error in direct yaw and declination angle fusion
...
The atan function is now being used correctly instead of the tan function. This fixes problems with large heading errors or declination values.
The simple heading fusion has been decoupled from the magnetic field measurements. This enables external yaw measurements to be used in the future.
2016-02-16 11:08:30 +11:00