當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]基于Linux的小型無(wú)人直升機(jī)實(shí)時(shí)仿真系統(tǒng)構(gòu)建

0 引 言
    小型無(wú)人直升機(jī)具有垂直起降、懸停、巡航以及快速轉(zhuǎn)變航向等特性,使得它成為一種理想的無(wú)人飛行器,并被廣泛地應(yīng)用于除軍事目的以外的諸如交通執(zhí)法監(jiān)控、海洋/環(huán)境監(jiān)測(cè)以及航空攝影/測(cè)量等許多領(lǐng)域。在進(jìn)行實(shí)際自主飛行試驗(yàn)時(shí),由于小型無(wú)人直升機(jī)本身是一個(gè)極其復(fù)雜的非線性系統(tǒng),加之實(shí)驗(yàn)環(huán)境的變化,因此具有很大的不確定性,稍有不慎,就可能造成飛機(jī)的失控甚至墜毀。為了保證實(shí)際飛行實(shí)驗(yàn)的安全,縮短開(kāi)發(fā)周期,減少開(kāi)發(fā)資金的投入,同時(shí)便于對(duì)飛行控制系統(tǒng)進(jìn)行驗(yàn)證與調(diào)較,設(shè)計(jì)一套小型無(wú)人直升機(jī)的實(shí)時(shí)仿真系統(tǒng)便顯得尤為迫切。詳細(xì)介紹了基于Linux的小型無(wú)人直升機(jī)的實(shí)時(shí)仿真系統(tǒng)整個(gè)搭建過(guò)程。

1 小型無(wú)人直升機(jī)實(shí)時(shí)仿真系統(tǒng)結(jié)構(gòu)
1.1 無(wú)人直升機(jī)實(shí)時(shí)仿真系統(tǒng)構(gòu)建

    在此以Raptor90無(wú)人直升機(jī)為實(shí)驗(yàn)平臺(tái),如圖1所示。

    要構(gòu)建一套切實(shí)可行的小型無(wú)人直升機(jī)仿真系統(tǒng),需要對(duì)小型無(wú)人直升機(jī)實(shí)際飛行過(guò)程進(jìn)行全面的建模。而其中對(duì)小型無(wú)人直升機(jī)系統(tǒng)的數(shù)學(xué)模型建模又是重中之重。這里主要利用MIT以及Aalborg大學(xué)研究人員提出的兩套無(wú)人直升機(jī)的建模方法,結(jié)合各自的優(yōu)點(diǎn),充分考慮無(wú)人直升機(jī)在不同模態(tài)切換之間的模型差異,對(duì)無(wú)人直升機(jī)進(jìn)行數(shù)學(xué)建模,并轉(zhuǎn)換成可以實(shí)施的仿真系統(tǒng)模型。仿真系統(tǒng)主要包括直升機(jī)數(shù)學(xué)模型模塊、飛行控制系統(tǒng)模塊、數(shù)據(jù)融合模塊、控制輸入模塊,人機(jī)圖形界面模塊以及數(shù)據(jù)通信模塊等。其中直升機(jī)數(shù)學(xué)模型模塊主要包括:直升機(jī)非線性模型、直升機(jī)線性化模型、陣風(fēng)擾動(dòng)模型、地形模型、傳感器模型以及伺服驅(qū)動(dòng)器模型。直升機(jī)非線性模型主要包括主旋翼、伺服小翼、尾旋翼、空氣動(dòng)力學(xué)模型以及6自由度剛體動(dòng)力學(xué)模型。直升機(jī)線性化模塊主要是在直升機(jī)非線性模型的基礎(chǔ)上根據(jù)控制需要進(jìn)行適當(dāng)?shù)暮?jiǎn)化,以便用來(lái)對(duì)線性控制器的性能進(jìn)行檢驗(yàn)。陣風(fēng)擾動(dòng)模型主要用來(lái)對(duì)小型無(wú)人直升機(jī)在實(shí)際飛行環(huán)境中的陣風(fēng)進(jìn)行模擬。地形模型主要考慮直升機(jī)在起飛和降落過(guò)程中與地面之間的相互作用。這當(dāng)中涉及到地面與槳葉間的渦流效應(yīng),對(duì)其建模非常復(fù)雜,故這里暫時(shí)不考慮。傳感器模型主要包括GPS定位模型、IMu測(cè)量模型和聲納測(cè)距模型。伺服驅(qū)動(dòng)模型主要模擬將伺服板接收到的輸入信號(hào)轉(zhuǎn)換為伺服電機(jī)的轉(zhuǎn)動(dòng)并最終轉(zhuǎn)換成機(jī)械動(dòng)作后直接作用于旋翼的過(guò)程。飛行控制系統(tǒng)模塊指利用設(shè)計(jì)的控制算法對(duì)直升機(jī)進(jìn)行自主飛行控制。數(shù)據(jù)融合模塊主要指利用卡爾曼濾波算法對(duì)各個(gè)傳感器測(cè)量到的數(shù)據(jù)進(jìn)行融合計(jì)算??刂戚斎肽K主要用于直升機(jī)自主飛行時(shí)對(duì)其飛行狀態(tài)進(jìn)行調(diào)校。人機(jī)圖形界面能生動(dòng)實(shí)時(shí)地再現(xiàn)直升機(jī)的仿真效果。經(jīng)過(guò)以上分析,可以得到小型無(wú)人直升機(jī)仿真系統(tǒng)的結(jié)構(gòu)圖如圖2所示。

1.2 圖形界面軟件工具簡(jiǎn)介
    這里的無(wú)人機(jī)仿真系統(tǒng)是以Linux操作系統(tǒng)為開(kāi)發(fā)平臺(tái),以FLTK(Fast Light Tool Kit)圖形用戶界面工具箱實(shí)現(xiàn)人機(jī)界面顯示,并用Mesa/C)penGL實(shí)現(xiàn)飛行過(guò)程的實(shí)時(shí)三維動(dòng)態(tài)仿真。
    FLTK是一個(gè)用++編寫(xiě)的圖形界面開(kāi)發(fā)工具。FLTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平臺(tái)、內(nèi)置OpenGL功能、尺寸更小等。FLTK使用Fl—Gl—Window這個(gè)類將OpenGL的基本功能囊括其中,開(kāi)發(fā)時(shí)只要在Fl—Gl—window的draw()里glbegin/glend即可。無(wú)人直升機(jī)仿真系統(tǒng)的人機(jī)界面需要顯示直升機(jī)3D實(shí)時(shí)飛行狀態(tài),這就需要用到OpenGL這個(gè)標(biāo)準(zhǔn)的三維計(jì)算機(jī)圖形接口。OpenGL由SGI公司開(kāi)發(fā),可以在不同的平臺(tái)如windows 95,windows NT,Unix,Linux,Mac()s,()s/2等之間進(jìn)行移植。然而C)penGL不是自由軟件,它的版權(quán)、商標(biāo)(OpenGL這個(gè)名字)都?xì)wSGI公司所有。在Linux下用Mesa來(lái)取代OpenGL。Mesa提供與OpenGL幾乎完全一致的接口,并且Mesa是遵循GPL協(xié)議的自由軟件,使得它對(duì)新硬件的支持度等方面甚至超過(guò)OpenGL。[!--empirenews.page--]

2 仿真系統(tǒng)程序模塊編寫(xiě)
   
仿真系統(tǒng)程序模塊主要包括模塊直升機(jī)數(shù)學(xué)模型-模塊、控制輸入模塊、數(shù)據(jù)融合模、通信模塊、飛行控制系統(tǒng)模塊以及人機(jī)圖形界面模塊。下面主要對(duì)直升機(jī)數(shù)學(xué)模型模塊、控制輸入模塊、通信模塊以及人機(jī)圖形界面模塊進(jìn)行代碼編寫(xiě)。
2.1 直升機(jī)數(shù)學(xué)模型模塊
    首先用類封裝各個(gè)子模型的主要屬性,主要包括主旋翼子模型、伺服小翼子模型、尾旋翼子模型,陣風(fēng)擾動(dòng)子模型以及伺服驅(qū)動(dòng)子模型等;然后再把這些子模型封裝在一個(gè)直升機(jī)的類Heli中,看成直升機(jī)類的類成員變量;再為直升機(jī)類增加適當(dāng)?shù)某蓡T函數(shù),來(lái)完成各子模型的實(shí)際功能,這樣就構(gòu)成了直升機(jī)整體。之后可以利用此類進(jìn)行實(shí)例的定義及使用。

   
    接下來(lái)便可以根據(jù)上面的Heli類來(lái)代入Rator90直升機(jī)的實(shí)際參數(shù)。
2.2 控制輸入模塊
   
在此選擇Logitech EXTREME 3D PRO JOYSTIC作為飛行控制輸入遙桿。首先,需要將遙桿的驅(qū)動(dòng)程序掛載進(jìn)內(nèi)核。在/etc/rc.10cal文件中添加如下語(yǔ)句:

    modprobe/lib/modules/2.6.1 1/kernel/drivers/input/joydev.o
    即可在每次啟動(dòng)內(nèi)核時(shí)自動(dòng)加載搖桿驅(qū)動(dòng)模塊并檢查與其他模塊的屬性相依。
    控制器成功掛載進(jìn)內(nèi)核之后,利用幾個(gè)主要數(shù)據(jù)讀取函數(shù)對(duì)遙桿的輸人數(shù)據(jù)進(jìn)行讀?。?/p>

   
    然后便可通過(guò)socket通信模塊,把數(shù)據(jù)轉(zhuǎn)發(fā)到仿真平臺(tái)主程序上,再由主程序處理分配到各個(gè)終端。
2.3 通信模塊
   
該仿真系統(tǒng)主要采用Socket(套接字)網(wǎng)絡(luò)接口編程技術(shù)來(lái)實(shí)現(xiàn)各個(gè)模塊之間的數(shù)據(jù)交換,即進(jìn)程間的通信。Socket主要有2種,使用TCP(傳輸控制協(xié)議)協(xié)議的流式Socket通信和使用UDP(用戶數(shù)據(jù)報(bào))協(xié)議的數(shù)據(jù)報(bào)Socket通信。TCP協(xié)議提供面向連接的、提供端到端檢查與糾錯(cuò)全雙工字節(jié)流傳輸。UDP協(xié)議是非連接的,可提供高速的傳輸服務(wù),但不提供可靠的傳輸服務(wù)。該仿真程序使用UDP數(shù)據(jù)報(bào)協(xié)議,因是在本機(jī)內(nèi)部進(jìn)行通信,并且一個(gè)端口可以同時(shí)接收來(lái)自幾個(gè)端口的信息,無(wú)疑提高了效率。對(duì)通信雙方進(jìn)行類封裝,建立基于UDP網(wǎng)絡(luò)通信的Server和Client類。主要實(shí)現(xiàn)代碼如下:

    [!--empirenews.page--]
2.4 人機(jī)圖形界面模塊
   
圖形界面是最能體現(xiàn)仿真效果的部分。這里采用Linux系統(tǒng)下的FLTK和OpenGL/Mesa圖形函數(shù)庫(kù)進(jìn)行圖形界面程序開(kāi)發(fā),主要代碼如下:



3 仿真系統(tǒng)運(yùn)行結(jié)果分析
   
對(duì)仿真系統(tǒng)所有模塊的源文件建立Makefile文件,以便今后程序的修改與調(diào)試。用Linux下的gcc編譯器編譯鏈接,生成各個(gè)模塊的可執(zhí)行文件。整個(gè)仿真系統(tǒng)運(yùn)行如下。
    圖3為直升機(jī)運(yùn)行功能面板。可以聯(lián)合手柄的按鍵,設(shè)置各個(gè)不同的功能鍵。

    圖4為直升機(jī)3D運(yùn)行界面以及狀態(tài)面板。當(dāng)執(zhí)行懸??刂瞥绦驎r(shí),仿真程序會(huì)根據(jù)使預(yù)先設(shè)定好的參數(shù),先進(jìn)行垂直起飛,再飛向目標(biāo)位置,然后在目標(biāo)位置上進(jìn)行定點(diǎn)懸停。同時(shí)可以從直升機(jī)狀態(tài)面板上,很直觀地看到直升機(jī)飛行姿態(tài)的變化。

4 結(jié) 語(yǔ)
    詳細(xì)介紹了小型無(wú)人直升機(jī)仿真系統(tǒng)的構(gòu)建。整個(gè)仿真系統(tǒng)是在Linux上搭建的。仿真系統(tǒng)運(yùn)行結(jié)果很好地再現(xiàn)了直升機(jī)3D飛行過(guò)程,垂直起降以及定點(diǎn)懸停等。整個(gè)仿真系統(tǒng)大大縮短了研究周期,減少了資金的投入,并為接下來(lái)飛行控制系統(tǒng)的設(shè)計(jì)與驗(yàn)證提供了良好的基礎(chǔ)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉