Paul Riseborough
bba3f70a0e
EKF: reduce prediction time step from 12 to 8 sec
...
Reduces susceptibility to incorrect estimation of acceleration bias during sustained yaw rate.
Requires an increase in RAM allocation of 837 Bytes to allow for the longer IMU and output predictor buffers that can be created.
7 years ago
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
929c5c2b37
EKF: enable gps fusion flag to be false while fusing air data
7 years ago
Paul Riseborough
9857fb9eb6
EKF: publish control limits for optical flow navigation
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
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
cc5db74d1b
EKF: Add true airspeed accessor
8 years ago
Paul Riseborough
e1fe5b2229
Revert "Revert "Split get_terrain_vert_pos() into valid and get_vpos""
8 years ago
Paul Riseborough
c887b02f21
Revert "Split get_terrain_vert_pos() into valid and get_vpos"
8 years ago
ChristophTobler
eae0522dc2
split into get_terrain_valid and get_terrain_vert_pos
8 years ago
Paul Riseborough
d446f66105
EKF: Add a fixed wing mode with setter function
8 years ago
Daniel Agar
c44488fdb8
EKF matrix typedef cleanup
8 years ago
Paul Riseborough
fed4a9bc5a
EKF: add vertical position derivative output
...
Add calculation of a vertical position derivative to the output predictor. This will have degraded tracking relative to the EKF states, but the velocity will be closer to the first derivative of the position and reduce the effect inertial prediction errors on control loops that are operating in a pure velocity feedback mode.
Move calculation of IMU offset angular rate correction out of velocity accessor and into output predictor.
Provide separate accessor for vertical position derivative.
8 years ago
CarlOlsson
871ebb251b
EKF: Changed get_control_mode to coyp 32 bits
8 years ago
CarlOlsson
be16406b35
EKF: Add feature to use the mag to only update the mag states
8 years ago
Daniel Agar
3919d60f66
ekf2 initialization fixes
8 years ago
Paul Riseborough
c607941e2f
EKF: Allow external setting of air density for multi-rotor drag fusion
8 years ago
Paul Riseborough
3758c5a09d
EKF: down-sample drag specific force data
8 years ago
Paul Riseborough
465b145929
EKF: Add multi-rotor drag model for wind estimation
8 years ago
Paul Riseborough
0d7e7e9d81
EKF: Don't use EKF origin in GPS drift check calculation
...
The GPS drift calculations need to be able to run independently of the EKF origin.
8 years ago
Paul Riseborough
040639837e
EKF: Use common timeout test for reporting deadreckoning
...
Use a parameter to set the time-out threshold
Use a class variable for the time-out flag
Clean up comments
8 years ago
Paul Riseborough
5fb24c3032
EKF: Reduce EKF prediction delta time jitter
...
Make the target EKF rate an integer multiple of the IMU rate. This slightly increases the average prediction time step for the EKF from just over 10msec to 12msec, but the variation reduces significantly which makes filter tuning more deterministic.
Improve the algorithm used to adjust the collection time criteria to reduce jitter in the correction.
8 years ago
Paul Riseborough
8070691aa4
EKF: Add accessor function for velocity accuracy
8 years ago
Paul Riseborough
d6abf3f2e4
EKF: add accessor function for local position accuracy
8 years ago
Paul Riseborough
b7d0b3c4d0
EKF: Improve naming of WGS-84 accuracy accessor function
8 years ago
Paul Riseborough
d22599b440
EKF: Add reporting of inertial dead-reckoning status
8 years ago
Daniel Agar
2750961be6
c++11 initialization cleanup ( #237 )
8 years ago
Lorenz Meier
453bde73f8
ECL: Simplify / correct estimator interface
8 years ago
Daniel Agar
d668a2d798
clang-tidy performance-unnecessary-value-param
8 years ago
Paul Riseborough
934890c2df
EKF: Add validity flag to ekf origin reporting
...
Flag is false until the origin has been initialised
8 years ago
Paul Riseborough
5ad329b641
EKF: Fix variable names to match convention
8 years ago
Paul Riseborough
d5b398ddb1
EKF: Minimise data buffer lengths
...
Saves RAM and reduces output predictor errors by using the smallest data buffer length that meets time delay and update rate requirements.
8 years ago
CarlOlsson
12aeaafbd3
adopted estimator_interface.h
8 years ago
Paul Riseborough
b10b0184c5
EKF: Add IMU vibration calculation and reporting
...
Add calculation and reporting of IMU delta angle and velocity coning and high frequency vibration
8 years ago
Paul Riseborough
352750e5d1
EKF: publish ekf solution status summary data
8 years ago
Paul Riseborough
744b79c1b2
EKF: Publish innovation test ratios
8 years ago
Paul Riseborough
65762e5998
EKF: publish output predictor tracking errors
8 years ago
Youssef Demitri
168d9add76
added getter function for wind states
9 years ago
Roman Bapst
bec1a6831e
added method to get gyro bias
...
Signed-off-by: Roman Bapst <roman@px4.io>
9 years ago
Roman Bapst
670c6ca019
change state reset information interface for more convenient handling
...
on firmware side
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
70f76e1a6c
EKF: publish innovation consistency check fail status
9 years ago
Paul Riseborough
e371a303a9
EKF: publish the quaternion reset event
9 years ago
Paul Riseborough
b2e432e211
EKF: publish position and velocity reset data
9 years ago
Paul Riseborough
733862f649
EKF: move the reset status struct to the Ekf class
...
This protects it from being modified externally
9 years ago
Paul Riseborough
4237269fab
EKF: add struct to capture state reset events
9 years ago
Paul Riseborough
65da9173b9
EKF: capture innovation checks and reset events in separate variables
...
rename the innovation check status class variable and remove the reset flags from it.
9 years ago