感知系統(tǒng)是機器人能夠?qū)崿F(xiàn)自主化的必須部分。這一章,將介紹一下移動機器人中所采用的傳感器以及如何從傳感器系統(tǒng)中采集所需要的信號。
根據(jù)傳感器的作用分,一般傳感器分為:
內(nèi)部傳感器(體內(nèi)傳感器):主要測量機器人內(nèi)部系統(tǒng),比如溫度,電機速度,電機載荷,電池電壓等。
外部傳感器(外界傳感器):主要測量外界環(huán)境,比如距離測量,聲音,光線。
根據(jù)傳感器的運行方式,可以分為:
被動式傳感器:傳感器本身不發(fā)出能量,比如CCD,CMOS攝像頭傳感器,靠捕獲外界光線來獲得信息。
主動式傳感器:傳感器會發(fā)出探測信號。比如超聲波,紅外,激光。但是此類傳感器的反射信號會受到很多物質(zhì)的影響,從而影響準(zhǔn)確的信號獲得。同時,信號還狠容易受到干擾,比如相鄰兩個機器人都發(fā)出超聲波,這些信號就會產(chǎn)生干擾。
傳感器一般有以下幾個指標(biāo):
動態(tài)范圍:是指傳感器能檢測的范圍。比如電流傳感器能夠測量1mA-20A的電流,那么這個傳感器的測量范圍就是10log(20/0.001)=43dB.如果傳感器的輸入超出了傳感器的測量范圍,那么傳感器就不會顯示正確的測量值了。比如超聲波傳感器對近距離的物體無法測量。
分辨率:分辨率是指傳感器能測量的最小差異。比如電流傳感器,它的分辨率可能是5mA,也就是說小于5mA的電流差異,它沒法檢測出。當(dāng)然越高分辨率的傳感器價格就越貴。
線性度:這是一個非常重要的指標(biāo)來衡量傳感器輸入和輸出的關(guān)系。
頻率:是指傳感器的采樣速度。比如一個超聲波傳感器的采樣速度為20HZ,也就是說每秒鐘能掃描20次。
下面介紹一下常用的傳感器:
編碼器:主要用于測量電機的旋轉(zhuǎn)角度和速度。任何用電機的地方,都可以用編碼器來作為傳感器來獲得電機的輸出。
電子羅盤:可以檢測機器人與地球南北極之間的角度,從而獲得機器人的朝向。但是精度很低。而且任何磁性物體都會造成羅盤失靈,比如揚聲器。所以要配合其它傳感器,比如編碼器一起使用才能獲得比較好的定位效果。主要有hall-effect和flux-gate兩種:
陀螺儀:又分機械陀螺儀和光電陀螺儀。可以檢測絕對朝向。但是目前價格過高,只在飛機上采用。目前最好的光電陀螺儀能提供100KHz的采樣頻率,同時提供0.0001degress/hr的分辨率。但是價格也是同樣昂貴。
GPS系統(tǒng):這個相比不需要太多的解釋。GPS系統(tǒng)分為標(biāo)準(zhǔn)GPS和差分GPS系統(tǒng)。標(biāo)準(zhǔn)GPS系統(tǒng)能提供15m的誤差定位,而差分GPS系統(tǒng)能提供高達1m內(nèi)誤差的定位。如果再考慮相位差信號的話,最新的GPS設(shè)備能提供精確到10cm的定位坐標(biāo)。怪不得美國人現(xiàn)在的導(dǎo)彈精確度如此之高。
超聲波傳感器:超聲波傳感器是基于TOF原理。首先發(fā)射一組聲波脈沖信號,然后一個積分器就開始計算發(fā)射時間。一個返回信號閥值接著就會被設(shè)定來接受回波信號,這個閥值會隨著時間的增加而減小,因為回波會隨著距離的增加而發(fā)散,從而強度變小。但是在剛發(fā)射信號的時候,返回信號的閥值會被設(shè)定的很高以防止發(fā)射波直接觸發(fā)接受器,但是這樣造成一個問題,就是如果檢測的距離很短,在閥值沒有下降之前,返回信號已經(jīng)到達接收器,這時,接收器會認(rèn)為這個返回信號是剛發(fā)出的信號,從而拒絕接受。超聲波傳感器就會有一個探測盲區(qū),沒法這樣對近距離物體探測。一般超聲波探測器的頻率為40Hz,探測范圍為12c'm-5m,精度為98%-99.1%,分辨率為2cm。同時超聲波是一個20-40度角的面探測,所以可以使用若干個超聲波組成一個超聲波陣列來獲得180度甚至360的探測范圍。 超聲波還有其它幾個缺點,比如交叉感應(yīng),掃描頻率低,尤其是使用超聲波陣列的時候,還有回波衰減,折射等問題。不過對于移動機器人來說,超聲波還是目前最廉價和有效的傳感器。
TOF(time of flight):TOF原理就是 距離=速度×時間,比如聲波傳輸速度是0.3m/ms,如果3m的距離,需要10ms才能到達。然后通過計算這個返回的時間差來確定距離。但是如果是光速的話,光速是0.3m/ns,同樣3m的距離,光只要10ns就到了。這就對檢測元件提出了非常高的要求。這也是激光傳感器價格居高不下的原因
激光傳感器:原理就是一個旋轉(zhuǎn)得反射鏡,將激光光束或者超聲波按一定間隔反射出去,然后根據(jù)旋轉(zhuǎn)得角度和時間差來得到不同角度得距離值。是用很典型得TOF原理。
不過對于激光傳感器而言,有3種檢測方式:
1)使用脈沖激光,按一定間隔發(fā)射激光,然后計算返回時間。這種方法和超聲波一樣,但是激光速度太快,所以對檢測元件要求太高,一般LaserScanner不用這種方式。
2)使用不同頻率得激光,按照一點順序,發(fā)射不同頻率得激光,通過檢測返回光束得頻率來得到距離。
3)相位差。多數(shù)激光傳感器用得是這種方法。通過檢測發(fā)射激光和反射激光得相位差來得到距離。
紅外傳感器:是利用三角測量法。
三角測量法(Triangulation-based):就是把發(fā)射器和接受器按照一定距離安裝,然后與被探測的點形成一個三角形的三個頂點,由于發(fā)射器和接收器的距離已知,發(fā)射角度已知,反射角度也可以被檢測到。因此檢測點到發(fā)射器的距離就可以求出。假設(shè)發(fā)射角度是90度的情況,
D=f(L/x)
L=發(fā)射器和接收器的距離
x=接受波的偏移距離
f()是函數(shù)。
由此可見,D是由1/x決定的,所以用這個測量法可以測得距離非常近的物體,目前最精確可以到1um的分辨率。但是由于D同時也是L的函數(shù),要增加測量距離就必須增大L值。所以不能探測遠距離物體。
但是如果將紅外傳感器和超聲波傳感器同時應(yīng)用于機器人,就能提供全范圍的探測范圍了,超聲波傳感器的盲區(qū)正好可以由紅外傳感器來彌補。
多普勒效應(yīng)傳感器:主要用于探測移動物體的速度。目前戰(zhàn)斗機上用的雷達就是基于這個原理的。主要用于躲避快速移動障埃物。
多普勒原理(Doppler):假設(shè)發(fā)射器以頻率ft發(fā)射波,接收器以頻率fr接受波,發(fā)射器和接收器之間的相對速度為v。
如果發(fā)射器在移動,則
fr=ft/(1+v/c)
如果接收器在移動,則
fr=ft(1+v/c)
通過計算多普勒頻移來得到相對速度v。
f=ft-fr=2*ft*v*cosA/c
f=多普勒頻移
A=發(fā)射波和運動角度差
目前還沒有適合小型移動機器人的相關(guān)傳感器出現(xiàn)。
視覺傳感器:攝像頭都是屬于視覺傳感器,目前200元一個的網(wǎng)絡(luò)攝像頭也都可以用作機器人的視覺傳感器。
轉(zhuǎn)載請注明出處。