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
dca186c6e8
EKF: Add required declarations for optical flow
9 years ago
Paul Riseborough
5242af84af
EKF: Standardise covariance update and use static arrays for large matrices
9 years ago
Paul Riseborough
d5e47d21db
EKF: miscellaneous comment and format changes
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
mcsauder
6613335937
Added constexpr back from const var type.
9 years ago
mcsauder
a4cecb1704
Match variable initialization order difference with upstream.
9 years ago
mcsauder
6c96f45f08
Remove whitespace differences with upstream for pull request.
9 years ago
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.
9 years ago
mcsauder
437f6ca5fb
Moved initialization to object constructors to allow C99 compiler compatibility.
9 years ago
bugobliterator
263c48d089
EKF: remove dependecies and allow ekf to be built as standalone shared lib
9 years ago
Paul Riseborough
d9bf4e9870
EKF: Enable control mode transitions to be detected
...
Save the previous value of the filter control modes
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
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
Paul Riseborough
47ab5ebcdd
EKF: Make PR comply with project convention for indenting
9 years ago
Paul Riseborough
dbb8e12948
EKF: Add fusion method to constrain declination when unobservable
...
When fusing 3-axis magnetometer data without absolute external aiding leg GPS), the declination is ultimately unobservable and the declination of the field states and the vehicle heading will slowly drift over time. To prevent this we need to fuse in a declination to constraint the NE earth field estimates.
9 years ago
Paul Riseborough
2c8c6efb45
EKF: Eliminate use of power function to square numbers
...
Use of the power function to square a number can be very inefficient depending on processor and compiler. Replace with an inlined function that multiplies the number by itself. This has not been put into the maths library because the use of the sq() function is peculiar to the autocode generated for the EKF and an inlined function was desired.
9 years ago
Roman
b749a7557b
fixed typos
9 years ago
bugobliterator
d79e12dfa1
EKF: fix code style
9 years ago
bugobliterator
c6249a2825
EKF: change estimator base class name to estimation interface
9 years ago
bugobliterator
b062bd2e38
EKF: move estimator specific variables to estimator core
9 years ago
bugobliterator
287f5eb0c2
EKF: move all estimator specific types to common header
9 years ago
bugobliterator
b05e2d825c
EKF: move estimator specific initialisations to estimator core
9 years ago
Paul Riseborough
466a104534
EKF: additional GPS check logic
...
Improve naming of NED origin initialisation status
Add check for GPS solution type
Use GPS checks when regaining GPs in-flight
9 years ago
bugobliterator
001d621eb1
EKF: move imu data processing code to estimator core
9 years ago
bugobliterator
251996d387
ekf: move gps checks to Ekf library from estimator_base
9 years ago
Paul Riseborough
46b0e9654c
Add filter control logic
9 years ago
Paul Riseborough
802129f384
EKF: Add magnetometer fusion error handling
9 years ago
Roman
8d0022ab1e
enable estimator state and innovations data logging
9 years ago
Roman
f8354bb5e9
- do not fake vertical gps measurement as we have baro
...
- formatting
Conflicts:
EKF/ekf.cpp
9 years ago
Roman
5e5d6f432a
added static gps mode and init mag state correctly
9 years ago
Roman Bapst
d233ca3990
added complementary filter for real time state estimation
9 years ago
Roman Bapst
67646a15b0
added full mag fusion
9 years ago
Roman
8de8b0eb76
prediction and vel pos heading fusion working
9 years ago
Roman
cfc39bc2f9
implemented prediction of states and covariance matrix
9 years ago
Roman Bapst
144aa9c461
added base class for data storage
9 years ago
Lorenz Meier
e5743d503c
Initial import
9 years ago