RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

LabVIEW與Xplane飛行界面數(shù)據(jù)仿真交互

jf_4uwpxRjJ ? 來源:小草手把手LabVIEW ? 2023-06-26 09:30 ? 次閱讀

很多時(shí)候,我們使用LabVIEW可以和第三方的軟件進(jìn)行交互,可以得到更好的效果。

今天我們分享的,是和外界軟件怎么UDP通信。

有些同學(xué)是做飛行控制的,在做飛行仿真時(shí)候,肯定會(huì)用到視景仿真。也就是通過屏幕,顯示飛機(jī)的姿態(tài),經(jīng)緯度等信息

一般地,做飛行仿真,如果自己使用Unity3D或者UnReal的虛擬引擎來做,比較費(fèi)時(shí)間,需要對(duì)機(jī)場(chǎng)環(huán)境建模。

而針對(duì)普通的用戶,更好的方式,則是使用目前比較流行的3D飛行游戲軟件來開發(fā)。

像開源的Flight Gear,或者收費(fèi)的Xplane等,都提供第三方的通信接口,通過UDP,可以接收游戲引擎中飛機(jī)的基本數(shù)據(jù),也可以向游戲引擎發(fā)數(shù)據(jù),控制飛機(jī)姿態(tài)和位置。

今天以xplane作為一個(gè)實(shí)例,講述LabVIEW通過UDP顯示Xplane的數(shù)據(jù),并顯示在地平儀和電子地圖上。

Xplane游戲界面如下,做過飛行仿真的同學(xué)肯定不陌生在地圖上顯示的效果如下。

由于地圖放大很大,所以呈馬賽克狀,下圖右側(cè)為xplane的飛機(jī)姿態(tài),左側(cè)為L(zhǎng)abVIEW顯示的姿態(tài)和地圖位置(需要看實(shí)際效果,可以跳轉(zhuǎn)本文末尾,看視頻更佳)

088a5a72-1361-11ee-962d-dac502259ad0.gif

首先,本文使用的版本是Xplane11,其他版本操作類似。在交互前,最重要的是進(jìn)入設(shè)置界面進(jìn)行數(shù)據(jù)設(shè)置。

09be5740-1361-11ee-962d-dac502259ad0.png

點(diǎn)擊選項(xiàng)卡數(shù)據(jù),數(shù)據(jù)輸出。 這里可以勾選要輸出的數(shù)據(jù)。

勾選有4列,第一個(gè)顯示在座艙,就是飛行時(shí)候,數(shù)據(jù)會(huì)顯示在飛行界面左上角。第4列是UDP輸出,勾選后,軟件會(huì)將勾選的數(shù)據(jù)通過UDP發(fā)送出去。

一般的勾選UDP就行,但是,第一列顯示座艙勾選后,我們會(huì)直觀看到實(shí)際數(shù)據(jù)是多少,這樣UDP輸出的數(shù)據(jù),通過我們二次開發(fā)的軟件解析,可以對(duì)比數(shù)據(jù)一致性。

0a2be0c6-1361-11ee-962d-dac502259ad0.png


記得右下角,勾選 進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)輸出。

0a5130c4-1361-11ee-962d-dac502259ad0.png

下圖,左上角,就是剛才勾選的座艙顯示的數(shù)據(jù)。

我勾選了速度,姿態(tài),經(jīng)緯度等。所以都顯示出來了。

實(shí)際UDP外發(fā)的時(shí)候,也是從上到下,數(shù)據(jù)依次發(fā)送的。

我們解析數(shù)據(jù)時(shí)候,可以和這個(gè)對(duì)照一下。

0a9775ac-1361-11ee-962d-dac502259ad0.png


現(xiàn)在看下UDP 數(shù)據(jù)結(jié)構(gòu): 所有數(shù)據(jù)均以字節(jié)形式發(fā)送,UDP數(shù)據(jù)開頭為“DATA,”

prolouge 的第五個(gè)字節(jié)是“內(nèi)部使用”字節(jié)

接下來的 36 個(gè)字節(jié)是消息

消息的前 4 個(gè)字節(jié)表示數(shù)據(jù)元素的索引號(hào),如 X-平面 中的“數(shù)據(jù)輸出”屏幕所示

最后 32 個(gè)字節(jié)是數(shù)據(jù),最多 8 個(gè)單精度浮點(diǎn)數(shù)

下面是從 X-Plane 發(fā)送的原始數(shù)據(jù)字符串:

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。我們不關(guān)心的第 5 個(gè)字節(jié),所以當(dāng) 將任何數(shù)據(jù)句子發(fā)送到 X-Plane,應(yīng)在此處放置一個(gè) 0(零)。

18,0,0,0 = 18 :這是對(duì)應(yīng)于X平面中特定數(shù)據(jù)集的索引號(hào)。在此示例字符串中, 我們正在查看數(shù)據(jù)集,“18:俯仰,滾動(dòng),標(biāo)題”。在這 4 個(gè)字節(jié)中,我們唯一需要的字節(jié)是第一個(gè)字節(jié)。其他 3 個(gè)將始終為零。第一個(gè)字節(jié)不需要任何計(jì)算,用作整數(shù)。

171,103,…,151,193:這 32 個(gè)字節(jié)構(gòu)成了需要計(jì)算的 8 個(gè)單精度浮點(diǎn)數(shù)。

向X-Plane發(fā)送數(shù)據(jù)句子的格式與從X-Plane發(fā)送的格式完全相同

發(fā)送句子時(shí),請(qǐng)確保序言的第 5 個(gè)字節(jié)為零 (0)

并非所有數(shù)據(jù)集都使用所有 8 個(gè)浮點(diǎn)數(shù)。它們要么只是零,要么是“0,192,121,196”,即 -999。

對(duì)于數(shù)據(jù)集中您不希望更改或希望將控制權(quán)“交還”給X-Plane的任何項(xiàng)目, 發(fā)送值 -999 或 0,192,121,196。 通過上述描述和設(shè)置,我們下面可以通過LabVIEW來接收UDP數(shù)據(jù)。

程序很簡(jiǎn)單,UDP連接,UDP讀取,UDP關(guān)閉。 UDP連結(jié),端口為默認(rèn)的49001,然后收到的數(shù)據(jù),前5個(gè)是DATA,丟掉。截取后面的數(shù)據(jù)。

0b0fa6e4-1361-11ee-962d-dac502259ad0.png

后面數(shù)據(jù),每4個(gè)字節(jié)為一個(gè)數(shù)據(jù)。雖然有一個(gè)數(shù)據(jù)是序號(hào),但是也是4個(gè)字節(jié)。

所以,我們強(qiáng)制轉(zhuǎn)換成單精度,得到我們要的數(shù)據(jù)。

通過對(duì)比實(shí)際座艙右上角顯示的數(shù)據(jù),我們通過索引,可以得到想要的數(shù)據(jù)。

我們會(huì)發(fā)現(xiàn)有一個(gè)數(shù)據(jù)特別大,那是因?yàn)椴粦?yīng)該用單精度轉(zhuǎn)化,是參數(shù)的ID號(hào),可以通過條件結(jié)構(gòu)來篩選需要的信息,不過參數(shù)固定的話對(duì)我們來說可以不用管。

0b41654e-1361-11ee-962d-dac502259ad0.png

通過LabVIEW編寫的地面站軟件顯示得到如下的效果(動(dòng)圖)。

從軟件界面可以清晰看到Xplane飛機(jī)的俯仰角、橫滾角、經(jīng)緯度、高度,飛機(jī)電子地圖顯示等。

0b8747b2-1361-11ee-962d-dac502259ad0.gif

如果需要使用LabVIEW控制Xplane飛行,則需要使用UDP發(fā)送。發(fā)送時(shí)候,格式需要查看xplane的說明。

后面,大家可以自由使用LabVIEW獲取飛機(jī)信息啦。





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • LabVIEW
    +關(guān)注

    關(guān)注

    1970

    文章

    3654

    瀏覽量

    323305
  • UDP通信
    +關(guān)注

    關(guān)注

    0

    文章

    21

    瀏覽量

    1899

原文標(biāo)題:【LabVIEW的UDP通信實(shí)例】LabVIEW與Xplane飛行界面數(shù)據(jù)仿真交互

文章出處:【微信號(hào):小草手把手LabVIEW,微信公眾號(hào):小草手把手LabVIEW】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    LabVIEW界面求解答

    哪位大神會(huì)用LabVIEW做一個(gè)導(dǎo)彈六自由度彈道仿真的人機(jī)交互界面啊,可以跟simulink進(jìn)行通訊?求大神們幫幫忙
    發(fā)表于 11-04 10:20

    怎么用LabVIEW定義一個(gè)導(dǎo)彈的六自由度彈道仿真界面

    怎么用LabVIEW自定義一個(gè)導(dǎo)彈(飛行器)的六自由度彈道仿真界面,使其能夠和simulink進(jìn)行聯(lián)合仿真,并且能夠在
    發(fā)表于 12-20 21:40

    LabVIEW數(shù)據(jù)采集系統(tǒng)交互界面怎么做?

    LabVIEW數(shù)據(jù)采集系統(tǒng)交互界面怎么做,比如在前面板點(diǎn)擊“采集數(shù)據(jù)”就開始運(yùn)行數(shù)據(jù)采集模塊
    發(fā)表于 04-20 11:29

    labview2012和Multisim12做交互仿真?

    有人會(huì)labview2012和Multisim12做交互仿真嗎? 我已經(jīng)裝了控制和仿真模塊了!但是在函數(shù)沒找到Mul***,為什么?求牛人指引
    發(fā)表于 08-11 17:54

    LabVIEW相關(guān)問題 MATLAB與LabVIEW數(shù)據(jù)交互

    請(qǐng)教各位一個(gè)問題 我在MATLAB中得到了電壓波形 也轉(zhuǎn)化為數(shù)據(jù)保存到了工作空間。 現(xiàn)在想把數(shù)據(jù)交互LabVIEW中, 以便后邊在LabVIEW
    發(fā)表于 04-03 09:38

    基于MATLAB_Simulink和LabVIEW的發(fā)動(dòng)機(jī)仿真講解

    一篇關(guān)于simulink和Labview交互仿真應(yīng)用的實(shí)例,供大家參考
    發(fā)表于 12-15 11:32 ?15次下載

    LabVIEW人機(jī)界面

    LabVIEW官方例程,同步輻射演示界面程序。
    發(fā)表于 05-06 10:25 ?0次下載

    LabVIEW 界面設(shè)計(jì)秘訣

    LabVIEW 界面設(shè)計(jì)秘訣對(duì)想做漂亮LV界面的童鞋來說是有用的。
    發(fā)表于 05-17 16:41 ?114次下載

    如何才能美化Labview界面

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何才能美化Labview界面
    發(fā)表于 04-26 08:00 ?12次下載
    如何才能美化<b class='flag-5'>Labview</b><b class='flag-5'>界面</b>

    基于LabVIEW數(shù)據(jù)仿真程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于LabVIEW數(shù)據(jù)仿真程序免費(fèi)下載。
    發(fā)表于 06-11 08:00 ?7次下載
    基于<b class='flag-5'>LabVIEW</b>的<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>仿真</b>程序免費(fèi)下載

    LabVIEW界面設(shè)計(jì)的秘訣

    LabVIEW中的一些技術(shù)和功能,可讓您創(chuàng)建更好的用戶界面無需做太多額外的工作。
    發(fā)表于 04-25 15:44 ?74次下載

    教你如何美化Labview界面教程下載

    教你如何美化Labview界面教程下載
    發(fā)表于 09-12 09:40 ?75次下載

    教你如何美化Labview界面.pdf

    教你如何美化Labview界面.pdf
    發(fā)表于 10-28 15:16 ?41次下載

    labview界面中英文語言切換學(xué)習(xí)教程

    labview界面中英文切換,labview界面語言切換學(xué)習(xí)
    發(fā)表于 10-26 15:23 ?17次下載

    labview上位機(jī)界面設(shè)計(jì)

    LabVIEW是一種功能強(qiáng)大的計(jì)算機(jī)化系統(tǒng)設(shè)計(jì)和仿真軟件,被廣泛應(yīng)用于科學(xué)研究、工業(yè)控制、儀器儀表、數(shù)據(jù)采集與處理等領(lǐng)域。作為一款圖形化編程工具,LabVIEW具備直觀友好的用戶
    的頭像 發(fā)表于 12-28 11:16 ?7656次閱讀
    RM新时代网站-首页