forked from Archive/PX4-Autopilot
ecl ekf tools: print check failures and warnings (for IMU) to stdout
This commit is contained in:
parent
78d8061aaf
commit
45483f8cc3
|
@ -1311,17 +1311,20 @@ def analyse_ekf(estimator_status, ekf2_innovations, sensor_preflight, check_leve
|
||||||
test_results['master_status'][0] = 'Warning'
|
test_results['master_status'][0] = 'Warning'
|
||||||
test_results['imu_sensor_status'][0] = 'Warning'
|
test_results['imu_sensor_status'][0] = 'Warning'
|
||||||
test_results['imu_vibration_check'][0] = 'Warning'
|
test_results['imu_vibration_check'][0] = 'Warning'
|
||||||
|
print('IMU vibration check warning.')
|
||||||
if ((test_results.get('imu_dang_bias_median')[0] > check_levels.get('imu_dang_bias_median_warn')) or
|
if ((test_results.get('imu_dang_bias_median')[0] > check_levels.get('imu_dang_bias_median_warn')) or
|
||||||
(test_results.get('imu_dvel_bias_median')[0] > check_levels.get('imu_dvel_bias_median_warn'))):
|
(test_results.get('imu_dvel_bias_median')[0] > check_levels.get('imu_dvel_bias_median_warn'))):
|
||||||
test_results['master_status'][0] = 'Warning'
|
test_results['master_status'][0] = 'Warning'
|
||||||
test_results['imu_sensor_status'][0] = 'Warning'
|
test_results['imu_sensor_status'][0] = 'Warning'
|
||||||
test_results['imu_bias_check'][0] = 'Warning'
|
test_results['imu_bias_check'][0] = 'Warning'
|
||||||
|
print('IMU bias check warning.')
|
||||||
if ((test_results.get('output_obs_ang_err_median')[0] > check_levels.get('obs_ang_err_median_warn')) or
|
if ((test_results.get('output_obs_ang_err_median')[0] > check_levels.get('obs_ang_err_median_warn')) or
|
||||||
(test_results.get('output_obs_vel_err_median')[0] > check_levels.get('obs_vel_err_median_warn')) or
|
(test_results.get('output_obs_vel_err_median')[0] > check_levels.get('obs_vel_err_median_warn')) or
|
||||||
(test_results.get('output_obs_pos_err_median')[0] > check_levels.get('obs_pos_err_median_warn'))):
|
(test_results.get('output_obs_pos_err_median')[0] > check_levels.get('obs_pos_err_median_warn'))):
|
||||||
test_results['master_status'][0] = 'Warning'
|
test_results['master_status'][0] = 'Warning'
|
||||||
test_results['imu_sensor_status'][0] = 'Warning'
|
test_results['imu_sensor_status'][0] = 'Warning'
|
||||||
test_results['imu_output_predictor_check'][0] = 'Warning'
|
test_results['imu_output_predictor_check'][0] = 'Warning'
|
||||||
|
print('IMU output predictor check warning.')
|
||||||
# check for failures
|
# check for failures
|
||||||
if ((test_results.get('magx_fail_percentage')[0] > check_levels.get('mag_fail_pct')) or
|
if ((test_results.get('magx_fail_percentage')[0] > check_levels.get('mag_fail_pct')) or
|
||||||
(test_results.get('magy_fail_percentage')[0] > check_levels.get('mag_fail_pct')) or
|
(test_results.get('magy_fail_percentage')[0] > check_levels.get('mag_fail_pct')) or
|
||||||
|
@ -1329,33 +1332,41 @@ def analyse_ekf(estimator_status, ekf2_innovations, sensor_preflight, check_leve
|
||||||
(test_results.get('mag_percentage_amber')[0] > check_levels.get('mag_amber_fail_pct'))):
|
(test_results.get('mag_percentage_amber')[0] > check_levels.get('mag_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['mag_sensor_status'][0] = 'Fail'
|
test_results['mag_sensor_status'][0] = 'Fail'
|
||||||
|
print('Magnetometer sensor check failure.')
|
||||||
if (test_results.get('yaw_fail_percentage')[0] > check_levels.get('yaw_fail_pct')):
|
if (test_results.get('yaw_fail_percentage')[0] > check_levels.get('yaw_fail_pct')):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['yaw_sensor_status'][0] = 'Fail'
|
test_results['yaw_sensor_status'][0] = 'Fail'
|
||||||
|
print('Yaw sensor check failure.')
|
||||||
if ((test_results.get('vel_fail_percentage')[0] > check_levels.get('vel_fail_pct')) or
|
if ((test_results.get('vel_fail_percentage')[0] > check_levels.get('vel_fail_pct')) or
|
||||||
(test_results.get('vel_percentage_amber')[0] > check_levels.get('vel_amber_fail_pct'))):
|
(test_results.get('vel_percentage_amber')[0] > check_levels.get('vel_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['vel_sensor_status'][0] = 'Fail'
|
test_results['vel_sensor_status'][0] = 'Fail'
|
||||||
|
print('Velocity sensor check failure.')
|
||||||
if ((test_results.get('pos_fail_percentage')[0] > check_levels.get('pos_fail_pct')) or
|
if ((test_results.get('pos_fail_percentage')[0] > check_levels.get('pos_fail_pct')) or
|
||||||
(test_results.get('pos_percentage_amber')[0] > check_levels.get('pos_amber_fail_pct'))):
|
(test_results.get('pos_percentage_amber')[0] > check_levels.get('pos_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['pos_sensor_status'][0] = 'Fail'
|
test_results['pos_sensor_status'][0] = 'Fail'
|
||||||
|
print('Position sensor check failure.')
|
||||||
if ((test_results.get('hgt_fail_percentage')[0] > check_levels.get('hgt_fail_pct')) or
|
if ((test_results.get('hgt_fail_percentage')[0] > check_levels.get('hgt_fail_pct')) or
|
||||||
(test_results.get('hgt_percentage_amber')[0] > check_levels.get('hgt_amber_fail_pct'))):
|
(test_results.get('hgt_percentage_amber')[0] > check_levels.get('hgt_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['hgt_sensor_status'][0] = 'Fail'
|
test_results['hgt_sensor_status'][0] = 'Fail'
|
||||||
|
print('Height sensor check failure.')
|
||||||
if ((test_results.get('tas_fail_percentage')[0] > check_levels.get('tas_fail_pct')) or
|
if ((test_results.get('tas_fail_percentage')[0] > check_levels.get('tas_fail_pct')) or
|
||||||
(test_results.get('tas_percentage_amber')[0] > check_levels.get('tas_amber_fail_pct'))):
|
(test_results.get('tas_percentage_amber')[0] > check_levels.get('tas_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['tas_sensor_status'][0] = 'Fail'
|
test_results['tas_sensor_status'][0] = 'Fail'
|
||||||
|
print('Airspeed sensor check failure.')
|
||||||
if ((test_results.get('hagl_fail_percentage')[0] > check_levels.get('hagl_fail_pct')) or
|
if ((test_results.get('hagl_fail_percentage')[0] > check_levels.get('hagl_fail_pct')) or
|
||||||
(test_results.get('hagl_percentage_amber')[0] > check_levels.get('hagl_amber_fail_pct'))):
|
(test_results.get('hagl_percentage_amber')[0] > check_levels.get('hagl_amber_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['hagl_sensor_status'][0] = 'Fail'
|
test_results['hagl_sensor_status'][0] = 'Fail'
|
||||||
|
print('Height above ground sensor check failure.')
|
||||||
if ((test_results.get('ofx_fail_percentage')[0] > check_levels.get('flow_fail_pct')) or
|
if ((test_results.get('ofx_fail_percentage')[0] > check_levels.get('flow_fail_pct')) or
|
||||||
(test_results.get('ofy_fail_percentage')[0] > check_levels.get('flow_fail_pct'))):
|
(test_results.get('ofy_fail_percentage')[0] > check_levels.get('flow_fail_pct'))):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['flow_sensor_status'][0] = 'Fail'
|
test_results['flow_sensor_status'][0] = 'Fail'
|
||||||
|
print('Optical flow sensor check failure.')
|
||||||
if (test_results.get('filter_faults_max')[0] > 0):
|
if (test_results.get('filter_faults_max')[0] > 0):
|
||||||
test_results['master_status'][0] = 'Fail'
|
test_results['master_status'][0] = 'Fail'
|
||||||
test_results['filter_fault_status'][0] = 'Fail'
|
test_results['filter_fault_status'][0] = 'Fail'
|
||||||
|
|
|
@ -40,7 +40,7 @@ if not args.overwrite:
|
||||||
|
|
||||||
# analyse all ulog files
|
# analyse all ulog files
|
||||||
for ulog_file in ulog_files:
|
for ulog_file in ulog_files:
|
||||||
print("\n"+"loading "+ulog_file +" for analysis")
|
print("\n"+"loading " + ulog_file + " for analysis")
|
||||||
if args.no_sensor_safety_margin:
|
if args.no_sensor_safety_margin:
|
||||||
os.system("python process_logdata_ekf.py {} --no-sensor-safety-margin".format(ulog_file))
|
os.system("python process_logdata_ekf.py {} --no-sensor-safety-margin".format(ulog_file))
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Reference in New Issue