機(jī)器人視覺(jué)避障解讀:從傳感器到算法原理
發(fā)布時(shí)間:2019-03-19 責(zé)任編輯:xueqi
【導(dǎo)讀】視覺(jué)避障是指移動(dòng)機(jī)器人在行走過(guò)程中,通過(guò)傳感器感知到在其規(guī)劃路線上存在靜態(tài)或動(dòng)態(tài)障礙物時(shí),按照 一定的算法實(shí)時(shí)更新路徑,繞過(guò)障礙物,最后達(dá)到目標(biāo)點(diǎn)。以下將從傳感器到算法原理,解讀機(jī)器人如何實(shí)現(xiàn)視覺(jué)避障。
避障常用哪些傳感器?
不管是要進(jìn)行導(dǎo)航規(guī)劃還是避障,感知周邊環(huán)境信息是第一步。就避障來(lái)說(shuō),移動(dòng)機(jī)器人需要通過(guò)傳感器 實(shí)時(shí)獲取自身周圍障礙物信息,包括尺寸、形狀和位置等信息。避障使用的傳感器多種多樣,各有不同的原理和特點(diǎn),目前常見(jiàn)的主要有視覺(jué)傳感器、激光傳感器、紅外傳感器、超聲波傳感器等。下面我簡(jiǎn)單介紹一下這幾種傳感器的基本工作原理。
超聲波
超聲波傳感器的基本原理是測(cè)量超聲波的飛行時(shí)間,通過(guò)d=vt/2測(cè)量距離,其中d是距離,v是聲速,t是 飛行時(shí)間。由于超聲波在空氣中的速度與溫濕度有關(guān),在比較精確的測(cè)量中,需把溫濕度的變化和其它因素考慮進(jìn)去。
上面這個(gè)圖就是超聲波傳感器信號(hào)的一個(gè)示意。通過(guò)壓電或靜電變送器產(chǎn)生一個(gè)頻率在幾十kHz的超聲波脈沖組成波包,系統(tǒng)檢測(cè)高于某閾值的反向聲波,檢測(cè)到后使用測(cè)量到的飛行時(shí)間計(jì)算距離。超聲波傳感器一般作用距離較短,普通的有效探測(cè)距離都在幾米,但是會(huì)有一個(gè)幾十毫米左右的最小探測(cè)盲區(qū)。由于超聲傳感器的成本低、實(shí)現(xiàn)方法簡(jiǎn)單、技術(shù)成熟,是移動(dòng)機(jī)器人中常用的傳感器。超聲波傳感器也有一些缺點(diǎn),首先看下面這個(gè)圖。
因?yàn)槁曇羰清F形傳播的,所以我們實(shí)際測(cè)到的距離并不是 一個(gè)點(diǎn),而是某個(gè)錐形角度范圍內(nèi)最近物體的距離。
另外,超聲波的測(cè)量周期較長(zhǎng),比如3米左右的物體,聲波傳輸這么遠(yuǎn)的距離需要約20ms的時(shí)間。再者,不同材料對(duì)聲波的反射或者吸引是不相同的,還有多個(gè)超聲傳感器之間有可能會(huì)互相干擾,這都是實(shí)際應(yīng)用的過(guò)程中需要考慮的。
紅外
一般的紅外測(cè)距都是采用三角測(cè)距的原理。紅外發(fā)射器按照一定角度發(fā)射紅外光束,遇到物體之后,光會(huì)反向回來(lái),檢測(cè)到反射光之后,通過(guò)結(jié)構(gòu)上的幾何三角關(guān)系,就可以計(jì)算出物體距離D。
當(dāng)D的距離足夠近的時(shí)候,上圖中L值會(huì)相當(dāng)大,如果超過(guò)CCD的探測(cè)范圍,這時(shí),雖然物體很近,但是傳感器反而看不到了。當(dāng)物體距離D很大時(shí),L值就會(huì)很小,測(cè)量量精度會(huì)變差。因此,常見(jiàn)的紅外傳感器 測(cè)量距離都比較近,小于超聲波,同時(shí)遠(yuǎn)距離測(cè)量也有最小距離的限制。另外,對(duì)于透明的或者近似黑體的物體,紅外傳感器是無(wú)法檢測(cè)距離的。但相對(duì)于超聲來(lái)說(shuō),紅外傳感器具有更高的帶寬。
激光
常見(jiàn)的激光雷達(dá)是基于飛行時(shí)間的(ToF,time of flight),通過(guò)測(cè)量激光的飛行時(shí)間來(lái)進(jìn)行測(cè)距d=ct/2,類似于前面提到的超聲測(cè)距公式,其中d是距離,c是光速,t是從發(fā)射到接收的時(shí)間間隔。激光雷達(dá)包括發(fā)射器和接收器 ,發(fā)射器用激光照射目標(biāo),接收器接收反向回的光波。機(jī)械式的激光雷達(dá)包括一個(gè)帶有鏡子的機(jī)械機(jī)構(gòu),鏡子的旋轉(zhuǎn)使得光束可以覆蓋 一個(gè)平面,這樣我們就可以測(cè)量到一個(gè)平面上的距離信息。
對(duì)飛行時(shí)間的測(cè)量也有不同的方法,比如使用脈沖激光,然后類似前面講的超聲方案,直接測(cè)量占用的時(shí)間,但因?yàn)楣馑龠h(yuǎn)高于聲速,需要非常高精度的時(shí)間測(cè)量元件,所以非常昂貴;另一種發(fā)射調(diào)頻后的連續(xù)激光波,通過(guò)測(cè)量接收到的反射波之間的差頻來(lái)測(cè)量時(shí)間。
比較簡(jiǎn)單的方案是測(cè)量反射光的相移,傳感器以已知的頻率發(fā)射一定幅度的調(diào)制光,并測(cè)量發(fā)射和反向信號(hào)之間的相移,如上圖一。調(diào)制信號(hào)的波長(zhǎng)為lamda=c/f,其中c是光速,f是調(diào)制頻率,測(cè)量到發(fā)射和反射光束之間的相移差theta之后,距離可由lamda*theta/4pi計(jì)算得到,如上圖二。
激光雷達(dá)的測(cè)量距離可以達(dá)到幾十米甚至上百米,角度分辨率高,通??梢赃_(dá)到零點(diǎn)幾度,測(cè)距的精度也高。但測(cè)量距離的置信度會(huì)反比于接收信號(hào)幅度的平方,因此,黑體或者遠(yuǎn)距離的物體距離測(cè)量不會(huì)像光亮的、近距離的物體那么好的估計(jì)。并且,對(duì)于透明材料,比如玻璃,激光雷達(dá)就無(wú)能為力了。還有,由于結(jié)構(gòu)的復(fù)雜、器件成本高,激光雷達(dá)的成本也很高。
一些低端的激光雷達(dá)會(huì)采用三角測(cè)距的方案進(jìn)行測(cè)距。但這時(shí)它們的量程會(huì)受到限制,一般幾米以內(nèi),并且精度相對(duì)低一些,但用于室內(nèi)低速環(huán)境的SLAM或者在室外環(huán)境只用于避障的話,效果還是不錯(cuò)的。
視覺(jué)
常用的計(jì)算機(jī)視覺(jué)方案也有很多種, 比如雙目視覺(jué),基于TOF的深度相機(jī),基于結(jié)構(gòu)光的深度相機(jī)等。深度相機(jī)可以同時(shí)獲得RGB圖和深度圖,不管是基于TOF還是結(jié)構(gòu)光,在室外強(qiáng)光環(huán)境下效果都并不太理想,因?yàn)樗鼈兌际切枰鲃?dòng)發(fā)光的。
像基于結(jié)構(gòu)光的深度相機(jī),發(fā)射出的光會(huì)生成相對(duì)隨機(jī)但又固定的斑點(diǎn)圖樣,這些光斑打在物體上后,因?yàn)榕c攝像頭距離不同,被攝像頭捕捉到的位置也不相同,之后先計(jì)算拍到的圖的斑點(diǎn)與標(biāo)定的標(biāo)準(zhǔn)圖案在不同位置的偏移,利用攝像頭位置、傳感器大小等參數(shù)就可以計(jì)算出物體與攝像頭的距離。而我們目前的E巡機(jī)器人主要是工作在室外環(huán)境,主動(dòng)光源會(huì)受到太陽(yáng)光等條件的很大影響,所以雙目視覺(jué)這種被動(dòng)視覺(jué)方案更適合,因此我們采用的視覺(jué)方案是基于雙目視覺(jué)的。
雙目視覺(jué)的測(cè)距本質(zhì)上也是三角測(cè)距法,由于兩個(gè)攝像頭的位置不同,就像我們?nèi)说膬芍谎劬σ粯?,看到的物體不一樣。兩個(gè)攝像頭看到的同一個(gè)點(diǎn)P,在成像的時(shí)候會(huì)有不同的像素位置,此時(shí)通過(guò)三角測(cè)距就可以測(cè)出這個(gè)點(diǎn)的距離。與結(jié)構(gòu)光方法不同的是,結(jié)構(gòu)光計(jì)算的點(diǎn)是主動(dòng)發(fā)出的、已知確定的,而雙目算法計(jì)算的點(diǎn)一般是利用算法抓取到的圖像特征,如SIFT或SURF特征等,這樣通過(guò)特征計(jì)算出來(lái)的是稀疏圖。
要做良好的避障,稀疏圖還是不太夠的,我們需要獲得的是稠密的點(diǎn)云圖,整個(gè)場(chǎng)景的深度信息。稠密匹配的算法大致可以分為兩類,局部算法和全局算法。局部算法使用像素局部的信息來(lái)計(jì)算其深度,而全局算法采用圖像中的所有信息進(jìn)行計(jì)算。一般來(lái)說(shuō),局部算法的速度更快,但全局算法的精度更高。
這兩類各有很多種不同方式的具體算法實(shí)現(xiàn)。能過(guò)它們的輸出我們可以估算出整個(gè)場(chǎng)景中的深度信息,這個(gè)深度信息可以幫助我們尋找地圖場(chǎng)景中的可行走區(qū)域以及障礙物。整個(gè)的輸出類似于激光雷達(dá)輸出的3D點(diǎn)云圖,但是相比來(lái)講得到信息會(huì)更豐富,視覺(jué)同激光相比優(yōu)點(diǎn)是價(jià)格低很多,缺點(diǎn)也比較明顯,測(cè)量精度要差 一些,對(duì)計(jì)算能力的要求也高很多。當(dāng)然,這個(gè)精度差是相對(duì)的,在實(shí)用的過(guò)程中是完全足夠的,并且我們目前的算法在我們的平臺(tái)NVIDIA TK1和TX1上是可以做到實(shí)時(shí)運(yùn)行。
KITTI采集的圖
實(shí)際輸出的深度圖,不同的顏色代表不同的距離
在實(shí)際應(yīng)用的過(guò)程中,我們從攝像頭讀取到的是連續(xù)的視頻幀流,我們還可以通過(guò)這些幀來(lái)估計(jì)場(chǎng)景中 目標(biāo)物體的運(yùn)動(dòng),給它們建立運(yùn)動(dòng)模型,估計(jì)和預(yù)測(cè)它們的運(yùn)動(dòng)方向、運(yùn)動(dòng)速度,這對(duì)我們實(shí)際行走、避障規(guī)劃是很有用的。
以上幾種是最常見(jiàn)的幾種傳感器 ,各有其優(yōu)點(diǎn)和缺點(diǎn),在真正實(shí)際應(yīng)用的過(guò)程中,一般是綜合配置使用多種不同的傳感器 ,以最大化保證在各種不同的應(yīng)用和環(huán)境條件下,機(jī)器人都能正確感知到障礙物信息。我們公司的E巡機(jī)器人的避障方案就是以雙目視覺(jué)為主,再輔助以多種其他傳感器,保證機(jī)器人周邊360度空間立體范圍內(nèi)的障礙物都能被有效偵測(cè)到,保證機(jī)器人行走的安全性。
避障常用算法原理
在講避障算法之前,我們假定機(jī)器人已經(jīng)有了一個(gè)導(dǎo)航規(guī)劃算法對(duì)自己的運(yùn)動(dòng)進(jìn)行規(guī)劃,并按照規(guī)劃的路徑行走。避障算法的任務(wù)就是在機(jī)器人執(zhí)行正常行走任務(wù)的時(shí)候,由于傳感器的輸入感知到了障礙物的存在,實(shí)時(shí)地更新目標(biāo)軌跡,繞過(guò)障礙物。
Bug算法知乎用戶無(wú)方表示
Bug算法應(yīng)該是最簡(jiǎn)單的一種避障算法了,它的基本思想是在發(fā)現(xiàn)障礙后,圍著檢測(cè)到的障礙物輪廓行走,從而繞開(kāi)它。Bug算法目前有很多變種, 比如Bug1算法,機(jī)器人首先完全地圍繞物體,然后從距目標(biāo)最短距離的點(diǎn)離開(kāi)。Bug1算法的效率很低,但可以保證機(jī)器人達(dá)到目標(biāo)。
Bug1算法示例
改進(jìn)后的Bug2算法中,機(jī)器人開(kāi)始時(shí)會(huì)跟蹤物體的輪廓,但不會(huì)完全圍繞物體一圈,當(dāng)機(jī)器人可以直接移動(dòng)至目標(biāo)時(shí),就可以直接從障礙分離,這樣可以達(dá)到比較短的機(jī)器人行走總路徑。
Bug2算法示例
除此之外,Bug算法還有很多其他的變種, 比如正切Bug算法等等。在許多簡(jiǎn)單的場(chǎng)景中,Bug算法是實(shí)現(xiàn)起來(lái)比較容易和方便的,但是它們并沒(méi)有考慮到機(jī)器人的動(dòng)力學(xué)等限制,因此在更復(fù)雜的實(shí)際環(huán)境中就不是那么可靠好用了。
勢(shì)場(chǎng)法(PFM)
實(shí)際上,勢(shì)場(chǎng)法不僅僅可以用來(lái)避障,還可以用來(lái)進(jìn)行路徑的規(guī)劃。勢(shì)場(chǎng)法把機(jī)器人處理在勢(shì)場(chǎng)下的 一個(gè)點(diǎn),隨著勢(shì)場(chǎng)而移動(dòng),目標(biāo)表現(xiàn)為低谷值,即對(duì)機(jī)器人的吸引力,而障礙物扮演的勢(shì)場(chǎng)中的一個(gè)高峰,即斥力,所有這些力迭加于機(jī)器人身上,平滑地引導(dǎo)機(jī)器人走向目標(biāo),同時(shí)避免碰撞已知的障礙物。當(dāng)機(jī)器人移動(dòng)過(guò)程中檢測(cè)新的障礙物,則需要更新勢(shì)場(chǎng)并重新規(guī)劃。
上面這個(gè)圖是勢(shì)場(chǎng)比較典型的示例圖,最上的圖a左上角是出發(fā)點(diǎn),右下角是目標(biāo)點(diǎn),中間三個(gè)方塊是障礙物。中間的圖b就是等勢(shì)位圖,圖中的每條連續(xù)的線就代表了一個(gè)等勢(shì)位的一條線,然后虛線表示的在整個(gè)勢(shì)場(chǎng)里面所規(guī)劃出來(lái)的一條路徑,我們的機(jī)器人是沿著勢(shì)場(chǎng)所指向的那個(gè)方向一直行走,可以看見(jiàn)它會(huì)繞過(guò)這個(gè)比較高的障礙物。
最下面的圖,即我們整個(gè)目標(biāo)的吸引力還有我們所有障礙物產(chǎn)生的斥力最終形成的一個(gè)勢(shì)場(chǎng)效果圖,可以看到機(jī)器人從左上角的出發(fā)點(diǎn)出發(fā),一路沿著勢(shì)場(chǎng)下降的方向達(dá)到最終的目標(biāo)點(diǎn),而每個(gè)障礙物勢(shì)場(chǎng)表現(xiàn)出在很高的平臺(tái),所以,它規(guī)劃出來(lái)的路徑是不會(huì)從這個(gè)障礙物上面走的。
一種擴(kuò)展的方法在基本的勢(shì)場(chǎng)上附加了了另外兩個(gè)勢(shì)場(chǎng):轉(zhuǎn)運(yùn)勢(shì)場(chǎng)和任務(wù)勢(shì)場(chǎng)。它們額外考慮了由于機(jī)器人本身運(yùn)動(dòng)方向、運(yùn)動(dòng)速度等狀態(tài)和障礙物之間的相互影響。
轉(zhuǎn)動(dòng)勢(shì)場(chǎng)考慮了障礙與機(jī)器人的相對(duì)方位,當(dāng)機(jī)器人朝著障礙物行走時(shí),增加斥力, 而當(dāng)平行于物體行走時(shí),因?yàn)楹苊黠@并不會(huì)撞到障礙物,則減小斥力。任務(wù)勢(shì)場(chǎng)則排除了那些根據(jù)當(dāng)前機(jī)器人速度不會(huì)對(duì)近期勢(shì)能造成影響的障礙,因此允許規(guī)劃出 一條更為平滑的軌跡。
另外還有諧波勢(shì)場(chǎng)法等其他改進(jìn)方法。勢(shì)場(chǎng)法在理論上有諸多局限性, 比如局部最小點(diǎn)問(wèn)題,或者震蕩性的問(wèn)題,但實(shí)際應(yīng)用過(guò)程中效果還是不錯(cuò)的,實(shí)現(xiàn)起來(lái)也比較容易。
向量場(chǎng)直方圖(VFH)
它執(zhí)行過(guò)程中針對(duì)移動(dòng)機(jī)器人當(dāng)前周邊環(huán)境創(chuàng)建了一個(gè)基于極坐標(biāo)表示的局部地圖,這個(gè)局部使用柵格圖的表示方法,會(huì)被最近的一些傳感器數(shù)據(jù)所更新。VFH算法產(chǎn)生的極坐標(biāo)直方圖如圖所示:
圖中x軸是以機(jī)器人為中心感知到的障礙物的角度,y軸表示在該方向存在障礙物的概率大小p。實(shí)際應(yīng)用的過(guò)程中會(huì)根據(jù)這個(gè)直方圖首先辨識(shí)出允許機(jī)器人通過(guò)的足夠大的所有空隙,然后對(duì)所有這些空隙計(jì)算其代價(jià)函數(shù),最終選擇具有最低代價(jià)函數(shù)的通路通過(guò)。
代價(jià)函數(shù)受三個(gè)因素影響: 目標(biāo)方向、機(jī)器人當(dāng)前方向、之前選擇的方向,最終生成的代價(jià)是這三個(gè)因素的加權(quán)值,通過(guò)調(diào)節(jié)不同的權(quán)重可以調(diào)整機(jī)器人的選擇偏好。VFH算法也有其他的擴(kuò)展和改進(jìn),比如在VFH+算法中,就考慮了機(jī)器人運(yùn)動(dòng)學(xué)的限制。由于實(shí)際底層運(yùn)動(dòng)結(jié)構(gòu)的不同,機(jī)器的實(shí)際運(yùn)動(dòng)能力是受限的,比如汽車結(jié)構(gòu),就不能隨心所欲地原地轉(zhuǎn)向等。VFH+算法會(huì)考慮障礙物對(duì)機(jī)器人實(shí)際運(yùn)動(dòng)能力下軌跡的阻擋效應(yīng),屏蔽掉那些雖然沒(méi)有被障礙物占據(jù)但由于其阻擋實(shí)際無(wú)法達(dá)到的運(yùn)動(dòng)軌跡。我們的E巡機(jī)器人采用的是兩輪差動(dòng)驅(qū)動(dòng)的運(yùn)動(dòng)形式,運(yùn)動(dòng)非常靈活,實(shí)際應(yīng)用較少受到這些因素的影響。
具體可以看 一下這個(gè)圖示:
類似這樣傳統(tǒng)的避障方法還有很多,除此之外,還有許多其他的智能避障技術(shù),比如神經(jīng)網(wǎng)絡(luò)、模糊邏輯等。
神經(jīng)網(wǎng)絡(luò)方法對(duì)機(jī)器人從初始位置到目標(biāo)位置的整個(gè)行走路徑進(jìn)行訓(xùn)練建模,應(yīng)用的時(shí)候,神經(jīng)網(wǎng)絡(luò)的輸 入為之前機(jī)器人的位姿和速度以及傳感器的輸 入,輸出期望的下一目標(biāo)或運(yùn)動(dòng)方向。
模糊邏輯方法核心是模糊控制器,需要將專家的知識(shí)或操作人員的經(jīng)驗(yàn)寫(xiě)成多條模糊邏輯語(yǔ)句,以此控制機(jī)器人的避障過(guò)程。 比如這樣的模糊邏輯:第一條,若右前方較遠(yuǎn)處檢測(cè)到障礙物,則稍向左轉(zhuǎn);第 二條,若右前方較近處檢測(cè)到障礙物,則減速并向左轉(zhuǎn)更多角度等。
特別推薦
- 利用自動(dòng)化技術(shù)賦能中國(guó)基礎(chǔ)設(shè)施現(xiàn)代化
- 三極管電路輸入電壓阻抗
- 晶振怎么用,你真的知道嗎?
- 康佳特推出搭載AMD 銳龍嵌入式 8000系列的COM Express緊湊型模塊
- 村田推出3225尺寸車載PoC電感器LQW32FT_8H系列
- 思特威推出超星光級(jí)系列4MP圖像傳感器SC485SL
- HOLTEK新推出HT32F59045脈搏血氧儀MCU
技術(shù)文章更多>>
- “扒開(kāi)”超級(jí)電容的“外衣”,看看超級(jí)電容“超級(jí)”在哪兒
- DigiKey 誠(chéng)邀各位參會(huì)者蒞臨SPS 2024?展會(huì)參觀交流,體驗(yàn)最新自動(dòng)化產(chǎn)品
- 提前圍觀第104屆中國(guó)電子展高端元器件展區(qū)
- 高性能碳化硅隔離柵極驅(qū)動(dòng)器如何選型,一文告訴您
- 貿(mào)澤電子新品推薦:2024年第三季度推出將近7000個(gè)新物料
技術(shù)白皮書(shū)下載更多>>
- 車規(guī)與基于V2X的車輛協(xié)同主動(dòng)避撞技術(shù)展望
- 數(shù)字隔離助力新能源汽車安全隔離的新挑戰(zhàn)
- 汽車模塊拋負(fù)載的解決方案
- 車用連接器的安全創(chuàng)新應(yīng)用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門(mén)搜索
濾波電感
濾波器
路由器設(shè)置
鋁電解電容
鋁殼電阻
邏輯IC
馬達(dá)控制
麥克風(fēng)
脈沖變壓器
鉚接設(shè)備
夢(mèng)想電子
模擬鎖相環(huán)
耐壓測(cè)試儀
逆變器
逆導(dǎo)可控硅
鎳鎘電池
鎳氫電池
紐扣電池
歐勝
耦合技術(shù)
排電阻
排母連接器
排針連接器
片狀電感
偏光片
偏轉(zhuǎn)線圈
頻率測(cè)量?jī)x
頻率器件
頻譜測(cè)試儀
平板電腦