Paul Riseborough
007e73379f
EKF: Improve reporting of position error
8 years ago
Paul Riseborough
744b79c1b2
EKF: Publish innovation test ratios
8 years ago
Paul Riseborough
b5ba4f280f
EKF: reduce output predictor velocity time constant
8 years ago
Paul Riseborough
65762e5998
EKF: publish output predictor tracking errors
8 years ago
Paul Riseborough
c81f9f1dba
EKF: Reduce output predictor tracking errors
...
Implements a PI tracking loop
8 years ago
Julian Oes
616aeb9ad7
ekf_helper: fix forgotten return value
8 years ago
Julian Oes
fd403b733d
CMakeLists: don't always optimize for size
...
Going forward the optimization flags should be set for a platform,
rather than for each individual module.
8 years ago
Roman
c6e1d97176
terrain estimator: initialise with projection
...
Signed-off-by: Roman <bapstroman@gmail.com>
9 years ago
Roman
cc05db4985
terrain estimator: pass initialisation return value correctly
...
Signed-off-by: Roman <bapstroman@gmail.com>
9 years ago
Roman
d53f532079
fixed computation of range measurement timestamp
...
Signed-off-by: Roman <bapstroman@gmail.com>
9 years ago
CarlOlsson
8d60da1442
removed old wind initialization
9 years ago
CarlOlsson
51c8715638
fixed issue with airspeed never fused
9 years ago
Paul Riseborough
d1d56d9e5e
EKF: Add logic to to control wind state estimation
9 years ago
Paul Riseborough
75bec44b94
EKF: add function to initialise wind states
9 years ago
Paul Riseborough
6dff2df28e
EKF: Add method to reset wind state covariances
...
Set variances in polar coordinates and rotate into cartesian frame
9 years ago
Paul Riseborough
a9894d7e8c
EKF: improve efficiency of airspeed fusion
...
Don't compute array entries where the result will be zero
9 years ago
Roman Bapst
df0f8fed45
fixed wrong condition on which gps height would be fused ( #180 )
...
- this solves the issue where height innovations would jump
between two regimes
Signed-off-by: Roman <bapstroman@gmail.com>
9 years ago
Youssef Demitri
168d9add76
added getter function for wind states
9 years ago
Beat Küng
73b8ac954d
ekf_helper.cpp: remove unused includes
...
This fixes a compile error with GCC 5.2.0 and cross-compilation:
/usr/arm-none-eabi/include/c++/5.2.0/arm-none-eabi/armv7e-m/fpu/bits/error_constants.h:122:27: error: 'ENOTSUP' was not declared in this scope
not_supported = ENOTSUP,
The problem was that the #include <iomanip> was taken from the host system,
which conflicts with includes from NuttX (NuttX has only basic C++ STL
support)
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
Paul Riseborough
a2d866520a
EKF: perform innovation check in all axes before fusing 3D mag data ( #171 )
...
Perform the innovation consistency check on all axes first and exit if any axis fails. Reduces the likelihood of bad magnetometer data corrupting the attitude estimates.
9 years ago
Paul Riseborough
f5e9ea1626
EKF: Prevent potential divide by zero
9 years ago
Paul Riseborough
eb2afc522d
EKF: fix bug preventing use of baro as a backup height source
9 years ago
Paul Riseborough
573f252b73
EKF: fix bug preventing GPS use as a backup height source
9 years ago
Paul Riseborough
5f9752cac8
EKF: Improve function names
9 years ago
Paul Riseborough
7bc9217f00
EKF: Clean up control of observation fusion
...
All the decision for a sensor are made within a specific function for that sensor and when there is data to process at the fusion time horizon.
Information and warning messages are improved.
9 years ago
Beat Küng
9a95898414
gps_message: remove time_usec_vel from struct (unused)
9 years ago
Roman Bapst
1b394460a3
fix comment about filter bias states
...
Signed-off-by: Roman Bapst <roman@px4.io>
9 years ago
Roman Bapst
bec1a6831e
added method to get gyro bias
...
Signed-off-by: Roman Bapst <roman@px4.io>
9 years ago
Roman
703fb4e31b
do not return early in velocity reset method otherwise
...
some code will not be executed
9 years ago
Paul Riseborough
f26aca55a1
EKF: Fix bug in quaternion covariance initialisation function
...
The covariances between quaternion and non-quaternion states were not being updated
9 years ago
Paul Riseborough
b3baab64f2
EKF: Updates to 3-axis mag fusion auto-code
...
The code fragments for the magnetometer fusion have been refreshed from the auto-coder.
Explicit floating point types used for constants.
The 3x24 observation Jacobian has been replaced with a 1x24 that is updated each axis iteration to save memory.
9 years ago
Paul Riseborough
21168f9929
EKF: fix bug in 3-axis mag fusion innovation test
...
The fault flag was not being set after an innovation test failure resulting in fusion of the failed measurement
9 years ago
Paul Riseborough
99b34f0df4
EKF: Only reset necessary terms when mag fusion covariance reset required
...
Only the quaternion and mag fusion state covariances are used in the mag fusion calculations.
9 years ago
Paul Riseborough
381d99aed6
EKF: Inform console of serious fusion numerical errors
9 years ago
Paul Riseborough
dbfe8c0242
EKF: remove approximation in mag fusion innovation variance calculation
...
The covariance was not being updated with the observation from one axis before the innovation variance was calculated for the next axis. This results in greater weighting on measurements for subsequent axes.
9 years ago
Paul Riseborough
79228352e9
EKF: Reset mag and wind state variances to 'reasonable' values
...
If an in-flight reset is required, we do not want these variances going to zero as that will significantly delay recovery
9 years ago
Paul Riseborough
34ffffa021
EKF: Prevent use of non time-stamped invalid data during initialisation
...
Fixes bad height initialisation seen intermittently with snapdragon
9 years ago
CarlOlsson
eded0a8f7e
activate tas fusion, off by default
9 years ago
Paul Riseborough
081e17729c
EKF: delay commencement of 3D mag fusion until clear of ground
...
Wait until enough height has been gained to be clear of ground based magnetic anomalies. Failure to do so can result in incorrect earth field initialisation.
9 years ago
Roman Bapst
670c6ca019
change state reset information interface for more convenient handling
...
on firmware side
9 years ago
Paul Riseborough
f08aee0a7d
EKF: Fix covariance index bug
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
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
81ca167da8
EKF: align output observer to EKF states on startup
9 years ago
Paul Riseborough
3ec9221c18
EKF: update output observer and capture reset event for EV yaw resets
9 years ago
Paul Riseborough
9ec09f5f4e
EKF: update output observer and capture reset event for magnetic heading resets
9 years ago