Paul Riseborough
6cadc92285
EKF: Don't reject saturated flow data when it is the only aiding source
7 years ago
Daniel Agar
c5b2f59f57
PX4 style fixes (excluding EKF generated code)
7 years ago
Paul Riseborough
9747dc778d
EKF: Rework nav validity reporting
...
Remove duplicate checking for dead reckoning and consolidate into a single function.
Use separate timers to check for start of dead reckoning and check when dead reckoning has been performed for too long for the nav solution to be valid.
Allow the timeout for validity reporting to be adjusted externally.
Separate external reporting of dead reckoning from internal checks.
7 years ago
Daniel Agar
cd12f049fe
move geo and geo_lookup from PX4 Firmware to ECL
7 years ago
Paul Riseborough
8e30c2666d
EKF: Add support auxiliary velocity observation
...
This enables the EKF to use an additional NE velocity measurement. This can be used to improve position hold stability when landing using a beacon system for positioning by fusing the beacon velocity estimates.
7 years ago
Daniel Agar
d9c8af54bd
EKF add print_status() with memory usage
7 years ago
Daniel Agar
75d1ed894c
EKF simplify RingBuffer allocation check
7 years ago
Paul Riseborough
af7004ef01
EKF: report observation buffer allocation errors
7 years ago
Paul Riseborough
d785a19c0a
EKF: delay final allocation of observation buffers until required
7 years ago
Daniel Agar
ed9a394029
EKF RingBuffer avoid copying
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
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
81a64c0479
ekf: fix flow direction when on ground
7 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
Paul Riseborough
16c7041f4a
EKF: Add a parameter to enable setting of a minimum buffer length to handle large sensor timing jitter
8 years ago
Daniel Agar
87fdee440b
EKF estimator_interface coverity fix 139419
8 years ago
Daniel Agar
b3f8fd19e0
EKF estimator_interface coverity fix 140490, 140491
8 years ago
Daniel Agar
3919d60f66
ekf2 initialization fixes
8 years ago
Paul Riseborough
c3f966f53e
EKF: remove clang build error message
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
2426f1dd3a
EKF: remove use of memset to initialise variable
...
When using a union of flags and integer value it is safer to initialise the value to 0 rather than memset the flags because the flags may not define all bits in the integer.
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
9bb54ccc08
EKF: don't accept GPS data without a 3D lock
8 years ago
Paul Riseborough
af26ade1ce
EKF: Use norm for vector length everywhere
8 years ago
Daniel Agar
2750961be6
c++11 initialization cleanup ( #237 )
8 years ago
Daniel Agar
47b8ef258b
clang-tidy performance-type-promotion-in-math-fn ( #236 )
8 years ago
Paul Riseborough
bcf7cac5d9
EKF: remove hardcoded limit on optical flow time delta
...
Allow for up to 50% lost data.
8 years ago
Paul Riseborough
3fb7effb0c
EKF: Allow optical flow use when on-ground with poor data quality
8 years ago
Lorenz Meier
453bde73f8
ECL: Simplify / correct estimator interface
8 years ago
Roman
c5a55d97aa
initialise data members properly
...
- dot not use memset for struct with non POD types
Signed-off-by: Roman <bapstroman@gmail.com>
8 years ago
Paul Riseborough
1465adca2f
EKF: Improve use of memcpy
...
Changes made to remove Coverity scan errors
8 years ago
Paul Riseborough
26a06567bb
EKF: add missing initialisation for class variables
8 years ago
Paul Riseborough
f999729d70
EKF: fix incorrect use of memcpy
8 years ago
Paul Riseborough
3c4c09593f
EKF: Rationalise console messages
...
Combine the observation action buffer and alignment messages
Ensure all data timeout messages are warnings.
Use consistent terminology.
8 years ago
Paul Riseborough
5ad329b641
EKF: Fix variable names to match convention
8 years ago
Paul Riseborough
afd6e54b2a
EKF: Allow for worst case timing jitter when setting observation buffer length
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
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
744b79c1b2
EKF: Publish innovation test ratios
8 years ago
Roman
d53f532079
fixed computation of range measurement timestamp
...
Signed-off-by: Roman <bapstroman@gmail.com>
9 years ago
Lucas De Marchi
2240eb6b4f
Move __STDC_FORMAT_MACROS to build system ( #174 )
...
__STDC_FORMAT_MACROS changes the behavior of inttypes.h to allow
defining format macros for printf-like functions. It needs to be defined
before any include is done, otherwise due to include chains and header
guards it may not take effect.
Instead of defining it everywhere it is used, let the PX4 build system
to deal with it.
9 years ago
Julian Oes
b8e2f79005
EKF: correct include paths
9 years ago
Julian Oes
ecfd8c867a
EKF: use ECL printfs everywhere
...
- Changes all printfs to ECL printfs
- Add ECL_ERR.
- Include ecl.h where needed.
- Add forgotten pragma once.
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