doplněno 22.4.
V sobotu 22.4.2017 se bude konat / koná / konal v Bratislavě 17. ročník soutěže Istrobot 2017. Kdo si tento článek čtete ještě před soutěží, tak se nedivte, použiju ho jednak jako reportáž a zároveň i jako info stránku o robotovi (protože ta je součástí registrace). Informace chci postupně doplnit – a přidat i tu vlastní reportáž, takže si to přijďte přečíst znovu i později.
Tak tedy: vloni jsem na soutěži byl s robotem MART Friday Bot, kterého jsem začal sestavovat den předem (viz reportáž). Po soutěži jsem robota ještě trochu dodělal a upravil, ale zase ne moc, aby kdyžtak příště bylo cestou co dodělávat – a tadá, jeho chvíle pomalu nastává.
Stav k 18.4.2017 je:
* Základ robota je Parallax BoeBot: plechové šasi, dvě serva upravená na kontinuální otáčení jako pohon, Atmel ATmega328 jako mozek, shield s bastldeskou pro připojování senzorů, napájení 5xAA NiMH (Panasonic Eneloop)
* Úpravy: doplnění radlice na plechovky, horní desky s vypínačem, 5x CNY-70 pro detekci čáry na zemi, ultrazvuk HC-SR04 na detekci plechovek a soupeře.
* Kód: původně pro Robot Dance, upravený pro potřeby soutěže V sklade kečupu.
* Doplnění od loňska: senzor Sharp GP2Y0A21 pro detekci soupeře, nové držáky na lištu se CNY-70, předělání kódu.
DOPLNĚNÍ 21.4.
V podstatě podle očekávání jsem toho za poslední tři dny s robotem moc nenadělal (klasika, spousta jiných věcí k dělání, vyhořelý zdroj, uzávěrka zprávy pro grant, příprava výuky na další rok atd.). Aspoň jsem si vytiskl držáky na dálkoměr Sharp pro detekci soupeře místo vázacího pásku, takže se dá sundavat i nandavat. A doplnil jsem rozvodnou destičku, aby dal i připojit k procesoru.
V pátek během dopoledne jsem po dílně posháněl co tak vypadalo že bude potřeba (pozn. 1), vyřešil asi stopadesát dalších věcí, které jsem ani neměl v plánu a vyrazili jsme. Stejně jako vloni jsem si domluvil řidiče, takže jsem měl na cestu volno na programování. Přesně podle očekávání cesta po D1 v pátek odpoledne nezklamala, času jsem měl dost: uzavírky střídaly zácpy, až jsme to před jednou bouračkou vzdali a sjeli z dálnice. Objížďka byla zajímavá, viděli jsme i velbloudy, ale do Bratislavy jsme nakonec i tak dojeli.
Testovací hřiště už bylo připravené, tak jsem robota cvičně projel. Celkem v pohodě, kód přepsaný cestou je strukturálně správně(pozn. 2). Večer ještě musím poladit setkání se soupeřem. Můj robot sice dobře zastavuje a do soupeře nenarazí (viz obr. a poznámka 3), ale pak čeká, až ten soupeř uhne. Jenže v homologaci bude soupeř statický, tak to by bez aktivnějšího objíždění potkání soupeře byla konečná.
Vzal jsem s sebou několik sad baterek, ale možná jsem přece jen tu nabíječku měl vzít – první sada už je silně znavená.
DOPLNĚNÍ 22.4. ráno
Jak jsem řekl, bylo potřeba doplnit aktivní setkání se soupeřem. Myslím, že se mi to večer podařilo: Když robot potká překážku, zastaví a když pak po nějaké době (zatím jsem dal 2s) překážka neuhne, tak couvnu na nejbližší křižovatku a vydám se jinudy. Vlastní algoritmus (stavový automat) jízdy nebylo potřeba měnit, robot si po celou dobu myslí, že jede rovně na nejbližší cíl. Ten se mu sice změnil, ale to on neví 🙂
02:30 Nasimuloval jsem si homologaci, zdá se, že bych prošel! První sada baterek je už nepoužitelná (ještě ale mám tři).
08:10 I přes zápchu jsme se dostali na místo soutěže. Robot jezdí a zdá se, že docela dobře, nové baterky jsou silné a tak udrží i poklesy, když zapnou oba motory (ultrazvuk ani IR dálkoměr pak nehlásí nesmysly).
09:45 Čekám na homologaci a testuju. Teď už vím, že s noční verzí kódu bych homologací bych neprošel, pokud by soupeř byl na nevhodném místě (pozn. 4).
10:45 Úspěšně jsem se homologoval, jako první a na první pokus. Tak myslím, že těch prvenství už bylo dost (pozn. 5).
11:30 Rozhodčí s přimhouřením všech možných očí pustili přes homologaci do soutěže 5 robotů. Detekce oponenta buď úplně chybí nebo aspoň nefunguje, to je bohužel stejné jako vloni.
12:05 Hned za sebou jsem odehrál tři zápasy. Nejdřív proti slovenskému „Zberatel“ (2:0), pak proti „Finder“ (remíza 0:0) a nakonec proti „Dave“ (2:0); oba jsou ze stejné stáje z Partizánskeho. Ještě má jezdit polský „Potato“, ale ti zatím ladí. Ti dva slovenští jsou z lega, jeden jen o kousek vyšší než plechovka, druhý je sice ještě trochu vyšší, ale jak už roboti z Lega jsou, rozhodně to není kompaktní krychle, takže je stejně ani ultrazvukem skoro nevidím (mám to tak na hraně, občas i plechovku vyhodnotím jako soupeře, ale stejně ani tak roboty moc nevidím).
12:25 Odjel jsem i poslední zápas proti polskému „Dave“ (remíza 2:2). Tenhle zápas se mi líbil nejvíc. Sice jsem neměl plechovku vylosovanou přímo před startovní pozicí, ale robot spolehlivě jezdil celé 3 minuty a zastavil přesně s odpočítáním rozhodčího. Dave začal rozvážně, popojel, proskenoval hřiště, nabral dvě plechovky a zajel s nimi na domácí čáru. Tam se zastavil a už nepokračoval (pozn. 6). Můj robot dovezl jednu plechovku domů, dojel k soupeři, vyhnul se mu a dojel celé kolo. To zopakoval ještě jednou, čímž přidal druhou plechovku, třetí kolo už nestihl. Ale i tak paráda.
14:00 Oficiální slavnostní zahájení a hned po něm finále kategorie „Stopár“, tj. jízda po čáře. Na zdejší soutěži mají překážky, samozřejmě trochu jiné, než v Praze: tunýlek, záclonu, tehlu, mostík, olejovú škvrnu a letošní novinku, která myslím suverénně vítězí v problematičnosti pro roboty – obyčejná lampička.
14:45 Měli jsme právě schůzku poroty soutěže Voľná jazda, ve které jsem jedním z rozhodčích. Všichni jsme se jasně shodli na prvních dvou místech ale vybrat třetí místo bylo docela těžké. Měli jsme dva kandidáty (na tom jsme se taky všichni shodli) ale který je lepší, těžko říct. Nakonec jsme se dohodli, že jsou nastejno…
15:50 Právě doběhlo finále „kečupu“. Mart Friday Bot si vedl skvěle, tedy třikrát remizoval (pozn. 5). Jenže tím měl spolu s polským Potato nejvyšší počet bodů, a protože i tito dva spolu remizovali, finálový zápas se opakoval. Tady už Potato změnil strategii: dosud vždy vzal dvě plechovky, dovezl domů, čekal a v čase 2 minuty od startu začal mlžit po hřišti. Nyní čekal 2:20 a teprve pak začal mlžit, při čemž MARTa odtlačil úplně do pryč. Ono to ale bylo jedno, protože můj robot si mezitím na hřišti sám uklidil a i ty dvě plechovky, které do té doby dovezl, zase odšoupnul pryč, takže prohrál. Dobře mu tak, mohl být první 🙂
Po kečupu následovalo finále „Robotího šprintu“ – roboti s nohama (min. 1, max 8) musejí co nejrychleji přeběhnout dvoumetrový rovný úsek.
Jako poslední proběhlo předvedení nejlepších robotů v kategorii Voľná jazda, a tím 17. ročník Istrobot skončil. Podrobnější výsledky budou na webu soutěže, sem po návratu do Prahy (pozn.7) zkusím přidat pár fotek a pokud byste někdo chtěl o soutěži vědět víc nebo vás zajímaly technické detaily, tak se neváhejte ozvat anebo přijít sem a samozřejmě i sem.
Poznámky:
1. Osvědčená praxe: všechny nástroje, které jsem při posledních úpravách robota použil, jsem střádal do krabice s sebou – šroubováky, kleště, nůžky, pásky atd. protože kdybych se jen tak rozhlédl po dílně, na ty nejdůležitější bych zapomněl.
2. Kolega tak říkal kódu, který za chvíli napsal a pak tři neděle ladil.
3. Musel jsem poladit konstantu, robot měl nekonečno moc velké, takže zastavoval před soupeřem předčasně (=když je blíž, než v nekonečnu). Zmenšil jsem tedy nekonečno a kladný výsledek se dostavil, viz ten obrázek 🙂
4. To je běžný problém – prostě to byl hack a ne metodické řešení. Moje chyba. Ale fajn, že jsem na to přišel sám a teď a ne až při zápase. Dalo docela snadno opravit, místo přeskočení jednoho postupného cíle jich přeskočím tolik, aby soupeř nebyl mezi mnou a tím cílem (když byly dva přímo za sebou, seklo se to).
5. Můj cíl je, aby robot byl funkční podle pravidel, konečné umístění mi je jedno. Když mezi fungujícími bude poslední, tak aspoň ti ostatní budou mít radost, že neskončili poslední 😀
6. Dobrý postupný krok – když už je hotový pojezd, tak základní algoritmus provede jednu akci, po jejímž skončení se robot vypne.
7. Dá-li pánbů a silničáři na D1.
(toto je zatím neúplný článek, přijďte znovu)
V diskusním fóru jsem otevřel vlákno, kdo by se chtěl na něco zeptat, můžete tam.