禤永哲 詹萬匯 陳少鋒 孫 勁
(廣州大學華軟軟件學院 廣州 510990)
目前在室內定位領域,室內人員的定位主要有GPS 定位、基站定位和WIFI 定位三種[1],但是這三種定位存在以下缺陷:
1)GPS 定位是通過人造衛星進行定位的,通常要在室外露天的狀態下才能進行定位,當信號被遮擋或者削減時,GPS 定位會出現漂移。且GPS 定位其定位的精度低,無法實現在小范圍場所內運動的物體進行定位[2]。
2)基站定位是通過識別網絡中哪一個小區傳輸用戶呼叫并將該信息翻譯成緯度和經度來確定用戶位置[3],只能進行模糊的定位,優點是在室內都能進行定位,但是其定位精度很低[4]。
3)WIFI 定位在一定空間內布設能發出WIFI的熱點設備,并記錄每個熱點設備的坐標和設備號,而定位端只要偵聽到每個熱點之間的信號強弱,根據信號強弱得知物體距離每個熱點的距離,再結合每個熱點的坐標進行運算[5],從而就能計算出物體此時所在的位置,但缺點是要事先對需探測的區域布置熱點,靈活性差。
故此,本設計通過檢測人員在室內的運動軌跡,實現一種以慣性導航為思維導向[6],并和GPS定位相結合的室內定位系統。
一種基于運動軌跡的室內定位系統,整個系統包括移動端和終端平臺端。
移動端以54 路輸入輸出,8 位內核的Arduino Mega2560 R3為處理器[7],處理器接上九軸傳感器、GPS 定位模塊和HC-24 WIFI 模塊。在移動端上,對數據進行初步處理。從九軸傳感器上的加速度傳感器、陀螺儀、地磁傳感器獲得的運動數據測算得出當前人員的運動軌跡,進而獲得相對位置;從GPS 定位模塊也可獲得經緯度,進而獲得絕對位置,并可作為為位置定位提供輔助。通過HC-24 WIFI模塊將信息通過WIFI網絡向終端平臺傳輸。
終端平臺端由WIFI 發射器和上位機組成,是以平臺上的上位機為中心,利用高增益天線和無線路由,通過WIFI網絡接收來自移動端的數據信息,并對其進行解析和處理,通過基于C++圖形用戶界面的Qt程序[8]呈現出來。

圖1 系統總體框架圖
系統的移動端上整合了由陀螺儀、加速度傳感器、地磁傳感器所組成的9軸運動姿態傳感器[9],通過此傳感器,我們可以測出地磁偏角、加速度和物體運動水平旋轉角,將這三組數據結合起來,通過特定算法計算可以獲得運動偏轉方位角和運動向量,這兩個數據最終會經過事先布置的高增益WIFI網絡向終端平臺傳輸。
終端平臺上搭載Qt 應用程序,運用OpenGL 開放圖形庫在系統上建立一個三維直角坐標系[10],當平臺每次接收到運動信息時,會在三維坐標系上通過三角函數運算以及運動向量疊加,從而得到人員在室內所處的位置,并將室內人員不同時期的一系列位置坐標記錄下來,形成運動軌跡記錄,以此實現三維室內實時定位圖。
本設計的三維圖形是由三維坐標點glVertex3f(x,y,z)構成的,通過方法glBegin(type)開始連接各個坐標點,而后通過方法glEnd()結束連線,形成可視圖形,若在Qt 程序上使用方法qglColor(Qt:color),能改變繪制的線段、圖形的邊線顏色。通過方法updateGL()實現圖形界面的實時刷新[11],將繪制的三維圖形呈現出來。
人體在行走的時候重心會近似正弦曲線般上下運動[12],此規律可用于判斷佩戴設備的人員是否在行走。通過九軸運動姿態傳感器內置的地磁傳感器可以計算出磁場方向,再通過陀螺儀獲取傳感器自身的傾斜程度,最后通過九軸運動姿態傳感器內部集成的姿態結算器將磁場方向和傾斜程度進行綜合計算[13],處理之后直接從傳感器獲取的就是地磁方位角信息,此方位角就是絕對方向的偏轉角度。為此還設計了消除初始角度的程序,每次啟動移動端時,首先會讀取前300 個角度數值,然后拋棄不穩定的前20 個值,將剩下的280 個值相加,并除以280,從而得到初始角度平均值記為θ ,從第301 個值開始,之后每次獲得的角度都相應減去θ ,并將其轉換成弧度,最終獲得系統所要用到的相對的方位角弧度r,并將r 傳到上位機進行處理。
通過內置的加速度傳感器可以獲取到人體運動時三個方向的加速度,這三個加速度的變化情況可以用于判斷人體行走的步數,步數可作為統計間隔。具體實現為每50ms從傳感器中讀取到x、y、z 軸上的原始加速度,在卡爾曼濾波處理后,可實現數據降噪的效果[14],得到加速度ax、ay、az,之后每次都會將三個軸獲取的新值記錄下來且新的值都會與上一個值對應相減,從而得到加速度增量Dax、 Day、 Daz,代 入 以 下 公 式 :得出x、y 、z 軸的加速度向量的模D,如圖2 所示向量模D 的大小反映了人體行走時重心的頻率,當D 值的大于40 的次數超過3 次時記為行走一步。每次當有新的行走步數出現時會發出中斷信號,系統會根據此時段每一步三軸加速度大小來判斷每一步的步長,步長就會作為位移增量S ,將S 傳到上位機進行處理。

圖2 行走時重心改變頻率指數
終端平臺從移動端接收到數據后,經過數據分揀,獲取到設備佩戴人員正面朝向的方向和設備啟動時的起始位置正前方所成的相對夾角弧度r,以及室內人員每一步的位移增量S ,并利用三角函數計算出x 軸上的位移偏移量Sx,以及y 軸上的位移偏移量Sy。再與上一次計算得到的坐標進行疊加運算,然后運算出當前的新坐標,從而實現室內定位功能。而每個坐標點之間通過線連接成的線段,正是人員在室內的運動軌跡線段。 Sx、Sy均是由分類討論的方式獲得,具體討論方式如下。
r 為相對偏轉夾角弧度,S 為每一步伐兩腿間的直線距離,Sx、Sy分別為S 在x 軸、y 軸上的偏移分量。
1)若0 ≤r<π 則有

2)若π ≤r<2π 則有


圖3 不顯示軌跡的三維室內定位圖

圖4 顯示運動軌跡的三維室內定位圖
當移動端正處于某個GPS信號較好的環境時,系統會自動通過GPS 定位模塊獲取到人員當前的經緯度信息。尤其是在作業處于就緒狀態時,設備處于露天的室外環境中,若這時啟動系統,系統會通過GPS 定位模塊獲取此時人員的經經度、緯度信息。然后將人員先前測算出的運動軌跡與GPS模塊間斷獲取的絕對經緯度信息和百度地圖結合起來,可實現在百度地圖上顯示人員的運動軌跡,從而實現更加精確的室內定位。

圖5 通過GPS模擬作輔助性定位
本定位系統對于某些特殊場景下的定位有著重大意義,最典型的場景就消防人員進行救援時所處的火場中。火災現場通常是處在復雜樓內環境中,因此沒有良好的露天環境去接收GPS 信號[15],僅僅進行GPS 定位,更不可能在火災發生時布置好特定位置的WIFI 熱點,所以單純的GPS 定位和WIFI 定位不適用,同時消防員的運動范圍一般不會很大,可能就在一個小范圍內進行作業,因此通過基站定位的精確度也達不到這個要求。定位系統可以很好地解決在這種場景下的定位問題。上位機可以將定位信息通過三維圖像的形式展現給指揮人員看,方便指揮人員了解到各個消防員現在所處位置,指揮人員能更靈活地指揮現場,提高火災救援效率。