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).
. 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.
políčko pro Basic Navigation |
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
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).
hodnocení třetího úkolu |
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 .