應用筆記AN-602研究了ADI加速度計的使用,以制造簡單但相對精確的計步器。從那時起,引入了更新的設備,允許在對成本更敏感的應用中使用加速度計。因此,計步器等應用正在許多消費類設備(如蜂窩手機)中找到自己的應用。
鑒于這一趨勢,使用單個加速度計對計步器進行了更仔細的檢查。實施AN-602技術是為了復制其結果。盡管該算法表現良好,但相同的精度并未重復。特別是,人與人之間的差異比預期的要大,以及當一個人使用不同的配速和步幅時。這導致了對該算法潛在改進的調查。
測試使用帶有ARM7020內核的ADuC7精密模擬微控制器和兩個不同的計步器測試板完成:一個帶有2軸ADXL323加速度計,另一個帶有3軸ADXL330加速度計。第一種使用ADuC7020和ADXL323評估板,增加了16×2 LCD顯示屏。第二個使用定制板。
AN-602 方法
AN-602中使用的技術基于以下原理:一步中的垂直“彈跳”與步幅直接相關,如圖1所示。
圖1 - 行走時髖關節的垂直運動
角度 α 和 θ 相等,因此步幅可以顯示為最大垂直位移的倍數。給定相同的角度,對于較高或較矮的人來說,垂直位移會更大或更小,從而解釋腿長的差異。
不幸的是,加速度計測量的是加速度而不是位移的變化。必須先將加速度轉換為距離,然后才能使用。在AN-602設置中,有限的計算能力需要使用一個簡單的公式來近似將加速度轉換為距離所需的雙積分。
由于ADuC7020具有充足的處理能力,本實驗嘗試直接計算離散積分。選擇了一種簡單的方法來執行此操作。確定每個步驟后,將添加該步驟中的所有加速度樣本以獲得一組速度樣本。對每個步驟的速度樣本進行歸一化,使最終樣本為零。然后將它們相加以得到位移的值。
最初,這種技術看起來很有希望,因為對于一個受試者多次走一條路線,測量的距離相對一致。不幸的是,人與人之間的差異加劇了,一個受試者在不同速度下的差異也加劇了。這導致了對問題是否出在模型本身的調查。
了解模型
這個模型有兩個主要假設:腳實際上是一個點(或一個球),并且每只腳對地面的沖擊力是完全有彈性的。然而,這些假設都不是事實。基于這些實驗,可以肯定地說,這些假設與現實之間的差異解釋了遇到的許多變化。
為了理解這一點,查看幾個步驟的測量加速度會有所幫助,如圖2所示。數據上顯示了一步中“彈簧”的不同來源。
圖 2 - 受試者 #1 在正常速度下的加速度圖
圖 2 顯示了嘗試將測量的加速度精確轉換為距離時遇到的問題。使用峰峰值變化的方法,甚至是那些集成數據的方法,在處理此類數據時會遇到麻煩。造成這種困難的原因是,在彈簧中,不同人的步數或一個人使用不同步速的步數從一個測量值到另一個測量值的變化。
圖3顯示了步幅更長、更快的相同拍攝對象。峰峰值加速度差較大,各個彈簧點看起來不同?!皬椈伞睌祿颗c“真實”數據量與圖 2 不同。但是該算法只能看到一組加速度測量值,并且不知道這些測量值的上下文。因此,問題是在不刪除有用數據的情況下消除主體步驟中彈簧的影響。
圖 3 - 受試者 #1 的快速加速圖
兩個圖之間存在重要差異:在圖3中,每一步的曲線底部比圖2略窄,曲線頂部更一致,明顯峰更少。與最小和最大樣本值相比,這些差異導致更高的平均值。
為了進行比較,圖4顯示了不同個體的數據圖。步幅與圖2中的受試者非常相似。然而,數據本身看起來非常不同。
圖 4 - 受試者 #2 在正常速度下的加速度圖
與圖 2 所示相比,受試者的步幅具有更多的彈簧,但兩組數據表示大致相同的步行距離。因此,僅根據峰值計算距離將給出差異很大的結果。使用簡單的雙重積分會遇到同樣的問題。
解決彈簧問題
所有使用直接計算為這個問題提出一個體面解決方案的努力都有同樣的問題,導致一系列失敗的嘗試,以一種消除彈簧的方式規范化數據。主要原因似乎是他們需要一些數據上下文的知識,但在實際使用中,系統不知道外面發生了什么。它所擁有的只是數據點。我們的解決方案需要能夠在沒有上下文的情況下對數據進行操作。
在沮喪的情節中,出現了解決此問題的可能方法。如前所述,當從較慢的速度變為較快的速度時,數據會發生變化,但由于彈簧引起的明顯變化隨著更長、更快的步幅而發生。結果是數據最小值和最大值的平均值更高。但這能用新數據來支撐嗎?
從視覺上看,考慮到圖 4 所示步驟中的反彈量,很難確定這一點。但計算表明,平均值與峰值與圖2非常相似。因此,確定步行距離的簡單算法的候選者是:
此計算針對每個步驟完成,由不同的尋步算法確定。尋步算法使用 8 點移動平均線來平滑數據。它搜索最大峰值,然后搜索最小值。當移動平均線越過零點(即步長的總體平均值)時,將計算步長。距離算法中使用的數據考慮了移動平均線的 4 點延遲。
這個簡單的解決方案適用于各種步幅的第一個受試者。它在其他科目上也做得相當好。但一些受試者產生的距離與該組的平均測量距離相差多達10%。這不在未校準測量的目標±7.5%誤差范圍內。需要另一種解決辦法。
盡管如此,上一次測試中使用的比率似乎反映了不同受試者步驟的春季差異。嘗試將我們在這里研究的兩種方法結合起來是有意義的?;氐绞褂秒p積分的最初想法,使用此比率作為校正因子進行計算以刪除彈簧數據。生成的公式為:
其中:
d 是計算
的距離 k 是一個常數乘數
最大值是該步內測量的最大加速度 最小是該步
內測量的最小加速度 avg 是步的平均加速度值 加速度表示該步
的所有測量加速度值
該算法適用于各種科目和節奏,變化約為+6%/–4%。該算法有助于通過調整乘數 k 輕松校準特定個體和配速。該代碼還可以對步幅執行平均值,以消除步進變化。這里提到的結果不包括使用這種平均。
在這個實驗中,只使用了X軸和Y軸。選擇3軸加速度計是為了提高靈活性,以防需要所有三個軸。發現兩個軸足以完成任務,因此可以使用ADXL323代替ADXL330。由于除Z軸輸出外,引腳配置相同,因此可以使用相同的布局。
該實驗的重點是為計步器的距離測量取得良好的結果。對計步算法的評估僅足以確保它在步行或跑步時運行良好。在數百個步行或跑步步驟中,測量的步數落在實際數量的一兩個步驟內。然而,不幸的是,這種簡單的算法可能會被非步行運動所愚弄。AN-602 中描述的時間窗口功能可用于通過忽略預期時間窗口之外發生的錯誤步驟來最大限度地減少錯誤計數,同時保留在用戶改變速度時進行調整的能力。
總結
本說明表示一組實驗的結果,這些實驗試圖從使用單個加速度計的簡單計步器中獲得不錯的性能。已經討論了獲得該性能的一些障礙。最終結果符合規定的精度目標,并增加了通過校準提高精度的可能性。雖然使用更復雜的系統(例如使用多個加速度計)可以獲得更高的精度,但此處提供的算法應該是簡單、低成本應用的絕佳起點。
審核編輯:郭婷
-
微控制器
+關注
關注
48文章
7552瀏覽量
151426 -
加速度計
+關注
關注
6文章
702瀏覽量
45897 -
計步器
+關注
關注
4文章
76瀏覽量
19919
發布評論請先 登錄
相關推薦
評論