Commit Graph

35 Commits

Author SHA1 Message Date
Daniel Agar 0f411d6820
Multi-EKF support (ekf2)
- ekf2 can now run in multi-instance mode (currently up to 9 instances)
    - in multi mode all estimates are published to alternate topics (eg estimator_attitude instead of vehicle_attitude)
 - new ekf2 selector runs in multi-instance mode to monitor and compare all instances, selecting a primary (eg N x estimator_attitude => vehicle_attitude)
 - sensors module accel & gyro inconsistency checks are now relative to the mean of all instances, rather than the current primary (when active ekf2 selector is responsible for choosing primary accel & gyro)
 - existing consumers of estimator_status must check estimator_selector_status to select current primary instance status
 - ekf2 single instance mode is still fully supported and the default

Co-authored-by: Paul Riseborough <gncsolns@gmail.com>
2020-10-27 10:56:11 -04:00
Daniel Agar c57a48682e
Tools: ecl analysis handle estimator_innovations/estimator_innovation_variances size inconsistencies 2020-09-25 10:35:01 -04:00
Daniel Agar 60d613ea04
sensors: sensor_preflight_imu -> sensors_status_imu and run continuously
- inconsistency checks now run continuously instead of only preflight
 - keep inconsistencies for all sensors
 - add per sensor data validator state as overall health flag
2020-09-06 22:06:13 -04:00
Daniel Agar 9ccc1db649 estimator_status split out estimator_states 2020-09-04 10:48:26 -04:00
Daniel Agar 971b1e4b4d sensors: move mag aggregation to new VehicleMagnetometer WorkItem
- purge all reminaing magnetometer IOCTL usage
 - mag calibration add off diagonal (soft iron) scale factors
2020-08-21 10:12:13 -04:00
kamilritz b73c80428e ECL: Clean velPos logging, deprecate ekf2_innovations msg 2019-12-05 11:29:29 +01:00
bresch 09c8c8f706 ekf: use PDOP instead of GDOP as TDOP (part of GDOP) is not given by the GNSS receiver 2019-11-27 10:33:27 +01:00
Alexis Paques 7a5aaa33b2 Fix @property and super function does not work properly if the 'NewStyle' class type is not used.
https://lgtm.com/rules/10030086/
2019-04-03 22:53:10 -04:00
JohannesBrand b01e470ff9
refactor ecl ekf analysis (#11412)
* refactor ekf analysis part 1: move plotting to functions

* add plot_check_flags plot function

* put plots in seperate file

* use object-oriented programming for plotting

* move functions for post processing and pdf report creation to new files

* add in_air_detector and description as a csv file

* refactor metrics and checks into separate functions

* refactor metrics into seperate file, seperate plotting

* ecl-ekf tools: re-structure folder and move results table generation

* ecl-ekf-tool: fix imports and test_results_table

* ecl-ekf tools: bugfix output observer tracking error plot

* ecl-ekf-tools: update batch processing to new api, fix exception handling

* ecl-ekf-tools: use correct in_air_detector

* ecl-ekf-tools: rename csv file containing the bare test results table

* ecl-tools: refactor for improving readability

* ecl-ekf tools: small plotting bugfixes

* ecl-ekf tools: small bugfixes in_air time, on_ground_trans, filenames

* ecl-ekf-tools: fix amber metric bug

* ecl-ekf-tools: remove custom function in inairdetector

* ecl-ekf-tools: remove import of pandas

* ecl-ekf-tools: add python interpreter to the script start

* ecl-ekf-tools pdf_report: fix python interpreter line

* px4-dev-ros-kinetic: update container tag to 2019-02-13

* ecl-ekf-tools python interpreter line: call python3 bin directly

* ecl-ekf-tools: change airtime from namedtuple to class for python 3.5

* ecl-ekf-tools: update docker image px4-dev-ros-kinetic

* ecl-ekf-tools: fix memory leak by correctly closing matplotlib figures
2019-02-18 16:52:02 +01:00
Angel 7097c0a1b8 Fixed small bug in batch_process_metadata_ekf.py 2019-01-28 08:09:26 +01:00
CarlOlsson 5a10db65b6 ecl_tools: Always allocate topic data variables 2018-10-09 09:29:03 -04:00
CarlOlsson 01c2994107 ecl_tools: fix typo in title 2018-10-09 09:29:03 -04:00
CarlOlsson 8058878566 ecl_tools: add error message if topic not found in logfile 2018-10-09 09:29:03 -04:00
CarlOlsson 3424e73aa3 ecl_tools: use pyulog built in function to get dataset 2018-10-09 09:29:03 -04:00
Paul Riseborough 94d953eef2 Tools: Fix EKF data analysis false positives
The high frequency acceleration noise levels in the gazebo models and also seen on some hardware is causing the IMU vibration check warning to fail.

The thresholds have been lifted and the reporting improved to make it clearer which sensor noise is causing the failure.
2018-08-30 09:57:18 +02:00
johannes 62ea0b6ddb ecl-ekf tools: fix division by zero warning by dividing by epsilon 2018-07-15 21:12:27 -04:00
johannes 45483f8cc3 ecl ekf tools: print check failures and warnings (for IMU) to stdout 2018-07-15 21:12:27 -04:00
johannes 78d8061aaf ecl-ekf tools: set exit code to -1 for failed analysis, pipe args
- process_log_data: exit with code -1 if whole system analysis fails
- batch_process_logdata and process_log_data: pipe sensor safety
margin argument to the arguments of the superseeding scripts
- reduce minimum flight length for analysis to 50 samples
2018-07-15 21:12:27 -04:00
johannes b583c5f69a ekf-tools: fix late start early end buffer, split imu checks
analyse_logdata_ekf:
- fix the buffer to start the analyses 5s after takeoff and end
them 5s before landing for logs that start or finish in air
- add flag for turning on-off 5s late start early end buffer
- split the combined imu sensor check into checks for vibration,
bias and output predictor
2018-06-13 08:37:48 +02:00
JohannesBrand 3b4d9efc8f ecl_ekf tools: add sideslip and gps fix type to fix bit error (#9619)
analyse_logdata_ekf:
- add sideslip innovation fail check flag to fix wrongly selected
bits for hagl innovation and optical flow innovations
- plot sideslip innovation fail
- add gps fix type fail flag to fix wrongly selected bits for all
gps check fail flags
- plot gps fix type
2018-06-09 21:57:46 -04:00
johannes 1ee08da9c4 ekf log analysis: fix filter_fault_status and one-off index bug
- analysed_logdata: add filter_fault_status check to test_results
dictionary to prevent a missing entry exception
- analyse_logdata: fix one-off errors of list indices due to python
non-inclusive end indices
2018-05-29 23:43:34 +02:00
JohannesBrand eb6086cc39 ecl-ekf-tools: fix a bug related to time index calculation (#9489)
- fix start and end time indices calculation
2018-05-19 19:25:48 -04:00
johannes b98cd6ecb5 ecl-ekf tools: separate the analysis from the visualization and preprocessing
- move the analysis parts of the process_logdata_ekf script to
the 'analyse_ekf' function in a new file analyse_logdata_ekf.py
- return a test_results dictionary from analyse_ekf
- still process log loading, preprocessing and results file output in
process_logdata_ekf
- add command line argument to toggle plotting
- add command line argument to use different dictionary to check_level_dict.csv
2018-04-27 22:34:17 +02:00
johannes a0b4bbed5e ecl-ekf tools: clean up - move code to correct scope
- move code that is needed for general analysis out of plot scope
2018-04-27 22:34:17 +02:00
Daniel Agar ebed380998 process_logdata_ekf don't use Xwindows backend 2018-03-30 18:54:04 -04:00
Daniel Agar 2e207801d8 ecl process logdata script always use correct check_level_dict path 2018-03-30 18:54:04 -04:00
johannes b69a4df20c tools-ecl-ekf: remove commas to prevent csv file import errors
- remove commas from a csv table file string to avoid import errors
2018-02-08 17:18:41 +01:00
johannes 26f9e56014 change short option for overwrite to be a single letter 2018-02-05 15:34:03 +01:00
johannes 5357d680d2 print "skipping files" information to console 2018-02-05 15:34:03 +01:00
johannes 0e82e2ec67 update the batch process script for the ekf analysis tool to support resumed analysis:
- ulog files are skipped from the analysis, if a corresponding .pdf file already exists
	- an overwrite flag can be set to analyse all the files
2018-02-05 15:34:03 +01:00
Khoi Tran 355205554a Use format to properly format file for process_logdata_parser.py 2017-06-20 08:24:30 +02:00
Daniel Agar ef5bc526de Tools/ecl_ekf mark executable 2017-05-17 09:02:52 +02:00
Paul Riseborough 1843061376 Tools/ecl_ekf: Improvements to ecl log analysis scripts
Fix error in scaling of population high frequency vibration metrics
Add histograms for delta angle and velocity bias data
Fix variable descriptions
2017-04-21 08:34:19 +02:00
Paul Riseborough 2a34bde0e9 Tools/ecl_ekf: Update EKF log analysis
Add assessment of IMU bias and mag field estimation
Reduce warning false positives by adjusting thresholds and eliminating use of peak value plots for output observer monitoring
Clear each figure after saving to reduce memory usage
2017-04-21 08:34:19 +02:00
Paul Riseborough bf06066010 Tools: Add scripts for ecl EKF log file analysis 2017-02-20 07:53:07 +01:00