姜 林,鄭 堯,軒新想,范本果,許祥馨
(1.中國電子科技集團公司第三研究所,北京 100015;2.陸航研究所,北京 101121)
光電吊艙作為無人機(Unmanned Aerial Vehicle,UAV)的重要載荷之一,主要由主控單元、伺服平臺單元、光學控制單元、傳感器組件(含可見光、短波紅外、中波紅外、激光測距機等傳感器)、圖像處理單元以及組合慣導單元等組成,用于晝/夜間對目標進行偵查、搜索、識別、瞄準、跟蹤、目標定位、激光測距以及照射、引導攻擊等任務。在無人機執行飛行任務時,無人機需要與地面站無線通信,地面站人員通過地面控制程序與無人機進行人機交互。光電吊艙主控單元在外部需要與無人機飛控計算機、綜合控制終端、飛控記錄儀以及目標引導系統等設備進行通信,在內部需要與伺服平臺單元、光學控制單元、圖像處理單元以及組合慣導單元等進行通信[1-3]。如何確保內外通信的穩定性[4-5],提高通信效率,是無人機光電吊艙主控軟件設計的關鍵所在。
本文在ARM架構上使用C++語言設計并實現了光電吊艙主控軟件。通過主控軟件中線程管理模塊合理的資源分配與調度,實現了主控程序的穩定、可靠、高效運行。
1.1.1 外部通信
無人機系統中多個模塊間通過1553B總線[6-7]進行數據交互,光電吊艙屬于其中的一個模塊。在該總線結構中,所有消息規劃均由綜合管理計算機(Bus Controller,BC)來實現。光電吊艙、綜合控制系統、飛機廣播(目標引導系統,飛機組合慣導)均為遠程終端設備(Remote terminal,RT),總線采用廣播形式發送目標引導系統數據和飛機慣導數據,與綜合控制系統和綜合管理計算機進行數據交互。
1.1.2 內部通信
光電吊艙中的主控單元(含硬件平臺和內部軟件)使用RS-422串口通信來實現與伺服平臺單元、光學控制單元、圖像處理單元以及組合慣導單元等組件間的數據交互,如圖1所示。

圖1 光電吊艙內部通信功能模塊圖
光電吊艙主控軟件與內、外部功能模塊的信息交互如表1所示。
主控軟件在配置ARM板卡的Ubuntu 18.04環境中進行開發。板卡使用NFS(Network File System)掛載Ubuntu文件系統,使用Visual Studio Code編輯代碼與編譯。主控軟件開發使用高性能臺式機,以提高程序編輯效率,加快編譯步驟,縮短開發與測試周期;并使用Git代碼托管來維護代碼的歷史記錄,有效地解決軟件備份問題。
2.2.1 主控軟件線程流程
主控軟件線程流程如圖2所示。

圖2 線程流程圖
主控軟件的主要線程如下:
(1)程序開始,讀取配置文件參數(算法參數),初始化Log類,記錄主控軟件狀態;
(2)主線程創建系統控制與算法模塊線程、無人機1553B數據線程、伺服控制單元線程、光學控制單元線程、圖像處理單元線程以及光電吊艙組合慣導單元線程,并實時監聽子線程狀態并完成記錄;
(3)系統控制與算法模塊線程接收無人機1553B數據線程的指令,并接收伺服控制單元線程、光控控制單元線程、圖像處理單元線程、光電吊艙組合慣導單元線程的實時數據,完成相應的策略與算法控制并反饋控制情況,上報狀態,傳輸數據給對應的模塊;
(4)線程3-線程6接收系統控制與算法模塊線程傳來的指令并執行對應的操作。
2.2.2 系統工作模式切換關系
主控軟件的系統工作模式共11種,包括收藏、鎖定、手動、自動掃描、小區搜索、隨動、自動跟蹤、搜索跟蹤、地理跟蹤、目標坐標引導以及目標角度引導。系統工作模式的切換如圖3所示,圖中的箭頭指向表示系統允許的狀態切換方向。

圖3 系統工作模式
2.2.3 系統功能定義
(1)自檢測。自檢測分為上電自檢、周期自檢以及啟動自檢三種。
(2)激光測距。激光上電后,發送“激光測距”指令,激光開始測距。激光測距一定時間后自動停止測距。在激光測距時,可以通過發送“激光測距停止”指令中止激光測距。激光測距未停止時,發送“激光照射”可轉為激光照射,重新計時。激光測距未停止時,再次收到“激光測距”指令,激光測距仍以原激光測距開始的時間繼續計時。
(3)激光照射。激光照射分為“激光單次照射”和“激光連續照射”兩個指令。激光單次照射和激光連續照射的區別在于照射時間不同。
激光上電后,發送“激光單次照射”或“激光連續照射”指令,激光開始照射并回報測距值。在激光照射未停止時,發送“激光測距”為無效指令。在激光照射時,可以通過發送“激光照射停止”指令中止激光照射。在激光單次(連續)照射未停止時,再次發送激光單次(連續)照射指令,即當發送的照射指令與當前激光照射狀態相同時,該激光照射仍以原激光照射開始計時的時間繼續計時。當激光單次照射時發送“激光連續照射”指令,或當激光連續照射中發送“激光單次照射”指令,激光均以原起照開始時間繼續計時,以連續照射時間為照 射時間。
(4)激光測距(照射)停止。發送“激光測距(照射)停止”,則激光測距(照射)停止。
(5)線性位移補償。在任一工作模式下,發送線性位移補償指令,光電裝置進入線性位移補償狀態。在手動模式下,該算法自動運行,補償飛機飛行速度。發送“線性位移補償關閉”指令,光電裝置退出線性位移補償狀態。上電時,系統線性位移補償指令默認無效。
本文設計的主控單元軟件已經過多次無人機吊艙實際掛飛測試,掛飛實驗過程中的可見光與紅外的圖像分別如圖4和圖5所示。

圖4 可見光視頻截圖

圖5 紅外視頻截圖
測試過程中,無人機與主控軟件之間數據控制正常,數據接收與發送正常;主控單元與吊艙內部模塊(伺服控制單元、光控控制單元、圖像處理單元及光電吊艙組合慣導)之間進行數據接收與發送正常,指令響應速度快。將主控軟件實時存儲的Log、無人機中飛控記錄儀存儲的數據與視頻記錄儀存儲的視頻進行對比驗證,發現3組數據具有較高的一致性。因此可以認為,本文設計的主控程序運行穩定、可靠且高效。
本文基于ARM架構硬件平臺,使用C++語言完成了無人機光電吊艙主控單元控制軟件的設計,通過該軟件實現了光電吊艙內部單元之間以及光電吊艙與無人機其他模塊間的數據交互,并高效地執行了對應的策略與算法。主控單元控制軟件經地面測試及無人機吊艙多次實際掛飛測試,充分驗證了軟件運行穩定、魯棒性高,可以有利地支撐光電吊艙各項功能的實現,具有較高的應用價值。