czech english

SICK Robot Day 2010

účast tří českých týmů

Letos německá firma SICK uspořádala další ročník soutěže pro autonomní roboty. Úkolem robotů bylo v aréně o průměru zhruba 15m lokalizovat tabule s číslicemi 0 až 9, a co nejrychleji projet zadanou sekvenci. Startovali vždy dva roboti současně s tím, že jeden startoval z 0 a hledal čísla od 1 do 9 a druhý jel v opačném pořadí, tedy start v 9 a měl se dostat na 0. Časový limit byl 10 minut. V aréně samotné bylo mnoho překážek, kterým se bylo třeba vyhnout. A jak se dařilo?

Soutěž se konala ve městečku Waldkirch v Německu, kde firma SICK sídlí. Kopečky v okolí trošku připomínají Šumavu a tak bude-li nějaké „příště” by možná stálo za to si vyšetřit jeden den odpočinku a po náročné soutěži a cestovaní (z Prahy je to asi 650km) to kompenzovat pěší turistikou.
Akce se účastnilo nakonec 16 týmů: dvanáct německých, tři české a jeden italský. Na rozdíl od loňského ročníku se soutěžilo uvnitř, ve sportovní hale, a aréna byla řádově menší (průměr 15m na rozdíl od loňských 40m). Proti tribuně byla vysoká okna, takže i takto si kamery užily denního světla.
Organizace byla vskutku německá a původní rozvrh byl dodržován s přesností na minuty. Vše začalo v 10h ráno, kdy týmy dostaly k dispozici stůl s přesným počtem židlí, přípojku elektřiny a informační složku kdo kdy bude soutěžit. V 13h byl sponzorovaný oběd a od 14h se soutěžilo.
Každý robot zápasil 2x a počítal se mu lepší pokus. Celkově to bylo tedy 16 zápasů po deseti minutách. S vyhlášením se vše stihlo do 18h, kdy byl oficiální konec.

Průběh soutěže

Za Českou Republiku jsme měli tři „želízka v ohni”: Roboauto (VUT Brno), Cogito MART (MFF UK) a KZS Team (alias Eduro Team, ČZU Praha). Znovu a znovu se potvrzuje, že jednodušší algoritmy mají větší šanci na úspěch, než složité. Roboauto velmi dobře analyzovalo číslice, ale problémy mělo s lokálním plánovačem a kvůli těsné aréně končilo u druhé zastávky.
Opačný přístup měl Cogito MART. Robot jezdil „jen” po obvodu arény a namontovaná kamera byla pouze imitace pro logování dat. Co oba týmy spojovalo byl autíčkový podvozek s Ackremanovým zatáčením a tedy netriviální problémy při otáčení.
Eduro s otáčením na místě až takový problém nemělo (občas štrejchlo zadkem) a i algoritmus byl nějak mezi — o rozpoznávání čísel se snažilo, ale výsledek byl spíše náhodná procházka (viz dále).
A co jiné týmy? No byly lepší, co si budeme povídat. Je fakt, že asi většina se soutěže účastnila již podruhé, ale … na vítězné dva týmy (shodou okolností se sešly v posledním zápase) byla radost se dívat. Nejen že stihly projet všechna čísla ve správném pořadí, ale vítěz to dokázal za necelé tři minuty. I robot na třetí pozici zvládl čísla všechna, tj. laťka je poměrně vysoko.

Oficiální výsledky

Oficiální výsledky
Oficiální výsledky

Cogito MART

Jiří Iša

Za Matematicko-fyzikální fakultu Univerzity Karlovy v Praze soutěžil tým Cogito MART s robotem Irena. Robot Irena se proslavil už vítězstvím v RobotOrienteering 2010 (tým Sirael). Tým Cogito MART pak druhým místem na RoboChallenge 2010 (Puck Collect), prvním místem v českém Eurobotu 2010 a dvěma třetími místy na Field Robot Event 2010 (Professional Task, FreeStyle). A taky požárem a jedním pokusem robota o útěk na Robotem rovně
Díky účasti obou členů týmu na milionu dalších soutěží (naposledy Robotour čtrnáct dní před SICK Robot Day) nám na SRD nezbylo zrovna mnoho času. Proto jsme se dohodli, že své úsilí radši věnujeme jednoduchému řešení. To nám dá podstatně větší šanci, že bude robot dělat, co má, a my si neuřízneme ostudu. Přiznám se, po shlédnutí videí z loňské soutěže jsem trochu věřil, že i tak by to mohla být medaile.
Irena měla za úkol kroužit po obvodu kolem arény. Čísla v očekávaných obtížných světelných podmínkách detekovat ani neměla. Statisticky by jedno první kolečko kolem arény mělo dát cca. první tři číslice. To se dost blíží loňským nejlepším výsledkům. Ale jak už to s matematikou bývá, důležité jsou předpoklady:
  • Soutěžíme letos a ne loni. Ostatní týmy se dost zlepšily.
  • Organizátoři asi neumisťují čísla úplně náhodně, ale tak, aby to pro kroužiče bylo co nejnepříjemnější.
Irena nakonec dělala to, co měla a co jsme od ní čekali. Včetně slabin. V obou kolech jsme sice promarnili nějaký čas kroužením uprostřed arény (zabloudili jsme od stěny), ale i tak jsme dali dvakrát pěkné čtyři číslice. Až na ony dva výlety kroužil robot kolem arény tak spolehlivě, až to diváky nudilo

KZS Team

Martin Dlouhý

KZS Team byl vlastně Eduro Team, který úspěšně bodoval na Field Robot Event 2010. Bylo nás tedy pět: Milan Kroulík, Stanislav Petrásek, Jan Roubíček, Tomáš Roubíček a Martin Dlouhý (Jiří Iša jel za Cogito MART tým).
První kolo dopadlo nad (moje) očekávání. Vylosovaný zápas byl proti robotu Quido týmu Roboauto. Eduro startovalo na 9 a 8 bylo přímo naproti. Robot arénu přejel, mírně se vyhnul překážce a první bod získal během 14s! Radost, ovace .
Pak se otočil, zamířil přímo na 7 a během dalších 21s by tam možná dojel nebýt blokády SICK přepravek, do kterých „trošku” narazil. Divoká jízda pokračovala a diváci jásali, nejvíce když robot do něčeho naboural — na rozdíl od ostatních týmů jsme laser nakonec neotočili, takže když se hodně přiblížil k 22cm vysoké prázdné přepravce, tak viděl dovnitř a překážka „odskočila”. Pro klasické vyhýbání to nebyl problém, protože robot začal objíždění dříve, ale při dojezdu na cíl bylo nutné dojet až téměř ke zdi a to co laser viděl nutně zeď být nemusela …
Eduro nakonec zvládlo jak 7, tak ještě 6 a samo zastavilo par sekund před časovým limitem s pohledem na Roboauto.
Tak fajn, přestavení pěkné, nasbírali jsme více bodů jak Roboauto, spokojenost. Trošku divné bylo to zastavení na konci a zpráva na display >0, tj. informace, že míří na číslo 0 a zastavil, protože si myslel, že ho dosáhl…
Být kouzelník nebo obchodník, tak tady asi vyprávění skončím, ale … myslím si, že je to poučná lekce, tak vyložím karty. To co diváci viděli, resp. mysleli si že vidí, mělo hodně daleko od toho, jak to viděl robot. Až se mi nechce kazit dojmy z toho pěkného robo-triku. On tu osmičku totiž vůbec neviděl! Proti světlu byla tak tmavá, že ho tam jen zavedla náhoda a algoritmus vyhýbání (VFH+) se kousek od zdi vyhnul.
Proti oknu by bylo bývalo třeba posunout práh ještě o hodně hodně níž … to číslo tam pak vidět je.
Ok, tak jak je možné, že se robot vydal směrem na 7? A viděl jí vůbec? Za to by Eduro zasloužilo pochvalu — dobře rozpoznalo jak 7, tak i sousední 9, i když pouze v jednom ze tří testovaných prahů.
V logu bylo: ('[((7, (217,260,26,41)),(9, (473,268,21,31)),),(),(),]\n', 'logs/cam101002_142700_107.jpg').
Smutné je, že tou dobou Eduro vůbec číslo 7 nehledalo. Chyběla mu úspěšně detekovaná osmička … kde jí tedy nakonec vidělo?
Asi se ptáte, jak si mohl proboha myslet, že ty brýle jsou osmička? Případně co ty dvojky okolo?! No, tak krátce k algoritmu na rozpoznávání čísel: nejprve se obraz převede na šedotónový a oprahuje (zkouší jich více, ale to pro teď není důležité). Pomocí OpenCV nalezne kontury a první klasifikace je podle děr. Pokud kontura obsahuje dvě díry velikosti zhruba 0.15 a 0.25 velikosti vnější kontury a menší z nich je výše, tak se pravděpodobně jedná o číslo 8
Ano, je po bitvě, a i já bych to teď již dělal jinak. Z nasbíraných logů by šel udělat daleko spolehlivější klasifikátor, případně zapojit kód na matchování kontur po jednoduché transformaci. I fakt, že rámce čísel by šly celkem dobře detekovat, ale bude tam spousta dalších zarámovaných textu je nová a důležitá informace.
Druhé kolo probíhalo dost podobně, robot posbíral tři body, ale to už jsme tušili, co se zhruba děje. V aréně se hrálo non-stop, takže na nějaké další úpravy bez testu nebyla moc nálada …

Závěr

Hardware byl stejný jako na Robotour před čtrnácti dny. Software pak hodně těžil z odladěného VFH+ na vyhýbání se překážkám, co pro Robotour implementoval Jiří Iša. Nová byla tedy analýza obrazu a „hraní” si s kamerou. Hodně lidí se nás ptalo: „jak ten robot může vůbec něco vidět, když kouká dolů?” . Tajemství je v širokoúhlém objektivu a horním výřezu obrazu. I s tím teď máme novou zkušenost, která se může zase někdy hodit. Za mne tedy spokojenost, i když na bodované místo to letos nebylo.

Roboauto Quido

Jan Najvárek

Za VUT Brno se zúčastnil tým Roboauto, který je obecně známý z účastí na soutěži Robotour.
Tak jako jiným týmům nám nezbylo mnoho času na přípravu na soutěž, takže za dva týdny jsme stihli naimplementovat rozpoznávání čísel (které jsme dříve nepotřebovali) a algoritmus, jak se pohybovat k jednotlivým číslům. Byl navržen jako jednoduchý konečný automat ve stylu Jeď do centra - Najdi číslo – Jeď k číslu – Jsem u čísla – Jeď do centra atd. Také jsme přemístili LIDAR z horní pozice na přední nárazník, z důvodů lepší detekce překážek, detekce sjízdnosti vozovky nebyla třeba. Nicméně jsme nestihli vyřešit problémy s algoritmem plánování lokální cesty vozidla (trápily nás již na Robotour), což se také během soutěže projevilo.
Při cvičných jízdách jsme ve zkráceném čase odladili základní konstanty (aby robot poznal, že už je u čísla apod.). Doladili jsme adhezi předních kol pomocí lepicí pásky. Otestovali jsme rozpoznání čísel, které fungovalo velmi dobře, stačilo, aby se robot rozhlédl v centru a viděl většinu čísel v kruhu. Dokonce jsme rozpoznávali i testovací čísla, která měly týmy opřená o zeď 50 metrů daleko.
Během prvního kola jsme ladně vyrazili k prvnímu číslu, u druhého však došlo k problému, kdy si robot myslel, že ještě u čísla není (chybělo mu podle interní mapy pár centimetrů), ale naopak collision avoidance již stopla motor, protože jsme byli příliš blízko u stěny – klasický problém nevyladěnosti konstant a nízké robustnosti algoritmu.
V druhém kole jsme dopadli ještě hůře, opět z důvodu relativně nevinné chyby. Robot dorazil do prvního čísla, ale plánovač stále plánoval cestu do cíle. Jelikož však bod cíle a aktuální poloha byla identická (shodou okolností zcela stejná), někde hluboko v kódu vybublala výjimka, protože se snažil najít kolmici k přímce, která byla definována dvěma body (které však byly stejné). Toto se nám nestalo za celé 2 roky, kdy je tento kód využíván, klasicky se to napoprvé stane na soutěži.
I když jsme nedopadli zrovna výborně, hodnotíme účast jako velmi přínosnou. Jednak jsme si vyzkoušeli účast na jiném typu soutěže, než je Robotour, poznali jsme německou organizaci (výborná), a také nás neúspěch popohnal k tomu, že chceme nespolehlivé části řízení vyladit na větší robustnost a spolehlivost.

Odkazy

Máte-li jakékoli dotazy či připomínky — kontaktujte nás.