Commit Graph

49 Commits

Author SHA1 Message Date
bresch
2aaa54037c ekf2: split gnss pos/vel flags
They can be selected independently in the control parameter, so there is
no reason why they should share the same flag.
2025-03-11 14:14:40 +01:00
Matthias Grob
f2bca92221 Fix duplicate newlines at the end of files 2024-07-19 14:33:36 +02:00
Matthias Grob
7f14110bb1 Fix missing newlines at the end of files 2024-07-19 14:33:36 +02:00
Daniel Agar
ca9948a84d msgs/EstimatorStatus.msg rename mag_test_ratio -> hdg_test_ratio
- this is used for more than just mag
2024-07-18 16:39:18 +02:00
Daniel Agar
dcb1103299 ekf2: move estimator_status test ratios to filtered values 2024-06-20 13:41:54 -04:00
bresch
f2482d7157 ekf-pdf-report: plot bias using bias msg instead of state vector 2023-11-20 20:10:16 -05:00
Sean Murphy
7ed90c6d0c ekf2: process_logdata_ekf.py fix reject_mag* and imu_coning* key errors 2023-06-21 21:08:43 -04:00
bresch
d04a91a3ae ekf2_post-processing: use estimator_status_flags instead of bitmasks 2022-05-24 16:15:42 +02:00
bresch
e9c07fac6f EKF: move python tuning tools to EKF module 2022-04-21 13:39:26 +02:00
bresch
49bc5082e7 Tools: add baro pressure coefficient tuning script 2022-04-21 13:39:26 +02:00
bresch
ea7009546b mc wind: rename MC wind estimor tuning script 2022-04-21 13:39:26 +02:00
Daniel Agar
9c381a60b5 Tools/ecl_ekf: fix vibe_metrics usage (moved to vehicle_imu_status instances) 2022-04-13 10:36:45 -04:00
bresch
76a59d5c66 Tools: add drag fusion tuning script 2022-04-11 09:56:01 -04:00
Antonio Sanjurjo Cortés
fa45eacea3 Fix and unify the maximum allowed PDOP references 2021-02-04 10:20:22 +01:00
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