柴曉榮,雷雪梅
(內蒙古大學,內蒙古 呼和浩特 010000)
?
基于加速度計和陀螺儀的計步算法研究
柴曉榮,雷雪梅
(內蒙古大學,內蒙古 呼和浩特 010000)
摘要:本文主要應用加速度和陀螺儀對人體行走時手腕的加速度和角速度進行分析、處理實現計步,并利用MATLAB對實際步行中加速度和角速度測量值進行算法仿真,得到了很好的效果。本文中介紹的計步算法結合加速度和角速度共同檢測步數。
關鍵詞:計步算法;加速度;角速度;MATLAB
引言
隨著可穿戴設備的發展,智能手表、智能手環的紛紛推出,通過手腕式穿戴設備進行計步也是一個重要的研究課題。一般的計步算法主要是根據加速度信號的變化來反應人體的步行。加速度和角速度是反映人體運動最直接的信息,這些信息與人體運動密切相關。本文對計步的研究主要是對人體行走時手臂的加速度和角速度進行檢測,通過采集處理這些信號實現計步,并用MATLAB軟件對實際步行時手臂加速度、角速度信號進行處理,并對計步算法其進行了分析、仿真。
1人體步行模型
人體歩行是通過雙腳的交互動作移行機體的活動。在一個歩態周期內,身體的加速度和角速度隨時間不斷變化。行走時,手臂和腿部的擺動近似于鐘擺運動,有正負加速度交替變化的過程,另外人體行走時手臂和腿部不會作定軸的旋轉運動。通過對步態加速度和角速度信號提取人步行的特征參數是一種簡便、可行的步態分析方法。
人行走一步,腿出現蹬地、擺動、觸地的運動過程,而手臂出現最高點、最低點、最高點的擺動過程,整個過程中手臂不會有旋轉產生。在這個變化過程中,速度和加速度都將隨時間變化,而手臂的角速度卻始終保持在一定范圍。行走時,每步開始會產生一個比較大的加速度,在下肢初始接地、緩沖以及蹬地發力等吋刻,歩態加速度信號會出現極大值和極小值的轉折點。
2加速度和角速度信號的處理
人體運動時身體的振動頻率范圍在0~20Hz之間,為了準確捕捉人體步行的細節信息,設置采樣頻率為50Hz,采樣出來的加速度和角速度數據能夠反映人體的步行情況。本次數據采集實驗采用MPU6050傳感器測量人體行走時的三軸加速度和三軸角速度,利用單片機讀取傳感器的測量數值并存儲,進而導入MATLAB進行分析。
在步行中,加速度傳感器檢測到X、Y、Z軸的加速度變化情況多樣,無法識別出那個軸有明顯周期性變化,所以采用三軸融合的方法來解決此問題,經三軸融合后的和加速度信號也具有明顯的周期性。角速度傳感器檢測手臂在X、Y、Z軸的旋轉角速度,在人體行走過程中,三軸融合的角速度會保持在一定值并作波動。三軸融合算法采用公式1所示。
|ACCsum|=|ACCX|+|ACCY|+|ACCZ|(公式1)
將加速度信號和角速度信號經過三軸融合后的數據會夾雜許多噪聲并且X、Y、Z軸的加速度和角速度信號相位不同步,疊加后造成波形不平滑,不利于檢測。所以需要將數據進行平滑濾波處理,本次算法中采用滑動均值濾波方法來處理三軸融合的原始數據。滑動均值濾波的基本算法是對滑動窗口的數據求平均值,其算法的主要因素是滑動窗口的大小。
3計步檢測算法
對行走時加速度變化曲線進行分析,可以看出在一定時問間隔內會有一個加速度波峰和波谷。此外,計步因步行之外的原因而迅速或緩慢振動時,也會被計數器誤認為是步伐。在步行時,速度慢時一個步伐所占的時間隔長,走的快時時間間隔短,但都應在動態頻率范圍確定時間窗口內,所以利用這個時間窗口就可以有效地減小無效振動對步伐判斷造成的影響。步行中人體的手臂不會做出旋轉動作,所以其三軸的角速度應保持在一定的范圍內。根據以上分析,可以確定邁步周期中加速度變化情況具備以下特點:(1)一個邁步周期中僅出現一次加速度極大值、極小值,有一個上升區間和下降區間。(2)相鄰步之間的時間間隔為0.2s-2s之間。(3)行走時,加速度極大值與極小值是交替出現的,且其差的絕對值在預設的閾值范圍之內。(4)行走中手臂角速度會保持在一定數值,并且在某一數值上下作微小波動。
通過認識人行走時的步態特征,我們可以設置時間窗口、極大值值與極小值的最值之差以及判斷極值點的查找窗口,來找出極值點,并判斷極值點之差是否在預設的閾值范圍之內。如果最值之差不在閾值范圍內,則舍去極值點,繼續進行檢測。如果最值之差在閾值范圍內,則進入計步狀態,進而進行下一次的計步檢測,等到下一次檢測到滿足閾值的點后,再與第一次檢測到的點進行時間間隔的判斷,如果時間間隔在步態周期內(0.2s-2s),則計步有效。如果不在則繼續進行檢查。在計步的整個過程中都判斷角速度的值是否在一定范圍內波動。如果是則計步有效,否則計步無效。計步算法的程序流程圖如圖3.1所示。

圖3.1 計步算法程序流程圖

圖3.2 利用MATLAB仿真計步算法結果圖
利用MATLAB軟件對一次步行的局部加速度和角速度信號進行處理分析。通過MATLAB程序,將上述算法進行仿真測試。在MATLAB程序中,查找算法設計的查找窗口設置為7。經過程序查找的極大值和極小值如圖3.2所示,從圖中我們可以看出該程序可以較好的查找到極大值點和極小值點。此局部數據中查找計步為4步,而實際為5步,所以此算法存在一定的誤差,但滿足要求。
4總結
此計步算法通過對人行走時的加速度和角速度數據進行分析、處理可以很好地達到計步效果,誤差控制在5%左右。此計步算法可以用于可穿戴設備中計步功能的實現。
參考文獻:
[1]謝如花.步數檢測方法及在手腕式計步器中的應用研究[D].蘭州交通大學,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的運動監測及傾角測量系統的設計[J].電子質量,2013,09:33-34.
中圖分類號:TP212
文獻標志碼:A
文章編號:1671-1602(2016)06-0273-02
作者簡介:柴曉榮,男,漢,山西原平,內蒙古大學,在讀碩士,電子與通信工程。