Tutorial
Vitajte v tutoriále! Nájdete tu množstvo cvičení a úloh, ktoré môžete so stavebnicou vyriešiť, aby ste sa dôkladne zoznámili s obsahom stavebnice, s princípmi stavania, riadenia a programovania jednoduchých robotov. Veľa zábavy!
1. Elektronické súčiastky
2. Jednoduché roboty
2.1. Prieskumník
2.1.1. Zostrojte robot Prieskumník
podľa návodu na jeho samostatnej stránke a vyskúšajte aj základný program, ktorý je k návodu priložený.
2.1.2. Prieskumník
Naprogramujte pre Prieskumníka prieskumnícky program:
- robot sa rozbehne vpred
- pokračuje, až kým nepríde k prekážke
- pred prekážkou zastane
- mierne cúvne, aby mal dostatok miesta na otočenie
- otočí sa do iného smeru, a znovu sa rozbehne vpred, takže pokračuje krokom 1.
Môže to vyzerať napríklad takto:
Námety na vylepšenie:
- robot sa pred prekážkou bude otáčať do náhodnej strany vľavo/vpravo
- robot sa bude otáčať o náhodný uhol
- robot pred prekážkou najskôr zapípa sirénkou a chvíľu počká, ak prekážka zmizne, pokračuje ďalej rovno, ak nie, tak sa otáča do iného smeru
2.1.3. Robotický pes
Pre Prieskumníka vytvorte takýto program:
- pred robotom sa dopredu-dozadu náhodne pohybuje jeho pán - to môže byť hocijaký predmet, ktorý dobre odráža ultrazvuk a pohybujeme ho priamo rukou
- pes si udržuje vhodnú vzdialenosť:
- ak je pán príliš ďaleko (napr. ďalej ako 40 cm), pes ide rovno za ním (aby mu nebolo smutno)
- ak je pán príliš blízko (napr. bližšie ako 20 cm), pes cúva priamo vzad (aby ho pán nezašliapol)
- ak je pán v ideálnej vzdialenosti (napr. medzi 20 a 40 cm), pes sa nehýbe a čaká na ďalší pánov pohyb
Môžete začať tým, že vyriešite iba pohyb vpred/vzad (agilný pes) a zastavenie na mieste pridáte až neskôr (pes flegmatik).
Námety na vylepšenie:
- pes po zastavení vždy "zašteká" (zapípa sirénkou)
- pes sa bude rozbiehať a zastavovať postupne, nie prudko naraz
- keď sa pán dlhšie (napr. 20 sekúnd) nepohne, pes urobí malý náhodný pohyb vpred alebo vzad
2.1.4. Zameriavač
Cieľom je sledovanie predmetu ultrazvukovým senzorom.
- Senzor sa otáča od jednej krajnej polohy do druhej a naspäť, až kým nezachytí pred sebou nejaký predmet vo vzdialenosti menšej ako napr. 30 cm
- po zachytení predmetu sa neustále otáča vľavo vpravo v takom rozsahu, kým je predmet pred ním viditeľný
- to znamená, ak postupne pomaly predmet pred robotom presúvame na rôzne miesta, senzor sa bude otáčať vždy tak, aby predmet sledoval pred sebou
Mohlo by to vyzerať napríklad nejak takto:
Námety:
- takéto úlohy je šikovné riešiť pomocou stavového automatu: robot sa celý čas nachádza v nejakom stave a podľa situácie mení svoj stav, napr: HĽADÁ_PREDMET_VĽAVO, HĽADÁ_PREDMET_VPRAVO, ZACHYTIL_PREDMET_VPRAVO, ZACHYTIL_PREDMET_VĽAVO.
- skombinujte otáčanie senzora aj s otáčaním robota, aby predmet hľadal nielen v rozsahu otáčania serva pred sebou, ale aj za sebou
2.1.5. Hľadač
Vytvoríme program, aby robot zameral predmet pred sebou, pohol sa k nemu o kúsok bližšie a tento proces opakoval, až kým sa robot nedostane do jeho blízkosti.
- keď robot predmet nevidí, otáča senzorom postupne vľavo-vpravo v plnom rozsahu, až kým predmet neobjaví
- ak predmet zbadá - zistí medzi akými rôznymi uhlami je predmet senzorom viditeľnými (rozsah A-B)
- z nameraných pozícií A, B vypočíta, kde má predmet približne stred
- otočí sa smerom k predmetu
- o kúsok sa posunie vpred a pokračuje od kroku 2
- ak predmet prestane vidieť, pokračuje od kroku 1
Napríklad takto:
Námety:
- keď robot predmet nájde, oznámi to zvukovým alebo vizuálnym signálom a zastane
- robot nebude zastavovať, bude sa pohybovať plynule, ale pomaly a upravovať svoj smer podľa toho, kde predmet zachytí
2.1.6. Obchádzač
Robot sa nachádza v blízkosti krabice s obdĺžnikovým pôdorysom, rovnobežne s jej jednou hranou. Senzorom sa díva celkom do strany, aby počas pohybu krabicu dobre videl. Cieľom je, aby krabicu zo všetkých 4 strán obišiel:
- robot sa pohybuje vpred, až dokiaľ krabicu vedľa seba nezachytí
- pokračuje vpred rovnobežne so stranou krabice povedľa nej
- keď senzorom zachytí koniec krabice, otočí sa smerom k ďalšej strane krabice
- kroky 1-3 zopakuje pre všetky štyri strany krabice
Námety:
- program určí veľkosť krabice - malá, stredná, veľká a farebným signálom na konci oznámil, akú krabicu obchádzal
- robot štartuje na začiatku vedľa krabice, ale krabica sa môže nachádzať aj na ľavej aj na pravej strane - pomocou senzora najskôr zistí, kde je krabica a potom ju obíde buď zľava alebo sprava
2.1.7. Parkovač
Robot zaparkuje na voľné miesto, ak je dostatočne veľké.
- robot sa rozbehne vpred a senzorom sleduje situáciu na pravej strane cesty
- keď objaví voľné miesto, najskôr zistí aké je dlhé
- ak je miesto dostatočne veľké, aby mohol zaparkovať, zaparkuje do neho v režime pozdĺžneho parkovania
- ak miesto nie je dostatočne veľké, pokračuje krokom 1
Námety:
- ak je voľné miesto dostatočne dlhé, nehľadá jeho koniec, ale rovno tam zaparkuje
- robot striedavo sleduje situáciu vpravo a pred sebou (periodicky otáča senzor), aby čelne nenarazil do prekážky pred sebou, ale zároveň monitoroval situáciu s voľnými miestami vpravo
2.1.8. Riadené vozidlo
Naprogramujeme riadenie vozidla pomocou gesta pred ultrazvukovým senzorom.
- robot sa pohybuje vpred až kým senzor vpredu nezachytí prekážku (ktorou mu signalizujeme, že požadujeme zmenu smeru)
- robot zastane, pozrie sa senzorom vpravo aj vľavo - či tam je signálna prekážka
- ak na niektorej strane signálnu prekážku zachytil, otočí sa zodpovedajúcim smerom a pokračuje krokom 1
Námety:
- ak sa po preskúmaní situácie vpravo a vľavo pred robotom stále nachádza signálna prekážka, robot sa otočí vzad
- robot si od štartu postupne zapamätáva akou cestou išiel (čas a smery otočenia) a keď mu dáme signál (prekážka vľavo aj vpravo), zastane, môžeme ho preložiť na štart a prekážkou znovu odštartovať, robot zopakuje rovnakú zapamätanú cestu
2.2. Line-Follower
2.1.1. Zostrojte robot Line-Follower
podľa návodu na jeho samostatnej stránke a vyskúšajte aj základný program, ktorý je k návodu priložený.
2.2.2. Zastav na čiare
Robot sa rozbehne vpred, neustále sníma podlahu a keď sa dostane na čiernu čiaru, zastane.
Námety:
- robot na čiare zastaví na chvíľu, potom sa znovu rozbehne a pokračuje na ďalšiu čiaru, kde zasa zastaví, atď.
- robot sa po zastavení na čiare vráti naspäť približne na rovnaké miesto
2.2.3. Jazda medzi dvomi čiarami
Robot sa bude do nekonečna pohybovať medzi dvomi čiarami.
- robot sa rozbehne vpred
- v okamihu, keď sa dostane na čiaru, zastane
- chvíľu počká, potom začne cúvať priamo vzad
- cúva dovtedy, kým sa senzor nedostane nad druhú čiaru, kde tiež zastane
- po malej chvíli pokračuje krokom 1.
Námety:
- robot sa bude pohybovať medzi tromi (štyrmi, ...) čiarami, pričom na stredných čiarach ani nezastaví, bude zastavovať až na krajných čiarach, kde vždy zmení smer pohybu
- robot sa bude medzi čiarami pohybovať náhodnou rýchlosťou
2.2.4. Uzatvorený útvar
Robot sa bude pohybovať vnútri čiernou čiarou obkoleseného územia.
- robot sa rozbehne vpred
- keď senzorom zaznamená okraj tohoto územia, zastane, zacúva a otočí sa do iného smeru
- pokračuje krokom 1
Námety:
- robot sa bude otáčať do náhodnej strany
- robot sa bude otáčať o náhodne veľký uhol
- niekde vnútri ohraničeného územia sa nachádza väčšia čierna plocha - ktorá predstavuje cieľ jeho hľadania, robot po nájdení svojho cieľa zastane o stane stáť.
2.2.5. Sledovanie čiary
Naprogramujeme jednoduché jazdenie po uzavretej čiare, ktorá sa môže kľukatiť vľavo i vpravo. Napríklad takto:
- robot sa pohybuje neustále vpred
- ak zachytí čiaru niektorým z dvoch krajných snímačov na jednej alebo druhej strane (čiže začne vybočovať z dráhy), pohybuje sa vpred spolu s otáčaním, ktoré ho dostáva naspäť do stredu čiary
- inak ide rovno
Námety:
- vyskúšajte naprogramovať jazdenie po čiare využitím iba jedného z 8 snímačov senzora
- niekde na čiare urobte štart (priečna hrubšia čiara, ktorú zachytia všetky senzory naraz) a naprogramujte, aby robot prešiel jedno kolečko a zmeral jeho čas
- priečne čiary môžete urobiť na viacerých miestach a robot na nich bude na malú chvíľu zastavovať (trať električky so zastávkami)
2.2.6. Flexibilnejšie sledovanie čiary
V prípade, že sú na dráhe menej prudké aj prudšie zákruty, predchádzajúci program buď vyletí na prudkých zákrutách, alebo bude na miernych zákrutách zbytočne veľa točiť. V tomto cvičení vytvoríme program, ktorý bude zatáčať rôzne prudko, podľa toho ako prudko zatáča zákruta. Napríklad:
- robot sa pohybuje neustále vpred
- ak zachytí čiaru niektorým krajným snímačom, ktorý nie je celkom na kraji, ale susedí s ním - začne sa mierne otáčať tak, aby sa dostal naspäť do stredu čiary
- v prudších zákrutách to nebude stačiť a čiaru postupne zachytí niektorý snímač, ktorý je celkom na okraji senzora, vtedy sa robot začne točiť prudšie
- ak žiaden zo štyroch krajných snímačov čiaru nezachytil, robot sa pohybuje priamo vpred
Námety:
- vyskúšajte, ako sa robot správa na ostrých (napr. kolmých pravouhlých zákrutách) a nalaďte program tak, aby ich tiež zvládol
- na dráhu zaraďte rozvetvenie, ktoré sa neskôr zasa spojí, naprogramujte, aby si robot spoľahlivo na striedačku vyberal raz ľavú a raz pravú vetvu a spoľahlivo po spojení vetiev pokračoval ďalej
- na niektorom mieste vytvorte prerušenie čiary - zabezpečte, aby robot cez miesto plynule prešiel a pokračoval na čiare ďalej, neskôr pridajte, aby pokračovanie čiary robot našiel aj vtedy, ak sa napríklad nadchádza v zákrute
2.2.7. Prechod bludiskom pravidlom pravej ruky
V tejto technicky náročnej úlohe naprogramujeme robota, aby sa dokázal pohybovať v bludisku - ktoré má jeden vchod, ktorý je zároveň jeho východom. V bludisku budú iba kolmé "chodby" vyznačené čiernou čiarou na podlahe. Základom sú tri funkcie: 1) rozpoznanie typu križovatky - tri rôzne križovatky v tvare T, dve v tvare L, križovatka zo 4 cestami a slepá ulička (spolu 7 rôznych typov križovatiek), 2) zatočenie na križovatke vpravo a 3) zatočenie na križovatke vľavo.
- ak je robot na rovnej ceste, pokračuje priamo vpred až po ďalšiu križovatku, pričom využíva senzory na to, aby z cesty nezišiel - mierne koriguje svoj smer podľa potreby
- na križovatke zistí akého je typu
- ak môže zabočiť vpravo, zabočí vpravo a pokračuje krokom 1
- inak, ak môže pokračovať rovno, pokračuje rovno a krokom 1
- inak, ak môže zabočiť vľavo, zabočí vľavo a pokračuje krokom 1
- inak - je v slepej uličke, otočí sa o 180 stupňov a pokračuje krokom 1
Námety:
- upravte program tak, aby si namiesto pravidla pravej ruky na križovatke vybral náhodné pokračovanie - ale iba smerom, ktorým nejaká cesta pokračuje
- pridajte detekciu cieľa - môže byť označený napríklad väčšou obdĺžnikovou plochou, keď sa na ňu konečne dostane, robot a program zastane
- keď sa robot dostane do cieľa, potom prejde bludisko ešte raz pravidlom ľavej ruky a zistí, ktorá cesta je kratšia a oznámi to (napr. farbou svojej RGB LED)
2.3. Rameno
2.3.1. Zostrojte robot Rameno
Poskladajte robotické rameno podľa návodu na jeho samostatnej stránke a vyskúšajte aj základný program, ktorý je k návodu priložený.
2.3.2. Riadenie ramena joystickom a dotykovými senzormi
2.3.3. Zaznamenávanie a zopakovanie postupnosti pohybov
2.3.4. Malá ukážka "pick and place" manipulácie
2.3.5. Riadený manipulátor
2.3.6. Manipulátor s postupnosťou krokov
2.3.7. Výpočet pozície koncového člena (dopredná kinematika)
'"`UNIQ--youtube-00000012-QINU`"'
2.3.8. Navigácia na zadanú pozíciu (spätná kinematika)