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

嵌入式Linux實時控制的四軸飛行器進程分析※

2015-09-12 06:42:54楊浩楊斌
單片機與嵌入式系統應用 2015年11期
關鍵詞:進程

楊浩,楊斌

(西南交通大學 信息科學與技術學院,成都610031)

楊浩(碩士研究生),主要研究方向為嵌入式開發與應用;楊斌(教授),主要研究方向為嵌入式系統應用開發、實時與分布式系統。

引 言

目前,市場上大部分四軸飛行器都是基于單片機制作的控制系統。單片機體積小、功耗低,但是由于其性能有限[1],且不能很好地支持TCP/IP協議,導致基于單片機制作的四軸飛行器功能有限。如果想要四軸飛行器實現更多的功能,則需要使用操作系統來制作四軸飛行器控制系統。在Linux操作系統中,普通進程不能做到快速的實時響應,因此如果使用Linux操作系統來制作四軸飛行器控制系統,就需要對進程的優先級和時間片進行修改,使其能夠保證快速響應[2]。

1 Linux操作系統實時進程和普通進程對比

Linux本身并不是一個強實時操作系統,但是其調度策略中提供了對實時進程的支持[3]。總體而言,Linux實時調度算法能夠滿足嚴格的時間要求,實時進程和普通進程的具體對比略——編者注。

2 飛行控制系統的任務分析

2.1 開發板選擇

因為開發板要安裝到四軸飛行器中,因此有以下考慮因素[4]:

①體積小、功耗低,同時,價格不能太高。

②開發板需要采集傳感器數據,并且在調試的過程中和上位機進行通信,需要開發板至少有兩個串口。

③四軸飛行器需要4 路PWM 信號供給電子調速器,因此至少能支持4路PWM 輸出。

④開發板上面需要外接USB攝像頭和無線網卡,進行視頻采集和網絡通信,因此至少需要1個USB接口。

基于以上因素,選擇了搭載AM3358處理器的BeagleBone Black開發板。

2.2 任務劃分

四軸飛行器在飛行的過程中,會有很多任務需要執行,其中包括控制任務、讀取傳感器數據任務、姿態自動調節任務、發送當前飛機情況任務、接收控制信號任務、響應控制信號任務、視頻采集任務、視頻傳輸任務。下面逐步介紹各個任務。

①控制任務:是指在接收到電腦客戶端發送的指令后對四軸飛行器進行控制的任務,這些指令包括起飛、降落、向左邊飛、向右邊飛、前進、后退。四軸飛行器控制系統要及時響應這些指令并根據指令改變4 個旋翼的PWM 值。如果客戶端沒有發送指令,則按照上一次的指令執行飛行任務。

②讀取傳感器數據任務:四軸飛行器在飛行過程中需要不斷地讀取姿態傳感器數據來獲取當前飛行器的飛行姿態,并對獲取的傳感器數據進行處理。

③姿態自動調節任務:在得到數據后和初始值數據進行比較,如果發現四軸飛行器機身傾斜,則要根據目前檢測的數據控制4個旋翼的轉速,對四軸飛行器進行自動調節,使得其回到平穩狀態。

④發送當前飛機情況任務:為了使電腦客戶端能更好地知道當前飛機的情況,四軸飛行器控制系統需要不斷地將當前傳感器發出的3個角度數值和4個旋翼的PWM值發送到客戶端的電腦上,使得控制系統對飛行器的當前狀態更加清楚。

⑤接收控制信號任務:四軸飛行器控制系統需要接收電腦客戶端發送過來的指令,這些指令包括起飛、降落、向左邊飛、向右邊飛、前進、后退。

⑥視頻采集任務:四軸飛行器控制系統需要不斷地采集視頻數據,然后將這些數據存入到一個緩存中。

⑦視頻傳輸任務:將緩存中的數據通過網絡發送出去,然后等下一次數據采集完成后繼續發送。

2.3 任務優先級說明

在四軸飛行器控制系統中,一共有7個任務在運行。控制任務是在接收控制信號任務完成后迅速地根據控制信號來調整飛行姿態,如果這兩個任務反應較慢有可能會導致四軸飛行器遇上危險,因此控制任務和接收控制信號任務需要較快的反應。讀取傳感器數據任務是為了進行姿態自動調節任務,使得四軸飛行器在空中保持平穩,這兩個任務也非常重要,同樣需要較快的反應。此外,地面的控制者要明確目前四軸飛行器所處的狀態,僅僅憑借眼睛去觀察是遠遠不夠的,因此發送當前飛機情況任務對于地面的控制者來說很重要。相較于前5個任務,視頻采集任務和視頻傳輸任務對于實時性的要求不是太高,只要控制者能看到四軸飛行器目前所返回的視頻即可,因此視頻采集任務和視頻傳輸任務沒有前5個任務的優先級別高。

2.4 進程優先級分配

BeagleBone Black 上 面 包 含 了 一 個Cortex-A8 處 理器,其性能較高,但是只有一個內核,因此相比多核處理器,BeagleBone Black運行多線程任務并沒有優勢。此外,控制任務、讀取傳感器數據任務、姿態自動調節任務、發送當前飛機情況任務和接收控制信號任務對實時性要求都很高,而且這5個任務之間相互關聯,因此將這5個任務放到一個進程中,通過設置一些變量來對任務發生的順序進行控制,這個進程稱為四軸飛行器控制進程。而視頻采集任務和視頻傳輸任務跟前5個任務沒有關系,因此將這兩個任務合并為一個進程,該進程稱為四軸飛行器視頻傳輸進程。

在將兩個進程設置為實時進程后,為了進一步提高實時性,需要修改這兩個進程的時間片。進程的時間片如果太低,進程之間互相切換會造成切換時間的浪費,而進程的時間片如果太高,實時性能會有所下降,因此選擇合適的時間片至關重要。根據經驗,每個進程的時間片為5ms時,效果是比較好的。兩個進程的優先級和時間片如表1所列。

表1 四軸飛行器進程的優先級和時間片

BeagleBone Black開發板的性能比單片機好很多,在運行實時進程后,其性能和效果都要優于單片機制作的飛行控制系統。

3 飛行控制系統的進程測試

在程序中改變進程的優先級是通過改變結構體sched_param 中間的成員變量sched_priority來實現。而改變時間片是通過在程序中修改進程的nice值來改變,當nice值為+19時,該進程對應的時間片為5ms。修改進程優先級是通過函數sched_setscheduler()來完成的,在參數中可以選擇輪流調度。

首先單獨運行四軸飛行器控制進程,該進程的名稱為“bbbnew”,四軸飛行器控制進程單獨運行時系統資源分配圖如圖1所示。

由圖1可知,四軸飛行器控制進程“bbbnew”的優先級為-99,nice值為19,此時對應的時間片為5ms。該進程單獨運行時的CPU 占有率為74.2%,該占有率在70%~85%之間徘徊。然后單獨運行四軸飛行器視頻傳輸進程,該進程的名稱為“camera”,視頻傳輸進程單獨運行時系統資源分配圖如圖2所示。

由圖2可知,四軸飛行器視頻傳輸進程“camera”的優先級為-98,nice值為19,此時對應的時間片為5ms。該進程單獨運行時的CPU 占有率為10.6%,該占有率在9%~12.5%之間徘徊。四軸飛行器在飛行過程中兩個進程都要運行,系統根據優先級和時間片來對進程進行調度。

圖1 四軸飛行器控制進程單獨運行時系統資源分配圖

圖2 視頻傳輸進程單獨運行時系統資源分配圖

3.1 四軸飛行器平穩狀態時

當四軸飛行器在平穩狀態時,控制進程和視頻傳輸進程同時運行,如圖3所示。

圖3 四軸飛行器平穩運行時

從圖3中可以看出,四軸飛行器4個旋翼的轉速基本一致,此時橫滾角、俯仰角和偏航角與初始值的差別很小,表明四軸飛行器處在平穩運行狀態。此時在攝像頭面前晃動手指,在客戶端電腦上能很快看到手指的晃動,反應速度很快,能滿足系統對實時性的要求。

從圖4中可以看出,在四軸飛行器平穩運行時,控制進程“bbbnew”的CPU 占用率是72.8%,視頻傳輸進程“camera”的CPU 占用率是11.0%,兩個進程并沒有完全占滿CPU 資源。此外,兩者同時運行一段時間后,兩個進程的運行時間總和是不一樣的。Linux操作系統top指令中TIME+的含義是進程使用的CPU 時間總計,單位為1/100s。控制進程“bbbnew”的TIME+數值為2∶01.45,四軸飛行器視頻進程“camera”的數值為1∶37.66,這是因為兩個進程的時間片雖然相同,但是由于控制進程的優先級要大于視頻傳輸進程的優先級,所以控制進程的運行時間總和大于視頻傳輸進程的運行時間總和,這與設計目標一致。

圖4 平穩運行時系統資源分配圖

3.2 四軸飛行器傾斜狀態時

(1)四軸飛行器向左傾斜時

四軸飛行器在向左傾斜時,歐拉角與初始值的差值和四軸飛行器4個旋翼的轉速如圖5所示。

可以看出,此時橫滾角與初始值的差值超過了臨界值并且為負值,表明此時四軸飛行器正在向左傾斜,控制系統需要根據PID算法來調節4個旋翼的轉速,使四軸飛行器重新回到平衡狀態。系統自動進行調節的同時,在攝像頭上面快速晃動手指,在客戶端電腦上可以實時看到晃動手指的視頻。這表明兩個進程在同時運行時,實時性都可以得到保證。此時的系統資源分配圖如圖6所示。

可以看出,在四軸飛行器向左傾斜時,控制進程“bbbnew”的CPU 占用率是83.1%,視頻傳輸進程“camera”的CPU 占用率是12.0%。兩個進程并沒有完全占滿CPU 資源。同樣,控制進程的運行時間總和大于視頻傳輸進程的運行時間總和。

(2)四軸飛行器向右傾斜時

四軸飛行器在向右傾斜時,歐拉角與初始值的差值和四軸飛行器4個旋翼的轉速略——編者注。

可以看出,此時橫滾角與初始值的差值超過了臨界值并且為正值,表明此時四軸飛行器正在向右傾斜,控制系統需要根據PID算法來調節4個旋翼的轉速,使四軸飛行器重新回到平衡狀態。系統自動進行調節的同時,在攝像頭上面快速晃動手指,在客戶端電腦上可以實時看到晃動手指的視頻。這表明兩個進程在同時運行時,實時性都可以得到保證。此時的系統資源分配圖略——編者注。

圖5 四軸飛行器向左傾斜時

圖6 四軸飛行器向左傾斜時系統資源分配圖

可以看出,在四軸飛行器向右傾斜時,控制進程“bbbnew”的CPU 占用率是70.9%,視頻進程“camera”的CPU 占用率是9.0%。兩個進程并沒有完全占滿CPU 資源。同樣,控制進程的運行時間總和大于視頻傳輸進程的運行時間總和。

經過測試,四軸飛行器其他傾斜情況也能滿足實時響應要求。

3.3 極端條件下的測試

第3.1節和3.2節分別介紹了四軸飛行器在平穩狀態下和傾斜狀態下,兩個進程的實時響應情況。在這里作進一步測試。

在四軸飛行器的控制進程中,設置當四軸飛行器控制系統檢測到俯仰角或者橫滾角和初始值的差值大于25°時或者小于-25°時,四軸飛行器4個旋翼會立即停止轉動。那么用手指在攝像頭面前晃動的同時,人為以很快的速度傾斜機身到25°。如圖7所示。

可以看到,在攝像頭面前晃動手指,可以從電腦客戶端上看到實時晃動手指的視頻,此時人為快速傾斜機身,這時橫滾角與初始值的角度差值已經小于-25°,4個旋翼立即停止了轉動。這表明在極端條件下,控制進程和視頻傳輸進程都能夠做到實時響應,達到了預期的設計目標。

通過以上的測試,證明了將四軸飛行器控制進程和視頻傳輸進程都設置為實時進程,將控制進程優先級設置為-99,視頻傳輸進程設置為-98,并且將兩個進程的時間片都設置為5 ms后,無論四軸飛行器處在何種條件下,這兩個進程都可以做到快速的實時響應,從而達到了設計目標。

結 語

本文利用Linux操作系統支持的實時進程策略對四軸飛行器的控制進程和視頻傳輸進程進行了優先級和時間片的修改,使得這兩個進程都可以達到實時響應。

編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。

圖7 視頻實時傳輸同時四軸飛行器自動檢測并停止旋轉

[1]胡劍華.基于ARM-Linux實時嵌入式飛行控制系統設計與實現[D].南京:南京航空航天大學,2010.

[2]張桂蘭,王飛超.Linux內核完全公平調度器的分析及模擬[J].中國科技信息,2009(4).

[3]鄒勇,王青,李明樹.Linux 內核的實時支持的研究與實現[J].計算機研究與發展,2002(4).

[4]龐慶霈.四旋翼飛行器設計與穩定控制研究[D].合肥:中國科學技術大學,2011.

[5]TI.德州儀器的BeagleBone Black介紹[EB/OL].[2015-05].http://news.cecb2b.com/info/20130718/888742.shtml.

猜你喜歡
進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進程中的國際收支統計
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進程
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
講效率 結束進程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
論文萊的民族獨立進程
主站蜘蛛池模板: 国产欧美又粗又猛又爽老| 精品无码一区二区三区电影| 99国产精品一区二区| 国产精品欧美在线观看| 国产无人区一区二区三区| 国产麻豆永久视频| 欧美日韩一区二区三| 国产精品人人做人人爽人人添| 国产微拍精品| 麻豆精品在线视频| 狠狠色噜噜狠狠狠狠色综合久 | 日韩视频精品在线| 国产XXXX做受性欧美88| 国产男女免费完整版视频| 91精品啪在线观看国产91| 国产 在线视频无码| 丰满人妻一区二区三区视频| 国产成人综合日韩精品无码不卡 | 一本大道东京热无码av| 国产成人精品视频一区二区电影| 免费A∨中文乱码专区| 亚洲欧洲日韩综合色天使| 波多野结衣爽到高潮漏水大喷| 亚洲综合二区| 2021国产乱人伦在线播放 | 一区二区三区成人| 亚国产欧美在线人成| 成人在线综合| 91在线视频福利| 国产精品永久久久久| 亚洲IV视频免费在线光看| 日本三区视频| 亚洲国产日韩在线成人蜜芽| 国产99免费视频| 中文字幕永久视频| 日本不卡在线| AV片亚洲国产男人的天堂| 一边摸一边做爽的视频17国产| 中文无码毛片又爽又刺激| 成人福利视频网| 亚洲成综合人影院在院播放| 好吊日免费视频| 在线国产毛片| 男人天堂伊人网| 色哟哟色院91精品网站| 国产福利一区在线| 日韩天堂视频| 婷婷综合在线观看丁香| a毛片在线| 中国丰满人妻无码束缚啪啪| 在线网站18禁| 国产无码性爱一区二区三区| 国产精品专区第1页| 欧美成人精品一级在线观看| 国产在线观看成人91| 97成人在线观看| 欧美成人精品在线| 免费一级毛片| 2021天堂在线亚洲精品专区| 国产网站免费| 国产视频久久久久| 免费又黄又爽又猛大片午夜| 日日碰狠狠添天天爽| 就去色综合| 久久综合成人| 香蕉伊思人视频| 亚洲国产中文在线二区三区免| 18黑白丝水手服自慰喷水网站| 欧美成人影院亚洲综合图| 亚洲成人网在线播放| 久久99精品久久久久纯品| 在线国产资源| 91精品伊人久久大香线蕉| 欧美三级日韩三级| 亚洲国产精品人久久电影| 国语少妇高潮| www亚洲精品| 2021国产精品自产拍在线观看 | 亚洲第一色网站| 国产女人在线视频| 国产一区二区三区日韩精品| 国产黑丝视频在线观看|