czech english

Field Robot 2015

FireAnt, Eduro a robotický cirkus

Letos jsme se soutěže Field Robot Event účastnili hned se dvěma roboty: Eduro a FireAnt. Chodící robot byla spíše taková provokace, která měla připoutat pozornost a ukázat, že polní robot může vypadat docela jinak. Eduro pak byla „osvědčená záloha”. Oba roboti svůj osud naplnili a tak jsme do Prahy přivezli i nějaké medaile …


Přiznám se, že letos se mi na FREčko do Slovinska (kousek od Mariboru, cca 550km) moc nechtělo. V kombinaci s „trénovacími předvaděčkami” (alias Robotický cirkus) na akcích dnipola.sk a nasepole.cz mi fre2015 sežralo polovinu roční dovolené. Navíc Eduro dosáhlo svého vrcholu loni, kdy zvítězilo v celkové soutěži … co od toho chtít víc?
Asi hlavní motivací bylo oprášit kontakty na lidi, kteří se robotizací zemědělství zabývají. Akce se zúčastnily zhruba dvě desítky týmů z různých Evropských univerzit, tj. spousta nadšených studentů a zkušených mentorů.
Jsem rád, že si Jakub vzal za vlastní přípravu FireAnta a já se staral pouze o Eduro. Jako výzva mi pi přišla hlavně třetí úloha: detekce a mapování plevele (na hnědo nastříkaná kukuřice).

FireAnt

Rozpoznat zelenou kukuřici od zelené trávy vůbec nebylo triviální:
Soutěž se totiž letos nekonala na klasickém poli, ale na „zámeckém trávníku”, kde byly vyvrtány díry pro květináče s kukuřicí.
Jakub pro rozpoznání kukuřice nakonec použil statistiku kontur: musí být dostatečně velké a když jich je více vlevo zatoč vpravo a obráceně. K mému překvapení tento přístup při testování fungoval překvapivě dobře . V ostrých jízdách to bylo horší, ale pak se ukázalo, že jednou v kódu „hnil” nějaký testovací krok a podruhé měl mravenec mechanické problémy s předním levým servem. Úspěšná autonomní navigace bez dotyku byla tedy až ve třetí úloze (viz video).
Během soutěžních dní Jakub na mravencovi intenzivně pracoval a finální algoritmus prý používal tři druhy korekce: mírné otočení s krokem vpřed, větší otočení s krokem vpřed a velké otočení s úkrokem stranou. Kód je na githubu, ale poslední verze je prý ještě pouze na mravencovi.

Eduro

Eduro jelo na 80% pomocí loňského kódu. Novinka byl skript mapování pomocí frelog2map.py, který ze zalogovaných dat z laserového dálkoměru a výsledků zpracování kamery vytvořil mapku:
Vyžadovaný formát byl TIFF, rozlišení je pixel=1cm a červené tečky jsou poničené hnědé kukuřice. Eduro, na rozdíl od většiny robotů, jezdilo ob řádek a mělo vlastně nejlepší mapovací čas 1m:20s (který se nepočítal ).
Druhá větší změna, kterou jsme ladili z úterka na středu, byla detekce překážky. Listy kukuřice občas zcela zakrývaly výhled laseru a aby robot zbytečně nepanikařil, tak byla přidána detekce výstražného kuželu. Otázka byla, jak tyto dva zdroje zkombinovat, což se samozřejmě projevilo v ostré jízdě (viz video), kdy Eduro sice detekovalo spousta červené, ale zároveň dostatek místa na objížďku.

Průběh soutěže

Basic Navigation

V první úloze měli roboti systematicky projíždět jednotlivé řádky. Řádky lehce připomínaly symbol blesku (viz foto).
políčko pro Basic
Navigation
políčko pro Basic Navigation
. Mravenec měl velké problémy, přestože před tím podobnou řádku prošel bez dotyku, a tak počet trestných bodů převýšil odkráčené metry.
Pro Eduro to byla „klasika”, ale … vyrazilo a hned v prvním řádku špatně odbočilo. Restart naštěstí fungoval a pak už jelo bez problémů, čistě, bez zničené kukuřice a doteků. Bodově se umístilo na šestém místě a já začal silně pochybovat, že letos přivezeme nějakou cenu …
Mám pocit, že Jurij (organizátor) říkal, že první řádka je o něco užší, ale neověřoval jsem to. Po 180 stupňové otočce Eduro směřovalo do kukuřice a menší rozdíl byl o řádek dále:
Z logů to odhadem vypadá na cca 5*9 + 14 + 7 ujetých metrů, tj. 66 bodů - 2 z dotek. Oficiálně 62.5m a lepší Cornstar (domácí tým) měl 82m.

Advanced Navigation

Průběh druhé úlohy, kdy roboti měli jet podle vzoru S-3L-1R-2L-3L-5R-F, jsem už nakousl (letos dokonce předem prozradili, ve které řádce bude překážka a jak bude vypadat). FireAnt měl těžké problémy, protože běžel se špatným testovacím kódem — extra úkrok po každé korekci.
Eduro startovalo deváté a tak jsem viděl Banat robot, se strategií, která už mne několik let vytáčí: na konci řádku robota vzít a posunout ho do dalšího řádku podle vyžadovaného vzoru. Banati to navíc dotáhly do stavu, že robot na konci řádku automaticky zastavoval, aby se snáze chytal. 66 bodovaných metrů! Letos za špatný přejez byla malá penalizace a tak můj interní cíl byl porazit tuto „advanced” technologii. Štěstí nám přálo a přestože Eduro ujelo „jen” 59m (ono těch 66m byla asi celá trasa), tak s trestnými body za dotek Banaty porazilo a celkově získalo druhé místo .

Weed Detection

Ve třetí úloze jsem měl radost z obou robotů. FireAnt šel bez jediného dotyku (servo z nohy kluci prohodili za servo na ocasu), ušel několik metrů a dokonce analyzoval průměrnou barvu jednotlivých velkých kontur, klasifikoval obarvené kukuřice a vytvářel mapku.
Eduro jelo bez problémů a po zpětné analýze logů zjištuji, že detekovalo všechny nastříkané kukuřice! Bylo tam ale i několik (4) chybných detekcí, kdy teď na obrázcích vidím nohy rozhodčích — říkali, že šestou řadu kukuřice budou ignorovat (tam přímo rozhodčí šel vedle robota a v kombinaci s ostrým stínem vytvářel „temnou kukuřici”). Jak to nakonec vyhodnotili netušíme, ale třetí místo je pěkné .
Včera jsem koukal na obrázky a od této úlohy jsou všechny rozmazané. Že by nějaký záškodník?! … asi se povolil šroubek u ostření … ale proč bych na to šahal … nevím. Naší detekci to nijak neovlivnilo, ale obrázky nejsou moc pěkné na prezentaci :(.Tak alespoň těch 6 úspěšných detekcí (z vícenásobné detekce vybírám tu, kde si byl nejjistější):
… a ty špatné:
Ještě bych měl zmínit, že pro mapování jsem poprvé použil kompas (díky Standovi
hodnocení třetího úkolu
hodnocení třetího úkolu
za nápovědu ). Přemýšlel jsem, jak ty jinak náhodně překřížené řádky narovnat a použití, již napsaného, Kalmanova filtru s kompasem byla nejpřímější cesta. Z dřívějších zkušeností víme, že s dešťníčkem se kompas choval úplně jinak, tak jsem měl připravené dvě různé „kalibrace” (jen pro nakreslení mapy z logu, pro navigaci se nepoužíval).

Free Style

Toto byla úloha, která se mi líbila nejvíce, ale porotu nijak neoslovila. Ono se sice později ukázalo, že mezivýsledky neměly být veřejné (naše ukázka byla úplně první) a sudí by je bývali upravovali/škálovali podle dalších, ale na mé depce to už nic nezměnilo .
Předváděli jsme současně všechny roboty co jsme měli: FireAnt pochodoval „v řádku”, tj. překážky ho mohli vychýlit z rovné trasy. Eduro se naučilo nový tanec spinner.py, kdy místo následování objektu kolem něho kroužilo. Konečně Heidi to vše pozorovala shora a snažila se navigovat na značku na Eduru. Možná trošku chaos??
Aby to nebyla taková nuda, tak se vše odehrávalo v proluce mezi zámkem a novou budovou, takže pro dronu s indoor krytem tam nezdravě foukalo. A na celé akci bylo wifin, že se to nedalo spočítat — spojení s dronou vypadlo asi 10x. Jaký to byl „tanec” je vidět z logu Heidi (růžové body odpovídají úspěšné detekci přistávací plochy, přerušovaná čára výpadek spojení):
a určitou představu získáte i z Petrova videa:

Závěr

Akce se mi nakonec líbila — ano, přispělo k tomu druhé místo v celkovém hodnocení Edura, o které jsme se dělili s Dánským týmem (proto ta pilka na rozříznutí trofeje) a všeobecně velký zájem o FireAnta (dokonce se nám ozvala BBC, ale asi z toho nic nebude). Líbil se mi zámeček, okolí, příjemní lidé, dobře zorganizované … a nářky nad naší školou si nechám na jindy .

Foto

Video Eduro (Stanislav Petrásek)

Video Eduro (Petr Zábranský)

Field Robot Event: FireAnt and Eduro playlist