999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Linux的小型無人直升機實時仿真系統構建

2009-03-02 09:33:12裴海龍
現代電子技術 2009年4期

伍 越 裴海龍 陳 亮

摘 要:小型無人直升機是一個極具挑戰性的多學科交叉前沿性研究課題。這里重點介紹基于Linux的小型直升機仿真系統的構建過程及其相關軟件實現。首先對小型直升仿真系統的整體架構進行詳細的說明。然后基于Linux平臺對仿真系統的幾個主要程序模塊代碼進行編寫,利用FLTK圖形界面庫和Mesa/OpenGL實現了小型直升機實時3D飛行狀態顯示和狀態控制面板,可視化仿真及實時運動特性再現的過程。仿真系統的運行結果表明,仿真系統具有獨特的優勢和很好的開發前景。在今后對小型無人直升機的自主飛行研究當中,可以起到很好的輔助作用。整個仿真系統以模塊化實現,具有良好的移植性,便于今后對系統進行功能補充。

關鍵詞:小型無人直升機;仿真系統;OpenGL/Mesa;人機圖形界面

中圖分類號:TP391.9 文獻標識碼:B 文章編號:1004-373X(2009)04-089-04

Real-time Simulation System Construction Based on Linux

for a Small-scale Unmanned Helicopter

WU Yue,PEI Hailong,CHEN Liang

(College of Automation Science and Engineering,South China University of Technology,Guangzhou,510641,China)

Abstract:Small-scale unmanned helicopter is a challenging and advancing research project related to multi-disciplines.A real-time simulation system based on Linux and its software implementation for small-scale unmanned helicopter is introduced.Firstly,the overall architecture of simulation system is illuminated.Then the main module of the simulation system is briefly coded based on Linux.Using the FLTK graphical interface library and Mesa/OpenGL to achieve 3D fight,attitude control panel,visualization and the reproduction process of a real-time motion characteristics for the small-scale helicopter.The results of the simulation system indicate that the simulation system has unique advantages and favorable exploitation prospect.So this system can be applied in the future research of the autonomous flying of the small-scale helicopter.The simulation system is realized by module,has good transplantation and it is a supplement for system.

Keywords:unmanned small-scale helicopter;simulation system;OpenGL/Mesa;graphical interface

0 引 言

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

1 小型無人直升機實時仿真系統結構

1.1 無人直升機實時仿真系統構建

在此以Raptor90無人直升機為實驗平臺,如圖1所示。

要構建一套切實可行的小型無人直升機仿真系統,需要對小型無人直升機實際飛行過程進行全面的建模。而其中對小型無人直升機系統的數學模型建模又是重中之重[1]。這里主要利用MIT以及Aalborg大學研究人員提出的兩套無人直升機的建模方法[2-4],結合各自的優點,充分考慮無人直升機在不同模態切換之間的模型差異,對無人直升機進行數學建模,并轉換成可以實施的仿真系統模型。仿真系統主要包括直升機數學模型模塊、飛行控制系統模塊、數據融合模塊、控制輸入模塊,人機圖形界面模塊以及數據通信模塊等[5]。其中直升機數學模型模塊主要包括:直升機非線性模型、直升機線性化模型、陣風擾動模型、地形模型、傳感器模型以及伺服驅動器模型。直升機非線性模型主要包括主旋翼、伺服小翼、尾旋翼、空氣動力學模型以及6自由度剛體動力學模型。直升機線性化模塊主要是在直升機非線性模型的基礎上根據控制需要進行適當的簡化,以便用來對線性控制器的性能進行檢驗。陣風擾動模型主要用來對小型無人直升機在實際飛行環境中的陣風進行模擬。地形模型主要考慮直升機在起飛和降落過程中與地面之間的相互作用。這當中涉及到地面與槳葉間的渦流效應,對其建模非常復雜,故這里暫時不考慮。傳感器模型主要包括GPS定位模型、IMU測量模型和聲納測距模型。伺服驅動模型主要模擬將伺服板接收到的輸入信號轉換為伺服電機的轉動并最終轉換成機械動作后直接作用于旋翼的過程。飛行控制系統模塊指利用設計的控制算法對直升機進行自主飛行控制。數據融合模塊主要指利用卡爾曼濾波算法對各個傳感器測量到的數據進行融合計算??刂戚斎肽K主要用于直升機自主飛行時對其飛行狀態進行調校。人機圖形界面能生動實時地再現直升機的仿真效果。經過以上分析,可以得到小型無人直升機仿真系統的結構圖如圖2所示。

1.2 圖形界面軟件工具簡介

這里的無人機仿真系統是以Linux操作系統為開發平臺,以FLTK(Fast Light Tool Kit)圖形用戶界面工具箱實現人機界面顯示,并用Mesa/OpenGL實現飛行過程的實時三維動態仿真。

FLTK是一個用C++編寫的圖形界面開發工具。FLTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平臺、內置 OpenGL功能、尺寸更小等[6]。FLTK 使用Fl_Gl_Window這個類將OpenGL的基本功能囊括其中,開發時只要在Fl_Gl_Window的draw()里glbegin/glend即可。

無人直升機仿真系統的人機界面需要顯示直升機3D實時飛行狀態,這就需要用到OpenGL這個標準的三維計算機圖形接口。OpenGL由SGI公司開發,可以在不同的平臺如Windows 95,Windows NT,Unix,Linux,MacOS,OS/2等之間進行移植[7,8]。然而OpenGL不是自由軟件,它的版權、商標(OpenGL這個名字)都歸SGI公司所有。在Linux下用Mesa來取代OpenGL。 Mesa提供與OpenGL幾乎完全一致的接口,并且Mesa是遵循GPL協議的自由軟件,使得它對新硬件的支持度等方面甚至超過OpenGL。

2 仿真系統程序模塊編寫

仿真系統程序模塊主要包括模塊直升機數學模型模塊、控制輸入模塊、數據融合模、通信模塊、飛行控制系統模塊以及人機圖形界面模塊。下面主要對直升機數學模型模塊、控制輸入模塊、通信模塊以及人機圖形界面模塊進行代碼編寫。

2.1 直升機數學模型模塊

首先用類封裝各個子模型的主要屬性,主要包括主旋翼子模型、伺服小翼子模型、尾旋翼子模型,陣風擾動子模型以及伺服驅動子模型等;然后再把這些子模型封裝在一個直升機的類Heli中,看成直升機類的類成員變量;再為直升機類增加適當的成員函數,來完成各子模型的實際功能,這樣就構成了直升機整體。之后可以利用此類進行實例的定義及使用。

class Heli//定義直升機類

{

mainrotor_defm;//主旋翼子模型類

flybar_def fb;//伺服小翼子模型類

tailrotor_deft;//尾槳子模型類

wind_modelw; //陣風擾動子模型類

sensors_model s;//傳感器子模型類

//為直升機增加成員函數,完成各子模型類的實際功能

void setup_main_rotor();//建立直升機主旋翼

void setup_tail_rotor();//建立直升機尾旋翼

void setup_flybar();//建立直升機翼伺服小翼

void setup_wind();//建立陣風擾動模型

void setup_servos();//建立伺服驅動模型

static Heliraptor_90;//建立RAPTOR 90直升機實例

接下來便可以根據上面的Heli類來代入Rator90直升機的實際參數。

2.2 控制輸入模塊

在此選擇Logitech EXTREME 3D PRO JOYSTIC作為飛行控制輸入遙桿。首先,需要將遙桿的驅動程序掛載進內核。在/etc/rc.local文件中添加如下語句:

modprobe /lib/modules/2.6.11/kernel/drivers/input/joydev.o

即可在每次啟動內核時自動加載搖桿驅動模塊并檢查與其他模塊的屬性相依。

控制器成功掛載進內核之后,利用幾個主要數據讀取函數對遙桿的輸入數據進行讀取:

int joydev_open(const char * filename)//打開遙桿設備

int joydev_event(int fd,struct js_event * e,int users)//監聽遙桿輸入事件

static double handle_axis(int axis,int value)//讀取遙桿臂數據

static double handle_button( int button,int value)//讀取遙桿功能按鍵

然后便可通過socket通信模塊,把數據轉發到仿真平臺主程序上,再由主程序處理分配到各個終端。

2.3 通信模塊

該仿真系統主要采用Socket(套接字)網絡接口編程技術來實現各個模塊之間的數據交換,即進程間的通信[9-11]。Socket主要有2種,使用TCP(傳輸控制協議)協議的流式Socket通信和使用UDP(用戶數據報)協議的數據報Socket通信。TCP協議提供面向連接的、提供端到端檢查與糾錯全雙工字節流傳輸。 UDP協議是非連接的,可提供高速的傳輸服務,但不提供可靠的傳輸服務。該仿真程序使用UDP數據報協議,因是在本機內部進行通信,并且一個端口可以同時接收來自幾個端口的信息,無疑提高了效率。對通信雙方進行類封裝,建立基于UDP網絡通信的Server和Client類。主要實現代碼如下:

int s = socket(PF_INET,SOCK_DGRAM,0);//建立基于無連接的數據報Socket

addr.sin_family = AF_INET;// 在Internet域中進行通信

addr.sin_port = htons( port );//設置目標端口號

addr.sin_addr.s_addr = INADDR_ANY;//設置目標地址

Static host_t server;//建立UDP服務器模型

reconnect_server();//對UDP服務器建立連接

add_client (const host_t * src)//加入一個客戶端端口到服務器

read_state(state_t * state,int forever)//讀取端口數據

server->handle( AHRS_STATE,ahrs_state,0 );//處理讀入的無人機狀態數據

2.4 人機圖形界面模塊

圖形界面是最能體現仿真效果的部分。這里采用Linux系統下的FLTK和OpenGL/Mesa圖形函數庫進行圖形界面程序開發,主要代碼如下:

glutInitWindowSize( WIDTH,HEIGHT ); //調用OpenGL/Mesa庫函數實現圖形界面初始化

glutInitWindowPosition( 0,0 );//設置初始窗口位置

glutInitDisplayMode( 0| GLUT_DOUBLE| GLUT_RGB| GLUT_DEPTH);//設置窗口顯示模式

main_window=glutCreateWindow(argv[0]);//創建主顯示圖形窗口

Fl::gl_visual( FL_RGB );//設置fltk窗口顯示模式

gui = new UserInterface();//分配界面類UserInterface存儲空間

gui->make_window()->show();//調用類成員函數顯示圖形界面

3 仿真系統運行結果分析

對仿真系統所有模塊的源文件建立Makefile文件,以便今后程序的修改與調試。用Linux下的gcc編譯器編譯鏈接,生成各個模塊的可執行文件。整個仿真系統運行如下。

圖3為直升機運行功能面板。可以聯合手柄的按鍵,設置各個不同的功能鍵。

圖4為直升機3D運行界面以及狀態面板。當執行懸??刂瞥绦驎r,仿真程序會根據使預先設定好的參數,先進行垂直起飛,再飛向目標位置,然后在目標位置上進行定點懸停。同時可以從直升機狀態面板上,很直觀地看到直升機飛行姿態的變化。

4 結 語

詳細介紹了小型無人直升機仿真系統的構建。整個仿真系統是在Linux上搭建的。仿真系統運行結果很好地再現了直升機3D飛行過程,垂直起降以及定點懸停等。整個仿真系統大大縮短了研究周期,減少了資金的投入,并為接下來飛行控制系統的設計與驗證提供了良好的基礎。

參 考 文 獻

[1]Munzinger, Christian. Development of a Real-time FlightSimulator for an Experimental Model Helicopter [D]. Atlanta:Georgia Institute of Technology,1998.

[2]Gavrilets V.Autonomous Aerobatic Maneuvering of Miniature Helicopters.Cambrigde:Massachusetts Institute of Technology,2003.

[3]Gavrilets V,Mettler B,Feron E.Nonlinear Model for a Small-size Acrobatic Helicopter.Proceedings of the AIAA Guidance,Navigation,and Control Conference.Number AIAA 2001-4333,Montreal,Canada,2001.

[4]Hald U B.Nonlinear Modeling and Optimal Control of a Miniature Autonomous Helicopter.Denmark:Aalborg University,2003.

[5]常銳.小型自主小型無人直升機軟件系統設計與實現[D].廣州:華南理工大學,2007.

[6]Mason Woo.OpenGL編程權威指南[M].吳斌,譯.北京:中國電力出版社,2001.

[7]Wright R S,Jr B Lipchak.Open GL超級寶典.3版.徐波,譯.北京:人民郵電出版社,2005.

[8]Shreiner D,Woo M,Neider J,et al.OpenGL編程指南.5版.徐波,譯.北京:機械工業出版社,2006.

[9]羅軍舟,黎波濤,楊明,等.TCP/IP協議及網絡編程技術[M].北京:清華大學出版社,2005.

[10]Matthew N,Stones R Linux程序設計[M].3版.陳健,宋健建,譯.北京:人民郵電出版社,2007.

[11]龍晉元.Richard W.Unix環境高級編程[M].2版.北京:人民郵電出版社,2006.

作者簡介 伍 越 男,1983年出生,湖南邵陽人,碩士研究生。主要研究方向為小型無人直升機的建模與控制,Linux嵌入式系統及實時仿真系統的構建。

裴海龍 男,1965年出生,河南鄧縣人,博士,副院長,教授、博士生導師。長期從事嵌入式系統、智能機器人系統、自適應自組織控制等方面的研究和教學。

陳 亮 男,1983年出生,廣東興寧人,碩士研究生。主要研究方向為圖像處理、嵌入式系統。

主站蜘蛛池模板: 天堂成人在线| 一级毛片无毒不卡直接观看| 宅男噜噜噜66国产在线观看| 在线精品视频成人网| 成人在线观看一区| 欧美成人看片一区二区三区| 99re在线观看视频| 欧美日韩国产成人在线观看| 国产区在线看| 三级毛片在线播放| 日韩免费无码人妻系列| 亚洲成人精品| 成人精品午夜福利在线播放| 亚洲h视频在线| 激情爆乳一区二区| 国产91无码福利在线| AⅤ色综合久久天堂AV色综合 | 内射人妻无码色AV天堂| 亚洲成人免费在线| 亚洲欧美综合另类图片小说区| 国产精品妖精视频| 欧美一级在线| 久久久久亚洲精品成人网| 国产精品一线天| 亚洲色图欧美在线| 大陆国产精品视频| 色成人综合| 亚洲第一成年网| 69精品在线观看| 亚洲乱码在线播放| 欧美性天天| 99久久精品国产自免费| 久久国产精品电影| 九九热精品免费视频| 理论片一区| 亚洲一区二区黄色| 99ri精品视频在线观看播放| 久久久精品国产SM调教网站| 国产h视频在线观看视频| 亚洲成a人片| 999国产精品| 中国一级特黄视频| 在线播放真实国产乱子伦| av天堂最新版在线| 亚洲中文久久精品无玛| 亚洲中文制服丝袜欧美精品| 福利视频一区| 国产va欧美va在线观看| 亚洲高清无码久久久| 国产91久久久久久| 欧美日韩专区| 国产a v无码专区亚洲av| 久久亚洲中文字幕精品一区| 国产真实乱子伦精品视手机观看| 欧美精品亚洲二区| 欧洲熟妇精品视频| 久久a级片| 国产精品女同一区三区五区| 国产成人免费手机在线观看视频 | 伊人久久久久久久| 伊人婷婷色香五月综合缴缴情| 九九热这里只有国产精品| 久久www视频| 久久久噜噜噜| 亚洲成a人片77777在线播放| 热久久国产| 色悠久久久| 国产乱子伦视频在线播放| 国产成人亚洲欧美激情| 色婷婷色丁香| 无码一区二区波多野结衣播放搜索| 国产精品亚洲五月天高清| 国产高清不卡视频| 91色综合综合热五月激情| 国产精品深爱在线| 天天视频在线91频| 激情视频综合网| 国产精品主播| 国产性爱网站| 91久草视频| 动漫精品中文字幕无码| 久久亚洲AⅤ无码精品午夜麻豆|