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