Tutorial: Rozdiel medzi revíziami

Zo stránky 3D liga wiki
Prejsť na navigáciu Prejsť na vyhľadávanie
dBez shrnutí editace
Bez shrnutí editace
Riadok 133: Riadok 133:




=== 2.1. Line-Follower ===
=== 2.2. Line-Follower ===


==== 2.1.1. Zastav na čiare ====
==== 2.1.1. Zostrojte robot Line-Follower ====
 
podľa [[Basic robot - Line-follower|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.
Robot sa rozbehne vpred, neustále sníma podlahu a keď sa dostane na čiernu čiaru, zastane.
Riadok 146: Riadok 150:
* robot sa po zastavení na čiare vráti naspäť približne na rovnaké miesto
* robot sa po zastavení na čiare vráti naspäť približne na rovnaké miesto


==== 2.1.2. Jazda medzi dvomi čiarami ====
==== 2.2.3. Jazda medzi dvomi čiarami ====


Robot sa bude do nekonečna pohybovať medzi dvomi čiarami.
Robot sa bude do nekonečna pohybovať medzi dvomi čiarami.
Riadok 163: Riadok 167:
* robot sa bude medzi čiarami pohybovať náhodnou rýchlosťou  
* robot sa bude medzi čiarami pohybovať náhodnou rýchlosťou  


==== 2.1.3. Uzatvorený útvar ====
==== 2.2.4. Uzatvorený útvar ====


Robot sa bude pohybovať vnútri čiernou čiarou obkoleseného územia.
Robot sa bude pohybovať vnútri čiernou čiarou obkoleseného územia.
Riadok 179: Riadok 183:
* 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áť.  
* 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.1.4. Sledovanie čiary ====
==== 2.2.5. Sledovanie čiary ====


Naprogramujeme jednoduché jazdenie po uzavretej čiare, ktorá sa môže kľukatiť vľavo i vpravo. Napríklad takto:
Naprogramujeme jednoduché jazdenie po uzavretej čiare, ktorá sa môže kľukatiť vľavo i vpravo. Napríklad takto:
Riadok 195: Riadok 199:
* 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)
* 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.1.5. Flexibilnejšie sledovanie čiary ====
==== 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:
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:
Riadok 212: Riadok 216:
* 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  
* 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.1.6. Prechod bludiskom pravidlom pravej ruky ====
==== 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.
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.
Riadok 230: Riadok 234:
* 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
* 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)
* 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 [[Basic robot - Robot Arm|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 ====
<youtube>LExj92AYP50</youtube>
==== 2.3.3. Zaznamenávanie a zopakovanie postupnosti pohybov ====
<youtube>wYFqGFVK4oI</youtube>
==== 2.3.4. Malá ukážka "pick and place" manipulácie ====
<youtube>iXiUMrsuUgM</youtube>
==== 2.3.5. Riadený manipulátor ====
<youtube>hO71R9L-JSc</youtube>
==== 2.3.6. Manipulátor s postupnosťou krokov ====
<youtube>GOySTUEkf5U</youtube>
==== 2.3.7. Výpočet pozície koncového člena (dopredná kinematika) ====
<youtube></youtube>
==== 2.3.8. Navigácia na zadanú pozíciu (spätná kinematika) ====
<youtube width="390" height="700">QWAnyxz87IU</youtube>


__notoc__
__notoc__

Verzia z 17:00, 29. august 2026

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:

  1. robot sa rozbehne vpred
  2. pokračuje, až kým nepríde k prekážke
  3. pred prekážkou zastane
  4. mierne cúvne, aby mal dostatok miesta na otočenie
  5. 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:

  1. 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
  2. pes si udržuje vhodnú vzdialenosť:
    1. ak je pán príliš ďaleko (napr. ďalej ako 40 cm), pes ide rovno za ním (aby mu nebolo smutno)
    2. 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)
    3. 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.

  1. 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
  2. po zachytení predmetu sa neustále otáča vľavo vpravo v takom rozsahu, kým je predmet pred ním viditeľný
  3. 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.

  1. keď robot predmet nevidí, otáča senzorom postupne vľavo-vpravo v plnom rozsahu, až kým predmet neobjaví
  2. ak predmet zbadá - zistí medzi akými rôznymi uhlami je predmet senzorom viditeľnými (rozsah A-B)
  3. z nameraných pozícií A, B vypočíta, kde má predmet približne stred
  4. otočí sa smerom k predmetu
  5. o kúsok sa posunie vpred a pokračuje od kroku 2
  6. 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:

  1. robot sa pohybuje vpred, až dokiaľ krabicu vedľa seba nezachytí
  2. pokračuje vpred rovnobežne so stranou krabice povedľa nej
  3. keď senzorom zachytí koniec krabice, otočí sa smerom k ďalšej strane krabice
  4. kroky 1-3 zopakuje pre všetky štyri strany krabice

Námety:

  1. program určí veľkosť krabice - malá, stredná, veľká a farebným signálom na konci oznámil, akú krabicu obchádzal
  2. 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é.

  1. robot sa rozbehne vpred a senzorom sleduje situáciu na pravej strane cesty
  2. keď objaví voľné miesto, najskôr zistí aké je dlhé
  3. ak je miesto dostatočne veľké, aby mohol zaparkovať, zaparkuje do neho v režime pozdĺžneho parkovania
  4. ak miesto nie je dostatočne veľké, pokračuje krokom 1

Námety:

  1. ak je voľné miesto dostatočne dlhé, nehľadá jeho koniec, ale rovno tam zaparkuje
  2. 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.

  1. robot sa pohybuje vpred až kým senzor vpredu nezachytí prekážku (ktorou mu signalizujeme, že požadujeme zmenu smeru)
  2. robot zastane, pozrie sa senzorom vpravo aj vľavo - či tam je signálna prekážka
  3. ak na niektorej strane signálnu prekážku zachytil, otočí sa zodpovedajúcim smerom a pokračuje krokom 1

Námety:

  1. 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
  2. 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.

  1. robot sa rozbehne vpred
  2. v okamihu, keď sa dostane na čiaru, zastane
  3. chvíľu počká, potom začne cúvať priamo vzad
  4. cúva dovtedy, kým sa senzor nedostane nad druhú čiaru, kde tiež zastane
  5. 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.

  1. robot sa rozbehne vpred
  2. keď senzorom zaznamená okraj tohoto územia, zastane, zacúva a otočí sa do iného smeru
  3. 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:

  1. robot sa pohybuje neustále vpred
  2. 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
  3. 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:

  1. robot sa pohybuje neustále vpred
  2. 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
  3. 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
  4. 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.

  1. 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
  2. na križovatke zistí akého je typu
  3. ak môže zabočiť vpravo, zabočí vpravo a pokračuje krokom 1
  4. inak, ak môže pokračovať rovno, pokračuje rovno a krokom 1
  5. inak, ak môže zabočiť vľavo, zabočí vľavo a pokračuje krokom 1
  6. 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)