KURZ: Gyroskopický senzor - Možnosti praktického využití

KAPITOLY

MOŽNOSTI PRAKTICKÉHO VYUŽITÍ

Gyroskopický senzor slouží ke snímání rotačního pohybu robota. Senzor vyhodnocuje míru natočení ve stupních za sekundu. Jeho praktické využití nalezneme u zařízení, ve kterých potřebujeme přesně detekovat jeho pohyb a míru natočení. Nejznámější takové zařízení je vozítko Segway. Díky vestavěným gyroskopům je přesně snímán jeho pohyb a v každém okamžiku určována jeho aktuální pozice. Je tak možné přesně a včas reagovat a udržovat tak zařízení v rovnováze. Gyroskopický senzor je ovšem pouze jednoosý senzor. Snímá hodnoty pouze v jedné rovině. Není tedy tak komplexní jako senzor akcelerace, který měří zrychlení ve třes osách.

Využití gyroskopického senzoru

Příklady s využitím gyroskopického senzoru jsou většinou složité programové konstrukty. Jeho činnost si ukážeme na jednoduchém příkladu. Vytvoříme si model pohyblivého vozítka na který připevníme gyroskopický senzor. Následně vytvoříme program, díky kterému se bude vozítko pohybovat a natáčet v různých směrech. Hodnotu snímanou gyroskopickým senzorem budeme zaznamenávat, abychom tak viděli jak při pohybu robota senzor reaguje. Více o zaznamenávání a vizualizaci hodnot naleznete ZDE.

NXT-G

Zobrazení snímané hodnoty

Pro analýzu hodnoty, kterou vrací v určitých situacích gyroskopický senzor si musíme nejprve vytvořit vhodný program. Část programu, kterou chceme analyzovat je poté nutné v programovacím prostředí NXT-G vymezit pomocí bloků pro analýzu dat. Až poté můžeme program spustit a zjistit snímané hodnoty.

Vytvoření programu

Nejprve si představíme program, během jehož chodu jsme analyzovaly hodnoty snímané gyroskopickým senzorem. Program je pouze krátký, slouží jen k jednoduché demonstraci. Robot se díky němu tři vteřiny pohybuje vpřed. Následně se natočí o 360° vpravo, poté o 360° vlevo a nakonec se pohybuje opět tři vteřiny vpřed. První úsek vpřed se pohybuje rychlostí 50%, koncový úsek rychlostí 80%. Pohyb vpřed je realizován pomocí bloku MovePaletteDragged Move. Během natáčení do stran jsou motory ovládány blokem MotorDragged Motor (více o ovládání robota pomocí motorů naleznete v kapitolách Motor a jeho pohyb a Synchronizace pohybu dvou motorů).

gyro program

Aby mohla být data zaznamenávána, musíme na začátek programu umístit blok StartDatalogDragged Start Datalog, který spustí zaznamenávání dat. Na konec programu poté vložíme blok StopDatalogDragged Stop Datalog pro ukončení záznamu.

U bloku StartDatalogDragged Start Datalog musíme nastavit parametry záznamu. Dobu trvání jsme zvolili 10 sekund. Pro přesnější záznam hodnot jsme zvolili frekvenci záznamu 10 snímků za sekundu. Poslední věcí, kterou nastavíme, je typ senzoru připojený na příslušném portu.

gyro datalog nastaveni

Analýza dat

Senzor je umístěn na čelní straně robota ve vodorovné poloze a namířen směrem vpřed. Po spuštění programu se začala zaznamenávat data do grafu. Na obrázku můžete vidět křivku vyjadřující jeho průběh. Vodorovná osa grafu označuje čas běhu programu a svislá osa hodnotu, kterou vracel gyroskopický senzor (ve stupních za sekundu). První tři sekundy se robot pohyboval přímo vpřed. Na grafu je vidět, že hodnota gyroskopického senzoru se po tuto dobu pohybovala kolem nuly. Drobné odchylky jsou způsobeny nerovnostmi povrchu, po kterém se robot pohyboval. Dále se robot natočil o 360° vlevo. Hodnota okamžitě klesla až na -100 stupnňů za sekundu. Jakmile se robot začal natáčet o 360° vpravo, stoupla hodnota až na +100 stupňů za sekundu. Při opětovném pohybu vpřed se hodnota znovu pohybovala kolem nuly.

Z tohoto příkladu je patrné, že robot díky gyroskopickému senzoru dokáže reagovat pouze na natočení v jediné ose senzoru. Ačkoliv byl pohyb vpřed v úvodu a na konci programu prováděn rozdílnou rychlostí, z grafu tuto skutečnost nezjistíme. Na křivce je pouze dobře patrné, že bylo provedeno natočení nejprve na jednu stranu (senzor vrací zápornou hodnotu) a následně na druhou stranu (vrácená hodnota je kladná).

 

gyro

RobotC

ZOBRAZENÍ SNÍMANÉ HODNOTY

Analýzu hodnot, které vrací gyroskopický senzor v programovacím prostředí RobotC provedeme na příkladu pojídzného robota. Ten se bude pohybovat vpřed a během pohybu se natočí na obě dvě strany. Měnit bude také svoji rychlost. Pomocí funkce Poll NXT Brick poté zjistíme, na kolik je možné analyzovat v tomto programovací prostředí data ze senzoru.

Vytvoření programu

Nejprve si představíme program, během jehož chodu jsme analyzovaly hodnoty snímané gyroskopickým senzorem. Program je krátký, slouží jen k jednoduché demonstraci. Robot se díky němu tři vteřiny pohybuje vpřed. Následně se natočí o 360° vpravo, poté o 360° vlevo a nakonec se pohybuje opět tři vteřiny vpřed. První úsek vpřed se pohybuje rychlostí 50%, koncový úsek rychlostí 80%. Pokud nevíte, jak takovýto program vytvořit, více o ovládání robota pomocí motorů naleznete v kapitolách Motor a jeho pohyb a Synchronizace pohybu dvou motorů.

Analýza dat

Po spuštění funkce Poll NXT Brick a spuštění vizualizace pomocí tlačítka Poll Continuous začnou být zobrazována aktuálně snímaná data (více o zobrazování hodnot v RobotC v kapitole Zaznamenávání a vizualizace hodnot). Na prvním obrázku můžete vidět náhled při zobrazování hodnot úvodního pohybu robota vpřed. V horním okně se zobrazují informace o motorech. Můžeme vyčíst jak jejich rychlost, tak i počet otáček. Nás bude ale zajímat gyroskopický senzor. Nalezneme jej v dolním okně z pohledu uživatele vlevo. Byl připojen k portu S3. Jelikož patří mezi rozšiřující senzory, nebylo jej možné přiřadit ke třetímu portu a tak se zde zobrazuje popisek No Sensor. Hodnota je ovšem snímána, a to v podobě RAW. Můžete vidět, že v aktuálním okamžiku pořízení snímku byla hodnota 613.

rovne 1

Nyní se zaměříme na okamžik, kdy se robot natáčel do stran. Začneme natočením vpravo. Nahoře vidíme, že se otáčel pouze motor C. Změnu hodnoty zaznamenáme i u tabulky zobrazující hodnotu ze senzoru. Ta oproti pohybu vpřed nepatrně vzrostla.

vpravo

Při natočení na levou stranu je již změna hodnoty patrná více. Při natočení vpravo hodnota rostla, při natočení v opačném směru klesla až na 473. Vidíme tak, že senzor skutečně i v tomto okamžiku zaznamenal odklonění od přímého směru.

vlevo

Jako poslední si můžeme prohlédnout hodnoty naměřené při závěrečném zrychlení. Hodnota ze senzoru je pouze nepatrně nižší. To je způsobeno jak zrychlením, tak také otřesy způsobenými pohybem po drobných nerovnostech podkladu.

rovne 2

 

Jelikož programovací prostředí RobotC umožňuje pouze zaznamenávání v reálném čase, není snímání hodnot z gyroskopického senzoru příliš efektivní. Můžeme sice při pohybu robota pozorovat, v jakém rozmezí se pohybují hodnoty, ale nemůžeme je zaznamenávat. Překážkou také může být skutečnost, že robot musí být připojen k počítači pomocí USB kabelu. Přesto bychom mohli získat přibližnou představu o tom, jak vysoké hodnoty v jednotlivých okamžicích jsou. Reakci na ně následně využijeme při vytváření programu.

 

1 1 1 1 1 1 1 1 1 1 Hodnocení 0.00 (0 hodnocení)

Nemáte oprávnění přidat komentář.
Komentáře mohou přidávat pouze registrovaní uživatelé, kteří neporušují pravidla diskuze.