單良,趙軍
(1.中國計量學(xué)院信息工程學(xué)院,浙江杭州310018;2.中國計量學(xué)院計量測試工程學(xué)院,浙江杭州310018)
基于FPGA的超聲三維坐標(biāo)測量系統(tǒng)
單良1,趙軍2
(1.中國計量學(xué)院信息工程學(xué)院,浙江杭州310018;2.中國計量學(xué)院計量測試工程學(xué)院,浙江杭州310018)
提出基于超聲波測距的三維坐標(biāo)測量方法,利用FPGA實現(xiàn)超聲波測距系統(tǒng)電路,設(shè)計并行四個通道信號處理系統(tǒng),獲得超聲發(fā)射端到四個超聲接收端的距離,并利用最小二乘法實現(xiàn)發(fā)射端空間位置的準(zhǔn)確估計。對基于超聲波測距的三維坐標(biāo)測量系統(tǒng)進(jìn)行實驗研究,實驗結(jié)果表明采用峰值測距和最小二乘三維定位算法可有效實現(xiàn)三維坐標(biāo)測量,坐標(biāo)的絕對誤差在30 mm以內(nèi)。
超聲測距;三維坐標(biāo)測量;峰值法;最小二乘;FPGA
大尺寸測量是大型裝備制造及精密工程安裝的基礎(chǔ)支撐技術(shù)之一,目前常用的測量設(shè)備有三坐標(biāo)測量機(jī)[1]、激光跟蹤干涉測量系統(tǒng)[2-4]、經(jīng)緯儀測量系統(tǒng)[5]、數(shù)字?jǐn)z影測量系統(tǒng)[6-7]、室內(nèi)GPS系統(tǒng)[8]等,它們適用于某一領(lǐng)域的高精度大尺寸測量,但成本高,不適合大范圍推廣使用。
超聲波測距[9]原理簡單,實現(xiàn)方便。利用超聲波測距原理,通過多個接收端,可實現(xiàn)在一定區(qū)域內(nèi)對發(fā)射端的較高精度的三維坐標(biāo)測量;系統(tǒng)采用FPGA技術(shù),集成度高,抗干擾能力強(qiáng),可有效提升系統(tǒng)性能。與上述方法相比,基于FPGA的超聲波測距三維坐標(biāo)測量方法可大大降低系統(tǒng)的成本,為大型建筑外部結(jié)構(gòu)測量、大型倉庫貨物定位等領(lǐng)域的應(yīng)用提供高性價比的測量方案。
超聲波三維坐標(biāo)測量系統(tǒng)由一個超聲波發(fā)射端和多個超聲波接收端組成 (為實現(xiàn)三維坐標(biāo)測量,接收端的個數(shù)必須不少于3個)。工作時,發(fā)射端移動并發(fā)射超聲波信號,多個固定位置的超聲波接收端接收超聲波信號,并通過FPGA計算獲得發(fā)射端到各接收端的距離。由于各接收端的位置精確可知,因此當(dāng)接收端超過3個,便可計算得到發(fā)射端的三維坐標(biāo)。其測距原理如圖1所示。
設(shè)空間中有一個超聲波發(fā)射端T和n個接收端R1,R2,…,Rn,空間坐標(biāo)分別為待測值(x,y,z)和已知值(xi,yi,zi),i=1,2,…,n,則超聲波發(fā)射端到第i個接收端之間的距離可表示為
當(dāng)接收端數(shù)據(jù)n大于3時,發(fā)射端的位置估計變?yōu)閚個非線性方程組求解的問題。
三維坐標(biāo)測量系統(tǒng)結(jié)構(gòu)框圖如圖2所示,由FPGA模塊和外圍電路組成。外圍電路包括發(fā)射電路、接收電路、放大電路、濾波電路、A/D電路、測溫電路,外圍電路采集超聲信號及溫度信號后由FPGA進(jìn)行處理。
FPGA選用美國Altera公司的中端產(chǎn)品CycloneII系列的EP2C8Q208,該芯片具有8256個邏輯單元,可以滿足較大系統(tǒng)需求;18個18×18位乘法器,可實現(xiàn)數(shù)字信號處理;2個增強(qiáng)型鎖相環(huán),能夠提供先進(jìn)的時鐘管理能力。FPGA實現(xiàn)對超聲波接收信號的采集、溫度補(bǔ)償、測距計算和三維坐標(biāo)估計。
FPGA頂層模塊如圖3所示。clock_division為分頻模塊,ds18b20_drive為溫度采集模塊;rom_tempreture為溫度補(bǔ)償模塊;data_aqusiation為A/D采集控制模塊;count_f為峰值測距模塊;miner為最小二乘三維坐標(biāo)估計模塊。系統(tǒng)工作時,F(xiàn)PGA激勵發(fā)射端換能器發(fā)射超聲波,同時觸發(fā)峰值測距模塊開始計時,發(fā)射信號被超聲波接收器接收,經(jīng) A/D轉(zhuǎn)換送入測距模塊,通過最大值確定渡越時間,并根據(jù)測量室溫對應(yīng)的波速計算獲得發(fā)射端到接收端的距離。由四路測距信號計算發(fā)射端空間位置。各模塊內(nèi)部邏輯和具體功能解釋如下:
2.1 A/D采集控制模塊
外圍的A/D采集控制電路選用了Maxim公司的MAX118芯片,利用內(nèi)部的2個4位刷新組件可以得到8位的轉(zhuǎn)換結(jié)果。FPGA中的信號采集模塊則將采集的超聲波信號d轉(zhuǎn)化為數(shù)字信號data。采用有限狀態(tài)機(jī)設(shè)計,狀態(tài)機(jī)包含5個不同狀態(tài),狀態(tài)A初始化;狀態(tài)B和C進(jìn)行數(shù)據(jù)轉(zhuǎn)換,芯片的轉(zhuǎn)換時間參數(shù)決定了該狀態(tài)要持續(xù)兩個時鐘周期;狀態(tài)D等待讀信號的下降沿到來后,打開三態(tài)數(shù)據(jù)緩沖器;狀態(tài)E讀取緩沖器中的數(shù)據(jù)。該狀態(tài)機(jī)所需時鐘頻率為clk1,由分頻模塊提供5 MHz信號。countstart為超聲波換能器開始發(fā)射超聲波的使能信號。該模塊輸出A/D轉(zhuǎn)換后的數(shù)字量,送入峰值檢測模塊,通過每次比較確定峰值點(diǎn)。
2.2 分頻模塊
EP2C8Q208芯片提供的晶振頻率為50 MHz,即輸入的clock信號,A/D采樣所需頻率為1 MHz,且A/D采樣的有限狀態(tài)機(jī)包含5個狀態(tài)的時序變化,因此狀態(tài)機(jī)所需的時鐘頻率為5 MHz。分頻模塊對系統(tǒng)時鐘進(jìn)行10分頻和50分頻,輸出5 MHz和1 MHz兩個頻率的信號clk_5m和clk_1m。
2.3 溫度采集與補(bǔ)償模塊
根據(jù)溫度與波速的關(guān)系可知,溫度每升高1℃,波速會上升0.6 m/s,因此需要對溫度造成的波速誤差進(jìn)行補(bǔ)償。外圍電路選用Dallas公司的DS18B20進(jìn)行溫度測量,即ds18b20_drive模塊通過FPGA采集該溫度傳感器中的當(dāng)前室內(nèi)溫度數(shù)據(jù)temperature,溫度分辨力為1℃。設(shè)置波速存儲查找表,把溫度值作為地址,存儲單元中保存對應(yīng)溫度下的波速。rom_tempreture單元根據(jù)當(dāng)前的溫度測量值address讀出相應(yīng)存儲單元中的波速值,從而進(jìn)行波速補(bǔ)償,該輸出波速值q送入峰值測距模塊進(jìn)行距離計算。
2.4 峰值法測距模塊
峰值法測距模塊的基本原理是通過檢測A/D采集模塊中數(shù)字信號的最大值來檢測峰值點(diǎn)獲取該次測量的渡越時間,再根據(jù)溫度補(bǔ)償后的波速和渡越時間計算出測量距離。波速velocity由溫度補(bǔ)償模塊直接提供,渡越時間則由峰值測距模塊內(nèi)部產(chǎn)生。峰值測距模塊count_f首先根據(jù)傳感器的量程設(shè)置測量時間。在每次A/D采集時將當(dāng)前超聲波幅度值與最大緩存幅值進(jìn)行比較,若采集值大于緩存值,則將緩存值更新,并記錄此時的時間。測量時間結(jié)束后,緩存值和對應(yīng)的記錄時間即為峰值和渡越時間。由此計算出發(fā)射端到當(dāng)前接收端之間的距離distance。
圖3中只顯示了一路超聲波接收端和發(fā)射端之間的距離l1的計算,其他三路采用相同的方式,可算得l2,l3,l4。在芯片資源充足的情況下,為了保證高速度和高精度,四路數(shù)據(jù)采集和測距模塊并行。
2.5 最小二乘三維坐標(biāo)估計模塊
最小二乘三維坐標(biāo)估計模塊miner在發(fā)射端與四個接收端之間的距離l1,l2,l3,l4確定以后,采用最小二乘法進(jìn)行發(fā)射端的三維坐標(biāo)估計,輸出發(fā)射端的三維坐標(biāo)絕對值和符號。
實驗裝置如圖4所示。兩塊孔板相同,分別作為發(fā)射板和接收板,孔徑的大小可以固定超聲波傳感器。建立坐標(biāo)系,由于孔板上每個孔的位置已知,因此兩板之間任意兩孔的距離可精確測量。
實驗時,在接收板上固定A,B,C,D四個接收端,其坐標(biāo)參數(shù)分別為
發(fā)射端位置可調(diào),一種方式是選擇不同的孔來改變發(fā)射端的x,z坐標(biāo),另一種方式是移動整個發(fā)射板來改變發(fā)射端的y坐標(biāo)。實驗臺上的孔的位置和移動的距離都通過三坐標(biāo)測量機(jī)和激光測距儀來標(biāo)定。將測量系統(tǒng)測得的發(fā)射端三維坐標(biāo)與實際坐標(biāo)值進(jìn)行比對,進(jìn)行誤差分析。
共選擇了10個不同位置坐標(biāo),每個位置進(jìn)行20次測量。表1列出了10個位置的實際坐標(biāo)、最小二乘法得到的測量坐標(biāo)和比較得到的絕對誤差。
從表1可以看出:采用峰值測距和最小二乘三維定位算法可有效實現(xiàn)三維坐標(biāo)測量,坐標(biāo)的絕對誤差在30 mm以內(nèi)。用FPGA實現(xiàn)超聲測距和三維坐標(biāo)定位的主要算法與功能,運(yùn)算速度快且功耗低。
坐標(biāo)測量誤差主要來源于以下兩個方面:一是測距誤差。峰值法測距時,峰值位置的估計偏差會導(dǎo)致渡越時間提前或推后;收發(fā)端之間的相對角度會引起超聲波衰減;空氣的溫度、濕度和擾動帶來的波速誤差也會影響到收發(fā)端之間距離的估算。二是三維坐標(biāo)定位算法誤差。在解測距方程組時,為了簡化計算,對方程組進(jìn)行了線性化,這個簡化是用犧牲精度換取的。在這些測量誤差中,由距離和角度造成超聲波衰減而產(chǎn)生的誤差可通過對實際距離和測量距離進(jìn)行擬合的方式補(bǔ)償;空氣溫度濕度等隨機(jī)干擾帶來的誤差則可通過溫度濕度傳感器測得實際值,并設(shè)計補(bǔ)償電路來實現(xiàn);三維坐標(biāo)定位誤差則可通過采用高級的抗差算法來提高精度。此外,增加接收端傳感器的個數(shù)也可提高測量精度。
提出基于超聲波測距的三維坐標(biāo)測量方法,開發(fā)FPGA坐標(biāo)測量電路,實現(xiàn)超聲信號獲取、距離及三維坐標(biāo)計算。超聲三維坐標(biāo)測量系統(tǒng)采用一個超聲發(fā)射端和多個超聲接收端,通過測量超聲發(fā)射端到多個超聲接收端的距離,實現(xiàn)發(fā)射端的三維定位,利用FPGA的工作特性,設(shè)計了并行結(jié)構(gòu)的多通道處理系統(tǒng),實現(xiàn)四個接收端通道信號的同時快速處理,獲得超聲發(fā)射端到多個超聲接收端的距離,并利用最小二乘法實現(xiàn)發(fā)射端空間位置的準(zhǔn)確估計。實驗結(jié)果表明,采用FPGA為核心的超聲三維坐標(biāo)測量系統(tǒng),能實現(xiàn)空間目標(biāo)的準(zhǔn)確定位,測量坐標(biāo)絕對誤差小于30 mm。
[1]劉祚時,倪瀟娟.坐標(biāo)測量機(jī)(CMM)的現(xiàn)狀和發(fā)展趨勢[J].機(jī)械制造,2004,42(480):32-34.
[2]張國雄,林永兵,李杏華,等.四路激光跟蹤干涉三維坐標(biāo)測量系統(tǒng)[J].光學(xué)學(xué)報,2003,23(9):1030-1036.
[3]張博,彭軍.激光跟蹤測量系統(tǒng)[J].計測技術(shù),2006,26(4):5-6.
[4]李杏華,張國雄,趙樹忠.跟蹤機(jī)構(gòu)精度檢測的研究[J].計量技術(shù),2003(5):10-13.
[5]李廣云.工業(yè)測量系統(tǒng)最近進(jìn)展及應(yīng)用 [J].測繪工程,2001,10(2):36-40.
[6]馮文灝.工業(yè)測量方法及其選用的基本原則[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2001,26(2):331-336.
[7]厲東偉.工業(yè)測量系統(tǒng)在國內(nèi)外的發(fā)展現(xiàn)狀[J].高校理科研究,2011(8):130-132.
[8]葉聲華,邾繼貴,張滋黎,等.大空間坐標(biāo)尺寸測量研究的現(xiàn)狀與發(fā)展[J].計量學(xué)報,2008,29(4):1-6.
[9]孔明,侯蕊,趙軍.基于FPGA的超聲波測距系統(tǒng)[J].儀表技術(shù)與傳感器,2013(6):86-89.
A Three-dim ensional Coordinate M easurem ent Using Ultrasonic Sensors Based on FPGA
SHAN Liang1,ZHAO Jun2
(1.College of Information Engineering,China Jiliang University,Hangzhou 310018,China;2.College of Metrology and Measurement Engineering,China Jiliang University,Hangzhou 310018,China)
A three-dimensional coordinatemeasurementwas proposed based on ultrasonic ranging and the system was built based on FPGA. The distances between a transmitter and four receiverswere calculated by parallel processing.Then,the three-dimensional coordinate of the transmitter can be calculated by constructing amodel of least squaremethod.The experimental results indicated that ultrasonic distancemeasurement and leastsquare localization algorithm can be used to estimate three-dimensional coordinate effectively and the absolute errors of the coordinate estimation were less than 30 mm.
ultrasonic distancemeasurement;three-dimensional coordinatemeasurement;peak valuemethod;least square;FPGA
TP274.53;TB921
B
1674-5795(2014)02-0014-04
10.11823/j.issn.1674-5795.2014.02.04
2014-03-04;收修改稿日期:2014-03-17
國家自然科學(xué)基金面上項目(51375467)
單良 (1979-),女,江蘇南通人,講師,碩士,主要研究方向為信號處理與檢測技術(shù);趙軍 (1960-),男,黑龍江哈爾濱人,教授,主要研究方向為精密儀器設(shè)計。