文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.180065
中文引用格式: 劉毅,車進(jìn),朱小波,等. 空地機(jī)器人協(xié)同導(dǎo)航方法與實(shí)驗(yàn)研究[J].電子技術(shù)應(yīng)用,2018,44(10):144-148.
英文引用格式: Liu Yi,Che Jin,Zhu Xiaobo,et al. The navigation method and experimental research of air-ground robot cooperation[J]. Application of Electronic Technique,2018,44(10):144-148.
0 引言
機(jī)器人在許多領(lǐng)域發(fā)揮著越來越重要的作用,單獨(dú)的機(jī)器人可以有效幫助人們完成數(shù)據(jù)收集,而多個(gè)機(jī)器人的協(xié)調(diào)合作則可產(chǎn)生無窮的潛力,不同機(jī)器人之間的互補(bǔ)作業(yè)效果將更加明顯。機(jī)器視覺、傳感器網(wǎng)絡(luò)等的不斷發(fā)展,使空中機(jī)器人與地面機(jī)器人的結(jié)合成為可能??罩袡C(jī)器人具有全局視覺,利用空中機(jī)器人廣闊的環(huán)境感知能力幫助地面機(jī)器人構(gòu)建全局環(huán)境模型并為地面機(jī)器人提供導(dǎo)航信息;地面機(jī)器人具有的局部視覺可以使其更好地執(zhí)行任務(wù),二者的結(jié)合可以提高任務(wù)使命的完成度[1-3]。空地機(jī)器人在民用方面適用于救援減災(zāi)、物流配送、城市垃圾清理等,在軍事方面的用途將更加廣泛,無人作戰(zhàn)將部分取代有人作戰(zhàn),最終無人作戰(zhàn)成為主要形式。
目前在空地機(jī)器人協(xié)作方面的研究在國(guó)際上較為深入,如美國(guó)弗吉尼亞理工大學(xué)使用空地機(jī)器人在精準(zhǔn)農(nóng)業(yè)上進(jìn)行研究來估計(jì)農(nóng)作物長(zhǎng)勢(shì)[4],韓國(guó)延世大學(xué)使用多四旋翼飛行器建立地面三維信息并引導(dǎo)地面機(jī)器人進(jìn)行全局路徑規(guī)劃[5],美國(guó)亞利桑那大學(xué)使用無人機(jī)進(jìn)行人群動(dòng)態(tài)檢測(cè)后再由地面機(jī)器人進(jìn)行精確識(shí)別[6],瑞士蘇黎世大學(xué)利用四旋翼飛行器引導(dǎo)地面機(jī)器人對(duì)目標(biāo)物進(jìn)行檢測(cè)與清理[7],意大利卡塔尼亞大學(xué)的研究人員測(cè)試了由車輛搭載的四旋翼飛行器使用圖像分析幫助地面移動(dòng)機(jī)器人完成路徑重規(guī)劃的任務(wù)[8]。在國(guó)內(nèi),中國(guó)科學(xué)院大學(xué)使用空地機(jī)器人共同對(duì)目標(biāo)探查以實(shí)現(xiàn)最佳的跟蹤與檢測(cè)[9]等。隨著科技的不斷發(fā)展,機(jī)器人的相關(guān)技術(shù)也得以進(jìn)一步的提升(如仿人比較先進(jìn)的NAO機(jī)器人等),因此可以有條件地針對(duì)一些人力不便探索的領(lǐng)域(如深海探測(cè)、山區(qū)救援等)進(jìn)行空地機(jī)器人協(xié)同探測(cè)。由于我國(guó)具有幅員遼闊與地形復(fù)雜的特點(diǎn),有時(shí)地面救援和軍事行動(dòng)難以展開,此時(shí)如果采用空地協(xié)同的方式效率就比較高。然而協(xié)作空地機(jī)器人的研究平臺(tái)和方法還很缺乏且特制設(shè)備的實(shí)驗(yàn)難以模擬,目前研究常見于計(jì)算機(jī)仿真,在實(shí)際模擬場(chǎng)景(如協(xié)同救援)方面還未有應(yīng)用研究。結(jié)合上述情況,本文提出了基于嵌入式設(shè)備的地面NAO機(jī)器人和空中四旋翼無人機(jī)進(jìn)行空地協(xié)作完成模擬搜尋與救援任務(wù)場(chǎng)景的方法。
1 空地機(jī)器人任務(wù)流程及系統(tǒng)結(jié)構(gòu)
空中機(jī)器人采用了四旋翼無人機(jī),主要由自組裝四旋翼和ODROID XU4開發(fā)板組成,具有良好的機(jī)動(dòng)性能與靈活性,其中自組裝四旋翼采用了碳纖維機(jī)架、pixhawk的開源飛控、好盈樂天skywalker 40 A電調(diào)等。ODROID XU4開發(fā)板為Hardkernel公司出品,擁有主頻為2 GHz的三星Exynos5422八核處理器及2 GB RAM,且使用ARM架構(gòu)并安裝Ubuntu 16.04系統(tǒng)。在組裝完成的四旋翼上加裝開發(fā)板進(jìn)行數(shù)據(jù)處理能夠?qū)崿F(xiàn)如對(duì)地面目標(biāo)探測(cè)、跟蹤等多種功能。地面機(jī)器人為NAO機(jī)器人,它擁有25個(gè)活動(dòng)關(guān)節(jié),內(nèi)置Intel ATOM Z530處理器,RAM 1 GB,閃存2 GB,前額裝有上下兩個(gè)攝像頭,支持嵌入式GNU/Linux編程環(huán)境且支持Python、C++語言??盏貦C(jī)器人協(xié)同系統(tǒng)結(jié)構(gòu)如圖1所示。
空中機(jī)器人與地面機(jī)器人基于嵌入式Linux系統(tǒng),支持Python和C++語言,能夠通過程序?qū)崿F(xiàn)協(xié)作功能。機(jī)器視覺處理以在支持嵌入式方面較好的OpenCV庫(kù)為主,它是由Intel公司于1999年建立的計(jì)算機(jī)視覺庫(kù),是機(jī)器視覺、圖像處理等領(lǐng)域的優(yōu)秀工具。它由一系列C函數(shù)和少量C++類構(gòu)成,也提供Python等語言的接口[10]。空中機(jī)器人與地面機(jī)器人都搭載攝像頭,因而能夠很好地針對(duì)不同場(chǎng)景進(jìn)行功能開發(fā)??盏貦C(jī)器人協(xié)作在開發(fā)時(shí)采用Python與C++的結(jié)合,Python語言擁有強(qiáng)大的標(biāo)準(zhǔn)庫(kù)且具有可移植性,因而使Python作為主要開發(fā)工具能進(jìn)行高效的功能開發(fā)[11-12],搭建了Eclipse+PyDev的Python開發(fā)環(huán)境。在協(xié)作平臺(tái)中完成的結(jié)論和方法因軟硬件的通用性可在科研教學(xué)及實(shí)際運(yùn)用中快速轉(zhuǎn)化。
空中機(jī)器人與地面機(jī)器人模擬搜尋與救援的任務(wù)流程及方法如圖2所示。首先由空中機(jī)器人和地面機(jī)器人完成系統(tǒng)各項(xiàng)功能初始化后等待搜尋命令;完成命令接收后地面機(jī)器人從起點(diǎn)開始出發(fā),空中機(jī)器人起飛后利用其視野廣的優(yōu)勢(shì)搜尋目標(biāo)物體所在位置并計(jì)算最佳路徑,以幫助地面機(jī)器人找到目標(biāo)物,在完成路徑規(guī)劃后將精簡(jiǎn)命令信息傳輸至地面機(jī)器人;地面機(jī)器人收到命令后結(jié)合視覺信息到達(dá)目標(biāo)位置附近,最后由地面機(jī)器人在其附近再次搜尋目標(biāo)的精確方位并攜帶其返回完成任務(wù)。
2 軟件整體設(shè)計(jì)方案
首先由空中機(jī)器人通過攝像頭觀測(cè)地面目標(biāo)并存儲(chǔ)圖像信息,分析圖片中起始點(diǎn)和終止點(diǎn)的信息與提取地面路徑信息后由路徑規(guī)劃的算法計(jì)算出到達(dá)目標(biāo)點(diǎn)的最短路徑,由最短路徑及路徑交叉口信息比對(duì)生成在路徑交叉口的方向信息并壓縮打包,通過無線連接地面機(jī)器人及通信成功后發(fā)送當(dāng)前命令。地面機(jī)器人接收命令后識(shí)別地面路徑并按命令信息行走至指定地面,通過單目視覺識(shí)別目標(biāo)并定位后實(shí)施抓取,攜帶目標(biāo)返回后完成整體的空地機(jī)器人搜尋與救援任務(wù)。
2.1 空中視覺提取地面路徑
在空中視覺提取地面路徑中使用多種算法融合的方式,如圖像閾值分割、圖像平滑、圖像形態(tài)學(xué)轉(zhuǎn)換等方式,針對(duì)不同的地面進(jìn)行處理,在空中視覺識(shí)別方面結(jié)合應(yīng)用腐蝕膨脹、濾波、灰度及二值化等一系列去除干擾提取路徑的方法,通過多種方式的組合及對(duì)特定區(qū)域單獨(dú)處理可以有效地提取特征信息,如圖3提取出有效的路徑信息并降低了非路徑像素的干擾。
2.2 空中機(jī)器人識(shí)別地面目標(biāo)
空中機(jī)器人準(zhǔn)確判別地面目標(biāo)是空地機(jī)器人結(jié)合的前提,首先由空中機(jī)器人將圖片信息進(jìn)行HSV空間轉(zhuǎn)換并設(shè)立閾值提取出可能的起始點(diǎn)與終止點(diǎn),使用cv2.cvtColor()函數(shù)將RGB轉(zhuǎn)換成HSV。并設(shè)定合理閾值,如使用[130,100,100]與[190,255,255]的閾值范圍可提取紅色。在顏色特征識(shí)別后結(jié)合輪廓、特征點(diǎn)匹配進(jìn)行多重判定可以更精確地識(shí)別目標(biāo)。如在本實(shí)驗(yàn)中先由findContours函數(shù)進(jìn)行輪廓查找,根據(jù)輪廓特點(diǎn)排除不相關(guān)信息后可以比較準(zhǔn)確地判定目標(biāo)所在位置,最后由cv2.drawContours函數(shù)實(shí)現(xiàn)及繪制出目標(biāo)的所在位置,如圖4所示。
2.3 最優(yōu)路徑規(guī)劃
在空中機(jī)器人識(shí)別地面目標(biāo)后獲得起始點(diǎn)和終止點(diǎn)的信息,然后結(jié)合提取的地面路徑信息進(jìn)行路徑規(guī)劃。先將起始點(diǎn)和終止點(diǎn)的坐標(biāo)信息放入路徑信息中,在實(shí)際應(yīng)用到機(jī)器人路徑規(guī)劃中,由于傳統(tǒng)算法(如遺傳算法、神經(jīng)網(wǎng)絡(luò)算法等算法)難用公式計(jì)算且計(jì)算耗時(shí)漫長(zhǎng),而在Python內(nèi)函數(shù)BFS(廣度優(yōu)先搜索算法)使用collections模塊中的deque內(nèi)部實(shí)現(xiàn),非常高效,且使用廣度優(yōu)先搜索基于遍歷的方式可計(jì)算很大一部分迷宮路徑問題求得最優(yōu)解,因此作為主要路徑規(guī)劃方法。經(jīng)過路徑規(guī)劃算法計(jì)算的地面機(jī)器人到達(dá)不同目的地點(diǎn)時(shí)最短路徑如圖5所示。
為了使空地機(jī)器人能夠有效地交流行走路徑信息,需要提取圖像信息中的交叉點(diǎn)信息。在圖像處理中實(shí)際使用到的為角點(diǎn)坐標(biāo)信息的提取,基于Shi-Tomasi的打分函數(shù)選擇最好的N個(gè)特征點(diǎn)后識(shí)別出的特征點(diǎn)質(zhì)量也更高。為了更好識(shí)別角點(diǎn),首先對(duì)圖像中的路徑特征細(xì)化(如圖6所示),采用角點(diǎn)識(shí)別對(duì)路徑中的交叉點(diǎn)及特征點(diǎn)的檢測(cè)結(jié)果如圖7所示,所采用角點(diǎn)識(shí)別函數(shù)如下:
corners=cv2.goodFeaturesToTrack(gray,25,0.01,10)
為使得空地機(jī)器人獲得協(xié)同并得到最終的指令信息,在獲得路徑信息和交叉點(diǎn)信息后需將兩者的坐標(biāo)點(diǎn)位置提取出以進(jìn)行比對(duì),通過判斷當(dāng)前交叉點(diǎn)與前后交叉點(diǎn)的位置判斷地面機(jī)器人在經(jīng)過當(dāng)前交叉點(diǎn)時(shí)轉(zhuǎn)彎的方向,經(jīng)過比對(duì)后得出:位置1時(shí)地面機(jī)器人需要執(zhí)行的方向依次為左、左、右,位置2時(shí)需執(zhí)行方向依次為前、左、右、左、前。生成命令后進(jìn)行編碼并寫入文本文件中進(jìn)行打包。
2.4 空地機(jī)器人通信
空中機(jī)器人和地面機(jī)器人之間的通信是空地協(xié)作的重要組成部分,應(yīng)當(dāng)采用能耗少、傳輸速度快且連接便捷的方法。地面機(jī)器人內(nèi)置WiFi模塊及空中機(jī)器人加裝相應(yīng)的模塊后使其可采用傳輸速率高效的WiFi進(jìn)行通信,發(fā)送的數(shù)據(jù)由Linux封裝協(xié)議后通過WiFi模塊發(fā)送到無線網(wǎng)絡(luò)中。使用由Python語言編寫的paramiko模塊能夠支持空地機(jī)器人的文件或命令的傳遞,使兩者進(jìn)行協(xié)作。該模塊遵循SSH2協(xié)議并支持加密和認(rèn)證的方式,能夠進(jìn)行遠(yuǎn)程服務(wù)器的連接及進(jìn)行文件的發(fā)送或命令的直接操作,該模塊的代碼如下:
import paramiko
def ssh2(ip,username,passwd,cmd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
2.5 地面機(jī)器人執(zhí)行任務(wù)
地面機(jī)器人在接收到文本文件指令后進(jìn)行解讀,并搜尋地面路徑。首先由地面機(jī)器人對(duì)地面進(jìn)行拍照及二值化后提取出地面路徑,用霍夫算法提取出地面路徑并對(duì)地面機(jī)器人進(jìn)行航偏矯正修正姿態(tài),霍夫變換在圖像特征處理中使用比較普遍,基本思想是通過笛卡爾坐標(biāo)系上的點(diǎn)轉(zhuǎn)為極坐標(biāo)后通過投票算法檢測(cè)具有特定形狀的物體[13],本文用到的霍夫直線檢測(cè)函數(shù)的使用如下:
img=cv2.imread(′picture1.jpg′)
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
edges=cv2.Canny(gray,50,150,apertureSize=3)
lines=cv2.HoughLines(edges,1,np.pi/180,200)
地面機(jī)器人在檢測(cè)到地面路徑后沿路徑行走,在地面交叉點(diǎn)處執(zhí)行對(duì)應(yīng)的文本文件指令信息,最終到達(dá)目的地面附近。由于地面機(jī)器人的電機(jī)自身誤差、發(fā)熱等會(huì)行成行走偏差,造成與預(yù)定方向的偏離,因此根據(jù)實(shí)際需要提出使用霍夫算法進(jìn)行糾偏的方法,在使用霍夫算法檢測(cè)到直線后計(jì)算其在圖像中的位置,如果偏離在誤差范圍外,則計(jì)算直線偏移的位移和角度并根據(jù)偏移值大小對(duì)地面機(jī)器人進(jìn)行矯正。
圖8(a)為矯正偏差前攝像頭拍攝的圖片,圖8(b)為經(jīng)矯正后拍攝的圖片。矯正偏差及指令執(zhí)行正確后地面機(jī)器人可按既定規(guī)劃路徑前往指定位置。
在地面機(jī)器人到達(dá)指定位置后需進(jìn)一步識(shí)別和抓取目標(biāo)物,使用地面機(jī)器人的頂部(如圖9(a)所示)和底部(如圖9(b)所示)兩個(gè)攝像頭對(duì)不同距離的目標(biāo)物采用周長(zhǎng)與面積的特定比例關(guān)系并用矩的信息精確定位,以實(shí)現(xiàn)對(duì)目標(biāo)物的探測(cè)并逐步靠近目標(biāo)物,根據(jù)單目視覺的標(biāo)定結(jié)果反推目標(biāo)物距離地面機(jī)器人的距離,最終識(shí)別到目標(biāo)物并引導(dǎo)地面機(jī)器人的機(jī)械臂完成抓取,攜帶目標(biāo)返回出發(fā)點(diǎn),完成設(shè)計(jì)任務(wù)。
3 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)測(cè)試搭建了模擬在災(zāi)害現(xiàn)場(chǎng)搜尋與救援時(shí)的環(huán)境,使用擋板進(jìn)行了隔離,使得地面機(jī)器人與目標(biāo)物置于環(huán)境當(dāng)中的不同位置,并設(shè)置多條路徑以模擬實(shí)際環(huán)境,如圖10所示。在操控空中機(jī)器人起飛后,由空中視覺傳感系統(tǒng)對(duì)地面環(huán)境及目標(biāo)進(jìn)行檢測(cè),如圖11所示。計(jì)算結(jié)果傳輸至地面機(jī)器人,地面機(jī)器人在到達(dá)目的地面后探測(cè)周圍環(huán)境找尋目標(biāo)物,在判定目標(biāo)為所需目標(biāo)物后,由單目視覺信息實(shí)行精確抓取后完成任務(wù)并原路返航,如圖12所示。
實(shí)驗(yàn)結(jié)果如表1所示,從中可分析空地機(jī)器人的協(xié)作效果,空中機(jī)器人基本能夠正確識(shí)別地面目標(biāo),地面機(jī)器人識(shí)別能力優(yōu)于空中機(jī)器人,經(jīng)過對(duì)目標(biāo)物識(shí)別檢測(cè)后可以進(jìn)行正常抓取,兩者之間能夠?qū)崿F(xiàn)有效協(xié)作。多次試驗(yàn)完成結(jié)果表明,系統(tǒng)中的空中機(jī)器人檢測(cè)正確率約90%,地面機(jī)器人執(zhí)行任務(wù)的正確率更優(yōu),接近100%。因此空地機(jī)器人總體完成指定任務(wù)的成功率在80%以上,表明該空地機(jī)器人的結(jié)合方法能夠成功地完成搜救目標(biāo)任務(wù)。
4 結(jié)論
本文針對(duì)空地協(xié)同研究平臺(tái)缺乏且缺少實(shí)際場(chǎng)景應(yīng)用(如災(zāi)害中的搜尋救援)的特點(diǎn),提出了以通用性較好的NAO機(jī)器人與四旋翼作為硬件基礎(chǔ),并結(jié)合移植性較好的Python編程語言實(shí)現(xiàn)空地機(jī)器人完成指定任務(wù)的協(xié)作平臺(tái),針對(duì)搜尋救援場(chǎng)景規(guī)劃了從空中機(jī)器人對(duì)地面目標(biāo)檢測(cè)、路徑檢測(cè)、路徑規(guī)劃、命令傳輸?shù)姆椒?,到地面機(jī)器人對(duì)地面路徑檢測(cè)與執(zhí)行命令、對(duì)目標(biāo)檢測(cè)與抓取的方法。在空中機(jī)器人中,提出了多種圖像處理方法融合的識(shí)別方法及使用角點(diǎn)提取加坐標(biāo)比對(duì)生成行走方向的方法;在地面機(jī)器人中,提出了運(yùn)用霍夫變換矯正機(jī)器人角度和位移偏移的方法,這些方法能夠很好地幫助實(shí)現(xiàn)總體任務(wù)的完成。今后將在實(shí)際環(huán)境中的路徑規(guī)劃及視覺識(shí)別精確度方面做進(jìn)一步研究以推進(jìn)平臺(tái)軟件包的開發(fā)。
參考文獻(xiàn)
[1] DUAN H B,LIU S Q.Unmanned air/ground vehicles heterogeneous cooperative techniques:current status and prospects[J].Science China Technological Sciences,2010,53(5):1349-1355.
[2] 谷豐,王爭(zhēng),宋琦,等.空地機(jī)器人協(xié)作導(dǎo)航方法與實(shí)驗(yàn)研究[J].中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào),2012,42(5):398-404.
[3] 陳洋,譚艷平,程磊,等.鄰域約束下空地異構(gòu)機(jī)器人系統(tǒng)路徑規(guī)劃方法[J].機(jī)器人,2017,39(1):1-7.
[4] TOKEKAR P,VANDER HOOK J,MULLA D,et al.Sensor planning for a symbiotic UAV and UGV system for precision agriculture[J].IEEE Transactions on Robotics,2016,32(6):1498-1511.
[5] JIN H K,KWON J W,SEO J.Multi-UAV-based stereo vision system without GPS for ground obstacle mapping to assist path planning of UGV[J].Electronics Letters,2014,50(20):1431-1432.
[6] MINAEIAN S,LIU J,SON Y J.Vision-based target detection and localization via a team of cooperative UAV and UGVs[J].IEEE Transactions on Systems Man & Cybernetics Systems,2016,46(7):1005-1016.
[7] MUEGGLER E,F(xiàn)AESSLER M,F(xiàn)ONTANA F,et al.Aerial-guided navigation of a ground robot among movable obstacles[C].IEEE International Symposium on Safety,Security,and Rescue Robotics.IEEE,2014.
[8] CANTELLI L,PRESTI M L,MANGIAMELI M,et al.Auto-nomous cooperation between UAV and UGV to improve navigation and environmental monitoring in rough environments[C].International Symposium Humanitarian Demining,2013.
[9] 梅元?jiǎng)?空地機(jī)器人協(xié)作環(huán)境建模與路徑規(guī)劃[D].北京:中國(guó)科學(xué)院大學(xué),2014.
[10] 李越.OpenCV應(yīng)用現(xiàn)狀綜述[J].工業(yè)控制計(jì)算機(jī),2017,30(7):123-124.
[11] 趙毅,馬捷.利用Python和GTK+的Linux GUI應(yīng)用的快速開發(fā)[J].計(jì)算機(jī)工程,2004,30(8):80-82.
[12] 狄博,王曉丹.基于Python語言的面向?qū)ο蟪绦蛟O(shè)計(jì)課程教學(xué)[J].計(jì)算機(jī)工程與科學(xué),2014,36(s1):122-125.
[13] 李明,黃華,夏建剛.基于Hough變換的車道檢測(cè)改進(jìn)算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(4):1638-1642.
作者信息:
劉 毅1,2,車 進(jìn)1,2,朱小波1,2,杭 立1,2,郝志洋1,2
(1.寧夏大學(xué) 物理與電子電氣工程學(xué)院,寧夏 銀川750021;
2.寧夏沙漠信息智能感知重點(diǎn)實(shí)驗(yàn)室(寧夏大學(xué)),寧夏 銀川750021)