應(yīng)用說明AN-602檢查了使用ADI公司的加速度計(jì)制作簡單但相對(duì)準(zhǔn)確的計(jì)步器。從那時(shí)起,引入了更新的設(shè)備,允許在更加成本敏感的應(yīng)用中使用加速度計(jì)。因此,諸如計(jì)步器之類的應(yīng)用在諸如蜂窩手機(jī)之類的許多消費(fèi)設(shè)備中發(fā)現(xiàn)。
鑒于這種趨勢(shì),使用單個(gè)加速度計(jì)對(duì)計(jì)步器進(jìn)行了更仔細(xì)的檢查。實(shí)施AN-602技術(shù)是為了復(fù)制其結(jié)果。盡管該算法表現(xiàn)良好,但相同的準(zhǔn)確度并未重復(fù)。特別是,人與人之間的變化比預(yù)期的更大,以及當(dāng)一個(gè)人使用不同的步速和步幅時(shí)。這導(dǎo)致了對(duì)算法潛在改進(jìn)的調(diào)查。
使用帶有ARM7內(nèi)核的ADuC7020精密模擬微控制器和兩個(gè)不同的計(jì)步器測(cè)試板進(jìn)行測(cè)試:一個(gè)帶有2軸ADXL323加速度計(jì),另一個(gè)帶有3軸ADXL330加速度計(jì)。首先使用ADuC7020和ADXL323評(píng)估板,增加了16×2 LCD顯示屏。第二個(gè)使用定制板。
AN-602方法
AN-602中使用的技術(shù)基于以下原則:一步中的垂直“反彈”直接與步長,如圖1所示。
角度α和θ相等,因此步幅可以顯示為最大垂直位移的倍數(shù)。給定相同的角度,對(duì)于較高或較矮的人來說,垂直位移會(huì)更大或更小,從而解決了腿長的差異。
不幸的是,加速度計(jì)測(cè)量的是加速度而不是位移的變化。必須先將加速度轉(zhuǎn)換為距離才能使用。在AN-602設(shè)置中,有限的計(jì)算能力要求使用簡單的公式來近似將加速度轉(zhuǎn)換為距離所需的雙積分。
ADuC7020具有充足的處理能力,本實(shí)驗(yàn)嘗試直接計(jì)算離散積分。選擇一種簡單的方法來做到這一點(diǎn)。在確定每個(gè)步驟之后,添加該步驟中的所有加速度樣本以獲得一組速度樣本。將每個(gè)步驟的速度樣品歸一化,使得最終樣品為零。然后將它們加在一起以獲得位移值。
最初,這項(xiàng)技術(shù)看起來很有希望,因?yàn)闇y(cè)量距離對(duì)于一個(gè)多次走路的受試者來說是相對(duì)一致的。不幸的是,人與人之間的差異加劇了,一個(gè)主題在不同節(jié)奏下的差異也在加劇。這導(dǎo)致調(diào)查問題是否與模型本身有關(guān)。
理解模型
這個(gè)模型有兩個(gè)主要假設(shè):腳實(shí)際上是單個(gè)點(diǎn)(或者球),每只腳在地面上的沖擊是完全有彈性的。然而,這些假設(shè)都不是這樣?;谶@些實(shí)驗(yàn),可以肯定地說,這些假設(shè)和現(xiàn)實(shí)之間的差異解釋了大部分遇到的變化。
要理解這一點(diǎn),有助于查看幾個(gè)步驟的測(cè)量加速度,如圖所示在圖2中顯示了一個(gè)步驟中“彈簧”的不同來源。
圖2顯示了嘗試將測(cè)量的加速度精確轉(zhuǎn)換為距離時(shí)遇到的問題。使用峰峰值變化的方法 - 甚至那些整合數(shù)據(jù)的方法 - 都會(huì)遇到這樣的數(shù)據(jù)問題。造成這種困難的原因是不同人的步驟在春季從一種測(cè)量到另一種測(cè)量的變化,或者是一個(gè)人使用不同步幅的步驟。
圖3顯示了相同的主體,步伐越來越快。峰峰值加速度差異較大,各種彈簧點(diǎn)看起來不同。 “彈簧”數(shù)據(jù)與“實(shí)際”數(shù)據(jù)的數(shù)量與圖2中的不同。但算法僅看到一組加速度測(cè)量,并且不知道這些測(cè)量的上下文。因此,問題是在不刪除有用數(shù)據(jù)的情況下消除彈簧在主體步驟中的影響。
兩個(gè)圖之間存在重要差異:在圖3中,底部是每個(gè)步驟的曲線略窄于圖2的曲線,并且曲線的頂部更一致,具有更少的獨(dú)特峰值。與最小和最大樣本值相比,這些差異導(dǎo)致更高的平均值。
為了進(jìn)行比較,圖4顯示了不同個(gè)體的數(shù)據(jù)圖。步幅長度與圖2中的主題非常相似。然而,數(shù)據(jù)本身看起來非常不同。
這個(gè)主題的步幅比圖2所示的更多,但是這兩組數(shù)據(jù)代表了大致相同的距離。因此,僅根據(jù)峰值計(jì)算距離將產(chǎn)生廣泛變化的結(jié)果。使用簡單的雙重集成會(huì)遇到同樣的問題。
解決彈簧問題
所有使用直接計(jì)算得出解決這個(gè)問題的方法都有同樣的問題,導(dǎo)致一系列失敗的嘗試以消除彈簧的方式規(guī)范化數(shù)據(jù)。主要原因似乎是他們需要一些關(guān)于數(shù)據(jù)上下文的知識(shí),但在實(shí)際使用中,系統(tǒng)不知道外面發(fā)生了什么。它只有數(shù)據(jù)點(diǎn)。我們的解決方案需要能夠在沒有上下文的情況下對(duì)數(shù)據(jù)進(jìn)行操作。
在一段令人沮喪的情況下,這個(gè)問題的可能解決方案就出現(xiàn)了。如前所述,數(shù)據(jù)在從較慢到較快的速度變化時(shí)會(huì)發(fā)生變化,但由于彈簧發(fā)生的變化較小,步幅更長,速度更快。結(jié)果是相對(duì)于數(shù)據(jù)最小值和最大值的平均值更高。但是這會(huì)阻礙新的數(shù)據(jù)嗎?
在視覺上,由于圖4所示的步驟反彈量,很難確定這一點(diǎn)。但是計(jì)算表明平均值與峰值之間的關(guān)系因此,確定步行距離的簡單算法的候選者是:
這個(gè)計(jì)算是針對(duì)每個(gè)步驟完成的,由不同的步驟決定 - 尋找算法。步進(jìn)算法使用8點(diǎn)移動(dòng)平均值來平滑數(shù)據(jù)。它搜索最大峰值,然后搜索最小值。當(dāng)移動(dòng)平均值越過零點(diǎn)時(shí)計(jì)算步長,該零點(diǎn)是該步驟的總體平均值。距離算法中使用的數(shù)據(jù)考慮了移動(dòng)平均值的4點(diǎn)延遲。
這個(gè)簡單的解決方案在第一個(gè)主題上適用于各種步幅。對(duì)于其他科目,它也做得相當(dāng)好。但是一些受試者產(chǎn)生的距離與該組的平均測(cè)量距離相差10%。這不在±7.5%誤差范圍內(nèi),該誤差范圍是未校準(zhǔn)測(cè)量的目標(biāo)。需要另一種解決方案。
盡管如此,上一次測(cè)試中使用的比率似乎反映了不同受試者步驟的彈簧差異。嘗試結(jié)合我們?cè)谶@里研究的兩種方法是有意義的?;氐绞褂秒p積分的最初想法,使用該比率作為校正因子進(jìn)行計(jì)算以去除彈簧數(shù)據(jù)。得到的公式是:
其中:
d是計(jì)算的距離
k是常數(shù)乘數(shù)
max是在此步驟中測(cè)量的最大加速度
min是在此步驟中測(cè)量的最小加速度avg是步長的平均加速度值
accel表示步驟的所有測(cè)量加速度值
此算法適用于各種主題和步調(diào),變化約+ 6%/ -4%。該算法通過調(diào)整乘數(shù)k,可以輕松校準(zhǔn)特定個(gè)體和速度。該代碼還可以在步幅長度上執(zhí)行平均值以平滑逐步變化。這里提到的結(jié)果不包括使用這種平均值。
在這個(gè)實(shí)驗(yàn)中,只使用了X軸和Y軸。如果需要所有三個(gè)軸,則選擇3軸加速度計(jì)以獲得靈活性。發(fā)現(xiàn)兩個(gè)軸足以完成任務(wù),因此可以使用ADXL323代替ADXL330。由于引腳配置與Z軸輸出相同,所以可以使用相同的布局。
該實(shí)驗(yàn)專注于為計(jì)步器的距離測(cè)量獲得良好的結(jié)果。步數(shù)計(jì)算算法的評(píng)估僅足以確保它在行走或跑步時(shí)運(yùn)作良好。在數(shù)百個(gè)步行或跑步步驟中,測(cè)量的步數(shù)落在實(shí)際數(shù)量的一個(gè)或兩個(gè)步驟內(nèi)。然而不幸的是,這種簡單的算法可能會(huì)受到非步行運(yùn)動(dòng)的欺騙。 AN-602中描述的時(shí)間窗口功能可用于通過忽略在預(yù)期時(shí)間窗口之外發(fā)生的錯(cuò)誤步驟來最小化錯(cuò)誤計(jì)數(shù),同時(shí)保留在用戶改變速度時(shí)適應(yīng)的能力。
-
微控制器
+關(guān)注
關(guān)注
48文章
7565瀏覽量
151571 -
加速度計(jì)
+關(guān)注
關(guān)注
6文章
703瀏覽量
45919 -
計(jì)步器
+關(guān)注
關(guān)注
4文章
76瀏覽量
19937
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論