OpenIPC开源FPV之Adaptive-Link日志分析
OpenIPC开源FPV之Adaptive-Link日志分析
- 1. 源由
- 2. 基础知识
- 3. 采集数据
- 4. 操作步骤
- 4.1 获取工具
- 4.2 信号扫描
- 4.3 简单分析
- 5. 深入分析
- 5.1 期望/实际比特率
- 5.2 芯片工作温度
- 5.3 RSSI/SNR评分
- 5.4 惩罚机制
- 5.5 信号质量评分
- 5.6 丢包/纠错/IDR
- 6. 总结
- 7. 参考资料
1. 源由
鉴于当前OpenIPC自适应链路有一系列的算法,且RF性能硬件设计的相关。
为了更好的理解以及优化算法模型,确保链路高速、稳定,尤其在异常环境下能高效调整。
这里通过日志,以及一些列的方法来分析RF性能,从逻辑及算法角度更好的理解,以及进行相关性能测试。
2. 基础知识
- 【1】OpenIPC开源FPV之Adaptive-Link安装
- 【2】OpenIPC开源FPV之Adaptive-Link关键RF参数
- 【3】OpenIPC开源FPV之Adaptive-Link信号干扰
- 【4】OpenIPC开源FPV之Adaptive-Link新版本算法v0.60.0
3. 采集数据
取OpenIPC日志数据,主要来源OSD信息。笔者使用的是B4,使用地面站Bx方式主要目的是为了获取日志SRT文件。
- 【1】Open FPV VTX开源之OSD使用分类
- 【2】Jetson Orin Nano Super之jetson-fpv开源代码下载
注1:日志分析采用的是Linux脚本,因此不管通过何种方式,只要将日志文件SRT获取到就可以用于分析。
注2:天空端也是可以配置记录SRT文件信息的。
注3:关于SRT的方法和相关讨论详见:[Request] OSD info save as sperate files, not in DVR #35
4. 操作步骤
请注意,分析日志文件主要是jetson-fpv + SRT文件。
4.1 获取工具
$ git clone https://github.com/SnapDragonfly/jetson-fpv.git
4.2 信号扫描
工具会扫描WiFi通信频段上有信号的是哪些频段。
- 2.4 GHz Band: Channel 1-14
- 5 GHz Band for channels 36 to 64 (5.180 GHz - 5.320 GHz)
- 5 GHz Band for channels 100 to 144 (5.500 GHz - 5.740 GHz)
- 5 GHz Band for channels 149 to 165 (5.745 GHz - 5.825 GHz)
根据测试需求,可以选择合适的频段进行OpenIPC设置,天空端通常在/etc/wfb.conf
,地面端路径/etc/wifibroadcast.cfg
。
$ cd jetson-fpv
$ sudo ./scripts/tools/scan_wifi_channel.sh wlP1p1s0
[sudo] password for daniel:
Scanning Wi-Fi Signals on Interface: wlP1p1s0 ...
-------------------------------------------
Scanning Wi-Fi 2.4GHz channel ...
Processing: [====================] 100%
Scanning Wi-Fi 5.8GHz channel ...
Processing: [====================] 100%
WiFi List (35 Signals):
Channel 1 Frequency 2.412
Channel 2 Frequency 2.417
Channel 3 Frequency 2.422
Channel 4 Frequency 2.427
Channel 5 Frequency 2.432
Channel 6 Frequency 2.437
Channel 7 Frequency 2.442
Channel 8 Frequency 2.447
Channel 9 Frequency 2.452
Channel 10 Frequency 2.457
Channel 11 Frequency 2.462
Channel 36 Frequency 5.180
Channel 40 Frequency 5.200
Channel 44 Frequency 5.220
Channel 48 Frequency 5.240
Channel 52 Frequency 5.260
Channel 56 Frequency 5.280
Channel 60 Frequency 5.300
Channel 64 Frequency 5.320
Channel 100 Frequency 5.500
Channel 104 Frequency 5.520
Channel 108 Frequency 5.540
Channel 112 Frequency 5.560
Channel 116 Frequency 5.580
Channel 120 Frequency 5.600
Channel 124 Frequency 5.620
Channel 128 Frequency 5.640
Channel 132 Frequency 5.660
Channel 136 Frequency 5.680
Channel 140 Frequency 5.700
Channel 149 Frequency 5.745
Channel 153 Frequency 5.765
Channel 157 Frequency 5.785
Channel 161 Frequency 5.805
Channel 165 Frequency 5.825
注1:通过ifconfig
选择一个合适的无线网卡,比如:wlP1p1s0
注2:如果没有tcpdump
命令,请使用sudo apt install tcpdump
进行安装。
4.3 简单分析
通过计算机简单分析,可以知道大致情况如下:
- 接收端没有发现SRT文件
- CPU使用率极值范围
- CPU温度极值范围
- 图传发射功率极值范围
- 图传发射温度极值范围
- 图传工作比特率极值范围
- RSSI/SNR/LinkQ极值范围
- 丢包/纠错相关统计数据
$ cd jetson-fpv
$ ./scripts/tools/analysis_alink_log.sh 2025-04-04_14-08-50.srt
Processing SubRip Subtitle File: 2025-04-04_14-08-50.srt
Processing: [====================] 100%
alink srt file is consistent!
./2025-04-04_14-08-50.csv auto-generated!
------------------------------------------
CPU Usage : 43 ~ 92 %
CPU Celsius: 43 ~ 58 C
!WARNING!: CPU usage exceeded 70%!
------------------------------------------
TX Power: 50 ~ 55
TX Celsius: 47 ~ 67 C
TX bitrate: 3072 ~ 7168 kbps
------------------------------------------
RSSI : -62 ~ -35
SNR : 21 ~ 27
LinkQ: 1000 ~ 1699
smthQ: 1000 ~ 1665
------------------------------------------
RX FEC : 0 ~ 13
RX lost : 0 ~ 5
TX penalty : -480 ~ 0
TX dropped : 0 ~ 197
TX requested: 0 ~ 2
RX requested: 0 ~ 1
注1:这里有很多可以下载使用的分析日志:Enhancing Packet Loss Handling in FPV Scenarios with Increased FEC #21
注2:如果使用--verbose
将会给出很多二维点图,这是时间域展开的一张信息图,分别表示日志记录时刻相关丢包/纠错/取值内容。
5. 深入分析
通过前面的操作步骤,从整体概念上已经基本上对于该次测试有了整体,极值范围的了解。
为了更加深入的理解和分析数据,上述工具会导出一个./2025-04-04_14-08-50.csv auto-generated!
CSV数据文件,其中有所有adaptive-link
在OSD上显示的数据。
5.1 期望/实际比特率
- Kbitrate是期望/设置值
- Mbitrate是实际比特率
5.2 芯片工作温度
- temp代表CPU的温度
- tx-temp代表RF芯片的温度
5.3 RSSI/SNR评分
- RSSI 信号强度
- SNR 信噪比
- link_score 基于RSSI和SNR计算的链路初步评分
5.4 惩罚机制
由于接收端FEC恢复报文,以及实际丢包,计算的惩罚值pnlty
。后续线性整合到评分值中。
5.5 信号质量评分
- pnlt基于丢包/纠错的惩罚估值
- linkq基于RSSI/SNR的评分+惩罚估值
- smthdq是基于EWMA过滤(Exponentially Weighted Moving Average)的去噪评分
5.6 丢包/纠错/IDR
- 发送端弃包
- 接收端丢包
- 接收端FEC恢复
6. 总结
基于当前情况,暂时对数据做了上述要点分析:
- 极值分析
- 比特率分析
- 芯片工作温度分析
- RSSI/SNR评分模型分析
- 惩罚机制评分模型分析
- 综合信号质量评分
- 丢包/纠错/IDR分析
暂时先整理这些,后续随着自适应链路更多细节的探讨,在增加相关研讨内容。
7. 参考资料
【1】OpenIPC开源FPV之Adaptive-Link关键RF参数
【2】OpenIPC开源FPV之Adaptive-Link信号干扰
【3】OpenIPC开源FPV之Adaptive-Link新版本算法v0.60.0