一種相位式雷射測距系統和方法
2023-07-25 17:39:01 4
一種相位式雷射測距系統和方法
【專利摘要】本發明提出一種相位式雷射測距系統和方法,對已有雷射器進行二次開發,使得用戶能夠通過上位PC機控制雷射器的工作模式,執行距離測量並輸出測量數據,由單片機對輸出的測量數據進行解碼,並輸出到上位PC機進行顯示。本發明提出的技術方案還可以通過最小二乘法對測量精度進行提升。
【專利說明】一種相位式雷射測距系統和方法
【技術領域】
[0001]本發明涉及雷射測距【技術領域】,具體涉及一種相位式雷射測距系統和方法。
【背景技術】
[0002]雷射測距利用了雷射具有的良好的單色性、方向性、相干性以及高亮度的特點,以實現高精度的測量,其可應用於長度、距離和角度等的測量當中。
[0003]世界上第一臺雷射測距儀於1961年研製成功。而在上世紀70年代,YAG雷射器技術逐漸成熟,並且大量應用於雷射測距儀中。在80年代,隨著半導體的進步,半導體雷射器在輸出功率、光束方向性以及探測器;靈敏度等方面均取得顯著的進步。而在近年來,隨著集成電路技術的發展和半導體雷射器的成熟,出現了面向大眾日常生產生活使用的,對人眼安全、低價便攜的手持式雷射測距儀,並且發展十分迅速。
[0004]雷射測距儀測距作為近年來快速發展的一種測距方式,以其測量精度高,解析度高,抗幹擾能力強和小巧輕便等優點,在軍用和民用領域應用日益廣泛。現階段我國在雷射測距領域與國外尚有差距,在軍事工業領域依然受制於人。希望藉助一些國外的研發經驗成果,對現有的FLUKE411D手持式雷射測距儀進行二次開發,研發一種微小型無人通用的雷射測距模塊,並對其進行提升精度的算法研究。
【發明內容】
[0005]為了解決現有技術中存在的上述技術問題,本發明提出一種相位式雷射測距系統和方法。
[0006]所述系統包括:
[0007]上位PC機、通過PL2303串口轉USB模塊與上位PC機連接的PIC16F877A單片機、以及通過轉接板與所述PIC16F877A單片機連接的雷射測距儀;
[0008]其中,所述雷射測距儀採用FLUKE雷射器,使用轉接板將FLUKE雷射器的輸出信號埠與PIC16F877A單片機連接,採集FLUKE雷射器輸出的測距數據;使用轉接板將FLUKE雷射器的接收輸入控制信號的埠與PIC16F877A單片機連接,將所述PIC16F877A單片機輸出的控制工作模式的指令輸入所述FLUKE雷射器;
[0009]其中,所述PL2303串口轉USB模塊包括內置的USB功能控制器、USB收發器、振蕩器和帶有全部數據機功能的通用異步傳輸器UART ;
[0010]其中,所述PIC16F877A單片機對所述採集的FLUKE雷射器輸出的測距數據執行解碼,將解碼後的數據通過所述PL2303串口轉USB模塊傳輸到上位PC機進行顯示,和/或接收上位PC機通過所述PL2303串口轉USB模塊發送的控制命令,將所述控制命令轉換成控制所述FLUKE雷射器工作模式的指令。
[0011]一種基於所述系統的相位式雷射測距方法,包括:
[0012](I)系統上電工作後,對所述PIC16F877A單片機執行初始化,具體包括:設置傳輸波特率,打開所述PIC16F877A單片機的UART通道,設置所述PIC16F877A單片機的AN0-AN7通道為信號輸入通道,準備對輸入模擬信號採樣,並打開所述PIC16F877A單片機的總中斷;
[0013](2)系統進入SLEEP工作模式,等待用戶輸入控制命令;
[0014](3)當檢測到用戶通過上位PC機輸入的控制命令為字符『c』時,控制所述FLUKE雷射器進入連續測量Continue工作模式,在此工作模式中FLUKE雷射器處於不間斷距離測量狀態;在處於連續測量Continue工作模式中時,如果接收到為字符『e』的控制命令,則控制FLUKE雷射器跳出所述連續測量Continue工作模式,進入SLEEP工作模式;
[0015](4)在SLEEP工作模式中,當接收到為字符『r』的控制命令時,控制FLUKE雷射器進入Request工作模式,在此工作模式中所述FLUKE雷射器將首先處於等待狀態,此時如果接收到為字符『g』的控制命令,則測量得到一個距離值,並且保存這個距離值,然後控制所述FLUKE雷射器再次進入Request工作模式;在處於所述Request工作模式時,如果接收到為字符『e』的控制命令,則控制所述FLUKE雷射器返回SLEEP工作模式。
[0016]特別地,所述方法還包括步驟:
[0017](5)在執行多次距離測量後,採用最小二乘法對多次測量距離的結果進行處理。
[0018]本發明提出的系統能夠使得用戶通過上位PC機對已有雷射器的工作模式進行控制,並能夠通過最小二乘法對測量精度進行提升。
【專利附圖】
【附圖說明】
[0019]附圖1為本發明提出的一種相位式雷射測距系統結構圖。
[0020]附圖2為本發明提出的一種相位式雷射測距方法流程圖。
[0021]附圖3為FLUKE雷射器輸出測量信號波形圖。
[0022]附圖4為IXD液晶屏數據線示意圖。
[0023]附圖5為液晶屏數據線示意圖。
[0024]附圖6示出的是基於polyfit函數的最小二乘法擬合曲線。
[0025]附圖7示出的是基於Isqcurvefit函數的最小二乘法擬合曲線。
[0026]附圖8示出的是基於圖形界面的最小二乘法擬合曲線和殘差示意圖。
[0027]附圖9示出的是基於圖形界面的最小二乘法擬合曲線方程和殘差參數示意圖。
[0028]附圖10示出的是基於cftool函數的最小二乘法擬合曲線。
【具體實施方式】
[0029]下面參照附圖,對本發明的【具體實施方式】進行描述。
[0030]參照附圖1,本發明的第一實施例提出的一種相位式雷射測距系統包括上位PC機、PL2303串口轉USB模塊、PIC16F877A單片機、PICKU3下載器、雷射測距儀和轉接板。
[0031]雷射測距儀採用FLUKE雷射器。對FLUKE雷射器進行二次開發,分別使用轉接板將FLUKE雷射器給LCD液晶屏的輸出信號和按鍵面板的控制信號與PIC16F877A單片機接起來,實現PIC16F877A單片機對雷射器的控制和信號的採集。
[0032]一個轉接板連接的埠是FLUKE411D雷射器的控制端,在原來的雷射測距儀中該埠與FLUKE的按鍵面板相連,在設計的系統中給這個埠所有的7條線中的3條線電壓信號,以實現對進行FLUKE雷射器的控制。這樣做的原因是因為這3條線所控制的工作模式是系統工作時所需要的,而另外幾條線所控制的是雷射器的加減,改變測量模式等其它工作狀態的,與所進行的研究沒有關係,所以就不對這些埠施加信號了。
[0033]一個轉接板連接的是FLUKE雷射器晶片處理信號輸出埠。單片機接收FLUKE雷射器輸出的處理信號,完成對它們輸出信號的解碼,將它們所表示的數字解碼出來,然後由單片機傳輸給上位機,在上位機中顯示出FLUKE雷射器所測得的距離。具體介紹將在下面的解碼部分敘述。
[0034]PICkit3編程器/調試器是一款由在Windows平臺上運行MPLAB IDE (v8.20或更高版本)軟體的PC控制的簡單低成本在線調試器。PICkit3編程器/調試器是開發工程師工具包的不可或缺的組成部分。可用於從軟體開發到硬體集成等各種應用領域。
[0035]PL2303USB轉串口模塊是Prolific公司生產的一種高度集成的RS232-USB接口轉換器,可提供一個RS232全雙工異步串行通信裝置與USB功能接口便利連接的解決方案。
[0036]該器件內置USB功能控制器、USB收發器、振蕩器和帶有全部數據機控制信號的UART,只需外接幾隻電容就可實現USB信號與RS232信號的轉換,能夠方便嵌入到各種設備;
[0037]該器件作為USB/RS232雙向轉換器,一方面從主機接收USB數據並將其轉換為RS232信息流格式發送給外設;另一方面從RS232外設接收數據轉換為USB數據格式傳送回主機。
[0038]參見圖2,本發明另一個實施例提出了一種基於上述系統的相位式雷射測距方法,包括如下步驟:
[0039]系統開始工作後首先對單片機進行初始化,使單片機的各項工作狀態達到需要的狀態,即傳輸波特率為9600symbol/s,打開單片機的UART通道,使單片機的AN0-AN7通道為信號輸入,準備對輸入模擬信號採樣,打開總中斷。
[0040]然後系統進入默認的SLEEP工作模式即等待當中。如果沒有指定指令輸入,系統將一直處於SLEEP模式中,直到從主控計算機通過串口發送相應指令使系統進入不同的預設模式中工作。
[0041]當輸入『c』字符時,系統進入Continue工作模式,即連續工作測量模式,此時系統處於不間斷測量工作中,而當再輸入『e』時,系統則跳出Continue工作模式,進入SLEEP等待模式當中。
[0042]在SLEEP等待模式中,當輸入『r』字符指令時,系統則進入Request工作模式當中,在此模式中系統將首先處於等待當中,當再輸入指令『g』字符時,系統測量得到一個距離值,並且保存這個距離值,之後系統又進入Request模式中繼續等待,當再有『g』字符指令時,測得一個距離值,即在需要系統測量時系統才進行測量。而當在Request模式中等待時,輸入指令為『e,字符時,系統則回到SLEEP模式中等待。
[0043]除了上述敘述的工作過程外,在任何一步輸入其它無關指令系統都不會響應,仍將處於當前工作狀態當中。
[0044]本發明的另外一個實施例提出了 PIC16F877A單片機對從FLULKE雷射器採集的數據信號進行解碼的方案。在這部分,將重點介紹一下FLUKE411D雷射器輸出信號的特點,以及如何讓單片機對FLUKE411D雷射器的輸出信號進行解碼的。
[0045]首先要說明的是,單片機系統採集的FLUKE411D雷射器的輸出信號是原FLUKE411D雷射器主測量模塊輸出給IXD液晶屏的信號,這是一組電壓信號。如圖3所示。從圖中可以看出輸出的信號分為4個級別,在一個周期當中,會有8個小段,而採集的數據並不是整個周期,只採集每個周期的第1、3、5、7小段的數據,而2、4、6、8小段的數據則是無效數據,解碼過程中並不需要它們。
[0046]通過圖4,圖5可以看出,IXD每個液晶屏的顯示是由4條COM線和2個SEG線控制的。
[0047]通過對4條COM線輸出波形的進行檢測,發現4條COM線輸出的波形是完全一樣的,只是在相位上依次相差90°,即相差2個小段,最終形成一個循環。而在每個周期中,4條COM線只在其中的1/8的周期中處於最高電壓狀態(可以認為其在每個周期開始的1/8時間內是高電壓狀態),其餘時間電壓均低於最高電壓。由於只有在COM線與SEG線之間的電壓差幾乎達到VDD (在這裡大約為3V)才能使相應的LCD數碼管顯示,因此測量每個SEG線的波形就成為解碼FLUKE411D輸出信號的關鍵。
[0048]對於測量SEG線信號,使用的方法是利用單片機的A/D採集通道對特定時間的SEG信號(即每個周期1、3、5、7小段的SEG信號)進行採樣,然後將採樣的結果分別與COM線的最大值即單片機A/D採集通道所能轉換出的最大值做差(即用1023減去從A/D通道採集到的SEG線的數),通過檢測差值的大小來確定LCD液晶屏上相應每段是顯示還是關閉的。
[0049]在採集到所需要的LCD液晶屏上每段的數據後,可以通過排除判斷法來進行解碼。先對中間段進行判斷,如果它是關閉著的,那麼顯示的數字就可能是O或I或7,然後再對上端和下端進行檢測,如果全部都顯示則該數字是0,如果下端不顯示而上端顯示,則這個數字是7,如果上端和下端都不顯示則數字應為I (程序中實際是在上面兩項判斷都不是時則認為剩下的數字是I)。而如果中間段顯示,然後檢測左上方為關閉,則顯示數字應為2或3,然後對左下端進行檢測,如果顯示則數字應為2,而不顯示則數字應為3。之後在進行判斷,如果檢測到右上段是關閉著的,則顯示的數字可能為5或6,然後如果檢測到左下段為關閉,頂部為開著的,則顯示的數字應是5,如果判斷為不是則顯示的數字是5。如果左下不顯示同時頂端也不顯示,則顯示的數字為4,然後再檢測左下部,不顯示為9。最後如果以上判斷均不對,則剩下的數字只能是8 了。
[0050]通過將以上邏輯可以很容易的實現對FLUKE雷射測距儀的解碼。
[0051]另外,對於10個數字的判斷,使用的是排除法,即把不可能的排除掉之後,剩下的就是所需要的。採用這種判斷的好處是判斷語句相應較少,且關係較為簡單明確,如果對每個數字的判斷都採用完全判斷,即必須嚴格按照其顯示的數字的顯示段來進行判斷,雖然會得到嚴格意義上的數字,但是這樣將會使判斷函數過於冗長複雜,且容易出現死循環的情況。當然,雖然目前的這種算法判斷較為簡單,但是一旦出現不是要解碼的符號出現,判斷函數依舊會解碼出一個數字出來,這是這種算法的缺陷。這也就是為什麼在測數階段有時會出現全是『I』的原因。由於判斷函數以及FLUKE411D雷射器輸出給LCD液晶屏的信號的問題,使得在出現亂碼或者其他一些幹擾信號或系統採集數據出現異常時,判斷出『I』的概率是最大的。這一點可以從實際測量的數據結果中得出。
[0052]在數據的採集階段,讓程序判斷COM線中第一條輸出線的數據大小來決定是否對SEG線的信號採樣。對於COMl線,這條線是唯一需要測量的一條輸出數據線,而其他的COM線則不需要做任何處理。當從COMl線採集到的信號大於900後,讓程序進入SEG線的採樣當中,在SEG線的採樣過程中,由於不是連續採樣,在採樣過程中需要採用延時跳躍採樣法,即在需要的時間端上採樣信號,因此需要在每段採樣之間加入延時函數。由於延時必須精確,因此採用NOP函數作為一個延時,在PIC16F877A單片機中,採用4M晶振時,一個NOP函數執行的時間大約為5 μ S,通過觀察示波器上的波形,大概能夠計算出一個初始的NOP循環次數,然後可以在程序運行時通過將採集到的相應時間相應段上的數據顯示出來,與理論結果進行比較,來決定延時時間是否合適,通過不斷的調試,最終可以得到一個對系統來說較合適的延時時間。而在每採集完一個通道的數據後,必須馬上讓單片機處理A/D模塊採集來的數據,馬上將其保存到之前定義好的數組當中去,以防後面的程序對採集到的數據產生幹擾。
[0053]本發明另外一個實施例提出了一種基於最小二乘法的測距精度提升方案。最小二乘法是一種數學優化技術。它通過最小化誤差的平方和尋找數據的最佳函數匹配。利用最小二乘法可以簡便地求得未知的數據,並使得這些求得的數據與實際數據之間誤差的平方和為最小。最小二乘法還可用於曲線擬合。
[0054]對給定數據點{(Xi, Yi)} (i = O, I, ".,m),在取定的函數類Φ中,求p(x) e Φ ,使誤差的平方和E~2最小,Ε~2 =Σ [p(Xi)_Yi]~2。從幾何意義上講,就是尋求與給定點{(Xi,Yi)}(i =0,1,…,m)的距離平方和為最小的曲線y = p(X)。函數p(x)稱為擬合函數或最小二乘解,求擬合函數P (x)的方法稱為曲線擬合的最小二乘法。
[0055]polyfit 函數擬合
[0056]polyfit函數可以計算數據的η次最小二乘擬合多項式,其調用格式為A =polyfit (X,y, η),式中X和y分別為自變量和因變量,而η為多項式的次數,而得到的A為多項式係數按降冪排列得出的行向量,可以使用PolyfitO函數求取多項式的值,η = I時就為線性擬合,多項式擬合是最簡單且常用的方法。
[0057]利用MATLAB提供的polyfit函數,可以對採樣得到的數據進行最小二乘擬合,擬合得到的圖像如圖6所示,擬合得到的曲線:y = 0.9990X+112.8229。
[0058]Isqcurvefit 函數擬合
[0059]MATLAB的最優化工具箱中提供了內建函數lsqcurvefit,它是用來解決最小二乘曲線擬合的。該函數的調用格式為:
[0060]c = lsqcurvefit (FUN, a0, x, y),
[0061]其中:FUN為原型函數的MATLAB表示,可以是M函數或匿名函數叫為最優化的初值;x,I為原始輸入輸出數據向量。
[0062]通過將數據輸入lsqcurvefit函數當中,得到了如圖7的擬合曲線,而得到的擬合方程為:y = 0.9990*χ+112.8229。
[0063]圖形界面擬合
[0064]圖形界面擬合,是在MATLAB當中先將數據點輸入工作空間,然後將數據點繪出,在彈出的圖形窗口中則可以對選擇對數據進行處理的方法。如果需要將以上的結果保存到工作空間,單擊Save to workspace鍵即可進行保存。圖8上面的直線圖為擬合的曲線,圖8下面的矩形圖為採樣點和擬合曲線之間的在各個點的殘差。而從圖9可以看出擬合方程為:y = 0.99901X+112.82,擬合後的殘差為 3.0427。
[0065]cftool函數擬合
[0066]MATLAB的曲線擬合工具箱有強大的圖形擬合功能,它是一個可視化的圖形界面。可以方便快捷地進行列表曲線擬合。
[0067]輸入cftool命令可以打開MATLAB中最常用的曲線擬合工具箱,在這個工具箱中,可以進行相應的曲線擬合,如圖10所示。
[0068]當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明的權利要求的保護範圍。
【權利要求】
1.一種相位式雷射測距系統,其特徵在於,包括: 上位PC機、通過PL2303串口轉USB模塊與上位PC機連接的PIC16F877A單片機、以及通過轉接板與所述PIC16F877A單片機連接的雷射測距儀; 其中,所述雷射測距儀採用FLUKE雷射器,使用轉接板將FLUKE雷射器的輸出信號埠與PIC16F877A單片機連接,採集FLUKE雷射器輸出的測距數據;使用轉接板將FLUKE雷射器的接收輸入控制信號的埠與PIC16F877A單片機連接,將所述PIC16F877A單片機輸出的控制工作模式的指令輸入所述FLUKE雷射器; 其中,所述PL2303串口轉USB模塊包括內置的USB功能控制器、USB收發器、振蕩器和帶有全部數據機功能的通用異步傳輸器UART ; 其中,所述PIC16F877A單片機對所述採集的FLUKE雷射器輸出的測距數據執行解碼,將解碼後的數據通過所述PL2303串口轉USB模塊傳輸到上位PC機進行顯示,和/或接收上位PC機通過所述PL2303串口轉USB模塊發送的控制命令,將所述控制命令轉換成控制所述FLUKE雷射器工作模式的指令。
2.一種基於權利要求1所述系統的相位式雷射測距方法,其特徵在於,包括如下步驟: (1)系統上電工作後,對所述PIC16F877A單片機執行初始化,具體包括:設置傳輸波特率,打開所述PIC16F877A單片機的UART通道,設置所述PIC16F877A單片機的AN0-AN7通道為信號輸入通道,準備對輸入模擬信號採樣,並打開所述PIC16F877A單片機的總中斷; (2)系統進入SLEEP工作模式,等待用戶輸入控制命令; (3)當檢測到用戶通過上位PC機輸入的控制命令為字符『c』時,控制所述FLUKE雷射器進入連續測量Continue工作模式,在此工作模式中FLUKE雷射器處於不間斷距離測量狀態;在處於連續測量Continue工作模式中時,如果接收到為字符『e』的控制命令,則控制FLUKE雷射器跳出所述連續測量Continue工作模式,進入SLEEP工作模式; (4)在SLEEP工作模式中,當接收到為字符『r』的控制命令時,控制FLUKE雷射器進入Request工作模式,在此工作模式中所述FLUKE雷射器將首先處於等待狀態,此時如果接收到為字符『g』的控制命令,則測量得到一個距離值,並且保存這個距離值,然後控制所述FLUKE雷射器再次進入Request工作模式;在處於所述Request工作模式時,如果接收到為字符『e』的控制命令,則控制所述FLUKE雷射器返回SLEEP工作模式。
3.如權利要求2所述的方法,其特徵在於,還包括步驟: (5)在執行多次距離測量後,採用最小二乘法對多次測量距離的結果進行處理。
【文檔編號】G01S17/32GK104076367SQ201410333756
【公開日】2014年10月1日 申請日期:2014年7月14日 優先權日:2014年7月14日
【發明者】肖瑾, 鄭惠俊, 胡曉光, 曼諾·勞西列維奇, 肖繼忠, 範建新, 吳冰 申請人:北京航空航天大學