利用三軸加速器的計步測算方法

1 評論 4662 瀏覽 0 收藏 5 分鐘

  隨著現代生活質量提高,越來越多人開始注重自己的日常健康鍛煉,計步作為一種有效記錄監控鍛煉的監控手段,已經廣泛應用在移動終端的應用中。但目前大部分實現都是通過GPS信號來測算運動距離反推行走步數,有效但是在室內或者無GPS信號的設備上無法工作,同時GPS精度對結果的干擾也比較大,本文提出一個新的測步方法,即通過設備上的加速器來計算步數,在不支持GPS的設備上也可正常工作,可用以與GPS互相配合測步,讓應用的使用場景更加多樣。

 

1. 了解模型特征

目前大部分設備都提供了可以檢測各個方向的加速檢測器,以iOS設備為例,我們利用了其三軸加速計(x,y,z軸代表方向如圖)的特性來分析。分別用以檢測人步行中三個方向的加速度變化。??iphone

用戶在水平步行運動中,垂直和前進兩個加速度會呈現周期性變化,如圖所示,在步行收腳的動作中,由于重心向上單只腳觸地,垂直方向加速度是呈正向增加的趨勢,之后繼續向前,重心下移兩腳觸底,加速度相反。水平加速度在收腳時減小,在邁步時增加。

1

反映到圖表中,我們可以看到在步行運動中,垂直和前進產生的加速度與時間大致為一個正弦曲線,而且在某點有一個峰值,其中垂直方向的加速度變化最大,通過對軌跡的峰值進行檢測計算和加速度閾值決策,即可實時計算用戶運動的步數,還可依此進一步估算用戶步行距離。

2

 

2. ?計步算法

因為用戶在運動中可能手平持設備或者將設備置于口袋中,所以設備的放置方向不定,為此我們通過計算三個加速度的矢量長度,獲得一條步行運動的正弦曲線軌跡。

第二步是峰值檢測,我們記錄了上次矢量長度和運動方向,通過矢量長度的變化,可以判斷目前加速度的方向,并和上一次保存的加速度方向進行比較,如果是相反的,即是剛過峰值狀態,則進入計步邏輯進行計步,否則舍棄。通過對峰值的次數累加可得到用戶步行步伐。

最后是去干擾,手持設備會有一些低幅度和快速的抽動狀態,或是我們俗稱的手抖,或者某個惡作劇用戶想通過短時快速反復搖動設備來模擬人走路,這些干擾數據如果不剔除,會影響記步的準確值,對于這種干擾,我們可以通過給檢測加上閾值和步頻判斷來過濾。

3

 

人體最快的跑步頻率為5HZ,也就是說相鄰兩步的時間間隔的至少大于0.2秒,如圖所示,我們設置了timespan在記步過程中我們過濾了高頻噪聲,即步頻過快的情況。同時我們通過和上次加速度大小進行比較,設置設立一定的閾值Threshold來判斷運動是否屬于有效,有效運動才可進行記步。

 

3. 關于計步器的擴展

以上是一個依靠加速度測算的計步器實現原理,已知步行和跑步的步伐經驗值,那么稍微改進下即可變成一個測距測速計。

通過三軸加速度我們可以知道用戶的運動狀態,除了計步,我們還可以通過加速器的變化曲線判斷用戶摔倒狀態,做成一個老人和兒童摔倒檢測自動報警器。

  • (本文出自Tencent CDC Blog)
更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!