王童瑤,肖純賢,林作俊,程 涵
(1.南開大學(xué) 電子信息與光學(xué)工程學(xué)院,天津 300100;2. 天津市光電傳感器與傳感網(wǎng)絡(luò)技術(shù)重點實驗室,天津 300350)
隨著發(fā)光二極管(Light Emitting Diode, LED)應(yīng)用的不斷普及,可見光通信(Visible Light Communication, VLC)的研究和應(yīng)用也越來越廣泛,其中就包括比較熱門的室內(nèi)定位[1]。傳統(tǒng)的室內(nèi)定位技術(shù)有紅外線、藍(lán)牙、WiFi、射頻和超寬帶等[2],但其定位精度低,需要鋪設(shè)專門的設(shè)備,容易受到環(huán)境的影響。而可見光的波長范圍在380~750 nm之間[3],具有較大的帶寬,不需要申請頻段使用執(zhí)照,并且LED具有節(jié)能環(huán)保、壽命長、安全性高、響應(yīng)時間短和調(diào)制速度快等優(yōu)點[4-7]。這使得可見光定位(Visible Light Positioning, VLP)技術(shù)相較于以上定位技術(shù)來說具有定位精度高、成本低、對人體無害且適用性強(qiáng)等優(yōu)勢。
VLP技術(shù)一般使用光電二極管(Photo Diode, PD)或圖像傳感器(Image Sensor, IS)作為接收器。對于大多數(shù)基于IS的VLP的系統(tǒng)來說[8-10],IS需要同時捕獲至少3個LED燈才能確定接收器的位置?;蚴褂脩T性測量單元(Inertial Measurement Unit, IMU)和磁力計獲取接收器的姿態(tài)信息,以減少LED燈數(shù)量的限制[6]。但是磁力計對環(huán)境內(nèi)部的磁干擾比較敏感,無法為實際環(huán)境的室內(nèi)定位提供可靠的角度信息。針對這一問題,本文研究了基于IS的單燈室內(nèi)定位系統(tǒng),提出了一種使用標(biāo)記的LED燈來改進(jìn)航向角的方法,在閃爍的圓形LED燈內(nèi)部安裝一個不閃爍的燈珠作為發(fā)送端,智能手機(jī)作為接收端,對捕獲的亮暗條紋圖像進(jìn)行處理,利用投影的幾何特征以及IMU獲取的角度信息,使用改進(jìn)航向角算法進(jìn)行航向角的計算,進(jìn)一步實現(xiàn)定位。最后,本文通過實驗驗證了該方案可以有效提高航向角的準(zhǔn)確性,實現(xiàn)了更高精度的定位。
本文研究的單燈室內(nèi)定位系統(tǒng)結(jié)構(gòu)分為兩部分:發(fā)送端和接收端,如圖1所示,圖中,OW-XWYWZW為世界坐標(biāo)系。
圖1 單燈室內(nèi)定位系統(tǒng)框架圖Figure 1 Frame diagram of single lamp indoor positioning system
在定位系統(tǒng)中,安裝在天花板上的標(biāo)記LED燈(圓形LED燈由一圈閃爍的燈珠組成,燈內(nèi)安裝有一個不閃爍的燈珠作為標(biāo)記,如圖1所示)作為發(fā)送端,發(fā)送端的結(jié)構(gòu)如圖2所示。首先使用計算機(jī)將LED燈的身份(Identity Document, ID)信息編碼在現(xiàn)場可編程門陣列(Field Programmable Gate Array, FPGA)板的只讀存儲器(Read-Only Memory, ROM)中。每個LED燈的ID信息包含該LED燈及其內(nèi)部標(biāo)記燈珠在世界坐標(biāo)系OW-XWYWZW中的坐標(biāo)和LED燈的半徑,而且所有LED燈的ID信息均存儲在數(shù)據(jù)庫中。接著,F(xiàn)PGA控制模塊從ROM中讀取數(shù)據(jù),通過驅(qū)動電路控制LED的開關(guān)狀態(tài),從而將ID信息加載到LED燈上,使LED光源按照信號編碼的方式閃爍,并向外界重復(fù)廣播其ID。
圖2 發(fā)送端結(jié)構(gòu)圖Figure 2 Transmitter structure diagram
在定位系統(tǒng)中,智能手機(jī)作為接收端,其處理流程圖如圖3所示。首先,智能手機(jī)通過攝像頭捕獲包含LED-ID信息的條紋圖像,并通過手機(jī)內(nèi)部的IMU獲取除了航向角之外所需要的角度信息。然后,通過圖像處理算法(灰度化、二值化和開閉運(yùn)算等)對LED燈的投影(包含燈珠投影)進(jìn)行處理,對其解碼獲取所拍攝LED光源的ID信息,并查詢數(shù)據(jù)庫獲得LED燈以及標(biāo)記燈珠的世界坐標(biāo)。同時利用最小二乘法對二值化之后的條紋圖像進(jìn)行擬合,得到LED燈投影的橢圓擬合方程,從而獲取LED燈投影的質(zhì)心和標(biāo)記燈珠在智能手機(jī)成像平面上的像素坐標(biāo)。最后再通過改進(jìn)航向角算法和定位算法,得到接收端在世界坐標(biāo)系中的位置,從而實現(xiàn)對接收端的定位。
圖3 接收端處理流程圖Figure 3 Receiver processing flow chart
在定位系統(tǒng)中,智能手機(jī)捕獲條紋圖像后通過解碼ID信息和查詢數(shù)據(jù)庫便可得到LED燈及標(biāo)記燈珠在世界坐標(biāo)系中的坐標(biāo),分別記為SW和HW。 圖4所示為智能手機(jī)成像平面的示意圖。圖中,OCAB為智能手機(jī)的成像平面,S′為LED燈投影的質(zhì)心,H′為標(biāo)記燈珠在成像平面的投影,OC為智能手機(jī)的相機(jī)焦點。θ1和θ2分別為成像平面的邊OB、OC與水平面之間的夾角,可以通過IMU測量的OB、OC方向上的加速度和重力加速度這3個參數(shù)求得。MN為成像平面與水平面的交線,且MN過擬合橢圓的圓心S′,E′F′為交線MN與擬合橢圓的交線。φ1和φ2分別為MN與OB和OC的夾角。S″和H″為OCS′和OCH′的延長線與高度為h的水平面的交點。
圖4 智能手機(jī)成像平面示意圖Figure 4 Imaging plane schematic diagram
式中,f為智能手機(jī)的相機(jī)焦距。
智能手機(jī)通過對捕獲的條紋圖像進(jìn)行圖像處理,可以獲取S′和H′在成像平面上的像素坐標(biāo),記為(uS,vS)和(uH,vH)。根據(jù)其像素坐標(biāo)和B、C的坐標(biāo),可以求得S′和H′在坐標(biāo)系O-XYZ中的坐標(biāo)。此時,OC、S′、H′的坐標(biāo)都已知,令S″和H″分別為OCS′和OCH′的延長線與高度為h的水平面的交點,則S″和H″的坐標(biāo)為
本文中的定位算法涉及到3個坐標(biāo)系:相機(jī)坐標(biāo)系、世界坐標(biāo)系以及成像平面中的像素坐標(biāo)系。若點P位于3個坐標(biāo)系中,則相機(jī)坐標(biāo)系中的坐標(biāo)PC(XC,YC,ZC)與像素坐標(biāo)系中的坐標(biāo)p(u,v)和世界坐標(biāo)系中的坐標(biāo)PW(XW,YW,ZW)之間的轉(zhuǎn)換關(guān)系為
式中:fx為相機(jī)焦距與像素點大小之比;(u0,v0)為成像平面中心點的像素坐標(biāo);ZC為點P在相機(jī)坐標(biāo)系中的Z軸坐標(biāo);R為旋轉(zhuǎn)矩陣;T為平移矩陣。旋轉(zhuǎn)矩陣R中包括智能手機(jī)姿態(tài)信息中的俯仰角、翻滾角和航向角,其中翻滾角、俯仰角通過IMU獲取,航向角通過上一節(jié)中的改進(jìn)航向角算法獲取。
通過觀察可知,式(4)中只有ZC和T為未知量。已知LED燈圓心S的世界坐標(biāo)SW,只要求出點S在相機(jī)坐標(biāo)系中的坐標(biāo)SC,根據(jù)式(4)就可以得到平移矩陣T。而SC可以通過ZC求得,所以式(4)相當(dāng)于只有一個未知量:點S在相機(jī)坐標(biāo)系中的Z軸坐標(biāo)ZC。
圖5所示為在相機(jī)坐標(biāo)系下定位算法的原理圖。EF為LED燈的一條直徑,E′F′為直徑EF在成像平面上的投影。當(dāng)EF‖E′F′時,可以得到ΔOCEF~ΔOCE′F′。因此,LED燈的圓心S的ZC坐標(biāo)可以寫為
圖5 在相機(jī)坐標(biāo)系下定位算法原理圖Figure 5 Schematic diagram of location algorithm
由于直徑EF在成像平面上的準(zhǔn)確投影并不容易求得,可以使用成像平面中的擬合橢圓與水平面的交線來近似代替真實的直徑投影。
如圖4所示,MN為成像平面與水平面的交線,且MN過擬合橢圓的圓心S′,E′F′為交線MN與擬合橢圓的交線。MN與OC、OB的夾角記為φ1、φ2,由圖可知:
而且由圖還可知,φ1和φ2互余。因此,根據(jù)式(6)可以求出φ1和φ2。
根據(jù)夾角φ1和φ2以及擬合橢圓的方程,可以求得E′F′的長度,代入式(5)便可得到ZC,從而得到LED燈圓心在相機(jī)坐標(biāo)系中的坐標(biāo)SC。將SC和世界坐標(biāo)系中的坐標(biāo)SW代入式(4)便可求得平移矩陣T。最后,將智能手機(jī)在相機(jī)坐標(biāo)系中的坐標(biāo)(0,0,0)代入式(4),就可得到智能手機(jī)在世界坐標(biāo)系中的坐標(biāo),從而實現(xiàn)對智能手機(jī)的定位。
為了驗證定位系統(tǒng)的有效性,本文進(jìn)行了實驗。如圖1所示,在天花板上安裝一個直徑為17.5 cm的圓形LED燈作為發(fā)送端,內(nèi)部裝有一個不閃爍的燈珠作為標(biāo)記。LED燈的額定功率為4.5 W,并以4 kHz的頻率重復(fù)發(fā)送其ID信息。接收端采用型號為魅族M1的智能手機(jī),使用其前置攝像頭捕獲條紋圖像,設(shè)置曝光頻率為5 kHz,并利用IMU獲取除了航向角之外的角度信息。
整個水平實驗區(qū)域為3.6 m×1.8 m,實驗選取1.75和1.45 m兩種不同的高度。在每個高度上將水平區(qū)域劃分為45 cm×45 cm的網(wǎng)格,選取45個網(wǎng)格頂點作為測試點,通過改變智能手機(jī)的姿態(tài),對每個點進(jìn)行6次定位測試。
圖6所示為使用本文所提改進(jìn)航向角算法進(jìn)行定位時各點的平均三維定位誤差。當(dāng)實驗高度為1.75 m時,最大和最小誤差分別為13.9和3.3 cm;當(dāng)實驗高度為1.45 m時,最大和最小誤差分別為12.9和3.1 cm。實驗結(jié)果表明,該系統(tǒng)實現(xiàn)了較高的定位精度。
圖6 兩種實驗高度下的三維定位誤差分布圖Figure 6 Three-dimensional positioning error distribution map under two experimental heights
此外,我們還比較了另外一種使用磁力計獲取航向角進(jìn)行定位的方法。在使用磁力計獲取航向角的實驗中,全部實驗都在普通的室內(nèi)環(huán)境中進(jìn)行,并使用智能手機(jī)內(nèi)部自帶的磁力計(電子羅盤)獲取航向角,沒有經(jīng)過額外處理。同時,為了更接近實際場景(即實際場景中磁力計可能會受到周圍電子設(shè)備磁場的干擾),本文在多個不同時間段內(nèi)都進(jìn)行了實驗,盡量減少在某一場景下的偶然誤差。圖7所示為兩種不同航向角獲取方法在兩個實驗高度上的三維定位誤差累積分布函數(shù)(Cumulative Distribution Function, CDF)。當(dāng)實驗高度分別為1.75和1.45 m時,利用本文提出的改進(jìn)航向角算法獲取航向角進(jìn)行定位,90%的定位誤差分別小于12.5和12.2 cm,平均定位誤差分別為6.9和6.5 cm;利用磁力計獲取航向角進(jìn)行定位,90%的定位誤差分別小于20.3和18.1 cm,平均定位誤差分別為11.4和10.5 cm。通過對比可以明顯地看出,本文所提改進(jìn)航向角算法能夠有效解決磁力計不能提供可靠航向角信息的問題,改善了39%的平均定位誤差,大大提升了定位精度。
圖7 兩種航向角下三維定位誤差累積分布函數(shù)Figure 7 Cumulative distribution function of three-dimensional positioning error under two heading angles
傳統(tǒng)的單燈室內(nèi)定位系統(tǒng)中,接收端使用磁力計獲取的航向角不準(zhǔn)確。針對這一問題,本文提出了一種基于標(biāo)記LED的單燈室內(nèi)定位系統(tǒng)。該系統(tǒng)使用帶有標(biāo)記燈珠的LED作為發(fā)送端,使用改進(jìn)航向角算法來獲取航向角,并且最終通過實驗驗證了該算法的可行性和有效性。在實驗高度分別為1.75和1.45 m時,該方案的平均三維定位誤差分別為6.9和6.5 cm。相較于使用磁力計獲取的航向角,該方案改善了39%的平均定位誤差,實現(xiàn)了更高的定位精度。