歡迎您光臨本站 登入註冊首頁

概述

機器人作為一種能代替人工作業的智能機器,有著廣泛的應用前景。其關鍵技術取決於機器人視覺系統設計的精確與否。超聲波感測器以其價格低廉、硬體容易實現等優點,被廣泛用作測距感測器,實現定位及環境建模。越聲波……

機器人作為一種能代替人工作業的智能機器,有著廣泛的應用前景。其關鍵技術取決於機器人視覺系統設計的精確與否。超聲波感測器以其價格低廉、硬體容易實現等優點,被廣泛用作測距感測器,實現定位及環境建模。越聲波測距作為輔助視覺系統與其他視覺系統(如CCD圖象感測器)配合使用,可實現整個視覺功能[7]。

超聲測距原理很簡單,一般採用渡越時間法:即D=CT/2,其中D為機器人與視測物之間的距離,C為聲波在介質中的傳播速度(C=331.4乘以根呈號(1+t/273)m/s,t為攝氏溫度),T為超聲發射到返回的時間間隔。本超聲測距系統共有3對超聲換能器,分別放在智能移動車的上、中、下三個位置上。本系統採用一片89C51單片機對三路超聲信號進行循環採集,並將數據送到數據緩衝區存儲[1,2]。上位機採用PC-586。當上位機需要數據時,向下位機發出申請,下位機通過中斷的方式向上位機發送數據。上位機與下位機通過RS-232串列口相連。
1 系統硬體設計
為了能在測量距離的同時判斷出物體的大致形狀,應設計成多感測器測距系統。經分析可知,頻率為40kHz左右的超聲波在空氣中傳播的效率最佳;同時,為了方便處理,發射的超聲濾被調製成40kHz左右、具有一定間隔的調製脈衝波信號。該測距系統結構框圖如圖1所示。由圖可見,測距系統由超聲波發送、接收、時間計測、微機控制和溫度測量五個部分組成。
1.1 超聲波發送

這部分包括超聲波信號的產生、多路選擇及換能器等環節。
超聲波發送脈衝如圖2所示。40kHz的超聲波發送脈衝信號由單片機89C51的P1.0口送出,其脈衝寬度及脈衝間隔均由軟體控制。脈衝寬度約為125μs~200μs,即在一個調製脈衝內包5~8個40kHz的方波。脈衝發送間隔取決於要求測量的最大距離及測量通道數。本系統有三路測距通道,採用分時工作,按上、中、下的順序循環測距。若在有效測距範圍內有被測物的話,則在後一路超聲波束髮出之前應當接收到前一路發同的反射波,否則認為前一路無被測物。因此按有效測距範圍可以估算出最短的脈衝間隔發送時間。例如:最大測距範圍為5m時,脈衝間隔時間t=2s/v=2×5/340≈30ms,實際應取t≥30ms。
發送的超聲波脈衝經多路選擇開關CD4052按序分別送到上、中、下三路發送轉換能器上。採用緩衝器CD4050是考慮用其兩個門來驅動一路發送換能器,以加大發射驅動能力。
1.2 超聲波接收

這部分由接收換能器、多路選擇開關、比較及控制等環節組成。由於在距離較遠的情況下,聲的回波很弱,因而轉換為電信號的幅值也較小,為此要求將信號放大60萬倍左右。采有三級放大:前兩級种放大100倍,採用高速精密放大器LM318,其帶寬為15MHz,放大倍數為100倍時,能充分滿足要求;第三級採用LF353運算放大器,帶寬為4MHz,對於62倍的放大倍數,能充分滿足條件[3,6]。放大后的交流信號經光電隔離送入比較器,比較器的作用是將交流信號整形輸出一個方波信號,此方波信號上升沿使D觸發器觸發,向CPU發中斷申請。在中斷服務程序中,讀取時間計數器的計數值,並結合溫度換算出的速度算出發射到接收的距離。圖3給出了一路超聲波接收電路原理圖(略去多路選擇開關)。
1.3 時間計測

1.4 微機控制部分

由單片機控制的多路選擇開在來決定上、中、下三個通道分時工作的順序。CD4052的X側選擇發送通道,Y側選擇接收通道,由89C51的P1.1和P1.2按順序發出通道選擇信號,接到CD4052的A、B端,使發送通道與接收通道一一對應地接能。
由於受環境溫度以及超聲固有寬波束角等因素的影響,超聲感測器所測量的值與實際值總有一些誤差。本超聲測距系統採用曲線擬合的最小二乘法對測量數據進行擬合,使其精度達到±4cm。
2 系統軟體設計
2.1 超聲數據的採集與處理軟體
本系統軟體分兩部分:主程序和中斷服務程序。主程序完成系統初始化、選擇能路號、控制發射和接收超聲波等。主程序流程圖如圖4所示。

中斷服務程序包括內部T0中斷和外部INT0、INT1中斷服務程序。T0設置為30ms中斷一次,其任務就是每隔30ms產生5~8個40kHz的方波作為超聲脈衝並按序送到三個通道,即產生如圖2所示的超聲波發射脈衝,圖2也給出了一個通道的工作時序圖。T0中斷服務程序流程圖如圖5所示。INT0中斷子程序讀取A/D轉換結果,並將相應數據值轉換為環境溫度值;INT1停止T0、T1計數,根據T1內容計算時間T,並進行最終距離的計算。先計算超聲波傳播速度:C=331.4×(根號1+t/273),再計算距離:D=CT/2,並將計算結果送入緩衝區以備通訊。T1工作在方式2,並設計成門控方式。
2.2 串列通訊程序
為了不影響下拉機完成其他工作,本系統採用下位機以中斷的方式向上位機發送測距數據,在測距主程序中開串列口中斷。進入中斷程序后,仍採用查詢方式發送數據。
上位機(PC-586)以子程序的形式給出接收程序。若系統需要新的測距值時,就調用一次接收子程序。接收子程序框圖如圖6所示。接收子程序收到一個數據后,判斷數據傳輸是否有錯,若有錯就向下位機發“01”命令,下位機收到此命令后,則重表發送;若傳輸過程無錯,向下位機發送“00”命令,下位機則繼續發送下一個數據。
3 誤差分析

本系統最大測距誤差在8cm左右,測距的盲區為20cm。測距誤差主要來源於以下幾個方面:

[admin via 研發互助社區 ] 機器人超聲測距數據的採集與處理已經有2405次圍觀

http://cocdig.com/docs/show-post-506.html