那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

LabVIEW與Xplane飛行界面數據仿真交互

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

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

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

有些同學是做飛行控制的,在做飛行仿真時候,肯定會用到視景仿真。也就是通過屏幕,顯示飛機的姿態,經緯度等信息

一般地,做飛行仿真,如果自己使用Unity3D或者UnReal的虛擬引擎來做,比較費時間,需要對機場環境建模。

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

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

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

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

由于地圖放大很大,所以呈馬賽克狀,下圖右側為xplane的飛機姿態,左側為LabVIEW顯示的姿態和地圖位置(需要看實際效果,可以跳轉本文末尾,看視頻更佳)

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

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

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

點擊選項卡數據,數據輸出。 這里可以勾選要輸出的數據。

勾選有4列,第一個顯示在座艙,就是飛行時候,數據會顯示在飛行界面左上角。第4列是UDP輸出,勾選后,軟件會將勾選的數據通過UDP發送出去。

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

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


記得右下角,勾選 進行網絡數據輸出。

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

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

我勾選了速度,姿態,經緯度等。所以都顯示出來了。

實際UDP外發的時候,也是從上到下,數據依次發送的。

我們解析數據時候,可以和這個對照一下。

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


現在看下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,丟掉。截取后面的數據。

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

后面數據,每4個字節為一個數據。雖然有一個數據是序號,但是也是4個字節。

所以,我們強制轉換成單精度,得到我們要的數據。

通過對比實際座艙右上角顯示的數據,我們通過索引,可以得到想要的數據。

我們會發現有一個數據特別大,那是因為不應該用單精度轉化,是參數的ID號,可以通過條件結構來篩選需要的信息,不過參數固定的話對我們來說可以不用管。

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

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

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

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

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

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





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • LabVIEW
    +關注

    關注

    1977

    文章

    3657

    瀏覽量

    325676
  • UDP通信
    +關注

    關注

    0

    文章

    21

    瀏覽量

    1956

原文標題:【LabVIEW的UDP通信實例】LabVIEW與Xplane飛行界面數據仿真交互

文章出處:【微信號:小草手把手LabVIEW,微信公眾號:小草手把手LabVIEW】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    LabVIEW界面求解答

    哪位大神會用LabVIEW做一個導彈六自由度彈道仿真的人機交互界面啊,可以跟simulink進行通訊?求大神們幫幫忙
    發表于 11-04 10:20

    怎么用LabVIEW定義一個導彈的六自由度彈道仿真界面

    怎么用LabVIEW自定義一個導彈(飛行器)的六自由度彈道仿真界面,使其能夠和simulink進行聯合仿真,并且能夠在
    發表于 12-20 21:40

    LabVIEW數據采集系統交互界面怎么做?

    LabVIEW數據采集系統交互界面怎么做,比如在前面板點擊“采集數據”就開始運行數據采集模塊
    發表于 04-20 11:29

    labview2012和Multisim12做交互仿真

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

    LabVIEW相關問題 MATLAB與LabVIEW數據交互

    請教各位一個問題 我在MATLAB中得到了電壓波形 也轉化為數據保存到了工作空間。 現在想把數據交互LabVIEW中, 以便后邊在LabVIEW
    發表于 04-03 09:38

    基于MATLAB_Simulink和LabVIEW的發動機仿真講解

    一篇關于simulink和Labview交互仿真應用的實例,供大家參考
    發表于 12-15 11:32 ?15次下載

    LabVIEW人機界面

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

    LabVIEW 界面設計秘訣

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

    如何才能美化Labview界面

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

    基于LabVIEW數據仿真程序免費下載

    本文檔的主要內容詳細介紹的是基于LabVIEW數據仿真程序免費下載。
    發表于 06-11 08:00 ?7次下載
    基于<b class='flag-5'>LabVIEW</b>的<b class='flag-5'>數據</b><b class='flag-5'>仿真</b>程序免費下載

    LabVIEW界面設計的秘訣

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

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

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

    教你如何美化Labview界面.pdf

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

    labview界面中英文語言切換學習教程

    labview界面中英文切換,labview界面語言切換學習
    發表于 10-26 15:23 ?18次下載

    labview上位機界面設計

    LabVIEW是一種功能強大的計算機化系統設計和仿真軟件,被廣泛應用于科學研究、工業控制、儀器儀表、數據采集與處理等領域。作為一款圖形化編程工具,LabVIEW具備直觀友好的用戶
    的頭像 發表于 12-28 11:16 ?7902次閱讀
    百家乐平台出租家乐平台出租| 容城县| 百家乐比赛技巧| 六合彩网上投注| 诺贝尔百家乐官网的玩法技巧和规则| 大发888怎么了| 百家乐官网园百乐彩| 法老王娱乐城| 百家乐真人游戏投注网| 澳门百家乐官网海星王| 百家乐号解码器| 百家乐官网六手变化混合赢家打法| 大发888客户端下载| 女优百家乐官网的玩法技巧和规则| 足球盘口| 百家乐赌场赌场网站| 百家乐官网9点直赢| 大发8880634| 百家乐视频游365| 金逸太阳城团购| 百家乐官网平注资讯| 百家乐官网代理龙虎| 百家乐策略介绍| 好运来百家乐官网的玩法技巧和规则| 网络博彩qq群| 大西洋百家乐的玩法技巧和规则 | 娱网棋牌官方网站| 百家乐必胜法hk| 网上百家乐官网大赢家筹码| 脉动棋牌下载| 揭秘百家乐百分之50| 百家乐官网大小技巧| 棋牌中心| 百家乐怎么完才能嬴| 博必发百家乐官网的玩法技巧和规则 | 网站百家乐假| 百家乐官网中的小路怎样| 顶尖娱乐| 百家乐稳赢投资法| 百家百家乐官网官网网站| 百家乐官网游戏软件开发|