郭云祺 張 瀅 趙 軍 熊秋實 母東洋
(1.沈陽航空航天大學經(jīng)濟與管理學院,遼寧 沈陽 110136;2.沈陽航空航天大學自動化學院,遼寧 沈陽 110136)
“十四五”規(guī)劃中提到,要持續(xù)推動無人機產(chǎn)業(yè)生態(tài)的創(chuàng)新。繼續(xù)推進無人機試點的建設與運行,針對實際運行情況及現(xiàn)有的運行風險,開展運行理論、風險評估、技術驗證等方面的研究,以適應無人機特點的無人機安全管理與服務模式。圍繞無人機產(chǎn)業(yè)生態(tài)建設,鼓勵建立一批創(chuàng)新平臺,支持圍繞整個無人機產(chǎn)業(yè)鏈發(fā)展的低空經(jīng)濟集聚區(qū),發(fā)揮創(chuàng)新集聚帶動作用,引領產(chǎn)業(yè)向價值鏈高端邁進。在信息高度發(fā)達的今天,無人機已經(jīng)成為一個不可缺少的裝備,包括國防和經(jīng)濟。十九大報告提出“堅持中國特色”的“軍民融合發(fā)展道路”,近幾年,隨著國家和地區(qū)經(jīng)濟一體化的不斷深入,我國的無人機產(chǎn)業(yè)取得了突破性進展,已經(jīng)成為“軍民融合”的一個典型。
隨著計算機技術和飛行器技術的快速發(fā)展,無人機(Unmanned Aerial Vehicles,UAV)受到了眾多學者的深入研究。其具有廣泛的實際應用價值,既可以開展農(nóng)藥噴灑、醫(yī)療救助、特殊地區(qū)的資源運載等工作,也可以實現(xiàn)近地工作。目前,世界主要國家也在著力研發(fā)小型、微型無人機,不斷促使本國無人機朝著小型化、微型化方向發(fā)展。微小型無人機的軍事武裝需求日益明顯,其能夠在戰(zhàn)爭中發(fā)揮出的重要作用也受到人們的青睞。隨著嵌入式技術、微型傳感器技術的磅礴發(fā)展,世界各國目前正力圖研發(fā)遙控式、半自主式或自主式的單兵可攜帶的微型無人機,并將其作用于武裝隊伍中。
四旋翼無人機是一種具有諸多優(yōu)點的微小型無人機,其能夠垂直起降、自由懸停。其結構簡單,操控方便,穩(wěn)定性強、隱蔽性好,易于維護,適合多平臺、多空間使用,并且由于其飛行高度低,具有很強的機動性,可以對細小環(huán)節(jié)實施偵察,具有很強的執(zhí)行特種任務能力。據(jù)此,四旋翼無人機擁有著較高的工作效率和使用價值,為了使其能夠更加廣泛地應對未來可能出現(xiàn)的更多危險復雜的工作環(huán)境,且可以實現(xiàn)開發(fā)和維護成本較低,基于無人機更加準確的定位與導航的特點,本文設計了一種基于ROS 和圖優(yōu)化SLAM 的四旋翼無人機,能夠在軍民領域得到更為廣泛的應用。
本文構建的多旋翼無人機包括Pixhawk 飛行器控制主板(PX4)、單目視覺傳感器、低功耗低重量機載主控計算機、電機和鋰電池。機身滿載的續(xù)航時間為30min,最大負載重量2.5kg。各部件及功能模塊可以協(xié)同工作實現(xiàn)地圖構建和實時導航定位,并將信息采集結果通過ROS 傳送回控制板作用,從而實現(xiàn)對無人機飛行軌跡與路線的精確控制。
機載計算機是四旋翼無人機實現(xiàn)定位、地圖構建和飛行控制的核心器件。本文設計的機載計算機配備了Intel Core i7 45nm 原生四核處理器,能夠很好地滿足無人機導航定位、地圖構建、障礙物檢測、路徑規(guī)劃等功能需求。另外,無人機的飛行控制面板作為自主指揮和飛行控制的樞紐,也發(fā)揮著重要的作用,它擁有陀螺儀、氣壓測試計、速度(加速度)測試計、溫度傳感器、風速測向及磁強計,可以實現(xiàn)采集無人機飛行姿態(tài)的立體數(shù)據(jù)并進行處理。此外,飛行控制面板通過多種數(shù)據(jù)傳輸接口物理連接外部傳感器,各種類型的無人機對于此型號均受用。為了提高系統(tǒng)的穩(wěn)定性和可擴展性,本文所設計的無人機通過連接Pixhawk飛行控制板的通信接口和微型主控計算機的數(shù)據(jù)傳輸接口,橋接主控計算機與Pixhawk 飛行控制板的數(shù)據(jù)。[1-3]
本文設計的無人機的軟件部分設計主要基于ROS框架,通過收集各傳感器組件的數(shù)據(jù),建立各模塊之間的數(shù)據(jù)通信,并且為了實現(xiàn)無人機在特殊環(huán)境下的定位導航需求,所以采用圖優(yōu)化激光SLAM 算法設計了定位導航建圖系統(tǒng),使無人機可以提高定位導航能力。
根據(jù)無人機功能需求的實際分析,本文設置三層ROS 架構,分別為應用層、中間框架層和系統(tǒng)及硬件層。軟件架構清晰且功能明確得益于這樣的分層設置。系統(tǒng)中的各個節(jié)點是由節(jié)點管理器ROS Master 進行統(tǒng)一管理的,這會使得系統(tǒng)可以穩(wěn)定有條理地運行。
對于系統(tǒng)及硬件層,采用了ROS 這個運行在Linux系統(tǒng)中的機器人開發(fā)的軟件框架,同時本文對底層控制系統(tǒng)的軟件進行設計開發(fā),安裝調試各種硬件的驅動,這樣硬件系統(tǒng)才能有條理地根據(jù)系統(tǒng)設計運行。中間框架層是ROS 系統(tǒng)針對自身特點基于TCP/UDP 網(wǎng)絡對其進行封裝后的通信協(xié)議TCPROS/UDPROS,以及OpenCV 和Math 等相關的計算庫文件,承擔上層應用API 接口調用的功能。對于應用層的設計,這屬于系統(tǒng)核心層設計,需要一個節(jié)點管理器ROS Master,節(jié)點管理器負責ROS 系統(tǒng)中各個功能模塊節(jié)點的注冊和連接,統(tǒng)籌協(xié)調ROS 系統(tǒng)中的各個功能模塊有組織的根據(jù)設計要求運行起來。對于應用層來說,需要對ROS系統(tǒng)中各個功能模塊分別進行設計,在系統(tǒng)運行過程中每個模塊都是一個進程,對于ROS 就是一個節(jié)點。本結構能夠實現(xiàn)更準確的無人機控制,實現(xiàn)更為準確的地圖構建、定位導航和飛行控制的功能。圖1 是軟件的分層架構圖。
圖1 軟件的分層架構
ROS(Robot Operating System 機器人操作系統(tǒng))起源于斯坦福大學人工智能實驗室與機器人技術公司W(wǎng)illow Garage 合作的機器人項目。ROS 這個在Linux 內核開源次級OS 系統(tǒng)開發(fā)無人機有很多優(yōu)勢,類似于Android安卓系統(tǒng),是一個專用于機器人的開發(fā)框架。雖然ROS 不是一個實時的框架,但是可以嵌入實時程序。ROS 系統(tǒng)提供驅動管理,可以實現(xiàn)進程間消息傳遞,擁有系統(tǒng)提供的通訊方式、程序包管理。ROS 系統(tǒng)提供很多軟件功能包,比如最常用的rqt 和rviz。ROS 系統(tǒng)可以實現(xiàn)傳感器,執(zhí)行器與算法分離。在無人機開發(fā)的過程中,對于比較通用的功能有豐富的功能包。ROS 有豐富的開源社區(qū)和軟件生態(tài),支持C++、python等多語言開發(fā)。對于無人機需要實現(xiàn)的各個功能可以分成一個個節(jié)點獨立開發(fā),所以采用ROS 系統(tǒng)開發(fā)無人機不但可以降低開發(fā)難度,后期的維護升級也很方便。
目前的技術對于已知位置的無人機定位和地圖描繪有了一定的解決辦法,但是在很多情況下事先獲取無人機工作環(huán)境是非常困難的,因此實現(xiàn)無人機在陌生環(huán)境中的自主運動和工作是非常重要的。無人機需要確定自己的位置,在完全陌生的環(huán)境中創(chuàng)建地圖,并且利用地圖進行定位和導航。SLAM,即simultaneous localization and mapping,simultaneous 表示數(shù)據(jù)實時同步,localization 則是在確定地圖信息的情況下,估計無人機的位置信息及姿態(tài),mapping 意思是在給定無人機位姿的情況下。另外,線程的單幀對單幀由點對點的數(shù)據(jù)傳輸構造,這樣能夠提高關鍵詞與數(shù)據(jù)融合的效率,可以迅速還原局部三維地圖場景。這種技術操作簡單,數(shù)據(jù)準確性好,能適應飛行環(huán)境中的實時位置和路徑監(jiān)控要求。與激光 SLAM 相比,SLAM 視覺系統(tǒng)硬件成本低,能夠獲取環(huán)境的紋理和顏色,因此它的應用范圍更加廣泛。SLAM 在前端能夠利用傳感器數(shù)據(jù)進行環(huán)境特征提取,對路標進行觀察,并與位姿相關,保證了后端的非線性最優(yōu)估計初值可靠。在此基礎上,首先要解決的問題就是如何進行相關的數(shù)據(jù)關聯(lián),如何找到與歷史測量之間的關系,以及如何實現(xiàn)運動追蹤,并完成位置和構成。后端以前面的工作為基礎,對位姿和路標進行改進和優(yōu)化,實現(xiàn)地圖的一致性、全方位、高精度的建設[4-8]。
由于GPS 定位系統(tǒng)只能應用在室外環(huán)境中,面對倉庫、工廠、車庫這樣的室內環(huán)境中GPS 不能發(fā)揮作用。搭載單目視覺傳感器的無人機借助SLAM 算法,可以在陌生的環(huán)境中建立地圖,進行定位導航,可以避開障礙物?;跒V波器的SLAM 算法只估計當前時刻的位姿,忽略了之前時刻的位姿,所以無人機定位建圖的過程中不可避免地會產(chǎn)生累計誤并且無法消除。且由于當前幀的姿態(tài)結果是根據(jù)前一幀的姿勢結果所計算得出的,因此在前一幀中的系統(tǒng)姿勢約束會導致每次的推算存在誤差,如果位姿誤差持續(xù)出現(xiàn),誤差就會被大量累積,直至產(chǎn)生累積誤差。這將極大地影響機器人在長期工作狀態(tài)下的預測結果的穩(wěn)定性和可靠性,從而導致不能建立具有高精度和全局一致性的軌道和地圖。而采用圖優(yōu)化SLAM 算法設計無人機同步定位建圖系統(tǒng)可以消除累計誤差。
該款無人機由于搭載了單目視覺傳感器,同時借助了SLAM 算法,因此可以實現(xiàn)避開障礙物的功能,預期可以在警用治安防控、防汛抗旱等方面使用,在民用企業(yè),該款無人機也可以實現(xiàn)高空監(jiān)測、特殊環(huán)境巡航等功能。因此,該款無人機在軍民領域都能得到廣泛應用。
本文基于機器人操作系統(tǒng)(ROS)設計了一種易于開發(fā)與維護的四旋翼無人機操作系統(tǒng),設計出包含應用層、中間框架層和系統(tǒng)及硬件層的三層軟件架構,并提出了借助圖優(yōu)化的SLAM 算法,創(chuàng)建了單目視覺定位的模擬地圖構建與分析法,在可以消除累計誤差的同時能夠達成準確定位和穩(wěn)定飛行的效果。通過測試也證明了:基于ROS和圖優(yōu)化SLAM的四旋翼無人機,定位效果優(yōu)秀、地圖構建準確、數(shù)據(jù)交互迅速,具有良好的結構穩(wěn)定性和較高的環(huán)境適應性,并可完成復雜環(huán)境下的自主飛行及相關的需求任務,預期可以在警民領域得到廣泛應用。