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

(24)(24.4) MultiWii/DJI/HDZero OSD (version 4.2 and later)(一)

文章目录

前言

1 基于遥测的OSD


前言

ArduPilot 使用基于MSPMultiWii 串行协议)的协议支持多种类型的屏幕显示(OSD):


  • 基于 MSP 遥测的操作系统,如大疆 FPV 护目镜 V1/V2、大疆护目镜 REFatShark ByteFrostFatShark-SharkBytefw 09042021 之前)、MWOSD等。
  • 基于 DisplayPort 的操作系统,如 HDZero(以前称为 FatShark SharkByte(fw 09042021及更高版本))、Walksnail、使用 wtf-os 固件和 msdp osd 模块(msdp-osd module)的 DJI 护目镜,以及 MWOSDDisplayPort 模式/固件。

仅基于遥测的 OSD 将根据使用串行端口协议“32”发送的标准 MSP 遥测传感器消息,使用自己的引擎在屏幕上呈现 OSD 面板项目,因此 ArduPilot 无法控制项目的外观。

DJI 2/V1/V2 护目镜还具有扩展协议,该协议使用串行端口协议“33”发送,允许在使用扩展的自定义 OSD 功能时为每个 OSD 面板提供位置信息。这也允许显示任何 ArduPilot OSD 面板。

另一方面,DisplayPort 是一种 MSP 协议扩展,允许 ArduPilot 指定要在外部 OSD 显示器上绘制的文本字符/图标及其位置,就像在使用串行端口协议“42”的内部集成模拟 OSD 上一样。DisplayPort 也称为 CANVAS MODE(不正确)。基本上,它是一个远程纯文本帧缓冲区,使用本地字体(渲染引擎本地,即 OSD 硬件)渲染通过 MSP 发送的字符串。

1 基于遥测的OSD

基于遥测的 OSD 将使用自己的引擎在屏幕上渲染 OSD 面板项目,因此 ArduPilot 无法控制项目的外观。基于遥测的操作系统的另一个局限性是,ArduPilot 无法随意添加新的面板项目,供应商有责任通过推出新的固件版本来添加新功能。

如果存在板载集成模拟 OSD,并且用户希望同时拥有这两个 OSD,则也可以激活它。例如,在使用 DJI 护目镜/空气系统进行中程飞行,但仍使用内部 OSD 运行远程模拟 VTX 的飞行器上,当飞行器超过 HD DJI 护目镜的范围时。这种配置可以使用一个针对 DJI Goggles 优化的 OSD 屏幕,另一个用于集成 OSD,用户可以根据正在观看的视频系统在它们之间切换。

配置

示例假设空气单元连接到飞行控制器的 SERIAL2

  • 如果没有使用集成 OSD,则OSD_TYPE= 3,如果存在集成 OSD 并且用户希望同时使用这两个 OSD,则为= 1
  • SERIAL2_PROTOCOL= 32MSP);
  • SERIAL2_BAUD= 115
  • 如果空气单元要通过 RXTX 输入连接到 AutoPilot 串行端口 TX/RX,则MSP_OPTIONS 位0= 0(不启用遥测模式)。如果独立 OSD 单元仅通过单线从其 RX 输入连接到串行端口的TX,则设置位0= 1(启用遥测模式)。这被称为“推送”模式。

OSD面板可用于MSP遥测操作系统

这些是基于遥测的 OSD 支持的仅限 MSPOSD 元素(假设 OSD 本身有能力显示这些遥测值):

OSD Parameter

Notes

OSDn_ALTITUDE

Home relative altitude

OSDn_ARMING

Arming status, hidden when armed otherwise showing DISARMED

OSDn_ASPEED

Please refer to OSDn_GSPEED for more info on enabling airspeed display

OSDn_BAT_VOLT

First battery voltage

OSDn_BATBAR

First battery remaining percentage rendered as a bar based on declared capacity and consumed mAh

OSDn_BATUSED

First battery consumed mAh

OSDn_CELLVOLT

First battery average cell voltage, if automatic cell detection fails please override with MSP_OSD_NCELLS

OSDn_CLK

Realtime clock (requires GPX fix)

OSDn_CRSSHAIR

Artificial horizon is not supported so crosshair is often kept hidden

OSDn_CURRENT

First battery current

OSDn_ESCTEMP

On DJI V1/V2 Goggles this will report the highest ESC temperature

OSDn_FLTMODE

DJI hardware does not support ArduPilot’s flight modes! This item will generally be blank and only show !FS! while in failsafe!

OSDn_GPSLAT

GPS Latitude in decimal format

OSDn_GPSLONG

GPS Longitude in decimal format

OSDn_GSPEED

This item shows ground speed unless OSDn_ASPEED_EN = 1 in which case it will show true airspeed if an airspeed sensor is present or estimated airspeed otherwise. The position on screen is set by OSDn_GSPEED_X and OSDn_GSPEED_Y regardless of the value of OSDn_ASPEED_EN

OSDn_HEADING

Not supported by DJI V1/V2 Goggles

OSDn_HOMEDIR

Rotating arrow pointing to home

OSDn_HOMEDIST

Distance from home

OSDn_HORIZON

Not supported by DJI V1/V2 Goggles

OSDn_MESSAGE

This will display status text messages as rolling text. Status text messages will be hidden after a couple seconds and the panel will show the current flightmode. If OSDn_WIND_EN is set to 1, this item also displays wind info next to the current flight mode as a rotating arrow and speed.

OSDn_PITCH

Pitch angle

OSDn_POWER

Instant power calculated as voltage * current

OSDn_ROLL

Roll angle

OSDn_RSSI

Rssi as configured in RSSI_TYPE: RSSI Type

OSDn_SATS

On DJI V1/V2 Goggles when there’s no telemetry based MSP OSDfix it will report 14 sats, this is a known DJI bug

OSDn_SIDEBARS

Not supported by DJI V1/V2 Goggles

OSDn_VSPEED

Vertical speed

OSDn_WIND

Please refer to OSDn_MESSAGE for wind speed and direction rendering

DJI 护目镜在默认 OSD 显示模式下支持 MSP 遥测显示,并附有以下注意事项:

  • ArduPilot 目前支持 V1V2 DJI FPV 护目镜提供的所有 OSD 面板项目,如上表所示;
  • 目前不支持更改公制和英制以外的显示单位;
  • 支持多个屏幕和这些屏幕的远程切换;
  • 支持在专用屏幕上显示统计信息,有关详细信息,请参阅下文;
  • 目前不支持 RSSI、电压等的警告级别。

DJI V1 FPV 护目镜

DJI 护目镜 RE

http://www.lryc.cn/news/429830.html

相关文章:

  • HiveSQL:提取json串内容——get_json_oject和json_tuple
  • Clickhouse 二进制安装
  • 大数据开发工程师面试整理-项目经验
  • 游戏引擎详解——图片
  • 电商API数据接口在电商运营电商数据分析中的作用?
  • Java OkHttp使用(二)
  • 宝塔(bt.cn)面板新手小白使用中常见问题
  • 【LeetCode:3133】数组最后一个元素的最小值(Java)
  • FCARM - Output Name not specified, please check ‘Options for Target - Utilities‘解决方法
  • 自行车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化
  • 一文彻底搞懂Transformer - FFNN(前馈神经网络)
  • SpringCloud Gateway及 Springboot 服务 跨域配置
  • 【Solidity】安全与校验
  • 黑神话悟空四十二项修改器 v1.0
  • RM电控RTOS
  • Arduino开源四足蜘蛛机器人制作教程
  • 【Axure高保真原型】中继器表格——标签使用情况案例
  • ABAP字符串反转 and 寻找字符所在位置 and 根据数量汇总时把数量转为非数值类型
  • 【机器学习第十二章——计算学习理论】
  • Docker私人学习笔记
  • 谷粒商城实战笔记-233~235-商城业务-认证服务-单点登录流程-原理
  • 机器学习在旅游业的革新之旅
  • OpenCTI:开源网络威胁情报平台
  • linux shell 脚本 let 数学计算
  • mp3和mp4的区别是什么?怎么把mp3转成mp4?(全)
  • 合并params和query参数
  • [数据集][目标检测]工程机械车辆检测数据集VOC+YOLO格式3189张10类别
  • 构建域名服务器-BIND:Linux端的安装过程及配置文件详解
  • linux查询目录文件基础操作
  • 搭建TestBench,收藏这几条基本框架就够了