Logo Politechniki Łódzkiej Logo IIS Logo ISA

Inteligentne Systemy Autonomiczne


Wejdź do świata nowych możliwości

Opis bloku


Systemy obdarzone inteligencją to w dniu dzisiejszym standard techniki, a umiejętność ich tworzenia to przepustka do przyszłości dla inżyniera informatyka. Blok „Inteligentne systemy autonomiczne” jest okazją do zdobycia wiedzy i umiejętności w zakresie opracowywania i implementacji algorytmów sztucznej inteligencji, dokonywaną przede wszystkim w świecie rzeczywistych obiektów – autonomicznych pojazdów, bionicznych stworzeń, systemów monitorowania i autoryzacji, wdrażających koncepcje i marzenia budowy inteligentnych maszyn lub Internetu Rzeczy (Internet of Things – IoT).

Jedynym, oprócz umiejętności programowania, wymaganiem wstępnym dla zainteresowanych wyborem bloku jest zaciekawienie rozważaną tematyką: wiedza na temat tego jak budować urządzenia (np. poruszające się pojazdy), jak wyposażać je w zmysły (wzrok, słuch i inne) oraz jak sprawić by się uczyły i myślały, zostanie wprowadzona od poziomu podstawowego. Osiągnięcie zakładanych, ambitnych celów w krótkim czasie jest możliwe dzięki ścisłemu ukierunkowaniu prezentowanego materiału: w treściach wykładu nie ma informacji niepotrzebnych, a zajęcia laboratoryjne będą miały formułę jednego projektu, realizowanego przez dwa semestry, stopniowo wzbogacanego o treści przedstawiane w ramach prowadzonych wykładów. Życzymy inteligentnego wyboru :) Zapraszamy

Zaczynamy?!

Przedmioty


Programowanie systemów autonomicznych

Codziennie stykamy się z informatyką. Robimy to sprawdzając rano pocztę, słuchając ulubionej muzyki podczas biegania czy szukając w Internecie interesujących nas treści. Drukując faktury, wysyłając SMSa czy używając komórki do nawigacji w mieście również wykorzystujemy informatykę – szeroko pojęte przetwarzanie informacji. W tym terminie mieści się renderowanie animacji na podstawie modelu przestrzennego, określanie pozycji systemem GPS na podstawie pomiaru czasu propagacji fali radiowej czy reakcja systemu ABS na utratę przyczepności.

Informatyka oznacza przetwarzanie informacji. Jednak najbardziej wyrafinowany algorytm pozostanie tylko ideą, jeśli nie zbudujemy fizycznego urządzenia, które będzie w stanie odpowiednie operacje realizować. Urządzeniem tym jest komputer. Pojęcie to nie ogranicza się jedynie do blaszaków stojących na biurku, smartfonów czy tabletów. Komputery można znaleźć w lodówkach, samochodach czy liniach produkcyjnych jako sterowniki PLC. I to nie jeden czy dwa ale setki, połączone ze sobą zgodnie z potrzebami i pomysłami ich konstruktorów.

W takiego właśnie konstruktora wcieli się student w ramach przedmiotu „Programowanie urządzeń autonomicznych”. Wykorzystując dostępne narzędzia i materiały każdy student nabędzie umiejętność budowy i programowania prostych urządzeń autonomicznych, które za pomocą autorskich algorytmów przełożą je na fizyczne akcje. Oznacza to budowę i oprogramowanie np. platformy jezdnej omijającej przeszkody czy manipulatora przekładającego obiekty z jednego miejsca w inne.

Zajęcie będą realizowane z wykorzystaniem niezwykle popularnych modułów mikroprocesorowych Arduino oraz Raspberry Pi wraz z dodatkowymi akcesoriami, pozwalającymi na interakcję z otoczeniem. Moduły te przetwarzają informacje z czujników bądź od samego operatora na informacje wykorzystywane np. przez napęd jezdny platformy. Samo przetwarzanie będzie się odbywać będzie na podstawie algorytmów opracowanych przez studenta.

Wykorzystywane języki programowania to C++ w przypadku Arduino oraz Java/Python/C++ w przypadku Raspberry Pi z systemem Linux. Wiedza i umiejętności zdobyte przez studenta będą rozwijane na kolejnych przedmiotach bloku (Automatyczne rozumienie obrazów i sygnałów i Systemy Inteligentne), w których położono nacisk na inteligentne przetwarzanie informacji/sygnałów w urządzeniach autonomicznych.

Automatyczne rozumienie obrazów i sygnałów

System komputerowy, aby mógł samodzielnie wykonywać zadania, musi ‘rozumieć’ dane, które do niego docierają w postaci obrazów, wskazań sensorów czy dźwięków. Zrozumienie danych to określenie zawartej w nich treści, niezbędne dla podejmowania decyzji i określania dalszych działań. Ponieważ najbogatszym źródłem danych są obrazy, głównym obszarem tematycznym kursu będzie przedstawienie metod analizy obrazów. Dzięki prostym do wykorzystania (choć realizującym bardzo zaawansowane algorytmy) narzędziom programistycznym, każdy student będzie w stanie szybko zbudować w pełni funkcjonalną aplikację, korzystającą z obrazów i realizującą funkcję bazującą na wyniku ich analizy (np. odpowiednia reakcja na wykrycie tablicy rejestracyjnej, znaku drogowego, twarzy lub sylwetki człowieka).

Narzędziem programistycznym wspierającym naukę i wdrażanie metod przetwarzania obrazów będzie biblioteka OpenCV, która zostanie zintegrowana z wybranym przez studenta środowiskiem programowym (do wyboru JAVA lub Python lub C++).

Prezentowana wiedza będzie ukierunkowana praktycznie: urządzenia wykonane w ramach laboratorium z przedmiotu „Programowanie urządzeń autonomicznych” (platformy kołowe i inne) będą rozbudowane o dodanie modułu analizy obrazu. Oprócz komputera PC, środowiskiem implementacji algorytmów analizy obrazu będzie również platforma Raspberry Pi, wyposażona w kamerę i pracująca pod nadzorem systemu operacyjnego Linux (co pozwoli na łatwe uruchamianie programów tworzonych i testowanych na zwykłych komputerach PC).

Systemy inteligentne

Przedmiot Systemy inteligentne stanowi rozszerzenie przedmiotu Podstawy sztucznej inteligencji prowadzonego dla wszystkich studentów kierunku informatyka. Celem tego przedmiotu jest pogłębienie wiedzy i umiejętności w zakresie metod inteligencji obliczeniowej, w tym przetwarzania informacji nieprecyzyjnych i realizacji mechanizmów uczenia się, w kontekście realizacji funkcji niezbędnych dla autonomicznej pracy systemów i urządzeń. Nacisk położono na zrozumienie i skuteczne wykorzystywanie takich pojęć jak zmienna lingwistyczna, ziarnistość informacji, wnioskowanie przybliżone czy zdarzenie rozmyte. Są to formalne odpowiedniki pojęć i mechanizmów wykorzystywanych w naturalny sposób przez człowieka zarówno na etapie postrzegania świata rzeczywistego jak również w trakcie podejmowania decyzji w zmieniającym się środowisku. Budowa sprawnych obiektów autonomicznych wymaga więc umiejętności implementacji adekwatnych metod tego typu w systemach komputerowych zarządzających takimi obiektami..

Student pozna zarówno ogólne podstawy omawianych metod jak i nauczy się je implementować w ogólnodostępnych narzędziach programistycznych. Wiedza zdobyta w tym przedmiocie będzie wykorzystana do rozbudowy funkcjonalności urządzeń wykonanych w ramach laboratorium z przedmiotu „Programowanie urządzeń autonomicznych”. Pozwoli to miedzy innymi implementować algorytmy planowania ruchu obiektu przy różnych, w tym nieprecyzyjnych ograniczeniach i kryteriach optymalności; czy algorytmy unikania kolizji obiektu autonomicznego z przeszkodami, z wykorzystaniem wnioskowania przybliżonego.

Innym wątkiem sztucznej inteligencji, który zostanie omówiony w trakcie zajęć, będzie prezentacja praktycznych metod i algorytmów rozwiązywania zadań przy użyciu sztucznych sieci neuronowych.

Prowadzący


Prof. dr hab. inż. Krzysztof Ślot

Prowadzone zajęcia: Automatyczne rozumienie obrazów i sygnałów (wykład).
E-mail: kslot@p.lodz.pl

Prof. dr hab. inż. Jacek Kucharski

Prowadzone zajęcia: Systemy Inteligentne (wykład).
E-mail: jkuchars@kis.p.lodz.pl

dr inż. Piotr Duch

Prowadzone zajęcia: Automatyczne rozumienie obrazów i sygnałów (laboratorium).
E-mail: pduch@kis.p.lodz.pl

dr inż. Tomasz Jaworski

Prowadzone zajęcia: Programowanie systemów autonomicznych (wykład, laboratorium).
E-mail: tjaworski@kis.p.lodz.pl

dr inż. Paweł Kapusta

Prowadzone zajęcia: Systemy Inteligentne (laboratorium).
E-mail: pkapust@kis.p.lodz.pl

mgr inż. Krzysztof Adamiak

Materiały


Programowanie Systemów Autonomicznych


Automatyczne Rozumienie Sygnałów i Systemów

Projekty studentów



Autorzy:
Maciej Miedzianowski, Piotr Markowski, Sebastian Zieliński

Autorzy:
Maciej Miedzianowski, Piotr Markowski, Sebastian Zieliński

Autorzy:
Stanisław Reduta, Izabela Perenc, Robert Jankowski

Autorzy:
Maciej Kacprzak, Jakub Chludziński