===== Praktická robotika - cvičení (zima 2020/21) ===== ==== Organizace cvičení ==== * Na začátku semestru budou studenti rozděleni do dvoučlenných skupin. * Každá skupina bude implementovat aplikaci realizující úlohu explorace neznámého prostředí (viz [[zadani|zadání]]). * Jednotlivé podsystémy realizovaného klienta (v rámci samostatných úloh) budou studenti zkoušet nejprve na simulátoru [[http://gazebosim.org/|Gazebo]] a poté na reálných robotech TurtleBot. Zápočet bude udělen na základě následujících kritérií: * chování robotu při závěrečném předvedení cvičícím, * ústní prezentace funkčního algoritmu klienta cvičícímu, * znalost předloženého kódu klienta * K získání zápočtu je nutná pravidelná účast studenta na cvičení (povoleny jsou dvě absence). * Hodnocení ze cvičení je **jedinou** součástí celkového hodnocení studenta (známky z předmětu). {{ :courses:a0m33par:lab.jpg?400 | Lab}} ==== Úloha 1 - Obstacle avoidance ==== * Cílem cvičení je seznámit se se základní robotickou smyčkou, vyčitání senzorů a řízení robotu na úloze vyhýbání se překážkám (obstacle avoidance). * {{ :courses:a0m33par:ex1.zip | Šablona kódu}} * {{ :courses:a0m33par:ex1.pdf | Postup řešení}} * Pro použití s reálným robotem zaměňte při inicializaci robotu příkaz //robot.enableRequestResponseServices();// za příkaz //robot.setAsyncMode();// * {{ :courses:a0m33par:switch.png }} * [[https://www.youtube.com/embed/dJT0tmQoFsY?rel=0&autoplay=1 | Video: motivační ukázka řešení v systému Syrotek]] ==== Úloha 2 - Plánování na binární mřížce ==== * Plánování cesty je jednou ze základních úloh, které musí řešit autonomní mobilní robot při realizaci téměř libovolné úlohy. Cílem cvičení je naimplementovat Dijkstrův algoritmus pro plánování na binární mřížce. * {{ :courses:a0m33par:ex2.zip | Šablona kódu}} * {{ :courses:a0m33par:ex2.pdf | Postup řešení }} * {{ :courses:a0m33par:planning.pdf | O plánování na mřížce}} * Videa {{ :courses:a0m33par:Dijkstra_alg_example.mp4 | Video - Dijkstra na grafu}} {{ :courses:a0m33par:Dijkstra_alg_grid.mp4 | Video - Dijkstra na mřížce}} {{ :courses:a0m33par:Dijkstra_exploration.mp4 | Video - prohledávání Dijkstrovým algoritmem}} ==== Úloha 3 - Prohledávání neznámého prostředí ==== * Prohledávání neznámého prostředí je komplexní úloha zahrnující řadu základních robotických dovedností – tvorbu mapy, plánování, řízení, lokalizaci a vyšší plánování. S některými těmito dovednostmi jste se již seznámili na předchozích cvičeních, další budete v rámci této úlohy implementovat. Výstupem by pak měl být algoritmus navigující robot v neznámém prostředí za účelem vytvoření mapy tohoto prostředí. V této úloze se předpokládá, že pozice robotu je známá. * Postup * Modifikujte mapu prostředí na základě aktuálních dat z laserového dálkoměru. * Najděte v mapě tzv. frontiers a vyberte z nich následující cíl. * K vybranému cíli naplánujte cestu a tuto cestu realizujte driverem SND. * Proveďte experimenty v simulátoru i na reálném systému. * {{ :courses:a0m33par:ex3.zip | Šablona kódu}} * {{ :courses:a0m33par:ex3.pdf | Postup řešení}} * {{ :courses:a0m33par:intro.pdf | Úvod k prohledávání}} * {{ :courses:a0m33par:mapping.pdf | O mapování}} * [[https://www.youtube.com/embed/LmOUyKEAAcI?rel=0&autoplay=1 | Video: ukázka řešení v systému Syrotek]] [[start|Zpět]] na stránky předmětu.