yincheng.zhong
2025-12-04 f88f3da8f132cd1dd321dfc584a1fe68b6eb2138
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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°,车辆未保持直行!转向补偿值不正确!")