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控制飞机啦。
在这里插入图片描述

  • 6
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
LabVIEW人机交互界面是一种通过使用LabVIEW软件来建立和设计用户与计算机之间进行交互界面LabVIEW是一种可视化的编程语言,它允许用户通过拖拽和连接图形化编程节点来构建程序。 LabVIEW人机交互界面的优点是易于使用和理解,即使对于不具备编程知识的用户也很容易上手。用户可以通过鼠标点击和拖拽来创建界面元素,如按钮、开关和滑动条等,并将它们与相应的功能或操作连接起来。 LabVIEW人机交互界面非常灵活,可以定制和适应不同的需求。用户可以根据自己的偏好和应用程序的要求,自由设计和布局界面元素。此外,LabVIEW还提供了许多预建的界面控件和模板,可以加快界面设计的速度。 LabVIEW人机交互界面还具有实时反馈和监控的能力。用户可以实时看到数据的变化,并通过界面控件来控制和操作系统的各个部分。这种实时反馈的机制可以确保用户能够及时响应和调整操作,提高了系统的交互性和效率。 LabVIEW人机交互界面还支持多种通信方式和协议,如串口通信、以太网通信和无线通信等。这使得LabVIEW可以与各种设备和系统进行连接和交互,实现更广泛的应用场景。 总之,LabVIEW人机交互界面是一种强大、灵活和易于使用的界面设计工具,可以帮助用户快速构建出功能丰富、交互性强的应用程序。它不仅适用于科学实验、仪器控制等领域,还可用于各种自动化和机器人控制应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值