Výpočet magnetického záhlaví používat syrové akcelerometr a magnetometr dat

hlasů
8

Mám akcelerometr a magnetometr každý produkovat surový X, Y a Z odečty. Z toho musím určit magnetické záhlaví objektu.

Nejsem tak dobrý v TRIG, ale já jsem dal dohromady vzorec, který má reagovat velmi dobře k otáčení zařízení, ale také reaguje na pohyb, který by člověk myslíte, že je důležité, jako je rybaření zařízení v takovém způsob, který nemá žádný vliv na směr, kterým by se ukázal. Jako je například, kterým se plochý a „válcování“ zařízení.

Myslím, že vzorec I mají pro výpočet magnetického záhlaví je v pořádku, ale myslím, že moje a naklonění radians pro vstup jsou špatné.

Takže myslím, že jádro na můj dotaz (pokud někdo skutečně má vzorec kolem že to dělá), je to, jak si vypočítat úhly v radiánech, pomocí akcelerometru na hřišti and roll.

Pak za druhé, jakékoliv informace o nadpisu vzorce samotné by bylo skvělé.

Položena 25/06/2010 v 20:47
zdroj uživatelem
V jiných jazycích...                            


3 odpovědí

hlasů
2

V závislosti na přesnosti aplikace vyžaduje, může být nutné vyřešit několik problémů:

  1. Jsou akcelerometr osy kalibrovány? Jsem viděl MEMS akcelerometry, které měly osy, které byly vzájemně kolmé, a měli významně odlišné charakteristiky odezvy pro každou osu (typicky X a Y bude odpovídat, a Z se liší). Budete muset syntetizovat ideální osy XYZ z jakéhokoliv fyzického čtecí zařízení poskytuje. (Google je akcelerometr kalibrace ").

  2. Jsou magnetometr osách kalibrovány? Podobný problém jako výše, s výjimkou mnohem obtížnější kontrolovat: Je velmi obtížné vytvářet jednotné kalibrované magnetická pole. Používáte-li okolní geomagnetického pole, bude nutné pečlivě kontrolovat místní magnetismus svého pracovního prostředí a vaše nářadí. (Google 'magnetometr kalibrace').

  3. Po akcelerometr a magnetometr byly individuálně kalibrovány, jejich osy musí být kalibrován vůči sobě navzájem. Vzhledem k tomu, oba tyto prostředky jsou typicky připájeny na PCB, tam je téměř zaručeno, že významná odchylka. V mnoha případech, rada rozvržení a zařízení parametry ani nemusí povolit XYZ osy tak, aby odpovídaly navzájem! To může být nejtěžší dělat z laboratorního hlediska, tak bych doporučujeme provést přímé srovnání s použitím jiný hardware, který má oba druhy senzorů a je již kalibrován (jako je iPhone nebo Android telefon - ale prověřuj zařízení před použití). Obvykle se to provádí úpravou předchozí dva kalibrační matice, dokud přípravu vektorů, které jsou správně vyrovnané vůči sobě navzájem.

  4. Teprve poté, co jste generování vzájemně kalibrovaných magnetické a akcelerometru vektorů můžete použít řešení navrhovaná ostatními respondenty.

Jsem popsal jen statické řešení, kde obě magnetometr a akcelerometr jsou nehybně vzhledem k místním gravitačním a magnetických polí. Potřebujete-li vytvářet odezvy v reálném čase, zatímco systém se rychle pohybuje, budete potřebovat účet pro časové chování každého snímače. Existují dva základní způsoby, jak toho dosáhnout: 1) platí v časové oblasti filtrů na každý snímač tak, aby jejich výstupy mají společný časové oblasti (obvykle přidáním určité zpoždění). 2) Pomocí prediktivní modelování ke změně výstupů senzorů v reálném čase (menším zpožděním, ale více hluku).

Viděl jsem Kalman filtry používané pro takové aplikace, ale jejich uplatnění ve vektorovém domény může vyžadovat použití čtveřice místo Euler matic. Čtveřice se snadněji používají výpočetně (méně operací potřebných srovnání s maticemi), ale zjistil jsem, že je mnohem těžší pochopit a dostat pravdu.

Nebo můžete zvolit zcela jinou cestu, a používání statistik a dat padnoucí udělat vše výše uvedené práce do jednoho obrovského kroku. Uvažujme problém takto: Vzhledem k tomu, 6 vstupní hodnoty (XYZ každý z nekalibrovaných magnetometru a akcelerometr) a odkaz na zařízení (za předpokladu, že je ruční, a tam je šipka malované na případu), výstup jeden úhel představující magnetické úložné, proti které je šipka na případ ukazuje, a elevace vzhledem šipky k vektoru gravitace (naklonění pouzdra).

Za použití kalibrovaného referenčního zařízení (jak je uvedeno výše), spárovat se zařízením, které mají být kalibrován, a trvat několik set datových bodů, se zařízením v různých orientacích. Pak použijte silný matematický balíček takový Matlab, MathCAD, R nebo scipy nastavit a řešit nelineárních rovnic pro vytvoření transformační matice.

Odpovězeno 30/08/2010 v 07:14
zdroj uživatelem

hlasů
0

Nejste myšlení v dost rozměrech. To by bylo třeba odpovědět pouze ve 2 rozměrech, a funguje to skvěle, pokud můžete najít způsob, jak zajistit „Z“ vždy zarovná s gravitací.

int heading=180-atan2(mag_datX, mag_datY)/0.0174532925; // 0/359=N, 90=E, 180=S, 270=W 

(Pokud čtete přímo tvořit zařízení - pozor, že to pravděpodobně vrátí X, Z, Y! - ne X, Y, Z)

Nicméně - to není 2D kompas problém - představte si vzít jehlu z kompasu, vyvážit tak, že gravitace nehraje žádnou roli v udržování to „úroveň“, a zjistíte, že „sever“ bude ukazovat trochu nahoru nebo dolů - podle toho, kde na zemi, že jste (nebo, je-li na pólech, přímo nahoru nebo dolů!).

Takže je potřeba, aby se pokusila vypočítat trojrozměrný vektor ze všech 3 hodnot - což je operace matice.

Odpovězeno 08/11/2018 v 12:15
zdroj uživatelem

hlasů
0

Chtěl bych poukázat na Eulerovy úhly a Roll Pich vybočit .

Odpovězeno 18/08/2010 v 18:22
zdroj uživatelem

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