Akcelerometr relativní polohy

hlasů
11

Předtím, než jsem se znovu vynalézat kolo chtěl jsem zjistit, jestli někdo může sdílet kód nebo tipy na následující:

Ve snaze získat relativní pozice iPhonu, je potřeba

  • Nastavit akcelerometr číst rychlost
  • Šum filtrovat odezvu akcelerometru
  • Převést jej do vektoru
  • Low-pass filtr vektor najít gravitaci
  • Odečteme gravitaci ze surového čtení najít uživatel způsobil zrychlení
  • Filtr uživatelského způsobil zrychlení získat frekvence, které vás zajímají (asi pásmovým v závislosti na aplikaci)
  • Integrovat najít relativní rychlost
  • Integrovat najít pozici

Takže to, co jsem doufal, že lidé již psali některé nebo všechny výše uvedené a mohou poskytnout tipy, nebo ještě lépe kód.

Pár otázek jsem nenašel odpověď na:

Jaká je frekvenční charakteristika akcelerometru iPhone? Jaký hardware filtry existují mezi akcelerometrem a analogového na digitální převodník?

Jaký je nejvyšší rychlost čtení akcelerometr delegáta lze nazvat aby nedocházelo ke zdvojování hodnoty čtení?

Rozdíly ve výše uvedené pro různé telefony?

Nějaké dobré tipy pro navrhování filtrů, jako mezní kmitočet pro separaci gravitace a uživatelsky pohyb?

Jakýkoliv kód nebo tipy na integrační kroky? Žádný důvod k integraci do cartesion souřadnicovém systému, spíše než jako vektor, nebo vise versa?

Jakékoliv jiné zkušenosti, tipy a informace, které je třeba vědět před prováděcí to?

Položena 30/10/2010 v 03:17
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
9

Jak jsem se najít informace ven, budu sbírat ji v této odpovědi.

Hardware

3GS používá ST LIS331DL 3 osách ± 2g / ± 8g digitálním akcelerometrem.

IPhone 4 a iPad použít ST LIS331DLH 3 osách ± 2 g / ± 4 g / ± 8g digitálním akcelerometrem.

Oba jsou schopné číst na 100Hz a 400Hz, ačkoli na iPhone 3G (pod iOS 4.1) akcelerometr delegát není volána častěji než 100Hz i když setUpdateInterval je nastaven pro rychlejší aktualizace. Já nevím, jestli API umožňuje rychlejší aktualizace na iPhone 4 a dokumentace Apple pouze uvádí, že maximum je určena hardware iPhone. (TBD)

Převodník A / D je na stejné křemíku jako čidlo MEM, který je dobrý pro odolnost proti rušení.

Verze DL je 8 bitů (3GS), zatímco verze DLH je 12 bitů (iPhone 4). Maximální bias (offset), ve znění DL je dvojnásobkem zaujatost DLH (0,04 g vs 0,02 g) verze.

List pro DLH hlásí hustoty šumu zrychlení, ale tato hodnota není hlášena na DL listu. Hustota šumu je poměrně nízká, 218 μ g / √Hz pro DLH.

Oba senzory poskytnout buď vzorkování 100Hz nebo 400Hz rychlosti odběru vzorků, bez vlastní rychlostí. Senzor vyřadí hodnoty v případě, že iPhone nečte výstupní registr na vzorkovací frekvenci nastavené.

„Typického“ hodnota stupnice pro snímače DL je ± 2,3 g, ale ST pouze zaručuje, že je to přinejmenším ± 2g.

Vliv teploty na snímači jsou přítomny a měřitelné, ale není příliš významné.

TBD:

  • Je hardware filtr zapnutý, a jaké jsou filtrační vlastnosti?
  • Jak hlučné je přívod elektrické energie do akcelerometr? (Někdo jen náhodou mít iPhone schéma, kterým se kolem?)
  • Akcelerometr používá interní hodiny, aby časování pro vzorkovací frekvenci a A / D konverzí. Datový list neuvádí přesnost, přesnost, nebo teploty tohoto hodiny. Pro přesné časové analýzy iPhone musí používat přerušení vycítit, kdy je vzorek provést a zaznamenat čas do přerušení. (Ať už se tak děje, nebo ne není znám, ale je to jediný způsob, jak získat přesné informace o časování)

API

Požadující nižší než 100 Hz vzorkovací frekvence vede k získání vybrané vzorky, zatímco odhazovat zbytek. Je-li požadováno vzorkovací frekvence, která není faktorem 100Hz v softwaru, časové intervaly mezi hodnot v reálném senzorů nemohou být dokonce. Apple nezaručuje ani odběrném ceny, i když je použit faktor 100.

Zdá se, že API neposkytuje filtrování softwaru.

API dělá měřítko syrové hodnotu akcelerometru do dvojité představující Gs. Faktor měřítka používá, je znám, a zda se jedná o různé pro každý telefon (tj kalibrované) a zda je kalibrace dochází průběžně k účtu fo odchylky čidla není znám. Online zprávy naznačují, že iPhone se znovu nakalibrovat příležitostně, když je naplocho na povrchu.

Výsledky testů ukazují, že jednoduché API nastaví senzor ± 2g pro 3GS, který je obecně v pořádku pro ruční pohyby.

TBD:

  • Má Apple kalibrovat každou jednotku, takže UIAccelerometer hlásí 1G as 1G? Dokumentace Apple konkrétně varuje před použitím přístroje pro citlivé aplikace měření.
  • Má hlášeny NSTimeInterval zastupovat, když byly hodnoty číst z akcelerometru, nebo když akcelerometr přerušení vyplynulo, že nové hodnoty byly připraveny?
Odpovězeno 30/10/2010 v 14:43
zdroj uživatelem

hlasů
0

Já jen zabývající se stejným problémem. Jediný rozdíl do svého přístupu je, že nechci, aby se spoléhají na low-pass filtrem najít gravitaci. (TBH Nechápu, jak mohu spolehlivě říci vektor gravitace z akcelerometru čtení) Snažím se s gyroskopy právě teď.

Odpovězeno 15/01/2011 v 11:59
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more