Eduro Team
suplování české reprezentace
Díky iniciativě a značnému úsilí Milana Kroulíka z Katedry zemědělských strojů (KZS) na České zemědělské univerzitě (ČZU) se jedenáctý ročník mezinárodní soutěže Field Robot Event konal poprvé v České republice. Byl překonán dosavadní rekord jak v počtu aktivně se účastnících týmů, tak i počtu zemí. S čím ale nikdo nepočítal, že se nepřihlásí ani jeden český tým!
Na FRE2013 (Field Robot Event) jsem Eduro Team registroval na poslední chvíli a
to s dost smíšenými pocity. Čekal jsem, že když přišla hora k Mohamedovi, tak
můžeme počítat s dvěma, možná i třemi novými českými týmy. Dopadlo to ale hodně
„pod očekávání”.
Beru-li „rozšířený” Eduro Team z roku 2010,
kdy se nám podařilo získat mnoho cen a „zazářit na robotickém poli”, tak
Milan Kroulík se Standou Petráskem se plně věnovali organizaci a zbytek týmu je
už zapřažen v pracovním procesu. Svoji účast jsem bral především jako závazek
vůči Milanovi a „lehké” zklamání naší robotickou scénou — můj odhad byl
hodně špatný.
Přechod z létajících robotů a vzdušných zámků zpět na zem byl
poměrně tvrdý. Nemalou roli v tom hrál i fakt, že se od nás očekávaly
nadprůměrné výsledky (v roce 2010 i 2012 jsme vyhráli Professional Task), ale
příprava i testování bylo minimální, a až moc dobře jsem si byl vědom starých
nevyřešených problémů …
Týden do soutěže
Necelé dva týdny před FREčkem jsem ještě létal s Heidi na
RoboOrienteeringu a jediný zbývající
víkend jsem „proflákal” na zahradě. Robota Eduro jsem měl s sebou, ale letos
jsem si žádné testovací políčko nepřipravil (a na rovinu, kdybych připravil,
tak by bylo 2x zaplavené a momentálně pod vodou).
Větší přípravy tedy nastaly až v Praze, kde jsem s hrůzou zjistil problém s
baterkami. Stejně jako loni se nedostatečně nabíjely. Loni jsem koupil dvě nové
(12V gelové olověné akumulátory), ale do toho se mi letos jít nechtělo.
Honza pustil regenerační cyklus na ty staré a plán byl skočit si v případě
nouze do GME na Křižíkově … je to přeci jenom blíž, než např. loni z
Floriade.
Druhý problém byl neustávající déšť a silně rozbahněné pole. Ze středy na
čtvrtek jsme, tedy spíše Honza a já jen přihlížel, Eduro odlehčili (sundali
robotickou ruku, která loni moc pěkně nabírala květináče s růžemi), přezuli na
šípová (traktorová) kola a vyrobili plastový „domeček”, aby bahno necákalo do
elektroniky.
Čtvrtek — testovací den
Na čtvrtek jsem si vzal z práce dovolenou a začalo to hodně depresivně. Po
projetí jednoho řádku slunečnice se robot zadřel a neměl jsem sílu ho ani já sám
ručně tlačit a tím spíš slabé motory. Problém nebyla až tak přední hnaná kola
jako zadní kolečko. Bahno fungovalo jako brzdný klín.
Jako jedinému českému týmu se nám ale dostávalo neuvěřitelné pozornosti .
Nastoupila parta z katedry strojů a do půl hodiny vyrobila na míru škrabku,
která krásně pasovala a hlavně fungovala! Baterky ale umíraly, což byl další
důvod, proč Eduo na poli moc nezvládalo. Přešel jsem tedy z programování na
mechaniku a baterky vyměnil (na rozdíl od loňska šly šrouby krásně ven,
takže celá akce byla hotova během 10min).
Program v Pythonu mi trošku připomínal DNA — daly se tam najít zbytky detekce
plevelu v kukuřici z roku 2010 i kód na nabírání růží. Byl to tedy spíše takový
crossing-over a nastavení parametrů než programování. Hlavní rozdíl od roku
2012 byla šířka řádku. Papírově byla sice stejná (75cm), ale loni to byly kraje
květináčů a letos střed slunečnic. Ty narostly zhruba stejně do výšky i šířky
(15-25cm), takže řádek měl spíše k 40cm. Laser, náš hlavní navigační senzor,
bylo tedy nutné sklopit dolu jako předešlé ročníky. Ve výšce 30cm by totiž
typicky žádnou rostlinu neviděl.
Polední testování v poli bylo o řád optimističtější. Eduro už zvládalo i
několik řádek, ale občas nekompromisně začalo likvidovat jednu slunečnici za
druhou. Otočení na místě také nedalo, za což částečně nesla vinu nově přezutá
šípová kola — prostě pevně držela v bahně a na tu otočku je třeba trochu
smyk.
Pomalu jsem rezignoval na Advanced Task (ježdění ob několik řádek), dokud
nebude Basic Task (jízda zig-zag) alespoň trošku spolehlivě fungovat. Výsledek
při soutěži tomu pak odpovídal — Eduro si řádky odpočítávalo přes odometrii a
nepřesná detekce konce řádku či natočení vedla robota k nezdaru.
Pozdě večer jsem měl zase sraz s Honzou Roubíčkem, který znova Eduro přezul. Půda
začala vysychat a možnost snazšího otočení byla kritická.
Pátek — soutěž
Ze čtvrtka na na pátek se robot nějak odmítal nabíjet. Ráno byly tedy baterky
slabé. Když jsem dorazil do kruhovky (kruhová hala ČZU, kde bylo zázemí všech
týmů) a na nabíječce naskočila červená a max nabíjení, tak jsem robota raději
nechal v klidu dokud nebude plně nabitý. Dorazil i Tomáš, který si vzal na celý
den dovolenou, a tak jsme začali vymýšlet nějakou jednoduchou strategii na
„Professional Task” a rozpoznávání plevele (kukuřice, řepka a spálená
slunečnice).
Nějak mi nedošlo, že testovací políčka s plevelem byla jinde, než kde jsem ve
čtvrtek sbíral data, takže to bylo spíše po paměti. Chtěl jsem algoritmus, kde
bych mohl nastavovat nějakou hranici, kdy v extrému by to nic nedetekovalo a ve
druhém to naopak detekovalo všechno. To jsem ještě netušil, že celá úloha bude
úplně jinak vyhodnocovaná (došlo mi to až týden po soutěži, když sepisuji tento
článek). Prostě cíl byl rozpoznat plevel, jen když si budeme opravdu jisti.
První pozorování ukázalo, že listy slunečnice téměř dokonale kryjí půdu na rozdíl
od řepky či kukuřice. Klasifikovali jsme tedy pixely podle barvy na zelené a ostatní a
počítali maximum přes pohyblivé okénko v X-ové ose (zvlášť levou a pravou
půlku). Pokud počet zelených pixelů přesáhl horní limit, tak kamera koukala na
listy slunečnice. Pokud byl počet zelených pixelů naopak nižší než spodní
limit, tak kamera koukala na zem. Pokud byl počet zelených pixelů mezi oběma limity, tak robot
indikoval plevel.
Bylo třeba ještě vyřešit situaci, aby přechod na začátku řádku (tedy pohled
zem-slunečnice) nebyl detekován jako plevel. Normálně by stačilo analyzovat
více obrázků, ale Eduro zvládalo zpracovat zhruba dva snímky za sekundu, takže
bylo třeba vše udělat z jednoho obrázku. Pohyblivé okénko tedy bylo ve dvou
pásech a pouze pokud v obou detekovalo plevel, tak robot pípnul a bliknul LED
trojúhelníkem na dané straně.
Následovala schůzka kapitánů týmů, oběd a teprve pak první test na poli. Task1
začínal v 13h, takže si dovedete představit, jak dobře to bylo odladěné a
ideálně nastavené, sigh.
Basic Task
Spousta lidí, novináři, kamery, velké očekávání. Eduro startovalo na poslední
pozici (pořadí se losovalo na schůzce kapitánů), projelo první řádek a
neotočilo se do druhého. Až pozdě mi došlo, že jsem měl odehnat fotografa, který
měl fotoaparát na konci řádku a Eduro ten konec z laseru tedy špatně detekovalo.
Hledal jsem pak důkaz mezi snímky z kamery, ale …
0 (None, None) 904
… pokud jste četli druhý létající
blog, tak víte co to znamená. 904 cyklů robot nedostal jediný obrázek z
kamery. Nevím, zda vypadl napájecí konektor nebo Ethernet, nebo co se přesně
stalo. Po restartu na konci první řádky už vše fungovalo OK.
Další čtyři řádky projelo Eduro bez problémů a zaváhalo na pátém nájezdu. Letos
jsem tam nechal variantu, ať se snaží nájezd do řádky najít a tak při špatném
otočení volilo někdy cestu podél řádek. Asi jsem měl robota nechat být, protože
zbytečně dostal 5 trestných bodů jen pár sekund před koncem.
Advanced Task
To byla dost tragédie. Letos jsem si prosadil pravidlo, že nájezd do N-tého řádku
musí být plně autonomní a pokud je třeba zásah operátora, tak že se robot musí
vrátit na start. Kód trasy, přeložený do Pythonu, byl pro nás trošku nešťastný:
[3,-2,0,-4,-2,1,-2,1], tj. hned po startu bylo třeba jet do třetího řádku vpravo.
Navíc konce řádků nebyly stejně zarovnané a Eduro mělo velké problémy.
V prvním pokusu vyrazilo metrovou mezerou v řádku vlevo, otočilo se o 90 stupňů
a vzalo řádky napříč. Druhý pokus pokračoval z půlky, dorazil na konec ale
přejezd ob dva netrefil. Třetí konečně dojel na konec, trefil odbočku a zpět
ujel cca 7m a zase prokličkoval dírou mezi řádky. Pak mi bohužel nedošlo, že
jsem mohl robota jen vrátit do řádku a pokračovat. Do příštího ročníku navrhuji
FRE komisi vyžadovat kompletní autonomii, tj. zcela bez doteku. Stejně tak
bych omezil počet pokusů na 3. Čtvrtý zase projel mezerou vlevo po pěti
metrech a pátý zase netrefil nájezd.
Trošku jsem byl teď zklamaný, když jsem koukal na výsledky a náš nejlepší pokus
(cca 20 bodů) ve výsledku nebyl, ale … pozdě bycha honiti. A asi jsme přišli
o druhé místo — alespoň to naznačuje, jak je ta autonomie těžká.
Professional Task
Poslední úloha byla loterie. Limity pro detekci plevele jsme střelili od boku a
co hůř neprověřili jsme ani zapojení levá/pravá (v realitě byla prohozená
kabeláž). Asi úplně nejhorší zpráva byla, že jsme dostávali trestné body za
nedetekovaný plevel, tj. nejasná dohoda, co že to přesně znamená „incorrect
detection”.
Celkově bychom asi měli být rádi, že těch signalizovaných bylo více správných
než těch špatně signalizovaných. Na obrázku je signalizován plevel vpravo,
přestože je vlevo a to prohození kabelů zrovna tady pomohlo. Ve zkratce nic,
čím bychom se mohli chlubit.
Freestyle
Přihlásili jsme se i do „volné jízdy”, přestože jsme neměli nic připraveného.
Milan si původně představoval manipulaci s balíčky slámy, ale ruka byla z
důvodu odlehčení odmontovaná a ani ty balíčky nikdo nepřipravoval. Chtěl jsem
udělat jednoduché demo s letem Heidi nad Edurem, ale trošku
foukalo a černobílá značka v zorném poli spodní kamery snad ani nebyla vidět.
Heidi měla konkurenci — jeden Francouz tam také létal se čtyřtulkou od
Parrotů. Navigoval jí na bílý kruh s černým pozadím a celkem mu to šlo i když
vystoupení končilo pádem poté, co mu jedno malé turecké dítě pláclo do
vrtulí.
Na testovacím políčku byly 5x10m veliké stany proti dešti, tak jsem chtěl ve
zbývajících minutách zkusit kaskadérský kousek a prolétnout stan tam a zpět.
Mluvil jsem do mikrofonu a zároveň vyměňoval baterky a rebootoval, tak to
nebylo úplně dobré. Na rozdíl od pěkného příběhu co doprovázel francouzskou
dronu jsem já nic rozumného připravené neměl: „drony mohou být i chytré a při
autonomním snímkování se vyhýbat třeba i stromům”.
Nakonec byly dva pokusy — v prvním Heidi vlétla do stanu, ale šla trošku moc
do výšky a tak sonar detekoval horní okraj. Byl už příliš blízko a tak zařadila
zpátečku a pak se chvíli plácala v podkroví stanu jako můra u světla. Ve druhém
pokusu to rovnou naprala do sloupu.
Sobota — cooperation
V sobotu jsem dorazil zase mezi prvními a tak jsem využil toho, že kruhová hala
byla téměř prázdná. Chtěl jsem znova zkusit navigaci na černobílou značku, ale
marně. Tady nešlo shazovat vinu na vítr, spíše naražený kryt v kombinaci se
sonarem není úplně v rovině a drona s tím trošku zápasí.
Do dvojice pro spolupráci jsme dostali Idefix — robotický klub dětí ze
základní školy z Německa. Celkem překvapující, co ve věku 13-14ti let dokážou
(ano, ve spolupráci se svým vedoucím). Na druhou stranu, ne všechno byly ve
zbývající hodině schopny do kódu integrovat a tak jsme se domluvili na relativně
jednoduchém scénáři: Idefix s postřikovači vyrazí a začne procházet řádek po
řádku jako v Task1. V druhém řádku ale bude mít poruchu a vyžádá si servisního
robota (Eduro), který na místo zajede a problém vyřeší.
Porota nebyla úplně spokojena s odpovědí na otázku, jak se to Eduro dozví.
„Magic” prý nestačí. Počkej 50s ale moc kooperativně nezní . První demo
nebylo úplně ideální (jak Idefix, tak Eduro se zaseklo o něco dříve než bylo v
plánu), ale druhé klaplo dokonale. Nakonec jsme se s tím dostali na lepší
pozici než Helios s bagříkem, který se snažil rozchodit složitou kooperaci
vykopání jámy a zasazení míčku.
Závěr
Field Robot Event 2013 v Praze se mi líbil a investované dovolené nijak
nelituji. Mrzela mne chybějící účast českých týmů, ale vem je čert. Pokud by
soutěž někoho zajímala, tak příští rok se bude konat opět v Německu. Velké
díky patří Milanovi Kroulíkovi a celé katedře zemědělských strojů a ČZU za
podporu a pěknou akci.
Odkazy
- fieldrobot.cz
- Eduro Team na ihned.cz … asi fotografovi tu první řádku v Task1 odpustím
- financninoviny.cz, tyden.cz … převzato z ČTK
- rozhlas.cz
- TV Barrandov, hlavní zprávy 29/6, 19:14 - 21:08 … pak následuje reportáž o obnažených ňadrech, takže dohromady mi to trošku připomíná Snídani šampiónů od Kurta Vonneguta