Inteligentne maszyny i systemy
Transkrypt
Inteligentne maszyny i systemy
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rozszerzony konspekt przedmiotu „Inteligentne maszyny i systemy” dr inż. Witold Czajewski dr inż. Marcin Iwanowski dr inż. Maciej Sławiński Instytut Sterowania i Elektroniki Przemysłowej Wydział Elektryczny Politechnika Warszawska Jednostki dydaktyczne: 30 wykład, 30 laboratorium, punkty ECTS: ? Streszczenie (cel i zakres przedmiotu) Celem przedmiotu jest zapoznanie studentów z wybranymi problemami związanymi z inteligentnymi maszynami i systemami. Ze względu na multidyscyplinarność i niezwykle szeroki zakres omawianej tematyki, zostanie ona ograniczona do zagadnień dotyczących: struktury i sterowania inteligentnymi maszynami, rozpoznawania obrazów oraz uczenia maszynowego. W ramach wykładu zostanie omówiona teoria związana z tematyką poruszanych zagadnień, a główny nacisk będzie położony na ich stronę praktyczną, tak aby student był w stanie zastosować nabytą wiedzę w warunkach rzeczywistych. Z tego względu w skrypcie znajdą się liczne odwołania do oprogramowania wykorzystywanego podczas ćwiczeń laboratoryjnych (w tym przykładowe fragmenty kodu), co umożliwi studentom szybką i samodzielną implementację omawianych zagadnień. Materiał przedmiotu został podzielony na 3 zasadnicze części obejmujące: • strukturę, metody sterowania, komunikacji i organizacji pracy maszyn, • wykorzystanie wizji do akwizycji danych i realizacji pomiarów, • sposoby reprezentacji wiedzy i uczenia maszynowego. Wykład Pierwsza część wykładu obejmuje zagadnienia związane z fizyczną oraz logiczną strukturą inteligentnych maszyn i urządzeń, jak również komunikacją pomiędzy nimi i organizacją ich pracy. Na początku zostaną omówione sensory najczęściej stosowane w robotyce oraz sposoby pomiaru wybranych wielkości fizycznych. Następnie przedstawione zostaną przykładowe sposoby realizacji wejściowych układów kondycjonujących opartych na wzmacniaczach operacyjnych, komparatorach i scalonych układach dopasowujących. W dalszej części zostaną omówione różne typy aktuatorów (takich jak siłowniki, silniki itp.) oraz sposoby ich sterowania, zarówno w kontekście lokalnym (siłowniki, serwomechanizmy), jak i z poziomu układu zarządzającego. Ponadto zostaną omówione rodzaje, typy i sposoby komunikowania się maszyn i urządzeń, w szczególności w ramach zastosowania w sekwencyjnych układach logicznych. Przedstawione zostaną także przykładowe protokoły komunikacji szeregowej i równoległej oraz praktyczne aspekty realizacji układów komunikacji. Podstawowym elementem maszyny inteligentnej jest jej sterownik. Dzisiaj są to najczęściej sekwencyjne układy logiczne. Na wykładzie zostaną omówione podstawy związane z budową i funkcjonowaniem układów mikroprocesorowych. Na przykładzie mikrokontrolerów zostaną przedstawione zasady projektowania i używania układów sekwencyjnych w inteligentnych maszynach. Omówione zostaną przykładowe układy peryferyjne stosowane w systemach mikroprocesorowych do realizacji różnego rodzaju zadań takich jak komunikacja, generowanie sygnałów sterujących, np.: PWM, pomiary wielkości analogowych. Następnie zostaną poruszone kwestie związane z realizacją oprogramowania sterującego pracą maszyn. Urządzenia inteligentne często współpracują ze sobą, co powoduje, że aplikacje sterujące pracą takich urządzeń muszą obsługiwać wymianę komunikatów. Komunikacja pomiędzy aplikacjami/urządzeniami nie jest jedynym problemem występującym w nadrzędnym oprogramowaniu zarządzającym. W zakresie tego rozdziału zostanie omówiony sposób realizacji inteligentnego zachowania się maszyny – reakcja na otaczający świat, postrzegany za pomocą sensorów znajdujących się na wyposażeniu danej jednostki. Rozdział ten przedstawi przykład zarządzania wymianą komunikatów w zespole robotów, zaimplementowany w Microsoft Robotics Studio. Ostatnią grupą zagadnień poruszanych w tej części wykładu będą najistotniejsze kwestie związane z lokomocją i manipulacją robotów. Omówione zostaną podstawowe sposoby poruszania się robotów (z naciskiem na roboty kołowe i kroczące) oraz manipulacji, w szczególności z wykorzystaniem różnego rodzaju omówionych wcześniej czujników wspomagających podejmowanie decyzji (aktywne czucie). Druga część wykładu zostanie poświęcona w całości zagadnieniom związanym ściśle z wykorzystaniem kamery jako inteligentnego czujnika pomiarowego (zarówno w sensie pomiarów jakościowych, jak i ilościowych). Nie będzie to zatem podstawowy kurs ogólnego przetwarzania obrazów, ale opis zagadnień niezbędnych do praktycznego zastosowania kamery w procesie pomiarowym. W opisywanej części omówione zostaną podstawowe problemy związane od strony praktycznej z akwizycją i wstępnym przygotowaniem obrazów do dalszego przetwarzania (kilka wybranych metod filtracji i wygładzania obrazu), przestrzeniami kolorów (głównie HSV i jej zastosowanie do klasyfikacji kolorów) i segmentacją obrazów (progowanie zwykłe i adaptacyjne oraz hierarchiczna analiza konturów) oraz ekstrakcją podstawowych cech obszarów (takich jak pole powierzchni, obwód, liczba wierzchołków, liczba otworów, momenty bezwładności czy niezmienniki momentowe). Zadanie klasyfikacji obiektów na podstawie wcześniej wyznaczonych cech zostanie zaprezentowane na przykładzie prostego klasyfikatora minimalnoodległościowego inne sposoby klasyfikacji zostaną omówione w ostatniej części wykładu. Kolejnym istotnym tematem będzie przygotowanie kamery jako narzędzia pomiarowego, czyli problem kalibracji kamery i wyznaczenia jej parametrów wewnętrznych oraz zewnętrznych, co umożliwi usunięcie zniekształceń soczewkowych oraz lokalizację obserwowanych obiektów względem kamery. Omówione zostanie także zagadnienie transformacji układów współrzędnych, które jest niezbędne do przeprowadzenia kalibracji oko-ręka dla układu kamera-manipulator. Ostatnim elementem będzie pokazanie, zarówno od strony matematycznej, jak i praktycznej, metod lokalizacji obiektów na wcześniej zdefiniowanej płaszczyźnie oraz w dowolnym punkcie trójwymiarowej przestrzeni. W ostatniej części wykładu zostaną omówione podstawowe techniki komputerowe pozwalające na maszynową reprezentację i interpretację wiedzy. Roboty wyposażone w sensory posiadają podstawowe elementy będące źródłem informacji, jednak dane te same w sobie nie stanowią wiedzy, lecz są wykorzystywane do jej pozyskiwania przez inteligentne maszyny. Jednym z czujników pozwalających na pozyskanie dużej ilości informacji o otoczeniu jest kamera, dlatego też w tej części wykładu omówione zostaną wybrane zagadnienia uczenia maszynowego z naciskiem na wykorzystanie ich w dziedzinie widzenia komputerowego. Należy jednak podkreślić, że przedstawione algorytmy będą natury ogólnej i będą mogły znaleźć zastosowanie nie tylko i wyłącznie w widzeniu komputerowym, ale w ogólnie zdefiniowanych zadaniach klasyfikacji danych. W rozdziale tym zostaną omówione podstawowe cele, metody i problemy związane uczeniem maszynowym. Student zapozna się z podstawową teorią oraz praktycznym zastosowaniem wybranych algorytmów klasyfikacji danych takich jak: metoda K-średnich, maksymalizacji wartości oczekiwanej, K-najbliższych sąsiadów, naiwny klasyfikator Bayesa, drzewa decyzyjne, sieci neuronowe czy metoda wektorów nośnych. Laboratorium W ramach przedmiotu przewidziane są ćwiczenia laboratoryjne, do których zostaną przygotowane, w oparciu o skrypt, oddzielne instrukcje. Studenci będą mieli za zadanie oprogramowanie konkretnych inteligentnych urządzeń (takich jak roboty mobilne, manipulatory, systemy wizyjne) czy też rozwiązanie problemu z dziedziny uczenia maszynowego w oparciu o wiedzę wyniesioną z wykładu. W ramach laboratorium zostanie wykorzystane środowisko MS Visual Studio, biblioteka do przetwarzania i rozpoznawania obrazów oraz uczenia maszynowego OpenCV, a także natywne oprogramowanie robotów (najczęściej C-podobne). W związku z powyższym, od studentów wymagać się będzie: umiejętności programowania strukturalnego i obiektowego, znajomości podstaw języka C, podstaw robotyki i podstaw przetwarzania obrazów. Proponowane tematy ćwiczeń laboratoryjnych obejmują: 1. Niskopoziomowe sterowanie efektorami na przykładzie maszyny kroczącej 2. Wykorzystanie informacji sensorycznej do sterowania robotem mobilnym 3. Sterowanie zaawansowanym autonomicznym robotem mobilnym 4. Kalibracja kamery i wykorzystanie jej jako narzędzia pomiarowego 5. Wizyjne sprzężenie zwrotne w sterowaniu modelem manipulatora przemysłowego 6. Implementacja i analiza wybranych algorytmów uczenia maszynowego Literatura Hadam P.: Projektowanie systemów mikroprocesorowych, BTC, 2004 Siegwart R., Nourbakhsh I.: Introduction to Autonomous Mobile Robots, MIT Press, 2004 Bradski G., Kaehler A.: Learning OpenCV, O'REILLY, 2008 Cichosz P.: Systemy uczące się, WNT, 2007 Mitchell, T.: Machine Learning, McGraw-Hill, 1997 Osowski S.: Sieci neuronowe do przetwarzania informacji, Oficyna Wydawnicza PW, 2006