czech english

Enkodéry

senzory pro detekci pohybu kol

Robot nám vesele náhodně pobíhá po podlaze, ale přitom o tom vůbec neví. Vysvětlíme si tedy, jak může detekovat, zda (a případně jak rychle a na jakou stranu) se mu točí kolečka. Nejčastěji používaným zařízením pro tento účel jsou optické enkodéry. Jak fungují, či jak si takový enkodér postavit doma, se dozvíte právě dnes.

Enkodér z počítačové myši
Enkodér z počítačové myši
Základním principem funkce enkodérů je měření přítomnosti či nepřítomnosti nějakého dobře detekovatelného materiálu na otáčejícím se kolečku. V případě tachometru pro jízdní kolo je to magnet, v případě kuličkové myši je to díra v kolečku atp.
Signál jednoduchého enkodéru
Signál jednoduchého enkodéru
V robotické praxi se nejčastěji setkáváme s enkodéry optickými. V případě reflexních (odrazových) enkodérů jsou zdroj „světla” i jeho přijímač společně umístěny na jedné straně kolečka, na kterém jsou reflexní a matné plošky. Jejich střídání před přijímačem při otáčení kolečka na něm způsobuje změny napětí v důsledku změny množství detekovaného světla. Zprahováním napětí na přijímači (o oprahování jsme se zmiňovali v kapitole Co je to robot?) získáme obdélníkový signál (viz. kapitola Řízení serva — změna napětí v čase), kde každý obdélník odpovídá jedné reflexní či matné ploše. Při jejich rovnoměrném rozmístění po obvodu kolečka odpovídá jeden obdélník otočení vždy o shodný počet stupňů. Enkodérům generující takovýto pravidelný obdélníkový signál říkáme inkrementální. U transmisivních enkodérů jsou zdroj a přijímač umístěny na opačných stranách děravého kolečka. Reflexní plošky jsou zde suplovány dírami.
Signál dvojtého enkodéru
Signál dvojtého enkodéru
Pokud máme zaručeno, že vždy víme, na kterou stranu se kolečko otáčí, tak z výše uvedených informací poměrně snadno získáme ujetou vzdálenost. Zkalibrovat enkodéry můžeme například tak, že necháme robota kousek popojet, přesně změříme ujetou vzdálenost, spočítáme počet „obdélníků” naměřených během tohoto pohybu a změřenou vzdálenost vydělíme tímto počtem. Získáme tím „délku” jednoho „obdélníku” (často se tomuto údaji říká enkodérový tik).
V případě, že infomaci o směru otáčení nemáme, z výše popsaného enkodéru ji nezískáme. Pro zjištění směru otáčení potřebujeme na kolečku ještě jeden senzor, který je v ideálním případě namontován tak, že jeho signál je s původním signálem fázově posunut a to nejlépe o 90°.
Odrazivý optický enkodér
Odrazivý optický enkodér
Fázový posuv znamená, že se nám hrany obdélníků jednotlivých signálu neslévají (signály jsou posunuty v čase). Posuv o 90° znamená, že hrana obdélníku jednoho signálu nastává uprostřed obdélníku signálu druhého (jak je vidět na obrázku).
Mimo výše popsaných inkrementálních enkodérů existují i tzv. absolutní. Zatím co inkrementální enkodéry pouze detekují změnu polohy o pevně daný minimální krok, absolutní enkodéry nám říkají přímo polohu v rámci 360 stupňů.
Absolutní enkodér
Absolutní enkodér
I absolutní enkodéry mohou být optické, ale pak je třeba informaci zakódovat a potřebujeme tolik snímačů, jaké rozlišení požadujeme. Snímače mohou mít buď každý vlastní dráhu (jako na obrázku), nebo mohou být všechny na kraji, kde je informace o poloze dána pomocí jednoznačného kódu. Pro osm poloh a tři senzory by to mohlo být např. 000 001 010 101 011 111 110 100 a na kolečku by bylo 00010111 (v případě tří senzorů a osmi poloh, ale pouze relativní informace bychom získali rozlišení 24 místo 8)
Další, běžnější variantou, je použití potenciometru. Poloha se pak jednoduše určí pomoci A/D převodníku. Toto řešení je například použito snad ve všech levných modelářškých servech.
Co se použití týče, jsou v mnoha případech enkodéry záměnné: máme-li absolutní enkodér tak z rozdílu dvou poloh zjistíme o kolik se pootočil. Opačným směrem to není už tak jednoduché, protože je třeba někde definovat nulu, od které budeme počítat. To lze i pomocí obyčejného tlačítka (limit switch) a dělala to tak většina starých jehličkových tiskáren. Jinou možností je speciální signál index, který je aktivován pouze v jedné poloze. Polohu si je třeba si pamatovat a po resetu jí znovu ověřit.

Související literatura

Závěr

Po přečtení tohoto články byste měli mít tak zhruba představu o tom, co to jsou enkodéry, jaké informace poskytují, a jak je zpracovávat.

2013-07-11 (neznámý autor) Pro absolutní enkodér je vhodnější zvolit Grayův kód (než prostý binární kód, jak je uveden na obrázku). U Greyova kódu se sousední polohy liší vždy jen jedním bitem. U prosté binární posloupnost se sousední polohy zpravidla liší více až všemi bity (při přetočení se o jednu otáčku, tj. přes konec k začátku). To přináší problém spočívající v tom, že se kolečko s kódem může zastavit tak, že se pod snímači bude nalézat hranice mezi sousedními (binárně odlišenými) polohami. Malá změna polohy (třeba chvění) pak může způsobit změny hodnot víceméně náhodných bitů a tedy poskytnout zcela nesmyslné údaje. http://en.wikipedia.org/wiki/Gray_code