羅澤勇
(中國科學(xué)院長春光學(xué)精密機械與物理研究所,吉林長春130033)
一種小型無人機的機載計算機軟件系統(tǒng)設(shè)計
羅澤勇
(中國科學(xué)院長春光學(xué)精密機械與物理研究所,吉林長春130033)
針對某小型無人機的飛行任務(wù)要求,設(shè)計并實現(xiàn)了該無人機機載計算機軟件系統(tǒng).通過對該無人機航電系統(tǒng)結(jié)構(gòu)特點進行分析,提出了軟件系統(tǒng)結(jié)構(gòu)的層次化設(shè)計方法,并利用模塊化設(shè)計思想對軟件系統(tǒng)進行任務(wù)劃分.按照ORB機制設(shè)計了系統(tǒng)進程間的通信方式,采用狀態(tài)機設(shè)計方法實現(xiàn)了系統(tǒng)的應(yīng)急策略.所設(shè)計的機載計算機軟件系統(tǒng)結(jié)構(gòu)優(yōu)良,層次清晰,具有高度可擴展性和可繼承性.半物理仿真試驗和外場試驗結(jié)果表明,該機載計算機軟件系統(tǒng)功能正常,運行穩(wěn)定.
小型無人機;軟件系統(tǒng);系統(tǒng)架構(gòu);進程間通信;狀態(tài)機
在過去的幾十年里,小型無人機在全世界的軍事和民用領(lǐng)域內(nèi)得到廣泛應(yīng)用.小型無人機具有靈活性高、隱蔽性好以及對燃料要求較低等優(yōu)勢,能夠在惡劣(dirty)、枯燥(dull)、危險(dangerous)的3D環(huán)境中執(zhí)行各種艱巨任務(wù)[1].現(xiàn)在其機載計算機軟件系統(tǒng)的設(shè)計已經(jīng)成為限制小型無人機向全自主、多任務(wù)、高安全方向發(fā)展的主要障礙[2].無人機機載計算機與大多數(shù)嵌入式系統(tǒng)一樣,大小有限、資源有限,但要求能夠滿足各種復(fù)雜條件實時應(yīng)用,因而其軟件系統(tǒng)的開發(fā)是一個復(fù)雜的過程.在小型無人機機載計算機軟件系統(tǒng)設(shè)計過程中,需要重點考慮的問題:(1)如何設(shè)計靈活、可擴展的軟件系統(tǒng)架構(gòu)以滿足任務(wù)多樣性要求,以及越來越廣泛的傳感器處理要求[3];(2)無人機的廣泛應(yīng)用導(dǎo)致越來越多的飛行事故的出現(xiàn),頻繁的飛行事故率導(dǎo)致無人機在軍用和民用領(lǐng)域中受限[4-5],所以如何在設(shè)計中保證無人機的安全性和可靠性也是機載計算機軟件系統(tǒng)設(shè)計的一個重要任務(wù).
國內(nèi)文獻中關(guān)于機載軟件系統(tǒng)的研究大多數(shù)都是從特定平臺著手,介紹軟件具體實現(xiàn)方式,很少介紹軟件的結(jié)構(gòu)化設(shè)計方法.而國外文獻研究中更強調(diào)頂層的結(jié)構(gòu)設(shè)計,美國斯坦福大學(xué)采用基于Server-Client的軟件架構(gòu)、Server建立與硬件層接口、Client建立與用戶層的接口,這種架構(gòu)能夠?qū)㈨攲尤蝿?wù)和底層服務(wù)隔離開[6].本文借鑒了這種分層設(shè)計的方法,通過對功能模塊的層次劃分和任務(wù)劃分,在高實時性和高可靠性的嵌入式實時多任務(wù)操作系統(tǒng)的基礎(chǔ)上完成了多任務(wù)的并發(fā)設(shè)計,確定了高度可擴展的軟件系統(tǒng)的架構(gòu).引入以數(shù)據(jù)為中心的系統(tǒng)進程間通信方式,增加了軟件系統(tǒng)的數(shù)據(jù)通信的可靠性和靈活性.本文通過軟件設(shè)計中充分考慮無人機在地面和空中的應(yīng)急情況處理,為提高無人機安全性和可靠性提供了另一種有效手段.
機載計算機軟件系統(tǒng)設(shè)計與航電系統(tǒng)結(jié)構(gòu)密不可分,圖1描述了該小型無人機航電系統(tǒng)的結(jié)構(gòu).整個航電系統(tǒng)以機載計算機為核心,各種傳感器、組合導(dǎo)航、數(shù)傳等航電設(shè)備通過串口與機載計算機進行通信,共同完成無人機的傳感器數(shù)據(jù)采集、飛行控制和任務(wù)管理.機載計算機采用實時多任務(wù)操作系統(tǒng),處理通過各個傳感器采集到的數(shù)據(jù),進行位置和姿態(tài)的預(yù)測,實現(xiàn)飛控算法,將控制指令和動力指令分別發(fā)送給執(zhí)行機構(gòu)和發(fā)動機ECU,并通過數(shù)傳系統(tǒng)向地面站發(fā)送飛行狀態(tài)信息,同時利用數(shù)據(jù)記錄儀記錄相應(yīng)的飛行狀態(tài)數(shù)據(jù);組合導(dǎo)航系統(tǒng)包含三軸陀螺、三軸加速度計和GPS,用于測量無人機機體坐標(biāo)下的位置、速度和加速度等信息;空速計、壓力傳感器分別用于測量空速和氣壓高度信息;安控系統(tǒng)用于執(zhí)行緊急情況下的無人機應(yīng)急策略.
該小型無人機飛行任務(wù)要求:實現(xiàn)從自主滑跑起飛、爬升、姿態(tài)穩(wěn)定飛行到遙控降落;通過數(shù)傳系統(tǒng)將飛行任務(wù)狀態(tài)和通信鏈路本身狀態(tài)發(fā)送給地面站進行監(jiān)測;對各個航電設(shè)備進行自檢測功能;通過飛行管理實現(xiàn)對多個任務(wù)的實時調(diào)度;能夠在航電設(shè)備故障狀態(tài)下進行應(yīng)急處理.
系統(tǒng)的架構(gòu)是否合理以及模塊化設(shè)計是否清晰,是影響機載計算機軟件系統(tǒng)能否順利開展詳細(xì)設(shè)計工作的主要因素.系統(tǒng)的架構(gòu)表示為系統(tǒng)的基本組件、組件之間的相互關(guān)系以及對這些組件管理的基本原則[7].優(yōu)良的軟件架構(gòu)能夠清楚地對系統(tǒng)進行描述,有利于軟件的擴展、測試和維護.模塊化的目的是為了降低程序復(fù)雜度,減少程序的耦合程度,使程序設(shè)計、調(diào)試和維護等操作簡單化.圖2為機載計算機軟件系統(tǒng)的層次化結(jié)構(gòu).根據(jù)功能需求,將機載計算機軟件系統(tǒng)劃分為驅(qū)動層、數(shù)據(jù)處理層、控制層和應(yīng)用層4個層次.
從圖2中可以看出,軟件系統(tǒng)結(jié)構(gòu)的最底層為軟件的驅(qū)動層,直接和硬件相關(guān),主要負(fù)責(zé)傳感器數(shù)據(jù)的采集、數(shù)傳通信數(shù)據(jù)的讀取、組合導(dǎo)航原始數(shù)據(jù)的采集、執(zhí)行機構(gòu)的控制等工作;驅(qū)動層之上為數(shù)據(jù)處理層,數(shù)據(jù)處理層調(diào)用驅(qū)動層模塊獲取原始數(shù)據(jù),對原始數(shù)據(jù)進行解碼、變換等加工,將加工后的數(shù)據(jù)發(fā)布給控制層;控制層位于數(shù)據(jù)處理層之上,控制層需要的數(shù)據(jù)依賴于數(shù)據(jù)處理層,但是控制層不會與具體的數(shù)據(jù)處理任務(wù)耦合,而是通過對象請求代理進行接口數(shù)據(jù)耦合,具體來說是通過ORB機制為驅(qū)動層和控制層之間提供通用的數(shù)據(jù)通信服務(wù),實現(xiàn)控制層和數(shù)據(jù)處理層數(shù)據(jù)的同步;軟件結(jié)構(gòu)的最上層為應(yīng)用層,根據(jù)功能需求進行飛行任務(wù)管理,直接調(diào)用控制層的控制模塊實現(xiàn)自主起降、航跡飛行、區(qū)域偵察等特定任務(wù),同時進行無人機狀態(tài)的切換.
3.1多任務(wù)劃分和管理
任務(wù)是能夠獨立執(zhí)行的一個功能或處理過程,是操作系統(tǒng)調(diào)度的基本單位,任務(wù)的合理劃分和優(yōu)先級的合理設(shè)置對保證系統(tǒng)的實時性至關(guān)重要.機載計算機軟件的設(shè)計采用了VxWorks實時操作系統(tǒng),該操作系統(tǒng)支持多任務(wù),并基于優(yōu)先級進行任務(wù)調(diào)度.在多任務(wù)實時操作系統(tǒng)下進行任務(wù)劃分需要遵循以下原則:
(1)功能獨立的操作劃分為一個任務(wù);
(2)功能聯(lián)系密切的操作劃為同一個任務(wù);
(3)I/O操作劃分為單獨任務(wù);
(4)周期性的操作作為任務(wù)來執(zhí)行;
(5)根據(jù)操作的緊急程度劃分為不同優(yōu)先級的任務(wù).
根據(jù)機載計算機軟件系統(tǒng)的層次架構(gòu)和任務(wù)劃分的原則,在機載計算機軟件系統(tǒng)中設(shè)計了不同優(yōu)先級的幾類任務(wù)(如表1所示).表1中:傳感器數(shù)據(jù)采集、組合導(dǎo)航和舵機控制執(zhí)行I/O操作劃分為單獨的任務(wù);數(shù)傳通信作為周期性任務(wù);功能完整并具有大量運算的飛行控制率計算作為獨立的任務(wù);飛行管理、應(yīng)急處理和數(shù)據(jù)記錄等操作功能獨立,也劃分為單獨的任務(wù).
機載計算機軟件系統(tǒng)中的多任務(wù)并發(fā)圖如圖3所示.多任務(wù)的并發(fā)執(zhí)行能夠提高任務(wù)調(diào)度的靈活性,總體上減少系統(tǒng)的執(zhí)行時間.在圖3中,數(shù)傳通信是地面站和無人機交互的直接通道,包括遙控任務(wù)和遙測任務(wù),這2個任務(wù)執(zhí)行周期設(shè)計為40ms;控制率計算任務(wù)實現(xiàn)自主滑跑和基本飛行模態(tài)的控制算法,應(yīng)具有較高優(yōu)先級,執(zhí)行周期設(shè)計為20ms;傳感器數(shù)據(jù)采集、組合導(dǎo)航和舵機控制任務(wù)主要執(zhí)行I/O操作,設(shè)計為中斷驅(qū)動方式的異步任務(wù);組合導(dǎo)航數(shù)據(jù)處理、傳感器數(shù)據(jù)處理、控制指令轉(zhuǎn)換等任務(wù)屬于重要數(shù)據(jù)獲取的中間層,執(zhí)行周期設(shè)計為40ms;飛行管理任務(wù)和應(yīng)急處理任務(wù)屬于非緊急任務(wù),執(zhí)行周期設(shè)計為80ms.
3.2以數(shù)據(jù)對象為中心的通信方式設(shè)計
進程間通信是多任務(wù)系統(tǒng)設(shè)計的重要功能,在VxWorks操作系統(tǒng)中,任務(wù)取代了進程的概念.機載計算機的軟件系統(tǒng)中采用了ORB機制實現(xiàn)多對多的任務(wù)間通信,ORB機制提供了開放的對象通信的框架,以數(shù)據(jù)對象為中心,在不同任務(wù)間建立了數(shù)據(jù)交換的軟總線,將數(shù)據(jù)和任務(wù)解耦合,對數(shù)據(jù)對象進行封裝和管理.
機載計算軟件系統(tǒng)中通過Publish/Subscribe方法實現(xiàn)ORB機制.圖4表示采用Publish/Subscribe方法,實現(xiàn)不同任務(wù)間的數(shù)據(jù)通信.中間為對象請求代理,它將所有的交互的數(shù)據(jù)進行分類和封裝,確定不同的數(shù)據(jù)通道;消費數(shù)據(jù)的任務(wù)(Subscriber)首先向?qū)ο蟠戆l(fā)生訂閱請求;生成數(shù)據(jù)的任務(wù)(Publisher)產(chǎn)生數(shù)據(jù)的同時,將該事件發(fā)布出去;對象請求代理監(jiān)聽到數(shù)據(jù)發(fā)布事件發(fā)生后,將該事件通知給所有訂閱該數(shù)據(jù)的任務(wù),訂閱數(shù)據(jù)的任務(wù)即可通過該數(shù)據(jù)通道獲得所需要的數(shù)據(jù).生成和消費數(shù)據(jù)的任務(wù)彼此透明,生成和消費過程不需要嚴(yán)格同步,通過采用互斥信號量和加鎖的方式保證對不同任務(wù)對數(shù)據(jù)的讀寫不發(fā)生沖突,解決進程間通信的數(shù)據(jù)一致性問題;另外,這種處理方式以數(shù)據(jù)對象作為中心,當(dāng)需要新的數(shù)據(jù)結(jié)構(gòu)可以直接添加到ORB中,并且生產(chǎn)數(shù)據(jù)和消費數(shù)據(jù)的任務(wù)可以根據(jù)需要被具有該數(shù)據(jù)接口的其他模塊替換,顯著增強了系統(tǒng)設(shè)計的獨立性和擴展性.
3.3復(fù)雜應(yīng)急處理的狀態(tài)機設(shè)計
復(fù)雜情況下的安全保障是無人機系統(tǒng)面對的一個重大挑戰(zhàn)[8].尤其是在航電設(shè)備出現(xiàn)故障、復(fù)雜環(huán)境下數(shù)傳系統(tǒng)失靈等狀況下,做出合理的應(yīng)急決策是保證無人機和地面指揮、操作人員安全的重要手段.在機載計算機軟件系統(tǒng)設(shè)計過程中,針對自主滑跑和空中飛行過程中可能會出現(xiàn)的緊急情況制定了應(yīng)急策略.首先描述出可能出現(xiàn)故障情況和無人機所處的飛行狀態(tài),然后針對各個故障情況制定相應(yīng)的應(yīng)急策略,再通過狀態(tài)機直觀地給出緊急情況下狀態(tài)的轉(zhuǎn)換關(guān)系,最后在機載計算機中將狀態(tài)機轉(zhuǎn)化為代碼.
(1)地面應(yīng)急處理
自主滑跑階段包括自主滑跑、手遙滑跑和應(yīng)急處理的3個狀態(tài),主要針對可能出現(xiàn)的數(shù)傳系統(tǒng)故障、無人機偏離跑道、超出決斷距離等情況進行應(yīng)急處理.當(dāng)出現(xiàn)數(shù)傳故障、超出最大滑跑速度及超出最大滑跑距離的情況,關(guān)閉發(fā)動機,繼續(xù)自主糾偏;當(dāng)航向角超出允許范圍,認(rèn)為滑跑已經(jīng)偏離正常軌道,在關(guān)閉發(fā)動機的情況下,進行一定程度的剎車制動;當(dāng)超出滑跑允許最長距離和側(cè)偏距離,認(rèn)為情況緊急,為避免嚴(yán)重事故發(fā)生,采取關(guān)閉發(fā)動機、剎車剎死的應(yīng)急措施.具體的狀態(tài)機轉(zhuǎn)換過程如圖5所示.
(2)空中應(yīng)急處理
無人機在空中自主飛行過程中,各種航電設(shè)備一旦出現(xiàn)故障,都有可能導(dǎo)致嚴(yán)重的事故發(fā)生,在軟件設(shè)計通過實現(xiàn)完善的應(yīng)急策略能夠顯著地增加無人機的安全性.本文以數(shù)傳系統(tǒng)故障為例介紹應(yīng)急狀態(tài)機的設(shè)計過程.當(dāng)無人機在空中發(fā)生數(shù)傳故障的情況下,首先通過無人機當(dāng)前的飛行高度、飛行速度和飛行姿態(tài)判斷當(dāng)前處于何種飛行狀態(tài),并確定出應(yīng)急安全狀態(tài);然后根據(jù)當(dāng)前飛行狀態(tài)判斷能否進入到應(yīng)急安全狀態(tài),若能進入應(yīng)急安全狀態(tài),就切換到應(yīng)急安全狀態(tài)等待數(shù)傳故障恢復(fù),若不能進入應(yīng)急安全狀態(tài)或者進入應(yīng)急安全狀態(tài)以后數(shù)傳故障長時間不能恢復(fù),就采取緊急處理措施,關(guān)閉發(fā)動機開傘降落.具體空中應(yīng)急的狀態(tài)機描述如圖6所示.
4.1半物理仿真
圖7為小型無人機半物理仿真的實驗室環(huán)境.通過利用三軸轉(zhuǎn)臺、仿真計算機、視景仿真平臺等設(shè)備對無人機機載計算機軟件系統(tǒng)進行測試.試驗中不僅測試了基本的飛行模態(tài),還對加入干擾以及主要航電設(shè)備出現(xiàn)異常等情況進行了模擬,通過試驗數(shù)據(jù)分析,判定機載計算機軟件系統(tǒng)運行是否穩(wěn)定,控制算法是否滿足要求以及應(yīng)急策略是否合理.
半物理仿真試驗的主要測試項目及測試結(jié)果如表2所示.
4.2飛行試驗
在外場飛行試驗中,測試了包括平飛、定向飛、爬升、左盤旋、右盤旋、下滑等飛行模態(tài),這里僅列舉部分飛行模態(tài)的測試結(jié)果.橫坐標(biāo)表示數(shù)據(jù)點,實際飛行過程中40ms產(chǎn)生一個數(shù)據(jù)點,縱坐標(biāo)分別是滾轉(zhuǎn)、俯仰和偏航3個姿態(tài)角.無人機做30°航向角定向飛行,無人機姿態(tài)角響應(yīng)如圖8所示,從圖8中可以看出滾轉(zhuǎn)角控制穩(wěn)定,偏航角控制精度較高;無人機做-0.3°等俯仰角下滑,無人機姿態(tài)角響應(yīng)如圖9所示,從圖9中可以看出滾轉(zhuǎn)角控制穩(wěn)定,俯仰角控制角度與期望值吻合.整個飛行試驗過程軟件系統(tǒng)未出現(xiàn)異常.
本文針對自主研發(fā)的小型無人機平臺,進行了機載計算機軟件系統(tǒng)的設(shè)計,該機載計算機軟件系統(tǒng)結(jié)構(gòu)層次分明、模塊化清晰.利用松耦合的ORB通信機制,完成了機載計算機軟件系統(tǒng)內(nèi)部不同構(gòu)建的復(fù)雜交互.通過設(shè)計狀態(tài)機實現(xiàn)了地面和空中的復(fù)雜應(yīng)急策略,保證了無人機的安全性.從半物理試驗和外場飛行試驗的結(jié)果可以看出,機載計算機軟件系統(tǒng)的設(shè)計穩(wěn)定可靠,完全能夠滿足無人機飛行任務(wù)的要求.
[1] DANIELA MEOLA,LUIGI IANNELLI,LUIGI GLIELMO.Flight control system for small-size unmanned aerial vehicles:design and software-in-the-loop validation[C]//21st Mediterranean Conference on Control &Automation,Chaina:IEEE,2013:357-362.
[2] YI-RUI TANG,YANGMIN Li.The software architecture of a reconfigurable real-time onboard control system for a small UAV helicopter[C]//The 8th International Conference on Ubiquitous Robots and Ambient Intelligence,Incheon:IEEE,2011:228-233.
[3] JOHN TISDALE,ALLISON RYAN,MARCO ZENNARO,et al.The software architecture of the berkeley UAV platform[C]//Proceedings of the 2006IEEE International Conference on Control Applications,Munich:IEEE,2006:1420-1425.
[4] DAVID W KING,ALLEN BERTAPELLE,CHAD MOSES.UAV failure rate criteria for equivalent level of safety[C]//International Helicopter Safety Symposium,Montereal:American Helicoper Society,2005:269-381.
[5] JAMES T HING,PAUL YOH.Development of an unmanned aerial vehicle piloting system with integrated motion cueing for training and pilot evaluation[J].Journal of Intelligent and Robotic Systems International Inc,2008:3-19.
[6] JANG JS,C TOMLIN J.Design and implementation of a low cost,hierarchical and modular avionics architecture for the dragonFly UAVs[C]//Proceedings of AIAA Guidance,Navigation,and Control Conference,Minneapolis:AIAA,2002:4465-4477.
[7] FRED BRIGGS.UAV software architechure[C]//Infotech@Aerospace Conferences,California:AIAA,2012:2539.
[8] MIAOBO DONG,BEN M CHEN,GUOWEI CAI.Development of a real-time onboard and ground station software systerm for a UAV helicopter[J].Journal of Aerospace Computing,Information,and Communication,2007:933-955.
Design of an airborne computer software system for a small UAV
LUO Ze-yong
(Changchun Institute of Optics Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China)
An airborne computer software system was developed,which could be used for flight mission of a certain small UAV.For the structure of the avionics,a hierarchical software design method was proposed,and the software task component was divided by quoting the concept of modulization.The interprocess communication(IPC)was implemented according to ORB mechanism.The safety strategy was set up by state machine.The designed airborne computer software system has a good architecture with high scalability and inheritable.The entire software system has been successfully tested in both a hardware-in-the-loop simulation environment and actual field flights.The flight results have shown that the software system is competent and reliable enough to go on with automatic flight of the UAV.
UAV;software system;system architecture;IPC;state machine
TP 336;V 249 [學(xué)科代碼] 520·60 [
] A
(責(zé)任編輯:石紹慶)
1000-1832(2015)01-0064-07
10.16163/j.cnki.22-1123/n.2015.01.013
2013-12-30
中國科學(xué)院“三期創(chuàng)新”平臺資助項目;吉林省科技發(fā)展計劃項目(20100458).[作者簡介] 羅澤勇(1984—),男,碩士,助理研究員,主要從事飛行仿真技術(shù)研究.