本課題研究的機器人工作在大約40 m深的漿液下,為了防止水煤漿由于長時間的存貯而沉淀,他能在按照預先規劃的軌跡行走時完成攪拌功能。在這種條件下,一個很重要的問題就是機器人定位功能的實現,用來實時了解其具體位置。本機器人定位系統采用多路超聲波傳感器測距,然后采用三點定位法,把測距信息轉化為機器人的位置信息。超聲波作為一種無接觸檢測方式,與激光、紅外以及無線電測距相比,在水煤漿中可以比較容易地穿透水煤漿達到測距的目的,且精度較高。 1 超聲波測距系統 1.1 超聲波測距原理 超聲波測距原理一般采用時間度量法,計算公式為: 式中D(m)為超聲波傳播的距離,v(m/s)為超聲波在介質中傳播的速度,t(s)為超聲波在介質中傳播的時間。而超聲波在介質中傳播的速度由介質的性質和溫度T(℃)決定,由此可得到水中超聲波的波速為: 1.2 超聲波測距的硬件系統 系統硬件框圖如圖1所示,其設計為分布式控制系統。在本系統中USR1為超聲波發射傳感器,USR2,USR3,USR4為接收傳感器,他是型號為JSS-03的液下專用超聲波傳感器,該傳感器既可做接收用同時也可做發射用,其靈敏度高,額定脈沖工作電壓高,瞬時輸出功率大。溫度傳感器選用DS18B20,該傳感器具有單總線、抗干擾、測溫范圍寬(-55~+125℃)、適合遠距離惡劣環境測溫的特點。在本系統中使用的單片機(MCU0,MCU1,…MCU4)均選用51系列單片機AT89C52。 當系統處于工作狀態,由MCU0每隔3 s產生一個脈沖,信號經過放大激發信號發生器ST-3A,然后觸發超聲波發生器USR1;同時給MCU2,MCU3,MCU4的中斷INT0一個低電平,使他們開始計時。當接收超聲波傳感器接收到發射超聲波傳感器發出的信號后,立即把產生的接收信號傳給單片機,中間的信號調理過程為一級放大(放大100倍)、帶通濾波、二級放大(放大50倍)、電壓比較、光電隔離,其中電壓比較的基準電壓可調,當信號電壓高于基準電壓時使MCU的INT1中斷。INT0中斷和INT1中斷的時間間隔即為發射與接收傳感器間的時間,他存儲在單片機固定的RAM中。而溫度傳感器DS18B20是分時完成對環境溫度的測量的,采用嚴格的時序單片機進行雙向通訊。單片機把溫度信息存在他的固定RAM中。 1.3 超聲波測距的軟件系統 要完成對機器人的位置信息的測量就要求把存儲在單片機RAM內的時間信息和溫度信息采集到上位機中,然后把這些信息融合起來得到機器人的確切坐標。工控機與下位機采用串口通訊方式,通訊協議為MODBUS協議。同時上位機采用VC 6.0作為開發工具,工控機的軟件程序采用模塊化編程,程序主要由串口通訊模塊、三點定位模塊、數據庫模塊及界面模塊組成,其循環通訊的流程如圖2所示。 2 實 驗 2.1 實驗準備 為了驗證程序的可靠性和對比兩種超聲波發射傳感器在定位過程中的效果,做了水下定位實驗,該實驗是在9 m×7 m的長方形水池中進行的,水深25 cm左右。在實驗之前在水平面內建立直角坐標系,同時在r=3 300 mm的圓周上均勻放置三個超聲波接收傳感器,其坐標(單位:mm)分別為(3 300,0)、(-1 650,2 858)、(-1 650,2 858),在實驗過程中超聲波發射傳感器在此圓周內移動。 根據以前一系列的實驗結果,在本次實驗的軟件系統中對測距程序按下式進行了修正:(單位:mm) 2.2 實驗結果 (1)JSS-03型超聲波發射傳感器 該傳感器的最佳發射頻率為10 kHz,發射面為一個平面,波束角為60°,其指向性很強,在此定位系統中,3個接收傳感器都能夠收到該發射傳感器的信號,但在其波束角內的接收傳感器接收的信號比其他兩個強,這就影響了接收傳感器觸發時的靈敏性。 如圖3所示,中間的實線圓為經過非線性優化過的發射傳感器的移動軌跡,半徑為3 204 mm,這些定位點分散在軌跡圓的周圍,外側的虛線圓為偏離原點最遠點所在的圓,內側的虛線圓為距離原點最近的點所在的圓,最大誤差為8.08%,這些誤差主要來自于發射中心產生的誤差和測距產生的誤差。 (2)LYF-20型圓周發射傳感器 復制的最佳發射頻率為22 kHz,發射面為圓柱面,他的優點就是對于三個接收傳感器而言發射中心是固定的,并且他們接收的信號強弱一致,但他的指向性不強,由于信號分散,故其發射的信號弱于JSS-03型傳感器。如圖4所示。由于從發射源頭就避免了發射中心產生的誤差,所以他的定位精度較高,主要誤差來自于測距誤差,其優化后的軌跡圓半徑為3 154 mm,最大誤差為3.78%。在此可以看出,頻率對超聲波的測距是有很大影響的,頻率越大,精度越高。 3 結 語 從實驗結果看出,定位系統是可行的,有較高的可靠性,并且本系統的實時性可達1 s,其精度也可以達到我們預期的效果,但是硬件系統還有提升的空間。研究內容對水下機器人的定位,信號的采集,數據的遠距離傳輸等都有參考價值。 |