Commit Graph

1719 Commits

Author SHA1 Message Date
Paul Riseborough 1b1c049e81 test: Update unit test to match expected behaviour 2021-01-09 11:03:31 -05:00
Paul Riseborough dd259a288f EKF: Don't modify accel bias states and variances when inhibited 2021-01-09 11:03:31 -05:00
Paul Riseborough 3e1f2d8674 EKF: Set dvel bias variance to stored value when state is inactive 2021-01-09 11:03:31 -05:00
bresch c212975abe rng height: reset to baro using common logic
The failsafe from rng height to baro height should occur after a reset
to baro triggered by the controlHeightSensorTimeouts function and not in
the fusion selector.

Until now, the EKF was fusing baro measurements between rng updates if
the range finder ODR was slower than the EKF update rate. This is not
the case anymore as the height reset occurs after 5 seconds.

The unit test has been extended to show this behavior.
2021-01-07 10:07:57 +01:00
Paul Riseborough 03fed323ab EKF: Fix formatting 2021-01-05 21:08:28 +11:00
Paul Riseborough 31fca9c31d EKF: Update GPS loss message 2021-01-05 21:08:28 +11:00
Paul Riseborough c65cf13bb8 EKF; Treat combined sideslip and airspeed as a horizontal aiding source 2021-01-05 21:08:28 +11:00
bresch 211c84c85b Rng finder unit test: cover "un-stuck" logic 2021-01-05 20:04:17 +11:00
Kamil Ritz 78ce46f007 Removing Matlab derivation 2021-01-02 06:29:11 +11:00
Mathieu Bresciani 18f334f4db flow: add unit test for yaw motion (#950) 2020-12-25 09:47:14 +01:00
Kamil Ritz df7f261e03 Add missing const modifier 2020-12-20 14:04:29 +01:00
Daniel Agar a8e0e82858 EKF: update mag LPF immediately 2020-12-17 10:46:04 +01:00
Daniel Agar 398fe159ce EKF: allow initialising without mag depending on configuration
- reduce initial number of required mag and baro samples before init
2020-12-17 19:55:51 +11:00
Daniel Agar 1237087d70 AlphaFilter add constructor that takes alpha and use in EKF 2020-12-16 13:55:59 -05:00
Daniel Agar 37e84b763a README: fix zenodo badge (rename ecl -> PX4-ECL) 2020-12-16 10:47:21 -05:00
Mathieu Bresciani 5ccb8b457d fakePosFusion: reset _last_known_posNE to current state when starting (#943)
* [AUTO COMMIT] update change indication
2020-12-15 10:09:01 +01:00
bresch 9d22f140dd gps_alt: constrain var using 1.5 as a typical ratio of vacc/hacc 2020-12-13 14:39:50 +11:00
bresch b0cf45e2d2 gps_alt: rename getGpsAltVar -> getGpsHeightVariance 2020-12-13 14:39:50 +11:00
bresch 62f2e26c49 gps_alt: reset GPS alt variance usign helper function 2020-12-13 14:39:50 +11:00
bresch f7bddda3d5 gps_alt: do not scale up reported gps vertical accuracy
The comment said that the horizontal accuracy needs to be scaled up
using the typical epv/eph ratio but the epv (vacc) is already available,
so no scaling is required.
2020-12-13 14:39:50 +11:00
bresch 02369cd415 gps_alt: extract measurement variance computation and saturation 2020-12-13 14:39:50 +11:00
Daniel Agar 1541e4b414 EKF: update control status and fault status getters
- the fault status union exceeded 16 bits, but the getter was get_filter_fault_status(uint16_t *val)
2020-12-10 09:13:12 -05:00
zhaoxiaowei fbf67bdef9 reset gps height use vacc 2020-12-10 10:07:59 +01:00
Mathieu Bresciani 8f3df7a97b flow: restructure optical flow control logic (#928)
- extract motion checks performed on ground
- move all non-timing check to controlOpticalFlowFusion. This simplifies and standardirzes the setOpticalFlowData function. Furthermore, in some cases (SITL, PX4Flow), the dt is forced to 0 when the quality is 0 (which is usual on ground) so the ekf needs to ignore those values on ground to initialize properly the flow fusion.
- add filter convergence test
- move check for dt time max in setOpticalFlowData
- in the simulator, do not update dt as this is the sensor integration
period.
2020-12-09 11:33:00 +01:00
kritz 38358002bb Auto update change indication by github actions
Co-authored-by: kamilritz <kamilritz@users.noreply.github.com>
2020-12-08 18:05:28 -05:00
Daniel Agar 688a054bdb EKF: controlDragFusion() add parenthesis for readability 2020-12-08 18:03:04 -05:00
Paul Riseborough 944b18c63e EKF: Remove non useful status print
Local position is never valid when filter is initialised so there is no use printing the status.
2020-12-08 18:03:04 -05:00
Paul Riseborough ee94980a8f EKF: Clean up wind state activation logic
Ensure wind states are deactivated in one place and always when in a non-position mode.
Activate wind states separately for each observation method.
2020-12-08 18:03:04 -05:00
Paul Riseborough 44ebfb8c43 EKF: Don't report local position as valid when in a non-position mode 2020-12-08 18:03:04 -05:00
Daniel Agar da7d41e78a EKF: add mag bias reset helper and update IMU bias reset to match (#924) 2020-12-08 12:16:59 -05:00
Daniel Agar 03cfcb903e EKF: RingBuffer minor improvements
- allocate IMU and output buffers on construction according to defaults
 - determine buffer max time delay based on configuration parameters
 - reorder flowSample and extVisionSample to minimize padding
 - adjust parameter defaults to match PX4-Autopilot
2020-12-03 20:48:51 -05:00
PX4 BuildBot 67f13f7ede Update geo_lookup WMM to latest Wed Dec 2 11:48:25 UTC 2020 2020-12-02 19:47:46 -05:00
bresch da9f314b69 mag: use strength in Gauss 2020-11-10 20:25:09 +11:00
Claudio Micheli c4d162f9a0 EKF: range_finder parameterize range sensor quality hysteresis time
Signed-off-by: Claudio Micheli <claudio@auterion.com>
Co-authored-by: bresch <brescianimathieu@gmail.com>
2020-11-04 12:35:39 -05:00
Daniel Agar 6158d6d841 EKF: add const reference getters for status flags 2020-11-02 13:05:08 -05:00
Daniel Agar a21092804a EKF: remove virtual getters from estimator_interface 2020-11-02 09:35:47 -05:00
Daniel Agar 48a8992caf EKF: move small simple getters to header
- return by const reference where possible
2020-10-30 09:48:45 -04:00
Daniel Agar defb35d8f5 EKF: pass imuSample by const reference 2020-10-30 09:47:22 -04:00
Daniel Agar d85e24d3ca EKF: Ekf class is final 2020-10-27 08:53:58 -04:00
Daniel Agar 961b545da0 cmake: respect MAX_CUSTOM_OPT_LEVEL if set
- ignored for Debug and Coverage builds
2020-10-27 08:53:58 -04:00
Daniel Agar 5ea8824439 EKF: inline simple getters 2020-10-27 08:53:58 -04:00
Daniel Agar 6e99ebd928 EKF: add fault status bit for bad vertical accel data 2020-10-26 17:37:15 +01:00
Daniel Agar d936b85d71 EKF: add fault status bit for clipping 2020-10-26 17:37:15 +01:00
Mathieu Bresciani dd3ffc4192 Optical flow: compute velociy from corrected flow data for logging (#920)
This is really useful when debugging optical flow data
2020-10-26 13:27:52 +01:00
bresch 9126282c03 CI: update containers, sync with px4/Firmware 2020-10-26 11:07:13 +01:00
bresch e80a683981 CI: update change indicator of yaw emergency estimator
This was incorrectly uptated in 1a7c68ea72
2020-10-26 11:07:13 +01:00
Paul Riseborough f666ebb995 EKF: Code format fix - replace 1E-x with 1e-x 2020-10-06 20:50:52 +11:00
Paul Riseborough e82d0af6d2 EKF: Improve code clarity - non functional change 2020-10-06 20:50:52 +11:00
Paul Riseborough 1a7c68ea72 EKF: update change indicator 2020-10-06 20:50:52 +11:00
Paul Riseborough 759d217d5a EKF: Improve protection for GSF weight collapse 2020-10-06 20:50:52 +11:00