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

LabVIEW与Xplane飞行界面数据仿真交互

在做飞行仿真时候,有一点是使用视景仿真。也就是通过屏幕,显示飞机的姿态,经纬度等信息。

一般的,做飞行仿真,如果自己使用Unity3D或者UnReal的虚拟引擎来做,比较费时间,需要对机场环境建模。
而针对普通的用户,更好的方式,则是使用目前比较流行的3D飞行游戏软件来开发。
像开源的Flight Gear,或者收费的Xplane等,都提供第三方的通信接口,通过UDP,可以接收游戏引擎中飞机的基本数据,也可以像游戏引擎发数据,控制飞机姿态和位置。
本期,则讲解,使用LabVIEW做测试时候,使用UDP和Xplane通信,以获得虚拟视景。

首先,本文使用的版本是Xplane11,其他版本操作类似。

最重要的是进入设置界面进行数据设置。

点击选项卡数据,数据输出。

这里可以勾选要输出的数据。
勾选有4列,第一个显示在座舱,就是飞行时候,数据会显示在飞行界面左上角。第4列是UDP输出,勾选后,软件会将勾选的数据通过UDP发送出去。

一般的勾选UDP就行,但是,第一列显示座舱勾选后,我们会直观看到实际数据是多少,这样UDP输出的数据,通过我们二次开发的软件解析,可以对比数据一致性。

记得右下角,勾选 进行网络数据输出。

下图,左上角,就是刚才勾选了座舱显示的数据。
我勾选了速度,姿态,经纬度等。所以都显示出来了。
实际UDP外发的时候,也是从上到下,数据依次发送的。
我们解析数据时候,可以和这个对照一下。
现在看下UDP 数据结构:

所有数据均以字节形式发送,UDP数据开头为“DATA,”
prolouge 的第五个字节是“内部使用”字节
接下来的 36 个字节是消息
消息的前 4 个字节表示数据元素的索引号,如 X-平面 中的“数据输出”屏幕所示
最后 32 个字节是数据,最多 8 个单精度浮点数
下面是从 X-Plane 发送的原始数据字符串:
68 65 84 65 60 18 0 0 0 171 103 81 191 187 243 46 190 103 246 45 67 156 246 26 67 47 231 26 67 0 192 121 196 0 192 121 196 85 254 151 193
让我们分解一下:
68,65,84,65,60 = D,A,T,A,‘’ :这些是 CHAR。我们不关心的第 5 个字节,所以当 将任何数据句子发送到 X-Plane,应在此处放置一个 0(零)。
18,0,0,0 = 18 :这是对应于X平面中特定数据集的索引号。在此示例字符串中, 我们正在查看数据集,“18:俯仰,滚动,标题”。在这 4 个字节中,我们唯一需要的字节是第一个字节。其他 3 个将始终为零。 第一个字节不需要任何计算,用作整数。
171,103,…,151,193:这 32 个字节构成了需要计算的 8 个单精度浮点数。
向X-Plane发送数据句子的格式与从X-Plane发送的格式完全相同
发送句子时,请确保序言的第 5 个字节为零 (0)
并非所有数据集都使用所有 8 个浮点数。它们要么只是零,要么是“0,192,121,196”,即 -999。
对于数据集中您不希望更改或希望将控制权“交还”给X-Plane的任何项目, 发送值 -999 或 0,192,121,196。

通过上述描述和设置,我们下面可以通过LabVIEW来接受UDP数据。
程序很简单,UDP连接,UDP读取,UDP关闭。

UDP连结,端口为默认的49001,然后收到的数据,前5个是DATA,丢掉。截取后面的数据。


后面数据,每4个字节为一个数据。虽然有一个数据是序号,但是也是4个字节。
所以,我们强制转换成单精度,得到我们要的数据。

通过对比实际座舱右上角显示的数据,我们通过索引,可以得到想要的数据。我们会发现有一个数据特别大,那是因为不应该用单精度转化,不过对我们来说不重要。通过LabVIEW编写的地面站显示得到如下的效果(动图)。
从软件界面可以清晰看到Xplane飞机的俯仰角、横滚角、经纬度、高度,飞机电子地图显示等。

如果需要使用LabVIEW控制Xplane飞行,则需要使用UDP发送。发送时候,格式和接受一样的。

后面,大家可以自由使用LabVIEW控制飞机啦。

http://www.jsqmd.com/news/785198/

相关文章:

  • GitSavvy Fixup和Squash助手:如何保持干净提交历史的秘诀
  • CANN 数据移动约束
  • 陕西公考培训新范式:系统化教学与协同服务体系解析 - 资讯焦点
  • 前端性能优化终极指南:如何利用WebAssembly实现高性能计算
  • AI工具搭建自动化视频生成Asana
  • AI Agent全栈开发框架:架构先行与垂直切片验证实践
  • 收藏!2026年普通人也能干的5个高薪AI新职业(无需代码,小白也能学)
  • 2026年降AI工具维普专项实测:五款工具维普AIGC检测通过率完整横向对比分析
  • 2026广东狐臭医生口碑测评:5位高性价比医生推荐 - 速递信息
  • 在团队开发中统一大模型调用配置与密钥管理的实践
  • 一天一个开源项目(第96篇):OpenHarness - 轻量级 AI 代理基础设施框架
  • Classiq量子编程平台:5分钟快速入门量子计算
  • 2026口腔答疑测评!牙黄口臭牙结石怎么救?美白去黄清新溶石牙膏推荐 - 资讯焦点
  • Node _ 初学版
  • 专业滑雪服工厂推荐:5C全链条方法论破解高端定制痛点 - 速递信息
  • Engram:基于Arweave与端到端加密的去中心化个人知识管理实战
  • 终极指南:ChatGPT微盘股实验如何应对极端市场压力?6个月真实数据深度解析
  • Front-End-Performance-Checklist错误处理终极指南:10个关键性能监控与异常捕获技巧
  • ChatGPT微盘股实验:AI投资组合管理的终极实战指南 [特殊字符]
  • 效率提升10倍 闪光对焊机破解车轴焊接难题 - 速递信息
  • 2026年3月头部钢筋网片生产厂推荐,市面上钢筋网片找哪家优质品牌选购指南 - 品牌推荐师
  • GRU与注意力机制在ICU多重耐药菌感染预测中的实战应用
  • Bend并行编程安全指南:大规模并行计算中的10个关键安全实践
  • 基于MERN全栈与OpenAI API构建类ChatGPT应用的实战指南
  • 目标检测模型的训练方法(比赛用)(insects数据集)
  • 2026年4月无人机培训机构推荐,无人机电子执照考证/无人机操作员考证/无人机执照报考,无人机培训学校哪家强 - 品牌推荐师
  • 深圳保利德制冷:深耕工业制冷近二十年,以科技“冻”力赋能全球工业制造 - 速递信息
  • Go语言打造Minecraft服务器自动化运维管道:事件驱动与任务编排实战
  • Python整数有上限吗?揭秘动态大整数的原理与工程边界
  • 终极指南:如何快速掌握多语言NLP资源与实战技巧