Paul Riseborough
627d08ecc9
Revert "EKF: Fix bug in output observer"
...
This reverts commit 03f3df7415
.
9 years ago
Paul Riseborough
03f3df7415
EKF: Fix bug in output observer
...
Bug was causing output observer state history to be stored at the the EKF, not IMU output rate and resulted in degraded tracking performance
9 years ago
Paul Riseborough
481c624975
EKF: Remove use of vehicle arm status
...
Use single externally set in-air status for all decisions
9 years ago
Paul Riseborough
0c6a367e1b
EKF: fix Travis build error
9 years ago
Paul Riseborough
22f0f52bf1
EKF: fix travis build error
9 years ago
Paul Riseborough
da9d894441
EKF: Improvements to covariance reset
9 years ago
Paul Riseborough
f1b7e7714e
EKF: Make average update rate of EKF closer to target
...
With the EKF, the average update rate is more important than the instantaneous value as it affects tuning. This patch ensures that the EKF prediction cycle will be performed early if the previous one was late in an attempt to maintain the target update rate.
9 years ago
Paul Riseborough
5523a4f225
EKF: Fix IMU bias compensation scale error in output filter
...
Delta angle and velocities are calculated assuming data is at the filter update rate, not the IMU update rate
9 years ago
Paul Riseborough
727a43764f
EKF: update initial angle alignment check
9 years ago
Paul Riseborough
ffea65e1a4
EKF: fix bug in state prediction
9 years ago
Paul Riseborough
7530e30012
EKF: Improve IMU data collection
...
Use IMU driver published delta angle integration time to determine when enough data has been accumulated.
Perform basic first order sculling corrections on delta velocity data
Comment steps to make make method clearer
9 years ago
Paul Riseborough
54e713969d
EKF: Fix rebase error
9 years ago
Paul Riseborough
fe9f88a8b4
EKF: test new derivation
...
Use direct attitude parameterisation
Discard scale factors
Add accel bias
9 years ago
Beat Küng
f2dda3c183
ekf: initialize _terrain_var, fixes access to uninitialized value
...
in PX4 Firmware, Ekf::get_terrain_vert_pos depends on it. This is the
valgrind output:
==15439== Thread 14 ekf2:
==15439== Conditional jump or move depends on uninitialised value(s)
==15439== at 0x5610087: sqrtf (in /usr/lib64/libm-2.22.so)
==15439== by 0x4D1AF0: Ekf::get_terrain_vert_pos(float*) (terrain_estimator.cpp:135)
==15439== by 0x46641F: Ekf2::task_main() (ekf2_main.cpp:655)
==15439== by 0x42BF3D: entry_adapter(void*) (px4_posix_tasks.cpp:103)
==15439== by 0x4E3C609: start_thread (in /usr/lib64/libpthread-2.22.so)
==15439== by 0x5BF7A4C: clone (in /usr/lib64/libc-2.22.so)
9 years ago
Paul Riseborough
6c57bea1c3
EKF: fix bug in IMU error application timing patch
9 years ago
Paul Riseborough
15df20831a
EKF: improve output complementary filter tracking
...
Optimise for height tracking and adjust gains automatically with changes in time delay.
9 years ago
Paul Riseborough
4fa1e9c651
EKF: Fix timing errors in state prediction
...
IMU corrections were being applied at the wrong time horizon to the EKF states
IMU downsampling rotates the delta velocities into the orientation produced by the last delta angle, but this wasn't consistent with the way the state prediction was using the delta velocity data.
9 years ago
Julian Oes
f8a48f9cc5
ekf: now it should even compile for NuttX
9 years ago
Julian Oes
12f4d6f703
ekf: another stab at fixing isfinite for all
...
The previous solution did not work for Snapdragon, so I needed to copy
what is used in px4_defines.h.
9 years ago
Julian Oes
46e207106b
ekf: use `std::isfinite` instead of `isnan`
9 years ago
Paul Riseborough
874558d194
EKF: improve detection of bad vert accel data
...
Improve ability to detect if bad vertical accel data has caused loss of height accuracy by using historical data.
9 years ago
Paul Riseborough
421703c267
EKF: rework initialisation of height state and offsets
9 years ago
Paul Riseborough
a7417657c3
EKF: ensure fusion timeout counters are reset when required
9 years ago
Paul Riseborough
0de15b1b20
EKF: Add variables to monitor vertical position and height offset
9 years ago
Paul Riseborough
b295f9050c
EKF: ensure GPS check status is correctly initialised
9 years ago
Roman Bapst
00c8821006
disable airspeed fusion for now. Needs more testing and implementation of side slip fusion
9 years ago
Roman Bapst
99fc61c27c
ekf2 airspeed fusion:
...
- finished logic for fusion
- fixed bug where previous control status was set in the wrong location
9 years ago
Paul Riseborough
8c55e36ca9
EKF: use common value for gravity
9 years ago
Paul Riseborough
163c08a3ac
EKF: Improve output observer documentation
9 years ago
Paul Riseborough
2dcc6e2053
EKF: Improve accuracy of state prediction
...
Use an a common estimator value for gravity
Use average orientation across update interval when rotating delta velocities
9 years ago
Paul Riseborough
5bf02517a7
EKF: Rationalise use of rotation matrices and improve efficiency
9 years ago
Paul Riseborough
e10093854a
EKF: correct outputs for IMU offset
9 years ago
Paul Riseborough
b46053415f
EKF: Compensate optical flow data for sensor position offset
9 years ago
Paul Riseborough
48b105b748
EKF: correct range finder data for sensor position offset
9 years ago
Paul Riseborough
e89dbb9f63
EKF: correct GPS data for antenna position offset
9 years ago
Paul Riseborough
eaf94935f0
EKF: Fix bug in initialisation of height and magnetic field
...
This prevents zero data being used to form the initial height and magnetic field.
Do not start sampling initial values until non-zero time values are retrieved from the buffer.
9 years ago
Roman Bapst
27b894540e
put airspeed fusion logic but don't actually call it yet
9 years ago
CarlOlsson
f5a9afd278
moved init
9 years ago
CarlOlsson
4301e1105b
added commas
9 years ago
CarlOlsson
0918fa04c7
adopted ekf.cpp
9 years ago
CarlOlsson
0fb1e0578b
added function for fusing airspeed
9 years ago
Paul Riseborough
c23d72ba29
EKF: Ensure filter control modes are correctly initialised
9 years ago
Paul Riseborough
9f3b1351f7
EKF: Don't initialise velocity to GPS on initial alignment
...
For initial alignment the velocity and position should start at zero
9 years ago
Paul Riseborough
e334a5dc57
EKF: Add check for NaN's on attitude states
9 years ago
Paul Riseborough
6b2e2dba90
EKF: Add GPS height option and improve height recovery
9 years ago
Paul Riseborough
63b0cf4360
EKF: Fix baro height offset bug
9 years ago
Paul Riseborough
49023f3d7e
EKF: fix travis build error
9 years ago
Paul Riseborough
7677a162aa
EKF: Don't start the output observer before the main filter has initialised
...
This prevents the possibility of output transients if alignment is delayed.
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