Fórum témák
» Több friss téma |
Cikkek » Multicopterek, nulláról az UAV-kig III. - IMU szenzorok Multicopterek, nulláról az UAV-kig III. - IMU szenzorok
Szerző: Topi, idő: Máj 11, 2016, Olvasva: 12971, Oldal olvasási idő: kb. 3 perc
A szükséges giroszkóp szenzort nem hatalmas mechanikai szerkezetként kell elképzelni, ugyanis a MEMS (Microelectromechanical systems - Mikro elektro-mechanikai rendszer) technológiának köszönhetően, rendkívül kis méretben léteznek. Az alábbi képen egy MEMS giroszkóp+gyorsulásmérő látható: A mechanikai szerkezetet, alig 100-200 um méretben elkészítve, annak elmozdulásaiból ugyanúgy hozzájuthatunk a kívánt adatokhoz. A képen a karok végén látható lengő tagok nyúlása és csavarodása a titok kulcsa mind a gyorsulásmérő, mind pedig a giroszkóp esetében (a kép egy kombinált szenzort mutat). Az alig 0.8 mm-es szerkezetet már könnyedén be lehet tokozni az adatok érzékeléséhez szükséges illesztő áramkörökkel együtt. A piacon kapható számos giroszkóp közül én az InvenSense MPU6050-es típust választottam. A választás elsődleges szempontja az volt, hogy kombinált szenzort szeretnék alkalmazni, ami nem csak giroszkóp, hanem gyorsulásmérő is egyben. Miért célszerű kombinált szenzort alkalmazni? Azért, mert a lehető legközelebb - egy tokban - van a giroszkóp és az annak hibáit kompenzáló gyorsulásmérő, így a tengelyeik között a fizikai eltolódás pusztán pár tized milliméter. Ha két külön szenzort alkalmazunk, akkor akár több centi eltérés is lehet a két szenzor tengelyközéppontja között, így a kompenzálás is sokkal nehezebb, ugyanis nem egy tengelyközéppontnál fogva "forognak". MPU6050Az integrált áramkör tartalmaz egy max. ±2000°/sec elfordulási sebességű giroszkópot és egy ±16G ("gé" erő: 1G = föld gravitációs ereje) erő mérésére alkalmas gyorsulásmérőt. A két szenzor egybe van építve és egy közös I2C interfészen keresztül lehet az adatokat kiolvasni. Ezenfelül rendelkezik egy kiegészítő (AUX) I2C-vel, amire például digitális iránytű is csatlakoztatható. A kiegészítő I2C interfészére fűzött szenzor adatait az MPU6050 beolvassa magától és egyben kiolvashatók a saját adataival együtt. Ez különösen hasznos abban az esetben, ha DMA-val (ARM Periféria) szeretnénk az adatokat autonóm módon kiemelni a szenzorból. Az IC-hez MLF tokozásban juthatunk hozzá, de lehetőség van készre szerelt modul formájában is megvásárolni, én is ezt a megoldást választottam. Az MPU6050 egy 6 DOF típusú szenzor. A DOF (Degrees of Freedom, azaz szabadságfok) jellemzi, hogy mennyi tengely mentén képes a szenzor mérni. A 6-os szám, a giroszkóp roll rate, pitch rate és yaw rate adataiból illetve a gyorsulásmérő X, Y és Z irányú erőiből adódik össze (3+3 tengely). Az MPU kiegészítő interfészére csatlakoztatott iránytűvel már egy 9 DOF szenzorra tettünk szert. Kiegészítettük az iránytű 3 tengely irányú abszolút pozíciójával.
DMPAz MPU6050 rendelkezik egy DMP-vel (Digital Motion Processor), mely valójában a 9 tengelyből származó adatok összegyúrásával foglalkozik. Nagy előnye, hogy kvázi hardveresen oldja meg a Roll+Pitch+Yaw adatok kiszámítását. Rengeteg ellenérvem van, hogy miért nem célszerű használni:
Szerencsére a szenzorból, a DMP segítségével kalkulált adatok nem is olyan jók, mint amit az algoritmusunk végén kapunk, így ne fájjon a szívünk, egy könnycseppet se ejtsünk. Gyro adatokA kombinált szenzorból tehát kinyerhetjük a giroszkóp adatait, amit a beállított méréshatárnak megfelelően 16-bit felbontásban kapunk. A maximális szögelfordulás méréshatára lehet ±250, ±500, ±1000 és ±2000°/sec. Bármelyik méréshatárt is választjuk, mindegyiket 16-bit felbontásban olvashatjuk ki, így értelemszerűen a nagyobb méréshatárhoz pontatlanabb mérés tartozik. A multicopter nagyon fürge jószág, így a szabályozásom a 2000°/sec méréshatárt veszi alapul a számolásoknál. Aki már látott quadcoptert, tudja hogy tized másodperc alatt tud akár 90°-ban is elfordulni üzemszerűen, így ha kiszámoljuk ezt a szögsebességet, megkapjuk milyen méréshatár szükséges ekkor. Tehát: 90°/0.1s = 900°/s. Azaz a minimum, hogy 1000°/sec méréshatárt használjunk, de a biztonság kedvéért én az eggyel nagyobb méréshatárt választottam, a szükséges felbontás így is megfelelő marad. Gyro rateMivel a MEMS giroszkóp szögsebességet mér, így nem abszolút pozíciót kapunk, hanem relatív szögelfordulást. Ahhoz, hogy követni tudjuk, a mért értékeket mindig összegezni kell, így az összegzés végén kapjuk meg az abszolút elfordulást (persze gyorsulásmérő nélkül drift-tel együtt). Fontos: A következőkben, amikor a giroszkóp adatáról lesz szó, figyeljünk oda, hogy nem a műhorizont esetében látható abszolút elfordulást, hanem relatív elfordulási szögsebességet mérünk - kapunk - számolunk. A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |