RubyFPV开源代码之系统简介

RubyFPV开源代码之系统简介

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

相关推荐
weixin_430750931 小时前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统
403240731 小时前
[Jetson/Ubuntu 22.04] 解决挂载 exFAT 硬盘报错 “unknown filesystem type“ 及只读权限问题的终极指南
linux·运维·ubuntu
Source.Liu1 小时前
【沟通协作软件】使用 Rufus 制作 Ubuntu 启动盘的详细过程
linux·ubuntu
Love丶伊卡洛斯2 小时前
Ubuntu 部署 STUN服务端
linux·运维·ubuntu
梁洪飞2 小时前
通过链接文件和Start.S学习armv7
linux·arm开发·嵌入式硬件·学习·arm
DN金猿2 小时前
使用ubuntu安装nginx时报错
linux·nginx·ubuntu
小赵还有头发2 小时前
安装Ceres与glog
linux·学习·无人机·ceres·glog
负二代0.03 小时前
Linux下的网络管理
linux·网络
有毒的教程3 小时前
SaltStack 开源自动化运维工具详细介绍
运维·开源·saltstack
s_daqing3 小时前
ubuntu(arm)安装redis
linux·redis·ubuntu