Paul Riseborough
063533afae
EKF: Add method to enable the IMU bias states to be reset externally
7 years ago
Paul Riseborough
79995b2c15
Create total energy control system implementation
...
This is a new, clean and streamlined variant of the mathematical derivation I created a few years ago.
7 years ago
Paul Riseborough
e10ec59058
EKF: Use consistent test for navigation validity reporting
...
This will enable controller to take advantage of non-inertial dead reckoning.
7 years ago
Paul Riseborough
19074fdd9e
EKF: Use consistent time limit for inertial dead reckoning test
7 years ago
Paul Riseborough
55a2dc94df
EKF: handle air data fusion covariance reset consistently
...
Both the sideslip and airspeed fusion should not be resetting covariances for states they do not modify.
7 years ago
Paul Riseborough
0d32128701
EKF: Use dead-reckoning status to determine if air data should modify non-wind states
7 years ago
Paul Riseborough
e4ffe199ed
EKF: fix bug in sideslip fusion activation
7 years ago
Paul Riseborough
59f1c3e19e
EKF: Update dead-reckoning definition
...
Use of air data to navigate should be classified as dead-reckoning because neither ground relative velocity or position is observed directly and errors grow faster.
7 years ago
Paul Riseborough
a2dcd5b9b6
EKF: Consolidate no aiding reset logic
7 years ago
Paul Riseborough
929c5c2b37
EKF: enable gps fusion flag to be false while fusing air data
7 years ago
Paul Riseborough
204a218ee6
EKF: Allow dead-reckoning using air data
7 years ago
ChristophTobler
f5fd90533a
fix gps and flow flag handling
...
gps flag was not turning false if there was flow
only reset states if we were relying on that sensor only
7 years ago
Paul Riseborough
9857fb9eb6
EKF: publish control limits for optical flow navigation
7 years ago
CarlOlsson
2e03084d34
EKF: If aligning yaw for fw with low GPS velocity, use mag
7 years ago
CarlOlsson
c81cdfa1ce
EKF: Fix bug when resetting position and velocities for fw due to something else than bad yaw estimate
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
7 years ago
CarlOlsson
8c83167857
EKF: fixed comment
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
7 years ago
Paul Riseborough
32b795ee10
EKF: Add readme file to EKF documentation directory
7 years ago
Paul Riseborough
8dd4800a2c
EKF: Add preliminary documentation for filter mathematics
7 years ago
Paul Riseborough
dbff89fbcb
EKF: Fix error preventing selection of MAG_FUSE_TYPE_AUTOFW
7 years ago
Paul Riseborough
6f7f05fdc0
EKF: Move MAG_FUSE_TYPE_AUTOFW control to the expected place
7 years ago
Paul Riseborough
e834522f62
EKF: Use fixed wing status flag in MAG_FUSE_TYPE_AUTOFW logic
7 years ago
Paul Riseborough
7b4c957ad4
ekf2: Add new mag fusion mode
...
Adds a mode where mag fusion is only used update the field estimates
7 years ago
Paul Riseborough
4db23b7b2e
EKF: Don't report terrain estimate invalid immediately when HAGL observations fail checks
7 years ago
Paul Riseborough
1119a9b0ac
EKF: Enable optical flow reversion to work if flow data is lost
...
Also improve reporting.
7 years ago
ChristophTobler
cdf6e6cd36
EKF: use delta_time to avoid division by zero
7 years ago
Paul Riseborough
d293c4231d
EKF: Protect against divide by zero caused by invalid optical flow
7 years ago
Paul Riseborough
ab9b8e1964
EKF: Prevent bad optical flow quality causing loss of aiding when on ground
7 years ago
ChristophTobler
b7e589b98a
EKF: only fuse optical flow if terrain is valid
7 years ago
ChristophTobler
81a64c0479
ekf: fix flow direction when on ground
7 years ago
ChristophTobler
6cb99ce8a8
ekf: add function to get in air status
7 years ago
CarlOlsson
8200e4b218
EKF: added get_wind_velocity_var function
...
Signed-off-by: CarlOlsson <carlolsson.co@gmail.com>
7 years ago
CarlOlsson
0a7c3ecbc6
EKF: Parameterize maximum angle for rng fusion
8 years ago
Paul Riseborough
1d3e8edc46
EKF: Fix bug in accumulation of IMU data for flow sensor gyro bias calculation
8 years ago
Paul Riseborough
dd5b8525c3
EKF: Use hamiltonian convention for quaternion product order
8 years ago
Paul Riseborough
b0300b9723
Revert "attitude_fw delete unused and cleanup"
...
This reverts commit 25bd3ac5e6
.
8 years ago
Daniel Agar
25bd3ac5e6
attitude_fw delete unused and cleanup
8 years ago
Daniel Agar
99ba1c3745
EKF trivial code style cleanup
8 years ago
Peter Dürr
305a95aef9
Integrate Python-based tests and benchmark into Travis
...
* Unfortunately, due to the SWIG dependency, we need sudo to install on
Travis (conflicts when adding with debian-sid source prevent using addons)
which means we cannot use the container-based infrastructure anymore.
* Building the Python bindings requires g++5 (at least with -Werr set).
* When building the Python bindings on Travis, the numpy includes are not found
by cmake, so they have to be added separately by running a Python process with
`numpy.get_include()`
* The build script now (somewhat clumsily) depends on the RUN_PYTEST environment
variable. If it is set to anything other than "", it will make the tests and
run tests and benchmarks
8 years ago
Peter Dürr
15c8c24418
Fix time units on plots
...
* Time in plots was of by a factor of 1e3 due to wrong conversion from us.
8 years ago
Peter Dürr
b29067a188
Better handle Python dependencies
...
* Add requirements.txt file with required Python packages
* Read requirements.txt from CMakeLists.txt to check dependencies and alert the
user if necessary.
8 years ago
Peter Dürr
bb5719a0da
Add Python wrapper to ecl and use it to test functionality
...
* Add SWIG interface definition (and external numpy interface) to ecl classes
* Add section in CMakeLists.txt to build Python bindings and execute
Python-based tests
* Write (property-based) tests that show the basic functionality of the Python
bindings and the EKF (using pytest and hypothesis libraries)
* Write minimal benchmark for the EKF update (using benchmark plugin for pytest)
* Add plotting utilities to analyze tests
* Add lint script to keep the Python scripts clean
8 years ago
Peter Dürr
5988900044
Add getters for a few private variables of the EstimatorInterface
...
* For testing it is useful to have access to more internal states
* For the same reason I also promote the const FILTER_UPDATE_PERIOD_MS to
public
8 years ago
Peter Dürr
a2ed0a76f9
Make the destructor of EstimatorInterface virtual
...
* This is a sane choice (and should arguably always be done for classes with
virtual methods to avoid undefined behavior)
* It is required for wrapping the EstimatorInterface with SWIG (without virtual
destructor, deriving from the EstimatorInterface leads to
-Werror=delete-non-virtual-dtor).
8 years ago
Paul Riseborough
35ffd55481
EKF: Fix incorrect use of double precision operation
8 years ago
Paul Riseborough
cc5db74d1b
EKF: Add true airspeed accessor
8 years ago
ChristophTobler
8ecec58292
Check for stuck range finder measurements in terrain estimator
8 years ago
ChristophTobler
7252284628
Add check for stuck range finder measurements
8 years ago
ChristophTobler
41f4b62cdb
fix indentation
8 years ago
Paul Riseborough
596b8220e2
EKF: Output mag sensor isolation warning first time only
8 years ago
Paul Riseborough
ce806768b7
EKF: Improve in-flight mag error detection, recovery and isolation for fixed wing
8 years ago