Paul Riseborough
98c0b74a71
EKF: Initialise height correctly when using external vision data
...
If EV height selected ensure switch to correct height mode as soon as EV data is received
The 0 height datum is not at the initialisation position, so the height state needs to be reset to the measurement on startup
9 years ago
Paul Riseborough
9f81b8f09e
EKF: provide reset protection for external vision height
9 years ago
Paul Riseborough
1b6c5bbafd
EKF: Enable height source to be selected independent of EV aiding
9 years ago
Paul Riseborough
00bada8f25
EKF: Clean up logic for horizontal position fusion
...
Remove reference to optical flow fusion mode
Simplify logic flow for selection of observation noise
Remove unnecessary conditional statement
9 years ago
Paul Riseborough
6f412a73b4
EKF: Use correct height gate when using external vision
9 years ago
Paul Riseborough
e41524ac9d
EKF: remove unused variables
9 years ago
Paul Riseborough
7dd123094f
EKF: correct documentation
9 years ago
Paul Riseborough
d5b5cb5899
EKF: improvements to observation collection
...
Remove unnecessary function calls
Remove un-used functions
Apply a consistent maximum safe data rate check for all observation inputs
9 years ago
Paul Riseborough
5a40aa2c1a
EKF: prevent unwanted GPS use
9 years ago
Paul Riseborough
90d65071c1
EKF: Add output predictor processing option
...
Setting the velocity tracking tine constant to a negative number causes the output predictor to use a different method of correcting the velocity which provides a velocity output that is kinematically consistent with the position output.
This may improve height controller performance under some circumstances
9 years ago
Paul Riseborough
30917430e2
EKF: inline ring buffer functions used repeatedly
...
These functions get called 30 times each per output prediction cycle
9 years ago
Carl Olsson
0fafc49a49
fixed typos ( #147 )
9 years ago
Carl Olsson
dbe2513d48
updated logic of calculation of body field variance ( #146 )
9 years ago
CarlOlsson
eb70aca2e8
deleted second update of transformation matrix
9 years ago
Paul Riseborough
ae5071f668
EKF: Improve heading reset
...
Improves reset of quaternion covariance matrix after a heading reset by preserving variance in roll and pitch and resetting yaw variance to the measurement variance.
9 years ago
waltjohnson
a9ca8c294c
Generalized isfinite() in similar form as done in ekf.cpp e3b9800cac/EKF/ekf.cpp (L45-L52)
9 years ago
waltjohnson
6eaa00e3f9
isfinite() is not part of the math class, rather the math.h header file.
9 years ago
waltjohnson
7c158aa59b
Addressed C99 compiler issues of initializing variables in header and unused included statements.
9 years ago
Paul Riseborough
c1b02eaa91
EKF: Don't use 3-axis magnetometer fusion until the tilt is aligned
9 years ago
Paul Riseborough
aaac867da8
EKF: Adjust tilt alignment threshold
9 years ago
Paul Riseborough
e272d5f003
EKF: Use consistent position noise values during alignment
9 years ago
Paul Riseborough
b9a3712ccb
EKF: record yaw alignment event during initialisation to allow heading fusion to start early
...
This ensures bad yaw gyro biases are compensated for early, rather than waiting for the tilt alignment to fully converge before fusing heading.
9 years ago
Paul Riseborough
94a63ec9d5
EKF: don't interfere with quaternion covariances during tilt alignment
9 years ago
Paul Riseborough
22fba0fc6e
EKF: don't initialise filter without EV data if we are relying on it
9 years ago
Nic
1b16f3575a
added ev_pos flag check to valid_lpos, disable fake gps when ev_pos is valid
9 years ago
Paul Riseborough
e4b2e9c93d
EKF: Improve yaw alignment
...
Uses best conditioned of 321 or 312 Euler sequence to calculate initial yaw angle.
Allows alignment of yaw angle using external vision data
9 years ago
Paul Riseborough
57b2a256f7
EKF: Improve initialisation of quaternion covariances
...
Convert uncertainty in initial rotate vector into quaternion covariances using symbolic toolbox derived expressions.
Enable setting of initial angle uncertainty via a parameter
9 years ago
Paul Riseborough
88860d0307
EKF: Enable tuning for IMU switch on bias errors
9 years ago
Paul Riseborough
1540e937b1
EKF: Improve tilt alignment monitoring
...
Convert quaternion covariances into an angular alignment variance vector and discard the z component so that yaw uncertainty does not affect the result.
9 years ago
Paul Riseborough
c955bfbf93
EKF: fix previous merge error
9 years ago
Paul Riseborough
920d83d68c
EKF: Fix bugs preventing use of external vision yaw data
9 years ago
Paul Riseborough
13c3a95bc1
EKF: Add missing line returns
9 years ago
Paul Riseborough
59eb9eb3db
EKF: fix shadow declaration arising from rebase
9 years ago
Paul Riseborough
172f4be594
EKF: Fix bug in calculation of terrain observation variance
9 years ago
Paul Riseborough
b985e58333
EKF: clean up control function
...
With the addition of new observation types, the control function has become too large and needed be broken up into separate functions
9 years ago
Paul Riseborough
f4a0f69f6e
EKF: print to console when starting EV fusion
9 years ago
Paul Riseborough
349c731375
EKF: remove PX4 dependant text output
9 years ago
Paul Riseborough
ac9b7a3df6
EKF: Ensure use of EV aiding inhibits use of other height sources
9 years ago
devbharat
cf1df5861a
Undid hack in ecl. Handled yaw missalignment on the vision side.
9 years ago
devbharat
d16f413b55
Hack to fix external vision pos offset compensation
9 years ago
devbharat
d3bad9fdb0
Correct height fusion flag when using sensor other than baro
9 years ago
devbharat
6d20a426e0
Reset time_last_ext_vision
9 years ago
devbharat
b681c9a5d0
Added external vision noise parameters etc and position offset
9 years ago
devbharat
ff8f03b5dd
Added compensation for VI sensor offset. Check sign.
9 years ago
Paul Riseborough
e917d6c7f2
EKF: Add fusion of external yaw data
9 years ago
Paul Riseborough
37a09c61bc
EKF: Don't use delayed data to start EV aiding
9 years ago
Paul Riseborough
25f1d1d766
EKF: Add fusion of external vision 3D pos data
9 years ago
Paul Riseborough
81469d6621
EKF: Add position, height and velocity reset for EV aiding
9 years ago
Paul Riseborough
3a0fcd03d7
EKF: Add interfaces and variables to use ext vision data
9 years ago
Paul Riseborough
c7e225124c
EKF: Improve output observer position and velocity tracking
...
Replace the delayed time feedback mechanism used by the translational states with a direct feedback method.
Time constants for velocity and position convergence can be separately adjusted with tunable parameters
The method is more computationally more expensive because it requires modification of the output buffer history but is acceptable because it only requires 6 FLOP per buffer index for a total of 30*6 = 180 FLOP
The method was not applied to the attitude states because the quaternion operations required at each buffer index would have been computationally prohibitive.
9 years ago