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