(文章來源:未來工業(yè)互聯(lián)網(wǎng))
移動機器人需要通過傳感器實時獲取周圍的障礙物信息,包括尺寸、形狀和位置信息,來實現(xiàn)避障。避障使用的傳感器有很多種,目前常見的有視覺傳感器、激光傳感器、紅外傳感器、超聲波傳感器等。超聲波傳感器的基本原理是測量超聲波的飛行時間,通過d=vt/2測量距離,其中d是距離,v是聲速,t是飛行時間。
上圖是超聲波傳感器信號的一個示意。通過壓電或靜電變送器產(chǎn)生一個頻率在幾十kHz的超聲波脈沖組成波包,系統(tǒng)檢測高于某閾值的反向聲波,然后使用測量到的飛行時間計算距離。超聲波傳感器一般作用距離較短,普通的有效探測距離幾米,但是會有一個幾十毫米左右的最小探測盲區(qū)。由于超聲傳感器成本低、實現(xiàn)方法簡單、技術(shù)成熟,是移動機器人中常用的傳感器。
紅外傳感器,一般的紅外測距都是采用三角測距的原理。紅外發(fā)射器按照一定角度發(fā)射紅外光束,遇到物體之后,光會反向回來,檢測到反射光之后,通過結(jié)構(gòu)上的幾何三角關(guān)系,就可以計算出物體距離D。
當(dāng)D的距離足夠近的時候,上圖中L值會相當(dāng)大,如果超過CCD的探測范圍,雖然物體很近,傳感器反而看不到了。當(dāng)物體距離D很大時,L值就會很小,測量精度會變差。因此,常見的紅外傳感器的測量距離都比較近,小于超聲波,同時遠距離測量也有最小距離的限制。另外,對于透明的或者近似黑體的物體,紅外傳感器是無法檢測距離的。但相對于超聲來說,紅外傳感器具有更高的帶寬。
激光傳感器,常見的激光雷達是基于飛行時間的(ToF,time of flight),通過測量激光的飛行時間來測距d=ct/2,類似前面提到的超聲測距公式,其中d是距離,c是光速,t是從發(fā)射到接收的時間間隔。
比較簡單的方案是測量反射光的相移,傳感器以已知的頻率發(fā)射一定幅度的調(diào)制光,并測量發(fā)射和反向信號之間的相移,如上圖。調(diào)制信號的波長為lamda=c/f,其中c是光速,f是調(diào)制頻率,測量到發(fā)射和反射光束之間的相移差theta之后,距離可由lamda*theta/4pi計算得到,如上圖。
視覺傳感器,常用的計算機視覺方案也有很多種, 比如雙目視覺,基于TOF的深度相機,基于結(jié)構(gòu)光的深度相機等。
基于結(jié)構(gòu)光的深度相機發(fā)射出的光會生成相對隨機但又固定的斑點圖樣,光斑打在物體上,因為與攝像頭距離不同,被攝像頭捕捉到的位置也不相同。先計算斑點與標(biāo)定的標(biāo)準(zhǔn)圖案在不同位置的偏移,利用攝像頭位置、傳感器大小等參數(shù)就可以計算出物體與攝像頭的距離。
雙目視覺的測距本質(zhì)上也是三角測距法,由于兩個攝像頭的位置不同,就像人的兩只眼睛一樣,看到的物體也不一樣。兩個攝像頭看到的同一個點P,在成像的時候會有不同的像素位置,此時通過三角測距就可以測出這個點的距離。