First Lego League je najväčšia medzinárodná robotická súťaž pre mladých výskumníkov vo veku od 10 do 16 rokov. Deťom z 80 krajín umožňuje prvýkrát naprogramovať svojho robota. Pre mnohých súťažiacichje to začiatok vzrušujúcej cesty k vývoju skutočných robotov.
Ak chceme preniknúť hlbšie do problematiky vývoja robotov, je nevyhnutné začať úplne od začiatku – od základov elektroniky.
Tak ako sa v posledných rokoch stali počítače súčasťou nášho každodenného života, tak sa v blízkej budúcnosti stanú našimi každodennými spoločníkmi aj roboty.
Na Slovensku sa First Lego League (FLL) organizuje od roku 2010. Táto súťaž umožnila stovkám detí na našich základných školách zostaviť a naprogramovať svojho prvého robota a zažiť krásny pocit, keď TO začne fungovať. Veľa z nich sa absolvovaním tejto súťaže aj skutočne nadchne a inšpiruje k ďalšiemu štúdiu. Deti, rodičia aj organizátori súťaže si však často kladú otázku: Ako ďalej po First Lego League? Ako podchytiť rozvíjajúci sa talent, rozšíriť nadobudnuté vedomosti a nasmerovať mladého technika – výskumníka na cestu skutočného robotického vývoja?
Cesta k sebavedomému a komplexnému vývojárovi
Vzhľadom na rozsah súčasnej robotiky asi nie je možné stanoviť univerzálny postup. Porovnaním skúseností viacerých vývojárov, ktorí v uplynulých rokoch prešli podobnú cestu, však dokážeme pomenovať aspoň zopár základných vývojových etáp, ktoré je užitočné absolvovať. Vyžaduje si to však značnú dávku odhodlania, motivácie, trpezlivosti a množstva hodín strávených štúdiom aj experimentovaním, ale tá cesta stojí za vynaloženú námahu. Nielen preto, že pocit zadosťučinenia po prekonaní každej prekážky je priam návykový, ale najmä kvôli tomu, že jej výsledkom je sebavedomý komplexný vývojár, schopný samostatnej práce, zvyknutý neustále sa vzdelávať a pracovať na rozvoji svojich zručností. Vďaka rokom poctivej práce si navyše vybuduje aj cit pre vyhľadávanie a spájanie informácií a riešenie širokého spektra problémov. A to je kombinácia vlastností, ktorá je v dnešnom svete mimoriadne žiadaná a umožňuje uplatniť sa v rozličných odvetviach nielen technického charakteru. Odkiaľ teda začať a ako nadviazať na skúsenosti a vedomosti získané vo FLL?
Úplne od začiatku
Robotické stavebnice ako LEGO Mindstorms, Merkur, Bioloid alebo Fishertechnik síce umožnia deťom zažiť pocit nadšenia z prvého vlastnoručne postaveného robota, ale často je to za cenu mnohých zjednodušení a pomôcok, či už z hľadiska mechanického, elektronického alebo programátorského. Ak je naším cieľom preniknúť hlbšie do problematiky robotického vývoja, je nevyhnutné odpútať sa od týchto pomôcok a začať úplne od začiatku, od základov elektroniky. Štúdium elektroniky totiž prirodzeným vývojom privedie mladého výskumníka k jednočipovým mikropočítačom – mikrokontrolérom. Mikrokontroléry ho privedú k programovaniu a návrhu dosiek plošných spojov a dosky plošných spojov k samotnému konštruovaniu.
Jazyk C – hlavný programovací jazyk
V robotike je hlavným programovacím jazykom jazyk C. Netreba sa ho báť. Ak vývojár vďaka skúsenostiam s assamblerom rozumie práci procesora na najnižšej úrovni, prechod do jazyka C bude pre neho vítanou zmenou k lepšiemu. Jazyk C totiž zbavuje programátora neustálej práce s registrami a umožňuje mu viac sa sústrediť na samotnú funkcionalitu programu. Často sa dá rutina, ktorá si v assembleri vyžadovala 30 inštrukcií, v jazyku C nahradiť jednoriadkovou funkciou. Výsledný kód je kratší, prehľadnejší a jednoduchší.
Hranice vlastných možností
Hlavnou devízou, ktorú mladý vývojár na ceste za prvým vlastným robotom získa, nie sú len samotné zručnosti či nadobudnuté vedomosti, ale je to najmä chuť neustále sa zlepšovať, vzdelávať a posúvať svoje vlastné limity. Skôr či neskôr príde ďalší projekt. Tento proces sa môže opakovať niekoľkokrát po sebe, no časom si každý vývojár uvedomí, že v určitom bode začne narážať na hranice vlastných možností. Naprogramovať robota, aby sledoval čiaru, hľadal cestu z bludiska, prípadne reagoval na povely zo smartfónu nie je z hľadiska riadenia až taká komplikovaná úloha. Ak však má robot dokázať zmapovať svoje okolie, autonómne sa v ňom pohybovať a pritom sa vyhýbať statickým aj dynamickým prekážkam, to už úplne jednoduchá úloha nie je a jej riešenie vyžaduje úplnú zmenu prístupu.
ROS – Robot Operating System
Pri vývoji pokročilejších robotov sa nedá spoliehať výlučne len na svoju vlastnú prácu a snažiť sa naprogramovať robota od najnižšej úrovne až po zložité algoritmy mapovania, lokalizácie či navigácie. Robotická komunita dlhé roky trpela práve týmto prístupom. Vývojári namiesto toho, aby sa sústredili na vlastnú aplikáciu a pokročilé riadenie robota, neustále riešili základné problémy s ovládačmi, portovaním knižníc a komunikáciou medzi jednotlivými modulmi. Chýbala aj spoločná platforma, vývoj sa robil na rôznych operačných systémoch. Mnoho vývojárov si tento problém uvedomovalo a snažilo sa ho riešiť. Za posledných 20 rokov vzniklo vo svete viacero pokusov o zjednotenie vývojovej platformy, či už išlo o Microsoft Robotic Studio alebo rôzne robotické platformy ako OCOROS, YARP či MORSE, z ktorých sa nakoniec okolo roku 2010 definitívne presadil Robot Operating System, pôvodom zo Stanfordovej univerzity. V ROS sú k dispozícii všetky základné prvky, potrebné pri vývoji pokročilejších robotických aplikácií, od ovládačov pre rôzne typy senzorov a hardvéru cez knižnice na spracovanie obrazu, kalibráciu, riešenie kinematických úloh, plánovanie trajektórií, mapovanie až po vizualizáciu a sieťové prepojenie. Používateľ si vyskladá aplikáciu z jednotlivých modulov, ktoré si buď naprogramuje sám, alebo použije už hotové komponenty. Je pritom úplne jedno, či sa zameriava na servisnú, humanoidnú alebo priemyselnú robotiku, ROS možno vďaka modulárnej architektúre použiť pre široké spektrum aplikácií.
Mimoriadne dôležitú zmenu, ktorú ROS do robotického vývoja priniesol, bolo zjednotenie vývojovej platformy. ROS je optimalizovaný pre operačný systém Linux a v uplynulých piatich rokoch sa presadil do takej miery, že aj špičkové svetové univerzity a výskumné ústavy sa postupne preorientovali na vývoj na tejto platforme.
ROS je kompletne open-source a zadarmo, čo umožňuje jeho voľné použitie pre výskumné aj komerčné účely. V praxi to znamená, že všetko, čo pod logom ROS nájdete, si môžete zadarmo stiahnuť, nainštalovať, používať, upravovať a svoj výsledok aj komerčne predať bez toho, aby od vás niekto pýtal akékoľvek licenčné poplatky.
Autor: Ing. František Ďurovský, Strojnícka Fakulta, Technická univerzita v Košiciach, Ústav automatizácie robotiky a mechatroniky a zároveň SmartRoboticSystemssmartroboticsys.eu
Foto archív autora, Pixabay
Uverejnila: ZVČ
Viac informácií o vzrušujúcej ceste mladých robotikov ku svojmu cieľu – vlastnému robotu, o trendoch vývoja v v robotickej komunite a o súťaži (najmä) pre stredné školy, ako aj o iných zaujímavých témach, sa dočítate v časopise Quark (číslo 6/2016), ktorý nájdete v novinových stánkoch alebo si ho môžete predplatiť v elektronickej alebo papierovej verzii na www.quark.sk.