无人机图传模块 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
相关文章:
无人机图传模块 wfb-ng openipc-fpv,4G
openipc 的定位是为各种模块提供底层的驱动和linux最小系统,openipc 是采用buildroot系统编译而成,因此二次开发能力有点麻烦。为啥openipc 会用于无人机图传呢?因为openipc可以将现有的网络摄像头ip-camera模块直接利用起来,从而…...
.cc扩展名是什么语言?C语言必须用.c为扩展名吗?主流编程语言扩展名?Java为什么不能用全数字的文件名?
.cc扩展名是什么语言? .cc是C语言使用的扩展名,一种说法是它是c with class的简写,当然C语言使用的扩展名不止.cc和.cpp, 还包含.cxx, .c, .C等,这些在不同编译器系统采用的默认设定不同,需要区分使用。当然,编译器提…...
【MyDB】4-VersionManager 之 3-死锁及超时检测
【MyDB】4-VersionManager 之 3-死锁及超时检测 死锁及超时检测案例背景LockTable锁请求与等待管理 addvm调用addputIntoList,isInList,removeFromList 死锁检测 hasDeadLock方法资源释放与重分配 参考资料 死锁及超时检测 本章涉及代码:top/…...
【Linux】使用管道实现一个简易版本的进程池
文章目录 使用管道实现一个简易版本的进程池流程图代码makefileTask.hppProcessPool.cc 程序流程: 使用管道实现一个简易版本的进程池 流程图 代码 makefile ProcessPool:ProcessPool.ccg -o $ $^ -g -stdc11 .PHONY:clean clean:rm -f ProcessPoolTask.hpp #pr…...
【OpenGL】OpenGL游戏案例(二)
文章目录 特殊效果数据结构生成逻辑更新逻辑 文本渲染类结构构造函数加载函数渲染函数 特殊效果 为提高游戏的趣味性,在游戏中提供了六种特殊效果。 数据结构 PowerUp 类只存储存活数据,实际逻辑在游戏代码中通过Type字段来区分执行 class PowerUp …...
28. 【.NET 8 实战--孢子记账--从单体到微服务】--简易报表--报表定时器与报表数据修正
这篇文章是《.NET 8 实战–孢子记账–从单体到微服务》系列专栏的《单体应用》专栏的最后一片和开发有关的文章。在这片文章中我们一起来实现一个数据统计的功能:报表数据汇总。这个功能为用户查看月度、年度、季度报表提供数据支持。 一、需求 数据统计方面&…...
Java 泛型<? extends Object>
在 Java 泛型中,<? extends Object> 和 <?> 都表示未知类型,但它们在某些情况下有细微的差异。泛型的引入是为了消除运行时错误并增强类型安全性,使代码更具可读性和可维护性。 在 JDK 5 中引入了泛型,以消除编译时…...
FPGA|使用quartus II通过AS下载POF固件
1、将开发板设置到AS下载挡位,或者把下载线插入到AS端口 2、打开quartus II,选择Tools→Programmer→ Mode选择Active Serial Programming 3、点击左侧Add file…,选择 .pof 文件 →start 4、勾选program和verify(可选࿰…...
“新月之智”智能战术头盔系统(CITHS)
新月人物传记:人物传记之新月篇-CSDN博客 相关文章链接(更新): 星际战争模拟系统:新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 目录 一、引言 二、智能头盔控制系统概述 三、系统架…...
php:代码中怎么搭建一个类似linux系统的crontab服务
一、前言 最近使用自己搭建的php框架写一些东西,需要用到异步脚本任务的执行,但是是因为自己搭建的框架没有现成的机制,所以想自己搭建一个类似linux系统的crontab服务的功能。 因为如果直接使用linux crontab的服务配置起来很麻烦࿰…...
【LeetCode: 958. 二叉树的完全性检验 + bfs + 二叉树】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
MinDoc 安装与部署
下载可执行文件 mindoc mindoc_linux_amd64.zip 上传并解压压缩包 cd /opt mkdir mindoc cd mindocunzip mindoc_linux_amd64.zip 创建数据库 CREATE DATABASE mindoc_db DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; 配置数据库 将解压目录下 conf/app.conf.exam…...
从0开始使用面对对象C语言搭建一个基于OLED的图形显示框架(基础组件实现)
目录 基础组件实现 如何将图像和文字显示到OLED上 如何绘制图像 如何绘制文字 如何获取字体? 如何正确的访问字体 如何抽象字体 如何绘制字符串 绘制方案 文本绘制 更加方便的绘制 字体附录 ascii 6x8字体 ascii 8 x 16字体 基础组件实现 我们现在离手…...
windows系统如何检查是否开启了mongodb服务
windows系统如何检查是否开启了mongodb服务!我们有很多软件开发,网站开发时候需要使用到这个mongodb数据库,下面我们看看,如何在windows系统内排查,是否已经启动了本地服务。 在 Windows 系统上,您可以通过…...
VS安卓仿真器下载失败怎么办?
如果网络不稳定,则VS的安卓仿真器很容易下载失败,如下 Downloaded file <USER_HOME>\AppData\Local\Temp\xamarin-android-sdk\x86_64-35_r08.zip not found for Android SDK archive https://dl.google.com/android/repository/sys-img/google_a…...
计算机网络一点事(24)
TCP可靠传输,流量控制 可靠传输:每字节对应一个序号 累计确认:收到ack则正确接收 返回ack推迟确认(不超过0.5s) 两种ack:专门确认(只有首部无数据) 捎带确认(带数据…...
视频拼接,拼接时长版本
目录 视频较长,分辨率较大,这个效果很好,不耗用内存 ffmpeg imageio,适合视频较短 视频较长,分辨率较大,这个效果很好,不耗用内存 ffmpeg import subprocess import glob import os from nats…...
制造企业的成本核算
一、生产成本与制造费用的区别 (1)生产成本,是直接用于产品生产,构成产品实体的材料成本。 包括企业在生产经营过程中实际消耗的原材料、辅助材料、备品备件、外购半成品、燃料、动力包装物以及其它直接材料,和直接参加产品生产的工人工资,以及按生产工人的工资总额和规…...
doris:高并发导入优化(Group Commit)
在高频小批量写入场景下,传统的导入方式存在以下问题: 每个导入都会创建一个独立的事务,都需要经过 FE 解析 SQL 和生成执行计划,影响整体性能每个导入都会生成一个新的版本,导致版本数快速增长,增加了后台…...
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略
LLMs之WebRAG:STORM/Co-STORM的简介、安装和使用方法、案例应用之详细攻略 目录 STORM系统简介 1、Co-STORM 2、更新新闻 STORM系统安装和使用方法 1、安装 pip安装 直接克隆GitHub仓库 2、模型和数据集 两个数据集 FreshWiki数据集 WildSeek数据集 支持…...
3步掌握开源无人机影像处理工具的完整指南
3步掌握开源无人机影像处理工具的完整指南 【免费下载链接】ODM A command line toolkit to generate maps, point clouds, 3D models and DEMs from drone, balloon or kite images. 📷 项目地址: https://gitcode.com/gh_mirrors/od/ODM 你是否面对海量无人…...
如何为永久在线的CRM网站接入稳定的大模型API服务
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为永久在线的CRM网站接入稳定的大模型API服务 对于需要7x24小时提供智能客服或数据分析的CRM网站而言,后台服务的稳…...
PPTX判断包含表id,打印 table表中每个cell内容
PPTX判断包含表id,打印 table表中每个cell内容 i0 for shape in prs.slides[0].shapes: if shape.has_table: # 获取表格 print(fshape{i}) table shape.table for row in range(len(table.rows)): for col in…...
Halcon实战:用光度立体法搞定药片泡罩背面凹坑检测(附完整代码)
Halcon光度立体法在药片泡罩缺陷检测中的工程实践 在药品包装生产线上,透明泡罩背面的微小凹坑和划痕检测一直是工业视觉领域的难点。传统背光或同轴光方案难以捕捉这类三维缺陷的细节特征,而光度立体法通过多角度光源成像重建表面梯度场,为透…...
链式队列:高效实现O(1)入队出队
引言在之前的文章中,我们系统学习了栈结构(顺序栈和链栈)。栈是"后进先出"(LIFO)的结构,而今天要讲解的队列(Queue)则是"先进先出"(FIFO,…...
斗鱼股权曝光:腾讯持股40% 陈少杰持股18%
雷递网 乐天 5月13日斗鱼日前向美国SEC发布20-F文件,文件显示,截至2026年3月31日,腾讯一共持有 12,070,080股,占总股本的40%;斗鱼创始人、联席CEO陈少杰持股为18%。截至2026年3月31日,斗鱼股权结构Morgan S…...
通过Taotoken CLI工具一键配置团队开发环境与统一API调用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken CLI工具一键配置团队开发环境与统一API调用 在团队协作开发中,统一大模型API的接入配置是一个常见需求。…...
Dev-GPT部署指南:简单三步将你的微服务推向Jina云平台
Dev-GPT部署指南:简单三步将你的微服务推向Jina云平台 【免费下载链接】dev-gpt Your Virtual Development Team 项目地址: https://gitcode.com/gh_mirrors/de/dev-gpt Dev-GPT是一款强大的虚拟开发团队工具,能够帮助开发者快速构建和部署微服务…...
PyVisionAI:基于视觉大模型的文档内容智能提取与理解工具
1. 项目概述:PyVisionAI,一个文档内容提取与视觉理解的瑞士军刀如果你经常需要从PDF、PPT、Word文档甚至网页中提取内容,并且希望AI能帮你“看懂”里面的图片和图表,那么PyVisionAI这个工具你应该了解一下。它本质上是一个Python工…...
终极指南:免费解锁WeMod高级功能的完整方案
终极指南:免费解锁WeMod高级功能的完整方案 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为WeMod Pro的订阅费用而犹豫吗?…...
