Zápočtový projekt předmětu Robotizace a řízení procesů Zpracovali: Vladimír Doležal, Jiří Blažek Projekt: Robot stopař Cíl projektu: Robot sleduje černou čáru na povrchu, po kterém jede Datum: duben 2015
1 Stavba robota a plánování jeho činnosti
1.1 Týmová rozvaha – myšlenková mapa
Na obrázku je zjednodušené znázornění pohledu na robota shora se všemi detaily, které budeme potřebovat k jeho řízení. Popíšeme si, jak řídit robota se dvěma motory připojenými do konektorů A a C. Světelný senzor je namontován na přední straně robota a ukazuje přímo dolů, takže nevidí nic než podložku (podlahu, hřiště, stůl, bez ohledu na to, kde se nachází). Červený kruh představuje poměrně malé místo na podložce, které světelný senzor může skutečně "vidět". Zbytek robota je velký obdélník se šipkou, kde šipka ukazuje normální směr jízdy. Naším cílem je řídit robota tak, aby sledoval černou čáru. Sledování čáry je základní robotické chování a je často první věcí, kterou lidé učí roboty.
Mobilní přístroj, který může sledovat čáru zobrazuje všechny vlastnosti opravdového robota. Používá senzor pro shromažďování informací o měnícím se světě kolem něj a ovládá své chování v závislosti na těchto informacích. Roboty pro sledování čáry mohou být postaveny s jedním, dvěma, nebo více světelnými senzory. Obecně platí, že čím více světelných senzorů, tím lépe můžeme sledovat čáru. My použijeme pouze jeden světelný senzor. I s jedním světelným senzorem bychom měli být schopni postavit robota, který můžete sledovat čáru velmi přesně, i když čára nebude rovná. Čím více senzorů máme, tím rychleji se robot může pohybovat i když sleduje čáru.
1.2 Konfigurace robota První trik, který budeme používat je, že se nebudeme snažit, aby robot skutečně sledovat čáru. Místo toho se budeme snažit sledovat okraj čáry. Proč? Protože pokud budeme sledovat černou čáru samotnou, pak robot uvidí pouze černou barvu a až vyjede z čáry „uvidí bílou barvu„ nevíme, na které straně čáry jsme. Jsme na levé nebo pravé straně čáry? Sledujeme-‐li však levý okraj čáry, pak můžeme říci, jakým způsobem jsme mimo okraj. Pokud světelný senzor "vidí bílou", pak víme, že jsme nalevo od okraje čáry, pokud "vidí černou", pak víme, že jsme napravo od okraje čáry. Potřebujeme vědět, jaké hodnoty čidlo vrátí, když "vidí bílou" a když "vidí černou". Třípolohová konfigurace Nedokonalost předešlého typu regulace lze vylepšit rozdělením naší číselné osy do tří oblastí.
takže pokud úroveň světla je nižší než 43 chceme aby robot zahnul doleva. pokud úroveň světla je mezi 44 a 47 chceme aby robot jel rovně. pokud úroveň světla je vyšší než 47 chceme aby robot zahnul doprava. Toho lze v Mindstorms NXT-‐G snadno docílit pomocí vypínače (ano / ne) v rámci přepínače. Musíme vlastně jen rozdělit rozsah místo na dva na tři díly .
1.3 Pracovní postup sestavení robota
2 Programování robota
2.1 Posloupnost příkazů
2.2 Program činnosti robota
3 Činnost robota Naprogramovali jsme robota jako stopaře tak, aby sledoval čáru na okruhu pomocí PID regulace. Spustili jsme robota a sledovali, jak provede úlohu. Pokud nesledoval čáru a zatoulával se, pohyboval se divoce, pak jsme změnili hodnoty na PID regulaci. Měnili jsme hodnoty na čidle, dokud jsme nenašli takovou, která umožnila robotu sledovat čáru se znatelnými výkyvy, ale ne nějak divokými. V případě našeho robota velká změna nastane, když robot narazí na zatáčku. Jak robot reaguje na zatáčku, znamená, jak bude opravovat chyby a jaký bude překmit některým směrem. Museli jsme opravit překmit a určit překmit zpět na druhou stranu. Vzhledem k tomu, robot reaguje na chyby tak, že bude mít tendenci oscilovat kolem požadované polohy. "Doba ustálení" je, jak dlouho trvá robotu vrátit se zpátky k čáře, když narazí na velkou změnu. Video robota v akci je dostupné zde: https://www.dropbox.com/s/8gg1ou9h5647lnk/AA.avi?dl=0
4 Závěr
4.1 Textová zpráva Cíl projektu byl splněn. Výsledný robot stopař je schopný sledovat (levy okraj) černé čáry na různých podkladech a při různé šířce čáry. Stavba byla relativně snadná, postupovali jsme dle veřejně dostupného návodu. Ten nám poskytl dobré vodítko ke stavbě celého robota a nikde jsme neměli potřebu doporučený postup nějak měnit, až na jednu jedino výjimku. Výškové nastavení sensoru bylo příliš vysoké a robotovi se stávalo, že “ztratil stopu” a začal se točit dokola. Točení dokola jsme odstranili díky dvěma úpravám, z nichž první byla posunutí senzoru blíže podkladu. To byl díky konstrukci robota troche mechanický oříšek, ale nakonec se podařilo po několika experimentech najít výšku, která robotovi umožňuje sledovat podklad z takové blízkosti, aby dokázal pohodlně držet stopu. Poté jsme chtěli zkalibrovat lépe sensor, ale snížení vzdálenosti mezi podkladem a senzorem se projevilo s menší schopnosti robota/stopače číst stopu. Nejprve jsme tedy muselí snížit rychlost, jakou se robot pohybuje. Další úpravou byla kalibrace senzoru, kde jsme se na nakonec ustálili na intervalech 0-‐30, 30-‐50, 50-‐ 100. Po těchto úpravách, tedy zmenšení vzdálenosti mezi podkladem a senzorem, z ní logicky vyplývající snížení celkové rychlosti robota a úpravy kalibrace se nám podařilo dosáhnout cíle a mít k dispozici robota, který plný primární zadání a je schopný sledovat levy okraj jakékoli černé čáry na rovném povrchu s rozumným třením.