王豐
摘要:在日常生活中,用戶(hù)可能會(huì)戴手表爬山或者爬樓梯,這兩者的共同特征是手表內(nèi)置的氣壓計(jì)報(bào)出來(lái)的高度值發(fā)生變化。如果再使用GPS定位,可以進(jìn)一步識(shí)別用戶(hù)是爬山還是爬樓梯,但是GPS功耗較大而且信號(hào)有時(shí)候不太穩(wěn)定,即使定位準(zhǔn)確,也無(wú)法區(qū)分用戶(hù)是在爬山還是在山里的大樓里爬樓梯。
本文的方法,抓住爬山和爬樓梯的本質(zhì)特征區(qū)別,通過(guò)手表內(nèi)置的加速度傳感器、陀螺儀以及氣壓計(jì),不需要GPS信號(hào)也可以準(zhǔn)確區(qū)分用戶(hù)是爬山還是爬樓梯,而且可以區(qū)分是攀登山上的階梯還是爬樓房里的階梯,進(jìn)而給智能手機(jī)以及其他無(wú)GPS芯片的智能終端設(shè)備增加了此類(lèi)場(chǎng)景識(shí)別,改善了用戶(hù)體驗(yàn)。
關(guān)鍵詞:佩戴;手表;加速度傳感器 陀螺儀;爬山;爬樓梯
慣性傳感器包含加速度傳感器(獲取平移運(yùn)動(dòng)信息)和陀螺儀(獲取旋轉(zhuǎn)運(yùn)動(dòng)信息)等,可以用來(lái)獲取用戶(hù)運(yùn)動(dòng)的三個(gè)軸的加速度和繞三個(gè)軸的旋轉(zhuǎn)角速度,使用這些數(shù)據(jù)通過(guò)算法可以計(jì)算多種運(yùn)動(dòng)特征。
加速度傳感器內(nèi)置于移動(dòng)終端里,體積小,功耗低,在室內(nèi)運(yùn)動(dòng)沒(méi)有GPS信號(hào)的情況下也可以實(shí)時(shí)地精確地記錄用戶(hù)的運(yùn)動(dòng)信息。
陀螺儀內(nèi)置于移動(dòng)終端里,可以記錄每時(shí)每刻用戶(hù)攜帶的終端設(shè)備繞三個(gè)軸旋轉(zhuǎn)的角速度,進(jìn)而估計(jì)用戶(hù)的轉(zhuǎn)動(dòng)動(dòng)作及其周期性。
氣壓計(jì)可以通過(guò)測(cè)量移動(dòng)終端的氣壓變化,進(jìn)而得到高度值及其變化量。
準(zhǔn)備階段
抓住爬山和爬樓梯的本質(zhì)特征區(qū)別,在無(wú)GPS信號(hào)的情況下,把加速度傳感器、陀螺儀和氣壓計(jì)采集的氣壓值(轉(zhuǎn)化為高度值)數(shù)據(jù)結(jié)合,判斷用戶(hù)是爬山還是爬樓梯,具體方法如下。
(1)使用加速度傳感器判斷相鄰兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq1、Th1,前兩個(gè)步伐和后兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq2和Th2,以及前三個(gè)步伐和后三個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq3和Th3。
例如用戶(hù)走了12步,則相鄰兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq1、Th1為第1步與第2步、第2步與第3步、第3步與第4步,以此類(lèi)推。
前兩個(gè)步伐和后兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq2和Th2為第1、2步與第3、4步,第3、4步與第5、6步,第5、6步與第7、8步,以此類(lèi)推。
前三個(gè)步伐和后三個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq3和Th3為第1、2、3步與第4、5、6步,第4、5、6步與第7、8、9步,第7、8、9步與第10、11、12步,以此類(lèi)推。
(2)計(jì)算在對(duì)應(yīng)的這些時(shí)間區(qū)間內(nèi)的氣壓計(jì)的高度值的增量Hq1、Hh1、Hq2、Hh2、Hq3、Hh3。
這里指的是氣壓計(jì)通過(guò)測(cè)得的氣壓值在內(nèi)部換算之后得到的高度值,這個(gè)高度值的確會(huì)存在個(gè)體差異,也會(huì)有不小的誤差,但是高度值的增量基本上就比較準(zhǔn)確了。本方法只需要使用高度值的增量即可(高度值的增量=對(duì)應(yīng)時(shí)間區(qū)間內(nèi)的終點(diǎn)時(shí)刻的高度值減去起點(diǎn)時(shí)刻的高度值),而且氣壓計(jì)還可以根據(jù)氣象局的高度值數(shù)據(jù)定時(shí)校準(zhǔn)自身的高度值數(shù)據(jù)。
(3)計(jì)算相鄰步伐的高度值增量的偏差abs(Hq1-Hh1)/abs(Hq1+Hh1)、abs(Hq2-Hh2)/abs(Hq2+Hh2) 、abs(Hq3-Hh3)/abs(Hq3+Hh3)。
(4)相鄰步伐的高度值增量的偏差的和abs(Hq1-Hh1)/abs(Hq1+Hh1)+abs(Hq2-Hh2)/abs(Hq2+Hh2) +abs(Hq3-Hh3)/abs(Hq3+Hh3) 是否小于或者等于對(duì)應(yīng)的閾值。
如果是,則認(rèn)為用戶(hù)在爬樓梯;如果否,則認(rèn)為用戶(hù)在爬山。
因?yàn)榕罉翘莸臅r(shí)候,前一次步伐的高度值增量與后一次步伐的高度值增量比較接近,所以對(duì)于相鄰步伐的高度值增量的偏差的和,爬樓梯時(shí)比爬山時(shí)更小;
樓梯的相鄰兩個(gè)臺(tái)階的高度值增量是很接近的,但是爬山的時(shí)候相鄰兩個(gè)步伐的高度值增量在絕大多數(shù)情況下都不是很接近,所以上述相鄰步伐的高度值增量的偏差的和小于預(yù)設(shè)的閾值的時(shí)候是爬樓梯。
(5)判斷是否滿(mǎn)足陀螺儀的三個(gè)軸的旋轉(zhuǎn)角度呈現(xiàn)明顯的周期性。
目前很多山都是有階梯的,因此方案的更精確的區(qū)分可以通過(guò)如下方法解決,可以抓住爬山時(shí)候的階梯與爬樓梯時(shí)候階梯的特征差異進(jìn)行區(qū)分。
樓房里的階梯的特點(diǎn)是每層樓有相同的陀螺儀旋轉(zhuǎn)特征,比攀登山上的階梯有明顯的陀螺儀旋轉(zhuǎn)的周期性特征。
第一,樓房里的階梯大多數(shù)是每層樓有兩段方向相反的階梯。這種情況下,當(dāng)用戶(hù)在兩段階梯之間拐彎的時(shí)候,手機(jī)陀螺儀的旋轉(zhuǎn)特性是相同的,例如如果用戶(hù)在兩段階梯之間拐彎的時(shí)候手機(jī)的y軸正方向是豎直向上的,則繞y軸旋轉(zhuǎn)180度;如果用戶(hù)在兩段階梯之間拐彎的時(shí)候手機(jī)的z軸正方向是豎直向上的,則手機(jī)繞z軸旋轉(zhuǎn)180度;無(wú)論拐彎的時(shí)候手機(jī)的姿態(tài)如何,每次拐彎的時(shí)候,陀螺儀的三個(gè)軸的旋轉(zhuǎn)角度呈現(xiàn)明顯的周期性。
第二,少數(shù)情況下,樓房里的階梯如果是每層樓有三段階梯,則上述的每段階梯拐彎處的旋轉(zhuǎn)角度從180度變成90度,而且三段階梯是同一個(gè)方向旋轉(zhuǎn)90度,然后到達(dá)上一個(gè)樓層以后在平路上走一小段距離再旋轉(zhuǎn)90度。
總之,無(wú)論樓層之間分為幾段階梯,無(wú)論拐彎的時(shí)候手機(jī)的姿態(tài)如何,相鄰兩個(gè)樓層之間,陀螺儀的三個(gè)軸的旋轉(zhuǎn)角度呈現(xiàn)明顯的周期性。而氣壓計(jì)可以比較準(zhǔn)確地檢測(cè)到相鄰兩個(gè)周期內(nèi)的高度的變化量。如果陀螺儀的三個(gè)軸的旋轉(zhuǎn)角度呈現(xiàn)明顯的周期性,而且相鄰兩個(gè)周期內(nèi)氣壓計(jì)檢測(cè)到的高度變化量是相等的(或者高度變化量的差值小于預(yù)設(shè)的閾值,例如小于0.1米),則認(rèn)為用戶(hù)是在樓房里爬樓梯,而不是在爬山上的階梯。
隨著高度的增加,同樣高度的臺(tái)階,氣壓計(jì)讀出來(lái)的高度值可能誤差會(huì)有一些差別,但是高度值增量還是比較準(zhǔn)確的,而且氣壓計(jì)讀出來(lái)的高度值跟當(dāng)前海拔高度有關(guān),但是相鄰步伐的高度值增量跟當(dāng)前海拔高度關(guān)系很小,相鄰步伐的高度值增量的偏差只是體現(xiàn)了相鄰兩個(gè)步伐的相似性,跟當(dāng)前所處的海拔高度無(wú)關(guān);所以相鄰步伐的高度值增量的偏差的和abs(Hq1-Hh1)/abs(Hq1+Hh1)+abs(Hq2-Hh2)/abs(Hq2+Hh2) +abs(Hq3-Hh3)/abs(Hq3+Hh3) 跟當(dāng)前所處的海拔高度無(wú)關(guān)。
具體實(shí)施步驟
Step 1:采集加速度傳感器陀螺儀和氣壓計(jì)的數(shù)據(jù);
Step 2: 使用加速度傳感器判斷相鄰兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq1、Th1,前兩個(gè)步伐和后兩個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq2和Th2,以及前三個(gè)步伐和后三個(gè)步伐所持續(xù)的時(shí)間區(qū)間Tq3和Th3;
Step 3:計(jì)算在對(duì)應(yīng)的這些時(shí)間區(qū)間內(nèi)的氣壓計(jì)的高度值的增量Hq1、Hh1、Hq2、Hh2、Hq3、Hh3;
Step 4:計(jì)算相鄰步伐的高度值增量的偏差abs(Hq1-Hh1)/abs(Hq1+Hh1)、abs(Hq2-Hh2)/abs(Hq2+Hh2) 、abs(Hq3-Hh3)/abs(Hq3+Hh3);
Step 5:相鄰步伐的高度值增量的偏差的和abs(Hq1-Hh1)/abs(Hq1+Hh1)+abs(Hq2-Hh2)/abs(Hq2+Hh2) +abs(Hq3-Hh3)/abs(Hq3+Hh3) 是否小于或者等于對(duì)應(yīng)的閾值。
如果是,則進(jìn)入Step 6,進(jìn)一步確認(rèn);如果否,則判斷為攜帶著移動(dòng)終端的用戶(hù)在爬山(無(wú)階梯)。
Step 6:是否滿(mǎn)足陀螺儀的三個(gè)軸的旋轉(zhuǎn)角度呈現(xiàn)明顯的周期性(參考準(zhǔn)備階段第(5)點(diǎn)),而且相鄰兩個(gè)周期內(nèi)氣壓計(jì)檢測(cè)到的高度變化量是相等的,或者高度變化量的差值小于預(yù)設(shè)的閾值,例如小于0.1米。
如果是,則認(rèn)為用戶(hù)是在樓房里爬樓梯;如果否,則認(rèn)為用戶(hù)是在爬山(攀登山上的階梯)。
流程圖
見(jiàn)左圖。
結(jié)尾
本文通過(guò)慣性傳感器和氣壓計(jì)可以比較準(zhǔn)確地識(shí)別用戶(hù)是在爬山還是爬樓梯,不依賴(lài)于GPS,對(duì)于沒(méi)有GPS模塊的移動(dòng)終端以及GPS信號(hào)較差的移動(dòng)終端有很高的使用價(jià)值,即使在GPS較好的移動(dòng)終端里也可以不依賴(lài)于GPS,進(jìn)而大幅度地節(jié)省功耗。
參考文獻(xiàn)
【1】田博顯.采用慣導(dǎo)、GPS與氣壓計(jì)數(shù)據(jù)的飛控系統(tǒng)高度濾波算法,北京航空航天大學(xué),《國(guó)際航空航天科學(xué)》2018年第4期77-87,共11頁(yè).