柴曉榮,雷雪梅
(內(nèi)蒙古大學(xué),內(nèi)蒙古 呼和浩特 010000)
?
基于加速度計和陀螺儀的計步算法研究
柴曉榮,雷雪梅
(內(nèi)蒙古大學(xué),內(nèi)蒙古 呼和浩特 010000)
摘要:本文主要應(yīng)用加速度和陀螺儀對人體行走時手腕的加速度和角速度進行分析、處理實現(xiàn)計步,并利用MATLAB對實際步行中加速度和角速度測量值進行算法仿真,得到了很好的效果。本文中介紹的計步算法結(jié)合加速度和角速度共同檢測步數(shù)。
關(guān)鍵詞:計步算法;加速度;角速度;MATLAB
引言
隨著可穿戴設(shè)備的發(fā)展,智能手表、智能手環(huán)的紛紛推出,通過手腕式穿戴設(shè)備進行計步也是一個重要的研究課題。一般的計步算法主要是根據(jù)加速度信號的變化來反應(yīng)人體的步行。加速度和角速度是反映人體運動最直接的信息,這些信息與人體運動密切相關(guān)。本文對計步的研究主要是對人體行走時手臂的加速度和角速度進行檢測,通過采集處理這些信號實現(xiàn)計步,并用MATLAB軟件對實際步行時手臂加速度、角速度信號進行處理,并對計步算法其進行了分析、仿真。
1人體步行模型
人體歩行是通過雙腳的交互動作移行機體的活動。在一個歩態(tài)周期內(nèi),身體的加速度和角速度隨時間不斷變化。行走時,手臂和腿部的擺動近似于鐘擺運動,有正負(fù)加速度交替變化的過程,另外人體行走時手臂和腿部不會作定軸的旋轉(zhuǎn)運動。通過對步態(tài)加速度和角速度信號提取人步行的特征參數(shù)是一種簡便、可行的步態(tài)分析方法。
人行走一步,腿出現(xiàn)蹬地、擺動、觸地的運動過程,而手臂出現(xiàn)最高點、最低點、最高點的擺動過程,整個過程中手臂不會有旋轉(zhuǎn)產(chǎn)生。在這個變化過程中,速度和加速度都將隨時間變化,而手臂的角速度卻始終保持在一定范圍。行走時,每步開始會產(chǎn)生一個比較大的加速度,在下肢初始接地、緩沖以及蹬地發(fā)力等吋刻,歩態(tài)加速度信號會出現(xiàn)極大值和極小值的轉(zhuǎn)折點。
2加速度和角速度信號的處理
人體運動時身體的振動頻率范圍在0~20Hz之間,為了準(zhǔn)確捕捉人體步行的細(xì)節(jié)信息,設(shè)置采樣頻率為50Hz,采樣出來的加速度和角速度數(shù)據(jù)能夠反映人體的步行情況。本次數(shù)據(jù)采集實驗采用MPU6050傳感器測量人體行走時的三軸加速度和三軸角速度,利用單片機讀取傳感器的測量數(shù)值并存儲,進而導(dǎo)入MATLAB進行分析。
在步行中,加速度傳感器檢測到X、Y、Z軸的加速度變化情況多樣,無法識別出那個軸有明顯周期性變化,所以采用三軸融合的方法來解決此問題,經(jīng)三軸融合后的和加速度信號也具有明顯的周期性。角速度傳感器檢測手臂在X、Y、Z軸的旋轉(zhuǎn)角速度,在人體行走過程中,三軸融合的角速度會保持在一定值并作波動。三軸融合算法采用公式1所示。
|ACCsum|=|ACCX|+|ACCY|+|ACCZ|(公式1)
將加速度信號和角速度信號經(jīng)過三軸融合后的數(shù)據(jù)會夾雜許多噪聲并且X、Y、Z軸的加速度和角速度信號相位不同步,疊加后造成波形不平滑,不利于檢測。所以需要將數(shù)據(jù)進行平滑濾波處理,本次算法中采用滑動均值濾波方法來處理三軸融合的原始數(shù)據(jù)?;瑒泳禐V波的基本算法是對滑動窗口的數(shù)據(jù)求平均值,其算法的主要因素是滑動窗口的大小。
3計步檢測算法
對行走時加速度變化曲線進行分析,可以看出在一定時問間隔內(nèi)會有一個加速度波峰和波谷。此外,計步因步行之外的原因而迅速或緩慢振動時,也會被計數(shù)器誤認(rèn)為是步伐。在步行時,速度慢時一個步伐所占的時間隔長,走的快時時間間隔短,但都應(yīng)在動態(tài)頻率范圍確定時間窗口內(nèi),所以利用這個時間窗口就可以有效地減小無效振動對步伐判斷造成的影響。步行中人體的手臂不會做出旋轉(zhuǎn)動作,所以其三軸的角速度應(yīng)保持在一定的范圍內(nèi)。根據(jù)以上分析,可以確定邁步周期中加速度變化情況具備以下特點:(1)一個邁步周期中僅出現(xiàn)一次加速度極大值、極小值,有一個上升區(qū)間和下降區(qū)間。(2)相鄰步之間的時間間隔為0.2s-2s之間。(3)行走時,加速度極大值與極小值是交替出現(xiàn)的,且其差的絕對值在預(yù)設(shè)的閾值范圍之內(nèi)。(4)行走中手臂角速度會保持在一定數(shù)值,并且在某一數(shù)值上下作微小波動。
通過認(rèn)識人行走時的步態(tài)特征,我們可以設(shè)置時間窗口、極大值值與極小值的最值之差以及判斷極值點的查找窗口,來找出極值點,并判斷極值點之差是否在預(yù)設(shè)的閾值范圍之內(nèi)。如果最值之差不在閾值范圍內(nèi),則舍去極值點,繼續(xù)進行檢測。如果最值之差在閾值范圍內(nèi),則進入計步狀態(tài),進而進行下一次的計步檢測,等到下一次檢測到滿足閾值的點后,再與第一次檢測到的點進行時間間隔的判斷,如果時間間隔在步態(tài)周期內(nèi)(0.2s-2s),則計步有效。如果不在則繼續(xù)進行檢查。在計步的整個過程中都判斷角速度的值是否在一定范圍內(nèi)波動。如果是則計步有效,否則計步無效。計步算法的程序流程圖如圖3.1所示。
圖3.1 計步算法程序流程圖
圖3.2 利用MATLAB仿真計步算法結(jié)果圖
利用MATLAB軟件對一次步行的局部加速度和角速度信號進行處理分析。通過MATLAB程序,將上述算法進行仿真測試。在MATLAB程序中,查找算法設(shè)計的查找窗口設(shè)置為7。經(jīng)過程序查找的極大值和極小值如圖3.2所示,從圖中我們可以看出該程序可以較好的查找到極大值點和極小值點。此局部數(shù)據(jù)中查找計步為4步,而實際為5步,所以此算法存在一定的誤差,但滿足要求。
4總結(jié)
此計步算法通過對人行走時的加速度和角速度數(shù)據(jù)進行分析、處理可以很好地達到計步效果,誤差控制在5%左右。此計步算法可以用于可穿戴設(shè)備中計步功能的實現(xiàn)。
參考文獻:
[1]謝如花.步數(shù)檢測方法及在手腕式計步器中的應(yīng)用研究[D].蘭州交通大學(xué),2013.4.
[2]Kim J W,Jang H J,Hwang D H et a1.A Step,Stride and Heading Determination for the Pedestrian Navigation System.Journal ofGlobal Positioning Systems.2004,3(1):273-279.
[3]Jang H J,Kim J W,Hwang D H.Robust step detection method for pedestrian navigation systems.Electronics Letters,2007,43(14):1-2.
[4]王博,張洪斌,謝德華.基于ADXL362的運動監(jiān)測及傾角測量系統(tǒng)的設(shè)計[J].電子質(zhì)量,2013,09:33-34.
中圖分類號:TP212
文獻標(biāo)志碼:A
文章編號:1671-1602(2016)06-0273-02
作者簡介:柴曉榮,男,漢,山西原平,內(nèi)蒙古大學(xué),在讀碩士,電子與通信工程。