|
Stránka 1 z 1
|
[ Příspěvků: 11 ] |
|
Autor |
Zpráva |
jaroslav.falcon
|
Napsal: ned 06.11.2016 22:29 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
Cao, nemáte prosím radu ?
mám tento kompas s arduinem, code dle webu. Čtení stupňů nějak funguje. Problém je , nastavím směr kompasu na sever tj 0°. otočím o 90 a na display je 120, otočím o -90 na display je 280, otočím o 180 a je to cca OK. žádnou kalibraci jsem nedělal, nevím ani jak. takto se chová samotný senzor i deska APM do které nahraji pouze čtení kompasu. Pokud nahraji plné APM tak to chodí naprosto přesně.
úheh se počítá pouze ze dvou os. nemělo by to být ze 3 ?
MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); int MilliGauss_OnThe_XAxis = scaled.XAxis;// (or YAxis, or ZAxis)
// Calculate heading when the magnetometer is level, then correct for signs of axis. float heading = atan2(scaled.YAxis, scaled.XAxis); float declinationAngle = 0.0457; heading += declinationAngle; // Correct for when signs are reversed. if(heading < 0) heading += 2*PI; // Check for wrap due to addition of declination. if(heading > 2*PI) heading -= 2*PI; // Convert radians to degrees for readability. float headingDegrees = heading * 180/M_PI;
// Output the data via the serial port. Output(raw, scaled, heading, headingDegrees);
Naposledy upravil jaroslav.falcon dne úte 08.11.2016 8:55, celkově upraveno 1
|
|
Nahoru |
|
|
|
|
|
Maxipes
|
Napsal: pon 07.11.2016 23:30 |
|
Mazák
|
|
|
Registrován: 14.7.2007 Příspěvky: 1130 Bydliště: Praha 6, ČR Obrázky: 12
|
Ahoj, magnetometr (kompas) bez kalibrace už z principu nebude fungovat správně. Musíš udělat kalibrační kruh a vypočítat kalibrační konstanty a nebo implementovat automatickou kalibraci (náročnější). To, že se čtou jenom dvě osy je správně, ale před tím bys měl udělat transformaci (rotační matice) dat z magnetometru do vodorovna, tedy z akcelerometru zjistit natočení a podle této polhy transformovat magnetometr. APM bude pravděpodobně už nakalibrované přímo v programu. Ale aby byla kalibrace přesná, je nutno ji udělat ve finálním použití, tedy včetně všech kovových dílů okolo magnetometru. To co potřebuješ je kompletní úloha inerciální jednotky (IMU), zkus k tomu něco pohledat na webu, není to úplně snadné. Třeba tady http://measure.feld.cvut.cz/cs/system/f ... locked.pdf bys moh najít nějaké info, ale číst se mi to nechce...
_________________ T-Rex 600N Spirit, Tx Aurora.
|
|
Nahoru |
|
|
jaroslav.falcon
|
Napsal: úte 08.11.2016 8:54 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
myslel jsem si to po mích experimentech. Chtěl jsem to do trackeru ghetto station. V tomto případě se s tím dále zabývat nebudu a jednoduší je zadat uhel ručně z mobilu, nebo ho načtu z koptéry, která má dané algoritmy implementovány.
Další varianta je implementovat tracker přímo na APM .
Díky za info.
|
|
Nahoru |
|
|
OK2BUH
|
Napsal: úte 08.11.2016 17:04 |
|
Mazák
|
|
|
Registrován: 19.11.2013 Příspěvky: 3515 Bydliště: Olomouc, ČR
|
Já myslím, že by šlo využívat jenom dvě osy pro výpočet azimutu ale bude tam jedno omezení. Problém je v tom, že magnetická siločára u nás není horizontální ale má blíž k vertikále, inklinace je kolem 65 stupňů. Musel bys zaručit aby kompas byl na trackeru vždy přesně vodorovně a musel bys to ověřovat bublinkou vodováhy. Při náklonech by se otáčel. Při náklonu 25 stupňů k jihu by se točil jak holub na báni a nevěděl by směr, při překročení 25 stupňů by se otočil opačně. (90-65=25).
|
|
Nahoru |
|
|
jaroslav.falcon
|
Napsal: úte 08.11.2016 17:11 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
to právě není pravda, ten magnetometr není lineární, prostě jeho otočení fyzické neodpovídá magnetickému a v různých místech se to liší. třeba ve směru server-jinch je to +-3st ale v ve směru vychod-západ je to treba +-20st takže to ho otočíš fyzicky o 90 a on ukáže třeba jen o 60.
|
|
Nahoru |
|
|
OK2BUH
|
Napsal: úte 08.11.2016 17:47 |
|
Mazák
|
|
|
Registrován: 19.11.2013 Příspěvky: 3515 Bydliště: Olomouc, ČR
|
Musí se zkalibrovat, ale klasická kalibrace potřebuje akcelerometry aby kompas věděl jak je otočený ve 3 osách. Ale mám takové hodinky které akcelerometry nemají a kalibruji je ve 2 osách otáčením naplacato na stole. Ale netvrdím, že to bude fungovat s tím tvým kompasem.
|
|
Nahoru |
|
|
jaroslav.falcon
|
Napsal: úte 08.11.2016 20:12 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
ja mam take hodinky a o proti mobilu jsou nepřesné. Mel jsem i SW s kalibraci jak řikáš, ale to spočítá nějaký offset. Myslím, že kdyš máš ten offset tak dobrý, ale pokud to není lineární tak musíš mít tu rotační matici. Takto si to aspoň myslím na základě selského rozumu, ale na inerci na to selský rozum nestačí Kdysi jsem se na to dívál a ta matematika je docela hustá.
|
|
Nahoru |
|
|
jaroslav.falcon
|
Napsal: úte 08.11.2016 20:17 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
jestě mne napadlo rotovat s tím po 1st a odečítat hodnotu. nebo po uhlů, které dá servo jako min . tím bych znal změnu úhlu a naměřenou hodnotu a z toho bych udělal matici. Problém je, že to servo se otočí jen o 180st anavíc si nejsem jist zda by to byla správná cesta.
|
|
Nahoru |
|
|
OK2BUH
|
Napsal: úte 08.11.2016 20:26 |
|
Mazák
|
|
|
Registrován: 19.11.2013 Příspěvky: 3515 Bydliště: Olomouc, ČR
|
Tam jde o to, že ty osy jsou sice přesně kolmé ale z výroby nemají nikdy stejnou citlivost. Tak se musí kalibrací srovnat. A do toho ještě kecají okolní železa.
|
|
Nahoru |
|
|
jaroslav.falcon
|
Napsal: úte 08.11.2016 21:08 |
|
Mazák
|
|
|
Registrován: 8.10.2012 Příspěvky: 1539 Bydliště: Kladno
|
to by znamenalo, že ta nelinearita je pouze na "stole" a po kalibraci OK, ale ja mam tu nelinearitu i na zahradě. Jestě tedy zkusím udělat externí na kablík a dám ho dál od trackeru. Ted jsem to měla si 10cm .
|
|
Nahoru |
|
|
Maxipes
|
Napsal: úte 08.11.2016 22:57 |
|
Mazák
|
|
|
Registrován: 14.7.2007 Příspěvky: 1130 Bydliště: Praha 6, ČR Obrázky: 12
|
Jestli chces jednoduchou kalibraci, tak si vycti hodnoty X a Y pro alespon 8 ruznych orientaci (rovnomerne) a vykresli si to do grafu, dostanes neco jako na obrazku v priloze (modra barva). To co potrebujes je na obrazku cervenou barvou, takze si snadno spocitas kolik pricist do te konkretni osy. Citlivos obou os se lisi jenom malo, to pro zacatek neni potreba resit. Vytahovat magnetometr dal od elektroniky neni spatny napad, ale bude to fungovat i pobliz.
Přílohy: |
mag.png [ 93.47 KiB | Zobrazeno 4441 krát ]
|
|
_________________ T-Rex 600N Spirit, Tx Aurora.
|
|
Nahoru |
|
|
|
Stránka 1 z 1
|
[ Příspěvků: 11 ] |
|
Kdo je online |
Uživatelé procházející toto fórum: mior a 6 návštevníků |
|
Nemůžete zakládat nová témata v tomto fóru Nemůžete odpovídat v tomto fóru Nemůžete upravovat své příspěvky v tomto fóru Nemůžete mazat své příspěvky v tomto fóru Nemůžete přikládat soubory v tomto fóru
|
|
|