RoboOrienteering 2019
Mariánské Lázně, jubilejní desátý ročník
Letos se jubilejního desátého ročníku zúčastnilo deset týmů, což naposledy bylo prý v roce 2011. Pro mne osobně to bylo v Mariánkách poprvé. Soutěž samotná byla naším interním SubT Robotika Team STIX milníkem aneb integrační test robotů připravujících se na SubT Challenge (Robík, Kloubák, Eduro, MOBoS a Max). Jinak soutěž byla i letos mezinárodní: dva německé týmy a jeden slovenský.
Týmy
Seznam týmů naleznete na
oficiálních
stránkách soutěže, ale nějak mi to nesedí. Konkrétně mi chybí JECC tým, který
měl s sebou dva roboty. Je možné, že tedy vystupovali jako jeden tým (Udo a
Bernhard, chybějící JECC Fesl?) a pak by německé týmy byly pouze dva
(JECC Lois a JECC Fesl), slovenský Istrobotics, Robotický klub
Mariánské Lázně, AmBot a „našich” pět týmů (Short Circuits, ND
Team, R-Team, Eduro a CZU-Robotika).
Místo
Park na hranici Mariánských Lázní je poměrně rozlehlý a otevřený. Základna
sousedí s místem na piknik, husté rozkvetlé keře (užitečné i k jiným účelům),
dostatek laviček a stolů pro všechny týmy — radost, organizačně to Karel s
Martinou zvládli opravdu pěkně. A to nemluvím o téměř neomezené zásobě
kávy, bábovky a i domyšlený polední „catering” (objednávali jsme si všichni
pizzu). Roboti a notebooky zase ocenili zdroj elektřiny, kterou zajišťoval v křoví
schovaný generátor. Parkovat se dalo podél příjezdové cesty, cca 200m pěšky,
bez problémů.
Organizace soutěže
Soutěž probíhala ve třech kolech, kterým předcházela homologace a nulté
testovací kolo. V parku bylo celkově zaměřeno 46 potenciálních pozic pro
bodované kužely, plus start a cíl definovaný dvojicí kuželů. Z nich pak bylo
připraveno 10 sad (A, B, …, I), které se losovaly.
Přiznám se, že pro mne dvojí indexování bylo trošku matoucí a zdrojem chyby,
kterou jsem řešil nulté a první kolo — přehlédl jsem dokument, který ještě
jednotlivé kontrolní body „svazoval” s odpovídajícími indexy se souřadnicemi.
Ve „velitelském stanu” tato informace byla k dispozici, ale to jsem zjistil
až později … za mne asi přání mít rovnou indexy v pomocné mapce, tj. např.
K4-46 místo K4 což pro sadu I znamená index 46 (pro sadu H
je to pak např. 26).
Jednotlivé cíle jsou různě bodově hodnocené, takže účastníci mohou taktizovat o
jaké se vůbec snažit, aby během hodiny získali bodů co nejvíce. K dispozici
jsou i různé „násobící faktory” za odhození golfového míčku nebo projetí
cílovou brankou.
Eduro a Kloubák
Je to smutné, ale detailnější představu mám pouze o vývoji, přípravě a
výsledcích robotů Eduro a Kloubák.
Eduro jsem se rozhodl přihlásit v úterý 18/6 po té, co Kloubák měl
problémy ujet i jeden metr (příčina zatím neznámá — možná vadný BLDC motor,
driver nebo Hall senzory v kole, nebo něco úplně jiného). Původně měl
dorazit i Spider3, ale jsem rád, že to letos nebylo — nadělal by z parku
možná pěknou paseku!
Kloubáka Jakub a studenti HonzaK, TomášP a MartinS ve zbytku týdne
upgradeovali: nahradili podezřelé kolo, napájeli konektory ze senzoru napřímo a
experimentovali s vyhazovačem golfových míčků vytištěným na 3D tiskárně. V
pátek večer byly k dispozici první logy s Lord IMU
s integrovanou GPS (omylem nahrány starým kódem, tj. bez posílání GPS
souřadnic a opravy parsování datových paketů).
Eduro jsme vzali jak bylo 6/6 naposledy v
šachtě Josef (ještě
lehce zablácené), přibalili GPS a původní Lord IMU z Kloubáka a v 6:00
vyrazili z ČZU (za zvuku školních alarmů).
Cesta byla naštěstí dlouhá a školní dodávku řídil Jakub, takže byl cca
dvouhodinový prostor na přípravu kódu. Od PavlaJ jsem měl k dispozici kód
pravděpodobnostní mřížky a VFH na vyhýbání se překážkám. Dalším kusem kódu
bylo experimentování s Spider3 (viz
Robotour Marathon 2018).
Spider3 ale může zatáčet všemi koly směrem kterým chce jet a tak existující kód
(řízení, status, odhad pozice a úhlů) nebyl úplně kompatibilní.
Na homologaci jsme u obou robotů použili kód na
SubT, tj. v našem případě jízda podél levé nebo
pravé zdi. Stačilo to. Nulté kolo jsme pak jeli 17m rovně, což pro Eduro bylo
OK, ale Kloubák měl trošku problémy, pokud si to dobře pamatuji. V ostrém
prvním kole pak selhali oba roboti (částečně chybně zadaným cílem).
Druhé kolo bylo pro Eduro již zajímavější — opravil jsem různě převody
stupňů/radiánů, pro navigaci použil primárně IMU (starý VectorNav) přemapoval
USB porty, kde se potkávala GPS a Lord IMU (/dev/ttyACM0 a
/dev/ttyACM1) a věřte nevěřte Eduro krásně dojelo k 92 metrů vzdálenému
kuželu a zpět do cíle.
Třetí kolo jsme již vyplnili více kontrolních bodů a stejnou konfiguraci a
gpsnav.py nahráli i Kloubáka. Na Kloubákovi byly dva „detaily”:
- v konfiguraci chyběla řádka ["imu.rotation", "app.rot"], takže aplikace nedostávala Eulerovy úhly pro navigaci
- Lord IMU má Y-ovou osu obráceně, takže to bylo třeba zrcadlově převrátit (ono by to šlo udělat i jinou konfigurací senzoru, ale do toho jsem se na místě nepouštěl).
Oba roboti úspěšně navigovali několik desítek metrů (možná i stovek) než to oba
naprali do stromu (ano, na integraci vyhýbání se překážkám nedošlo). Eduro se
dokonce několikrát tvářilo „inteligentně” a přímou jízdu obsahovalo i několik
„kliček”, ale nenechte se zmýlit! Pravděpodobně se resetovaly motory nebo
zakolísala IMU/GPS. Ze dvou lidarů a kamery se nepoužil pro navigaci ani bit.
Výsledky
Nemám teď výsledkovou listinu, ale pár míst si pamatuji.
MOBoS/Short Circuit skončil na posledním místě, ale přesto si
myslím, že byl PavelJ spokojený (briefing bude až v pondělí v práci). Robot
totiž již autonomně navigoval, používal NVidia Jetson Nano a RealSense a bez
GPS neměl žádné bodové ambice (možná jeden blízký kužel).
Na předposledním místě skončil Kloubák/CZU-Robotika a před před posledním
Eduro, takže za mne cíl splněn (oba roboti bodovali a Eduro bylo o chlup
lepší).
A pak si to pamatuji zase od nejlepších: vyhrál Karel s Explorerem/organizátor,
na druhém místě byli Istrobotics a třetím Robík/ND Team, který si ublížil
ad hoc zásahy do funkčního kódu. Čtvrté místo pak obsadil JECC Lois (skončil u
něj soudek s pivem) a pak už nevím. Doplním. Hotovo:
Celkové hodnocení |
Bylo pěkné, že všichni roboti jezdili a neviděli jsme žádné ležáky.
Různé
Přihodím ještě pár postřehů k diskusi a případnému dalšímu směrování soutěže.
Týmy robotů
Vzpomněl jsem si, že po soutěži v
Rychnově 2016 jsem doporučoval nějakou formu spolupráce robotů. Kdyby nic,
tak by se vzájemně lépe poznali. Já jsem si tu kombinaci Eduro/Kloubák užil a
možná škoda, že jsme nevzali na korbu MOBoSe a nevyhodili ho i s míčkem někde u
kuželu . Možná příští rok.
Teď mi tak přišlo, že v prvním kole by každý soutěžil za sebe, ve druhém dva
roboti společně a ve třetím i tři. Ano uznávám, že by se to špatně hodnotilo,
ale vadí to?
Max vs. Sum
U Robotour jsme pro celkové hodnocení používali součet bodů za všechna kola a
stejně je tomu tak i u RoboOrienteeringu. Prostě vítězství patří tomu, komu to
dlouhodobě nejlépe funguje. Pokud v nějakém kole vypadnete, tak máte smůlu.
Robotem rovně změnilo před pár lety pravidla,
že vítězí ten, jenž dosáhne v nějakém kole nejvíce bodů, tj. maximum ze všech
jízd (mimochodem stejného pravidla používá DARPA pro
SubT Challenge). Soutěž se tak stává
zajímavější, protože do poslední chvíle není jasné, jestli se štěstěna neobrátí
na dříve méně úspěšný tým. S postupem času také týmy začínají více
riskovat aby překonaly i sami sebe.
Roboti za ručičku
Co mne včera na soutěži překvapilo jak se tady „roboti vodili za ručičku”.
Ano byl to kontrast k SubT, kdy pošlete robota branou tunelu a pak už jenom
doufáte, že se vám jednou vrátí. Když jsem viděl pomocné kopnutí do Robíka
(ano, o chvíli později jsem stejný trik použil na Eduro, které zapadlo do
díry), tak jsem se trošku styděl. Vzpomínám, že Martin Locker původně dokonce
STOP tlačítko považoval za diskvalifikaci … že si roboti musí vždy za každé
situace poradit a neublížit si … prostě druhý extrém. Možná by mohli být
plně autonomní roboti bodově zvýhodnění, pokud je nechají majitelé/autoři „ať
si v parku nějak poradí, jen až se vrátí” a nikdo je nedoprovázel?
Poděkování
Ještě jednou bych rád poděkoval organizátorům za příjemný soutěžní den a šanci
se potkat s ostatními robotiky. Příště by asi mělo smysl dorazit na místo o den
dříve, jako to udělali R-team, Istrobotics a německé týmy. Bylo by tak
více času na testování a diskuse.
p.s. pokud máte nějaké fotky nebo video, tak prosím pošlete a já je doplním
(stejně tak oficiální výsledkovou listinu až bude zveřejněna)