Riešenie možno odovzdávať do: 25.06.2022 10:22:59
1. Úloha: Elipsa
Elipsa je taká množina bodov, ktorých súčet vzdialeností od dvoch ohnísk F1 a F2 je rovnaký.
Obrázok: Elipsa, vytvoril Ag2gaeh, CC BY-SA 4.0
Elipsu preto môžeme nakresliť ceruzkou postupne tak, že špagát upevníme do bodov F1 a F2 a ceruzku do tretieho bodu medzi ne tak, aby bol špagát vždy napnutý.
Úloha pre zajace: Zostrojte robota, ktorý sa dokáže pohybovať po elipse. Špagát je upevnený v ohniskách elipsy, je napnutý a voľne uchytený na robotovi a limituje pohyb robota. Robot sa snaží pohybovať vpred, ale ak sa nedá, umožní primerane veľa otočenia smerom vľavo prípadne vpravo. Pomôže diferenciál?
Úloha pre tigre: Zostrojte robota, ktorý sa dokáže pohybovať po elipse a zároveň ju pritom kreslí. Dbajte na to, aby ceruzka/pero bolo umiestnené čo najblilžšie miestu, ktoré napína špagát. Robot zastane po nakreslení elipsy a oznámi ako veľmi je jej tvar natiahnutý.
2. Úloha: Učiaci sa robot
Robot je preto robotom a nie obyčajným strojom, lebo ho môžeme naučiť robiť vždy niečo (aspoň trochu) iné. Aj roboty, ktoré robia stále to isté (napr. striekajú lak na karosériu automobilu), je možné naučiť nový postup, keď sa tvar karosérie zmení. Spôsoby, akými sa roboty môžu naučiť robiť niečo nové, sú rôzne. Jedna z možností je, že inžinier do nich vloží nový program. Iná možnosť je, že operátor robota naučí nové pohyby pomocou nejakej konzoly, joysticku a podobne. A najpokročilejšia možnosť je, ak sa robot sám dokáže niečo nové naučiť.
Úloha pre zajace: Zostrojte jednoduchého robota, ktorý má aspoň dva senzory. Pre každý zo senzorov bude robot rozlišovať len dve hodnoty - napríklad: prekážka je na dohľad/prekážka je ďaleko, alebo vidí čiernu čiaru/nevidí nič. Po zapnutí programu sa robot bude najskôr učiť: operátor opakovane robota položí do nejakej zvláštnej situácie - napr. senzor na meranie odrazeného svetla vidí čiaru a senzor na meranie vzdialenosti nevidí prekážku a predtým ako zaznie zvukový signál, pomocou tlačidla (napr. šípka vpravo/šípka vľavo/obe šípky) robotovi oznámi, ako sa v tej situácii má robot zachovať (napr. odbočiť vpravo, odbočiť vľavo, alebo zastaviť). Následne program ponúkne operátorovi zadať ďalšiu kombináciu, alebo ukončiť fázu učenia. Pre nezadané situácie sa robot bude pohybovať rovno. Po ukončení učenia robota operátor položí na miesto, kde má naučenú činnosť vykonávať a po stlačení tlačidla sa naučené správanie aktivuje. Naučte takýmto spôsobom robota aspoň tri rôzne správania: napríklad sleduje čiaru z pravej strany, sleduje čiaru z ľavej strany, vyhýba sa prekážkam a podobne.
Príklad: Robot má dva senzory na čiaru a jeden senzor na prekážku. Operátor položí robota ľavým senzorom na čiaru a označí túto situáciu ako pohyb vľavo, operátor položí robota pravým senzorom na čiaru a označí túto situáciu ako pohyb vpravo - výsledok: robot sa naučil sledovať čiaru. Druhý pokus: operátor položí robota pred prekážku a označí túto situáciu, že má zatočiť vpravo. Výsledok: robot sa naučil vyhýbať prekážkam.
Údaje, ktoré si robot pamätal (jedna z možností):
na začiatku učenia: po naučení - prípad 1: po naučení - prípad 2:
Ľ P V akcia
----------------------------------------------------------------------------------------------
0 0 0 vpred vpred vpred
0 0 1 vpred vpred vpravo
0 1 0 vpred vpravo vpred
0 1 1 vpred vpred vpred
1 0 0 vpred vľavo vpred
1 0 1 vpred vpred vpred
1 1 0 vpred vpred vpred
1 1 1 vpred vpred vpred
Ľ - ľavý senzor na čiaru, P - pravý senzor na čiaru, V - senzor na meranie vzdialenosti.
Úloha pre tigre: Zostrojte jednoduchého robota, ktorý má aspoň tri senzory. Pre každý zo senzorov bude rozlišovať dve, alebo niekoľko málo (3,4,...?) rôznych hodnôt. Po zapnutí programu je robota možné riadiť cez BT na diaľku: robot sa pohybuje vpred a keď dostane nejaký povel - zatočiť vpravo alebo vľavo, prípadne zastať, tak daný povel vykoná. Vždy keď príde nejaký povel, okamžite zosníma hodnoty všetkých senzorov a do frekvenčnej tabuľky pre danú situáciu pridá jednotku. Fáza učenia buď trvá nejaký vopred stanovený čas, alebo ju operátor ukončí nejakým ďalším príkazom. Následne sa spustí naučené správanie, v ktorom bude robot neustále snímať hodnoty všetkých senzorov a svoju akciu určí podľa frekvenčnej tabuľky - vyberie tú akciu, ktorú pre danú situáciu vo fáze učenia operátor požadoval najčastejšie.
Poznámka: v prípade potreby môžete uvedený postup učenia vylepšiť (napr. pri operátorovom vstupe uložiť desiatku a trikrát za sekundu zmerať stav senzorov a pridať jednotku pre pohyb vpred) - tvorivosti sa medze nekladú.
Príklad: Na robotovi sú namontované tri ultrazvukové senzory - jeden vpredu, dva na stranách vľavo a vpravo. V prvom prípade operátor riadi robota tak, aby robot obchádzal prekážku v smere hodinových ručičiek, v druhom prípade ho naučí obchádzať prekážku proti smeru hodinových ručičiek, v treťom prípade ho naučí jazdiť za prekážkou.
Údaje, ktoré si robot pamätal na konci učenia v prvom prípade - frekvenčná tabuľka (jedna z možností):
senozory akcia
---------------------------------------------
Ľ P S vpred vľavo vpravo
---------------------------------------------
0 0 0 1 0 5
0 0 1 1 3 1
0 1 0 2 1 0
0 1 1 0 4 1
1 0 0 0 0 0
1 0 1 0 0 0
1 1 0 0 0 0
1 1 1 0 0 0
Video: robot sa naučí najskôr tlačit predmety a potom obchádzať prekážky.
Má ten istý program, zmenil sa len vstup operátora vo fáze učenia. Zdroj: Bayesian Programming.