當(dāng)前位置: 首頁 > 傳感測量產(chǎn)品 > 工業(yè)傳感器 > 顏色識別傳感器 > 顏色傳感器
發(fā)布日期:2022-05-18 點(diǎn)擊率:127
如果我們希望機(jī)器人巡線時動作更平滑,特別是在線條為曲線時,我們可以采用復(fù)雜狀態(tài)方法,把顏色傳感器的光強(qiáng)度值分為更多的部分,例如可以把5個條件狀態(tài)分為10個。最終,我們找出了更多的條件狀態(tài)讓EV3來管理,超大的交換模塊在EV3界面中變得非常臃腫。這時就應(yīng)該使用比例算法了。
實(shí)現(xiàn)比例算法
只要與別人談?wù)摍C(jī)器人和巡線,總會出現(xiàn)PID這個術(shù)語,它代表比例、積分和微分。但大多數(shù)人們所說的PID程序其實(shí)都是比例算法的程序。對于EV3來說,比例程序已經(jīng)足夠了,一個完整的PID程序?qū)τ谌绱撕唵蔚木幊陶Z言來說有點(diǎn)過分了(但是確定有人在EV3中實(shí)現(xiàn)了PID算法)。
比例算法使用了一點(diǎn)數(shù)學(xué)知識來計(jì)算讓機(jī)器人回到線條上所需的修正量,沒有使用設(shè)定好的功率值來修正機(jī)器人的方向,而是根據(jù)顏色傳感器讀取的光值來計(jì)算方向變化,如果誤差值較小,則機(jī)器人修正量非常小,如果誤差值較大,則修正量也較大。
我們從下表中描述的變量模塊開始講解比例算法。
變量說明
MidRange(中間值)
這是最小和最大光值之間的中間值。如果顏色傳感器已經(jīng)校準(zhǔn),則最小值為0,最大值為100,中間值將是50.
Gain(增益)
Gain變量用于對誤差的修正進(jìn)行微調(diào)。如果機(jī)器人擺動太大,則Gain的值小于1。如果機(jī)器人反應(yīng)不夠快,則可以讓Gain的值稍微高一點(diǎn),加大修正量。
Power(功率)
Power變量決定了機(jī)器人在直線行走時的功率水平,這個值根據(jù)機(jī)器人的設(shè)計(jì)應(yīng)在30 ~ 70間調(diào)整。注意不要把值設(shè)定得太高,否則機(jī)器人可能會飛線。
Error(誤差)
Error變量是從光值中減去MidRange變量計(jì)算得來的,當(dāng)我們對機(jī)器人的電機(jī)功率進(jìn)行修正時,就會用到這個變量。
Correction(修正量)
Correction變量是Error變量與Gain變量的乘積。然后要用它調(diào)整兩個電機(jī)的功率。
這個代碼的邏輯并不難。首先,用顏色傳感器返回的光值減去MidRange(中間值)變量計(jì)算出Error(誤差值)。接下來,用計(jì)算出來的Error(誤差)乘以Gain(增益)計(jì)算出Correction(修正量)。再將Correction(修正量)應(yīng)用于功率值,然后傳遞給電機(jī)模塊,對于電機(jī)B,要用Power(功率)值加上Correction(修正量),而對于電機(jī)C,要用Power(功率)值減去Correction(修正量)。請記住,根據(jù)我們的機(jī)器人設(shè)計(jì)的不同,需要對Power(功率)、Gain(增益)和MidRange(中間值)進(jìn)行一些調(diào)整。
使用兩個顏色傳感器
到目前為止,所有例子都使用了單個顏色傳感器。但是如果我們添加了第二個顏色傳感器,讓兩個傳感器跨在線上,會怎樣呢?盡管樂高頭腦風(fēng)暴套裝中只有一個顏色傳感器(如果需要,我們可以單獨(dú)購買第二個傳感器),但并不妨礙我們使用兩個顏色傳感器。
當(dāng)我們有兩個顏色傳感器時,被安裝在機(jī)器人上時要分開,兩個傳感器之間的距離要比巡線的線條稍寬。如果它們的距離太近,那么機(jī)器人永遠(yuǎn)都不會找到有效的直行狀態(tài);如果它們相距太遠(yuǎn),機(jī)器人需要改變方向時則會過度補(bǔ)償。理想情況下,當(dāng)機(jī)器人在線上居中時,兩個傳感器都不會看到線條,它們應(yīng)該只看到線條旁邊的區(qū)域。下圖顯示了安裝了兩個顏色傳感器的機(jī)器人。
如果要使用前面提到的復(fù)雜狀態(tài)方法,我們只需再添加一個切換模塊,每個顏色傳感器都有一個切換模塊,如果我們把顏色傳感器的讀值分為3段(假定顏色傳感器已經(jīng)校準(zhǔn),傳感器的讀值范圍是0 ~ 100),則每個切換模塊有3個條件,而對于機(jī)器人來說現(xiàn)在共有5個條件,如下表所示。
顏色傳感器
范圍編號
動作
左
0
向左急轉(zhuǎn),降低電機(jī)B的速度。
左
1
略微向左轉(zhuǎn),略微降低電機(jī)B的速度。
左和右
2
保持直行,兩個電機(jī)速度相同。
右
1
略微向右轉(zhuǎn),略微降低電機(jī)C的速度。
右
0
向右急轉(zhuǎn),降低電機(jī)C的速度
機(jī)器人啟動時,兩個顏色傳感器應(yīng)跨在線條兩側(cè)。如果機(jī)器人啟動時,兩個顏色傳感器都看到了黑色,則機(jī)器人會減速,這是因?yàn)榍袚Q模塊會根據(jù)條件減慢兩個電機(jī)的速度,試圖上機(jī)器人同時向兩個方向轉(zhuǎn)動。下圖顯示了雙顏色傳感器的EV3程序示例。
顏色傳感器是大多數(shù)機(jī)器人在比賽場地上導(dǎo)航時最有用的傳感器之一。在一些機(jī)器人比賽中,比賽場地墊上布滿了能被顏色傳感器使用的線條。許多參加比賽的選手都會避開使用它們,只是因?yàn)樵趯W(xué)習(xí)使用它們時遇到了一些困難。但是,不可否認(rèn),那些在比賽中能夠獲勝的選手都很會利用顏色傳感器。所以,學(xué)好、用好顏色傳感器對于機(jī)器人的學(xué)習(xí)與應(yīng)用至關(guān)重要。
推 薦 閱 讀
利用顏色傳感器控制機(jī)器人巡線
學(xué)會校準(zhǔn)顏色傳感器的正確姿勢
如何在巡線和檢測線條應(yīng)用中安裝EV3顏色傳感器
陀螺儀傳感器在機(jī)器人準(zhǔn)確轉(zhuǎn)彎中的應(yīng)用
如何設(shè)計(jì)程序來控制機(jī)器人準(zhǔn)確轉(zhuǎn)彎
差速轉(zhuǎn)向機(jī)器人不同轉(zhuǎn)向方式的轉(zhuǎn)彎計(jì)算
如何做好機(jī)器人準(zhǔn)確轉(zhuǎn)彎中的轉(zhuǎn)向設(shè)計(jì)
機(jī)器人直線移動實(shí)現(xiàn)中容易忽視的3件事
做好這3點(diǎn)來保證機(jī)器人直線移動
如何設(shè)計(jì)程序來控制機(jī)器人直線移動
樂高EV3機(jī)器人設(shè)計(jì)與控制系列往期精彩內(nèi)容
掃碼求關(guān)注
給我好看
米兔機(jī)器人,小米進(jìn)軍STEAM教育領(lǐng)域的一個產(chǎn)品。發(fā)布以來也是深受米粉喜愛。同時在后期也一直在跟進(jìn)發(fā)布相關(guān)配件。那么顏色傳感器就是結(jié)合機(jī)器人使用的一款配件。在官網(wǎng)和相關(guān)網(wǎng)站有很多的介紹資料,就不再次重復(fù)了。我們重點(diǎn)來看對于這個傳感器的拆解,看看他為什么可以識別不同的顏色。
拆開比較簡單,用尖銳的工具按壓尾部白色塊兩邊的橙色點(diǎn),再輕輕拉開即可。
1.00mm厚的黑色鍍金PCB板,密布些芯片和阻容器件。電池單獨(dú)處于尾部,使用1.25mm插座連接主板。
使用了時下流行的type-c接口,方便直接使用手機(jī)數(shù)據(jù)線進(jìn)行充電。充電電流為100mAh,充電時間為2小時。
主芯片使用了 nordic的N, ARMCortes-MO 32bit 內(nèi)核,具備低功耗藍(lán)牙模式, 接收電流13mA,發(fā)射電流10.5mA@0dBm。這個方案用在這個上面算是非常完美了,主芯片的成本在6元以內(nèi)。
電池方面是鋰聚合物電池,容量為200mAh,官方公布的工作時間為10小時。由于電池使用膠水粘在電池倉內(nèi),嘗試了幾次無法拉出,強(qiáng)行拆開會有風(fēng)險(xiǎn),所以電池就如圖看下吧。
那么下面的圖片就是傳感器最重要的器件了,正面就是三個透明燈珠,從上到下分別是RGB燈,灰度二極管,發(fā)光二極管。用一個黑色罩子將三個器件分開,防止相互間干擾。
那么主要的工作原理就這里,大家知道所有顏色都可以通過RGB來組成,同時不同顏色的物體對顏色吸收和反射不一樣。
那么RGB燈就是內(nèi)含三個不同顏色燈絲的燈。在R(紅色)燈絲點(diǎn)亮的時候,灰度二極管感應(yīng)物體的對紅色的反射,在依次點(diǎn)亮G(綠色)B(藍(lán)色)燈絲,這樣就可以獲取到當(dāng)前物體對RGB不同顏色的反射值,就可以分辨出當(dāng)前識別的物體顏色了。這就是最淺顯的原理解釋,當(dāng)然要想做成產(chǎn)品可還有更多的事情要做。
同時,這個傳感器有懸崖檢測的功能,簡單的來說就是發(fā)光二極管發(fā)出燈光,然后灰度二極管感應(yīng)燈光的反射程度來判斷前方是否有障礙物。當(dāng)有物體的時候燈光就會發(fā)射,而沒有物體時候就不會反射。
舉報(bào)/反饋
編者按:本文內(nèi)容來自大道智創(chuàng)CTO邢志偉在雷鋒網(wǎng)(公眾號:雷鋒網(wǎng))硬創(chuàng)公開課的分享,由雷鋒網(wǎng)旗下欄目“新智造”整理。
避障是指移動機(jī)器人在行走過程中,通過傳感器感知到在其規(guī)劃路線上存在靜態(tài)或動態(tài)障礙物時,按照 一定的算法實(shí)時更新路徑,繞過障礙物,最后達(dá)到目標(biāo)點(diǎn)。
避障常用哪些傳感器
不管是要進(jìn)行導(dǎo)航規(guī)劃還是避障,感知周邊環(huán)境信息是第一步。就避障來說,移動機(jī)器人需要通過傳感器 實(shí)時獲取自身周圍障礙物信息,包括尺寸、形狀和位置等信息。避障使用的傳感器多種多樣,各有不同的原理和特點(diǎn),目前常見的主要有視覺傳感器、激光傳感器、紅外傳感器、超聲波傳感器等。下面我簡單介紹一下這幾種傳感器的基本工作原理。
超聲波
超聲波傳感器的基本原理是測量超聲波的飛行時間,通過d=vt/2測量距離,其中d是距離,v是聲速,t是 飛行時間。由于超聲波在空氣中的速度與溫濕度有關(guān),在比較精確的測量中,需把溫濕度的變化和其它因素考慮進(jìn)去。
上面這個圖就是超聲波傳感器信號的一個示意。通過壓電或靜電變送器產(chǎn)生一個頻率在幾十kHz的超聲波脈沖組成波包,系統(tǒng)檢測高于某閾值的反向聲波,檢測到后使用測量到的飛行時間計(jì)算距離。超聲波傳感器一般作用距離較短,普通的有效探測距離都在幾米,但是會有一個幾十毫米左右的最小探測盲區(qū)。由于超聲傳感器的成本低、實(shí)現(xiàn)方法簡單、技術(shù)成熟,是移動機(jī)器人中常用的傳感器。超聲波傳感器也有一些缺點(diǎn),首先看下面這個圖。
因?yàn)槁曇羰清F形傳播的,所以我們實(shí)際測到的距離并不是 一個點(diǎn),而是某個錐形角度范圍內(nèi)最近物體的距離。
另外,超聲波的測量周期較長,比如3米左右的物體,聲波傳輸這么遠(yuǎn)的距離需要約20ms的時間。再者,不同材料對聲波的反射或者吸引是不相同的,還有多個超聲傳感器之間有可能會互相干擾,這都是實(shí)際應(yīng)用的過程中需要考慮的。
紅外
一般的紅外測距都是采用三角測距的原理。紅外發(fā)射器按照一定角度發(fā)射紅外光束,遇到物體之后,光會反向回來,檢測到反射光之后,通過結(jié)構(gòu)上的幾何三角關(guān)系,就可以計(jì)算出物體距離D。
當(dāng)D的距離足夠近的時候,上圖中L值會相當(dāng)大,如果超過CCD的探測范圍,這時,雖然物體很近,但是傳感器反而看不到了。當(dāng)物體距離D很大時,L值就會很小,測量量精度會變差。因此,常見的紅外傳感器 測量距離都比較近,小于超聲波,同時遠(yuǎn)距離測量也有最小距離的限制。另外,對于透明的或者近似黑體的物體,紅外傳感器是無法檢測距離的。但相對于超聲來說,紅外傳感器具有更高的帶寬。
激光
常見的激光雷達(dá)是基于飛行時間的(ToF,time of flight),通過測量激光的飛行時間來進(jìn)行測距d=ct/2,類似于前面提到的超聲測距公式,其中d是距離,c是光速,t是從發(fā)射到接收的時間間隔。激光雷達(dá)包括發(fā)射器和接收器 ,發(fā)射器用激光照射目標(biāo),接收器接收反向回的光波。機(jī)械式的激光雷達(dá)包括一個帶有鏡子的機(jī)械機(jī)構(gòu),鏡子的旋轉(zhuǎn)使得光束可以覆蓋 一個平面,這樣我們就可以測量到一個平面上的距離信息。
對飛行時間的測量也有不同的方法,比如使用脈沖激光,然后類似前面講的超聲方案,直接測量占用的時間,但因?yàn)楣馑龠h(yuǎn)高于聲速,需要非常高精度的時間測量元件,所以非常昂貴;另一種發(fā)射調(diào)頻后的連續(xù)激光波,通過測量接收到的反射波之間的差頻來測量時間。
圖一
圖二
比較簡單的方案是測量反射光的相移,傳感器以已知的頻率發(fā)射一定幅度的調(diào)制光,并測量發(fā)射和反向信號之間的相移,如上圖一。調(diào)制信號的波長為lamda=c/f,其中c是光速,f是調(diào)制頻率,測量到發(fā)射和反射光束之間的相移差theta之后,距離可由lamda*theta/4pi計(jì)算得到,如上圖二。
激光雷達(dá)的測量距離可以達(dá)到幾十米甚至上百米,角度分辨率高,通常可以達(dá)到零點(diǎn)幾度,測距的精度也高。但測量距離的置信度會反比于接收信號幅度的平方,因此,黑體或者遠(yuǎn)距離的物體距離測量不會像光亮的、近距離的物體那么好的估計(jì)。并且,對于透明材料,比如玻璃,激光雷達(dá)就無能為力了。還有,由于結(jié)構(gòu)的復(fù)雜、器件成本高,激光雷達(dá)的成本也很高。
?一些低端的激光雷達(dá)會采用三角測距的方案進(jìn)行測距。但這時它們的量程會受到限制,一般幾米以內(nèi),并且精度相對低一些,但用于室內(nèi)低速環(huán)境的SLAM或者在室外環(huán)境只用于避障的話,效果還是不錯的。
視覺
常用的計(jì)算機(jī)視覺方案也有很多種, 比如雙目視覺,基于TOF的深度相機(jī),基于結(jié)構(gòu)光的深度相機(jī)等。深度相機(jī)可以同時獲得RGB圖和深度圖,不管是基于TOF還是結(jié)構(gòu)光,在室外強(qiáng)光環(huán)境下效果都并不太理想,因?yàn)樗鼈兌际切枰鲃影l(fā)光的。像基于結(jié)構(gòu)光的深度相機(jī),發(fā)射出的光會生成相對隨機(jī)但又固定的斑點(diǎn)圖樣,這些光斑打在物體上后,因?yàn)榕c攝像頭距離不同,被攝像頭捕捉到的位置也不相同,之后先計(jì)算拍到的圖的斑點(diǎn)與標(biāo)定的標(biāo)準(zhǔn)圖案在不同位置的偏移,利用攝像頭位置、傳感器大小等參數(shù)就可以計(jì)算出物體與攝像頭的距離。而我們目前的E巡機(jī)器人主要是工作在室外環(huán)境,主動光源會受到太陽光等條件的很大影響,所以雙目視覺這種被動視覺方案更適合,因此我們采用的視覺方案是基于雙目視覺的。
雙目視覺的測距本質(zhì)上也是三角測距法,由于兩個攝像頭的位置不同,就像我們?nèi)说膬芍谎劬σ粯樱吹降奈矬w不一樣。兩個攝像頭看到的同一個點(diǎn)P,在成像的時候會有不同的像素位置,此時通過三角測距就可以測出這個點(diǎn)的距離。與結(jié)構(gòu)光方法不同的是,結(jié)構(gòu)光計(jì)算的點(diǎn)是主動發(fā)出的、已知確定的,而雙目算法計(jì)算的點(diǎn)一般是利用算法抓取到的圖像特征,如SIFT或SURF特征等,這樣通過特征計(jì)算出來的是稀疏圖。
要做良好的避障,稀疏圖還是不太夠的,我們需要獲得的是稠密的點(diǎn)云圖,整個場景的深度信息。稠密匹配的算法大致可以分為兩類,局部算法和全局算法。局部算法使用像素局部的信息來計(jì)算其深度,而全局算法采用圖像中的所有信息進(jìn)行計(jì)算。一般來說,局部算法的速度更快,但全局算法的精度更高。
這兩類各有很多種不同方式的具體算法實(shí)現(xiàn)。能過它們的輸出我們可以估算出整個場景中的深度信息,這個深度信息可以幫助我們尋找地圖場景中的可行走區(qū)域以及障礙物。整個的輸出類似于激光雷達(dá)輸出的3D點(diǎn)云圖,但是相比來講得到信息會更豐富,視覺同激光相比優(yōu)點(diǎn)是價(jià)格低很多,缺點(diǎn)也比較明顯,測量精度要差 一些,對計(jì)算能力的要求也高很多。當(dāng)然,這個精度差是相對的,在實(shí)用的過程中是完全足夠的,并且我們目前的算法在我們的平臺NVIDIA TK1和TX1上是可以做到實(shí)時運(yùn)行。?
KITTI采集的圖
實(shí)際輸出的深度圖,不同的顏色代表不同的距離
在實(shí)際應(yīng)用的過程中,我們從攝像頭讀取到的是連續(xù)的視頻幀流,我們還可以通過這些幀來估計(jì)場景中 目標(biāo)物體的運(yùn)動,給它們建立運(yùn)動模型,估計(jì)和預(yù)測它們的運(yùn)動方向、運(yùn)動速度,這對我們實(shí)際行走、避障規(guī)劃是很有用的。
以上幾種是最常見的幾種傳感器 ,各有其優(yōu)點(diǎn)和缺點(diǎn),在真正實(shí)際應(yīng)用的過程中,一般是綜合配置使用多種不同的傳感器 ,以最大化保證在各種不同的應(yīng)用和環(huán)境條件下,機(jī)器人都能正確感知到障礙物信息。我們公司的E巡機(jī)器人的避障方案就是以雙目視覺為主,再輔助以多種其他傳感器,保證機(jī)器人周邊360度空間立體范圍內(nèi)的障礙物都能被有效偵測到,保證機(jī)器人行走的安全性。
避障常用算法原理
在講避障算法之前,我們假定機(jī)器人已經(jīng)有了一個導(dǎo)航規(guī)劃算法對自己的運(yùn)動進(jìn)行規(guī)劃,并按照規(guī)劃的路徑行走。避障算法的任務(wù)就是在機(jī)器人執(zhí)行正常行走任務(wù)的時候,由于傳感器的輸入感知到了障礙物的存在,實(shí)時地更新目標(biāo)軌跡,繞過障礙物。
Bug算法
Bug算法應(yīng)該是最簡單的一種避障算法了,它的基本思想是在發(fā)現(xiàn)障礙后,圍著檢測到的障礙物輪廓行走,從而繞開它。Bug算法目前有很多變種, 比如Bug1算法,機(jī)器人首先完全地圍繞物體,然后從距目標(biāo)最短距離的點(diǎn)離開。Bug1算法的效率很低,但可以保證機(jī)器人達(dá)到目標(biāo)。
Bug1算法示例
改進(jìn)后的Bug2算法中,機(jī)器人開始時會跟蹤物體的輪廓,但不會完全圍繞物體一圈,當(dāng)機(jī)器人可以直接移動至目標(biāo)時,就可以直接從障礙分離,這樣可以達(dá)到比較短的機(jī)器人行走總路徑。
Bug2算法示例
除此之外,Bug算法還有很多其他的變種, 比如正切Bug算法等等。在許多簡單的場景中,Bug算法是實(shí)現(xiàn)起來比較容易和方便的,但是它們并沒有考慮到機(jī)器人的動力學(xué)等限制,因此在更復(fù)雜的實(shí)際環(huán)境中就不是那么可靠好用了。
勢場法(PFM)
實(shí)際上,勢場法不僅僅可以用來避障,還可以用來進(jìn)行路徑的規(guī)劃。勢場法把機(jī)器人處理在勢場下的 一個點(diǎn),隨著勢場而移動,目標(biāo)表現(xiàn)為低谷值,即對機(jī)器人的吸引力,而障礙物扮演的勢場中的一個高峰,即斥力,所有這些力迭加于機(jī)器人身上,平滑地引導(dǎo)機(jī)器人走向目標(biāo),同時避免碰撞已知的障礙物。當(dāng)機(jī)器人移動過程中檢測新的障礙物,則需要更新勢場并重新規(guī)劃。
上面這個圖是勢場比較典型的示例圖,最上的圖a左上角是出發(fā)點(diǎn),右下角是目標(biāo)點(diǎn),中間三個方塊是障礙物。中間的圖b就是等勢位圖,圖中的每條連續(xù)的線就代表了一個等勢位的一條線,然后虛線表示的在整個勢場里面所規(guī)劃出來的一條路徑,我們的機(jī)器人是沿著勢場所指向的那個方向一直行走,可以看見它會繞過這個比較高的障礙物。最下面的圖,即我們整個目標(biāo)的吸引力還有我們所有障礙物產(chǎn)生的斥力最終形成的一個勢場效果圖,可以看到機(jī)器人從左上角的出發(fā)點(diǎn)出發(fā),一路沿著勢場下降的方向達(dá)到最終的目標(biāo)點(diǎn),而每個障礙物勢場表現(xiàn)出在很高的平臺,所以,它規(guī)劃出來的路徑是不會從這個障礙物上面走的。
一種擴(kuò)展的方法在基本的勢場上附加了了另外兩個勢場:轉(zhuǎn)運(yùn)勢場和任務(wù)勢場。它們額外考慮了由于機(jī)器人本身運(yùn)動方向、運(yùn)動速度等狀態(tài)和障礙物之間的相互影響。
轉(zhuǎn)動勢場考慮了障礙與機(jī)器人的相對方位,當(dāng)機(jī)器人朝著障礙物行走時,增加斥力, 而當(dāng)平行于物體行走時,因?yàn)楹苊黠@并不會撞到障礙物,則減小斥力。任務(wù)勢場則排除了那些根據(jù)當(dāng)前機(jī)器人速度不會對近期勢能造成影響的障礙,因此允許規(guī)劃出 一條更為平滑的軌跡。
另外還有諧波勢場法等其他改進(jìn)方法。勢場法在理論上有諸多局限性, 比如局部最小點(diǎn)問題,或者震蕩性的問題,但實(shí)際應(yīng)用過程中效果還是不錯的,實(shí)現(xiàn)起來也比較容易。
向量場直方圖(VFH)
它執(zhí)行過程中針對移動機(jī)器人當(dāng)前周邊環(huán)境創(chuàng)建了一個基于極坐標(biāo)表示的局部地圖,這個局部使用柵格圖的表示方法,會被最近的一些傳感器數(shù)據(jù)所更新。VFH算法產(chǎn)生的極坐標(biāo)直方圖如圖所示:
圖中x軸是以機(jī)器人為中心感知到的障礙物的角度,y軸表示在該方向存在障礙物的概率大小p。實(shí)際應(yīng)用的過程中會根據(jù)這個直方圖首先辨識出允許機(jī)器人通過的足夠大的所有空隙,然后對所有這些空隙計(jì)算其代價(jià)函數(shù),最終選擇具有最低代價(jià)函數(shù)的通路通過。
代價(jià)函數(shù)受三個因素影響: 目標(biāo)方向、機(jī)器人當(dāng)前方向、之前選擇的方向,最終生成的代價(jià)是這三個因素的加權(quán)值,通過調(diào)節(jié)不同的權(quán)重可以調(diào)整機(jī)器人的選擇偏好。VFH算法也有其他的擴(kuò)展和改進(jìn),比如在VFH+算法中,就考慮了機(jī)器人運(yùn)動學(xué)的限制。由于實(shí)際底層運(yùn)動結(jié)構(gòu)的不同,機(jī)器的實(shí)際運(yùn)動能力是受限的,比如汽車結(jié)構(gòu),就不能隨心所欲地原地轉(zhuǎn)向等。VFH+算法會考慮障礙物對機(jī)器人實(shí)際運(yùn)動能力下軌跡的阻擋效應(yīng),屏蔽掉那些雖然沒有被障礙物占據(jù)但由于其阻擋實(shí)際無法達(dá)到的運(yùn)動軌跡。我們的E巡機(jī)器人采用的是兩輪差動驅(qū)動的運(yùn)動形式,運(yùn)動非常靈活,實(shí)際應(yīng)用較少受到這些因素的影響。
具體可以看 一下這個圖示:
類似這樣傳統(tǒng)的避障方法還有很多,除此之外,還有許多其他的智能避障技術(shù),比如神經(jīng)網(wǎng)絡(luò)、模糊邏輯等。
神經(jīng)網(wǎng)絡(luò)方法對機(jī)器人從初始位置到目標(biāo)位置的整個行走路徑進(jìn)行訓(xùn)練建模,應(yīng)用的時候,神經(jīng)網(wǎng)絡(luò)的輸 入為之前機(jī)器人的位姿和速度以及傳感器的輸 入,輸出期望的下一目標(biāo)或運(yùn)動方向。
模糊邏輯方法核心是模糊控制器,需要將專家的知識或操作人員的經(jīng)驗(yàn)寫成多條模糊邏輯語句,以此控制機(jī)器人的避障過程。 比如這樣的模糊邏輯:第一條,若右前方較遠(yuǎn)處檢測到障礙物,則稍向左轉(zhuǎn);第 二條,若右前方較近處檢測到障礙物,則減速并向左轉(zhuǎn)更多角度;等等。
避障過程中存在哪些問題
傳感器失效
從原理上來講,沒有哪個傳感器是完美的,比方說機(jī)器人面前是一塊完全透明的玻璃,那么采用紅外、激光雷達(dá)或視覺的方案,就可能因?yàn)檫@個光線直接穿過玻璃導(dǎo)致檢測失敗,這時候就需要超聲波這樣的傳感器來進(jìn)行障礙物的偵測。所以我們在真正應(yīng)用的過程中,肯定都需要采取多種傳感器的結(jié)合,對不同傳感器采集到的數(shù)據(jù)進(jìn)行一個交叉驗(yàn)證,以及信息的融合,保證機(jī)器人能夠穩(wěn)定可靠的工作。
除此之外也有其他模式可能導(dǎo)致傳感器失效,比如超聲波測距,一般需要超聲陣列,而陣列之間的傳感器如果同時工作的話,會容易互相產(chǎn)生干擾,傳感器A發(fā)射的光波反射回來被傳感器B接收,導(dǎo)致測量結(jié)果出現(xiàn)錯誤,但是如果按照順序一個個工作,由于超聲波傳感器采樣的周期相對比較長,會減慢整個采集的速度,對實(shí)時避障造成影響,這就要求從硬件的結(jié)構(gòu)到算法都必須設(shè)計(jì)好,盡可能提高采樣速度,減少傳感器之間的串?dāng)_。
還有比如說,機(jī)器人如果需要運(yùn)動的話,一般都需要電機(jī)和驅(qū)動器,它們在工作過程中都會產(chǎn)生電容兼容性的問題,有可能會導(dǎo)致傳感器采集出現(xiàn)錯誤,尤其是模擬的傳感器,所以在實(shí)現(xiàn)過程中要把電機(jī)驅(qū)動器等設(shè)備、傳感器的采集部分,以及電源通信部分保持隔離,保證整個系統(tǒng)是能夠正常工作的。
算法設(shè)計(jì)
在剛剛提到的幾個算法,很多在設(shè)計(jì)的時候都并沒有完善考慮到整個移動機(jī)器人本身運(yùn)動學(xué)模型和動力學(xué)模型,這樣的算法規(guī)劃出來的軌跡有可能在運(yùn)動學(xué)上是實(shí)現(xiàn)不了的,有可能在運(yùn)動學(xué)上可以實(shí)現(xiàn),但是控制起來非常困難,比如剛剛提到的如果一臺機(jī)器人的底盤是汽車的結(jié)構(gòu),就不能隨心所欲地原地轉(zhuǎn)向,或者哪怕這個機(jī)器人是可以原地轉(zhuǎn)向,但是如果一下子做一個很大的機(jī)動的話,我們的整個電機(jī)是執(zhí)行不出來的。所以在設(shè)計(jì)的時候,就要優(yōu)化好機(jī)器人本身的結(jié)構(gòu)和控制,設(shè)計(jì)避障方案的時候,也要考慮到可行性的問題。
然后在整個算法的架構(gòu)設(shè)計(jì)的時候,我們要考慮到為了避讓或者是避免傷人或者傷了機(jī)器人本身,在執(zhí)行工作的時候,避障是優(yōu)先級比較高的任務(wù),甚至是最高的任務(wù),并且自身運(yùn)行的優(yōu)先級最高,對機(jī)器人的控制優(yōu)先級也要最高,同時這個算法實(shí)現(xiàn)起來速度要足夠快,這樣才能滿足我們實(shí)時性的要求。
總之,在我看來,避障在某種程度上可以看做機(jī)器人在自主導(dǎo)航規(guī)劃的一種特殊情況,相比整體全局的導(dǎo)航,它對實(shí)時性和可靠性的要求更高一些,然后,局部性和動態(tài)性是它的一個特點(diǎn),這是我們在設(shè)計(jì)整個機(jī)器人硬件軟件架構(gòu)時一定要注意的。
讀者提問環(huán)節(jié)
多機(jī)協(xié)同的避障策略有哪些?
多機(jī)協(xié)同避障策略在整個SLAM方向上都還是一個在鉆研的熱點(diǎn)領(lǐng)域,單純就避障來說,目前的方案是,當(dāng)有兩個或多個機(jī)器人協(xié)同工作的時候,每個機(jī)器人會在一個局部各自維護(hù)一個相對的動態(tài)地圖,所有機(jī)器人共享一個相對靜態(tài)的地圖,而對于單個機(jī)器人來說,它們會各自維護(hù)一個更加動態(tài)的地圖,這樣當(dāng)兩個機(jī)器人接近一個位置時,它們會將它們維護(hù)的動態(tài)地圖合并起來。
這樣子有什么好處呢,比如視覺只能看到前方一個方向,這時候跟后面機(jī)器人的動態(tài)地圖合并之后,就能看到前后整個局部的動態(tài)信息,然后完成避障。
多機(jī)協(xié)同的關(guān)鍵在于,兩個局部地圖之間的分享,就是它們分別在整個相對靜態(tài)的全局地圖上是有一小塊一個窗口的位置,到這兩個窗口可能融合的話,會把它們?nèi)诤显谝黄穑瑫r去指導(dǎo)兩個機(jī)器人的避障。在具體實(shí)現(xiàn)過程中,也要考慮整個信息傳輸?shù)膯栴},如果是自己本身的局部地圖,由于都是本機(jī)的運(yùn)算,速度一般都比較快,如果是兩個機(jī)器人協(xié)作的話,就要考慮到傳輸?shù)难訒r,以及帶寬的問題。
避障有無標(biāo)準(zhǔn)的測試標(biāo)準(zhǔn)和指標(biāo)?
目前就我所了解業(yè)界并沒有什么統(tǒng)一的測試標(biāo)準(zhǔn)和指標(biāo),我們目前測試的時候會考慮這些指標(biāo),比如在單個障礙物或是多個障礙物,障礙物是靜態(tài)的或動態(tài)的情況下避障效果如何,以及實(shí)際規(guī)劃出的路徑完美度如何,還有這個軌跡是否平滑,符合我們觀感的效果。
當(dāng)然,這個最重要的指標(biāo)我覺得應(yīng)該避障是否失敗就是成功率的問題,要保證這個避障不管是碰到靜態(tài)的或者是動態(tài)的物體,然后那個物體不管是什么材質(zhì),比如說如果是動態(tài)的人,我們穿什么樣的衣服會不會對整個避障功能造成影響,另外就是不同的環(huán)境又會有什么樣的影響,比如光線充足或暗淡。對于避障來說,成功率才是最為關(guān)鍵的。
雷鋒網(wǎng)原創(chuàng)文章,網(wǎng)頁轉(zhuǎn)載請注明來自雷鋒網(wǎng),署名作者和原文鏈接。移動端轉(zhuǎn)載授權(quán),請聯(lián)系雷鋒網(wǎng)公眾號,詳情見轉(zhuǎn)載須知。
機(jī) 器 人 大賽傳感器系統(tǒng)及其選型(循跡、顏色、測距)
這次傳感器選型主要介紹循跡/灰度傳感器、顏色傳感器及各種測距傳感器。
循跡/灰度傳感器
循跡/灰度傳感器(以下簡稱灰度)是通過檢測場地灰度,進(jìn)而識別場地跡線進(jìn)行循跡的傳感器。這是一種主動型傳感器,一個探頭發(fā)射紅外光或可見光,另一個探頭進(jìn)行接收,通過探頭接收到的光線強(qiáng)度來判斷場地反射率,也即灰度。
循跡傳感器有很多產(chǎn)品及類型,最常見也最便宜的是以下兩種:
截屏2020-10-13 09.52.06.png (340.18 KB, 下載次數(shù): 9)
下載附件
保存到相冊
2020-10-13 09:53 上傳
這兩種傳感器均使用TCR T5000紅外探頭,特點(diǎn)是……便宜。具體到使用上,強(qiáng)烈不建議使用左邊的傳感器,因?yàn)樗鼰o法調(diào)節(jié)靈敏度,難以適應(yīng)不同的安裝高度和場地反射率。同時,由于一致性比較差,這款灰度的靈敏度有很大的個體差異,可能同一高度上,這個能準(zhǔn)確分辨黑白線,那個就始終顯示白色,無法實(shí)現(xiàn)多路探測。右邊那款傳感器工作起來性能尚可,靈敏度可調(diào)節(jié),有模擬信號和數(shù)字信號兩種輸出模式,可以適應(yīng)不同的場地條件,缺點(diǎn)是體積較大,分辨率和抗干擾能力不算特別強(qiáng)。
特別注意,任何不可調(diào)節(jié)靈敏度的灰度,都強(qiáng)烈不建議使用!!!
還有一些灰度傳感器,使用了可見光探頭,價(jià)格稍貴。工作時,作為TX的LED燈泡發(fā)出強(qiáng)烈的白光,使得它擁有較好的抗干擾能力和分辨率。這類產(chǎn)品較多,隨便配一款的圖片了:
截屏2020-10-13 09.52.36.png (120.96 KB, 下載次數(shù): 11)
下載附件
保存到相冊
2020-10-13 10:01 上傳
在精度、靈敏度和抗干擾能力上表現(xiàn)最強(qiáng)的,是漫反射激光循跡傳感器。基本原理都是一樣的,但它采用了激光頭作為TX。缺點(diǎn)是體積大并且價(jià)格昂貴,使用不是很多。
截屏2020-10-13 09.52.47.png (671.01 KB, 下載次數(shù): 6)
下載附件
保存到相冊
2020-10-13 09:53 上傳
在正式競賽中,建議使用可調(diào)的可見光灰度傳感器。一般作多路使用,以求較好的循跡效果。一般而言,各個探頭間的距離越短,循跡精度越好。
另外,市面上還有多路循跡傳感器出售。此處建議使用可見光灰度傳感器,并且各個探頭的靈敏度可以單獨(dú)調(diào)節(jié)的型號,比如下圖這款。切記,采用TCR T5000探頭的多路循跡傳感器一般是無法使用的,除非各個探頭有單獨(dú)的靈敏度調(diào)節(jié)功能。
截屏2020-10-13 09.52.56.png (168.43 KB, 下載次數(shù): 11)
下載附件
保存到相冊
2020-10-13 10:00 上傳
最后,給大家講一下循跡傳感器的安裝原則。首先,用于直線循跡的探頭一定要盡量遠(yuǎn)離機(jī)器人的旋轉(zhuǎn)中心,這樣可以讓車身的歪斜在傳感器處的表現(xiàn)更靈敏;另外,相鄰兩個探頭之間的距離最好不要超過地面跡線的寬度;對于偶數(shù)數(shù)目的循跡傳感器,可以通過調(diào)整中間兩個探頭的距離使得中央部分的循跡更精確。例如我自己用的某型自身寬度為10mm的循跡傳感器,采用四路對20mm寬的跡線進(jìn)行循線。中間相鄰兩個探頭距離15mm,其余為10mm,對20mm跡線進(jìn)行循線時,會在偏離中心2.5mm時就產(chǎn)生偏差信號,以使穩(wěn)態(tài)循線更加精確。
順帶一提我自己使用的灰度。我自己使用的是DFRobot出品的“智能灰度傳感器”,價(jià)格30rmb,優(yōu)點(diǎn)是體積小(寬度10mm),并且可以半自動地調(diào)節(jié)靈敏度。缺點(diǎn)是價(jià)格昂貴,靈敏度調(diào)節(jié)范圍稍小。s
截屏2020-10-13 09.53.05.png (111.89 KB, 下載次數(shù): 9)
下載附件
保存到相冊
2020-10-13 10:00 上傳
顏色傳感器
顏色傳感器也是一種主動傳感器,通過對近距離(2cm以內(nèi))的物體發(fā)射白色光線,分別接收檢測反射光中的R、G、B色光光強(qiáng)來判斷物體顏色的。在此推薦使用兩款顏色傳感器,均是我本人使用過的型號。分別是左邊的GY-31/TCS3200顏色傳感器和右邊的GY-33顏色傳感器
截屏2020-10-13 09.53.18.png (453.71 KB, 下載次數(shù): 9)
下載附件
保存到相冊
2020-10-13 09:54 上傳
這兩種傳感器使用起來沒有太大的區(qū)別,主要在于安裝尺寸以及通訊信號。GY-31是一種廉價(jià)的傳感器,尺寸較大,通過若干引腳的高低電平來選擇色光模式,反饋出根據(jù)光強(qiáng)變化的脈沖信號,需要單片機(jī)進(jìn)行信號處理;而GY-33成本較高,通過串口進(jìn)行通訊,體積小、集成度高,可以自動控制傳感器進(jìn)行信號采集,既可以傳出原始信號也可以直接給出顏色判斷。
不建議使用任何沒有遮光罩的顏色傳感器。
測距傳感器
測距傳感器的類型多種多樣,原理主要包括三角測距法和時間測距法。
最常見的是超聲測距傳感器,采用時間測距法,誰用誰知道有多坑,不建議使用。
另外一種可以可靠運(yùn)行的就是采用三角測距的“紅外測距傳感器”,基本全部由夏普公司出品,模擬信號輸出,有多種規(guī)格,使用方便,在武術(shù)擂臺賽上的應(yīng)用極其廣泛。其基本原理是發(fā)射一束紅外激光,然后一個紅外攝像頭對其進(jìn)行追蹤,根據(jù)光點(diǎn)在攝像頭視野中的位置判斷距離,所以這是一種點(diǎn)測距(紅外激光光點(diǎn))式測距傳感器。淘寶有授權(quán)的代理店鋪“SHARP夏普店”進(jìn)行全系列銷售。
截屏2020-10-13 09.53.30.png (456.2 KB, 下載次數(shù): 9)
下載附件
保存到相冊
2020-10-13 09:54 上傳
采用時間測距法的傳感器一般叫作“飛行時間測距傳感器”或“激光測距傳感器模塊”,一般采用IIC總線進(jìn)行通訊,也有多種規(guī)格,但并沒有專賣店,需要自己去尋找合適的型號。大部分為面測距(激光扇面大約25°)。(夏普也有這類產(chǎn)品,不過產(chǎn)品線較窄,也比較昂貴,SHARP夏普店有售)
作者:南京航空航天大學(xué),周子陽
本文未獲得作者授權(quán),不得轉(zhuǎn)載
2019/7/6
相關(guān)文章跳轉(zhuǎn):
機(jī)器人大賽動力系統(tǒng)及其選型(電源篇)
機(jī)器人大賽傳感器系統(tǒng)及其選型(旋轉(zhuǎn)編碼器專篇)
機(jī)器人大賽傳感器系統(tǒng)及其選型(循跡、顏色、測距)
機(jī)器人大賽動力系統(tǒng)及其選型(執(zhí)行機(jī)構(gòu)篇)(上)
機(jī)器人大賽動力系統(tǒng)及其選型(執(zhí)行機(jī)構(gòu)篇)(中)
機(jī)器人大賽動力系統(tǒng)及其選型(執(zhí)行機(jī)構(gòu)篇)(下)
下一篇: PLC、DCS、FCS三大控
上一篇: 電氣控制線路圖控制原