Commit Graph

597 Commits

Author SHA1 Message Date
Roman 63cf3d50be ekf gps reset: do not bother checking for need of reset if gps is not
available

Signed-off-by: Roman <bapstroman@gmail.com>
2016-10-24 11:45:36 +02:00
Roman c5f750dcca ekf reset: more granular reset / timeout strategy for gps fusion
- if both gps position and velocity measurements are rejected for 7 seconds
do a reset
- if only gps position measurements are rejected then wait for 14 seconds
as we still have velocity measurements to constrain the drift in position
- introduced ecl internal parameter for the timeout

Signed-off-by: Roman <bapstroman@gmail.com>
2016-10-24 11:40:12 +02:00
Roman Bapst 65de4962b5 Merge pull request #203 from PX4/pr-ekfVibeReporting
EKF: Add IMU vibration calculation and reporting
2016-10-19 13:32:53 +02:00
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
2016-10-19 21:46:55 +11:00
Roman 17c195d1cd ekf2 height reset: do not apply height change to height state twice (bug)
Signed-off-by: Roman <bapstroman@gmail.com>
2016-10-18 07:58:19 +02:00
Paul Riseborough 1093e6d789 EKF: fix documentation error 2016-10-13 22:37:14 +02:00
Roman f80b3481a4 reset the newest output sample for all possible resets
Signed-off-by: Roman <bapstroman@gmail.com>
2016-10-12 08:54:38 +02:00
Roman 238d947239 proper handling of position and velocity reset
- position reset method was returning before the actual delta values
were written and applied to the output buffer
- apply reset delta also to the output sample which was already taken out
from the output buffer, otherwise the complementary filter solution is
offset from the ekf solution

Signed-off-by: Roman <bapstroman@gmail.com>
2016-10-12 08:54:38 +02:00
Paul Riseborough 79b1d3018d EKF: Fix magnetometer innovation test ratio reporting bug 2016-10-12 08:51:45 +02:00
Lorenz Meier 394bfdc935 Update README.md
Fix prerequisites.
2016-10-08 11:00:52 +02:00
Daniel Agar 0d02bb2612 ecl attitude_fw fix excessive body fixed turn offset
-limit body fixed turn offset contrained roll to possible
roll setpoint range
-fixes #181
2016-10-06 09:03:48 +02:00
James Goppert 7dbb43f2cd Update matrix. 2016-10-06 09:03:10 +02:00
Paul Riseborough 352750e5d1 EKF: publish ekf solution status summary data 2016-10-06 09:02:29 +02:00
Paul Riseborough 007e73379f EKF: Improve reporting of position error 2016-10-06 09:02:29 +02:00
Paul Riseborough 744b79c1b2 EKF: Publish innovation test ratios 2016-10-06 09:02:29 +02:00
Paul Riseborough 5ab90048e1 Merge pull request #184 from PX4/pr-rngDelayFix
fixed computation of range measurement timestamp
2016-10-04 09:13:19 +11:00
Paul Riseborough b29174d86b Merge pull request #193 from PX4/pr-haglInit
Pr hagl init
2016-10-04 08:21:15 +11:00
Paul Riseborough 5702c2d51b Merge pull request #186 from priseborough/pr-ekfOutputPredictor
EKF: Improve Output Predictor Tracking
2016-10-04 07:47:34 +11:00
Paul Riseborough b5ba4f280f EKF: reduce output predictor velocity time constant 2016-10-03 14:13:07 +11:00
Paul Riseborough 65762e5998 EKF: publish output predictor tracking errors 2016-10-03 14:13:07 +11:00
Paul Riseborough c81f9f1dba EKF: Reduce output predictor tracking errors
Implements a PI tracking loop
2016-10-03 14:13:07 +11:00
Julian Oes 4fefe5c6c6 cmake: stack size args cleanup 2016-09-28 08:23:18 +02:00
Julian Oes 616aeb9ad7 ekf_helper: fix forgotten return value 2016-09-27 16:36:29 +02:00
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.
2016-09-27 16:35:35 +02:00
Roman c6e1d97176 terrain estimator: initialise with projection
Signed-off-by: Roman <bapstroman@gmail.com>
2016-09-20 14:09:42 +02:00
Roman cc05db4985 terrain estimator: pass initialisation return value correctly
Signed-off-by: Roman <bapstroman@gmail.com>
2016-09-20 14:07:50 +02:00
Roman d53f532079 fixed computation of range measurement timestamp
Signed-off-by: Roman <bapstroman@gmail.com>
2016-09-17 11:41:12 +02:00
Paul Riseborough 7240fc78fe Merge pull request #183 from CarlOlsson/cont_wind_estimation
Fix wind state  and wind variance initialization
2016-08-23 19:55:22 +10:00
James Goppert eab57b0187 Merge pull request #189 from PX4/revert-188-matrix_update
Revert "Update matrix."
2016-08-18 12:29:41 -04:00
James Goppert e5b74f511f Revert "Update matrix." 2016-08-18 12:29:31 -04:00
James Goppert 90f6bd7f3d Merge pull request #188 from PX4/matrix_update
Update matrix.
2016-08-18 12:06:20 -04:00
James Goppert 1daea6c1a3 Update matrix. 2016-08-18 11:58:31 -04:00
CarlOlsson 8d60da1442 removed old wind initialization 2016-08-11 15:26:21 +02:00
CarlOlsson 51c8715638 fixed issue with airspeed never fused 2016-08-11 15:26:21 +02:00
Paul Riseborough d1d56d9e5e EKF: Add logic to to control wind state estimation 2016-08-11 15:26:21 +02:00
Paul Riseborough 75bec44b94 EKF: add function to initialise wind states 2016-08-11 15:26:21 +02:00
Paul Riseborough 6dff2df28e EKF: Add method to reset wind state covariances
Set variances in polar coordinates and rotate into cartesian frame
2016-08-11 15:26:21 +02:00
Paul Riseborough eff9af549f scripts: derive conversion from polar to cartesian wind state covariance 2016-08-11 15:26:21 +02:00
Paul Riseborough a9894d7e8c EKF: improve efficiency of airspeed fusion
Don't compute array entries where the result will be zero
2016-08-11 15:26:21 +02:00
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>
2016-08-05 14:45:48 +02:00
Youssef Demitri 168d9add76 added getter function for wind states 2016-07-22 12:33:41 +02:00
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)
2016-07-15 12:50:11 +02:00
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.
2016-07-10 16:29:51 +02:00
georgehines 4f8ffb3420 promote to float (for internal representation) before scaling by format multiplier (#175) 2016-07-10 11:13:18 +02:00
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.
2016-07-07 16:46:30 +02:00
Beat Küng 5e0a229ee8 data_validator cleanup: use dimensions variable, use static for some constants (#167) 2016-06-30 13:28:01 +02:00
Paul Riseborough 0cc0008927 Merge pull request #166 from georgehines/matlab-log-import
add double support
2016-06-30 17:21:37 +10:00
Paul Riseborough eaae95fdc4 Merge pull request #160 from priseborough/pr-ekf2Improvements
EKF: clean up fusion control logic
2016-06-30 17:18:14 +10:00
Paul Riseborough f5e9ea1626 EKF: Prevent potential divide by zero 2016-06-30 17:06:32 +10:00
Paul Riseborough eb2afc522d EKF: fix bug preventing use of baro as a backup height source 2016-06-30 17:06:32 +10:00