当前位置: 首页 > news >正文

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 简单分析

通过计算机简单分析,可以知道大致情况如下:

  1. 接收端没有发现SRT文件
  2. CPU使用率极值范围
  3. CPU温度极值范围
  4. 图传发射功率极值范围
  5. 图传发射温度极值范围
  6. 图传工作比特率极值范围
  7. RSSI/SNR/LinkQ极值范围
  8. 丢包/纠错相关统计数据
$ 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

相关文章:

  • 【Linux操作系统】:信号
  • 【Java设计模式】第10章 外观模式讲解
  • C++进阶笔记第一篇:程序的内存模型
  • 简单回溯(组合力扣77)
  • OpenCV 图形API(22)矩阵操作
  • SAP Overview
  • 淘宝 API 高并发优化:突破 QPS 限制的分布式爬虫架构设计
  • java导入excel更新设备经纬度度数或者度分秒
  • UTF-8和GBK编码的区别和详细解释
  • Unity Input 2023 Release-Notes
  • 数据结构第六章(一) -图
  • Dynamics 365 Business Central VS Code AL 开发 多语言的支持
  • Linux系统远程操作和程序编译
  • Spring Boot 国际化配置项详解
  • STM32单片机入门学习——第27节: [9-3] USART串口发送串口发送+接收
  • 【算法手记11】NC41 最长无重复子数组 NC379 重排字符串
  • 质数筛(循环遍历,埃氏筛法,欧拉筛法)
  • 多线程编程:提高程序效率与响应性
  • Plusar集群搭建-Ubuntu20.04-Winterm
  • 容器化技术
  • 印巴开始互袭军事目标,专家:冲突“螺旋式升级”后果或不可控
  • 这座古村,藏着多少赣韵风华
  • 解放军仪仗分队参加白俄罗斯纪念苏联伟大卫国战争胜利80周年阅兵活动
  • 国办印发《关于进一步加强困境儿童福利保障工作的意见》
  • 金地集团:今年前4个月实现销售额109.3亿元,同比下降52.44%
  • 中国中古史集刊高质量发展论坛暨《唐史论丛》创刊四十周年纪念会召开