#!/usr/bin/env python3 import sys log_file = sys.argv[1] if len(sys.argv) > 1 else "calibration_20251204_171502.log" # 提取FWD_MID_C阶段数据 fwd_mid_data = [] with open(log_file, 'r', encoding='utf-8', errors='ignore') as f: for line in f: if 'FWD_MID_C' in line and line.startswith('$CAL'): parts = line.strip().split(',') if len(parts) >= 12: fwd_mid_data.append({ 'seq': parts[1], 'time_ms': parts[2], 'pwm_t': parts[4], 'pwm_s': parts[5], 'x': parts[6], 'y': parts[7], 'hdg': parts[9] }) print(f"FWD_MID_C 阶段共 {len(fwd_mid_data)} 条数据") if len(fwd_mid_data) >= 5: print(f"\n首条: seq={fwd_mid_data[0]['seq']}, time={fwd_mid_data[0]['time_ms']}, x={fwd_mid_data[0]['x']}, y={fwd_mid_data[0]['y']}, hdg={fwd_mid_data[0]['hdg']}, pwm={fwd_mid_data[0]['pwm_t']}/{fwd_mid_data[0]['pwm_s']}") print(f"第10条: seq={fwd_mid_data[9]['seq']}, time={fwd_mid_data[9]['time_ms']}, x={fwd_mid_data[9]['x']}, y={fwd_mid_data[9]['y']}, hdg={fwd_mid_data[9]['hdg']}, pwm={fwd_mid_data[9]['pwm_t']}/{fwd_mid_data[9]['pwm_s']}") print(f"末条: seq={fwd_mid_data[-1]['seq']}, time={fwd_mid_data[-1]['time_ms']}, x={fwd_mid_data[-1]['x']}, y={fwd_mid_data[-1]['y']}, hdg={fwd_mid_data[-1]['hdg']}, pwm={fwd_mid_data[-1]['pwm_t']}/{fwd_mid_data[-1]['pwm_s']}") # 计算航向变化 hdg_start = float(fwd_mid_data[0]['hdg']) hdg_end = float(fwd_mid_data[-1]['hdg']) hdg_change = hdg_end - hdg_start print(f"\n航向变化: {hdg_start:.2f}° → {hdg_end:.2f}° (变化 {hdg_change:.2f}°)") if abs(hdg_change) > 10: print("⚠️ 警告:航向变化超过10°,车辆未保持直行!转向补偿值不正确!")