伍穎昌 李星瑩 李登云 周鑫 吳昊棟
(河南科技大學(xué)機(jī)電工程學(xué)院,河南洛陽 471003)
無人機(jī)簡稱無人駕駛飛機(jī),是利用無線遙控設(shè)備或自主程序控制操作的飛行器。近年來,以大疆為代表的無人機(jī)廠商推出了多款民用產(chǎn)品,橫跨攝影、植保和測(cè)繪等多個(gè)領(lǐng)域,由于其具有的靈活度高、低成本、高機(jī)動(dòng)性、拓展性強(qiáng)的特點(diǎn),備受工業(yè)界和學(xué)術(shù)界的青睞。
無人機(jī)實(shí)現(xiàn)各種復(fù)雜任務(wù)的前提是自身的精確定位,在室內(nèi)沒有GPS 信號(hào)的情況下可以用視覺、UWB、激光雷達(dá)等定位技術(shù)實(shí)現(xiàn)定位。其中視覺定位是最早應(yīng)用到無人機(jī)上的,其定位精度高、除光線外不易受環(huán)境干擾,成本較低但算法復(fù)雜。本系統(tǒng)利用機(jī)器視覺技術(shù)實(shí)現(xiàn)無人機(jī)在室內(nèi)的精確定位和自主飛行。
本系統(tǒng)采用Pixhawk 作為四旋翼的主控,Pixhawk 飛控板上集成了陀螺儀傳感器、氣壓傳感器、電子羅盤等傳感器,飛控軟件使用PX4 固件。機(jī)載計(jì)算機(jī)使用的是樹莓派4B,連接一個(gè)前視雙目攝像頭以及一個(gè)下視單目攝像頭,樹莓派運(yùn)行ROS 機(jī)器人操作系統(tǒng),通過mavros 使用MAVLink 協(xié)議與飛控通訊。下視單目攝像頭使用光流法獲取自身在二維平面的位置信息,再通過VL53L1X TOF 測(cè)距傳感器獲取高度信息最終實(shí)現(xiàn)在三維空間上的定位。而前視雙目攝像頭能獲取前方障礙物的距離信息,實(shí)現(xiàn)避障飛行。
圖1 系統(tǒng)結(jié)構(gòu)圖
PX4 是一款開源的無人機(jī)固件,該固件支持包括Pixhawk在內(nèi)的無人機(jī)飛控并且支持不同類型的多旋翼、固定翼無人機(jī)。PX4 基于嵌入式實(shí)時(shí)操作系統(tǒng)Nuttx,本系統(tǒng)采用的是多旋翼版本固件,該版本固件需要先在QGC 地面站中設(shè)置好機(jī)架類型,首次飛行前需要校準(zhǔn)各個(gè)傳感器的數(shù)據(jù)。
MAVLink 是一種專門為無人機(jī)設(shè)計(jì)的通信協(xié)議,可以實(shí)現(xiàn)多機(jī)多控制端的可靠通信。通過使用MAVLink 協(xié)議,無人機(jī)和地面站、機(jī)載電腦之間可以實(shí)現(xiàn)穩(wěn)定的通信。系統(tǒng)使用QGC 地面站軟件通過TCP 協(xié)議將數(shù)據(jù)以MAVLink 協(xié)議的方式進(jìn)行傳輸,從而擺脫數(shù)據(jù)線實(shí)現(xiàn)了地面站與飛控之間的通信。
ROS 機(jī)器人操作系統(tǒng)是開發(fā)機(jī)器人程序的一個(gè)靈活的框架,旨在創(chuàng)建一個(gè)在多數(shù)機(jī)器人平臺(tái)上進(jìn)行復(fù)雜的機(jī)器人行為的任務(wù)的工具、庫的集合。本系統(tǒng)中的機(jī)載計(jì)算機(jī)通過mavros使用MAVLink 協(xié)議與飛控系統(tǒng)通訊,飛控向機(jī)載計(jì)算機(jī)傳輸姿態(tài)、速度、飛行模式等信息,而機(jī)載計(jì)算機(jī)向飛控提供離地高度、水平位移以及漂移速度等信息。機(jī)載計(jì)算機(jī)還有一個(gè)重要的作用就是給飛控發(fā)送指令,實(shí)現(xiàn)如切換飛行模式、以恒定的速度朝某個(gè)方向移動(dòng)一段距離等功能。
基于不同的理論基礎(chǔ)與數(shù)學(xué)方法,人們將光流計(jì)算技術(shù)分為梯度法、塊匹配法、基于能量的方法和基于相位的方法,其中梯度法和塊匹配法使用較為普遍。目前,光流法被廣泛地應(yīng)用于機(jī)器人導(dǎo)航、目標(biāo)跟蹤、運(yùn)動(dòng)估計(jì)等重要的計(jì)算機(jī)視覺與圖像處理領(lǐng)域,也被廣泛地用在相關(guān)的天文、醫(yī)學(xué)等領(lǐng)域。
如圖2 所示,使用光流法可以獲得無人機(jī)在水平方向上的速度,為無人機(jī)的飛行控制提供負(fù)反饋,從而使室內(nèi)無GPS 信號(hào)環(huán)境下無人機(jī)定點(diǎn)飛行成為可能。此外,本系統(tǒng)搭載的激光測(cè)距模塊能獲取飛機(jī)離地的高度信息,再與通過光流法獲取的二維平面速度、位移信息結(jié)合就能確定無人機(jī)在三維空間中的運(yùn)動(dòng)狀態(tài),實(shí)現(xiàn)無人機(jī)在三維空間上的定點(diǎn)懸停。
在目標(biāo)檢測(cè)領(lǐng)域常通過獲取圖像的關(guān)鍵點(diǎn)來描述物體的特征,但一般的目標(biāo)追蹤方法難以滿足高精度的定位需要,尤其在快速、復(fù)雜、多目標(biāo)運(yùn)動(dòng)的情況下更難實(shí)現(xiàn)精準(zhǔn)定位和追蹤。ArUco 是一種用于機(jī)器人定位和增強(qiáng)現(xiàn)實(shí)等領(lǐng)域的標(biāo)記系統(tǒng),這類標(biāo)記具有較高的魯棒性,將其標(biāo)記在地面或物體的表面,可以實(shí)現(xiàn)快速精確定位。
圖2 光流法獲取速度和位移
在大空間定位中,可以采用二維碼陣列的方案。二維碼陣列系統(tǒng)應(yīng)用的前提是已知各地標(biāo)在陣列中精確的位置和姿態(tài)。在本系統(tǒng)中,按照一定間距和一定規(guī)律部署好ArUco 標(biāo)識(shí),無人機(jī)便可通過標(biāo)識(shí)獲取自身的位置。
在機(jī)器視覺系統(tǒng)中,雙目視覺一般由雙攝像機(jī)從不同角度同時(shí)獲取周圍景物的兩幅數(shù)字圖像,或由單攝像機(jī)在不同時(shí)刻從不同角度獲取周圍景物的兩幅數(shù)字圖像,并基于視差原理即可恢復(fù)出物體三維幾何信息,重建周圍景物的三維形狀與位置[2]。視差的原理可以參考圖3,同樣一個(gè)物體在左右兩個(gè)鏡頭中存在于不同的位置,這就是視差。通過計(jì)算被測(cè)目標(biāo)在左右兩側(cè)圖像中的像素視差值,再通過標(biāo)定參數(shù)即可計(jì)算出該點(diǎn)的三維坐標(biāo)。雙目視覺測(cè)距的精度和攝像頭的分辨率、標(biāo)定情況以及成相質(zhì)量有關(guān),分辨率越高精度越高。
圖3 雙目相機(jī)不同視角
雙目相機(jī)標(biāo)定主要是為了獲得攝像頭的內(nèi)參、畸變參數(shù)和外參,這些參數(shù)就是確定相機(jī)將三維世界轉(zhuǎn)為二維圖像的最主要因素,而雙目相機(jī)還要確認(rèn)兩個(gè)攝像頭之間的位置關(guān)系,這是雙目用于計(jì)算物體位置的前提。
雙目標(biāo)定使用matlab 的標(biāo)定工具箱和棋盤圖進(jìn)行。為了標(biāo)定結(jié)果的準(zhǔn)確,棋盤圖粘貼的表面要平整不能有凹陷、突起和扭曲。此外,在采集棋盤圖時(shí)要注意,盡量讓棋盤占據(jù)盡可能多的畫面,盡可能地嘗試更多的角度以及采集盡可能多的圖片,這樣能得到更多有關(guān)攝像頭畸變方面的信息,提高雙目測(cè)距的精度。
圖4 用棋盤圖雙目標(biāo)定
目前,無人機(jī)的避障技術(shù)中最為常見的有超聲波避障、激光避障以及視覺避障。不管是超聲波測(cè)距傳感器還是激光測(cè)距傳感器,都只是一維傳感器,只能獲得特定方向上的距離數(shù)據(jù),并不能完成對(duì)現(xiàn)實(shí)三維世界的感知[3]。而雙目視覺可以在低功耗、小體積的前提下,獲得眼前場景的深度圖,結(jié)合深度圖就能進(jìn)行障礙物識(shí)別的躲避。從視差圖分離出障礙物的方法是通過分離視差圖上相近視差區(qū)域,并判斷該區(qū)域中像素值決定是否為障礙物。視差越大表明距離越近,灰度值越高的區(qū)域亮度越高,說明障礙物與攝像頭的距離越近。當(dāng)發(fā)現(xiàn)前方有障礙物時(shí),避障的具體操作步驟如下:(1)判斷障礙物能否越過;(2)如果無法越過,判斷障礙物的形狀、尺寸;(3)根據(jù)障礙物的形狀、尺寸改變航向,移動(dòng)一段距離;(4)恢復(fù)原航向,繞過障礙物后回到原航線。
隨著計(jì)算機(jī)算力的不斷提高以及體積的不斷縮小,機(jī)器視覺技術(shù)的精度將逐步提高,使用的領(lǐng)域?qū)⒅饾u擴(kuò)大。本文介紹了一種基于機(jī)器視覺技術(shù)的無人機(jī)室內(nèi)定位系統(tǒng)的設(shè)計(jì),搭建普通四旋翼無人機(jī)平臺(tái),實(shí)現(xiàn)無人機(jī)在室內(nèi)無GPS 信號(hào)環(huán)境下的自主飛行。此系統(tǒng)在一般四旋翼無人機(jī)系統(tǒng)上使用一個(gè)機(jī)載計(jì)算機(jī)取代傳統(tǒng)的接收機(jī),用計(jì)算機(jī)代替人工,由機(jī)載計(jì)算機(jī)向飛控系統(tǒng)發(fā)送指令實(shí)現(xiàn)自主飛行,為今后無人機(jī)在室內(nèi)環(huán)境的應(yīng)用提供了參考依據(jù)。