何建方,席 濤,張 凌
(韶關(guān)東陽光自動化設(shè)備有限公司,廣東 韶關(guān) 512721)
小型旋翼無人機在偵察、探測和監(jiān)控等領(lǐng)域扮演著越來越重要的角色。面對不同的復(fù)雜任務(wù),小型無人機智能化是當(dāng)前的必然趨勢[1],而自主定位是其中最重要的組成之一。
視覺定位是當(dāng)前無人機自主定位導(dǎo)航最常用的手段[2-4]。慕尼黑科技大學(xué)在四旋翼平臺上搭載RGB-D攝像頭,建立室內(nèi)環(huán)境的稠密地圖,完成無人機的自主定位和導(dǎo)航[5]。但是采用的SLAM算法需要遠程依賴地面站,導(dǎo)致控制延遲以及成本高。
本文設(shè)計一種小型化、輕量級的無人機視覺定位系統(tǒng),研究了單目視覺定位算法,設(shè)計了自主定位系統(tǒng)的軟硬件架構(gòu)。驗證實驗表明,本文設(shè)計的輕量級視覺定位系統(tǒng)可以實現(xiàn)無人機單目定位。
本文搭建的多旋翼無人機平臺包括Pixhawk飛行控制板、視覺傳感器、機載嵌入式計算機。搭建的視覺定位無人機平臺如圖1所示。
圖1 視覺定位旋翼無人機平臺
飛行控制板Pixhawk使無人機執(zhí)行自主命令和控制飛行。Pixhawk是一種高性能的自動駕駛儀,以兩片STM32芯片為主從控制器,并且集成了三軸陀螺儀、三軸加速度計、高度計等MEMS傳感器。將傳感器采集的數(shù)據(jù)發(fā)送給處理器,采用擴展卡爾曼濾波(EKF)算法對無人機平臺的位置進行估計[6]。
機載嵌入式計算機是視覺定位信息處理的核心。本文的機載嵌入式計算機采用ODROID XU4控制板。從參數(shù)上來看,ODROID XU4的整體性能基本和目前的中端智能手機相似,它搭載了主頻為2 GHz的三星Exynos5422八核處理器與2GB RAM,主板上設(shè)有以太網(wǎng)接口、2個USB 3.0接口、1個USB 2.0接口、1個HDMI視頻接口以及1個GPIO接口。由于采用了ARM架構(gòu),ODROID XU4可以運行基于ARM架構(gòu)所設(shè)計的操作系統(tǒng),包括Debian,Ubuntu以及 Android等。
視覺定位系統(tǒng)中所有的視覺信息處理和控制均在機載計算機上完成。因此,需在機載計算機上安裝Ubuntu系統(tǒng),實現(xiàn)視覺定位算法以及和無人機的通信。另外,在Ubuntu系統(tǒng)上安裝機器人操作系統(tǒng)(Robot Operating System,ROS),幫助建立定位算法、模塊通信、采集傳感器數(shù)據(jù)。ROS主要應(yīng)用在機器人平臺操作與控制系統(tǒng)的軟件框架,其最大優(yōu)勢為點對點設(shè)計,工具包豐富,系統(tǒng)模塊化,非常便于應(yīng)用。
機載嵌入式計算機與Pixhawk飛行控制板之間的通信接口節(jié)點是實現(xiàn)機載計算機實時獲取飛行器飛行狀態(tài)和自主控制飛行狀態(tài)的關(guān)鍵。該節(jié)點主要通過Mavlink協(xié)議接收多旋翼飛行器的心跳包、姿態(tài)角數(shù)據(jù)包和位置數(shù)據(jù)包等,并按類別以特定消息格式將數(shù)據(jù)發(fā)布到不同的主題上。同時訂閱了vision 和position 等主題,再以Mavlink協(xié)議的形式將這些主題數(shù)據(jù)發(fā)送到飛行控制板,獲取外部傳感器的數(shù)據(jù)并實現(xiàn)自主飛行控制。自主控制節(jié)點的設(shè)計原理可以總結(jié)為訂閱飛行器的當(dāng)前位置主題,提供位置反饋,再將位置控制命令發(fā)布到通信節(jié)點的/mavros/setpoint/local_position主題上。通過對無人飛行器狀態(tài)的實時監(jiān)測調(diào)整位置控制信息。
本文無人機視覺定位系統(tǒng)框架如圖2所示,描述了硬件系統(tǒng)和軟件系統(tǒng)各組成部分之間的連接關(guān)系。
本節(jié)主要研究一種實時、穩(wěn)定的單目視覺定位算法,該算法能夠通過采集單目相機信息,在機載計算機上實時運行,實現(xiàn)無人機的定位。由于單目相機獲得的視覺信息是沒有深度的,因此必須移動相機之后能估計它的運動,優(yōu)點在于成本低,處理視覺信息消耗的計算資源小。
SVO(Semi-direct Visual Odoemtry)是瑞士蘇黎世理工學(xué)院提出的一種半直接法視覺里程計,可建立稀疏地圖,實現(xiàn)實時的無人機定位[7]。SVO里程計的跟蹤線程框架如圖3所示。SVO框架包括了運動估計和建圖兩個線程,采用稀疏關(guān)鍵點的灰度值匹配法得到估計位置。
圖3 SVO里程計算法流程
該算法使用直接法最小化稀疏關(guān)鍵點的重投影殘差來獲取位置,假設(shè)Tk,k-1為位置變化,通過不斷優(yōu)化位置Tk,k-1最小化殘差損失函數(shù),如公式1所示。
(1)
其中,δI(T,u)為相鄰圖像幀對應(yīng)關(guān)鍵點的灰度值差,如公式2所示。
δI(T,u)=Ik(π(T·π-1(u,du)))-Ik-1(u)
(2)
本節(jié)將對設(shè)計的無人機視覺定位系統(tǒng)進行試驗分析,驗證視覺定位的實時性和穩(wěn)定性。以開源數(shù)據(jù)集airground_rig_s3_2013-03-18_21-38-48.bag作為圖像輸入,在本文設(shè)計的硬件系統(tǒng)下,運行視覺定位算法,運行結(jié)果顯示,圖像處理幀率在10 fps~25 fps,視覺定位系統(tǒng)數(shù)據(jù)集運行實驗如圖4所示。視覺定位系統(tǒng)單目相機運行實驗如圖5所示,幀率平均值為15 fps。
圖4 視覺定位系統(tǒng)運行數(shù)據(jù)集實驗
圖5 視覺定位系統(tǒng)單目相機運行實驗。
多旋翼無人機的應(yīng)用需求促進了智能化的趨勢,在未知和復(fù)雜環(huán)境下,視覺定位成了重要手段。本文提出了基于單目視覺的無人機定位系統(tǒng),搭建了定位系統(tǒng)的軟件硬件架構(gòu),研究了單目視覺定位算法。實驗驗證結(jié)果表明本文的定位系統(tǒng)滿足實時性和穩(wěn)定性要求。