OpenPilot姿态显示完全指南:PFD仪表盘、3D模型与OSD图传怎么看懂你的无人机
【免费下载链接】OpenPilotOpenPilot Github Mirror项目地址: https://gitcode.com/gh_mirrors/ope/OpenPilot
OpenPilot 是一款开源飞行控制系统,配套的地面站 OpenPilot GCS 提供了 PFD 姿态仪表盘、3D 模型姿态显示和 OSD 图传字符叠加三种姿态显示方式。本指南带你快速看懂这三种界面,掌握 OpenPilot 姿态显示的核心功能。
OpenPilot 姿态显示的三种方式
很多新手第一次打开地面站(GCS)时会问:我的无人机现在是什么姿态?其实 OpenPilot 给了你三个"观察窗口":
| 显示方式 | 使用场景 | 位置 |
|---|---|---|
| PFD 姿态仪表盘 | 调参、模拟飞行、桌面端飞控调试 | GCS 主界面 |
| 3D 模型姿态 | 直观查看机体滚转/俯仰/偏航 | GCS 主界面 |
| OSD 图传叠加 | 外场飞行时直接看摄像头画面 | 飞控板载 OSD 模块 |
三者都来自同一个数据源——飞控状态估计模块(flight/modules/StateEstimation/)输出的姿态状态对象 attitudestate.xml,只是渲染方式不同。
PFD 姿态仪表盘:像飞机一样看姿态
PFD(Primary Flight Display,主飞行显示)是 GCS 中最专业的姿态窗口。它由 QML 插件实现,源码位于ground/openpilotgcs/src/plugins/pfdqml/,显示界面定义在ground/openpilotgcs/share/openpilotgcs/pfd/default/Pfd.qml。
在 GCS 中新建一个 PFD 窗口后,你可以看到以下核心元素(对应pfd/default/目录下的同名 QML 组件):
- 地平线(HorizontCenter):中间那条天蓝/大地分界线,代表真实地平线。飞得再花哨,这条线始终告诉你"上"和"下"
- 滚转刻度(RollScale):环绕地平线的滚转角度标尺,机身倾斜多少度一目了然
- 空速刻度(SpeedScale):左侧垂直刻度,显示空速
- 高度刻度(AltitudeScale):右侧垂直刻度,显示离地高度
- 垂直速度(VsiScale):底部小表,显示上升/下降率
- 罗盘(Compass):顶部条状罗盘,指示航向
- 姿态指示(PfdIndicators):中央的小飞机图标,实时反映机体姿态
💡新手技巧:PFD 支持开启 3D 地形视图(PfdTerrainView),开启后背景会显示真实地球与地形,配合 PFD 地平线背景素材(位于artwork/3D Model/backgrounds/,提供 1600x1200 标准版与 1920x1080 宽屏版),可以直观看到飞机"飞在"哪片区域上。

最快配置方法:打开 GCS 时若没有 PFD,只需把 "PFD" 小工具拖入界面即可;单位(节/公里每小时、英尺/米)和缩放系数都可以在 PFD 的设置页调整。
3D 模型姿态:用眼睛"看"滚转和俯仰
如果说 PFD 是"读数字",那么 3D 模型姿态就是"看飞机"。GCS 的 ModelView 插件(源码位于ground/openpilotgcs/src/plugins/modelview/)会把飞控上报的姿态实时驱动到一个 3D 机体模型上——你推油门它爬升、压杆它滚转,模型完全同步。
🎮 这个插件可以直接加载模型库里的 3D 机体模型,仓库自带的 3D 模型位于artwork/3D Model/目录,按机型分门别类:
- 多旋翼:
artwork/3D Model/multi/下有 AeroQuad、EasyQuad、Blackout 等 - 直升机:
artwork/3D Model/helis/t-rex/是经典的 T-Rex 450 - 飞控开发板:
artwork/3D Model/boards/收录了 Revolution、OPGPS、OPLink 等硬件


如果你用的是 Revolution 开发板,仓库里甚至有它的 3D 外观模型,方便对照实物排查接口:

💡使用建议:调 P(比例)参数时,配合 3D 模型看俯仰角"稳不稳"比看数字直观得多——模型不再左右晃动时,P 参数基本就对了。
OSD 图传字符:外场飞行时唯一能看的姿态
离开电脑外场飞行时,你的眼睛只能盯着图传画面。OpenPilot 的 OSD 模块(源码位于flight/modules/Osd/)会把姿态、高度、空速、电量等数据渲染成字符,直接叠加到摄像头视频上,让你"低头看画面"就能掌握无人机状态。
OSD 模块采用三级流水线架构,各司其职:
- osdinput(
flight/modules/Osd/osdinput/):从飞控的 UAV 对象中读取姿态、高度、速度等实时数据 - osdgen(
flight/modules/Osd/osdgen/):把数据生成 OSD 字符帧(含位置排布、字体字模) - osdoutput(
flight/modules/Osd/osdoutput/):把字符帧通过视频同步信号输出到摄像头
此外还有OsdEtStd/(ET Standard 字符协议支持,flight/modules/Osd/OsdEtStd/OsdEtStd.c)和WavPlayer/(图传喇叭播放提示音)。显示样式素材则可参考artwork/Dials/下 default、deluxe、hi-contrast 三套风格。
📡OSD 上手步骤:
- 把摄像头接到飞控的 OSD 输出口(Revolution 板上的 Flexi Port)
- 确认 OSD 模块已启用,字符亮度可调
- 飞行前检查图传画面:姿态行、高度行、GPS 卫星数是否齐全
常见问题 FAQ
Q:PFD 的地平线和 3D 模型姿态对不上怎么办?A:两者数据源一致,差异通常是模型窗口没刷新。先确认 GCS 与飞控连接正常,再看flight/modules/StateEstimation/相关的姿态估计是否完成校准。
Q:OSD 字符位置互相重叠?A:OSD 每行位置是固定布局,字体字模大小不同会挤占空间,可在 OSD 设置里精简显示项。
Q:为什么桌面模拟器里 PFD 能动,真机上却不动?A:检查 IMU(加速度计/陀螺仪)是否完成校准,姿态状态对象的数据流是否正常——这是所有姿态显示的共同前提。
小结
OpenPilot 的姿态显示体系可以概括为三句话:调参看 PFD、练手感看 3D 模型、外场飞行看 OSD。从桌面到外场,数据同源、三种呈现,覆盖了飞手从新手到进阶的完整需求。
📌 相关模块速查:
- PFD 插件:
ground/openpilotgcs/src/plugins/pfdqml/ - 3D 模型插件:
ground/openpilotgcs/src/plugins/modelview/ - OSD 模块:
flight/modules/Osd/ - 姿态状态定义:attitudestate.xml
- 3D 模型素材库:
artwork/3D Model/
【免费下载链接】OpenPilotOpenPilot Github Mirror项目地址: https://gitcode.com/gh_mirrors/ope/OpenPilot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考