姜 林,鄭 堯,軒新想,范本果,許祥馨
(1.中國電子科技集團公司第三研究所,北京 100015;2.陸航研究所,北京 101121)
光電吊艙作為無人機(Unmanned Aerial Vehicle,UAV)的重要載荷之一,主要由主控單元、伺服平臺單元、光學控制單元、傳感器組件(含可見光、短波紅外、中波紅外、激光測距機等傳感器)、圖像處理單元以及組合慣導單元等組成,用于晝/夜間對目標進行偵查、搜索、識別、瞄準、跟蹤、目標定位、激光測距以及照射、引導攻擊等任務(wù)。在無人機執(zhí)行飛行任務(wù)時,無人機需要與地面站無線通信,地面站人員通過地面控制程序與無人機進行人機交互。光電吊艙主控單元在外部需要與無人機飛控計算機、綜合控制終端、飛控記錄儀以及目標引導系統(tǒng)等設(shè)備進行通信,在內(nèi)部需要與伺服平臺單元、光學控制單元、圖像處理單元以及組合慣導單元等進行通信[1-3]。如何確保內(nèi)外通信的穩(wěn)定性[4-5],提高通信效率,是無人機光電吊艙主控軟件設(shè)計的關(guān)鍵所在。
本文在ARM架構(gòu)上使用C++語言設(shè)計并實現(xiàn)了光電吊艙主控軟件。通過主控軟件中線程管理模塊合理的資源分配與調(diào)度,實現(xiàn)了主控程序的穩(wěn)定、可靠、高效運行。
1.1.1 外部通信
無人機系統(tǒng)中多個模塊間通過1553B總線[6-7]進行數(shù)據(jù)交互,光電吊艙屬于其中的一個模塊。在該總線結(jié)構(gòu)中,所有消息規(guī)劃均由綜合管理計算機(Bus Controller,BC)來實現(xiàn)。光電吊艙、綜合控制系統(tǒng)、飛機廣播(目標引導系統(tǒng),飛機組合慣導)均為遠程終端設(shè)備(Remote terminal,RT),總線采用廣播形式發(fā)送目標引導系統(tǒng)數(shù)據(jù)和飛機慣導數(shù)據(jù),與綜合控制系統(tǒng)和綜合管理計算機進行數(shù)據(jù)交互。
1.1.2 內(nèi)部通信
光電吊艙中的主控單元(含硬件平臺和內(nèi)部軟件)使用RS-422串口通信來實現(xiàn)與伺服平臺單元、光學控制單元、圖像處理單元以及組合慣導單元等組件間的數(shù)據(jù)交互,如圖1所示。
圖1 光電吊艙內(nèi)部通信功能模塊圖
光電吊艙主控軟件與內(nèi)、外部功能模塊的信息交互如表1所示。
主控軟件在配置ARM板卡的Ubuntu 18.04環(huán)境中進行開發(fā)。板卡使用NFS(Network File System)掛載Ubuntu文件系統(tǒng),使用Visual Studio Code編輯代碼與編譯。主控軟件開發(fā)使用高性能臺式機,以提高程序編輯效率,加快編譯步驟,縮短開發(fā)與測試周期;并使用Git代碼托管來維護代碼的歷史記錄,有效地解決軟件備份問題。
2.2.1 主控軟件線程流程
主控軟件線程流程如圖2所示。
圖2 線程流程圖
主控軟件的主要線程如下:
(1)程序開始,讀取配置文件參數(shù)(算法參數(shù)),初始化Log類,記錄主控軟件狀態(tài);
(2)主線程創(chuàng)建系統(tǒng)控制與算法模塊線程、無人機1553B數(shù)據(jù)線程、伺服控制單元線程、光學控制單元線程、圖像處理單元線程以及光電吊艙組合慣導單元線程,并實時監(jiān)聽子線程狀態(tài)并完成記錄;
(3)系統(tǒng)控制與算法模塊線程接收無人機1553B數(shù)據(jù)線程的指令,并接收伺服控制單元線程、光控控制單元線程、圖像處理單元線程、光電吊艙組合慣導單元線程的實時數(shù)據(jù),完成相應(yīng)的策略與算法控制并反饋控制情況,上報狀態(tài),傳輸數(shù)據(jù)給對應(yīng)的模塊;
(4)線程3-線程6接收系統(tǒng)控制與算法模塊線程傳來的指令并執(zhí)行對應(yīng)的操作。
2.2.2 系統(tǒng)工作模式切換關(guān)系
主控軟件的系統(tǒng)工作模式共11種,包括收藏、鎖定、手動、自動掃描、小區(qū)搜索、隨動、自動跟蹤、搜索跟蹤、地理跟蹤、目標坐標引導以及目標角度引導。系統(tǒng)工作模式的切換如圖3所示,圖中的箭頭指向表示系統(tǒng)允許的狀態(tài)切換方向。
圖3 系統(tǒng)工作模式
2.2.3 系統(tǒng)功能定義
(1)自檢測。自檢測分為上電自檢、周期自檢以及啟動自檢三種。
(2)激光測距。激光上電后,發(fā)送“激光測距”指令,激光開始測距。激光測距一定時間后自動停止測距。在激光測距時,可以通過發(fā)送“激光測距停止”指令中止激光測距。激光測距未停止時,發(fā)送“激光照射”可轉(zhuǎn)為激光照射,重新計時。激光測距未停止時,再次收到“激光測距”指令,激光測距仍以原激光測距開始的時間繼續(xù)計時。
(3)激光照射。激光照射分為“激光單次照射”和“激光連續(xù)照射”兩個指令。激光單次照射和激光連續(xù)照射的區(qū)別在于照射時間不同。
激光上電后,發(fā)送“激光單次照射”或“激光連續(xù)照射”指令,激光開始照射并回報測距值。在激光照射未停止時,發(fā)送“激光測距”為無效指令。在激光照射時,可以通過發(fā)送“激光照射停止”指令中止激光照射。在激光單次(連續(xù))照射未停止時,再次發(fā)送激光單次(連續(xù))照射指令,即當發(fā)送的照射指令與當前激光照射狀態(tài)相同時,該激光照射仍以原激光照射開始計時的時間繼續(xù)計時。當激光單次照射時發(fā)送“激光連續(xù)照射”指令,或當激光連續(xù)照射中發(fā)送“激光單次照射”指令,激光均以原起照開始時間繼續(xù)計時,以連續(xù)照射時間為照 射時間。
(4)激光測距(照射)停止。發(fā)送“激光測距(照射)停止”,則激光測距(照射)停止。
(5)線性位移補償。在任一工作模式下,發(fā)送線性位移補償指令,光電裝置進入線性位移補償狀態(tài)。在手動模式下,該算法自動運行,補償飛機飛行速度。發(fā)送“線性位移補償關(guān)閉”指令,光電裝置退出線性位移補償狀態(tài)。上電時,系統(tǒng)線性位移補償指令默認無效。
本文設(shè)計的主控單元軟件已經(jīng)過多次無人機吊艙實際掛飛測試,掛飛實驗過程中的可見光與紅外的圖像分別如圖4和圖5所示。
圖4 可見光視頻截圖
圖5 紅外視頻截圖
測試過程中,無人機與主控軟件之間數(shù)據(jù)控制正常,數(shù)據(jù)接收與發(fā)送正常;主控單元與吊艙內(nèi)部模塊(伺服控制單元、光控控制單元、圖像處理單元及光電吊艙組合慣導)之間進行數(shù)據(jù)接收與發(fā)送正常,指令響應(yīng)速度快。將主控軟件實時存儲的Log、無人機中飛控記錄儀存儲的數(shù)據(jù)與視頻記錄儀存儲的視頻進行對比驗證,發(fā)現(xiàn)3組數(shù)據(jù)具有較高的一致性。因此可以認為,本文設(shè)計的主控程序運行穩(wěn)定、可靠且高效。
本文基于ARM架構(gòu)硬件平臺,使用C++語言完成了無人機光電吊艙主控單元控制軟件的設(shè)計,通過該軟件實現(xiàn)了光電吊艙內(nèi)部單元之間以及光電吊艙與無人機其他模塊間的數(shù)據(jù)交互,并高效地執(zhí)行了對應(yīng)的策略與算法。主控單元控制軟件經(jīng)地面測試及無人機吊艙多次實際掛飛測試,充分驗證了軟件運行穩(wěn)定、魯棒性高,可以有利地支撐光電吊艙各項功能的實現(xiàn),具有較高的應(yīng)用價值。