Fakulta pedagogická
Katedra technické výchovy
Příklad využití robotického manipulátoru
Jan Čermák Aleš Křivánek
Úvod Úkolem této práce bylo ukázat si na jednoduchém příkladu možnosti použití robotického manipulátoru (robotické ruky). Konkrétně se jedná o typ AL5D od firmy Lynxmotion. Ukážeme si zde programovací prostředí přímo od výrobce (RIOS SSC-32) a uvedeme jednoduchý návod, jak si obdobný program naprogramovat. Dále také uvedeme možnosti dalšího rozšíření našeho robota, u našeho konkrétně o bezdrátovou kameru snímající pohyb ruky.
Cíle •
Seznámení s robotickými stavebnicemi firmy Lynxmotion
•
Představení robotické ruky AL5D
•
Představení jednoduché úlohy pro tuto ruku
•
Naprogramování úlohu s ukázkami softwarového prostředí
•
Závěrečné odzkoušení
Krátce o Lynxmotion Firmy byla založena v roce 1995 a cílem jejího snažení bylo vytvořit jednoduchého robota použitelného pro výuku na školách. V této době prakticky neexistovala použitelná stavebnice robota. Dnes nabízí výrobce mnoho variant různě složitých stavebnic. Od jednoduchých robotických paží až po Hexapody (chodící pavouk). Na svých stránkách nabízí výrobce množství rozsáhlých obrazových návodů pro sestavení i pro práci s roboty. Navíc kolem stavebnic robotů tohoto výrobců vznikla široká komunita uživatelů, která se ráda dělí o svoji poznatky a tipy na veřejně přístupných fórech. V této práci jsme se zaměřili právě na robotickou ruku, neboť se jí podařilo naší katedře zakoupit a také je díky svojí jednoduchosti nejlépe použitelná pro výuku na základní škole.
Odkazy na internet: Stánky výrobce Stránky s hotovými projekty Stránky s fórem
Představení naší „ruky“ Tato model nabízí rotaci hlavní základny, pohyb kloubu, celého ramene, pohyblivé a otočné zápěstí a funkční „chapadlo“ pro úchop předmětů. Celá ruka dorazila v rozloženém stavu – museli jsme si jí komplet sestavit. Nebylo to rozhodně nějak jednoduché. Výrobce nedodává návod, je k dispozici online na webu. Nevýhodou, že některé součástky a postupy ne zcela souhlasili s naší stavebnicí a návod byl ne vždy zcela jednoznačný. V tom by se mohl výrobce trochu polepšit. Po sestavení jsme celou ruku přišroubovali na dřevěnou desku, na kterou jsme nalepili žlutý papír, na který si můžeme namalovat obrysy předmětů, které budeme rukou přemisťovat.
Obrázek 1: Celkový pohled na ruku přišroubovanou k desce
Po celkovém sestavení a oživení jsme ještě přidali na úchopovou ruku bezdrátovou kameru pro snímání pohybu. K tomu jsme využili stavební prvky ze stavebnice Merkur. Jak je vidět, ruka nabízí mnoho možností pro další rozšíření. A toto je pouze jedno z nich.
3
Obrázek 2: Detail na úchopovou část s kamerou
Obrázek 3: Naše ruka právě uchopuje krabičku od sirek
4
Obrázek 4: Přemisťování objektu
Obrázek 5: Závěrečné ukládání krabičky na místo určení
5
Řešení úlohy přemístění krabičky od sirek Pro začátek jsme dostali za úkol jednoduchou věc, a to sice přemístit krabičku od sirek z bodu 1 do bodu 2. Oba dva body jsme si nakreslily na žlutý papír, který jsme si předtím přilepili na dřevěnou desku s robotem. Nyní už tedy zbývalo si celou úlohu naprogramovat. Na obsluhu všech robotických rukou firmy Lynxmotion slouží jejich vlastní obslužná aplikace RIOS (Robotic arm Interactive Operating Systém) / SSC-32 Arm Control Software. Na www stránkách je volba na stažení. Doporučujeme často kontrolovat kvůli aktualizacím. Robota můžeme připojit k počítači přes sériové rozhraní. Nově se také nabízí možnost propojení přes port USB. Další možností, jak externě ovládat některé funkce RIOSu je založit si vlastní socket server, přes který s aplikací komunikujeme pomocí sítě (LAN i WAN). Přes internet tedy můžeme otevírat a spouštět projekty a sekvence. Můžeme také načítat hodnoty ze vstupních senzorů či číst stavy všech čidel a poloh serv. Zde uvádím některé příkazy: <sequence_list:play> <project_select:projectname>"; "<project_select:L6-Demo 02 DistYBa>" "
" "" A mnoho dalších. Podrobný popis je v manuálu na software RIOS, který je volně ke stažení na stránkách výrobce. V tomto softwaru si můžeme vybrat ze 2 možností programování. •
Můžeme psát program pomocí příkazů rovnou do příkazového řádku. Využívá se modifikovaná verze programovacího jazyka BASIC. Máme tedy k dispozici klasické podmínky a cykly se syntaxí např.: If - then, for – next a do – while. Toto řešení je sice náročnější na zvládnutí programovacího jazyka, ale má jednu velikou výhodu, a to sice, že k robotu lze dokoupit programovací zařízení, z kterého si poté program čte, tudíž není potřeba k obsluze počítač a program se může spustit přímo.
6
•
V našem případě jsme si zvolili 2. možnost, neboť ta je jednodušší a splňuje tedy požadavky pro využití ve výuce na ZŠ. Naprogramovali jsme si tedy robota ve vizuálním prostředí programu RIOS.
Obrázek 6: Úvodní obrazovka programu
Takto vypadá úvodní obrazovka po spuštění programu. Můžeme si vybrat hned z několika voleb. Vpravo vidíme výběr komunikačního portu, Dole vidíme tlačítka pro spuštění socket-serveru, případě klienta na druhé straně pro komunikaci s ním. V panelu nalevo s názvem Configuration vidíme několik voleb pro celkové nastavení a kalibraci robota. Některé volby si nyní podrobněji popíšeme. Začneme s volbou All=15mS.
7
All=15mS
Obrázek 7: Nulování robotické ruky
Po kliknutí na tlačítko Test se vyšle 1,5mS impuls do všech serv a ty se tím uvedou do základní pozice. Když je ruka správně nastavená a zkalibrovaná, měla by se uvést do tvaru, který vidíme na obrázku. Pokud ne, musíme provést opětovné nastavení.
8
SSC-32
Obrázek 8: Konfigurace robota a softwaru
V tomto okně se provádí veškeré počáteční nastavení a kalibrování robota. Vidíme zde všechna serva, která jsou aktuálně zapojená a slouží k provádění pohybu. A právě ty musíme napřed přesně kalibrovat. To se provádí takto: •
Posuvník 1 nastavíme doprostřed
•
Základnu robota nastavíme manuálně opatrně doprostřed
•
Zatrhneme Checkbox 1 – Enable
•
Nyní posunujeme posuvníkem pomalu nahoru, když dojdeme do mezní hodnoty, musí být základna otočena přesně o 90° napravo. Když není, nastavíme hodnotami Min Pos a Min Deg správné hodnoty.
•
To samé provedeme i pro pravou stranu
Obdobně budeme pokračovat s kalibrací pro všechna zbývající serva (klouby).
9
Profil nastavení si můžeme uložit a po každém dalším spuštění si ho načíst. Takže kalibraci stačí provést pouze jednou.
10
Arm
Obrázek 9: Nastavení geometrie ruky
V tomto okně lze individuálně nastavovat geometrii ruky, včetně kompenzace gravitace (udržuje ruku v pořád stejné pozici – vyžaduje napájení. V našem případě jsme použili Quick arm selektor (tlačítko Arm…). Zde jsou již předpřipravené profil y geometrie pro všechny aktuálně dodávané robotické ruce. Vybrali jsme tedy model AL5D. XYZ sys Pod touto volbou si můžeme zvolit jiný souřadnicový systém. My jsme vše nechali stejné.
11
Moves A nyní, když máme našeho robota nastaveného a připraveného k použití, přichází na řadu to hlavní, a to sice naprogramovat si vlastní příklad. Klikneme tedy na tlačítko Moves.
Obrázek 10: Okno pro programování
Po stisknutí tlačítka Joystick můžeme ruku ovládat i joystickem připojeným k počítači. Čím více obsahuje os, tím lépe. Můžeme ovládat současně více funkcí ruky. Ale je nutné zmínit, že přesnost ovládání není velká a chce to opakovat více pokusů k uchopení jednoho předmětu. Celé okno je rozděleno do několika částí. V horní části vidíme polohy a geometrii celé ruky, zatímco v dolní části máme volby pro výběr projektu a pro programování jednotlivých kroků našeho programu. Můžeme si zde také zapínat a vypínat jednotlivé vstupy, které chceme použít. Nakonec tlačítkem Play se nám otevře nové okno s rozšiřujícími volbami pro spuštění programu či sekvence. My se nyní zaměříme na vytvoření vlastního projektu
12
Obrázek 11: Volby pro ovládání projektu
Tlačítkem + si vytvoříme nový projekt, který si pojmenujeme. Ten se nám poté bude spolu s dalšími projekty zobrazovat pod vysouvací nabídkou. Kliknutím na název se nám projekt načte. Nyní si opět tlačítkem + ve volbě sekvence přidáváme jednotlivé kroky, které s robotem chceme provádět. Doporučuji volit kroky co nejmenší, aby šly poté snadno opravit či změnit. Jednotlivým krokem rozumějte například otočení celé ruky o 30°, sevření ruky, zvednutí předmětu apod. Z toho vyplývá, že musíme mít postup dopředu promyšlený a připravený, aby programování probíhalo co možná nejplynuleji. V našem případě jsme si tedy na žlutý papír na podkladové desce namalovaly 2 místa. Jedno, z kterého budeme krabičku od sirek sbírat a druhou, kam ji budeme pokládat. Nyní nám již tedy nic nebrání tomu, abychom začali s postupnými kroky. Kroky můžeme vykonávat pomocí joysticku, což ale nepovažuji za vhodné, neboť jsou pohyby nepřesné a trhané. Proto je lepší každý krok zadávat softwarem. Více již ukázka.
Obrázek 12: Nabídka pro zadávání kroků
Zde vidíme jednotlivé tlačítky pro všechny osy (čili jednotlivá serva), které můžeme ovládat po krocích. Jelikož je zde hodně možností, doporučuji si ovládání důkladně vyzkoušet a zažít, abychom nemuseli naše snažení několikrát opakovat kvůli překliknutí. Dle ikonek, lze poznat, jakou osu tlačítka ovládají, což nám práci usnadní. Dobré je, že po vykonání každého kroku se nám celý projekt sám uloží, takže se nemusíme starat o ukládání.
13
Po vykonání všech potřebných kroků nám zbývá si vytvořený program již jen spustit.
Obrázek 13: Spuštění projektu
Zde jednoduchým kliknutím na tlačítko Play celý projekt spustíme. A pakliže jsme postupovali správně, program se úspěšně vykoná. Máme zde ale i více voleb k nastavení, můžeme zde ovládat jednotlivé vstupy a výstupy. Záleží, čím vším jsme našeho robota osadili. V našem případě to byla bezdrátová kamera, které bohužel nebyla součástí stavebnice, takže snímala obraz pouze externě.
14
Závěr Touto prací jsme si chtěli nastínit možnosti využití této robotické stavebnice. Ty se ukázalo, jako skutečně veliké. Už jen díky nabídce dalších rozšíření od výrobce. Ruku můžeme dovybavit od teplotního čidla, 3D kamery až po pásový podvozek. Samozřejmě že s každým dalším rozšířením stoupají i nároky na schopnosti programátora. Ale dají se dělat opravdu velice sofistikovaní roboti. Na internetu jsem i našel komunitu, které se pomocí těchto stavebnic staví roboty pro souboje mezi sebou. Nasazení konkrétně tohoto modelu bych s klidným svědomím doporučil i na základní školy, konkrétně tedy nějaké vyšší třídy. V Americe je běžně využívají pro výuku jejich obdoby technické výchovy. A nutno říci, že s úspěchem. Dokonce mezi sebou školy pořádají i mezistátní soutěže. U nás může být problém s financováním. Bude zapotřebí nějakého grantu nebo hodně nadšeného ředitele. Ale i to je realizovatelné. Koneckonců naše stavebnice stojí komplet kolem 490 dolarů. Myslím si, že u dětí by se tento robot setkal s kladnou odezvou. Přes počáteční obavy z příliš složitého softwaru jsme dospěli k názoru, že by to žáci určitě zvládli. Jen je potřeba se se softwarem důkladně seznámit.
Použité zdroje http://www.lynxmotion.com/default.aspx http://www.lynxmotion.net fotografie: vlastní tvorba
Odkazy na videa Přemístění krabičky Přemístění krabičky - přiblížené Video natočené bezdrátovou kamerou
15