czech english

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
Zápas
Asi první nepříjemností, kterou jsme na soutěži samotné museli projít, byla homologace. Sudí vyžadoval detekci robota i při couvání, přestože náš robot vždy couval pouze pár centimetrů, aby se mohl snáze otočit a jet k podavači nebo ke kontejneru. Problém byl nakonec vyřešen přidáním dalšího CAN modulu a čtyř optických senzorů přiblížení na zadní počítač.
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
Eduro na ČT24

Další fotografie