張天 牛青研 牛長流 ?;?陰翔蕓 北方工業大學
在移動互聯網技術快速發展和普及的今天,通信技術快速發展,在生活中位置服務越來越重要?;谖恢玫姆罩饕ㄊ彝舛ㄎ缓褪覂榷ㄎ唬陂_闊的室外環境下,GPS在室外位置獲取表現突出,并且被各行各業所使用,借助于基站和GPS定位即可達到精確的定位和導航效果。室內環境中,因為建筑物削弱了GPS的信號,GPS無法覆蓋室內環境,所以一種在室內環境下精確的定位方法顯得尤為重要。
近年來基于激光測距的室內定位技術越來越受到學術界和工業界的重視,基于激光測距定位技術是當前室內定位技術研究的重點和熱點,其優勢在于激光測距的高精度與高速度。隨著激光測距技術的成熟和廣泛應用,基于激光測距的定位技術已經成為研究和應用的主要方向。
本文利用激光測距模塊、電子指南針模塊、單片機等搭建室內定位系統,控制部分由兩個單片機最小系統構成。其中一片對電子指南針模塊和激光測距模塊進行數據讀取,然后通過無線串口通信模塊將數據發送給另一片單片機。另一單片機系統進行對直流電機的控制,定位算法的實現以及通過LCD顯示方位數據。采集到的數據經過定位算法計算后,通過串口將所得位置信息傳輸到顯示子系統,在LCD屏顯示當前坐標信息,從而實現室內實時定位。
基于激光測距系統結合定位算法,使待測節點在本系統中實現實時定位,首先通過按鍵觸發系統開始工作,電機開始轉動,同時測距開始。電機旋轉一周后,所采集到的的數據由串口模塊從一號單片機傳入二號單片機,籍由定位算法進行坐標求解。得到點1的坐標后,將節點移動,進行二階段測距,由定位算法解得移動后坐標,實現室內跟蹤定位。

圖 3.1 系統結構框圖
激光測距模塊采用了VL53L0X芯片,VL53L0X是新一代飛行時間(ToF)激光測距芯片,采用目前市場上最小的封裝,無論目標反射率如何,都能提供精確的距離測量,與傳統技術不同,它可以測量高達2米的絕對距離,在測距性能水平上樹立新的基準,為各種新應用打開大門。激光測距模塊芯片VL53L0X的I2C通信具體如下:當從機接收數據時,它將逐位寫入串行/并行寄存器。在從機接收到每個數據字節后,會產生一個應答,然后將數據存儲在由當前索引尋址的內部寄存器中。

圖 3.2 寫寄存器
在讀取消息期間,當前索引尋址的寄存器內容將在設備地址字節后面的字節中讀出。該寄存器的內容被并行加載到串行/并行寄存器中,并通過SCL的下降沿從器件移出。

圖 3.3 讀寄存器
在每個字節結束時,在讀取和寫入消息序列中,接收設備發出一個確認(即,VL53L0X用于寫入,主機用于讀?。?。只有在讀取操作期間讀完整個字節后,才能通過發出停止條件或否定應答(即,不拉SDA線拉低)來終止總線主機的消息。該界面還支持自動增量索引。在第一個數據字節傳輸完畢后,索引自動遞增1。因此,主機可以連續發送數據字節到從機,直到從機無法提供應答或主機終止帶停止條件的寫通信。如果使用自動遞增功能,主設備不必發送地址索引以伴隨數據字節。

圖 3.4 連續寫寄存器

圖 3.5 連續讀寄存器
本模塊采用了nRF24L01單片機無線收發芯片,該芯片工作在世界通用ISM頻段2.4GHz到2.5GHz,GFSK調制的單片式收發,內置硬件鏈路層,擁有自動應答及自動重發功能和地址CRC校驗能力,1.9~3.6v低電壓工作可使用鋰電池供電,使用SPI通信協議進行數據傳輸,模塊的穩定性很好,抗干擾能力強。
無線通信模塊采用的是SPI通信協議進行數據傳輸,該SPI模塊使用主要由16位移位寄存器組成的內部寄存器進行配置,該移位寄存器(SR)用于將數據移入和移出緩沖寄存器(BUF),控制寄存器(CON)配置SPI模塊,統計寄存器(STAT)顯示SPI模塊的操作狀態條件,如果從另一個外部器件接收到16位字,則標志RBF允許驗證。

圖 3.6 系統流程圖
本文最大創新點在于定位算法的研究,此算法不需要先驗信息,便可以實現一定精度的室內定位。此算法分為兩個階段,第一個階段通過旋轉測距可以間隔一定時間獲取此測距模塊朝向與墻面或其他接觸面的距離,根據距離的變化趨勢可以確定垂直于墻面的距離。此變化趨勢為:激光發射點到該點與墻面垂直點的距離是在垂直點領域內最短的。

圖4.1 系統第一階段示意圖
假設d1為垂直距離與墻面交于a點,可以發現在a的領域內的點到激光發射點o的距離比oa要長,通過比較d0,d1,d2的大小,滿足d1<d0和d1<d2的距離,垂直距離為:

激光測距模塊讀到的是數據流,只是某一時刻的距離,算法要求連續三個數據進行大小對比,軟件上用一維數組進行數據儲存,可以很好的解決這個問題。
得到一組四個垂直距離數據

在沒有方位數據的情況下,只知道四個垂直于墻面的四個距離數據,要得出客觀的定位數據有一定困難,所以還需進行下一階段的算法研究。第二階段:將激光測距模塊任意移動較小距離,重復第一階段獲取四個與墻垂直的距離L1,L2,L3,L4.

同一階段方法,得到二階段四方位垂直距離

通過兩組數據可求解得到測量點在以初始位置為原點的坐標系的位置信息X,Y:X取第2,4組數據位置偏移量的中值,Y取第1,3組數據位置偏移量的中值,用此算法所解得的位置信息均是以相對于上一位置的坐標。

圖4.2 系統第二階段示意圖

圖 5.1 系統測試環境
在完成第一階段測量,即得到初始位置四個與箱子壁垂直距離時,電機自動停止轉動。在手動將系統移動微小距離后,需要按鍵觸發進行第二階段的測量,完成第二階段測量后LCD會顯示位置數據如圖5.3。

圖5.2 LCD顯示的位置數據
對系統進行100次相關測試,以及誤差記錄,可以得到誤差表如表 5.1

表 5.1實驗誤差
由表可知,誤差主要在5cm以下,集中分布于2~3cm,1cm以下和4cm以上占比少,1~3cm占大部分。
本系統定位精度受很多方面的影響,在經測試之后發現最主要的是受激光測距模塊自身誤差和電機轉速與距離采集時間間隔關系的影響。
隨著技術的進步,各類智能化家具、機器人等在各個領域越來越多的被投入使用,這些智能設備的運行依托于高精度的室內位置信息。本文介紹的基于激光測距的室內定位系統,利用距離和位置的對應關系,實現了在簡單室內環境中較高精度的定位。本系統的控制依托于單片機,目前僅實現了簡單室內空間的定位,面對復雜室內環境下應用還有較大的改進空間。可以將系統建構在可控制的移動小車,增加導航循跡功能。其次可以開發應用程序實施繪制室內一維平面圖,并增加自動規避和線路規劃算法。硬件方面可選用更高精度的激光測距設備。