RubyFPV开源代码之系统简介

RubyFPV开源代码之系统简介

  • 1. 源由
  • 2. 工程架构
  • 3. 特性介绍(软件)
    • 3.1 特性亮点
    • 3.2 数字优势
    • 3.3 使用功能
  • 4. DEMO推荐(硬件)
    • 4.1 天空端
    • 4.2 地面端
    • 4.3 按键硬件
      • Raspberry Pi
      • Radxa 3W/E/C
  • 5. 软件设计
  • 6. 参考资料

1. 源由

RubyFPV以前是闭源的,不过Jan 26, 2023 PetruSoroaga上传了代码。详见:Github - RubyFPV

目前状态是代码已经非常好的与OpenIPC项目兼容,在地面端和天空端使用。Ruby 是一个完整的平台(硬件和软件),专为控制和管理无人机、飞行器、汽车以及其他遥控车辆而设计,同时提供多个点之间可靠的端到端数字无线电链路。

为了这个,就有必要学习和简单了解下。

rubyFPV 首页宣传视频

2. 工程架构

all├──> vehicle //天空端│   ├──> ruby_start: .o│   ├──> ruby_utils │   │   ├──> ruby_logger: .o│   │   ├──> ruby_initdhcp: .o│   │   ├──> ruby_sik_config: .o│   │   ├──> ruby_alive: .o│   │   ├──> ruby_video_proc: .o│   │   ├──> ruby_update: .o│   │   └──> ruby_update_worker: .o│   ├──> ruby_tx_telemetry: .o│   └──> ruby_rt_vehicle: .o├──> station //地面端│   ├──> (*)ruby_start│   ├──> (*)ruby_utils │   ├──> ruby_controller: .o│   ├──> ruby_rt_station: .o│   ├──> ruby_tx_rc: .o│   ├──> ruby_rx_telemetry: .o│   └──> ruby_player_radxa: .o├──> ruby_i2c: .o├──> ruby_plugins │   ├──> ruby_plugin_osd_ahi: .o│   ├──> ruby_plugin_gauge_speed: .o│   ├──> ruby_plugin_gauge_altitude: .o│   ├──> ruby_plugin_gauge_ahi: .o│   └──> ruby_plugin_gauge_heading: .o├──> ruby_central: .o└──> tests├──> test_drm: .o├──> test_gpio: .o├──> test_log: .o├──> test_port_rx: .o├──> test_port_tx: .o└──> test_link: .o

3. 特性介绍(软件)

3.1 特性亮点

  • 支持433/868/915MHz和2.4/5.8GHz频段的多重冗余无线电链路
    不同频段(433MHz、868/915MHz、2.3GHz、2.4GHz、2.5GHz和5.8GHz)的多重冗余无线电链路可在车辆、地面控制站和中继之间同时使用,以提高连接的可靠性、链路质量和通信范围。

  • 自适应视频、自适应无线电链路、重传机制
    Ruby会在无线电条件恶化时自动调整视频码率、视频编码质量、无线电数据速率和无线电调制方式,以保持视频流的稳定性。此外,Ruby还会在无线电条件过度恶化时自动执行重传和错误校正。

  • 中继功能
    系统中可以添加移动(车辆)或固定中继节点,以实现更远距离的通信并突破视线范围限制。
    了解更多关于Ruby中继功能的工作原理及配置方法:中继无线电链路:工作原理及配置方法。

  • 加密功能
    无线电链路可实现端到端加密,确保只有授权组件能够解码无线电数据。

  • 实时视频、遥测、远程控制、辅助与自定义数据流
    Ruby默认支持无人机所需的所有数据能力,包括实时视频流(最高可达4K分辨率)、遥测、控制以及用户自定义数据流。

  • 丰富的用户界面和控制界面
    提供多种可配置的OSD屏幕、仪表、小部件以及第三方开发的用户界面插件,可供切换和操作。

3.2 数字优势

  • 无噪声的视频传输:提供清晰的视频画面。
  • 支持数据传输:可以同时发送遥测数据和其他自定义数据。
  • 错误校正与数据可靠性:提升通信的稳定性和准确性。
  • 可配置参数更多:不仅支持频率和频段的设置,还支持分辨率、帧率、抗干扰能力等视频链路相关参数的配置。
  • 支持特殊场景:例如3D视频、摄像头切换等功能几乎无需额外配置即可实现。

3.3 使用功能

  • 双向无线电链路:可根据无线电条件调整视频质量,从而提高视频流的质量;
  • 视频录制功能
  • 远距离无线电链路:无线电链路的范围(根据配置)在2公里至40公里之间(这是目前测试的最大范围);
  • 低端到端视频延迟:在当前硬件上延迟最低可达40毫秒。遥测和远程控制的延迟更低,少于10毫秒;
  • 多机绑定:支持绑定多个模型(类似普通的遥控器),并能实时切换;
  • 车辆实时控制与遥测数据
  • 观众模式:允许其他人作为观众观看实时视频流;
  • 通过无线电链路更新车辆软件
  • 多种OSD布局
  • 详细的链路质量和视频解码统计信息
  • 多摄像头配置:支持实时切换不同摄像头配置以适应不同飞行条件;
  • 双向遥测和自定义数据流:遥测支持MAVLink和LTM协议,其他协议仍在开发中;
  • 丰富的设置和参数:所有设置和参数均可通过OSD和菜单实时更改。

4. DEMO推荐(硬件)

在这里插入图片描述

  • OpenIPC

SSC338Q/SSC30KQ
IMX335, IMX415

  • Raspberry

Zero 2/Pi3/Pi4
Raspberry Pi v1,v2, HQ cameras

  • Radxa 3W/E/C

RK3566

  • Radio

433 Mhz band SiK, ELRS radio modules
868/915 Mhz band SiK, ELRS radio modules
2.3/2.5 Ghz band Atheros chipsets AR9271 cards
2.4 Ghz band Atheros chipsets AR9271 cards
5.8 Ghz band Realtek chipsets RTL8812AU, RTL8811AU, RTL8812EU cards

4.1 天空端

搭配:SBC + Camera + BEC/UBEC + RF Card(s)

  • 1 SBC (Single Board Computer, ie Raspberry, OpenIPC hardware camera, see below);
  • 1 camera (see below the full list of supported camera types);
  • 1 BEC/UBEC or any good 5V power supply (for providing a solid, high current capable, 5V supply to the PI board and network cards);
  • 1+ radio card(s) in 433/868/915Mhz, 2.4Ghz or 5.8Ghz bands(multiple can be used for Rx diversity or multiple radio links); see the list below of all supported radio cards.

在这里插入图片描述

4.2 地面端

搭配:SBC + BEC/UBEC + RF Card(s) + HDMI Display + 4 Button

  • 1 SBC (Single Board Computer, ie Raspberry, Radxa; see below);
  • 1 BEC/UBEC or any good 5V power supply;
  • 1+ radio card(s) in 433/868/915Mhz, 2.4Ghz or 5.8Ghz bands(multiple can be used for Rx diversity or multiple radio links); see the list below of all supported radio cards.
  • 1 HDMI display; Or any device that can display HDMI;
  • 4 (+3 additional optional) Push buttons. This is for the menu navigation on the controller. If you choose to use a rotary encoder for menu navigation, or a USB keyboard, then you don’t need these push buttons.

在这里插入图片描述

4.3 按键硬件

类似这种5向按键就非常适用,性价比超高!

在这里插入图片描述

Raspberry Pi

在这里插入图片描述在这里插入图片描述

Radxa 3W/E/C

在这里插入图片描述

5. 软件设计

TBD. 后续逐步给出,暂时还没有去看RubyFPV的代码。从逻辑的角度,先整体设计上看一个大概先。

6. 参考资料

  • https://rubyfpv.com/
  • Github - RubyFPV

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

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

相关文章

将 OneLake 数据索引到 Elasticsearch - 第二部分

作者:来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分,第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中,我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…

PMP–一、二、三模–分类–14.敏捷

文章目录 敏捷中的角色职责与3个工件--题干关键词角色职责3个工件 高频考点分析(一、过程;二、人员)一、过程:1.1 变更管理:1.1.1 瀑布型变更(一次交付、尽量限制、确定性需求 >风险储备&#x…

Vue2下篇

插槽&#xff1a; 基本插槽&#xff1a; 普通插槽&#xff1a;父组件向子组件传递静态内容。基本插槽只能有一个slot标签&#xff0c;因为这个是默认的位置&#xff0c;所以只能有一个 <!-- ParentComponent.vue --> <template> <ChildComponent> <p>…

【科研建模】Pycaret自动机器学习框架使用流程及多分类项目实战案例详解

Pycaret自动机器学习框架使用流程及项目实战案例详解 1 Pycaret介绍2 安装及版本需求3 Pycaret自动机器学习框架使用流程3.1 Setup3.2 Compare Models3.3 Analyze Model3.4 Prediction3.5 Save Model4 多分类项目实战案例详解4.1 ✅ Setup4.2 ✅ Compare Models4.3 ✅ Experime…

Linux学习笔记——网络管理命令

一、网络基础知识 TCP/IP四层模型 以太网地址&#xff08;MAC地址&#xff09;&#xff1a; 段16进制数据 IP地址&#xff1a; 子网掩码&#xff1a; 二、接口管命令 ip命令&#xff1a;字符终端&#xff0c;立即生效&#xff0c;重启配置会丢失 nmcli命令&#xff1a;字符…

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion(原理介绍)

手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09; 目录 手撕Diffusion系列 - 第九期 - 改进为Stable Diffusion&#xff08;原理介绍&#xff09;DDPM 原理图Stable Diffusion 原理Stable Diffusion的原理解释Stable Diffusion 和 Diffus…

JAVAweb学习日记(八) 请数据库模型MySQL

一、MySQL数据模型 二、SQL语言 三、DDL 详细见SQL学习日记内容 四、DQL-条件查询 五、DQL-分组查询 聚合函数&#xff1a; 分组查询&#xff1a; 六、DQL-分组查询 七、分页查询 八、多表设计-一对多&一对一&多对多 一对多-外键&#xff1a; 一对一&#xff1a; 多…

微信小程序1.1 微信小程序介绍

1.1 微信小程序介绍 内容提要 1.1 什么是微信小程序 1.2 微信小程序的功能 1.3 微信小程序使用场景 1.4 微信小程序能取代App吗 1.5 微信小程序的发展历程 1.6微信小程序带来的机会

音频入门(一):音频基础知识与分类的基本流程

音频信号和图像信号在做分类时的基本流程类似&#xff0c;区别就在于预处理部分存在不同&#xff1b;本文简单介绍了下音频处理的方法&#xff0c;以及利用深度学习模型分类的基本流程。 目录 一、音频信号简介 1. 什么是音频信号 2. 音频信号长什么样 二、音频的深度学习分…

Midjourney中的强变化、弱变化、局部重绘的本质区别以及其有多逆天的功能

开篇 Midjourney中有3个图片“微调”&#xff0c;它们分别为&#xff1a; 强变化&#xff1b;弱变化&#xff1b;局部重绘&#xff1b; 在Discord里分别都是用命令唤出的&#xff0c;但如今随着AI技术的发达在类似AI可人一类的纯图形化界面中&#xff0c;我们发觉这样的逆天…

【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道

文章目录 Linux基础入门&#xff1a;探索操作系统的内核与命令一、Linux背景与发展历史1.1 Linux的起源与发展1.2 Linux与Windows的对比 二、Linux的常用命令2.1 ls命令 - "List"&#xff08;列出文件)2.2 pwd命令 - "Print Working Directory"&#xff08…

[护网杯 2018]easy_tornado1

题目 、 依次点击文件查看 /flag.txt flag in /fllllllllllllag /welcome.txt render /hints.txt md5(cookie_secretmd5(filename)) tornado模板注入 报cookie /error?msg{{handler.settings}} cookie_secret: 6647062b-e68d-4406-90d3-06e307fa955c} 使用python脚本…

STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态

STM32W5500以太网应用开发003_TCP服务器添加OLED&#xff08;u8g2&#xff09;显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…

基于微信小程序的英语学习交流平台设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果

前言 ORB-SLAM2源码学习&#xff1a;Initializer.cc⑦: Initializer::Triangulate特征点对的三角化_cv::svd::compute-CSDN博客 经过上面的三角化我们成功得到了三维点&#xff0c;但是经过三角化成功的三维点并不一定是有效的&#xff0c;需要筛选才能作为初始化地图点。 …

macOS如何进入 Application Support 目录(cd: string not in pwd: Application)

错误信息 cd: string not in pwd: Application 表示在当前目录下找不到名为 Application Support 的目录。可能的原因如下&#xff1a; 拼写错误或路径错误&#xff1a;确保你输入的目录名称正确。目录名称是区分大小写的&#xff0c;因此请确保使用正确的大小写。正确的目录名…

记录一个连不上docker中的mysql的问题

引言 使用的debian12,不同发行版可能有些许差异&#xff0c;连接使用的工具是navicat lite 本来是毫无思绪的&#xff0c;以前在云服务器上可能是防火墙的问题&#xff0c;但是这个桌面环境我压根没有使用防火墙。 直到 ying192:~$ mysql -h127.0.0.1 -uroot ERROR 1045 (28…

Gradle自定义任务指南 —— 释放构建脚本的无限可能

文章目录 &#x1f50d;Gradle任务⚙️ 自定义任务的5大核心配置项1. 任务注册&#xff08;Registering Tasks&#xff09;2. group & description3. dependsOn4. inputs & outputs5. 类型化任务&#xff08;Task Types&#xff09; 任务常见配置参数传递方式1&#xf…

windows11关闭系统更新详细操作步骤

文章目录 1.打开注册表2.修改注册表内容2.1 新建文件2.2 修改值 3.修改设置 1.打开注册表 winR输入regedit(如下图所示) 2.修改注册表内容 进HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings 2.1 新建文件 右侧界面右键即可 2.2 修改值 重命名为如下…

matlab绘图——彩色螺旋图

代码生成的图形是一个动态的彩色螺旋&#xff0c;展示了如何利用极坐标和颜色映射创建视觉吸引力强的图形。该图形可以用于数据可视化、艺术创作或数学演示&#xff0c;展示了 MATLAB 在图形处理方面的强大能力。通过调整 theta 和 r 的范围&#xff0c;可以创建出不同形状和复…