Eduro Team
český Eurobot 2008 z pohledu účastníka
Eduro Team je jeden ze sedmi týmů, které se homologovaly do českého národního kola soutěže Eurobot 2008. Nakonec skončil na 4. místě, ale získané zkušenosti se jeho členům jistě vyplatily. A jak to tedy všechno v detailu vypadalo?
Eduro Team vznikl krátce před uzavřením registrací do soutěže Eurobot 2008.
Honza Roubíček z RobSys mi v půlce února psal: Čas letí
a já si teprve teď uvědomil, že bude termín registrace na Eurobota. Vzhledem k
tomu, že mám tu novou konstrukci Edura, tak bychom mohli do Eurobota přihlásit
"náš" soutěžní tým nebo dokonce dva. Budu schopen dodat techniku - roboty s
nástavbami. Seženeš lidi? Neodolal jsem a vznikl sedmičlenný robotický
tým: Honza Roubíček (mechanika), Tomáš Roubíček (elektronika), Jan Neškudla
(DBUS, low level Linux) a tři studenti Matematicko-fyzikální fakulty Univerzity
Karlovy: Ondřej Vykouk, Vojtěch Brtník a Jiří Veselý. Já jsem hrál roli
koordinátora/integrátora těchto dvou rozličných světů.
Robot
Základem robota byla platforma Eduro (Education Robot), což je komerčně
nabízená varianta malého tříkolového robota firmy RobSys.
Jedná se o modulární systém (mechanika i elektronika) určený pro výuku a jiné
nenáročné aplikace. Eduro používá stejnou koncepci a technologie (pohony SMAC,
CAN moduly SmartCon atd.) jako např. BeerBot pro soutěž
Robotour 2006 a
Robotour 2007, nebo nosič reklamní plochy na
CeBIT 2008. [pozn. robot na CeBITu byl pěkný, ale z krátkého času na přípravu na
Eurobota nám ještě měsíc ubral…]
Úprav na Eurobota nebylo mnoho. Z důvodu omezených rozměrů bylo zadní kolečko
nahrazeno menším a baterie se tak posunula výše. Vznikla klepeta se světelnou
závorou, řídící panel a byla vztyčena povinná podpora pro majáček. Robot v
klepetech mohl v každém okamžiku nést pouze jeden jediný míček, což se mohlo
zdát jako velký handicap, zatímco ostatní vozili 5 povolených míčků. Přiznám
se, že to bylo mé rozhodnutí, protože z časových důvodů (na realizaci nám zbyl
zhruba měsíc a půl čtvrtečních a později skoro všech večerů) bychom jiný
mechanismus nezprovoznili. Díky tomu se robot mohl „uběhat”, aby získal
nějaké body .
Elektronické moduly byly z velké části použity již existující.
Pro pohon byly použity dva kompaktní pohony SMAC (krokové motory s adaptivním
řízením) pracující v rychlostním režimu. Detekci nepřítele a zásobníků
zajišťovaly čtyři Sharpy (GP2Y0A21YK0F). Pro manipulaci s míčky sloužila
klepeta, jejichž součástí byla dvě modelářská serva a optická závora pro
detekci míčku. Dále robot obsahoval čtyři mikrospínače pro detekci mantinelů a
kontejneru. Vše propojovala sběrnice CANopen, takže jednotlivé moduly (celkem
jich bylo 6) bylo možné snadno zapojit do systému a konfigurovat i za provozu
celého robota. Robota řídil jednodeskový počítač s OS Linux, který byl ke
sběrnici CAN připojen přes sériovou linku pomocí převodníku CAN-RS232.
Strategie
ver0
Úkolem verze 0 bylo náš tým dostat přes homologační proces. Robot musel
spolehlivě zabodovat co nejjednodušším způsobem a tak vyhrát zápas bez soupeře.
V posledních letech je navíc vyžadována detekce druhého robota a předcházení
kolizím, takže robot při detekci překážky zastavoval.
Program byl poměrně jednoduchý:
- otevři klepeta
- čekej na vytažení startovacího kabelu
- ze stavu přepínače zjisti, za kterou barvu hraješ
- zapni TRIGGER na klepetech
- jeď na pozici pevného barevného míčku (0.8,0.4), případně zrcadlově podle barvy
- jeď na pozici k přednímu kontejneru (0.8,2.0)
- srovnej se, aby oba mikrospínače byly v kontaktu
- otevři klepeta
- konec
Jak prosté, že ano? Ono ve skutečnosti i tato verze byla o trošku složitější.
Pokud člověk např. stiskne Emergency STOP tlačítko, program by měl v kterékoliv
fázi skončit (motory vypínat nemusí, o to se už postarají moduly na CANu
samy). Stejně pokud v cestě brání nepřátelský robot, je třeba
zastavit a počkat. Tyto drobnosti jsme nakonec implementovali pomoci
detektorů, o kterých před pár lety psal Zbyněk Winkler
v článku o Ester. Snad se někdy rozhoupáme a vznikl by na
toto téma přehledový článek do průvodce… no nic.
Přestože je ver0 celkem triviální, ukázala již první problémy. Především Sharpy
občas viděly „duchy”. Nevím, zda to byl podivný tvar kontejneru, který
způsoboval snadno reprodukovatelné odrazy v cca 60cm vzdálenosti, nebo nějaká
interference mezi čidly… těžko říci, v každém případě robot detekoval
překážku 15cm pře sebou, zastavil a ani jeden míček tedy neumístil. Museli jsme
nakonec omezit bezpečnou vzdálenost na 5cm, aby pásmo duchů přejel.
Alternativou by byla změna orientace senzorů, ale na experimentovaní bohužel už
nezbylo mnoho času.
ver1
Verze 1 celkem přirozeně navázala na ver0. Po položení prvního míčku jel robot
k podavači s barevnými míčky, nabral jeden a odvezl ke kontejneru. Toto
opakoval dokud mu nevypršel 90s limit.
Zatímco u ver0 jsme si bohatě vystačili s poměrně přesnou odometrií, u ver1
bylo třeba nějak spolehlivěji upřesnit pozici vůči podavači. Robot se tedy cca
20cm před jeho očekávanou pozici zastavil, rozhlédl se vpravo a vlevo, našel
nejbližší „překážku” a za tou vyrazil.
Po nějakém čase i ver1 celkem dobře fungovala, ale byla moc pomalá. Původní
rychlost z ver0 jsme zvedli 5x, ale i tak byl schopen zabodovat maximálně
čtyřmi míčky, tj. 8 bodů.
ver2
Na verzi 2 jsme se těšili, protože to byl moment, kdy jsme mohli vytěžit ze
schopnosti manipulovat s jednotlivými míčky. Robot měl postupně vybírat bílé a
barevné míčky a dosáhnout tím kombinace, za kterou byly bonusové body.
Nepříjemný byl ale přejezd přes hřiště, kde hrozila velmi pravděpodobná kolize
se soupeřem. Protože v pokusech byla ver2 daleko méně spolehlivá s vysokým
rizikem a pomocí čtyř míčků byl zisk pouze o bod více jak u ver1, rozhodli
jsme se k ní vrátit.
Soutěž
Zápas |
Společně s dalšími šesti týmy jsme se tedy v pátek holomogovali v hodině
dvanácté (přesněji v 17h, kdy homologace oficiálně končily). V sobotu se pak
hrálo 5 kol, takže téměř každý s každým. Kupodivu největším soupeřem nebyli
ani tak nepřátelští roboti, jako soutěžní hřiště. Navlhlo a v den soutěže se
hrozně zkroutilo. Roboti poskakovali, nakláněli se, zůstávala jim kolečka ve
vzduchu a snad úplně všichni měli nějaký problém. Náš robot se už po prvním
přejezdu ztrácel cca 10 stupňů a pak místo podavače detekoval částečně dlouhý
podavač a tak často zůstalo pouze u jednoho jediného míčku, škoda.
Závěr
Celkově jsem byl se soutěží vlastně spokojen. Umístili jsme se na nejlepším
politicky korektním místě (4. místo, první tři postupují), tj. nebylo třeba
řešit otázku mého věku případně podílu na programování (ze tří studentů se
závěrečného šílenství účastnil už pouze Ondra). Další měsíc absence by asi
práce, rodina a zahrada už netrpěla . S robotem jsem byl více jak
spokojený — za celou dobu nebyl jediný mechanický problém (to se mi v
předešlých zkušenostech s roboty ještě nikdy nestalo) a CAN moduly v průběhu
příprav postupně upravovány naším potřebám (především synchronizované zprávy z
několika modulu současně… prostě pohodlí aplikačního programátora). Myslím, že
i RobSys byl spokojen — tak intenzivně roboti ještě testováni nebyli. Možná
jsme mu mohli udělat větší reklamu… je to ten robot s klepety, co můžete
vidět v krátkém šotu na ČT24.
RobSys roboti
Média
Eduro na ČT24 |