Commit Graph

276 Commits

Author SHA1 Message Date
Daniel Agar 07fbd2202a EKF2 use simplified ecl/EKF setIMUData 2019-02-06 20:20:51 -05:00
Daniel Agar ddc9522712 EKF2 always use IMU timestamp as now 2019-02-06 20:20:51 -05:00
Daniel Agar 60f2a92e3d replace <cfloat> with <float.h>
- <cfloat> isn't available in the NuttX c++ library
2019-01-06 19:20:57 -05:00
Julian Oes 5b9dea5604 Replacing usleep with px4_usleep
This is a step towards isolating time from the system.
2018-12-22 10:32:18 +01:00
Nuno Marques cfd1be584e Feature: VIO: add ODOMETRY stream (#11084)
* mavlink_messages: remove LOCAL_POSITION_NED_COV stream

* mavlink_messages.cpp: add ODOMETRY stream

* add MAV_ODOM_LP parameter to activate odometry loopback

* EKF2: add vehicle_odometry publisher

* Replace VISION_POSITION_ESTIMATE loopback with ODOMETRY

* LPE: add vehicle_odometry publisher

* set vehicle_odometry local_frame field

* mavlink_messages.cpp: ODOMETRY frame_id depends on MAV_ODOM_LP
2018-12-21 12:54:04 -05:00
Michael Schaeuble 30dbfd99fb EKF: Estimate WGS84 altitude with filtered AMSL offset 2018-11-22 16:55:30 +01:00
CarlOlsson b85710b194 ekf2: fix typo 2018-10-22 09:26:06 -04:00
CarlOlsson 7b0e0de43c ekf2: fix typo 2018-10-22 09:26:06 -04:00
Paul Riseborough 10354f022e ekf2: Allow use of RTK GPS heading 2018-10-17 09:48:38 -04:00
Beat Küng 23094b9ac9 ekf2: subscribe only to 2 gps topic instances 2018-10-02 14:14:10 +02:00
Paul Riseborough 72f85e4b2d ekf2: Handle blending of dissimilar rate GPS data (#10570)
A filtered update update interval is calculated for each receiver.
If dissimilar interval data is detected, blending occurs when data is received from the slower of the receivers.
If similar interval data is detected, blending occurs when receiver data with similar time stamps is available.
If no data is received from either receiver for longer than 300msec, then no blending will be performed and the most recent data will be used instead.
2018-09-29 09:23:19 -04:00
Beat Küng 0784725ad3 ekf2: only report gps failure flags that are enabled
So that they can be used for reporting errors.
2018-09-29 09:17:53 -04:00
TSC21 f0c231778f fix format 2018-09-18 09:52:33 +02:00
TSC21 9566804f8c fix small typo on PX4_ISFINITE covariance verification 2018-09-18 09:52:33 +02:00
TSC21 cc73f214d1 add covariance matrices index aliases 2018-09-18 09:52:33 +02:00
TSC21 8325724079 general fixes on VIO data access 2018-09-18 09:52:33 +02:00
TSC21 7d7ee8e4bf small rebase fix 2018-09-18 09:52:33 +02:00
TSC21 607be6791c ekf2: use fmaxf instead of fmax 2018-09-18 09:52:33 +02:00
TSC21 efe312d4a6 style and format clean 2018-09-18 09:52:33 +02:00
TSC21 183a63cce9 purge vehicle_vision_position alias 2018-09-18 09:52:33 +02:00
TSC21 8f23a073a4 ekf2: add vehicle_odometry usage and data validation check; update replay as well 2018-09-18 09:52:33 +02:00
Dion Gonano 7691990a50 Pass through horizontal and vertial covariances 2018-09-16 21:30:20 -04:00
Paul Riseborough c2fcef8fc1 ekf2: Tighten preflight GPS quality checks
Enable drift checks and reduce thresholds to reduce likelihood of commencing  use of  a unstable GPS position.
Publish drift data to assist with tuning.
2018-08-17 10:44:07 +10:00
Beat Küng e4485fc8cf ekf2 replay: use correct timestamp for attitude publication 2018-08-06 07:15:51 +02:00
Daniel Agar 0626527d2c EKF2 estimator_status fill n_states and use correct type for health_flags and timeout_flags 2018-08-03 17:42:48 -04:00
Daniel Agar da68ea0d11 estimator_status delete unused nan_flags 2018-08-03 17:42:48 -04:00
Daniel Agar 92ff391c97 ekf2 fix GPS fix_type comparison
- fixes Coverity CID 306253
2018-08-02 07:46:43 +10:00
Paul Riseborough 77f0883cb9 ekf2: Reinstate saving of mag declination for use next start
This capability was removed unintentionally by previous changes.
Requires ecl version with updated declination accessor function
2018-07-26 08:32:09 +02:00
Paul Riseborough fc65939f0e ekf2: Add support for use of multiple GPS receivers (#9765) 2018-07-22 12:18:30 -04:00
Paul Riseborough 4e3f7bdcc6 ekf2: Move range min/max checks to inside the ecl library 2018-07-16 21:59:04 +10:00
Philipp Oettershagen da2fbf60b5 distance sensors: Improve variable naming / description 2018-07-16 21:59:04 +10:00
Philipp Oettershagen 35bde5c9fc LL40LS: Implement driver-specific filtering based on the datasheet and experiments 2018-07-16 21:59:04 +10:00
Daniel Agar 850b1ad6a7 EKF2 split output predictor and publish attitude immediately (#9832)
* EKF2 split output predictor and publish attitude immediately

* ecl: incorporate magic number tidy up
2018-07-09 08:11:24 +10:00
Daniel Agar 9ce83f2208 fix all sign-compare warnings 2018-07-01 09:36:55 +00:00
Paul Riseborough a04468ba9f ekf2: Fix EKF preflight check fail false positives
Uses a relaxed yaw innovation check threshold for fixed wing vehicle that can recover from larger yaw errors after takeoff.
Replaces the peak hold with decay filtering applied to the magnetic yaw innovations with a conventional lowpass filter. This prevents mag heading innovation transients caused by preflight handling from failing the check, but catches persistent errors. Sign swapping of innovations due to angle wrapping is not a problem due to the way that innovations are calculated inside the EKF, so a simple LPF sufficient.
2018-06-29 16:36:38 +00:00
Daniel Agar 96f47d4772 EKF2 add perf counters (#9795) 2018-06-28 17:28:03 -04:00
Mohammed Kabir 8f5ceac936 ekf2 : use INFINITY when altitude limiting is not needed 2018-06-09 13:38:04 +02:00
Mohammed Kabir 6a9377846f ekf2 : update to use new navigation limits architechture 2018-06-09 13:38:04 +02:00
Paul Riseborough cbb4559c15 ecl : update to version that fixes wind relative dead reckoning bug 2018-04-24 00:02:48 -04:00
Daniel Agar 35cb2d0a9e EKF2 fix airspeed orb_copy check 2018-04-24 00:02:48 -04:00
Paul Riseborough 477a42e6f6 ekf2: Enable adjustment of nav validity timeout 2018-04-24 00:02:48 -04:00
Daniel Agar 1ecfb22dbc EKF2 move all orb_subscribe/unsubsribe to the constructor/destructor 2018-04-11 23:26:58 -04:00
Daniel Agar 2a58c7a28c EKF2 and replay add all consumed messages to ekf2_timestamps and refactor 2018-04-11 23:26:58 -04:00
Daniel Agar 3b5b12e1d1 move baro and magnetometer data out of sensor_combined 2018-04-11 23:26:58 -04:00
Daniel Agar 5dc23def2a move pressure altitude from baros to sensors module 2018-04-11 23:26:58 -04:00
Roman d9fbf85c20 ekf2: remove early advertising of wind estimate topic
- if it's not estimating wind it won't publish it below (was fixed)

Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Roman d2ebb0c7a2 ekf2: advertise wind topic early to make sure ekf2 get the first instance
Signed-off-by: Roman <bapstroman@gmail.com>
2018-03-21 18:46:58 +01:00
Daniel Agar 1abf90c6d4 EKF2 only publish wind_estimate if wind velocity is being estimated
- refactor body wind velocity calculation
2018-03-15 07:18:58 +01:00
Beat Küng 279b66bfbd ekf2: use new Param class
reduces RAM usage by 1.3KB
2018-03-13 17:35:15 +01:00
Daniel Agar 458db2e508 vehicle_global_position remove redundant evh and evv
- vehicle_status_flags condition_global_velocity_valid is also unnecessary
2018-03-05 13:20:28 -05:00