BROB Projekt 2012 Robot: Mini Sumo Spolupracovali: Brázdil Jan Davídek Daniel Dvořák Michal Bortlík Pavel Kozelek Jiří Kunz Jan V Brně dne 9.5.2012
Obsah Úvod... 3 Cíl projektu... 3 Nosné pilíře projektu... 3 Před-realizační příprava... 4 Lokalizace nepřátelského robota... 4 Detekce hranice hracího pole... 5 Pohyb a tvar robota, vlastní řídící program... 6 Motory a jejich řízení, kola... 6 Vlastní řídící program, výběr uc... 7 Tvar robota, sestavení, oživení... 7 Závěr... 8 Ceník, kusovník... 8 Příloha A: Pravidla SUMOROBOT... 9 Příloha B: Schéma zapojení, návrh plošného spoje... 10 Příloha C: Program 2
Úvod V rámci předmětu BROB, bylo od všech studentů vyžadováno zúčastnit se projektu, jehož cílem bylo, podílet se na vývoji řešení daného zadání. Zadání se lišila od čistě SW až po čistě HW problematiku, my jsme se však v duchu studovaného předmětu rozhodli pokusit se o vývoj autonomního robota, který by byl sto se zúčastnit Robotického dne 2012 v kategorii Sumorobot. Cíl projektu Sumorobot je mobilní autonomní robot, jenž je díky svým senzorům schopen udržet se uvnitř kruhové arény a zároveň z ní vytlačit svého protivníka. Tento robot nesmí mít rozměry základny větší než 10x10cm, a nesmí vážit více než 500g. Robot musí být autonomní, tzn. řízení operátorem je zakázáno. Hra končí poté, co jeden z robotů vytlačí druhého z hracího pole, nebo končí remízou po třech minutách nerozhodného souboje. Těmito pravidly jsme se řídili při vývoji našeho robota. Cílem projektu je tedy vytvoření robota splňující podmínky soutěže Robotic Day 2012. Pravidla soutěže Sumorobot (Minisumo) Robotického Dne 2012 v Praze jsou uvedena v plném znění v Příloze A. Nosné pilíře projektu Od počátku bylo zřejmé, že v zájmu úspěšného splnění cíle projektu bude nutné souběžně vyvíjet a optimalizovat několik různých systémů, které nám pomohou dosáhnout cíle projektu. Tyto dílčí části jsme během prvního brainstormingu identifikovali následovně: Lokalizace nepřátelského robota Schopnost pohybu za účelem přiblížení se ke druhému robotovi a jeho následné vytlačení Detekce čáry značící herní plochu Schopnost vyhodnotit vstupy jednotlivých senzorů a následně tyto informace využít pro vytlačení druhého robota z hrací plochy. Přestože se nezdá, že by jednotlivé části byli přehnaně složité, od prvního okamžiku jsme si byli vědomi, že vytvoření robota, který bude schopen využívat přirozeně všechny své dispozice k úspěšnému splnění cíle projektu, bude složité a časově náročné. A proto od počátku jsme projekt rozdělili mezi jednotlivé členy realizačního týmu a snažili se tak zvýšit efektivitu týmu jako celku. 3
Před-realizační příprava Jak již bylo zmíněno v úvodu, projekt byl rozdělen na několik částí a mezi jednotlivé členy týmu. Toto opatření jsme zavedli, abychom byli schopni v dostatečně krátkém čase zjistit co nejvíce informací o jednotlivých systémech, a své názory sjednotit při setkání celé skupiny, kde jsme následně rozhodli o dalším pokračování projektu. Rozdělili jsme se na tři dvojice, kde každá měla za úkol jednu část projektu: Lokalizace druhého robota Detekce hranice hracího pole Pohyb & tvar robota, vlastní řídící program Lokalizace nepřátelského robota Použitý senzor pro lokalizaci nepřítele je ultrazvukové čidlo SRF05. Toto čidlo má dva piezoelektrické členy jeden slouží jako vysílač a druhý jako přijímač. Čidlo se ovládá dvěma piny Echo a Trigger, napájení je 5V. Obrázek 1: Zapojení SFR05 Na Trigger přivedeme spouštěcí impuls o délce minimálně 10us. Poté čidlo vyšle svazek ultrazvukových impulsů a nastaví svůj výstup Echo do log 1. Tato hodnota je na výstupu uchována do té doby, než senzor zaregistruje, že se ultrazvukový impuls vrátil zpět. Pokud se tak nestane, tak bude Echo uveden do log 0 po 30ms nedetekován žádný objekt. 4
Obrázek 2: Princip fungování módu SFR05 Při testování jsme zjistili rozsah měření čidla od cca 2cm do více než 4 metrů. Tento rozsah je pro našeho robota ale zbytečný my potřebujeme měřit maximálně 50 cm. Dohodli jsme se, že na robota umístíme čidla dvě. Jsou mírně od sebe, aby se dalo poznat, ze které strany se k nám blíží nepřítel, nebo na kterou stranu uhýbá. Ukázalo se, že tento princip sledování nepřítele byl velice dobrý, ale velmi záleželo na tom, jak moc jsme čidla nakláněli směrem k povrchu arény. V soutěži se můžeme setkat s roboty vysokými přes 10 cm, ale i s roboty, kteří nemají ani 5 centimetrů. Nakonec se nám však podařilo najít takovou polohu, ve které robot fungoval téměř vždy spolehlivě. Detekce hranice hracího pole Pro detekci bílé čáry, která značí konec arény, jsme se rozhodli použít infračervený odrazový senzor CNY70. Senzor se skládá z fototranzistoru a diody, která svítí v infračerveném spektru. Pokud je pod senzorem povrch tmavé barvy, tak je záření pohlceno, fototranzistoru nic neotvírá bázi a je na něm plné napájecí napětí. Pokud však pod senzor dáme bílou, lesklou podložku, tak se od ní světlo odrazí, fototranzistoru se otevře báze a protéká přes něj proud. Tzn., že na něm bude pouze minimální napětí. Díky tomu, že aréna je pouze černá a okraje bílé, jsme nemuseli používat A/D převodníky, ale dali jsme před tranzistor pouze trimer, kterým si nastavíme vhodné napětí při najetí na černý podklad. Pro správnou funkci nám stačí to, aby při černé barvě bylo napětí na tranzistoru přes 4V a při bílé pod 2V. To se nám velice snadno podařilo pomocí 100kΩ trimeru před tranzistorem. 5
Pohyb a tvar robota, vlastní řídící program Tuto kapitolu můžeme rozdělit do několika podkapitol: Motory a jejich řízení, kola Vlastní řídící program, výběr uc Tvar robota, sestavení, oživení Motory a jejich řízení, kola Protože jsme věděli, že pro úspěch v soutěži bude potřeba velká síla motorů a velké tření kol, tak jsme tomu museli celého robota přizpůsobit. Vybrali jsme si motory Polulu1162. Jsou to DC motory s převodovkou, 440 ot/min, maximální odběr 3,3A, napájení 6V. Testováním jsme zjistili, že motory bez problémů fungují i na 7,4 V, kterými budeme napájet celého robota. Maximální odběr byl také vyšší, než uvádí výrobce dokázali jsme se dostat až nad 4A. Motory jsou ovládány pomocí dvou H-můstku Freescale MC33886. Každý H-můstek je schopen dodat proud až 5A při napájecím napětí 5-40V. Protože jsou tyto součástky prodávány ve formě SMD, tak mají kvůli velkým proudům zdvojeny jak výstupy na motory, tak vstupy na napájení i země. Na velké proudy si je třeba dávat pozor při zátěži motoru jsou schopny odpařit vodivou cestu na DPS, pokud je moc úzká. Obrázek 3: Freescale MC33886 Výkonné motory máme, jejich ovládání také, ještě je třeba vytvořit taková kola, aby měla velké tření. Použili jsme kolečka ze stavebnice Merkur, na které jsme nalepili nanopodložku, která zajišťuje dobrou přilnavost kol. V soutěži se ukázalo, že to byla dobrá volba ale pro příště by to chtělo ještě zvětšit styčnou plochu kol. Stejně se totiž našel někdo, kdo porazil kola s nanopodložku tím, že měl silikonová kola s větší styčnou plochou a lepší polohou těžiště. 6
Vlastní řídící program, výběr uc Jako hlavní řídící čip jsme se rozhodli použít uc Atmega8 od firmy ATMEL. Obrázek 4: ATMEL Atmega 8 Atmega8 disponuje vším, co budeme k řízení robota potřebovat. Má vstupy na HW přerušení nutné k funkci ultrazvukových čidel, má dostatek výstupních pinů k řízení dvou H-můstků, A/D převodníky, několik vnitřních časovačů, na dvou pinech PWM modulaci, pracuje na frekvenci 8MHz a dá se na ni velice jednoduše vyrobit programátor. Atmega je na DPS napájena přes 5V stabilizátor. Z této napěťové větve jsou také napájeny ostatní součástky ultra+intra čidla. uc už máme, teď je třeba vytvořit program (Celý program je v Příloze B). Používáme přerušení při přetečení časovače na kontrolu stavu snímačů čáry a na spouštění ultrazvukových snímačů. Výstup Echo ultrazvuku je připojen na HW přerušení, takže vždy když se změní hodnota Echo, tak se okamžitě vykoná požadovaná akce. Motory jsou řízeny pomocí PWM modulace tvořené dalším časovačem v uc. Tvar robota, sestavení, oživení Protože jsou naše motory položené vedle sebe v ose hřídele širší než povolených 10 cm, bylo třeba postavit konstrukci s ozubenými kolečky tak, aby mohly být motory vedle sebe a kolečka stále v jedné ose. To se nám podařilo z různých dílů převážně ze stavebnice Merkur. Na tuto konstrukci s motory je nasazena přední část robota, která je též z Merkuru. Jsou to dva perforované plechy vytvarované do nájezdové rampy a posazené tak, aby tvořily třetí opěrný bod robota. Pod nimi je přilepena baterie a závaží, kterým dosahujeme hmotnosti 500g a také vyvažujeme robota, aby se při akceleraci nepřevrátil. Ze zadní strany robota je připevněna DPS, ze které vedou vodiče k jednotlivým čidlům a motorům. Ultrazvuková čidla jsou připevněna na konec perforovaných plechů tak, aby byly co nejvýše na robotovi. 7
Čidla pro detekci čáry jsou na spodní straně těchto plechů umístěna tak, aby byla co nejvíce vepředu robota a zároveň co nejdál od středové osy. Závěr Zúčastnili jsme se Robotického dne v Praze se zcela funkčním robotem. Protože jsme ale nikdy neměli žádného živého protivníka na testování, tak jsme se nemohli vyvarovat určitých chyb, které nás stály postup do finálového kola. Tyto chyby jsme však stihli ještě na místě napravit a odzkoušet, že pak můžeme bez problémů porazit i ty roboty, kteří nás v soutěži vyřadili. Také jsme se naučili, že rozmístění jednotlivých podsystémů na konstrukci robota je velmi důležitá část návrhu. Ultra čidla mohla být umístněna níže, aby detekovala i nižšího protivníka. Těžiště robota jsme se sice kvůli převrácení při akceleraci snažili dostat co nejvíce dopředu, avšak proti převrácení byla stejně nakonec umístněna na zadní části robota tyč, která byla mírně nad zemí. A proto jsme měli těžiště více posunout směrem ke kolům. Sice přímo nepodkluzovala, ale šlo vidět že by ocenila větší přítlak. Celková výška robota (asi 15 cm) taky nepomáhala rozložení hmotnosti co nejvíce u země, ačkoliv byly svrchní části vzhledem k dolním o mnoho lehčí. Výsledek je tedy takový, že jsme z devíti zápasů 4 vyhráli a 5 prohráli. Skončili jsme tedy na pěkném pátém místě (Postupovali první čtyři). Po provedení úprav jsme byli schopni porazit všechny roboty kromě jednoho, takže jsme mohli skončit na druhém místě. Je to pro nás ale aspoň důvod jet na robotický den zase příští rok a ukázat všem to, že i robot oblepený izolačkou dokáže to, co Merkurová krása, nebo kus železa s kolečky. Ceník, kusovník Název Počet Cena za kus Celkem DC Motor Polulu1163 2 570 1140 Ultrazvukové čidlo SRF05 2 600 1200 Infračervené čidlo CNY70 2 20 40 Atmega8 2 65 130 Ostatní součástky 1 350 350 (R,C,Stabil.,H-Bridge) Celkem: Tabulka 1.: Ceník, kusovník 2 860 Kč 8
Příloha A: Pravidla SUMOROBOT 9
Příloha B: Schéma zapojení, návrh plošného spoje Schéma zapojení 10
Návrh plošného spoje: Strana TOP 11
Návrh plošného spoje Strana BOTTOM 12