2013-02-03 79 views
2

我試圖創建一個應用程序來跟蹤2D空間中設備的運動。在網上進行研究之後,我可以發現一種方法是將線性加速整合兩次,但錯誤非常可怕。使用加速度計(陀螺儀?)繪製2D空間

有沒有解決這個問題的方法?我希望能夠將手機向上移動,這將在屏幕上繪製垂直線,以縮放手機移動的距離。然後,如果我將手機移動到左側,則會繪製水平線 - 有效地允許我使用手機的移動在屏幕上繪製。

完全可以這樣做嗎?如果是這樣,我應該在發展中採取什麼方向?我不知道從哪裏開始...

編輯:更多關於項目:

我試圖讓一個鍛鍊的應用程序,將跟蹤腿/手臂的動作:例如,當你正在做仰臥起坐,手機是用腳踝連接到你的腳踝。

該應用程序會跟蹤腿部的反覆運動。

回答

2

不幸的是,這些手機的加速度計遠遠不能滿足您實現慣性測量單元的要求。最大的問題是,因爲你正在積分兩次,積分總是帶有一個常數積分(x,dx)= x^2/2 + c,這個常數使得這很困難。爲了讓事情變得更糟,你需要兩次,一次整合以獲得速度,一次獲得位置。

我在商業慣性測量單位中看到的解決這個問題的一種方法稱爲零速度零點,這是當您停止設備的運動時使用其他一些數據源來告訴它的位置,零速度。例如,我看到一個項目在鞋上放置了一個慣性測量單元,只要它檢測到鞋被放在地面上,就會使速度爲零,這大大提高了準確性。有可能您可以使用相機或其他東西來確定這一點,但我沒有看到它完成。如果你想開始搞這個,那麼你是一個很棒的人,我很樂意聽到它的結果。

編輯:我應該澄清,我上面提到的常數是錯誤積累的地方。如果您可以將零速度歸零,那麼您會週期性地從存儲的當前速度中減去累積的誤差。位置錯誤仍然會累積,但是這會使它在相對靜止時不會漂移,這可能使其可以通過繪圖。

+0

嘿,速度零是我的問題的可行解決方案。我正在嘗試製作一個運動應用程序,用於跟蹤腿部的運動,例如,當您在做仰臥起坐時,手機用胳膊綁在腳踝上。這聽起來很愚蠢,但我對它感興趣:) – LucasSeveryn

+0

有趣的是,請記住,鞋子的工作原理是,他們有一個開關接觸地面,並告訴傳感器,當它不移動。你可能在緊張時遇到麻煩,因爲你實際上並沒有把你的腳放在任何東西上。然而,像這樣的反覆運動,你可以倒轉方向,你可以計算類似於計步器計數步數的仰臥起坐次數。由於運動的週期性,當加速停止時,您也可以推斷出您的零速度,但這會更復雜。 – FearTheCron

1

我知道沒有其他方式除了加速兩次。

此外,我認爲,如果您不瞭解可能在設備中的其他傳感器的知識(例如,在我的其中一臺設備上,我有7(7)個與各種物理信號有關的傳感器,正在接收)。

除此之外,請記住,傳感器數據是嘈雜的,幾乎總是必須預先過濾。例如,您可以使用最近10個採樣的幾何平均值。這應該通過向積分功能提供更平滑的輸入數據來降低您的錯誤。

相關問題