VYSOKÉ U ENÍ TECHNICKÉ V BRN BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA STROJNÍHO IN ENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION AND COMPUTER SCIENCE
KONSTRUKCE JEDNODUCHÉHO AUTONOMNÍHO VYSAVA E SIMPLE AUTONOMOUS CLEAN DESIGN
BAKALÁ SKÁ PRÁCE BACHELOR THESIS
AUTOR PRÁCE
ROMAN O ENÁ EK
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2007
ING. STANISLAV V CHET, PH.D
Strana 3
ZADÁNÍ ZÁV RE NÉ PRÁCE (na místo tohoto listu vlo te originál a nebo kopii zadání Va í práce)
Strana 4
Strana 5
LICEN NÍ SMLOUVA (na místo tohoto listu vlo te vypln ný a podepsaný list formulá e licen ního ujednání)
Strana 7
ABSTRAKT Ve své práci se zabývám sestavením a poté naprogramováním zadaného robota slou ícího jako simulátor autonomního vysava e vyrobeného z Lega. V první ásti se zabývám problematikou Lega obecn , historií a vývojem Lega se zam ením na Lego Mindstorms obecn . V dal í ásti se zam uji na mo nost programování Lega a na programovací prost edí obecn a rozvinuji programovací prost edí Brix Command Center (RCX Command Center). Uvádím zde i mnou vyzkou ené koncepty a uvádím jejich výhody a nevýhody. U funk ního konceptu uvádím i kompletní konstrukci a ení zadané úlohy. V záv ru se sna ím zhodnotit klady ï zápory této konstrukce a pou ité stavebnice Lego Mindstorms.
ABSTRACT In my thesis I’m dealing with compilation and programming engaged robot usable for simulating of autonomous vacuum cleaner which have been made from Lego. In the first part of this thesis, I am dealing with questions about Lego generally, about Lego’s history and development of it with alignment to Lego Mindstors generally. In next part, I am surveying to possibility of programming Lego and to programming interface generously and expanding programming interface Brix Command Center (RCX Commnad Center). I am interpreting my own tested concepts here and showing advantages and disadvantage of that. In functional concept, I also show complete construction of that and solving engaged theme. At the end of this thesis, I am comparing pluses and minuses of this construction and used building blocks Lego Mindstorms.
Strana 8
Strana 9
Obsah: Zadání záv re né práce........................................................................................................3 Licen ní smlouva ..................................................................................................................5 Abstrakt ................................................................................................................................7 Obsah ....................................................................................................................................9 1 Úvod.........................................................................................................................11 2 LEGO ......................................................................................................................13 2.1 Historie Lega ............................................................................................................13 2.2 Robotic Invention System (RIS)................................................................................14 3 Obsah stavebice RIS ...............................................................................................17 3.1 Robotic Command Explorer (RCX) ..........................................................................17 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6
Vstupní a výstupní porty.......................................................................................................18 IR vysíla .............................................................................................................................18 LCD display a ovládáni RCX pomocí tla ítek.......................................................................19 Senzory ................................................................................................................................20 Motory a Infrav .................................................................................................................21 Minimální po adavky pro instalaci RIS ................................................................................22
3.2
Programovací software..............................................................................................22
3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.2.10 3.2.11
RCX Code............................................................................................................................23 Robolab................................................................................................................................23 BrickxCC/NQC ....................................................................................................................23 MindScript ...........................................................................................................................24 ScriptEd ...............................................................................................................................24 LASM ..................................................................................................................................25 JAVA...................................................................................................................................25 PbForth ................................................................................................................................25 Visual Basic .........................................................................................................................25 C/C++ ..................................................................................................................................25 Pascal...................................................................................................................................25
4 Brix command center..............................................................................................27 4.1 RCX Command Center .............................................................................................27 4.2 Struktura programu v NQC a chybové hlá ení...........................................................28 4.3 Nápov da pro NQC...................................................................................................29 5 Sestavení robota vhodného pro aplikaci algoritm ...............................................31 5.1 Koncept 1..................................................................................................................31 5.2 Koncept 2..................................................................................................................31 5.3 Koncept 3..................................................................................................................32 5.4 Stavba robota pro pou ití aplikace.............................................................................33 6 Konstrukce autonomního vysava e ........................................................................37 6.1 Program 1 – Náhodná procházka...............................................................................37 6.2 Program 2 – Spirála...................................................................................................38 6.3 Program 3 – Jízda po liniích ......................................................................................39 6.4 Program 4 – Jiná náhodná procházka.........................................................................40 6.5 Program 5 – Jízda podél st ny ...................................................................................41 6.6 Vývojové diagramy jednotlivých program ...............................................................42 7 Záv r........................................................................................................................45 Seznam pou itých sou ástek ..............................................................................................47 Seznam pou ité literatury ..................................................................................................49
Strana 10
Strana 11
1
ÚVOD
Úkolem této práce je sestavit robota a naprogramovat ho tak, aby byl schopen pohybu v místnosti a aby simuloval pohyb vysava e, co je velice u ite né pro pomoc v domácnosti. Robot vysava je naprogramován tak, aby byl schopen vyhýbat se p eká kám, dokázal svým pohybem pokrýt co nejv í mo nou plochu a aby dokázal jet podél p eká ky. S robotem se poprvé lidstvo setkává ji v díle eského spisovatele Karla apka – RUR. Sám autor v té dob nev l, e celý sv t budou obklopovat roboti tak, jak je tomu dnes. Roboti jsou stroje ur ené jako pomocníci lidí, pomáhají nám usnadnit práci a provád t ji rychleji, efektivn ji a to tém bez problém . Doká í tak ka cokoliv, co jen lov ka napadne. V dne ní dob si ivot bez robot ani nejde p edstavit, proto e kdekoliv se podíváme, ude narazíme na v ci, se kterými lov ku robot pomohl (nap . v automobilovém a strojním pr myslu, ale také v domácnostech jako velice výkonní pomocníci p i úklidu nebo p i va ení). Velice asto se také objevují roboti jako hra ky pro d ti, které v nich rozvíjí fantazii a tím svým zp sobem také pomáhají lidstvu. Nap íklad japon tí in ený i vyrobili rybu robota, která se ve vod chová tém jako ryba ivá.
Strana 13
2
LEGO
Po vyslovení slova LEGO si ka dý hned vybaví stavebnici ur enou pro d ti. Pokud ale kdo ji tuto stavebnici pozná trochu do hloubky, ví, e tato stavebnice není ur ena jenom pro d ti, ale je ur ena i pro v echny v kové kategorie. N které typy této stavebnice jsou ur eny p evá pro výuku, kde se studenti sna í pochopit základy ru ního a systémového ízení. 2.1
Historie Lega
V roce 1932 ve vesnici Billund v Dánsku, tesa a truhlá jménem Ole Kirk Christiansen zakládá spole nost na výrobu d ev ných hra ek. Jeho syn Godtfred Kirk za íná v rodinném podniku pracovat ve v ku 12 let. O 2 roky pozd ji dává své spole nosti název “LEGO“. Tento název je slo en z dánských slov "LEg" a "GOdt", co v p ekladu znamená "dob e si hrát". V latin má slovo “LEGO“ význam "studuji" nebo "sestavuji". Heslo Ole Kirkovi spole nosti zn lo: "Jen nejlep í je dost dobrý.". V této dob , m la spole nost LEGO jen asi 6 zam stnanc . Postupem asu se spole nost rozr stá a p ibírá zam stnanc . Po vyho ení se firma rychle obnoví a pokra uje ve své výrob . Roku 1947 spole nost LEGO, jako první v Dánsku, kupuje za ízení na vst ikování plastických hmot do forem. hem pár let spole nost LEGO vyrábí 200 druh plastových a d ev ných hra ek. edch dce nyn í LEGO kostky byl na Sv . P vodní kostky byly duté. 1. kv tna 1954 je v Dánsku oficiáln zaregistrována ochranná známka “LEGO“. V roce 1960 pokra uje rychlý r st spole nosti, ale ne bez p eká ek. Skladi , s ev nými hra ky vyho elo. Spole nost LEGO se rozhoduje nepokra ovat v produkci ev ných hra ek. V této dob , m la spole nost LEGO 450 zam stnanc . Roku 1961 LEGO poprvé uvádí na trh stavebnice ur ené pro p ed kolní v k s názvem Therapy I, II a III. Roku 1964 stavebnice LEGO poprvé obsahují stavební návod. V tomté roce LEGO poprvé testuje, s pomocí spot ebitel , stavebnice p ed uvedením na trh. ada stavebnic LEGO zahrnuje 57 souprav a 25 vozidel. Do té doby bylo prodáno více ne 18 milion LEGO souprav. Byla vytvo ena DUPLO kostka (ur ena pro d ti od 4 let), která je osmkrát v í ne standardní LEGO kostka, ale je s ní slu itelná. Tím pokra uje základní my lenka o systému hra ek, se kterými mohou pracovat v ichni spole . ervna 1968 se otvírají brány LEGOLAND parku v Billund. V prvním roce nav tívilo park 625 tisíc lidí. Ve stejném roce spole nost LEGO získává první cenu sout i “Nejlep í hra ka“ v Lucemburku. Roku 1970 se stavebnice roz ila o ozubená kola – stavebnice s názvem “Expert Builder“ (pozd ji Technic). V této dob , m la spole nost LEGO 975 zam stnanc (bez zam stnanc LEGOLAND parku). O 8 let pozd ji se poprvé objevují mini figurky s pohyblivýma rukama, nohama a
Strana 14
2 LEGO
ti
nými tvá emi. Nahrazují tak, do té doby pou ívaná “t la bez tvá e“. Roku 1982 byly edstaveny stavebnice série “DUPLO Mozaika“ a “TECHNIC I“. Tyto soupravy reprezentovaly první p íklady produkt speciáln vyvinutých pro p ed kolní a kolní trh a o rok pozd ji byla uvedena na trh nová ada LEGO Baby (ur ená pro nejmen í d ti) a nové pohyblivé figurky pro LEGO Duplo. Roku 1986 byla sv tu p edstavena souprava “Light & Sound“ dávající nové dimenze stavebnicím LEGO. Odd lení pro vzd lávací produkty p edstavuje první stavebnici ady “Technic Computer Control“, která umo uje LEGO robot m ízení s pou itím po íta e. Tato stavebnice byla zpo átku uvedena pouze na kolní trh ve Velké Británii a Dánsku. Rokem 1996 spole nost LEGO vstupuje na Internet - www.lego.com. Otevírá se nový Legoland ve Windsdoru (Velká Británie) o rozloze 120.000 m2. Roku 1998 je vydána stavebnice “Technic Control Center“, umo ující ovládání robota pomocí kontrolního panelu s ovládacími tla ítky. V b eznu 1999 je otev en t etí Legoland v Carlsbad a o rok pozd ji britská asociace hra ek zvolila LEGO kostky "Hra kou století". Nová stavebnice pro kolní innost. Základem je programovatelná RCX kostka, tvo ená mikropo íta em, na který jsou p ipojeny vstupní senzory nebo motory. Firma LEGO se oblastí vzd lávání zabývá více jak 22 let. Zabývá se vzd láváním a rozvojem schopností d tí od nejútlej í v ku. Stavebnice slou í nejen k rozvoji manuální zru nosti a jemné motoriky u d tí, ale pomáhají rozvíjet i jejich logické my lení.
2.2
Robotic Invention System (RIS)
Robotics Invention System™ (dále pouze RIS) je stavebnice, pomocí které d ti (a nejenom d ti) mohou postavit vlastní samostatn se pohybující roboty. Na obrázku 1 je zobrazena tato stavebnice tak, jek se dodává. Stavebnice se na evropském trhu s hra kami p edstavila v roce 1999, ale ji o rok íve byl v USA dán do prodeje RIS verze 1.0, který se stal první stavebnicí nov vznikající ady nazvané Mindstorms. Po verzi 1.0 následovala verze 1.5, a kone verze 2.0, která zatím doká e vyu ít potenciál RCX asi nejlépe. Soub s první verzí také zapo al i prodej nové ady stavebnic skupiny Lego Dacta nazvaný Mindstorms For Schools (Mindstorms pro koly - této stavebnice je pou ito k vytvo ení mé bakalá ské práce). Ta je ur ena k výuce programování na kolách. RIS je základní stavebnicí ady Lego Mindstorms, která vychází z ady Lego Technic. (Stavebnice obsahují stejné "Technic" sou ástky.) Podstatným roz ením oproti ad Technic je práv mo nost programovat hotové výtvory. Ji v minulosti to sice n které stavebnice Lego v omezené mí e umo ovaly (8094 Technic control center z roku 1990, 8485 Control center II z roku 1995 nebo 8479 Bar code truck z roku 1997), ale teprve v ad Mindstorms bylo programování dovedeno k dokonalosti jednoduchým a ú inným zp sobem (více v p edchozí kapitole). V RIS mohou d ti programovat roboty pomocí jednoduchého grafického programu na ném osobním po íta i a po nahrání programu do robotu je robot na PC ji zcela nezávislý (Já jsem si pro svoji práci vybral jiný druh, který popí u ní e). Jistou nevýhodou je sice nutnost vlastnit po íta , obrovským kladem je ale v í pohodlí p i programování, v í
Strana 15
názornost pro d ti a p edev ím obrovská flexibilita celého systému, která umo uje hrát si s RIS devítiletým d tem, stejn jako student m V pou ít RCX pro tém profesionální robotické projekty.
Obrázek 1
Krabice Robotics Invention System
Strana 16
2 LEGO
Strana 17
3
OBSAH STAVEBICE RIS
Stavebnice v základní verzi obsahuje celkem 717 sou ástek (viz Obrázek 2). Vedle klasických Lego/Technic element stavebnice obsahuje dva devíti voltové Technic motory, t i senzory, jedno RCX, vysílací "v " p ipojitelnou k po íta i (infrav ), CD s ovlada i a programovacím prost edím, Constructopedii a p íslu nou kabelá . Uvedu zde nejd le it í sou ástky a také ty sou ástky, která jsem pou il pro ení této práce a uvedu d vody, pro byly pou ity.
Obrázek 2
3.1
Základní obsah stavebnice RIS
Robotic Command Explorer (RCX)
RCX je srdcem RIS. RCX je "programovatelná Lego kostka", jedno ipový mikropo íta Hitachi uzav ený do pouzdra podobného ostatním Lego kostkám. RCX je mikropo íta schopný samostatn vykonávat zadaný program. Ke své práci nepot ebuje PC. (K jeho programování ale PC pot eba je!) Duchovním "otcem" RCX je Fred G. Martin. Pod jeho vedením byla vyvinuta programovatelná kostka, která se stala p edlohou pro vlastní vývoj RCX. Kostku napájí 6 baterií typu AA a kostka napájí vstupní a výstupní porty. Lze pou ít né, alkalické i dobíjecí baterie. Pouzdro je lutohn dé o rozm rech 8x12 studs se ty mi "technic" otvory na bocích. Na horní stran je displej, est konektor - "elektrických" kostek a ty i tla ítka, na p ední pak IR vysíla /p ijíma .
V pam ti RCX je ulo en firmware, který se sma e tehdy, kdy RCX kostka není napájena. Proto p i vým baterií pracujeme rychle. RCX kostka vydr í bez napájení jen krátkou dobu. Pokud se firmware vyma e, dá se znovu bez potí í nahrát, ale pam se obnovit nedá. Na obrázku 3 je zobrazena RCX kostka a na obrázku 4 je umíst ní baterií.
Strana 18
2 LEGO
Obrázek 3 Pouzdro RCX 3.1.1
Obrázek 4
Ulo ení baterií
Vstupní a výstupní porty
i edé tverce s kovovými vývody - "elektrické" kostky - ozna ené ísly 1, 2 a 3 jsou tzv. vstupní porty (zkrácen vstupy – viz obrázek 5). Pomocí senzor p ipojených k mto konektor m m e RCX získávat informace z okolního sv ta. Nikdy na tyto konektory nep ipojujte motory! Mohlo by dojít k po kození RCX. i erné elektrické kostky v zadní ásti RCX, ozna ené písmeny A, B a C jsou tzv. výstupní porty (zkrácen výstupy – viz obrázek 6). Slou í k p ipojení elektrických sou ástek, které pak m e RCX ovládat. Typicky se jedná o motory, ale v podstat je mo no pou ít echny sou ástky z devíti voltové Lego Electric ady. ( árovky, blika e, sirény, mini- a mikromotory.) Na tyto konektory se nesm jí p ipojovat senzory. Mohlo by dojít k po kození senzoru a v hor ím p ípad ke zni ení RCX kostky.
Obrázek 5 Vstupní porty 3.1.2
Obrázek 6 Výstupní porty
IR vysíla
Tmavé okénko v p ední ásti RCX je infra ervený vysíla (viz obrázek 7). Tento vysíla tvo í jediné pojítko RCX s "mate ským" PC a ostatními RCX. Pomocí Infra ervených paprsk RCX nahrává programy a zasílá zp t získaná data stejným zp sobem, jaký se pou ívá v dálkovém ovládání u televizor . Pravidla pro práci s ním jsou tedy stejná: •
Mezi RCX a vysílací "v í" musí být p ímá viditelnost
•
RCX by m lo být nato eno p ímo na v . (N kdy se ale poda í p enos odrazem o strop)
Strana 19 •
V pr
•
Dosah vysíla e se dá nastavit
•
hu komunikace RCX s v i se sna te s RCX nehýbat
kdy mohou vznikat potí e s komunikací p i jasném slune ním zá ení
Obrázek 7 IR vysíla
3.1.3
LCD display a ovládáni RCX pomocí tla ítek
Panel LCD slou í k zobrazování informací o tom, co se s RCX d je, pomocí tla ítek m eme ovládat základní funkce.
Po stranách displeje jsou ty i ovládací tla ítka. Jejich funkce je následující: On-Off Zapíná a vypíná RCX. Pokud RCX zapomenete vypnout, vypne se po ase samo. Run Spou tí a zastavuje vybraný program. íslo vybraného programu se na displeji zobrazuje spolu s paná kem. B ící paná ek ukazuje, e program práv probíhá. (Blí e viz obrázky displeje.) Prgm Je zkratkou za program. RCX disponuje p ti programovými sloty na uschovávání program . Pomocí tohoto tla ítka vybíráte íslo programového slotu. Opakovaným stiskem epínáte sloty v cyklu 1 - 2 - 3 - 4 - 5 atd. íslo aktuálního programu se zobrazí na displeji. View Umo uje zobrazit na displeji r zné informace a funguje tehdy, je-li v kostce nahrán firmware. Postupnými stisky p epínáme mezi zobrazením stavu vstupu 1, vstupu 2, vstupu 3, výstupu A, výstupu B, výstupu C a systémovým asem. Panel LCD slou í k zobrazování informací o tom, co se s RCX d je. Proto e uvádí le ité informace, seznámíme se s ním podrobn ji.
Strana 20
2 LEGO
Na pravé stran displeje je v dy zobrazena silueta paná ka s íslem. íslo indikuje aktivní program, paná ek stav programu. Stojí-li paná ek, program není vykonáván (horní obrázek). Uvidíte-li paná ka b et, je program práv zpracováván (spu n, (probíhá ). (Dolní obrázek). Programy spou tíme a zastavujeme stiskem zeleného tla ítka s nápisem "Run", mezi programy p epínáme stiskem edého tla ítka "Prgm". Symbol p krtnuté baterie v pravém horním rohu znamená, e baterie mají nízké nap tí. Za ne-li symbol blikat a RCX vydávat výstra né signály, baterie mají ji velmi nízké nap tí a m ly by být vym ny. Tmavý ku el v levé ásti displeje ukazuje, e RCX práv pou ívá sv j IR vysíla . Délka ku ele odpovídá nastavení vysíla e (krátký/dlouhý dosah).
Te ky se v horní ásti displeje zobrazují jedna po druhé, kdy je do RCX z po íta e nahráván program.
Hodiny se objeví a poté, co je do RCX nahrán firmware (viz kapitola Firmware.) Pak ukazují systémový as. (V inou zobrazují, jak dlouho ji je RCX zapnuto.) ipky ukazují, který senzor práv sledujeme pomocí tla ítka View. Je-li vstup aktivní (nap . stla íte-li p ipojený dotykový senzor), z prázdné ipky se stane ipka plná. (Na obrázku je aktivní vstup 1.) ipky dole ukazují, který výstup je práv aktivní (napájen elekt inou) a jeho polaritu (sm r otá ení). Na obrázku jsou zobrazeny oba sm ry najednou (vlevo/vpravo), co se vám ve skute nosti (snad) nikdy nepoda í.
3.1.4
Senzory
RCX m e vyu ívat n kolik druh senzor . Vedle vestav ných stopek ( asova ) a íta (po ítadel událostí) m ete vyu ít vn í idla - senzory. RIS obsahuje jeden sv telný a dva dotykové senzory.
Strana 21
Dotykový senzor Dotykový senzor je v podstat jednoduché tlakové idlo. V základním nastavení RCX indikuje, zda je idlo stisknuté, nebo není. Díra na osi ku spolu s výstupky usnad uje montá . V inou je vhodné umístit na senzor n jaký nárazník, aby zabíral v í plochu. Senzor je k RCX mo no p ipojit libovoln dlouhým kabelem. Tento senzor jsem si vybral pro mou aplikaci. Pou il jsem 3 tyto senzory. Sv telný senzor Sv telný senzor má dva druhy pou ití. Doká e snímat intenzitu sv tla a tak pomáhat robotu nap . schovávat se v temném kout a imitovat tak chování hmyzu, nebo, díky vestav né LED diod , m ete osv tlovat plochu a snímat intenzitu odra eného sv tla. To je ideální pro ízení robotu podél tmavé áry namalované na sv tlém papí e. Senzor také v omezené mí e umo uje rozpoznávání barev. Tento senzor jsem pou il p i prvním návrhu, ale neosv il se, proto e je problematické nastavit správnou hodnotu prahového sv tla. Rota ní senzor Tento senzor není sou ástí RIS. Je ale mo no jej dokoupit samostatn . Rota ní senzor je velmi u ite nou pom ckou p i stavb slo it ích a propracovan ích projekt . Na p ipojené osi ce umo uje m it úhly otá ení s v krocích po 22,5°.Tuto p esnost lze samoz ejm zvý it pomocí vhodného zp evodování. Také jím m ete m it rychlost otá ení motoru. Tento senzor vám tak umo uje kontrolovat va eho robota p esn ji, ne s pou itím tradi ních prost edk ( asova ). Teplotní senzor Tento senzor není sou ástí RIS. Je ale mo no jej dokoupit samostatn . Teplotní senzor m í teplotu okolního prost edí. Výstup je mo no získat bu ve stupních Celsia, nebo Fahrenheita. RIS doká e íst hodnoty od -20 °C do 50 °C
3.1.5
Motory a Infrav
Motory Standardn jsou dodávány dva minimotory. Jedná se o výkonné motory s pom rn uspokojivou spot ebou a rychlostí cca 760 ot/min. Tyto motory mají vestav nou p evodovku.
Strana 22
2 LEGO
Infrav Infrav slou í ke komunikaci va eho PC s RCX. Pomocí v e se do RCX zasílá program, firmware a z RCX zp t do po íta e data. Nikdy nep ipojujte v k PC d íve, ne nainstalujete p íslu ný software! P i komunikaci RCX s po íta em by m lo RCX být umíst no asi 10-15 cm od v e a v p ímé viditelnosti. P i velkém mno ství slune ního sv tla v místnosti bývají s komunikací potí e. Více o pravidlech komunikace v odstavci IR vysíla . Dosah USB v e m ete nastavit softwarov v nastavení ovlada systému Windows. (menu Start/Nastavení/Ovládací panely, panel LEGO USB Tower.) Zárove je nutno dosah nastavit v systému RIS 2.0, v menu Settings. Zde se také nastavuje dosah vysíla e RCX.
3.1.6
Minimální po adavky pro instalaci RIS
Opera ní systém Procesor Pam
Windows© 98 nebo Windows© Millenium Pentium© II 233 MHz nebo vy í, nefunguje na po íta ích Apple© 32MB RAM, doporu eno 64 MB RAM
Volné místo na disku
115 MB
My
Windows© kompatibilní
Zvuková karta
DirectX 6.1™ kompatibilní 4MB (8MB doporu eno) DirectX 6.1™ nebo vy í 800 x 600 SVGA high color (16-bit)
Grafická karta CD-ROM Ovlada e
8x CD/DVD-ROM QuickTime 4.1.2 (p ilo eno na CD) nebo vy í DirectX 8.0™ nebo vy í (p ilo eno na CD)
Ostatní
Jeden volný USB port pro p ipojení komunika ní v e
©
Tabulka 1 Minimální po adavky pro instalaci RIS
3.2
Programovací software
Nejd le it í sou ástí ka dé stavebnice Lego Mindstorms je software, který pot eba k naprogramování hlavního mozku robota. Tím dáme robotovi v e pot ebné pro na i po adovanou funkci. Existuje mnohá ada pou itelného softwaru. Výb r u zále í na konkrétním u ivateli i zvá ení svých mo ností a dovedností. Uvedu zde ty nejpou ívan í. Pro p eklad se pou ívá p eklada ur ený p esn podle zvoleného programovacího softwaru. Tyto p eklade jsou uvedené na stránkách Lega, kde je i
Strana 23
popsáno, kde se tyto p eklada e dají sehnat, pop ípad jsou – li dostupné jako free verze nebo placená verze. 3.2.1
RCX Code
Jedná se grafickou interpretaci MindScriptu (vysv tleno ní e).Ve skute nosti se jedná o grafický jazyk ur ený p edev ím pro d ti. Dodává se spolu se stavebnicí, je zdarma a je dostupný i tin . Ukázky grafického programu jsou uvedeny na obrazcích 8 a 9.
Obrázek 8 3.2.2
Programování v RCX Code
Obrázek 9 Programování v RCX Code
Robolab
Jedná se grafickou interpretaci LASM (viz ní e).Takté se jedná o grafický jazyk Robolab ur ený p edev ím pro d ti. Integrovaná podpora kamery a MIDI, kvalitní nápov da, „roste“s u ivatelem. Ukázky grafického programu jsou uvedeny na obrazcích 10 a 11.
Obrázek 10 Hlavní nabídka ROBOLABu 3.2.3
Obrázek 11 Prost edí v ROBOLABu
BrickxCC/NQC
BrickCC je zástupcem skupiny "textov orientovaných" programovacích jazyk . vodn byl navr en jako IDE pro programování v NQC, dnes ale podporuje mnohem ir í paletu programovacích jazyk . Je voln ke sta ení. Více popí u v následující kapitole. Tento software jsem si vybral pro „o ivení“ svého robota. Jako d vod bych uvedl, e je to ve své podstat hodn zjednodu ená verze jazyku C. Ukázka programu je na obrázku 12. •
Podpora alternativních firmware
Strana 24
2 LEGO
•
Podpora v ech typ programovatelných kostek
•
Nástroje pro usnadn ní práce ( ablony, zvýrazn ná syntax...)
•
Podpora více programovacích jazyk
•
Natím jsem na n m nena el chybu
Programovací jazyk: NQC, MindScript, LASM, po úpravách pak BrickOS C a C++, BrickOS Pascal a asi i dal í Not Quite C - tém C jazyk pro RCX. Pokud programujete v Cé ku, jasná volba. Existuje kvalitní kompiler, kvalitní IDE a eský p eklad tutoriálu
Obrázek 12 Prost edí NQC (ukázka je z mého programu Náhodná procházka) 3.2.4
MindScript
Skriptovací jazyk spole nosti Lego vyvinutý pro programování RCX a dal ích programovatelných kostek. Jediný oficiáln podporovaný programovací jazyk pro RCX 3.2.5
ScriptEd
ScriptEd je jednoduchým editorem dodávaným spolu se SDK. Byl vytvo en pro betatestery SDK, aby usnadnil psaní zdrojového kódu program . Psát programy s n m je snaz í ne programovat v Notepadu, ale je vid t, e se jedná o testovací produkt spí ne plnohodnotné programovací rozhraní. Na druhou stranu má n kolik d le itých funkcí a sou ástí balí ku je rozsáhlá dokumentace u ite ná pro vývojá e. Jako programovací jazyk vyu ívá MindScript a LASM.
Strana 25
Podporuje více druh firmware, více typ programovacích kostek a podává podrobn informace o RCX. Ukázka programu je na obrázku 13.
í
.Obrázek 13 Ukázka programu ScriptEd 3.2.6
LASM
Lego Assembler. makroassembleru. 3.2.7
Low-level
jazyk pro
programováni RCX.
Podobný PC
JAVA
Java pro RCX. Milujete-li Javu, nainstalujte BrickOS a m ete za ít. 3.2.8
PbForth
Forth for programable brick. Forth je jazyk podobný jazyku pro programování NC stroj . Jednoduché p íkazy se skládají do slo it ích "akcí". Pomocí Forthu se údajn ovládají radioteleskopy atp. Asi ale ne v echách. 3.2.9
Visual Basic
Pomocí balíku Spirit.ocx (starý, dále nepodporovaný zp sob) nebo API knihovny VPBrick je mo no pro RCX psát programy v MS Visual Basic. Umíte-li VB, m ete psát profesionální aplikace pro RCX. 3.2.10 C/C++
Platí toté co pro Visual Basic. 3.2.11 Pascal
Pomocí GPC compileru pro Hitachi H8 m ete pro RCX (údajn ) psát programy i v Pascalu. M li by být na stránkách firmy Hitachi.
Strana 26
2 LEGO
Strana 27
4
BRIX COMMAND CENTER
Software dodávaný spole se stavebnicí má jen omezenou funk nost a lze jej pou ít více mén jen k ení jednoduchých úloh. K vyu ití více funkcí pot ebujeme kvalitn í programové prost edí. Jak u jsem p edeslal d íve, z tohoto d vodu jsem si vybral programovací prost edí NQC (Not Quite C,co ve volném p ekladu znamená Tém jazyk C). NQC je programovací jazyk napsaný a vyvinutý Davidem Baumem. Je speciáln ur en pro roboty postavené z Lega. Ve skute nosti je programovaní Lego robot mnohem jednodu í ne programování skute ných po íta . Z tohoto d vodu se m e oby ejný lov k, tém neznalí programování, stát snadno programátorem. Pro tento NQC programovací jazyk je zde tzv. RCX Command Center, díky kterému je psaní program o mnoho snaz í. Tento nástroj pomáhá psát programy, posílat je robotu, spou t je a ukon ovat. RCX Command Center funguje podobn jako ka dý normální textový editor, av ak nabízí i n co navíc. Toto programovací prost edí si m e ka dý stáhnout z internetu, proto e je zdarma. RCX Command Center b í na osobních po íta ích s opera ním systémem Windows (95, 98, NT, 2000, ME i XP, na verzi Vista jsem to nezkou el). Pro perfektní b h programu doporu uji, aby byl je p ed nainstalováním tohoto programovacího prost edí alespo jednou spu n software dodávaný spolu se stavebnicí (nap . pro plynulý b h je pot eba mít správn nainstalovanou Infrav ). V následujících podkapitolách objasním základy tohoto programovacího jazyka a uvedu ty nejzákladn í p íklady. 4.1
RCX Command Center
i spu ní programu jste vyzvání k najití robota za p edpokladu, e je správn nainstalována infrav , robot je v dosahu IR signálu a je zapnut. P i této výzv se vybírá komunika ní port a druh firmware. Na obrázku 14 je toto hlá ení zobrazenou. Po tomto výb ru se dostáváme ji do u ivatelského prost edí. Na obrázku 15 je ukázka tohoto prost edí i z ukázkou nejd le it ích prvk .
Obrázek 14 Výzva k výb ru mo ností pro hledaní robota
Strana 28
2 LEGO
Obrázek 15 Programovací prost edí + základní ovládací prvky
4.2
Struktura programu v NQC a chybové hlá ení
Program v NQC sestává z úloh (z angli tiny „task“). Program v dy musí obsahovat jednu úlohu nazvanou main (z angli tiny p elo eno „hlavní“), která je v dy zpracována p i spu ní tla ítka RUN na RCX kostce. Ka dá úloha se skládá z mno ství p íkaz známých jako jednotlivé programové kroky (anglicky statement). echny programová kroky jsou pomocí slo ených závorek uzav eny do skupin. Ka dý programový krok je ukon en st edníkem. Díky tomu je jasné, kde jeden programový krok kon í a za íná dal í. Na obrázku 16 je uvedena struktura programu. i psaní programu je patrné, e text m ní automaticky barvy. Cokoliv je v modré barv , jsou p íkazy, názvy motor a v ech známých prvk robota jsou v zelené barv , defini ní veli iny jsou ve fialové barv , íselné konstanty jsou ervené. Tu vyzna ená „slova“ jsou d le itými (tzv.rezervovanými) slovy. Tohle velice chytré, proto e u p i psaní programu m eme v t, jestli ned láme chyby. Na obrázku 16 je uvedeno par p íklad barevného textu a také zobrazené chybové hlá ení. Pokud je v programu n kde n jaká chyba, program to p i kompilaci pozná a na chybu nás upozorní v chybové hlá ce. V p íkladu na obrázku 16 je uvedena chyba, kde není p íkaz ukon en st edníkem. Na obrázku 16 je uveden p íklad, kdy robot má jet po dobu cca 3 s vp ed. Po uplynutí této doby zastaví a vypne motory. Na po átku programu jsou definice pot ebné pro b h programu. Co ka dá definice znamená je uvedeno na tomto p íkladu ve vlo eném komentá i (komentá se pí e do dvou svislých lomítek).
Strana 29
Obrázek 16 Uvedený p íklad struktury programu, chybového hlá ení a barevného textu
4.3
Nápov da pro NQC
RCX Command Center má pro programovací jazyk NQC velmi kvalitní nápov du. Do nápov dy sta í zadat klí ové slovo a nápov da nám zobrazí v echny mo né dostupné parametry a typy pou ití tohoto klí ového slova. Na obrázku 17 je pou ita nápov da pro psaní podmínky if.
Obrázek 17 Nápov da v RCX Command Centeru pro p íkaz if
Strana 30
2 LEGO
Strana 31
5
SESTAVENÍ ROBOTA VHODNÉHO PRO APLIKACI ALGORITM V této kapitole uvedu, jak jsem se dostal k mé fyzické konstrukci robota – vysava e.
5.1
Koncept 1
Jako m j první koncept byla zvolena konstrukce robota na pásovém podvozku s pou itím dvou sv telných senzor , které byly ur eny pro ochranu p ed pádem za schod . Dotekový senzor p ipojený k nárazníku m l slou it jako detektor p eká ek. Pásový podvozek byl pou it a navrhnut proto, aby usnadnil zatá ení motor jejich zastavováním a vzájemným k ovým chodem. Dále bylo u této konstrukce pou ito p evodu pomocí velkého ozubeného kola hnaného p ímo motorem. Pomocí dvou malých ozubených kol je p enesen p ímo na hnací h ídel kola, které ovládá pomocí ji zmi ovaného pásu celou jednu stranu robota. Tato konstrukce ale nebyla p íli vhodné, proto e p i zatá ení se robot velice cukal a ast ji docházelo k nepohyblivosti robota, co vedlo k rychlému vybití baterií. Výsledkem byl nepou itelný robot, na kterém se nedaly pou ít teoretické návrhy algoritmu. Na obrázcích 19 a 20 je zobrazena tato konstrukce.
Obrázek 19 Ukázka 1. konceptu robota
5.2
Obrázek 20
Ukázka p evodu u 1. konceptu
Koncept 2
Jako dal í koncept byla op t zvolena konstrukce robota na pásovém podvozku a takté bylo pou ito dvou sv telných senzor , které byly ur eny pro ochranu p ed pádem za schod . Dotekový senzor p ipojený k nárazníku m l rovn poslou it jako detektor p eká ek. Pásový podvozek byl pou it a navrhnut proto, aby usnadnil zatá ení motor jejich zastavováním a vzájemným k ovým chodem. U této konstrukce pou ito ji pou ito pln funk ního p evodu pomocí velkého ozubeného kola hnaného p ímo motorem a dal ího pomocného ozubeného kola. P evod u tohoto konceptu tedy inil 1:1. To ivý moment motoru je díky tomuto p evodu p enesen p ímo na hnací h ídel kola, které ovládá pomocí ji
Strana 32
2 LEGO
zmi ovaného pásu celou jednu stranu robota. Tato konstrukce ale nebyla p íli vhodné, proto e p i pou ití algoritmu ochrany proti pádu robota ze schod se muselo po ítat s prom nlivými konstantami, které vznikaly v závislosti odrá ení sv tla povrchem. Tyto hodnoty se museli p ed ka dým spu ním robota vyhodnotit a zadat do programu. Výsledkem byl sice pou itelný robot, ale bylo velice nepohodlné hledat konstanty a zadávat je do programu. Kdy ale pominu fakt, e by byl kdo ochoten tyto hodnoty hledat a znovu zadávat, ur it by p el na to, e jakmile se zm ní sv telné podmínky nebo robot najede do „temných a stinných“ míst anebo e majitel vlastní koberec s achovnicovým vzorem, nebude robot fungovat tak, jak má. Na obrázku 21 a 22 je tento koncept zobrazen.
Obrázek 21
5.3
Ukázka konceptu 2 z boku
Obrázek 22
Ukázka konceptu 2 zep edu
Koncept 3
Jako dal í, ji finální koncept byla op t zvolena konstrukce robota na pásovém podvozku uvedená ji v konceptu 2. Pro ochranu p ed pádem ze schod je zde pou ito mechanického dotekového senzoru. Funkce toho senzoru je jednoduchá, nebo má pouze 2 mo né stavy – sepnut x vypnut (v programovaní se spí e pou ívá stav TRUE a FALSE, co je ve skute nosti logická 1 respektive 0). Dotekový senzor p ipojený k nárazníku rovn poslou í jako detektor p eká ek a dotekový senzor na boku slou í jako detektor pro jízdu kolem st ny. V p edchozích dvou konceptech by byl obrovský problém vyladit pro jízdu podél st ny, proto e ji v echny vstupy RCX kostky byly obsazené. Dalo by se to vy it nastavením senzor do modelu RAW, co je v podstat zapojení dvou senzor (sv telný a dotekový) na jeden vstup. P i tomto stavu by se op t musela najít n jaká prahová hodnota pro odraz sv tla. Experimentáln byla tato hodnota nastavena na 750, kdy minimální hodnota byla 0 a maximální pak 1000. To ale nebylo p íli dobré pro ji zmi ovaný achovnicový vzor podlahy. Pásový podvozek z konceptu 2 byl zvolen proto, e p i zji ování hodnot a experimentování chování na daný program reagoval robot nejlépe. Pou itím této konstrukce je ji vhodné pro na i realizaci pohybu a chování na eho robota. Pro pohyb (jízdu) je robot naprogramován tak, e po ur itém asovém intervalu testuje, zdali se od st ny moc neoddálil malým nato ením ke st . K této detekci slou í ji
Strana 33
etí zmi ované mechanické dotekové idlo. Na obrázku 23 a 24 je tento koncept zobrazen. Sestavení tohoto robota popisuji v následující kapitole.
Obrázek 23
5.4
Ukázka konceptu 3 z boku
Obrázek 23 Ukázka konceptu 3 zep edu
Stavba robota pro pou ití aplikace
Stavbu robota pro na i aplikace m eme rozd lit na dv konstrukci detektor .
ásti: Konstrukci podvozku a
Za ne stavbou podvozku, co je nejjednodu í ást stavby na eho robota:
Obrázek S1
Podvozek z boku
Obrázek S2
Podvozek ze spodu
Obrázek S3 Osazení motor
Obrázek S4
Osazení RCX kostky
Strana 34
2 LEGO
Nyní p ichází stavba nejt
Obrázek S5
Obrázek S7
í ásti konstrukce, stavbou detek ní ásti:
Vrchní úchyt radlice
Horní úchyt radlice
Obrázek S6
Obrázek S8
Obrázek S9 Celá detek ní ást
Detek ní ást podlahy
Horní úchyt radlice shora
Strana 35
Obrázek S10 Kompletní konstrukce robota vysava e (pohled zboku)
Obrázek S10 Kompletní konstrukce robota vysava e (pohled shora)
Strana 36
2 LEGO
Strana 37
6
KONSTRUKCE AUTONOMNÍHO VYSAVA E
elem této bakalá ské práce je návrh algoritmu práce autonomního vysava e v b né místnosti. To znamená, e robot by m l rozeznat p eká ku a n jakým zp sobem se jí vyhnout a samoz ejmostí je i to, aby svým pohybem po této místnosti pokryl co nejv í plochu stejn tak, jako u je samoz ejmostí u známých automatických vysava (jako je nap íklad automatický vysava CleanMate 365 QQ1, který je zobrazen na obrázku 18). Mnou vytvo ený robot simuluje pohyb podobného robota – vysava e. Pro svoji aplikaci jsem zvolil 5 r zných program , mezi kterými se dá podle pot eby volit. Ka dý tento program rozvedu samostatn . Dal by se vytvo it i velmi jednoduchý program, který by spojil tyto v echny programy dohromady. Pro názornou ukázku sta í p edvést ka dý program zvlá , nebo celkovou ukázku v ech program v jednom by bylo na del í dobu (minimáln po dobu danou ka dým programem zvlá ).
Obrázek 18
6.1
Program 1
Automatický vysava CleanMate 365 QQ1
Náhodná procházka
Na za átku programu jsou definice prom nných, pou itých idel, konstant a motor . V hlavním programu je jsou postupn spou ny t i podprogramy. Tyto programy obsahují prvky pro zastavování a spou ní jednotlivých program v závislosti na jejich nutnost pou ití. Prvním a nejd le it ím podprogramem je kontrola doteku s podlo ku. To je z d vodu ochrany proti pádu robota vysava e nap .ze schod . Tento program je pou it u ech program , které tento robotek obsahuje. Funkce tohoto velmi d le itého podprogramu je následující: • Pokud je dotekové idlo sepnuté (robot má kontakt se zemí), je v echno v po ádku a robot m e provád t dal í podprogram • Pokud je dotekové idlo rozepnuté (robot najel na první schod a tím ztratil kontakt), zahraje melodii a kousek popojede dozadu. Poté se nato í na libovolnou stranu s tím, e má aktivovaná nárazová idlo a tím je „chrán n“ oto ení se proti p eká ce. Na konci tohoto podprogramu se spustí ji vý e zmín ný test hledání p eká ky. Pokud robotek do p eká ky narazí, op t kousek couvne a oto í se na libovolnou náhodn vybranou stranu (odtud název „Náhodná procházka“). Na obrázku 19 je nastín n tento program a na obrázku ozna eného jako Vývojový digram 1 je vývojový diagram.
Strana 38
2 LEGO
Obrázek 19 Nastín ní zdrojového kódu programu Náhodná procházka
6.2
Program 2
Spirála
Program spirála se od programu Náhodná procházka li í pouze v podprogramu Spirála namísto jízdy v p ed. Na za átku programu jsou op t definice prom nných, pou itých idel, konstant a motor . V hlavním programu je jsou postupn spou ny takté t i podprogramy. Tyto programy obsahují prvky pro zastavování a spou ní jednotlivých program v závislosti na jejich nutnost pou ití. Testování doteku a s podlo kou a vyhýbání se p eká kám je takté toto né s programem Náhodná procházka. Hlavní rozdíl u tohoto programu je, e robot u nejezdí jenom rovn . V tomto programu robot jezdí v kruhu, který se neustále zv uje, co znamená, e se pohybuje ve spirále (odtud název Náhodná spirála). Funkce tohoto programu je následující: • i spu ní programu se za ne s kontrolou styku s podlahou (viz program Náhodná procházka) • Poté se spustí pohyb po spirále a zárove se spou tí kontrola p eká ek (pokud i jízd ve spirále robot narazí do p eká ky, couvne pooto í se vlevo nebo vpravo a za ne s novou spirálou). Na obrázku 20 je nastín n zdrojový kód programu a na obrázku ozna eného jako Vývojový digram 2 je vývojový diagram.
Strana 39
Obrázek 20 Nastín ní zdrojového kódu programu Spirála
6.3
Program 3
Jízda po liniích
Program Jízda po liniích se od ostatních program li í pouze v podprogramu Line. Na za átku programu jsou op t definice prom nných, pou itých idel, konstant a motor . V hlavním programu je jsou postupn spou ny takté t i podprogramy. Tyto programy obsahují prvky pro zastavování a spou ní jednotlivých program v závislosti na jejich nutnost pou ití. Testování doteku a s podlo kou a vyhýbání se p eká kám je takté toto né se emi programy. Hlavní rozdíl u tohoto programu je, e robot jezdí jenom rovn (po linii). Pokud robot narazí na p eká ku, oto í se o cca 2 x 90° vlevo nebo vpravo. Uvádím zde jen p ibli ný údaj 90°, proto e je nutné zapo ítat rychlost pohybu robota p i otá ení, materiál podlahy a tzv. ekací konstantu (tato konstanta je asový interval, po který vykonává robot ur enou v c). Tato konstanta je definována jako 1/100 vte iny. Experimenty byla tato hodnota zji na a nastavena na 80. Funkce tohoto programu je následující: • i spu ní programu se za ne s kontrolou styku s podlahou (viz program Náhodná procházka) • Poté se spustí pohyb po linii (robot jede rovn ) a zárove se spou tí kontrola eká ek (pokud p i jízd ve spirále robot narazí do p eká ky, couvne pooto í
Strana 40
2 LEGO
se vlevo nebo vpravo o ji zmín ných 2 x 90° a jede op t rovn ). Na obrázku 21 je nastín n zdrojový kód programu a na obrázku ozna eného jako Vývojový digram 3 je vývojový diagram.
Obrázek 21 Nastín ní zdrojového kódu programu Linie
6.4
Program 4
Jiná náhodná procházka
Program Jiná náhodná procházka se od ostatních program li í pouze v podprogramu Other_random_move. Na za átku programu jsou op t definice prom nných, pou itých idel, konstant a motor . V hlavním programu je jsou postupn spou ny takté t i podprogramy. Tyto programy obsahují prvky pro zastavování a spou ní jednotlivých program v závislosti na jejich nutnost pou ití. Testování doteku a s podlo kou a vyhýbání se p eká kám je takté toto né se emi programy. Hlavní rozdíl u tohoto programu je, e robot jezdí neustále náhodn a nedá se edvídat jeho dal í pohyb. Funkce tohoto programu je následující: • i spu ní programu se za ne s kontrolou styku s podlahou (viz program Náhodná procházka) • Poté se spustí pohyb podprogram po pohyb (robot jezdí jak se mu líbí) a zárove se spou tí kontrola p eká ek a neustále testuje dotek s podlo kou. Tento program bych nazval pravým náhodným pohybem. Na obrázku 22 je nastín n zdrojový kód programu a na obrázku ozna eného jako Vývojový digram 4 vývojový diagram.
Strana 41
Obrázek 22 Nastín ní zdrojového kódu programu Jiná náhodná procházka
6.5
Program 5
Jízda podél st ny
Program Jízda podél st ny je odli ná od v ech p edchozích program . Na za átku programu jsou op t definice prom nných, pou itých idel, konstant a motor . V hlavním programu je jsou postupn spou ny takté t i podprogramy. Tyto programy obsahují prvky pro zastavování a spou ní jednotlivých program v závislosti na jejich nutnost pou ití. Testování doteku a s podlo kou a vyhýbání se p eká kám je takté toto né se emi programy. Pokud robot narazí do p eká ky, kousek od ni couvne. Poté se jedu op t proti p eká ce. To se opakuje do té doby, dokud se nesepne idlo na levém boku robota. Toto idlo slou í pro kontrolu jízdy podál st ny, nebo podél p eká ky. Jízda podél st ny je tvrtým podprogramem, který se aktivuje pouze pokud je sepnuto levé bo ní dotekové idlo. P i jízd podél p eká ky (st ny) jsou neustále aktivní dal í ochranné idla (pro kontrolu s podlo kou a pro detekci p eká ky). Pokud se robot dostane na konec st ny (p eká ky), pokusí se znovu najít p eká ku. Pokud se mu to za ur itou dobu nepovede, pojede neustále rovn , dokud nenajde (nenarazí) dal í. Robot p i jízd kolem st ny jede rovn po ur itou dobu. Po uplynutí této doby je
Strana 42
2 LEGO
pokusí znovu najet do st ny bo ním idlem z d vodu, e se robot od st ny nepatrn vzdálí a tím se st nou ztratí kontakt. Je to zp sobeno tím, e ka dý motor má minimální rozdíl v to ících momentech. Robot jezdí kolem st ny po sm ru ob hu hodinových ru ek. Na obrázku 23 je nastín n zdrojový kód programu a na obrázku ozna eného jako Vývojový digram 5 vývojový diagram.
Obrázek 23 Nastín ní zdrojového kódu programu Jízda podél st ny
6.6
Vývojové diagramy jednotlivých program
Vývojový diagram 1
Náhodná procházka
Strana 43
Vývojový diagram 2
Vývojový diagram 3
Náhodná spirála
Jízda po linii
Strana 44
2 LEGO
Vývojový diagram 4
Jiná náhodná procházka
Vývojový diagram 5
Jízda podél st ny
Strana 45
7
ZÁV R
Úkolem této práce bylo vytvo it robota, který by dokázal nasimulovat pohyb autonomního vysava e v prostoru s p eká kami a jízdou podél p eká ky (st ny) a aby byl schopen realizovat navrhnuté algoritmy tohoto pohybu. Robot vysava se doká e pohodln vyhnout p eká ce a poté op t pokra ovat v p edchozím pohybu, jezdit po spirále a po nárazu do p eká ky p eru it tuto innost, vyhnout se této p eká ce a znovu jezdit po nové spirále, doká e se naprosto náhodn pohybovat po místnosti a zárove se vyhýbat p eká kám a v neposlední ad doká e podle p eká ky jet (toho se dá vyu ít pro vysávání kolem p eká ky a také podél st ny). Mechanická realizace robota je provedena pomocí LEGA Mindstorms. Pou ití této stavebnice bylo pro tuto aplikaci dostate né. Byly vytvo eny t i stavební konstrukce, kde první dv nebyly vhodn zvoleny. Stavebnice Lego poskytuje svou sou ástkovou základnou dobrý základ pro základní experimenty s programováním robot a jejich mechanickou stavbou. Nevýhodou je, e optická idla mají velmi malý rozsah (dají se rozeznat základní barevná spektra) a jsou velice náchylné na zm nu sv telného prost edí. Na druhou stranu m mile p ekvapily dotekové (mechanické) senzory, nebo díky jejich funk ní jednoduchosti byl ji t etí koncept pou itelný. Dal ím vypozorovaným nedostatkem této stavebnice jsou mechanické vlastnosti jednotlivých sou ástek a pom rn malé sou ástkové základny. V n kterých p ípadech jsem musel konstrukci slo it ím zp sobem zpev ovat a také pou ít svoji starou stavebnici pro pou ití n kterých kostek. Dobrou výhodou v ech stavebnic Lego je, e se m ou kombinovat. Proto je dobré p i koupi této stavebnice mít je alespo jednu „oby ejnou“ stavebnici. i programování jsem ocenil mo nost výb ru programovacího software a jeho rozhraní, které programování usnadní a zp íjemní. které pou ité konstanty bylo pot eba zjistit experimentem, co zabralo dost asu a lehkých úprav konstrukce. Jednotlivé programy jsou naprogramovány tak, aby vyhovovaly zadání a taky aby nebyly zbyte slo ité. To umo uje i vyu ití této práce jako pom cky pro výuku programovaní robot . echny tyto programy se dají slou iv jeden komplikovan í program, který bude obsahovat jeden hlavní program a p t hlavních podprogram (pro ka dý program jeden). Ochranné prvky jako je kontrola podlahy a detekce p eká ek m e být pro v echny spole ná. Tohoto by se dalo vyu ití p i tvorb dal í práce, ur enou pro mechanickou konstrukci. Tím by vznikl prototyp funk ního robotnického vysava e jako domácího pomocníka s mo ností budoucích upgrad a mo ných úprav.
Strana 46
2 LEGO
Strana 47
SEZNAM POU ITÝCH SOU ÁSTEK echny pou ité sou ástky jsou vyobrazeny na obrázku 24 a v tabulce 2 jsou v echny tyto sou ástky zapsány. Druh kostky RCX kostka Mechanické dotekové idlo Motor Pásy Nosné pásové kolo Ozubené kolo 24 zub Ozubené kolo 16 zub Kostka 1 x 16 s otvory velikost 1 Kostka 1 x 8 velikost 1/3 edá Kostka 1 x 4 velikost 1/3 edá Kostka 1 x 1 velikost 1/3 edá Kostka 1 x 2 velikost 1/3 lutá Kostka 1 x 2 velikost 1/3 bílá Kostka 1 x 2 velikost 1/3 ervená Kostka 1 x 2 velikost 1/3 erná Kostka 1 x 2 velikost 1/3 edá Kostka 1 x 2 velikost 1 ervená Kostka 1 x 2 velikost 1 erná Kostka 1 x 2 velikost 1 s otvorem ervená Kostka 1 x 2 velikost 1 s otvorem erná Kostka 1 x 2 velikost 1 s dv ma otvory
Tabulka 2
Obrázek 24
Po et 1 3 2 2 4 4 4 4 2 8 4 1 2 4 8 26 1 6 2 8 1
Druh kostky Kostka 2 x 2 velikost 1/3 edá Kostka 2 x 2 velikost 1/3 modrá Kostka 2 x 8 velikost 1/3 zelená Kostka 2 x 8 velikost 1/3 s otvory Kostka 2 x 6 velikost 1/3 s otvory Kostka 2 x 4 velikost 1/3 s otvory Kostka 2 x 2 velikost 1 ervená Kostka 2 x 2 velikost 1 erná T - kus modrý T - kus edý T - kus edý pr hový L - kus 4 x 4 modré Hnací h ídel délky 4,5 cm Hnací h ídel délky 9,5 cm Hnací h ídel délky 7,5 cm Ukon ovací kole ko h ídele tlou Ukon ovací kole ko h ídele tlou P ívodní kabel st edn dlouhý P ívodní kabel krátký P ídr ný distan ní len erný
Seznam v ech pou itých sou ástek
V echny pot ebné sou ástky pro stavbu robota
edá edá edá
ka 3 mm ka 6 mm
Po et 3 1 3 3 4 7 2 4 1 4 2 1 8 2 1 9 10 3 2 4
Strana 48
2 LEGO
Strana 49
SEZNAM POU ITÉ LITERATURY [1]Poli uk, R.: Titulní strana záv re né práce, [2]Poli uk, R.: Instrukce pro autory záv re ných prací, 2006, http://autnt.fme.vutbr.cz/doc/SZZ2006_Instrukce.pdf [3]Lego Mindstorms Constructopedia, 1998 The LEGO Group, ISBN: 1-57056-050-1 [4]FERRARI, Mario; Ferrari, Giulio; Hempel, Ralph : Building Robots With Lego Mindstorms : The Ultimate Tool for Mindstorms Maniacs. 1. vydání: Syngress Publishing, Inc. 2002; ISBN 1-928994-67-9 [5]http://www.cleanmate.cz [6]http://www.robotika.cz [7]http://www.eduxe.cz [8]http://www.cs.uu.nl/people/markov/lego