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

2021-06-20 17:26:39 字數 1585 閱讀 2652

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

1. 了解模型特徵

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

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

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

2.  計步演算法

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

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

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

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

3. 關於計步器的擴充套件

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

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

**

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

1.了解模型特徵 目前大部分裝置都提供了可以檢測各個方向的加速檢測器,以ios裝置為例,我們利用了其三軸加速計 x,y,z軸代表方向如圖 的特性來分析。分別用以檢測人步行中三個方向的加速度變化。使用者在水平步行運動中,垂直和前進兩個加速度會呈現週期性變化,如圖所示,在步行收腳的動作中,由於重心向上單...

三軸加速度感測器的計步測演算法

現如今,很多現代人都非常注重自己的日常鍛鍊,計步作為一種有效記錄監控鍛鍊的監控手段,被廣泛應用在移動終端的應用中。目前,大部分的計步都是通過gps訊號來測算運動距離,再反推行走步數實現的。這種方法很是有效,但在室內或沒有gps訊號的裝置上無法工作。同時,gps精度對結果的干擾也比較大。為避免上述問題...

在docker中加入加速器的方法

前提條件 在一台linux中安裝好了docker 目的 在docker中加如這入個加速器的目的,是讓docker pull 時能速度快一點,但是好像docker push速度並沒有加快。步驟 其實很簡單,就是在乙個json檔案中加入一行 然後重啟docker就可以了 1。sudo tee etc d...