單良,趙軍
(1.中國計(jì)量學(xué)院信息工程學(xué)院,浙江杭州310018;2.中國計(jì)量學(xué)院計(jì)量測試工程學(xué)院,浙江杭州310018)
基于FPGA的超聲三維坐標(biāo)測量系統(tǒng)
單良1,趙軍2
(1.中國計(jì)量學(xué)院信息工程學(xué)院,浙江杭州310018;2.中國計(jì)量學(xué)院計(jì)量測試工程學(xué)院,浙江杭州310018)
提出基于超聲波測距的三維坐標(biāo)測量方法,利用FPGA實(shí)現(xiàn)超聲波測距系統(tǒng)電路,設(shè)計(jì)并行四個(gè)通道信號(hào)處理系統(tǒng),獲得超聲發(fā)射端到四個(gè)超聲接收端的距離,并利用最小二乘法實(shí)現(xiàn)發(fā)射端空間位置的準(zhǔn)確估計(jì)。對(duì)基于超聲波測距的三維坐標(biāo)測量系統(tǒng)進(jìn)行實(shí)驗(yàn)研究,實(shí)驗(yàn)結(jié)果表明采用峰值測距和最小二乘三維定位算法可有效實(shí)現(xiàn)三維坐標(biāo)測量,坐標(biāo)的絕對(duì)誤差在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]原理簡單,實(shí)現(xiàn)方便。利用超聲波測距原理,通過多個(gè)接收端,可實(shí)現(xiàn)在一定區(qū)域內(nèi)對(duì)發(fā)射端的較高精度的三維坐標(biāo)測量;系統(tǒng)采用FPGA技術(shù),集成度高,抗干擾能力強(qiáng),可有效提升系統(tǒng)性能。與上述方法相比,基于FPGA的超聲波測距三維坐標(biāo)測量方法可大大降低系統(tǒng)的成本,為大型建筑外部結(jié)構(gòu)測量、大型倉庫貨物定位等領(lǐng)域的應(yīng)用提供高性價(jià)比的測量方案。
超聲波三維坐標(biāo)測量系統(tǒng)由一個(gè)超聲波發(fā)射端和多個(gè)超聲波接收端組成 (為實(shí)現(xiàn)三維坐標(biāo)測量,接收端的個(gè)數(shù)必須不少于3個(gè))。工作時(shí),發(fā)射端移動(dòng)并發(fā)射超聲波信號(hào),多個(gè)固定位置的超聲波接收端接收超聲波信號(hào),并通過FPGA計(jì)算獲得發(fā)射端到各接收端的距離。由于各接收端的位置精確可知,因此當(dāng)接收端超過3個(gè),便可計(jì)算得到發(fā)射端的三維坐標(biāo)。其測距原理如圖1所示。
設(shè)空間中有一個(gè)超聲波發(fā)射端T和n個(gè)接收端R1,R2,…,Rn,空間坐標(biāo)分別為待測值(x,y,z)和已知值(xi,yi,zi),i=1,2,…,n,則超聲波發(fā)射端到第i個(gè)接收端之間的距離可表示為
當(dāng)接收端數(shù)據(jù)n大于3時(shí),發(fā)射端的位置估計(jì)變?yōu)閚個(gè)非線性方程組求解的問題。
三維坐標(biāo)測量系統(tǒng)結(jié)構(gòu)框圖如圖2所示,由FPGA模塊和外圍電路組成。外圍電路包括發(fā)射電路、接收電路、放大電路、濾波電路、A/D電路、測溫電路,外圍電路采集超聲信號(hào)及溫度信號(hào)后由FPGA進(jìn)行處理。
FPGA選用美國Altera公司的中端產(chǎn)品CycloneII系列的EP2C8Q208,該芯片具有8256個(gè)邏輯單元,可以滿足較大系統(tǒng)需求;18個(gè)18×18位乘法器,可實(shí)現(xiàn)數(shù)字信號(hào)處理;2個(gè)增強(qiáng)型鎖相環(huán),能夠提供先進(jìn)的時(shí)鐘管理能力。FPGA實(shí)現(xiàn)對(duì)超聲波接收信號(hào)的采集、溫度補(bǔ)償、測距計(jì)算和三維坐標(biāo)估計(jì)。
FPGA頂層模塊如圖3所示。clock_division為分頻模塊,ds18b20_drive為溫度采集模塊;rom_tempreture為溫度補(bǔ)償模塊;data_aqusiation為A/D采集控制模塊;count_f為峰值測距模塊;miner為最小二乘三維坐標(biāo)估計(jì)模塊。系統(tǒng)工作時(shí),F(xiàn)PGA激勵(lì)發(fā)射端換能器發(fā)射超聲波,同時(shí)觸發(fā)峰值測距模塊開始計(jì)時(shí),發(fā)射信號(hào)被超聲波接收器接收,經(jīng) A/D轉(zhuǎn)換送入測距模塊,通過最大值確定渡越時(shí)間,并根據(jù)測量室溫對(duì)應(yīng)的波速計(jì)算獲得發(fā)射端到接收端的距離。由四路測距信號(hào)計(jì)算發(fā)射端空間位置。各模塊內(nèi)部邏輯和具體功能解釋如下:
2.1 A/D采集控制模塊
外圍的A/D采集控制電路選用了Maxim公司的MAX118芯片,利用內(nèi)部的2個(gè)4位刷新組件可以得到8位的轉(zhuǎn)換結(jié)果。FPGA中的信號(hào)采集模塊則將采集的超聲波信號(hào)d轉(zhuǎn)化為數(shù)字信號(hào)data。采用有限狀態(tài)機(jī)設(shè)計(jì),狀態(tài)機(jī)包含5個(gè)不同狀態(tài),狀態(tài)A初始化;狀態(tài)B和C進(jìn)行數(shù)據(jù)轉(zhuǎn)換,芯片的轉(zhuǎn)換時(shí)間參數(shù)決定了該狀態(tài)要持續(xù)兩個(gè)時(shí)鐘周期;狀態(tài)D等待讀信號(hào)的下降沿到來后,打開三態(tài)數(shù)據(jù)緩沖器;狀態(tài)E讀取緩沖器中的數(shù)據(jù)。該狀態(tài)機(jī)所需時(shí)鐘頻率為clk1,由分頻模塊提供5 MHz信號(hào)。countstart為超聲波換能器開始發(fā)射超聲波的使能信號(hào)。該模塊輸出A/D轉(zhuǎn)換后的數(shù)字量,送入峰值檢測模塊,通過每次比較確定峰值點(diǎn)。
2.2 分頻模塊
EP2C8Q208芯片提供的晶振頻率為50 MHz,即輸入的clock信號(hào),A/D采樣所需頻率為1 MHz,且A/D采樣的有限狀態(tài)機(jī)包含5個(gè)狀態(tài)的時(shí)序變化,因此狀態(tài)機(jī)所需的時(shí)鐘頻率為5 MHz。分頻模塊對(duì)系統(tǒng)時(shí)鐘進(jìn)行10分頻和50分頻,輸出5 MHz和1 MHz兩個(gè)頻率的信號(hào)clk_5m和clk_1m。
2.3 溫度采集與補(bǔ)償模塊
根據(jù)溫度與波速的關(guān)系可知,溫度每升高1℃,波速會(huì)上升0.6 m/s,因此需要對(duì)溫度造成的波速誤差進(jìn)行補(bǔ)償。外圍電路選用Dallas公司的DS18B20進(jìn)行溫度測量,即ds18b20_drive模塊通過FPGA采集該溫度傳感器中的當(dāng)前室內(nèi)溫度數(shù)據(jù)temperature,溫度分辨力為1℃。設(shè)置波速存儲(chǔ)查找表,把溫度值作為地址,存儲(chǔ)單元中保存對(duì)應(yīng)溫度下的波速。rom_tempreture單元根據(jù)當(dāng)前的溫度測量值address讀出相應(yīng)存儲(chǔ)單元中的波速值,從而進(jìn)行波速補(bǔ)償,該輸出波速值q送入峰值測距模塊進(jìn)行距離計(jì)算。
2.4 峰值法測距模塊
峰值法測距模塊的基本原理是通過檢測A/D采集模塊中數(shù)字信號(hào)的最大值來檢測峰值點(diǎn)獲取該次測量的渡越時(shí)間,再根據(jù)溫度補(bǔ)償后的波速和渡越時(shí)間計(jì)算出測量距離。波速velocity由溫度補(bǔ)償模塊直接提供,渡越時(shí)間則由峰值測距模塊內(nèi)部產(chǎn)生。峰值測距模塊count_f首先根據(jù)傳感器的量程設(shè)置測量時(shí)間。在每次A/D采集時(shí)將當(dāng)前超聲波幅度值與最大緩存幅值進(jìn)行比較,若采集值大于緩存值,則將緩存值更新,并記錄此時(shí)的時(shí)間。測量時(shí)間結(jié)束后,緩存值和對(duì)應(yīng)的記錄時(shí)間即為峰值和渡越時(shí)間。由此計(jì)算出發(fā)射端到當(dāng)前接收端之間的距離distance。
圖3中只顯示了一路超聲波接收端和發(fā)射端之間的距離l1的計(jì)算,其他三路采用相同的方式,可算得l2,l3,l4。在芯片資源充足的情況下,為了保證高速度和高精度,四路數(shù)據(jù)采集和測距模塊并行。
2.5 最小二乘三維坐標(biāo)估計(jì)模塊
最小二乘三維坐標(biāo)估計(jì)模塊miner在發(fā)射端與四個(gè)接收端之間的距離l1,l2,l3,l4確定以后,采用最小二乘法進(jìn)行發(fā)射端的三維坐標(biāo)估計(jì),輸出發(fā)射端的三維坐標(biāo)絕對(duì)值和符號(hào)。
實(shí)驗(yàn)裝置如圖4所示。兩塊孔板相同,分別作為發(fā)射板和接收板,孔徑的大小可以固定超聲波傳感器。建立坐標(biāo)系,由于孔板上每個(gè)孔的位置已知,因此兩板之間任意兩孔的距離可精確測量。
實(shí)驗(yàn)時(shí),在接收板上固定A,B,C,D四個(gè)接收端,其坐標(biāo)參數(shù)分別為
發(fā)射端位置可調(diào),一種方式是選擇不同的孔來改變發(fā)射端的x,z坐標(biāo),另一種方式是移動(dòng)整個(gè)發(fā)射板來改變發(fā)射端的y坐標(biāo)。實(shí)驗(yàn)臺(tái)上的孔的位置和移動(dòng)的距離都通過三坐標(biāo)測量機(jī)和激光測距儀來標(biāo)定。將測量系統(tǒng)測得的發(fā)射端三維坐標(biāo)與實(shí)際坐標(biāo)值進(jìn)行比對(duì),進(jìn)行誤差分析。
共選擇了10個(gè)不同位置坐標(biāo),每個(gè)位置進(jìn)行20次測量。表1列出了10個(gè)位置的實(shí)際坐標(biāo)、最小二乘法得到的測量坐標(biāo)和比較得到的絕對(duì)誤差。
從表1可以看出:采用峰值測距和最小二乘三維定位算法可有效實(shí)現(xiàn)三維坐標(biāo)測量,坐標(biāo)的絕對(duì)誤差在30 mm以內(nèi)。用FPGA實(shí)現(xiàn)超聲測距和三維坐標(biāo)定位的主要算法與功能,運(yùn)算速度快且功耗低。
坐標(biāo)測量誤差主要來源于以下兩個(gè)方面:一是測距誤差。峰值法測距時(shí),峰值位置的估計(jì)偏差會(huì)導(dǎo)致渡越時(shí)間提前或推后;收發(fā)端之間的相對(duì)角度會(huì)引起超聲波衰減;空氣的溫度、濕度和擾動(dòng)帶來的波速誤差也會(huì)影響到收發(fā)端之間距離的估算。二是三維坐標(biāo)定位算法誤差。在解測距方程組時(shí),為了簡化計(jì)算,對(duì)方程組進(jìn)行了線性化,這個(gè)簡化是用犧牲精度換取的。在這些測量誤差中,由距離和角度造成超聲波衰減而產(chǎn)生的誤差可通過對(duì)實(shí)際距離和測量距離進(jìn)行擬合的方式補(bǔ)償;空氣溫度濕度等隨機(jī)干擾帶來的誤差則可通過溫度濕度傳感器測得實(shí)際值,并設(shè)計(jì)補(bǔ)償電路來實(shí)現(xiàn);三維坐標(biāo)定位誤差則可通過采用高級(jí)的抗差算法來提高精度。此外,增加接收端傳感器的個(gè)數(shù)也可提高測量精度。
提出基于超聲波測距的三維坐標(biāo)測量方法,開發(fā)FPGA坐標(biāo)測量電路,實(shí)現(xiàn)超聲信號(hào)獲取、距離及三維坐標(biāo)計(jì)算。超聲三維坐標(biāo)測量系統(tǒng)采用一個(gè)超聲發(fā)射端和多個(gè)超聲接收端,通過測量超聲發(fā)射端到多個(gè)超聲接收端的距離,實(shí)現(xiàn)發(fā)射端的三維定位,利用FPGA的工作特性,設(shè)計(jì)了并行結(jié)構(gòu)的多通道處理系統(tǒng),實(shí)現(xiàn)四個(gè)接收端通道信號(hào)的同時(shí)快速處理,獲得超聲發(fā)射端到多個(gè)超聲接收端的距離,并利用最小二乘法實(shí)現(xiàn)發(fā)射端空間位置的準(zhǔn)確估計(jì)。實(shí)驗(yàn)結(jié)果表明,采用FPGA為核心的超聲三維坐標(biāo)測量系統(tǒng),能實(shí)現(xiàn)空間目標(biāo)的準(zhǔn)確定位,測量坐標(biāo)絕對(duì)誤差小于30 mm。
[1]劉祚時(shí),倪瀟娟.坐標(biāo)測量機(jī)(CMM)的現(xiàn)狀和發(fā)展趨勢[J].機(jī)械制造,2004,42(480):32-34.
[2]張國雄,林永兵,李杏華,等.四路激光跟蹤干涉三維坐標(biāo)測量系統(tǒng)[J].光學(xué)學(xué)報(bào),2003,23(9):1030-1036.
[3]張博,彭軍.激光跟蹤測量系統(tǒng)[J].計(jì)測技術(shù),2006,26(4):5-6.
[4]李杏華,張國雄,趙樹忠.跟蹤機(jī)構(gòu)精度檢測的研究[J].計(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é)報(bào)(信息科學(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].計(jì)量學(xué)報(bào),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é)基金面上項(xiàng)目(51375467)
單良 (1979-),女,江蘇南通人,講師,碩士,主要研究方向?yàn)樾盘?hào)處理與檢測技術(shù);趙軍 (1960-),男,黑龍江哈爾濱人,教授,主要研究方向?yàn)榫軆x器設(shè)計(jì)。