无人机图传模块 wfb-ng openipc-fpv,4G

        openipc 的定位是为各种模块提供底层的驱动和linux最小系统,openipc 是采用buildroot系统编译而成,因此二次开发能力有点麻烦。为啥openipc 会用于无人机图传呢?因为openipc可以将现有的网络摄像头ip-camera模块直接利用起来,从而降低硬件成本,但是记住,openipc 的核心是处理各种厂家的摄像头的最小系统,用于无人机图像传输的应一个重要应用是wfb,wifi-broadcast,此时采用的是wfb-ng,新一代的wifi广播技术。

         如果你想用网络摄像头,淘宝搜索 网络摄像头,选择支持wifi 模块的,但是购买不要选择焊接WiFi模块, 主芯片和sensor 的支持请参考文章wiki,注意留意是否暴漏串口刷机的引脚(RX,TX,GND),上闲鱼搜索创维A6 wifi 网卡,焊接wfi-USB 接口,openipc 官网上刷机FPV固件即可支持。

        对于无人机图传看来说,本文将采用wfb-ng技术,将数据传输出去。openipc 提供了图像的数据,虽然openipc 也有4G的方案,但是受制于主芯片频率和二次开发的方便性,采用了瑞芯微的主芯片,哔哩哔哩上也有采用rv1103-rv1106的方案,但是考虑后期AI加入,因此采用radxa zero 3E 方案。,切记3e 安装官方的debian 11 的系统,其它系统暂不考虑,整体架构如下:

1. wfb-ng 以及8812eu 驱动安装

 1.1 安装 8812EU 驱动

 需要安装dkms, 这是一个驱动包安装软件

sudo apt-get install -y dkms bc rpm libelf-dev

下载8812EU 包 github

sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/g' Makefile
sudo  ./dkms-install.sh

1.2 安装wfb-ng

下载wfb-ng,安装必要的编译包

sudo apt install -y libpcap-dev libsodium-dev libevent-dev debhelper dh-python python3-all python3-pip python3-pyroute2 python3-future python3-twisted python3-msgpack python3-stdeb python3-all-dev python3-setuptools python3-jinja2 python3-serial virtualenv

编译,最重要的是编译过程需要下载大量的额github的内容因此需要翻墙

git设置ssh 代理(非常重要,如果没有代理不建议编译,建议直接下载 我编译的包 deb)

git config --global http.proxy 'http://123.45.67.89:8080'
git config --global https.proxy 'https://123.45.67.89:8080'
编译 make deb

编译后会产生drone.key  gs.key, 没有产生可以运行script/wfb_keygen 生成,将drone.key 和gs.key复制到  /etc/

安装 deb

sudo dpkg -i deb_dist/wfb-ng_24.11.29.69559-1_arm64.deb

wfb-ng是通过python的安装包启动

设置  /etc/wifibroadcast.cfg
sudo tee /etc/wifibroadcast.cfg > /dev/null <<EOF
[common]
wifi_channel = 149     # 149 -- radio channel @5745 MHz, range: 5735–5755 MHz, width 20MHz
wifi_region = 'BO'     # Your country for CRDA (use BO or GY if you want max tx power)
#wifi_power = 3000[drone_mavlink]
# use autopilot connected to /dev/ttyUSB0 at 115200 baud:
# peer = 'serial:ttyUSB0:115200'# Connect to autopilot via malink-router or mavlink-proxy:
peer = 'listen://0.0.0.0:14550'   # incoming connection
# peer = 'connect://127.0.0.1:14550'  # outgoing connection[drone_video]
peer = 'listen://0.0.0.0:5602'  # listen for video stream (gstreamer on drone)EOF
设置网卡的一些参数,用于后期提升功率
sudo cat > /etc/modprobe.d/wfb.conf <<EOF
# blacklist stock module
blacklist 88XXau
blacklist 8812au
blacklist rtl8812au
blacklist rtl88x2bs
# maximize output power, see note below
options 88XXau_wfb rtw_tx_pwr_idx_override=30
options 8812eu rtw_tx_pwr_by_rate=0 rtw_tx_pwr_lmt_enable=0
EOF
wfb-ng 设置自启动

设置开机自动启动

sudo systemctl enable wifibroadcast.service

sudo systemctl enable wifibroadcast@drone.service

手动启动

sudo systemctl start wifibroadcast@drone.service

wfb-ng 启动流程如下

1. 启动后会去读取环境变量获取wifi设备名称 /etc/default/wifibroadcast

该脚本会调用  wifi-nics 遍历设备8812au/ 8812eu名称并赋值给环境变量WFB_NICS。(wifi-nics安装在/usr/bin/)

2.执行exec  python 调用包 wfb-server, 此时会读取/etc/wifibroadcast.cfg 文件,

该文件会 设置wifi 通道 wifi_channel  wifi_region wifi_power 

sudo iw reg set <wifi_region>
sudo iw <wlan> set monitor otherbss
sudo iw <wlan> set channel <same_channel> <10MHz>
sudo iw dev wlan0 set txpower fixed <mBm>

3,紧接着会根据 /etc/wifibroadcast.cfg 

drone_mavlink drone_video 启动天空端服务

1. video  用于将本地的udp 视频流广播出去

2. mavlink 可以使用串口或者mavlink-router 进行转发

3.还有一个tun 数据通道的用于发送信息

同样的 gs_mavlink 和gs_video 启动地面端服务,数据流方向与天空端相反

本地启动视频流

1.gst 转发rtsp视频流

gst 将openipc 启动的视频流rtsp 转发到本地的udp 5602 端口上

gst-launch-1.0 rtspsrc location=rtsp://root:12345@192.168.1.10/stream=0 ! udpsink port=5602


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/12791.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

拍照对比,X70 PRO与X90 PRO+的细节差异

以下是局部截图&#xff08;上X70P下X90PP&#xff09; 对比1 这里看不出差异。 对比2 X90PP的字明显更清楚。 对比3 中下的字&#xff0c;X90PP显然更清楚。

深度探索 C 语言操作符:从基础到实战应用

前言&#xff1a; 在 C 语言的编程体系中&#xff0c;操作符就像是一个个精密的齿轮&#xff0c;相互配合驱动着程序的运转。熟练掌握操作符的使用&#xff0c;不仅能编写出高效、简洁的代码&#xff0c;还能深入理解程序运行的底层逻辑。接下来&#xff0c;让我们一同深入探索…

从零开始实现一个双向循环链表:C语言实战

文章目录 1链表的再次介绍2为什么选择双向循环链表&#xff1f;3代码实现&#xff1a;从初始化到销毁1. 定义链表节点2. 初始化链表3. 插入和删除节点4. 链表的其他操作5. 打印链表和判断链表是否为空6. 销毁链表 4测试代码5链表种类介绍6链表与顺序表的区别7存储金字塔L0: 寄存…

简单本地部署deepseek(软件版)

Download Ollama on Windows 下载 下载安装 winr 输入 cmd 然后输入ollama -v&#xff0c;出现ollama版本&#xff0c;安装成功 deepseek-r1 选择1.5b 输入 cmd 下面代码 ollama run deepseek-r1:1.5b 删除deepseek的代码如下&#xff1a; ollama rm deepseek-r1:1.5b 使用…

21.2.1 基本操作

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 Excel的基本操作步骤&#xff1a; 1、打开Excel&#xff1a;定义了一个Application对象&#xff1a; Microsoft.Office.Interop.E…

SGlang 专为大模型设计的高效服务框架

SGlang 是一种专为大型语言模型&#xff08;LLM&#xff09;和视觉语言模型&#xff08;VLM&#xff09;设计的高效服务框架&#xff0c;旨在提升模型的推理速度和灵活性。以下是关于 SGlang 框架的详细介绍&#xff1a; 1. 框架背景与目标 SGlang 是一种快速服务框架&#x…

基于SpringBoot+vue高效旅游管理系统

Spring Boot后端与Vue前端融合&#xff1a;构建高效旅游管理系统 目录 一、项目简介 二、开发技术与环境配置 2.1 SpringBoot框架 2.2 Java语言简介 2.3 Vue的介绍 2.4 mysql数据库介绍 2.5 B/S架构 三、系统功能实现 四、系统项目截图 登录页面 后台管理页面 用户…

visual studio安装

一、下载Visual Studio 访问Visual Studio官方网站。下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 在主页上找到并点击“下载 Visual Studio”按钮。 选择适合需求的版本&#xff0c;例如“Visual Studio Community”&#xff08;免费版本&#xff09;&#x…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(一)

目录 1 -> List 1.1 -> 创建List组件 1.2 -> 添加滚动条 1.3 -> 添加侧边索引栏 1.4 -> 实现列表折叠和展开 1.5 -> 场景示例 2 -> dialog 2.1 -> 创建Dialog组件 2.2 -> 设置弹窗响应 2.3 -> 场景示例 3 -> form 3.1 -> 创建…

Java中的object类

1.Object类是什么&#xff1f; &#x1f7ea;Object 是 Java 类库中的一个特殊类&#xff0c;也是所有类的父类(超类),位于类继承层次结构的顶端。也就是说&#xff0c;Java 允许把任何类型的对象赋给 Object 类型的变量。 &#x1f7e6;Java里面除了Object类&#xff0c;所有的…

manimgl安装

一、环境 笔记本 $ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.5 LTS Release: 22.04 Codename: jammy二、安装miniconda3 manimgl基于python开发&#xff0c;为了防止将笔记本中已有的python环境破坏&#xff0c;因此…

c++中priority_queue的应用及模拟实现

1.介绍 priority_queue 是一种数据结构&#xff0c;它允许你以特定的顺序存储和访问元素。在 C 标准模板库&#xff08;STL&#xff09;中&#xff0c;priority_queue 是一个基于容器适配器的类模板&#xff0c;它默认使用 std::vector 作为底层容器&#xff0c;并且默认使用最…

【技术追踪】DiffMIC:用于医学图像分类的双引导扩散网络(MICCAI-2024)

似乎是第一个用于医学图像分类的扩散模型嗷~ 论文&#xff1a;DiffMIC: Dual-Guidance Diffusion Network for Medical Image Classification 代码&#xff1a;https://github.com/scott-yjyang/DiffMIC 0、摘要 扩散概率模型最近在生成式图像建模中表现出了显著的性能&#xf…

Deepseek v3R1 学习笔记

o1 o1 模型在训练过程中混合了多种奖励函数的设计方法&#xff0c;并且尝试从结果监督转向过程监督&#xff0c;在中间过程进行打分 使用的搜索策略&#xff1a;基于树的搜索和基于顺序修改的搜索 R1 R1-Zero 是从基础模型开始&#xff0c;完全由强化学习驱动&#xff0c;不…

技术书籍写作与编辑沟通指南

引言 撰写技术书籍不仅仅是知识的输出过程&#xff0c;更是与编辑团队紧密合作的协同工作。优秀的技术书籍不仅依赖作者深厚的技术背景&#xff0c;还需要精准的表达、流畅的结构以及符合出版要求的编辑润色。因此&#xff0c;如何高效地与编辑沟通&#xff0c;确保书籍质量&a…

DeepSeek+Ollama+AnythingLLM 本地部署完全指南,打造专属知识库

DeepSeekOllamaAnythingLLM 本地部署完全指南&#xff0c;打造专属知识库 1 Ollama 本地化部署DeepSeek R1 Ollama 是一个用于本地运行大语言模型&#xff08;LLMs&#xff09;的开源工具&#xff0c;提供简单的界面和优化的推理引擎 &#xff0c;使用户能够在个人设备上高效…

更换IP属地会影响网络连接速度吗

在数字化时代&#xff0c;网络连接速度对于个人用户和企业来说都至关重要。无论是日常浏览网页、观看视频&#xff0c;还是进行在线办公、游戏娱乐&#xff0c;网络速度都直接影响着我们的体验。而IP属地&#xff0c;作为网络连接中的一个重要元素&#xff0c;其变动是否会引发…

2025 持续防范 GitHub 投毒,通过 Sharp4SuoExplorer 分析 Visual Studio 隐藏文件

在2024年底的网络安全事件中&#xff0c;某提权工具被发现植入后门&#xff0c;攻击者利用 .suo 文件作为隐蔽的攻击方式。由于 .suo 文件是 Visual Studio 项目的隐藏配置文件&#xff0c;通常不为安全研究人员所关注&#xff0c;因此为攻击者提供了潜在的攻击渠道。 初步调查…

每日Attention学习19——Convolutional Multi-Focal Attention

每日Attention学习19——Convolutional Multi-Focal Attention 模块出处 [ICLR 25 Submission] [link] UltraLightUNet: Rethinking U-shaped Network with Multi-kernel Lightweight Convolutions for Medical Image Segmentation 模块名称 Convolutional Multi-Focal Atte…

【自然语言处理(NLP)】NLP实战:IMDB影评情感分析项目

文章目录 介绍IMDB影评情感分析项目数据集项目实现1. 导包2. 加载IMDB数据3. 查看部分数据4. 分词5. 加载数据整合6. 构建模型7. 词嵌入8. 初始化模型和权重9. glove词向量10. 训练和评估11. 预测 个人主页&#xff1a;道友老李 欢迎加入社区&#xff1a;道友老李的学习社区 介…