陳友榮,陳 浩,鐘陳健,劉半藤,任條娟,周駿華
(1.浙江樹人大學(xué)信息科技學(xué)院,杭州 310015;2.常州大學(xué)信息科學(xué)與工程學(xué)院,江蘇 常州 213164; 3.中移(杭州)信息技術(shù)有限公司,杭州 311100)
近年來,城市的建筑結(jié)構(gòu)日益復(fù)雜,這給消防員的偵察、滅火和搜救等工作帶來極大的挑戰(zhàn)。在復(fù)雜的建筑結(jié)構(gòu)下開展救援行動(dòng),需要獲知消防員的實(shí)時(shí)位置信息,從而保障消防員的自身安全和協(xié)調(diào)整體救援行動(dòng)。但是目前在日常救援過程中,消防員和指揮員只采用對講機(jī)進(jìn)行人工對話,簡單收集消防員的位置和所在位置的火情信息,沒有考慮消防員的精準(zhǔn)定位問題,指揮員和消防員難以準(zhǔn)確獲知各自的位置坐標(biāo)[1]。因此需要一種現(xiàn)場救援環(huán)境下的消防員實(shí)時(shí)定位技術(shù)。
目前實(shí)時(shí)定位主要分為室內(nèi)定位和室外定位。全球衛(wèi)星定位系統(tǒng)已經(jīng)廣泛應(yīng)用到室外目標(biāo)的定位和跟蹤。但是由于衛(wèi)星信號(hào)在室內(nèi)嚴(yán)重衰減,衛(wèi)星定位系統(tǒng)不能應(yīng)用到室內(nèi)環(huán)境,而且較多購物中心、大型超市、地下車庫等建筑物內(nèi)部結(jié)構(gòu)復(fù)雜,室內(nèi)人員容易迷路,因此對室內(nèi)精準(zhǔn)定位的需求較大,且受到學(xué)術(shù)界和產(chǎn)業(yè)界的高度關(guān)注。目前較多學(xué)者側(cè)重于利用WIFI信號(hào)、攝像頭信號(hào)、無線信號(hào)、慣性導(dǎo)航等信號(hào),研究室內(nèi)二維定位算法[2-3],如文獻(xiàn)[4]提出了基于零速度更新的腳踏式慣性導(dǎo)航算法FINS(Foot-mounted INS algorithm),實(shí)現(xiàn)自身的二維定位。文獻(xiàn)[5]提出基于鞋上慣性傳感器的室內(nèi)步行導(dǎo)航算法IPN_S(Indoor Pedestrian Navigation algorithm with shoe-mounted inertial sensors),采用零速度更新和9維擴(kuò)展卡爾曼濾波器估計(jì)自身二維定位。一部分學(xué)者側(cè)重于利用單個(gè)或多個(gè)信號(hào)研究室內(nèi)三維定位算法,如利用現(xiàn)場部署攝像頭的圖像數(shù)據(jù)[6],激光信號(hào)[7],聲音信號(hào)[8],LED燈光信號(hào)[9]和超寬帶信號(hào)[10]等單一信號(hào)實(shí)現(xiàn)室內(nèi)三維定位。文獻(xiàn)[11]利用地磁信號(hào)、轉(zhuǎn)向角傳感器和氣壓傳感器等傳感器融合計(jì)算三維定位。文獻(xiàn)[12]提出一種三維室內(nèi)定位算法IPA_3D(3D Indoor Positioning Algorithm),即利用加速度計(jì)、陀螺儀和氣壓計(jì)等低成本傳感器,采用15維擴(kuò)展卡爾曼濾波器融合計(jì)算室內(nèi)人員的相對三維位置。
目前關(guān)于消防員的室內(nèi)定位算法的研究結(jié)果非常少,主要集中在RFID、慣性導(dǎo)航方面的定位算法研究。如文獻(xiàn)[13-14]采集所有消防員的信息,采用集中式方法計(jì)算消防員的位置。集中式方法需要收集所有傳感節(jié)點(diǎn)信息。文獻(xiàn)[15-16]利用RFID[15]、聲音[16]等信號(hào)對室內(nèi)人員進(jìn)行定位。文獻(xiàn)[17]考慮野外火災(zāi)救援場景,考慮部署在貨車上的基站設(shè)備和消防員身上的beacon節(jié)點(diǎn),根據(jù)基站設(shè)備信號(hào)計(jì)算自身位置坐標(biāo)。
由表1可知,上述算法存在一定缺點(diǎn),不能有效解決缺電、出現(xiàn)大量濃煙、烈火等火災(zāi)現(xiàn)場下的室內(nèi)定位問題。因此在上述文獻(xiàn)的基礎(chǔ)上,結(jié)合三軸加速度計(jì)、三軸陀螺儀、三軸磁力計(jì)、氣壓計(jì)等多個(gè)傳感器,提出一種基于多傳感器的室內(nèi)三維定位算法ITPA(Indoor Three-dimensional Positioning Algorithm based on multi-sensor)。即當(dāng)消防員進(jìn)入室內(nèi)進(jìn)行救援行動(dòng)時(shí),通過氣壓計(jì)輸出數(shù)據(jù)和Kalman濾波,計(jì)算消防員所在的高度和樓層,判斷平地行走、上下樓梯、上下電梯等行為。通過三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)的數(shù)據(jù),采用過零檢測識(shí)別消防員靜止和運(yùn)動(dòng)情況,并通過捷聯(lián)慣導(dǎo)處理和航向角計(jì)算移動(dòng)偏移的坐標(biāo)。最終選擇第一層的樓梯位置作為原點(diǎn),以樓梯為參照點(diǎn),采用Kalman融合算法計(jì)算消防員的三維位置坐標(biāo)??傊?當(dāng)消防員處于復(fù)雜室內(nèi)環(huán)境下運(yùn)動(dòng)時(shí),本算法不僅能夠?qū)崟r(shí)判別其行為情況,還能計(jì)算3維位置,可降低定位誤差,同時(shí)解決火災(zāi)復(fù)雜環(huán)境下室內(nèi)消防員的定位問題,為其他算法提供位置信息。
表1 室內(nèi)定位算法分析
基于多傳感器的室內(nèi)三維定位算法的原理如圖1所示。首先將加速度計(jì)等傳感器綁在腳上獲取消防員行走的各個(gè)數(shù)據(jù)。其次通過氣壓計(jì)的值,采用Kalman濾波算法對當(dāng)前的高度數(shù)據(jù)進(jìn)行濾波,并通過行為閾值判斷方法判斷平地行走、上下樓梯、上下電梯等行為。由于三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)的輸出數(shù)據(jù)存在漂移誤差,即當(dāng)消防員在靜止的狀態(tài)下仍輸出明顯波動(dòng)的數(shù)據(jù),因此采用過零檢測判斷消防員是否處于靜止?fàn)顟B(tài),如果處于靜止?fàn)顟B(tài),則將該三個(gè)傳感器的輸出值歸零。如果不為零,則把加速度計(jì),陀螺儀和磁力計(jì)數(shù)據(jù)經(jīng)過捷聯(lián)慣導(dǎo)計(jì)算處理,同時(shí)結(jié)合航向角數(shù)據(jù),計(jì)算平面二維位置信息。最后采用Kalman融合估計(jì)消防員的三維定位坐標(biāo),從而提高定位的準(zhǔn)確度。但是ITPA算法仍需要解決以下3個(gè)問題:①如何通過氣壓計(jì)判斷當(dāng)前的高度、移動(dòng)行為和當(dāng)前樓層;②如何根據(jù)三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì),計(jì)算當(dāng)前平面的二維坐標(biāo);③如何采用Kalman融合算法融合估計(jì)當(dāng)前信息,獲取消防員的室內(nèi)三維坐標(biāo),這三個(gè)問題的具體解決如下。
圖1 室內(nèi)三維定位算法原理
在消防員行走過程中,每個(gè)跨步中腳都要經(jīng)歷平穩(wěn)、邁步、再次平穩(wěn)的周期性變化過程。但是當(dāng)消防員的腳處于平穩(wěn)狀態(tài)時(shí),傳感器采集到的數(shù)據(jù)仍會(huì)出現(xiàn)一定的漂移,會(huì)影響后續(xù)的定位效果,提高了定位誤差。因此考慮根據(jù)加速度計(jì)和陀螺儀輸出的信息,考慮加速度的幅值均方根、加速度的幅值方差和角速度的幅值均方根的情況,實(shí)現(xiàn)過零監(jiān)測,判斷消防員是否靜止在地面上,從而控制和消除數(shù)據(jù)漂移誤差。具體條件如下:
t時(shí)刻的合加速度值為
(1)
其中,at表示t時(shí)刻的三個(gè)方向的合加速度大小。
(2)
(3)
其中,C1表示加速度幅值均方根條件的判斷指示符,thmin和thmax表示根據(jù)實(shí)際情況設(shè)置的幅值均方根條件最小和最大閾值。
令平均加速度為
(4)
(5)
加速度的幅值方差條件為
(6)
其中,C2表示加速度幅值方差條件的判斷指示符,thσ-min表示根據(jù)實(shí)際情況設(shè)置的幅值方差閾值。
令角速度的幅值均方根為
(7)
(8)
其中,C3表示角速度的幅值均方根條件的判斷指示符號(hào),thw-max表示根據(jù)實(shí)際情況設(shè)置的角速度閾值。
上述3個(gè)條件中,C1表示加速度是在一定的范圍內(nèi),接近重力值。C2表示加速度的波動(dòng)不能太大,保持穩(wěn)定。C3表明角速度小于閾值,沒有發(fā)生轉(zhuǎn)動(dòng)。只有當(dāng)C1,C2和C3同時(shí)為1時(shí),才判定消防員的腳落在地面上,沒有移動(dòng),此時(shí)腳處于平穩(wěn)態(tài)。
高度和移動(dòng)行為判斷包括高度獲取,卡爾曼濾波和異常數(shù)據(jù)處理、移動(dòng)行為判斷和修正3個(gè)方面。
1.3.1 高度獲取
采用氣壓計(jì)獲取消防員位置的高度信息,并結(jié)合該高度信息判斷移動(dòng)行為和所在樓層。即根據(jù)大氣壓力,計(jì)算海拔高度。
(9)
其中,ρt表示t時(shí)刻消防員所處位置的大氣壓力值,ρ0表示標(biāo)準(zhǔn)大氣壓力值1.013 25×105Pa,Ht表示t時(shí)刻消防員所處的海拔高度,單位m。
由于三維定位所需的是相對海拔高度值,因此采用以下公式計(jì)算Δht。
Δht=Ht-h0
(10)
其中,Δht表示t時(shí)刻消防員所處的相對海拔高度,h0表示起始位置的海拔高度。
1.3.2 卡爾曼濾波和異常數(shù)據(jù)處理
由于相對海拔高度值Δht中具有一定噪聲,因此需要對Δht進(jìn)行卡爾曼濾波處理,其所對應(yīng)的空間模型為:
(11)
建立觀測方程為:
(12)
(13)
結(jié)合時(shí)間更新方程和測量更新方程進(jìn)行迭代計(jì)算,獲得濾波后的相對海拔高度值。
通過過零檢測可將每一腳步劃分為邁步期與平穩(wěn)期兩種狀態(tài)。由于氣壓計(jì)存在一定的不穩(wěn)定性,且考慮腳步邁步期的高度變化較大,因此根據(jù)過零檢測的結(jié)果,分析當(dāng)前時(shí)刻是否處于平穩(wěn)期。如果處于平穩(wěn)期且該步平穩(wěn)期內(nèi)Kalman濾波器輸出的相對海拔高度數(shù)據(jù)個(gè)數(shù)大于或等于100個(gè),選擇100個(gè)相對海拔高度值,否則如果該步平穩(wěn)期較短且開始進(jìn)入邁步期,即相對海拔高度數(shù)據(jù)個(gè)數(shù)小于100個(gè)時(shí),選擇該步平穩(wěn)期內(nèi)的所有相對海拔高度數(shù)據(jù)。采用箱型圖方法對所選擇的相對海拔高度數(shù)據(jù)進(jìn)行異常點(diǎn)檢測。令H表示所選擇的相對海拔高度數(shù)據(jù)集合。對集合H內(nèi)所有元素進(jìn)行排序,選擇排序第25%的相對海拔高度值作為上四分位值U,選擇排序第75%的相對海拔高度值作為下四分位值L,即集合H內(nèi)只有1/4個(gè)數(shù)大于U,只有1/4個(gè)數(shù)小于L。則定義上界高度和下界高度為
hupper=U+1.5(U-L)
(14)
hlower=U-1.5(U-L)
(15)
其中,hupper表示上界高度數(shù)值,hlower表示下界高度數(shù)值。
(16)
(17)
1.3.3 移動(dòng)行為判斷和修正
根據(jù)經(jīng)過濾波和異常點(diǎn)處理后的高度數(shù)據(jù),判斷消防員的移動(dòng)行為。為區(qū)分平地行動(dòng)、上下樓梯和上下電梯的行為,引入λh和μh兩個(gè)正閾值。如果前后兩個(gè)時(shí)刻的平均高度變化的差值不大于λh,則表示消防員在平面上行動(dòng)。差值大于λh,則表示消防員在走樓梯或乘坐電梯。而μh區(qū)分消防員是在走樓梯還是乘坐電梯。具體算法偽代碼如下:
1. if |h′t-h′t-1|≤λhthen在平面上行動(dòng)
2. else if (h′t-h′t-1)≥μhthen乘坐電梯且上行
3. else if (h′t-h′t-1)≤-μhthen乘坐電梯且下行
4. else if (h′t-h′t-1)>λhthen向上走樓梯
5. else向下走樓梯
6. end if
在實(shí)際的判斷過程中,由于沒有考慮以下情況,會(huì)出現(xiàn)錯(cuò)誤判斷,需要加入一定的結(jié)果修正,從而保證判斷的準(zhǔn)確度。
情況1電梯啟動(dòng)是一個(gè)慢慢加速過程。在電梯啟動(dòng)和停止部分會(huì)出現(xiàn)上下樓梯的錯(cuò)誤判斷。修正辦法:在判斷行為為乘坐電梯后,則計(jì)算開始乘樓梯行動(dòng)的判斷部分的時(shí)間長度。若時(shí)間長度大于η1,則判斷消防員的行為為乘坐電梯,將在開始,中間和結(jié)束階段中走樓梯的判斷結(jié)果直接修正為乘坐電梯。如果在結(jié)束部分出現(xiàn)在平面上行動(dòng)的判斷結(jié)果,則結(jié)束修正。
情況2移動(dòng)行為判斷為上下樓梯,但在中間部分可能會(huì)出現(xiàn)乘坐電梯的誤判斷。修正辦法:在判斷行為為上下樓梯后,則計(jì)算上下樓梯行動(dòng)的判斷部分的時(shí)間長度。若時(shí)間長度大于η2,則判斷消防員的行為為上下樓梯,將在開始,中間和結(jié)束階段中乘坐電梯的判斷結(jié)果直接修正為上下樓梯。如果在結(jié)束部分出現(xiàn)在平面上行動(dòng)的判斷結(jié)果,則結(jié)束修正。
情況3移動(dòng)行為判斷為上下樓梯,中間部分會(huì)出現(xiàn)在平面上行動(dòng)的判斷,無法區(qū)分是在樓梯上停留還是錯(cuò)誤判斷。修正辦法:計(jì)算平面上行動(dòng)的判斷部分的時(shí)間長度。若時(shí)間長度大于η3,則保留判斷結(jié)果,否則修正為上下樓梯行為。
情況4移動(dòng)行為判斷為平面上行動(dòng),中間部分會(huì)出現(xiàn)部分判定為上下樓梯或乘坐電梯的錯(cuò)誤判斷。修正辦法:如果移動(dòng)行為判斷為平面上行動(dòng)且中間部分出現(xiàn)上下樓梯或乘坐電梯,則計(jì)算上下樓梯或乘坐電梯判斷部分的時(shí)間長度。若時(shí)間長度小于η4,則修正為平面上行動(dòng)。
二維坐標(biāo)計(jì)算包括移動(dòng)距離計(jì)算和位置獲取兩個(gè)方面。
1.4.1 移動(dòng)距離計(jì)算
考慮到定位對象是消防員,結(jié)合其日常工作環(huán)境分析發(fā)現(xiàn):消防員在救災(zāi)現(xiàn)場不可能像普通行人那樣走路,他們的動(dòng)作更復(fù)雜,跑步、不平坦的地勢和擺動(dòng)幅度大的行走是消防員不可避免的。因此提出一種新的移動(dòng)距離計(jì)算方法,它除了能計(jì)算普通行人的移動(dòng)距離外,更適用于像消防員這類人的移動(dòng)距離計(jì)算。下面就是這種算法的步驟:
(18)
(19)
其中,q0、q1、q0、q0表示四元數(shù)。通過加速度計(jì)和陀螺儀兩個(gè)傳感器,采用畢卡逼近法更新四元數(shù),可獲得當(dāng)前時(shí)刻的旋轉(zhuǎn)矩陣。
(20)
其中,T是采樣周期。
步驟3修正速度。根據(jù)過零檢測的結(jié)果,分析當(dāng)前時(shí)刻是否處于平穩(wěn)期。如果處于平穩(wěn)期且該步平穩(wěn)期內(nèi)的速度數(shù)據(jù)個(gè)數(shù)大于或等于100個(gè),選擇100個(gè)速度數(shù)據(jù),否則如果該步平穩(wěn)期較短且開始進(jìn)入邁步期,即速度數(shù)據(jù)個(gè)數(shù)小于100個(gè),選擇該步平穩(wěn)期內(nèi)的所有相對速度數(shù)據(jù)。令Vpi表示所選擇平穩(wěn)期的速度數(shù)據(jù)集合,計(jì)算Vpi的速度平均值,即
(21)
根據(jù)平均速度βt,通過式(22)修正邁步期的速度。
(22)
根據(jù)平均速度βt,修正平穩(wěn)期的速度為:
(23)
步驟4計(jì)算位移增量ΔPt:
(24)
步驟5計(jì)算平面上移動(dòng)距離:
(25)
其中,SLt表示第t時(shí)刻的移動(dòng)距離。
循環(huán)執(zhí)行步驟1~步驟5,則可以獲得在二維平面上移動(dòng)的距離。
1.4.2 位置獲取
假定載體坐標(biāo)系的X軸與腳相一致后,根據(jù)陀螺儀和磁力計(jì)兩個(gè)傳感器輸出的值,采用互補(bǔ)濾波修正航向角,并通過移動(dòng)距離計(jì)算自身二維位置。即:
(26)
(27)
(28)
其中,θs=arctan(|T22/T12|)。
在獲得高度值和二維坐標(biāo)的信息后,采用Kalman融合算法將信息進(jìn)行融合處理。令Xt表示t時(shí)刻Kalman融合算法的狀態(tài)向量估計(jì)值,由位置、速度、姿態(tài)角、加速度和角速度構(gòu)成,即Xt=[rt,ct,φt,bt,ηt]T,其中rt表示3維位置估計(jì)值,ct表示3維速度估計(jì)值,φt表示3維姿態(tài)角估計(jì)值,bt表示3維加速度計(jì)零偏誤差值,ηt表示3維陀螺儀零偏值。其所對應(yīng)的空間模型為:
Xt=FtXt-1+Γt-1Wt-1
(29)
其中,Xt表示t時(shí)刻融合濾波狀態(tài)向量的估計(jì)值,Ft表示狀態(tài)轉(zhuǎn)移矩陣,Wt-1表示t-1時(shí)刻的過程噪聲,Γt-1表示系統(tǒng)噪聲增益矩陣。Ft可表示為:
(30)
其中,ξ表示t時(shí)刻的旋轉(zhuǎn)矩陣,ψ表示加速度an的反對稱矩陣,Δt表示采樣間隔,I3×3表示3×3單位矩陣,O3×3表示全為0的3×3矩陣。ψ可表示為:
(31)
系統(tǒng)噪聲增益矩陣Γt-1為
(32)
建立觀測方程為:
Zt=HtXt+nt
(33)
其中,Zt表示t時(shí)刻融合濾波的測量值,nt表示t時(shí)刻的測量噪聲,Ht表示濾波算法的測量矩陣。Ht可表示為:
Ht=[I3×3ΔtI3×3O3×3O3×3O3×3O3×3]
(34)
本算法可直接應(yīng)用到消防員上的嵌入式設(shè)備中,實(shí)現(xiàn)消防員的實(shí)時(shí)三維定位。如圖2所示,其三維定位算法的具體實(shí)現(xiàn)步驟如下:
步驟1初始化各個(gè)參數(shù),包括起始位置的海拔高度、橫軸、縱軸和豎軸的方向、二維平面坐標(biāo)和航向角等信息。
步驟2實(shí)時(shí)采集三軸加速度計(jì)、三軸陀螺儀、三軸磁力計(jì)的姿態(tài)傳感器和氣壓計(jì)數(shù)值,并存儲(chǔ)到存儲(chǔ)器中。
步驟3根據(jù)加速度計(jì)和陀螺儀輸出的信息,計(jì)算當(dāng)前時(shí)刻的加速度幅值均方根條件C1、加速度幅值方差條件C2和角速度幅值均方根條件C3。如果C1,C2和C3的值都為1時(shí),判斷當(dāng)前時(shí)刻處于平穩(wěn)期,否則處于邁步期。
步驟4根據(jù)當(dāng)前的氣壓計(jì)值,參考起始位置的海拔高度,計(jì)算相對海拔高度值。采用卡爾曼濾波算法對高度數(shù)據(jù)進(jìn)行濾波,消除噪聲。
步驟5根據(jù)過零檢測的結(jié)果,分析當(dāng)前時(shí)刻是否處于平穩(wěn)期。如果處于平穩(wěn)期且該平穩(wěn)期內(nèi)卡爾曼濾波后輸出的相對海拔高度數(shù)據(jù)個(gè)數(shù)大于或等于100個(gè),則選擇該100個(gè)相對海拔高度數(shù)據(jù),否則如果處于平穩(wěn)期且該平穩(wěn)期內(nèi)卡爾曼濾波后輸出的相對海拔高度數(shù)據(jù)個(gè)數(shù)小于100個(gè),則直接選擇該平穩(wěn)期內(nèi)所有相對海拔高度數(shù)據(jù),否則直接跳到步驟2。采用箱型圖方法對所選擇的相對海拔高度數(shù)據(jù)進(jìn)行異常點(diǎn)檢測和修正,將這些相對海拔數(shù)據(jù)的平均值作為當(dāng)前時(shí)刻的消防員的高度值,跳到步驟6;
步驟6根據(jù)前后高度值,識(shí)別平面行動(dòng)、上下樓梯和上下電梯等消防員的行為,并對識(shí)別結(jié)果進(jìn)行修正,從而保證判斷的準(zhǔn)確度。
步驟7根據(jù)加速度計(jì)和陀螺儀的值,計(jì)算和修正當(dāng)前二維的移動(dòng)距離。根據(jù)陀螺儀和磁力計(jì)的值,采用互補(bǔ)濾波修正航向角,并通過移動(dòng)距離計(jì)算自身的二維位置坐標(biāo)。
步驟8采用Kalman融合方法對信息進(jìn)行融合處理,計(jì)算和輸出消防員的室內(nèi)三維坐標(biāo)。
圖2 工作流程圖
步驟9如果消防員手動(dòng)結(jié)束室內(nèi)三維定位功能,則退出,否則跳到步驟2。
循環(huán)執(zhí)行步驟2~步驟9,實(shí)現(xiàn)消防員室內(nèi)實(shí)時(shí)三維定位。
在實(shí)驗(yàn)過程中,選擇MPU9025姿態(tài)傳感器和MS5611氣壓計(jì)。將上述兩個(gè)模塊固定在實(shí)驗(yàn)人員的腳部,并通過藍(lán)牙模塊、STM32開發(fā)板和上位機(jī)軟件,實(shí)現(xiàn)實(shí)驗(yàn)人員的運(yùn)動(dòng)數(shù)據(jù)采集,且每次測試時(shí)記錄下經(jīng)過測量點(diǎn)的真實(shí)步數(shù),位置和移動(dòng)距離等信息,方便后續(xù)誤差分析。MPU9250姿態(tài)傳感器由3軸加速度、3軸陀螺儀和3軸磁力計(jì)組成。其中3軸陀螺儀輸出具有三個(gè)可選擇量程(±250 °/s,±500 °/s,±1 000 °/s)的16 位三軸角速度數(shù)據(jù);3軸加速度輸出具有三個(gè)可選擇量程(±2gn,±4gn,±8gn,±16gn)的16位三軸加速度數(shù)據(jù);3軸磁力計(jì)輸出具有14位和16位分辨率的磁力計(jì)數(shù)據(jù),同時(shí)最大測量范圍在±4 800 μT。MS5611氣壓計(jì)內(nèi)置24位模數(shù)轉(zhuǎn)換器,支持IIC和SPI通訊協(xié)議,測量/工作輸出范圍:1 000 mPa~1 200 mPa,分辨率10 cm。根據(jù)實(shí)驗(yàn)人員的實(shí)測運(yùn)動(dòng)數(shù)據(jù),選擇以下參數(shù),通過MATLAB軟件計(jì)算消防員室內(nèi)三維位置、步數(shù)誤差、距離誤差和漂移誤差:thmin為0,thmax為1,thσ-min為1,thw-max為1,λh為0.14,μh為0.6,nt、wt-1、qt和wt-1為隨機(jī)高斯噪聲的協(xié)方差,采樣周期T為0.01 s。
其中,定義步數(shù)誤差errorzupt為計(jì)算所得的當(dāng)前步數(shù)和真實(shí)步數(shù)差值的絕對值與真實(shí)步數(shù)的比值,可表示為:
errorzupt=(|steptrue-stepcal|)/steptrue
(35)
其中,steptrue表示測量過程中的真實(shí)步數(shù)。stepcal表示算法計(jì)算所得的步數(shù)。定義移動(dòng)距離誤差errordis為計(jì)算所得的移動(dòng)距離和真實(shí)距離差值的絕對值與真實(shí)距離的比值,可表示為:
errordis=(|distrue-discal|)/distrue
(36)
其中,distrue表示測量過程中的真實(shí)移動(dòng)距離。discal表示算法計(jì)算所得的移動(dòng)路程。定義漂移誤差 errordrift為計(jì)算所得的三維坐標(biāo)和真實(shí)三維位置坐標(biāo)差值的模值與真實(shí)距離的比值,可表示為:
(37)
其中,(xtrue,ytrue,ztrue)表示測量過程中的真實(shí)坐標(biāo)。(xcal,ycal,zcal)表示算法計(jì)算所得的坐標(biāo)。
選擇3.1節(jié)中參數(shù),比較FINS[4],IPN_S[5],IPA_3D[12]和ITPA算法的消防員室內(nèi)三維位置、步數(shù)誤差、距離誤差和漂移誤差。其中FINS和IPN_S算法是二維定位算法,在算法比較中直接選擇ITPA算法的高度計(jì)算方法計(jì)算其高度值,從而獲得三維位置坐標(biāo)。
3.2.1 直線行走
如圖3所示,起始點(diǎn)矩形經(jīng)過11個(gè)中間測量點(diǎn)(菱形),到達(dá)終點(diǎn)測量點(diǎn)圓形。真實(shí)軌跡是朝一個(gè)方向直線行走30 m。從圖中可以發(fā)現(xiàn)軌跡在x軸方向上穩(wěn)定增加,而在y軸方向上幾乎沒有出現(xiàn)明顯的波動(dòng),較接近真實(shí)路線。
圖3 直線行走的定位坐標(biāo)圖
如圖4所示,ITPA算法的直線行走步數(shù)誤差在8%以下,遠(yuǎn)低于FINS,IPN_S和IPA_3D的直線行走步數(shù)誤差。這是因?yàn)?FINS,IPN_S和IPA_3D算法采用單個(gè)條件或結(jié)合瞬時(shí)時(shí)刻的數(shù)據(jù)分析行人行走的邁步態(tài)和平穩(wěn)態(tài),從而判斷其行走步數(shù),而ITPA算法選取加速度的幅值均方根、加速度的幅值方差和角速度的幅值均方根的情況,實(shí)現(xiàn)過零監(jiān)測,降低了步數(shù)判斷的誤差。
圖4 直線行走的步數(shù)誤差
如圖5所示,ITPA算法的直線行走距離誤差低于FINS,IPN_S和IPA_3D的直線行走距離誤差,但是當(dāng)移動(dòng)距離較大時(shí),ITPA算法和FINS算法的距離誤差相差不大。這是因?yàn)?在直線行走時(shí),ITPA算法和FINS算法基本上采用相同的方法,但是由于ITPA算法根據(jù)平穩(wěn)期的平均速度修正邁步期和平穩(wěn)期的速度,從而獲得較接近實(shí)際的速度,降低了距離誤差,因此其距離誤差略低于FINS算法的距離誤差。IPN_S 和IPA_3D采用靜止時(shí)的速度作為觀測量修正位置,其距離誤差略高。
圖5 直線行走的距離誤差
如圖6所示,ITPA算法的直線行走漂移誤差低于FINS,IPN_S,IPA_3D的直線行走漂移誤差。這是因?yàn)?ITPA算法的步數(shù)判斷較準(zhǔn)確,高度且2維坐標(biāo)獲取的誤差較小,同時(shí)采用Kalman融合算法對由位置、速度、姿態(tài)角、加速度和角速度構(gòu)成的狀態(tài)向量進(jìn)行融合估計(jì),降低了系統(tǒng)噪聲,并有效防止誤差的累計(jì)。
圖6 直線行走的漂移誤差
3.2.2 樓梯行走
如圖7所示,起始點(diǎn)(矩形),先向上經(jīng)過一段樓梯和中間平臺(tái),再換一個(gè)方向向上經(jīng)過另一段樓梯,最終行走到上一層樓,即經(jīng)過11個(gè)中間測量點(diǎn)(菱形),到達(dá)終點(diǎn)測量點(diǎn)(圓形)。從圖中可以發(fā)現(xiàn)軌跡在z軸上穩(wěn)定增加,而在x軸和y軸上有規(guī)律的變化,其行走的路線較接近真實(shí)路線。
圖7 樓梯行走的定位坐標(biāo)圖
如圖8所示,ITPA算法的樓梯行走步數(shù)誤差遠(yuǎn)低于FINS,IPN_S和IPA_3D的樓梯行走步數(shù)誤差。這是因?yàn)?ITPA算法選取加速度的幅值均方根、加速度的幅值方差和角速度的幅值均方根作為消防員邁出一步的判斷標(biāo)準(zhǔn),不受高度對步數(shù)判斷的影響,其步數(shù)誤差與直線行走的步數(shù)誤差相差不大。而FINS,IPN_S和IPA_3D只是考慮部分條件,走樓梯的行為對其步數(shù)判斷影響較大,其步數(shù)誤差明顯高于直線行走的步數(shù)誤差。
圖8 樓梯行走的步數(shù)誤差
如圖9所示,ITPA算法通過分析人行走時(shí)的狀態(tài),及時(shí)對不同階段的速度進(jìn)行修正,同時(shí)根據(jù)高度值判斷行人所在樓層高度,并及時(shí)修正樓層高度,并根據(jù)移動(dòng)行為對三維坐標(biāo)觀測值進(jìn)行修正,有效降低了累計(jì)誤差,同時(shí)結(jié)合樓層高度和移動(dòng)行為進(jìn)行數(shù)據(jù)融合,降低了數(shù)據(jù)的漂移對算法影響,因此ITPA算法的樓梯行走距離誤差低于FINS,IPN_S和IPA_3D的樓梯行走距離誤差,且與其直線行走距離誤差相差不大。但是FINS,IPN_S和IPA_3D的樓梯行走距離誤差比其直線行走距離誤差提高較多。
圖9 樓梯行走的距離誤差
如圖10所示,FINS和IPN_S算法是二維定位,其高度計(jì)算方法采用ITPA算法的高度計(jì)算方法,對氣壓計(jì)的輸出值進(jìn)行Kalman濾波和異常數(shù)據(jù)處理等,提高了高度精度,因此其漂移誤差遠(yuǎn)低于IPA_3D算法。由于樓梯上行走x和y軸的變化相對不大,主要是在z軸上逐漸增加,因此FINS,IPN_S和ITPA算法的漂移誤差相差不大,且與其各自直線行走的漂移誤差提高不多。由于ITPA算法采用了Kalman融合估計(jì),并根據(jù)移動(dòng)行為對觀測值進(jìn)行修正,從而降低了算法的漂移誤差,因此ITPA算法略低于FINS和IPN_S算法。
圖10 樓梯行走的漂移誤差
3.3.3 綜合行走
如圖11所示,起始點(diǎn)(矩形),先沿樓梯行走至第二層,再在該層樓行走一個(gè)矩形后,經(jīng)過樓梯返回至第一層,即經(jīng)過11個(gè)中間測量點(diǎn)(菱形)到達(dá)終點(diǎn)測量點(diǎn)(圓形)。從圖11可以發(fā)現(xiàn)軌跡在樓梯行走的時(shí)候z軸上穩(wěn)定增加,而x軸和y軸上有規(guī)律的變化,在平面行走時(shí),z軸基本無變化,且其計(jì)算路徑較接近真實(shí)路線。
圖11 綜合行走的定位圖
圖12 綜合行走的步數(shù)誤差
如圖12所示,ITPA算法不受行走路徑的影響,其綜合行走的步數(shù)誤差低于FINS,IPN_S和IPA_3D的綜合行走步數(shù)誤差,且比樓梯行走和直線行走的步數(shù)誤差略高。IPN_S和IPA_3D受高度變化的影響較大,其綜合行走步數(shù)誤差遠(yuǎn)大于樓梯行走和直線行走的步數(shù)誤差。其原因與樓梯行走的類似,請參考3.2.2節(jié)。
如圖13所示,ITPA算法不受行走路徑的影響,其綜合行走距離誤差遠(yuǎn)低于FINS,IPN_S和IPA_3D的綜合行走距離誤差,且與其樓梯行走和直線行走的距離誤差相差不大。FINS,IPN_S和IPA_3D的綜合行走距離誤差比其樓梯行走和直線行走的距離誤差提高較多,其中IPN_S達(dá)到200%以上,距離誤差較大。其原因與樓梯行走的類似,請參考3.2.2節(jié)。
圖13 綜合行走的距離誤差
如圖14所示,IPA_3D算法的漂移誤差較大,遠(yuǎn)大于其樓梯行走和直線行走的漂移誤差。FINS,IPN_S和ITPA算法選用相同的高度計(jì)算方法,其綜合行走漂移誤差相對較小,其中ITPA算法的綜合行走漂移誤差最小,且與其樓梯行走和直線行走的漂移誤差相差不大。其原因與樓梯行走的類似,請參考3.2.2節(jié)。
圖14 綜合行走的漂移誤差
利用氣壓計(jì)和包含三軸加速度計(jì)、三軸陀螺儀和三軸磁力計(jì)的姿態(tài)傳感器數(shù)據(jù),提出一種基于多傳感器的室內(nèi)三維定位算法。首先,提出了傳感器數(shù)據(jù)輸出和過零檢測方法,其次,根據(jù)氣壓計(jì)數(shù)據(jù),獲得海拔值,并采用卡爾曼濾波和異常數(shù)據(jù)處理等方法,獲得消防員的當(dāng)前高度,并提出消防員移動(dòng)行為判斷和修正方法。接著,通過移動(dòng)距離計(jì)算和位置獲取,計(jì)算二維坐標(biāo),并采用Kalman融合估計(jì)方法,利用移動(dòng)行為修正觀測值,降低定位誤差。最后給出算法的仿真參數(shù),比較直行行走、樓梯行走和綜合行走的FINS,IPN_S,IPA_3D和ITPA算法的性能。
總之,在直行行走、樓梯行走和綜合行走下,ITPA算法都能獲得較接近真實(shí)路線的移動(dòng)軌跡和消防員室內(nèi)三維位置,降低了算法的步數(shù)誤差、距離誤差和漂移誤差。但是算法目前根據(jù)真實(shí)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行仿真分析和比較,因此下一階段目標(biāo)是將在嵌入式設(shè)備上實(shí)現(xiàn)ITPA算法,實(shí)現(xiàn)算法的應(yīng)用。