Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie robotów mobilnych
Tok studiów:
2019/2020
Kod:
EAiR-1-715-s
Wydział:
Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Automatyka i Robotyka
Semestr:
7
Profil:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma studiów:
Stacjonarne
Strona www:
 
Prowadzący moduł:
Więckowski Łukasz (wieckow@agh.edu.pl)
Treści programowe zapewniające uzyskanie efektów uczenia się dla modułu zajęć

Przedmiot stanowi wprowadzenie do problematyki programowania robotów mobilnych z wykorzystaniem popularnych języków skryptowych tj. języka Python oraz środowiska Matlab. Ponadto moduł ma na celu zaprezentowanie popularnego w robotyce mobilnej środowiska do programowania robotów, jakim jest ROS (ang. Robot Operating system).

Opis efektów uczenia się dla modułu zajęć
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Powiązania z KEU Sposób weryfikacji i oceny efektów uczenia się osiągniętych przez studenta w ramach poszczególnych form zajęć i dla całego modułu zajęć
Wiedza: zna i rozumie
M_W001 Zna architekturę sprzętowa robotów mobilnych oraz orientuje się w stanie obecnym i trendach rozwoju robotyki. AiR1A_W05 Kolokwium
M_W002 Zna i rozumie zasady programowania oraz użycia środowisk deweloperskich dla robotów mobilnych. AiR1A_W05, AiR1A_W04, AiR1A_W03 Kolokwium
M_W003 Zna i rozumie zasady tworzenia układów sterowania dla robotów mobilnych oraz sposoby ich programowania. AiR1A_W01, AiR1A_W02 Kolokwium
Umiejętności: potrafi
M_U001 Potrafi zrealizować oprogramowanie dla wybranego modułu funkcyjnego robota mobilnego. AiR1A_U06 Aktywność na zajęciach,
Sprawozdanie,
Wykonanie ćwiczeń laboratoryjnych
M_U002 Potrafi zaimplementować i przetestować wybraną metodę wysokopoziomową dla robota mobilnego np. planowanie trajektorii ruchu, rozwiązanie zadania lokalizacji, zadanie wykrywanie oraz omijania przeszkód w zmiennym otoczeniu, etc. AiR1A_U08, AiR1A_U07 Aktywność na zajęciach,
Wykonanie ćwiczeń laboratoryjnych,
Sprawozdanie
Kompetencje społeczne: jest gotów do
M_K001 Potrafi pracować w zespole. Ma świadomość odpowiedzialności za pracę własną i zespołu, a także jest gotowy podporządkować się zasadom pracy zespołowej. AiR1A_K03 Wykonanie ćwiczeń laboratoryjnych
Liczba godzin zajęć w ramach poszczególnych form zajęć:
SUMA (godz.)
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
28 14 0 14 0 0 0 0 0 0 0 0
Matryca kierunkowych efektów uczenia się w odniesieniu do form zajęć i sposobu zaliczenia, które pozwalają na ich uzyskanie
Kod MEU Student, który zaliczył moduł zajęć zna i rozumie/potrafi/jest gotów do Forma zajęć dydaktycznych
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Prace kontr. przejść.
Lektorat
Wiedza
M_W001 Zna architekturę sprzętowa robotów mobilnych oraz orientuje się w stanie obecnym i trendach rozwoju robotyki. + - + - - - - - - - -
M_W002 Zna i rozumie zasady programowania oraz użycia środowisk deweloperskich dla robotów mobilnych. + - + - - - - - - - -
M_W003 Zna i rozumie zasady tworzenia układów sterowania dla robotów mobilnych oraz sposoby ich programowania. + - + - - - - - - - -
Umiejętności
M_U001 Potrafi zrealizować oprogramowanie dla wybranego modułu funkcyjnego robota mobilnego. - - + - - - - - - - -
M_U002 Potrafi zaimplementować i przetestować wybraną metodę wysokopoziomową dla robota mobilnego np. planowanie trajektorii ruchu, rozwiązanie zadania lokalizacji, zadanie wykrywanie oraz omijania przeszkód w zmiennym otoczeniu, etc. - - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi pracować w zespole. Ma świadomość odpowiedzialności za pracę własną i zespołu, a także jest gotowy podporządkować się zasadom pracy zespołowej. - - + - - - - - - - -
Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 75 godz
Punkty ECTS za moduł 3 ECTS
Udział w zajęciach dydaktycznych/praktyka 28 godz
Przygotowanie do zajęć 10 godz
przygotowanie projektu, prezentacji, pracy pisemnej, sprawozdania 10 godz
Samodzielne studiowanie tematyki zajęć 25 godz
Egzamin lub kolokwium zaliczeniowe 2 godz
Szczegółowe treści kształcenia w ramach poszczególnych form zajęć (szczegółowy program wykładów i pozostałych zajęć)
Wykład (14h):

1. Wprowadzenie: Wstęp do problematyki programowania robotów mobilnych; Przegląd języków programowania, środowisk programowania oraz framework-ów.
2. Platformy sprzętowe dla robota mobilnego.
3. Podstawy ROS: Terminologia; Komponenty; Komendy; Narzędzia; Zasady wymiany informacji; Ekosystem ROS.
4. Podstawy programowania w ROS: Pakiety; Węzły; Tematy i wiadomości; Usługi; Organizacja wymiany danych w usługach. Zasady publikacji i subskrypcji danych w węzłach.
5. Programowanie podsystemów robota mobilnego z wykorzystaniem języka Python i systemu ROS.
6. Rozpoznawanie i synteza mowy (przykłady implementacji).
7. Programowanie sensorów wizji (przykłady implementacji).
8. Zastosowanie mechanizmów sztucznej inteligencji w robocie Turtlebot za pośrednictwem języka Python.
9. Środowisko symulacyjne ROS/Gazebo i symulator TURTLESIM.
10. Wsparcie dla ROS w innych środowiskach symulacyjnych (Matlab).

Ćwiczenia laboratoryjne (14h):

Laboratorium składa się z cyklu zajęć problemowych, na których realizowania są zadania wykonania prostego oprogramowania sterującego dla robotów mobilnych kołowych klasy (2,0) tj., Khepera oraz Turtlebot lub z użyciem robota kroczącego – Hexor.

1. Tematy ćwiczeń:
ĆW 1: Podstawy programowania ROS: (Topics, Services, Actions and Nodes).
ĆW.2: Symulacja robota klasy (2,0) w środowisku ROS/Gazebo.
ĆW.3: Implementacja sterownika dla systemu lokomocji robota klasy (2,0).
ĆW.4: Percepcja oraz sensoryka w środowisku ROS: Lokalizacja oraz estymacja pozycji robota z wykorzystaniem platformy inercyjnej IMU.
ĆW.5: Lokalizacja oraz budowa map z pakietem ROS/Gmapping. Praca z danymi pochodzących ze skanerów laserowych typu 2D.
Ćw 6: Zastosowanie sztucznych sieci neuronowych do rozwiązywania zadań robotyki mobilnej: Unikanie przeszkód (Deep Q-Networks); Rozpoznawanie obiektów (Kereas Tensorflow).

2. Układ zajęć:
- zajęcia wprowadzające: Instalacja narzędzi programowych oraz omówienie platform sprzętowych, niezbędnych do przeprowadzenia ćwiczeń praktycznych (2h)
- seria 6 ćwiczeń (6 * 2h)
Ćwiczenia odbywają się w trybie rotacyjnym (wszystkie ćwiczenia na raz, każdy zespół robi inne ćwiczenie).

Pozostałe informacje
Metody i techniki kształcenia:
  • Wykład: Treści prezentowane na wykładzie są przekazywane w formie prezentacji multimedialnej w połączeniu z klasycznym wykładem tablicowym wzbogaconymi o pokazy odnoszące się do prezentowanych zagadnień.
  • Ćwiczenia laboratoryjne: W trakcie zajęć laboratoryjnych studenci samodzielnie rozwiązują zadany problem praktyczny, dobierając odpowiednie narzędzia. Prowadzący stymuluje grupę do refleksji nad problemem, tak by otrzymane wyniki miały wysoką wartość merytoryczną.
Warunki i sposób zaliczenia poszczególnych form zajęć, w tym zasady zaliczeń poprawkowych, a także warunki dopuszczenia do egzaminu:

Zaliczenie przedmiotu:
Warunkiem zaliczenia przedmiotu jest: pozytywne zaliczenie laboratorium (oddanie sprawozdań) oraz zaliczenie kolokwium końcowego.

Zaliczenie laboratorium:
Obowiązuje system punktowy. W trakcie semestru można zdobyć 100 punktów:
- 60p: za kolokwium końcowe z zakresu ćwiczeń oraz wykładów.
- 30p: za sprawozdania (oceniana jest skrupulatność wykonania powierzonych zadań)
- 10p: za szczególną aktywność
Ocena zaliczeniowa z laboratorium jest wyliczana na podstawie punktów zgodnie z Regulaminem Studiów.
Szczegółowe warunki zaliczenia określa “Regulamin – zasady oceniania i zaliczenia”, który omawiany jest na pierwszych zajęciach laboratoryjnych.

Kolokwium końcowe odbędzie się w formie pisemnej i będzie obejmować wiedzę przekazaną na wykładach oraz ćwiczeniach laboratoryjnych.

Zasady udziału w zajęciach:
  • Wykład:
    – Obecność obowiązkowa: Nie
    – Zasady udziału w zajęciach: Studenci uczestniczą w zajęciach poznając kolejne treści nauczania zgodnie z syllabusem przedmiotu. Studenci winni na bieżąco zadawać pytania i wyjaśniać wątpliwości. Rejestracja audiowizualna wykładu wymaga zgody prowadzącego.
  • Ćwiczenia laboratoryjne:
    – Obecność obowiązkowa: Tak
    – Zasady udziału w zajęciach: Studenci wykonują ćwiczenia laboratoryjne zgodnie z materiałami udostępnionymi przez prowadzącego. Student jest zobowiązany do przygotowania się w przedmiocie wykonywanego ćwiczenia, co może zostać zweryfikowane kolokwium w formie ustnej lub pisemnej. Zaliczenie zajęć odbywa się na podstawie zaprezentowania rozwiązania postawionego problemu.
Sposób obliczania oceny końcowej:

Ocenę końcową ustala się zgodnie z regulaminem studiów tj: według następującego wzoru:
ŚR ≥ 4.75 ocena 5,0
4.75 > ŚR ≥ 4.25 ocena 4,5
4.25 > ŚR ≥ 3.75 ocena 4,0
3.75 > ŚR ≥ 3.25 ocena 3,5
3.25 > ŚR ≥ 3.00 ocena 3,0

Sposób i tryb wyrównywania zaległości powstałych wskutek nieobecności studenta na zajęciach:

Obecność na zajęciach laboratoryjnych jest obowiązkowa. Nieobecności na zajęciach i ich usprawiedliwianie będzie traktowane zgodnie z Regulaminem Studiów (maksymalnie 1 nieusprawiedliwione nieobecności w semestrze). Dwie oraz większa liczba nieobecności nieusprawiedliwionych skutkują brakiem zaliczenia. Jako usprawiedliwienie nieobecności uwzględniane jest zwolnienie lekarskie lub oficjalne pismo dotyczące udziału w konferencjach, stażach, zawodach sportowych itp. potwierdzone przez Rektora lub Dziekana.
Ćwiczenie, na którym student był nieobecny usprawiedliwiony, bądź nieusprawiedliwiony należy odrobić najdalej do końca zajęć semestru z inną grupą ćwiczeniową, lub w terminie rezerwowym zgodnie z harmonogramem. Maksymalna liczebność zespołu ćwiczeniowego w trakcie laboratorium wynosi 3 osoby plus
ewentualnie 1 osoba odrabiająca zajęcia.

Wymagania wstępne i dodatkowe, z uwzględnieniem sekwencyjności modułów :

Ugruntowane wiadomości z podstaw automatyki, robotyki mobilnej (EAiR-1-605-s). Umiejętność programowania w językach skryptowych (Matlab/ Python) oraz ANSI C, C++

Zalecana literatura i pomoce naukowe:

1. Siegwart R., Nourbakhsh I. R., Scaramuzza D., Introduction to Autonomous Mobile Robots (Intelligent Robotics and Autonomous Agents series),2011.
2. Cook G., Mobile Robots: Navigation, Control and Remote Sensing, 2011.
3. Dulęba I: Metody i algorytmy planowania ruchu robotów mobilnych i manipulacyjnych; Akademicka Oficyna Wydawnicza EXIT, Warszawa 2001.
4. M. O’Kane. A Gentle Introduction to ROS. Independently published, 2013.
5. A. Martinez i E. Fernandez. Learning ROS for Robotics Programming. A practical, instructive,
and comprehensive guide to introduce yourself to ROS, the top – notch, leading robotics framework. Packt Publishing 2013.
6. YoonSeok Pyo, HanCheol Cho, RyuWoon Jung, TaeHoon Lim – ROS Robot Programming, ROBOTIS Co.,Ltd.2017

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

1. Ł.WIĘCKOWSKI – Energy management and control problems for autonomous mobile robot powered by solar cells. W: KraSyNT 2016, Krakow Symposium on Science and Technology : Kraków Wieliczka, Poland September 26, 2016 / ed. Agata Nawrocka, Stanisław Flaga, ISBN: 978-83-64755-25-5. — S. 9
2. Łukasz WIĘCKOWSKI, Zbigniew St. SOBKÓW, Maciej GARBACZ, Mieczysław ZACZYK.,Vision based system for position recognition of small mobile robots,. Image Processing & Communications : an International Journal ; ISSN 1425-140X. — 2012 vol. 17 no. 4, s. 313–318. — Bibliogr. s. 317–318, Abstr.
3. Ł.WIĘCKOWSKI, J. A. CHOJNACKI, J. TENETA., Intelligent power management algorithms for solar-powered, autonomous mobile robot. W: Renewable Energy 2010 [Dokument elektroniczny] : advanced technology paths to global sustainability : joint with 4th international solar energy society conference, Asia Pacific Region :27 June–2 July, 2010, Yokohama, Japan : proceedings
4. J. A.CHOJNACKI, J. TENETA, Ł. WIĘCKOWSKI, A. Kowalczyk, J. Kulesza., Solar powered, Linux brained autonomous mobile robot., W: 24th European photovoltaic solar energy conference and exhibition : conference 21–25 September 2009.

Informacje dodatkowe:

Ćwiczenia realizowane są z pomocą środowisk symulacyjnych oraz rzeczywistych jednostek mobilnych oraz stanowisk badawczych. W procesie kształcenia wykorzystujemy metodę PBL (Problem Based Learning) czerpiąc przykłady z rzeczywistych projektów.