# 使用 WIFI 原始模式的视频流数据链路 (WFB-ng)

本教程介绍如何设置 配套电脑 摄像头,从而将视频流从无人飞行器传输到地面计算机,并显示为 QGroundControl.设置使用未连接(广播)模式下的 WiFi 和软件。 WFB-ng 项目 (打开新窗口).

该通道还可用作双向 遥测 在飞行过程中,WFB-ng 可通过 MAVLink 链接和 TCP/IP 隧道对无人机进行控制。如果您使用 QGroundControl(使用 MAVLink)中的操纵杆手动控制无人机,那么您可以使用 WFB-ng 作为所有无人机通信(视频、MAVLink 遥测、使用操纵杆的远程控制)的单一链接。

警告

使用前 WFB-ng 检查监管机构是否允许在您的国家使用这种 WiFi。

# WFB-ng 概览

WFB-ng 项目 提供了一种使用低级 WiFi 数据包的数据传输,以避免普通 IEEE 802.11 协议栈的距离和延迟限制。

的高水平效益 WFB-ng 包括

  • 低延迟视频链接
  • 双向遥测链路(MAVLink)。
  • TCP/IP 隧道。
  • 自动 TX 分集 - 在地面上使用多个卡,以避免天线跟踪器。
  • 全链路加密和验证(使用 解钠 (打开新窗口)).
  • 聚合 MAVLink 数据包(传输前将小数据包打包成批)。
  • 增强型 OSD (打开新窗口) 用于 Raspberry PI 或使用 gstreamer 的通用 Linux 桌面。

更多信息见 常见问题 下图

# 硬件

# 载具设置

载具设置包括

# 地面站

  • 地面站计算机。这些选项已经过测试:

    • 任何带有 USB 端口的 Linux 计算机(在 Ubuntu 18.04 x86-64 上进行了测试)
    • 通过以太网(RasPi 提供 wifi 连接)连接一台装有运行 QGround 控制功能的任何操作系统的电脑和树莓派(Raspberry PI)。
  • WiFi 模块 alpha awus036ach (打开新窗口) 或任何其他 RTL8812au 卡。请参见 WFB-ng wiki > WiFi 硬件 (打开新窗口) 了解有关支持模块的更多信息。

# 硬件改造

Alpha AWUS036ACH 是一款中等功率卡,在传输时会消耗大量电流。如果使用普通 USB2 为其供电,大多数情况下都会重置端口。 ARM 板.如果将其连接到 USB3 通过 本机 USB3 电缆Linux 笔记本电脑 无需修改即可使用。

对于 树莓派 (无人飞行器或地面)必须通过两种方式之一直接连接到 5V BEC(或地面 pi 的大电流电源适配器):

  • 制作自定义 USB 电缆([切割 +5V 将 USB 插头上的导线连接至 BEC])(https://electronics.stackexchange.com/questions/218500/usb-charge-and-data-separate-cables)
  • 剪一个 +5V 在靠近 USB 端口的 PCB 上接线,并将其连接至 BEC(如有疑问,请勿这样做,而应使用定制电缆)。

还必须添加一个 470uF 低 ESR 电容器 (之间(如 ESC 所具有的 卡 +5v 和接地 以过滤电压尖峰。您应该将电容器与定制的 USB 电缆集成在一起。如果没有电容器,数据包可能会损坏或丢失。请注意 接地回路 (打开新窗口) 当使用多条接地线时。

备注

如果您使用的是从淘宝/Aliexpress 购买的特殊"very"高功率显卡,那么在任何情况下,您都必须按照上述方法为显卡供电。

# 无人机配置

  1. 从以下地址下载树莓派图像 WFB-NG 最新版本 (打开新窗口)
  2. 闪烁到 无人驾驶飞行器 树莓派
  3. 重新启动它,然后使用标准凭据 ssh(pi/raspberry)。
  4. 运行以下操作 角色,如 motd 中显示的那样。
  5. 设置摄像头管道打开 /etc/systemd/system/fpv-camera.service 并根据您的摄像头(PI 摄像头或罗技摄像头)取消管道注释
  6. 开放 /etc/wifibroadcast.cfg 并根据天线设置配置 WiFi 频道(或使用 5.8GHz 的默认 #165)。
  7. 配置 PX4,以 1500 Kbps 的速度输出遥测数据流(其他 UART 速度与 RPI 分频器不匹配)。将 Pixhawk UART 连接到 Raspberry PI UART。在 /etc/wifibroadcast.cfg 未批注 同行 = 'serial:ttyS0:1500000'[无人机导航链接] 节。

# 使用 Linux 笔记本电脑作为 GCS(比使用 RasPi 更难)

  1. 关于 地面 Linux 开发计算机

    苏都 适切 安装 libpcap-dev libsodium-dev python3-all python3-twisted
    Git clone -b stable https://github.com/svpcom/wfb-ng.git
    CD wfb-ng &&; 生产 辩论 &&; 苏都 适切 安装 ./deb_dist/wfb-ng*.deb
    
  2. 按照 设置 HOWTO (打开新窗口) 完成安装

  3. 不要忘记复制 /etc/gs.key无人驾驶飞行器 侧对 地面 侧绑定两个设置。

  4. 此外,不要忘记使用与无人机侧相同的频率频道。

# 使用 Raspberry PI 作为 GCS(更简单)

如果您使用的是 Windows 或 OSX 操作系统,或者不想在 Linux 笔记本电脑上安装 WFB-ng,那么您可以使用相同的预构建镜像和另一台 Raspberry Pi:

  1. 闪存图像到 地面 树莓派
  2. 重新启动它,然后使用标准凭证 SSH 登录(pi/raspberry)。
  3. 运行以下操作 地面 中显示的角色,但跳过设置 fpv 视频 服务和 osd 服务。
  4. 通过以太网连接笔记本电脑和地面 RasPi,并配置 IP 地址
  5. 编辑 /etc/wifibroadcast.cfg 中设置笔记本电脑的 IP 地址。 [全球卫星导航系统链接][视频] 部分(取代 127.0.0.0.1).

# QGroundControl 设置

  1. 运行 QGroundControl 并设置 RTP h264 5600 端口作为视频源
  2. 使用默认设置(端口 14550 上的 udp)作为 mavlink 信号源

# 调整参数无线电设置

在默认设置下,WFB 使用无线电信道 165(5825 MHz),宽度为 20MHz,MCS #1(QPSK 1/2)和长 GI。这可提供 ~7 mbit/s 的 有效 速度(即经过 FEC 和数据包编码后的可用速度)为 双向 总之,因为 WiFi 是半双工的。因此,它适用于 720p@49fps (4 mbit/s)视频下行流 + 两个全速遥测流(上行和下行)。如果您需要更高的带宽,可以使用其他 MCS 指数(例如 2 或更高指数)。

# 天线和分集

在简单的情况下,您可以使用线性全向天线(与 WIFI 卡捆绑在一起)或环形天线(与 WIFI 卡捆绑在一起)。圆极化盖叶天线 (打开新窗口)极化)。如果要建立长距离链接,可以使用多个带有定向和全向天线的无线适配器。开箱即支持多个适配器的 TX/RX 分集(只需添加多个网卡到 /etc/default/wifibroadcast).如果 WiFi 适配器有两根天线(如 Alfa AWU036ACH),TX 分集可通过以下方式实现 STBC (打开新窗口).目前不支持带 4 个端口的卡 (如 Alfa AWUS1900)。

# 常见问题

Q: 使用 wfb-ng 可以传输什么类型的数据?

A: 数据包大小为 1445 的任何 UDP。例如 RTP 或 MAVLink 内的 x264。

Q: 什么是传输保证?

A: Wifibroadcast 使用 FEC(前向纠错)。您可以根据自己的需要对其进行调整(TX 和 RX 同时进行!)。

Q 我还能飞多远?

A 这取决于您的天线和 WiFi 卡。使用阿尔法 AWU036ACH 和地面上的 20dBi 贴片天线,可以达到 ~20km 的距离。

警告

不要使用遥控发射机工作的波段!或正确设置 RTL 以避免模型丢失。

Q: 只支持 Raspberry PI 吗?

A: WFB-ng 与任何 GPU 都不绑定--它使用 UDP 数据包运行。但要获得 RTP 流,您需要一个视频编码器(可将摄像机的原始数据编码为 x264 流),或者您必须使用带有硬件视频编解码器的摄像机,如罗技 C920 或以太网安全摄像机。

  • RPI3b/3b+/ZeroW。可提供预制图像,但只支持 CSI 摄像机的 h264 视频。
  • Jetson Nano。它支持 h264 和 h265,但您需要根据以下说明自行设置 设置 HOWTO (打开新窗口)

您可以使用任何其他 Linux ARM 板,但需要使用内置硬件视频编解码器的以太网或 USB 摄像头(如 Logitech C920)。

# 理论

WFB-ng 将 WiFi 网卡置于监控模式。该模式允许发送和接收任意数据包,无需关联和等待 ACK 数据包。 监控模式下 IEEE 802.11 硬件的注入能力和媒体访问分析 (打开新窗口) 802.11 时序 (打开新窗口)