Commit Graph
100 Commits
Author SHA1 Message Date
Paul Riseborough 48d83f3bcb EKF: Fix vulnerability to ground level mag anomally when using heading fusion (#544)
Previously, the reset of the yaw when climbing above 1.5m was not performed until 3-axis fusion was enabled. This could result in loss of navigation depending on the value of  EKF2_MAG_TYPE and the flight profile.
2019-01-03 09:41:55 -05:00
Paul Riseborough 35f628e68f EKF: Add interface to enable logging of GPS drift metrics (#490)
* EKF: Add interface to enable logging of GPS drift metrics

* EKF: Fix bug affecting rate of GPS drift publication

Also fix variable name.
2018-08-03 13:24:31 +10:00
Paul Riseborough 1cba257bac Merge branch 'master' into pr-ekfOptFlowGyro 2018-06-18 09:36:16 +10:00
Paul Riseborough 1a1106878d EKF: Prevent timestamp jitter failing GPS data arrival check (#462)
This fixes a error condition that occurs if _time_last_gps is greater than _time_last_imu.
By checking time stamps at the fusion time horizon, we guarantee that this cannot happen because all observations must have a time stamp smaller or equal to _imu_sample_delayed.time_us before they are retrieved from the buffers.
2018-06-15 16:03:54 +10:00
Paul Riseborough 1bd1809d6e EKF: Fix bug causing simultaneous range and baro height fusion (#429) 2018-05-03 13:24:33 +10:00
Paul Riseborough 02055acee2 EKF: Fix non GPS aiding data reset logic (#418)
* EKF: Move optical flow specific state reset to helper functions

* EKF: Ensure loss of optical flow aiding is handled correctly

If data is only source of aiding and has been rejected for too long - reset using flow data as a velocity reference.
If flow data is unavailable for too long - declare optical flow use stopped.
Use consistent time periods for all resets

* EKF: Ensure loss of external vision aiding is handled correctly

If data is only source of aiding and has been rejected for too long - reset using data as a position.
Don't reset velocity if there is another source of aiding constraining it.
If data is unavailable for too long, declare external vision use stopped.
Use consistent time periods for all resets.

* EKF: Update parameter documentation

Make the distinction between the no_gps_timeout_max and no_aid_timeout_max parameters clearer

* EKF: make class variable units consistent with documentation

* EKF: Don't reset states when optical flow use commences if using external vision

* EKF: Stop optical flow fusion when on ground if excessive movement is detected.

* EKF: fix terrain estimator vulnerabilities

Reset estimate to sensor value if rejected for 10 seconds
Protect against user motion when on ground.
Fix unnecessary duplication of terrain validity check and separate validity update and reporting.

* EKF: remove unnecessary Info console prints

Optical flow use information can be obtained from the estimator_status.control_mode_flags message

* EKF: fix inaccurate comment

* EKF: remove duplicate calculation from terrain validity accessor function
2018-04-09 18:35:15 +10:00
Paul Riseborough 1bb4c17c0e EKF: Allow use of large GPS position observation noise when using other aiding sources (#403) 2018-03-27 11:31:37 +11:00
Paul Riseborough 8a012436f9 EKF: Fix reversion from GPS to no-aiding mode (#412)
* EKF: Do not delay reversion to no-aiding mode if parameter initiated

* EKF: Move no-aid reversion resets to helper functions

* EKF: Prevent unwanted fusion of velocity data during no aiding mode
2018-03-22 22:39:00 +11:00
Paul Riseborough 78e983073a EKF: Fix bug in use of gps velocity noise parameter (#401)
This fixes a bug introduced by an earlier feature request PR. The parameter is supposed to define the lower limit on the observation noise.
2018-02-28 11:48:53 +11:00
Paul Riseborough a2d6a4dded EKF: fix indexing bug (#387)
Should use index 9 for vertical position.
2018-01-29 08:09:55 +11:00
Paul Riseborough f016e66ff8 Revert "EKF: Release flow speed limit with altitude gained" (#382)
* Revert "EKF: Release flow speed limit with altitude gained"

This reverts commit e70206f74b.

* Revert "fix code style"

This reverts commit 76bf70121c.

* Revert "Reverse the linked list of data_validator_group and maintain a first node"

This reverts commit 32482e7644.
2018-01-24 20:46:48 +11:00
Paul Riseborough 76763adb5c Merge pull request #374 from PX4/pr-ekfInitFix
EKF: Prevent possible /0 due to incorrect initial values
2018-01-04 08:15:08 +11:00
Paul Riseborough bdbc05cf91 Merge pull request #372 from PX4/pr-tecs_init
TECS initialize throttle integrator at cruise if in air
2017-12-28 09:09:14 +11:00
Paul Riseborough a39c376c26 Merge pull request #371 from CarlOlsson/pr-push_beta_test_ratio
ekf: return beta test ratio in get_innovation_test_status
2017-12-28 08:29:15 +11:00
Paul Riseborough 22a6abbca2 Merge pull request #365 from PX4/pr-ekfBugFix
EKF: Fix vel pos innovation handling bug
2017-11-24 14:46:11 +11:00
Paul Riseborough 882f4d44e5 Merge pull request #362 from PX4/pr-ekfAuxVelFuse
EKF: Add additional velocity interface to use landing beacon data
2017-11-21 11:55:43 +11:00
Paul Riseborough bd8f30752a Merge pull request #351 from PX4/ekfGndEffectComp-wip
EKF: Protect against ground effect induced static pressure rise
2017-11-20 09:14:26 +11:00
Paul Riseborough c8d459eecd Merge pull request #360 from dagar/pr-ekfObsBufAlloc
EKF RingBuffer allocation minor improvements + print memory usage
2017-11-17 08:38:57 +11:00
Paul Riseborough 3479542ae5 Merge pull request #359 from PX4/pr-ekfObsBufAlloc
EKF: Reduce memory usage
2017-11-17 08:09:37 +11:00
Paul Riseborough f54f1d467f Merge pull request #358 from PX4/pr-ringbuffer_copies
EKF RingBuffer avoid unnecessary copying
2017-11-16 13:37:36 +11:00
Paul Riseborough 44eaa076db Merge pull request #356 from PX4/pr-ekfMiscUpdate
EKF: Remove redundant code
2017-11-16 07:05:18 +11:00
Paul Riseborough cc651ac472 Merge pull request #354 from PX4/ekfMagYawReset-wip
Prevent loss of navigation accuracy after in-flight mag yaw alignment
2017-11-13 07:32:23 +11:00
Paul Riseborough 7852c0ed03 Merge pull request #312 from PX4/pr-ekfExtVisQuat
EKF: Enable operation with arbitrary External Vision reference frame
2017-11-12 08:35:39 +11:00
Paul Riseborough f921b2de5c Merge pull request #348 from PX4/pr-ekfAddImuBiasReset
EKF: Add method to enable the IMU bias states to be reset externally
2017-10-30 15:55:52 +11:00
Paul Riseborough cd2ca57ec2 Merge pull request #339 from PX4/ekfPosCtrlLimits-wip
Ekf pos ctrl limits wip
2017-10-23 06:57:23 +11:00
Paul Riseborough afa8844eb7 Merge pull request #341 from CarlOlsson/fix/fw_yaw_align2
EKF: If aligning yaw for fw with low GPS velocity, use mag
2017-10-20 14:05:52 +11:00
Paul Riseborough 61e0c04811 Merge pull request #338 from CarlOlsson/fix/fw_pos_reset
EKF: Fix bug when resetting position and velocities for fw due to som…
2017-10-18 07:02:34 +11:00
Paul Riseborough 410697cb0c Merge pull request #337 from CarlOlsson/fix/comment
EKF: fixed comment
2017-10-17 21:15:06 +11:00
Paul Riseborough a34bba87fc Merge pull request #322 from PX4/pr-ekfMagFusionMode
EKF Add mag fusion mode for VTOL
2017-10-13 07:27:54 +11:00
Paul Riseborough 9c65968c3d Merge pull request #334 from PX4/pr-ekf_minor_flow_fix
ekf: fix optical flow bugs
2017-10-12 09:14:29 +11:00
Paul Riseborough 68bad48598 Merge pull request #330 from CarlOlsson/pr-add_get_wind_vel_var
EKF: added get_wind_velocity_var function
2017-10-12 09:12:54 +11:00
Paul Riseborough 705f93d0bf Merge pull request #327 from CarlOlsson/parameterize_max_rng_tilt
EKF: Parameterize maximum angle for rng fusion
2017-10-02 17:08:34 +11:00
Paul Riseborough 160e4d69c1 Merge pull request #323 from PX4/pr-ekfQuatMultOrder
EKF: use hamiltonian convention for quaternion multiplication order
2017-09-21 07:49:35 +10:00
Paul Riseborough 4411c7fd1c Merge pull request #325 from PX4/pr-ekfFlowGyroBias
EKF: Fix bug in accumulation of IMU data for flow sensor gyro bias
2017-09-14 18:47:46 +10:00
Paul Riseborough 3b3326e250 Merge pull request #326 from TSC21/fix_travis
travis: install python3.5 for trusty in order to run pip3
2017-09-14 18:32:31 +10:00
Paul Riseborough 1531269f92 Merge pull request #319 from PX4/pr-attitude_fw-cleanup
attitude_fw delete unused and cleanup
2017-08-28 09:48:49 +02:00
Paul Riseborough fac292fef9 Merge pull request #321 from dagar/pr-ekf_formatting
EKF trivial code style cleanup
2017-08-26 18:17:23 +10:00
Paul Riseborough 3983ac23fa Merge pull request #316 from PX4/pr-ekfTrueAirspeed
EKF: Add true airspeed accessor
2017-08-11 08:18:04 +10:00
Paul Riseborough 967720a9d7 Merge pull request #313 from PX4/pr-ekfYawReset
EKF: Improve in-flight mag error detection, recovery and isolation for fixed wing
2017-08-08 20:59:49 +10:00
Paul Riseborough c230663b68 Merge pull request #309 from PX4/pr-ekfYawFusion
EKF: Improve efficiency of yaw fusion for External Vision
2017-07-31 19:37:15 +10:00
Paul Riseborough ba5de96fcb Merge pull request #311 from PX4/pr-ekfExtVis
EKF: Add ability to use EV and GPS data together
2017-07-29 16:29:53 +10:00
Paul Riseborough 74d1955dfa Merge pull request #310 from PX4/pr-ekfFixComments
EKF: Correct units in comments
2017-07-26 16:28:44 +10:00
Paul Riseborough df34b43c00 Merge pull request #308 from PX4/pr-ekfDoxygen
EKF: Update documentation and make compatible with Doxygen
2017-07-21 10:55:18 +10:00
Paul Riseborough 627f8184b3 Merge pull request #307 from PX4/pr-constrain_vpos
constrain _terrain_vpos to be a minimum of _params.rng_gnd_clearance …
2017-07-20 17:35:35 +10:00
Paul Riseborough 9b6e1ab2a7 Merge pull request #306 from PX4/revert-305-revert-303-pr-get_terr_valid
Revert "Revert "Split get_terrain_vert_pos() into valid and get_vpos""
2017-07-19 17:54:18 +10:00
Paul Riseborough e1fe5b2229 Revert "Revert "Split get_terrain_vert_pos() into valid and get_vpos"" 2017-07-19 17:52:35 +10:00
Paul Riseborough 13f8d949bd Merge pull request #305 from PX4/revert-303-pr-get_terr_valid
Revert "Split get_terrain_vert_pos() into valid and get_vpos"
2017-07-19 17:34:03 +10:00
Paul Riseborough c887b02f21 Revert "Split get_terrain_vert_pos() into valid and get_vpos" 2017-07-19 17:33:48 +10:00
Paul Riseborough 18e81eba31 Merge pull request #300 from nicolaerosia/ekf2-dt
sensor_combined stores deltas in usec instead of seconds
2017-07-17 07:25:27 +10:00
Paul Riseborough d69cc3d7c8 Merge pull request #293 from PX4/pr-fixExtVisionFallback
EKF: Allow fallback to non-aiding mode if external vision fusion is lost
2017-07-13 20:45:24 +09:00
Paul Riseborough 7a17f74910 Merge pull request #297 from ursa-drone/vispos_fix
Fixed vision position fusion bug
2017-07-12 22:15:54 +09:00
Paul Riseborough 48a42dfb5b Merge pull request #288 from PX4/pr-ekfDelVelBiasFix
EKF: Improve protection against covariance instability in delta velocity bias states
2017-07-04 08:57:32 +10:00
Paul Riseborough eb1e73ec81 Merge pull request #283 from PX4/ekf_matrix_cleanup
EKF matrix typedef cleanup
2017-07-03 21:02:24 +10:00
Paul Riseborough ae118940b1 Merge pull request #292 from PX4/pr-use_baro_align
use baro for the ekf alignment if range finder is primary height source
2017-07-03 20:31:16 +10:00
Paul Riseborough dfbc9de48e Merge pull request #291 from PX4/pr-ekfWindEstBugFix
EKF: Fix bug affecting wind estimation for planes
2017-07-01 11:06:58 +10:00
Paul Riseborough 73ef95b37f Merge pull request #289 from PX4/pr-height_fixes
Pr height fixes
2017-06-30 12:31:26 +10:00
Paul Riseborough 7f1cca5b28 Merge pull request #244 from PX4/pr-rangeAid
Pr range aid
2017-06-16 17:47:21 +10:00
Paul Riseborough d6decb3c84 Merge pull request #277 from PX4/pr-ekfBufferParam
EKF: Add a parameter to enable setting of a minimum buffer length
2017-06-15 07:34:21 +10:00
Paul Riseborough c48b879843 Merge pull request #276 from CarlOlsson/feature/only_update_mag_states
EKF: Add feature to use the mag to only update the mag states
2017-06-14 11:04:14 +10:00
Paul Riseborough 97eb17a62f Merge pull request #265 from PX4/pr-ekfOutputObserver
EKF: add option to output velocity as time derivative of position
2017-06-12 19:01:54 +10:00
Paul Riseborough 8a2c5c1ad2 Merge pull request #266 from dagar/valgrind
ekf2 initialization fixes
2017-04-25 17:38:17 +10:00
Paul Riseborough c62bdcbdb2 Merge pull request #264 from PX4/pr-ekfBuildErrorFix
EKF: remove clang build error message
2017-04-18 19:29:16 +10:00
Paul Riseborough d47c372872 Merge pull request #263 from PX4/pr-ekfBuildErrorFix
EKF: Fix travis clang build error
2017-04-18 17:12:51 +10:00
Paul Riseborough b07acd8cf3 Merge pull request #254 from PX4/pr-ekfAccelErrorHandling
EKF: improve recovery from bad IMU accel data
2017-04-12 21:39:14 +10:00
Paul Riseborough a1a5734443 Merge pull request #259 from PX4/pr-ekfBugFix
EKF: Protect against covariance prediction and update errors
2017-04-06 16:30:07 +10:00
Paul Riseborough 8f6c51e10e Merge pull request #257 from PX4/pr-ekfBugFix
EKF: Do not move EKF origin when performing GPS checks
2017-04-01 08:07:49 +10:00
Paul Riseborough 6d9b556b04 Merge pull request #255 from PX4/pr-ekfBugFix
EKF: fix bugs preventing preflight checks passing
2017-03-21 07:27:43 +10:00
Paul Riseborough 879ad1fd2c Merge pull request #231 from pickledgator/ev_hgt_counter_fix
height counter update for ev primary height source
2017-03-10 14:18:35 +11:00
Paul Riseborough 092cc52838 EKF: Remove out of date comment 2017-03-10 14:18:13 +11:00
Paul Riseborough 6e5a9aabe1 Merge pull request #234 from PX4/pr-optFlowUpdates
EKF: optical flow improvements
2017-02-22 09:00:48 +11:00
Paul Riseborough 283c328c23 Merge pull request #212 from PX4/pr-ekfCriticalBugFix
EKF: Fix bug causing repeated resets if GPS sensor disconnected
2016-11-05 09:43:24 +11:00
Paul Riseborough 2bc50489fd Merge pull request #210 from PX4/remove_KH
EKF: reduce KH to only the elements that are really needed, and merge the loops
2016-11-05 09:24:13 +11:00
Paul Riseborough d07692e87e Merge pull request #204 from PX4/pr-gpsReset
ekf reset: more granular reset / timeout strategy for gps fusion
2016-10-26 06:52:10 +11: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 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
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
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 16bdbebdc6 Merge pull request #161 from PX4/pr-resetFix
do not return early in velocity reset method
2016-06-08 17:23:09 +10:00
Paul Riseborough 928a7dd059 Merge pull request #157 from PX4/pr-ekf2ResetInterface
Change state reset information interface
2016-06-08 14:18:31 +10:00
Paul Riseborough 2024252d65 Merge pull request #158 from CarlOlsson/act_ars_off_by_default
activate tas fusion, off by default
2016-06-08 14:17:31 +10:00
Paul Riseborough e72788bd0f Merge pull request #159 from priseborough/pr-ekf2MagBugFix
EKF: Fix critical bugs in mag fusion and yaw reset
2016-06-08 14:11:47 +10:00
Paul Riseborough 3c84d37175 Merge pull request #156 from PX4/fix_printfs
EKF: use ECL printfs everywhere
2016-06-07 09:45:00 +10:00
Paul Riseborough 8bfdb0430c Merge pull request #150 from PX4/pr-ekf2StatusReporting
EKF: Publish full reset and innovation consistency check status data
2016-06-02 07:17:49 +10:00
Paul Riseborough 654093cae1 Merge pull request #155 from PX4/pr-ekf2AlignmentNoiseFilterInit
EKF: Initialise alignment noise filters using valid data
2016-05-28 09:12:15 +10:00
Paul Riseborough 35bb6cc6e9 Merge pull request #154 from PX4/pr-ekf2AlignmentBufferFlush
EKF: Ensure bad initial data is flushed from buffers before use
2016-05-28 08:41:24 +10:00
Paul Riseborough 9557f64248 Merge pull request #153 from PX4/pr-ekf2ExternalVision
EKF: external vision bug fixes
2016-05-27 18:57:41 +10:00
Paul Riseborough 53030b9297 Merge pull request #152 from PX4/pr-ekf2FixObsDataHandling
EKF: Fix vulnerability to loss of observations due to high input data rates
2016-05-26 21:44:10 +10:00
Paul Riseborough e2d9e19a5d Merge pull request #148 from PX4/pr-ekf2OutputPredictor
EKF2 provide alternative output velocity prediction
2016-05-24 08:46:33 +10:00
Paul Riseborough 9f0b9909e7 Merge pull request #149 from PX4/pr-ekf2FixUnwantedGpsUse
EKF: prevent unwanted GPS use
2016-05-24 08:45:18 +10:00
Paul Riseborough c8c2d6d963 Merge pull request #145 from CarlOlsson/small_fix
Deleted second update of transformation matrix
2016-05-23 07:40:58 +10:00
Paul Riseborough 4c5252269c Merge pull request #142 from PX4/pr-ekf2ImproveHeadingReset
EKF: Improved heading reset
2016-05-21 22:38:26 +10:00
Paul Riseborough 4b279a8836 Merge pull request #144 from waltjohnson/master
Addressed C99 compiler issues of initializing variables in header and…
2016-05-20 07:37:24 +10:00
Paul Riseborough f5e2dabc2b Create CONTRIBUTING.md 2016-05-19 18:14:33 +10:00
Paul Riseborough e3b9800cac Merge pull request #138 from pickledgator/evTesting
EV testing
2016-05-19 12:56:41 +10:00
Paul Riseborough 867bc8c601 Merge pull request #139 from PX4/pr-ekf2Alignment
EKF: Improve angular alignment consistency
2016-05-18 21:23:31 +10:00
Paul Riseborough 50ba26a434 Merge pull request #134 from PX4/pr-ekf2Alignment
EKF: Improved tilt alignment control
2016-05-18 12:34:22 +10:00
Paul Riseborough d5046b078e Merge pull request #106 from PX4/pr-visionSupport
EKF: add support for external vision data
2016-05-16 07:32:46 +10:00