機器人/真實世界感測器
本節涵蓋感測器缺陷和這些元件在真實世界中的行為主題。
根本不存在“距離感測器”。那些通常被稱為“距離感測器”或類似名稱的元件,它們測量某些東西並從中提取距離資訊。這種提取在特定情況下效果很好,但在許多其他情況下毫無價值。成功測量距離的關鍵是確切地瞭解你的感測器測量什麼以及外部因素如何影響測量結果。這並不意味著你只需要知道感測器的精度,而是你需要知道使用了什麼物理原理,以及物理定律對此原理說了什麼。
我將介紹一些最常用的感測器以及適用於它們的物理定律。我不會深入解釋物理學,因為有更好的資料來源(例如維基物理學書籍),只是足以讓你瞭解你可能遇到的問題以及在哪裡尋找解決方案。
這種型別的感測器檢測距離最遠幾釐米的物體。這些感測器非常簡單。它們由一個光源組成,通常是一個紅外二極體,其訊號可以被調製,以及一個光檢測器,它可以像一個光敏二極體或電晶體一樣簡單,帶有放大電路,或者是一個更復雜的積體電路,包括濾波器和 TTL 級別輸出。
這些感測器透過檢測發射光的反射來工作。檢測到物體的距離取決於物體的許多特性
- 反射率/顏色:物體反射紅外光的程度如何?每個物體都有一個顏色。綠色物體意味著它反射光波長,我們將其解釋為綠色。這可能是一個相當大的範圍。紅外也是一種顏色。與任何其他顏色一樣,有些物體反射紅外,而另一些物體吸收紅外。
- 表面光滑度:非常光滑的表面(如鏡子)比粗糙表面反射的光更多。(例如,檯球的黑球照片通常會顯示一個白色的斑點,這是由 w:鏡面反射 引起的)。
- 角度:表面偏離感測器的角度越大,反射到感測器之外的光就越多。
- 光源:其他光源,如燈泡或太陽,也會發出紅外光。尤其是太陽,它可能會阻止紅外感測器執行。
中距離感測器比短距離感測器稍微複雜一些。這些感測器由一個發出紅外光的二極體組成,其訊號被調製,接收器有一個透鏡將反射光聚焦到一個光敏條帶上。將感測器前後移動到物體方向會使反射光束沿著光敏條帶移動。條帶的電阻取決於光照射條帶的位置。
它的範圍與短距離感測器有相同的限制因素。
遠距離感測器使用雷射脈衝從發射器到物體再返回所需的時間。測量此飛行時間有幾種方法,但大多數方法都涉及將發射的和接收的光脈衝進行相關。透過比較這兩個資料的相位,可以提取非常精確的時間值。這些感測器可以在很寬的範圍內執行,通常在幾釐米到幾公里之間。
它的範圍也受到與先前紅外感測器相同的方式限制。霧、煙和其他空氣中的顆粒也會限制範圍。
機器人中使用的攝像頭通常是圍繞 影像感測器 構建的。這些攝像頭對紅外光敏感,並且通常在鏡頭前有一個紅外濾鏡。廉價的網路攝像頭可能不包含這種濾鏡,這使得它們對陽光非常敏感。
這些感測器由(至少)兩個安裝在一定距離的攝像頭組成。
這很少使用,因為解決 對應問題 很困難。
另請參閱 機器人:感測器:計算機視覺。
聲音本質上是空氣中的振動和壓強差。這些振動按頻率分為三組。第一組被稱為次聲,頻率低於 20 Hz。第二組被稱為超聲,頻率高於 20 kHz,在空氣中上限為 2 MHz,在水中上限為 30 MHz。最後一組是通常所說的聲音。這組範圍在 20 Hz 到 20 kHz 之間,可以聽到。雖然只有新生兒才能真正聽到高達 20 kHz 的所有頻率。你越老,能聽到的頻率就越少。
大多數感測器使用超聲波,通常在 40 kHz 左右。這種訊號聽不見,但仍然易於使用(產生、檢測等)。
如果聲源和接收器相對於彼此靜止,則接收器將聽到與聲源發射的相同的頻率。但是,如果它們中的一個或兩者相對於彼此移動,則接收器將檢測到不同的頻率。這種頻率變化稱為 多普勒效應。大多數人從經過的警車或救護車的警笛聲中瞭解這種效應。當它們經過你身邊時,你會聽到一種聲音,當它們遠離你時,你會聽到另一種稍微不同的聲音。
計算接收器聽到的頻率很容易
其中
- = 接收器聽到的頻率
- = 聲源發出的頻率
- = 聲速
- = 接收器的速度
- = 聲源的速度
聲速取決於它傳播的介質及其溫度。對於空氣,在 0°C 時大約為 330m/s。當然,大多數情況下溫度會比這更高。計算實際速度相當容易
其中
- = 當前溫度下的實際速度。
- = 0°C 時的聲速:330m/s。
- = 當前溫度,單位為開爾文。
- = 273,15 K(這是 0°C 的開爾文溫度)
這些感測器非常簡單。理論上是這樣。實際上,這些感測器可能很麻煩。在本節中,我將介紹在嘗試使它們工作時可能會遇到的問題。
超聲波距離感測器由 3 個主要部分組成:發射器、接收器和計時器。為了測量距離,計時器觸發發射器,發射器發射一系列脈衝,然後計時器等待接收器檢測到脈衝的反射並停止計時器。測得的時間除以 2,再乘以聲速,結果是感測器和前方物體之間的距離。發射器以載波頻率傳送脈衝流。人類能聽到的最高頻率約為 20 kHz。為了避免不斷的聲音讓人討厭,選擇更高的頻率——40 kHz 是一個常見的頻率。
接收器在接收到特定頻率的訊號時會觸發。這並不一定就是發射器傳送的訊號。如果使用多個具有相同載波頻率的超聲波感測器,它們可以檢測到彼此的訊號。
聲音不是直線傳播,而是以三維擴充套件波的形式傳播。當波遇到物體時,部分波會反彈並以相反方向的三維擴充套件波的形式再次傳播。這種波很容易在消失之前多次反彈。因此,您很可能接收到傳播軌跡遠大於簡單地從感測器前方的物體往返的脈衝。雖然可以透過讓感測器在開始下一次測量之前等待一段時間來解決這個問題的一部分,但其他情況可能會產生難以糾正的錯誤測量值。例如,穿過門時可能會失敗,因為感測器發射的脈衝從牆壁反射回感測器,從而顯示感測器前方存在物體。一種糾正方法是使用另一個感測器,例如 IR 距離感測器,來檢視是否真的存在物體。但是,這種解決方案也會帶來另一個問題:應該相信哪個感測器? 3 個感測器允許您根據多數結果進行判斷,但構建和連線此類系統會變得非常複雜,更不用說它對功耗的影響了。
計算聲納脈衝距離的公式如下:
343 m/s 是聲速,我們需要將時間除以 2,因為聲音是出去並返回的。
聲納感測器廣泛可用,價格相對便宜,從 15 美元到 40 美元不等,具體取決於所需的範圍。平均而言,中檔聲納感測器的最大範圍在 4 到 6 米之間。與紅外或雷射感測器不同,聲納感測器也有最小感知距離。這是因為距離測量基於聲速,在非常短的範圍內,聲音進出返回的速度比電路能夠響應的速度快。此最小距離因感測器而異,但通常在 2 到 5 釐米左右。同樣與紅外感測器不同,聲納感測器沒有完美的“圓錐形”視野。由於聲音作為三維壓力波傳播,因此感測器實際上有一個類似於圍繞曲線包裹的 sinc 函式的範圍。
聲納感測器在大型區域中非常適合防撞,但它們也有一些侷限性。由於聲音作為三維壓力波傳播併產生回聲,因此您的機器人可能會看到實際上不在其路徑上的東西。例如,在有角度的牆壁附近,聲波可能會在返回聲納接收器之前多次反彈。這使得機器人難以知道哪個回聲實際上是到最近障礙物的正確距離。
與之類似的是多個聲納感測器在同一區域執行的問題。如果附近聲納感測器的頻率過於相似,它們可能會導致錯誤讀數,因為感測器除了頻率之外沒有其他方法來區分它發出的脈衝和來自其他感測器發出的脈衝。
另一個常見問題是不同材料的吸聲率和反射率之間的差異。如果您向一塊布覆蓋的牆壁(例如隔間)發射聲納脈衝,則該布很可能會吸收大量的聲能,並且機器人根本無法看到該牆壁。另一方面,具有很高聲反射率的地板可能會被登記為障礙物,而實際上它是一個清晰的平面。
這些感測器用於測量機器人相對於磁北的方位。重要的是要記住,磁北不完全等於地理北。它們相差幾度。
地球的磁場非常弱。這意味著這些感測器在其他磁場附近無法正常工作。例如,揚聲器會干擾讀數。如果您使用這些感測器,最好將它們儘可能遠離電機安裝。雖然您無法遮蔽它們而不會使它們失效,但注意安裝位置可以顯著提高可靠性。
- (這些“探測器”如何檢測石膏板後面的牆壁中的木材?)
- 感測器維基 http://sensorwiki.org/
- 超聲波
- 機器人感測器
- "從 x86 遷移到 PowerPC,第 9 部分:感測器、感測器、感測器!" 建議為所有感測器使用光耦器進行隔離。