馬利紅, 范晨光, 王書平, 周 武
(1.浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華 321004;2.浙江師范大學(xué) 工學(xué)院,浙江 金華 321004)
?
基于深度圖像的室內(nèi)機器人避障系統(tǒng)
馬利紅1,范晨光1,王書平2,周武2
(1.浙江師范大學(xué) 數(shù)理與信息工程學(xué)院,浙江 金華321004;2.浙江師范大學(xué) 工學(xué)院,浙江 金華321004)
為了增強室內(nèi)移動機器人的障礙物檢測能力和降低系統(tǒng)成本,提出了一種基于深度圖像的單一Kinect傳感器的室內(nèi)移動機器人避障系統(tǒng).該系統(tǒng)將Kinect傳感器豎直放置,并對深度圖像進(jìn)行了幾何變換,提供了更加適合探測地面和空中障礙物的視角.對深度圖像進(jìn)行中值濾波以消除圖像噪聲,并采用統(tǒng)計平均的背景減除法去除無障礙背景,提取障礙物的深度圖像,然后對障礙物的大小、位置與數(shù)量進(jìn)行檢測,最后根據(jù)檢測的結(jié)果,并利用人工視場與Kinect攝像頭對位置環(huán)境局部最小值場景的檢測相結(jié)合進(jìn)行避障路徑的選擇.結(jié)果表明:局部最小值場景檢測方法能夠高效檢測出環(huán)境中存在局部最小值的缺陷,沿墻行走模式也大大減少無效路徑,解決了狹窄通道內(nèi)震蕩的問題,有效地實現(xiàn)了室內(nèi)機器人在動態(tài)環(huán)境下的避障.
深度圖像;室內(nèi)機器人;Kinect;避障
(1.CollegeofMathematics,PhysicsandInformationEngineering,ZhejiangNormalUniversity,Jinhua321004,China; 2.CollegeofEngineering,ZhejiangNormalUniversity,Jinhua321004,China)
移動機器人的自主行走能力是保證機器人能夠完成預(yù)定任務(wù)的前提.家庭服務(wù)機器人是移動機器人的重要發(fā)展方向,然而家庭服務(wù)機器人的普及和推廣速度一直非常緩慢,主要原因是家庭環(huán)境比較復(fù)雜和多變,機器人的避障效果不理想;另一個重要原因是家庭服務(wù)機器人成本較高,不利于機器人的推廣.傳統(tǒng)的移動機器人障礙物檢測的傳感器使用紅外傳感器、超聲波傳感器、雙目攝像頭和激光雷達(dá)等.其中超聲波的反射性強、定向性差;3D激光雷達(dá)成本過高等;雙目視覺易受光照等環(huán)境變化的影響[1];或者多種傳感器同時使用需要多種傳感器的數(shù)據(jù)融合,這便增加了數(shù)據(jù)處理硬件要求和復(fù)雜性.微軟研制的新型深度影像傳感器被廣泛應(yīng)用于目標(biāo)檢測、跟蹤與識別、室內(nèi)3D地圖建構(gòu)等領(lǐng)域[1-3].Kinect傳感器使用的是一種光編碼(light coding)技術(shù).它使用激光散斑(laser speckle),這些散斑具有高度的隨機性,而且會隨著距離的不同而變換圖案,因此,空間中不同的位置具有不同的圖案,據(jù)此可以獲得障礙物的形狀及距離的相關(guān)信息.所以,Kinect在提取周圍環(huán)境深度信息上為進(jìn)一步提高障礙物檢測的效果和距離計算準(zhǔn)確性提供了可靠的保障[4].使用單一的Kinect傳感器來獲取障礙物的深度圖像能夠很好地保證系統(tǒng)的實時性,因此,Kinect的應(yīng)用日趨廣泛[5].
隨著國家“十三五”規(guī)劃的實施,智能化與機器人是國家重點發(fā)展的領(lǐng)域,移動機器人作為機器人家族中的重要一員,對其要求也越來越高,移動機器人應(yīng)用領(lǐng)域遍及軍事、救災(zāi)、探測、加工制造、娛樂傳媒、家庭服務(wù)等.許多學(xué)者對機器人自主導(dǎo)航進(jìn)行了大量的研究,就機器人自主避障提出許多算法[6].其中人工勢場法作為一種經(jīng)典的局部規(guī)劃算法,因其計算量比較少、且描述簡單、便于機器人實時控制而應(yīng)用廣泛[7-9].但人工勢場法在實時路徑規(guī)劃時存在局部極小點、陷阱區(qū)及在復(fù)雜障礙物前產(chǎn)生振蕩等問題.本文在此基礎(chǔ)上結(jié)合Kinect傳感器的優(yōu)勢提出了使用Kinect單一傳感器改進(jìn)人工勢場法的有效避障系統(tǒng),利用人工視場法與Kinect攝像頭對位置環(huán)境局部最小值場景的檢測相結(jié)合進(jìn)行避障路徑的選擇.該系統(tǒng)能夠高效檢測出環(huán)境中存在局部最小值缺陷的障礙物場景,沿墻行走模式也大大減少無效路徑,解決了狹窄通道內(nèi)震蕩的問題,有效地實現(xiàn)室內(nèi)機器人在動態(tài)環(huán)境下的避障.
1.1避障系統(tǒng)的構(gòu)成
本文提出的避障系統(tǒng)的硬件部分主要由筆記本電腦、Kinect傳感器和Pioneer-3移動平臺組成.筆記本電腦用于深度圖像的處理、障礙物檢測和避障路徑的選擇;Kinect傳感器用于采集周圍環(huán)境信息并生成深度圖像數(shù)據(jù);Pioneer-3移動平臺是整個系統(tǒng)的移動載體與執(zhí)行機構(gòu),如圖1所示.
圖1 避障系統(tǒng)構(gòu)成圖
1.2避障系統(tǒng)的工作原理
避障系統(tǒng)首先將Kinect傳感器豎直放置,并對深度圖像進(jìn)行了幾何變換,提供了更加適合探測地面和空間障礙物的視角,對深度圖像進(jìn)行中值濾波處理以達(dá)到消除深度圖像噪聲的目的;采用基于統(tǒng)計平均的背景減除法來去除無障礙物的背景,消除地面背景對障礙物造成的干擾,從而將障礙物從深度圖像中提取出來;然后對障礙物的大小、位置和數(shù)量進(jìn)行檢測;最后,根據(jù)障礙物的位置、大小和數(shù)量并結(jié)合人工勢場法和Kinect場景檢測模式進(jìn)行避障.
2.1深度圖像預(yù)處理
深度圖像預(yù)處理主要包括深度圖像翻轉(zhuǎn),深度圖像的中值濾波處理.Kinect放置示意圖如圖2所示,默認(rèn)狀態(tài)下即Kinect水平放置,傳感器水平視角為57°,垂直視角為43°,Kinect探測深度范圍是0.7~4.5 m,最佳探測區(qū)域為1.2~2.5 m,翻轉(zhuǎn)之后Kinect探測水平視角變?yōu)?3°,垂直視角為57°,探測深度范圍不發(fā)生變化,如圖3所示.翻轉(zhuǎn)之后,Kinect探測寬度范圍變化,該實驗平臺上Kinect傳感器高度設(shè)定為0.8 m,可探測范圍變化如圖4所示.
圖2Kinect布置方式 圖3Kinect翻轉(zhuǎn)后視角變化
圖4Kinect翻轉(zhuǎn)前后垂直視角探測范圍對比圖
通過張克華等[3]提出的計算公式計算可得翻轉(zhuǎn)前后可探測地面的最小距離和可探測高度最小距離的結(jié)果如表1所示.
由圖4和表1可以得知,翻轉(zhuǎn)之后的 Kinect傳感器可探測最近的地面障礙物的距離減小了557 mm,表明:Kinect傳感器相對應(yīng)的探測盲區(qū)得到了優(yōu)化.同理,Kinect傳感器可探測指定高度的(本文設(shè)定為2 000 mm)最小距離減少了697 mm,表明傳感器可探測空間障礙物盲區(qū)得到進(jìn)一步優(yōu)化,所以,翻轉(zhuǎn)所得到的探測視角更適合探測覆蓋地面到空間區(qū)域的整個范圍的障礙物檢測,效果如圖5所示.
表1 Kinect傳感器2種放置狀態(tài)可探測范圍對比 mm
圖5Kinect翻轉(zhuǎn)前后深度圖像范圍對比圖
2.2基于統(tǒng)計的背景減除算法
由于Kinect傳感器存在邊緣噪聲,對障礙物邊界檢測造成干擾,獲取圖像首先進(jìn)行中值濾波處理,有效抑制邊緣噪聲對障礙物檢測的影響.另外,Kinect傳感器深度圖像中地面影響較大,原因是地面與障礙物距離較近,深度圖像中的灰度值較為接近,因此,會對地面障礙物的檢測構(gòu)成干擾,需要對無障礙物環(huán)境進(jìn)行建模,通過差幀處理消除來自地面的影響,提高障礙物的檢測效率.
圖6深度圖像中地面區(qū)域(虛線部分)和障礙物區(qū)域(橢圓部分)
深度圖像中地面區(qū)域與障礙物區(qū)域的深度值的差值很小,邊界不明顯,不能夠準(zhǔn)確測出障礙物的像素坐標(biāo),如圖6所示.因此,需要對無障礙物圖像進(jìn)行背景建模,統(tǒng)計出該環(huán)境中的背景圖像,在檢測障礙物時,將背景圖像與當(dāng)前深度圖像數(shù)據(jù)流進(jìn)行差幀處理,從而濾去地面的影響.基于統(tǒng)計平均的背景建模是統(tǒng)計一段無障礙物環(huán)境的深度圖像序列中每一個像素點的像素值,計算出該圖像序列的各個像素點均值作為目標(biāo)圖像的像素值.其統(tǒng)計公式如下:
(1)
背景減除法的原理是:第1步是對無障礙物環(huán)境下得到的深度圖像序列的每一個像素點進(jìn)行統(tǒng)計平均的背景建模,獲得背景模型圖像fb(x0,y0);第2步是將當(dāng)前幀fn(x0,y0)與背景圖像fb(x0,y0)做差幀處理,也就是2幀圖像的對應(yīng)像素點的像素值相減,得到一個目標(biāo)圖像dk,即
(2)
最后,將得到的目標(biāo)圖像進(jìn)行二值化處理、形態(tài)學(xué)處理,去除地面背景對地面障礙物檢測的干擾.基于統(tǒng)計平均的背景減除法過程如圖7所示.
圖7 基于統(tǒng)計平均的背景減除法流程圖
左→右:中值濾波、差幀圖、差幀圖中值濾波、二值圖、原深度圖像
圖8基于統(tǒng)計平均的背景建模處理實驗圖
在圖8中,①,②,③3幅照片表示的是中值濾波處理后的圖像:圖像①經(jīng)過與統(tǒng)計平均建模法得到的背景圖像進(jìn)行差幀處理得到了濾除背景的圖像②,由于傳感器噪聲和振動等影響,差幀圖像②存在很多噪聲,進(jìn)行中值濾波、膨脹、腐蝕處理后,得到較為理想的圖像③.基于統(tǒng)計平均的背景建模處理過程的實驗效果如圖8所示.
根據(jù)統(tǒng)計平均的原理和實際實驗效果的表現(xiàn),基于統(tǒng)計平均的背景建模比較適合Kinect深度圖像檢測環(huán)境障礙物的要求.
2.3障礙物識別算法
目標(biāo)圖像通過二值處理之后進(jìn)行障礙物的識別.障礙物的識別主要包括檢測目標(biāo)圖像中障礙物的輪廓,計算圖像中障礙物的像素面積大小,過濾由噪聲原因形成的非障礙物圖像和障礙物邊界信息提取,障礙物識別的具體流程如圖9所示.
圖9 障礙物識別流程圖
在FindContour函數(shù)找到障礙物的輪廓以后,運用OpenCV庫中ContourArea計算輪廓內(nèi)的像素面積大小,從而確定障礙物大小及數(shù)量,根據(jù)對傳感器性能試驗的測試得出,設(shè)定500為判斷是否為障礙物的閾值是較為合理的,探測效果較為理想.實驗效果如圖10所示.
從深度圖像中探測出障礙物的位置信息,提取的障礙物信息是障礙物的圖像坐標(biāo)信息,移動機器人進(jìn)行避障路徑的判斷,必須獲取對應(yīng)于世界坐標(biāo)系的位置信息.因此,首先需要進(jìn)行攝像機標(biāo)定.攝像機標(biāo)定的目的是將在障礙物檢測過程中獲得的圖像坐標(biāo)信息轉(zhuǎn)化為世界坐標(biāo)系的位置信息,移動機器人才能夠進(jìn)行無效障礙物過濾和避障路徑的選擇.
圖10從左至右依次是障礙物數(shù)量及面積輸出界面、二值化處理圖像及canny算法實驗效果圖
根據(jù)Kinect傳感器工作原理可知,其深度圖像實際上是包含x,y,z這3個坐標(biāo)信息,其中x,y是普通灰度圖像具有的像素坐標(biāo);z是表示物體與攝像機的距離大小,在深度圖像中表現(xiàn)為灰度值的大小,Kinect成像原理是基于激光散斑,然而Microsoft Kinect SDK并未給出攝像機標(biāo)定函數(shù),因此,需要根據(jù)世界坐標(biāo)與像素坐標(biāo)的幾何關(guān)系進(jìn)行推算.攝像機標(biāo)定示意圖如圖11所示.
圖11 障礙物邊界像素坐標(biāo)示意圖
圖12 Kinect傳感器水平探測視角示意圖
攝像機標(biāo)定的原理是將深度圖像分為左右兩部分,分界線為x=240,對應(yīng)世界坐標(biāo)系的左右分界線,也就是說,當(dāng)x<240時,物體實際位置位于移動機器人左側(cè);x>240時,則位于右側(cè).根據(jù)公式3計算偏離機器人中心線的距離L1.
(3)
式(3):x1是該像素點的橫坐標(biāo);α為Kinect傳感器水平探測視角(見圖12),α=43°;dv為該像素點的深度值;Wmax表示深度圖像的寬度,即Wmax=480.由公式(3)可得出L1的計算公式:
(4)
若L1>0,則說明障礙物邊界在機器人左側(cè);若L1<0,則說明障礙物邊界在機器人右側(cè).圖11中y=320對應(yīng)的是實際高度,就是Kinect傳感器紅外攝像機的高度,本文設(shè)定為800 mm.障礙物實際高度的計算公式為
(5)
式(5)中:y1為該像素點的縱坐標(biāo);β為Kinect傳感器的垂直探測視角;dv為該像素點的深度值;Hmax為深度圖像的長度,即Hmax=640.障礙物相對地面的實際高度的公式為
(6)
H1>0時在攝像機上方;H1<0時在攝像機下方.將障礙物的像素坐標(biāo)轉(zhuǎn)化為相對于機器人的局部坐標(biāo),然后將實際環(huán)境中的坐標(biāo)傳輸?shù)饺斯輬龇ㄖ杏脕碜雎窂竭x擇.
2.4障礙物躲避路徑判斷
本文所設(shè)計的避障系統(tǒng)是在未知環(huán)境下進(jìn)行的自主探測,因此,采用了局部路徑規(guī)劃中較為有效的算法:人工勢場法是梯度勢場法,勢場的負(fù)梯度作為作用在機器人上的虛擬力,障礙物對機器人產(chǎn)生斥力,目標(biāo)點產(chǎn)生引力,引力和斥力的合力作為機器人的加速力,該力“推動”移動機器人向著目標(biāo)做無碰運動.其工作原理如圖13所示.
針對人工勢場法所存在的局部最小值缺陷(即鎖死現(xiàn)象),國內(nèi)外許多學(xué)者進(jìn)行了很多研究,在特定的環(huán)境中解決了該問題,然而在完全未知的環(huán)境下僅僅通過對人工勢場法的引力場和斥力場的優(yōu)化仍無法解決算法缺陷.為此,本文運用Kinect局部最優(yōu)值場景檢測來解決該問題.解決人工勢場法的局部最小值問題的原理是對位置環(huán)境進(jìn)行局部最小值場景檢測.當(dāng)機器人檢測到前方有墻時,有可能陷入局部最小值場景,如圖14所示.此時啟動場景檢測模式,如圖15.具體操作方法是,機器人此時速度為0,先讓Kinect傳感器向左旋轉(zhuǎn)30°,然后向右旋轉(zhuǎn)30°.如果左右兩側(cè)都將測到有側(cè)面墻存在,則說明機器人已陷入局部最小值場景,機器人在此場景中可能被鎖死,給移動機器人原地旋轉(zhuǎn)180°,然后退出該場景;若左右兩側(cè)未檢測到墻時,那么說明機器人并未陷入局部最小值場景,則根據(jù)人工勢場法進(jìn)行路徑選擇.
圖13人工勢場法原理圖
圖14局部最小值示意圖圖15局部最小值場景示意圖
為了驗證Kinect傳感器障礙物檢測系統(tǒng)的可靠性,在Pioneer-3移動平臺中添加Kinect傳感器搭建避障系統(tǒng),并進(jìn)行了實驗,分別包括地面障礙物和懸空障礙物檢測,如圖16所示,無效障礙物過濾實驗效果提示了有障礙物.地面障礙物和懸空障礙物檢測結(jié)果是檢測到了前方右側(cè)和空間的有障礙物.
圖16 地面障礙物和懸空障礙物檢測與無效障礙物過濾
為了驗證機器人對局部最小值場景的處理能力,避障路徑選擇實驗和局部最小值場景檢測試驗,如圖17所示.局部最小值場景檢測的實驗結(jié)果是移動機器人攝像頭左右旋轉(zhuǎn)檢測后,原地旋轉(zhuǎn)退出該場景,說明局部最小值場景檢測有效,局部最小值場景檢測效果如圖18、圖19所示.
圖17 局部最小值檢測場景
圖18局部最小值場景深度圖像與識別效果
(a)狹窄通道場景試驗結(jié)果過程圖(b)沿墻場景試驗結(jié)果過程圖
圖19場景檢測試驗過程圖
本文基于單一Kinect傳感器能夠同時檢測地面和空間障礙物的檢測系統(tǒng),結(jié)合深度圖像分析改進(jìn)了人工勢場法存在的不足,運用Kinect局部最優(yōu)值場景檢測來解決人工勢場法的局部最小值問題.搭建了障礙物檢測系統(tǒng)試驗平臺并進(jìn)行了實際場景的實驗測試,避障系統(tǒng)能夠成功識別障礙物和局部最小值的場景,達(dá)到了系統(tǒng)設(shè)計的預(yù)期,基本滿足了機器人自主行走的要求.
[1]楊磊,蔡紀(jì)源,任衍允,等.一種基于深度信息的障礙物檢測方法[J].計算機技術(shù)與發(fā)展,2015,25(8):43-47.
[2]Filipe V,Fernandes H,Sousa A.Blind navigation support system based on Microsoft Kinect[J].Procedia Computer Science,2012,14(8):94-101.
[3]張克華,王書平,尹小紅,等.復(fù)雜環(huán)境下單一Kinect導(dǎo)盲系統(tǒng)設(shè)計[J].光學(xué) 精密工程,2015,8(1):55-58.
[4]López-Ramírez J J,Quintanilla-Olvera A L,Luis J.Detecting objects using color and depth segmentation with Kinect sensor[J].Procedia Technology,2012(3):196-204.
[5]蘇仕瑋,侯廷偉.以Kinect配合智能型手機實做盲人輔具系統(tǒng)[D].臺南:“國立”成功大學(xué),2013:8.
[6]張毅,蔣翔,羅元,等.基于深度圖像的移動機器人動態(tài)避障算法[J].控制工程,2013,4(20):663-670.
[7]姬偉,程風(fēng)儀,趙德安,等.基于改進(jìn)人工勢場的蘋果采摘機器人機械手避障方法[J].農(nóng)業(yè)機械學(xué)報,2013,11(44):253-259.
[8]Gilbert E G,Johnson D W.Distance functions and their application to robot path planning in the presence of obstacles[J].IEEE J Robotics and Automation 1985,1(1):21-30.
[9]李奕銘.基于人工勢場法的移動機器人避障研究[D].合肥:合肥工業(yè)大學(xué),2013.
(責(zé)任編輯杜利民)
On the obstacle avoidance system for mobile robots based on depth image in indoor condition
MA Lihong1,FAN Chenguang1,WANG Shuping2,ZHOU Wu2
An obstacle avoidance system for mobile robots was designed to improve obstacle detection and reduce costs used a single sensor Kinect based on the depth images in indoors condition. The Kinect sensor was placed vertically, and the depth image was geometry transformed in this system, which provided a more suitable field to detect obstacles of ground and air. The depth image by median filtering eliminated image noise efficiently, and through the statistical average background subtraction division removing barrier-free background to extract the obstacles of depth image, and then detected the size, location and quantities of the obstacles, according to the test results using the combination of artificial field and Kinect device camera to local minimum position environment scene detection for path choice avoiding walls. The experimental result showed that the local minimum value of scene detection method could efficiently detected the local minimum defects in the environment scene, the invalid path of walking along the wall model was greatly reduced, the problem of the narrow channels of concussion was solved, interior obstacle avoidance of robot in dynamic environment was effectively implemented.
depth image; mobile robots in indoor condition; Kinect; obstacle avoidance
10.16218/j.issn.1001-5051.2016.03.007
收文日期:2016-03-22;2016-04-25
國家自然科學(xué)基金青年基金項目資助(51405450);2014年度國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(201410345009)
馬利紅(1979-),女,浙江嘉興人,副教授,博士.研究方向:光全息與數(shù)字全息技術(shù).
TP391.41
A
1001-5051(2016)03-0276-07