本站小編為你精心準備了激光測距雷達的數據采集系統參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
隨著汽車在日常生活中的普及,汽車的安全性也得到了人們的重視,特別是交通事故對人們造成的影響,使得汽車安全技術發展極為迅速。大量數據顯示,汽車交通事故中大多數是由于司機的反應不及所引起的,其中又以追尾事故的車輛相撞為主。歐洲的一項研究表明:駕駛員只要在碰撞危險的0.5s之前得到“預警”,就可以避免至少60%的追尾撞車事故,30%的迎面撞車事故,50%的路面相關事故;若有1s的“預警”時間,則可避免90%的事故發生[1]。奔馳公司也對各類交通事故的研究表明,若駕駛員能夠提早1~2s意識到有事故危險并采取相應的正確措施,則絕大多數交通事故都是可以避免的[2]。因此,研究汽車主動防撞系統來降低交通事故的發生率,意義重大。而如何測量與采集車與目標之間的距離是汽車主動防撞系統的基礎,也是關鍵技術之一。通過對汽車主動防撞系統的幾種主流測距方法的性能比較,綜合經濟條件、實驗室條件、所測距離以及各種測距方法的優缺點,選擇激光雷達測距方法。
1激光測距雷達
激光雷達是激光技術與現代光電探測技術結合的先進探測設備。激光雷達由發射系統、接收系統和信息處理系統等組成。發射系統是各種形式的激光器,如二氧化碳激光器、摻釹釔鋁石榴石激光器、半導體激光器及波長可調諧的固體激光器等;接收系統采用望遠鏡和各種形式的光電探測器,如光電倍增管、半導體光電二極管、雪崩光電二極管、紅外和可見光多元探測器件等[3]。激光雷達用激光器作為發射光源,是采用光電探測技術手段的主動遙感設備。激光測量系統基本原理為由發射系統發送一激光信號,經目標反射后被接收系統收集,通過測量反射光的運行時間而確定目標的距離。至于目標的徑向速度,可以由反射光的多普勒頻移來確定,也可以測量2個或多個距離,并計算其變化率而求得速度[4]。
2數據采集系統及測試
2.1系統參數及數據簡介采用德國SICK公司的LMS221型激光雷達,其數據格式和傳統的串口一樣,每字節10位,包含1位開始位、8位數據位和1位結束位。激光雷達的報文結構如表1所示。STX即報文頭,占用8位的1個字節,以02H開頭;Adress為目標地址,占用8位的1個字節,地址為用戶地址,這些地址可以在各個測量設備的端口應用;Length即不包含校驗和的序列字節長度,占用2個字節;Command/Re⁃sponse即發送命令或是回復命令,占用1個字節;Data為發送報文的數據部分,占用N*8個字節;Checksum為對整幀數據,從STX到狀態標記字節的CRC校驗,占用戶2個字節。激光雷達的主要相關參數主要有測量距離、分辨率、角度分辨率、掃描頻率和掃描角度等。LMS221型激光雷達的測量距離范圍最大為80m,測量距離分辨率為10mm。其測量結果主要由2個字節的數據表示,高低字節值相加得到測量點的距離值,該結果乘以設定的分辨率就是目標到雷達的徑向距離。
2.2主要技術及算法1)用MSComm控件實現微機串口的數據通訊MSComm控件是Microsoft提供的簡化Win⁃dows下串行通信編程的ActiveX控件,“隱藏”了大部分串口通訊的底層運行過程和許多煩瑣的處理過程,同時支持查詢方法和事件驅動的機制,事件驅動通訊是交互方式處理串口事務的一種非常有效的方法,特別適合Windows程序的編寫。在串口通訊過程中,當發送數據、收到數據或產生傳輸錯誤時,觸發MSComm控件的OnComm事件,然后可以通過判斷CommEvent屬性值獲得事件類型,再根據事件類型進行相應數據處理。因此用其實現微機串口的數據通訊可以用較少的程序代碼輕松實現串口的訪問和數據通訊。2)采用MSComm事件驅動方式采集數據MSComm串口控件數據接收方式有2種:a.在MSComm事件中接收數據。這種方式能充分MSComm控件的特性。OnComm事件還可以檢查和處理通訊錯誤;可以通過檢查CommEvent屬性的值來查詢事件和錯誤。對于不定長數據以及對數據進行處理比較復雜的情況,此法不是很方便。b.定時器輪循法采集數據。對于數據包方式收發數據以及不需實時響應情況,用輪循法更好些。實際上輪循法最大的好處在于集中處理數據而且不太占用CPU。輪循法要注意定時采集的時間片段大小,這里用二進制收發模式,使屬性RThreshold,SThreshold為0,屏蔽OnComm事件。本實時數據采集處理程序采用MSComm事件驅動方式。MSComm_OnComm的事件處理程序只處理comEvReceive事件。3)串行數據的發送在串行接收字程序當中,首先去掉待發送數據中的空格,然后要確保待發送字節為0~F的十六進制字符。得到正確格式的發送字節后,將其送入發送緩沖區中(MSComm.Output),最后再送入LMS221。4)串行數據的接收設置MSComm控件的接收數據采用二進制,即InputMode=comInputModeBinary,但用Input屬性讀取數據時,不能直接賦值給Byte類型變量,只能通過先賦值給1個Variant類型變量,返回1個二進制數據的數組,再轉換保存到Byte類型變量中。設置MSComm控件的接收中斷觸發值為1,即Rthreshold=1。以數據采集狀態為例,當有1個串行字符進入接收緩沖區后,觸發串行中斷事件。在串行中斷程序中,先取得接收緩沖區中的數據,判斷是否為幀頭的開始,若是再取得下一字節數據,判斷是否為幀頭的第2個數據,直到找到幀頭為止。找到幀頭后,其后數據便是測量數據與幀尾,找到測量數據并將其存入數據中,送入下一步處理[5]。5)接收數據掃描繪圖將掃描得到的數據進行解析之后,得到的是極坐標的數據,將極坐標轉換為直角坐標的公式為X=Rcosθ;Y=Rsinθ(1)式中:R為由解析數據得到的測量點離原點的距離;θ為此點的掃描角度。在程序設計過程中應使掃描距離與掃描角度的值相吻合,以0.5°的角度分辨率為例:定義一個二維數組,用于暫存測量點距離和對應的角度。將每一幀數據的第1個測量點數據賦給數組第1列,再將其對應的角度賦給數組第2列相應的位置,依次把一幀數據存于這個二維數組。再將此二維數組中的數據繪制出來[6]。6)掃描數據的回放單擊上位機中“數據回放”按鍵,從PC機中加載保存的測量數據,再從保存有測量數據的txt文件中找到測量數據,然后調用掃描繪圖函數將其繪制。當數據不夠完整一幀的時候需要舍棄。掃描數據回放流程圖見圖1,回放顯示結果見圖2。
2.3系統設計流程及功能本文中設計了LMS的數據采集系統,系統能設置LMS的各項參數,控制LMS的工作,并能將采集到的數據通過RS232總線采集到計算機中并保存。系統運行界面如圖3所示。1)該系統應能夠靈活選擇LMS的工作方式,設置LMS的各項參數。在數據采集軟件中應能對系統波特率、工作串口、掃描角度范圍、掃描角度分辨率等做出選擇。2)對采集到的數據進行處理分析后,能夠以掃描繪圖的形式顯示出來。上位機所采集到的數據不能夠生動形象、直觀地表現出被測物體的距離和形狀等特性,而掃描繪圖顯示部分不但能夠實時地對采集到的數據進行距離成像,而且可以直觀地反映出被測物體的主特性。3)該系統應能將LMS的數據通過RS232接口采集到計算機中并保存。采集系統采集到的是一組組動態數據流,存儲系統的目的是能以一種快速有效的格式把該數據流源源不斷地存入存儲單元中。而且要求這種存儲格式可以方便今后有需要時,隨時對采集到的數據進行調用、修改和處理。4)對采集的數據分析處理后有數據回放功能。動態采集并保存的數據反映出了掃描雷達對被測物體的掃描過程,通過對測量數據的回放可得到被測物體的運動軌跡、運動速度等有用的信息,方便用戶利用這些信息做一些有價值的判斷。
2.4系統測試在LMS221數據采集系統的調試方案中,針對系統特性,調試將分為模擬調試和上機調試2種方案。其中模擬調試是上機調試的基礎,2種調試方案都將遵循LMS從上電后的硬件復位到數據停止采集的過程進行一一調試。模擬仿真調試過程中用到了串口調試常用軟件,即串口調試助手軟件和虛擬串口軟件。上機調試將LMS221激光雷達通過RS-232串口接至上位機計算機當中,調整好24V直流電源,打開LMS221,在上位機中對LMS221進行控制與調試。
3小結
基于激光測距雷達的數據采集系統用VB6.0開發完成,界面操作簡單,易于功能擴充,能靈活配置LMS工作方式,設置各項參數,同時能將數據通過RS232接口傳至上位機中進行掃描繪圖,并可進行保存。系統經過反復測試,使用效果良好。
作者:黃連麗 周奎 朱賢成 單位:湖北汽車工業學院 電氣與信息工程學院