Temat: Sterowanie mobilnością robota z wykorzystaniem algorytmu logiki rozmytej

Podobne dokumenty
INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Inteligencja obliczeniowa

Jeśli X jest przestrzenią o nieskończonej liczbie elementów:

SZTUCZNA INTELIGENCJA

Uniwersytet Zielonogórski Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Sterowania i Systemów Informatycznych

Temat: Projektowanie sterownika rozmytego. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

SZTUCZNA INTELIGENCJA

ALGORYTM PROJEKTOWANIA ROZMYTYCH SYSTEMÓW EKSPERCKICH TYPU MAMDANI ZADEH OCENIAJĄCYCH EFEKTYWNOŚĆ WYKONANIA ZADANIA BOJOWEGO

Temat: Model SUGENO. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Implementacja rozmytych systemów wnioskujących w zdaniach regulacji

Zasada rozszerzania. A U A jest zbiorem rozmytym, B jest obrazem zbioru A Przeniesienie rozmytości A w odwzorowaniu f na zbiór B. sup.

Inżynieria Wiedzy i Systemy Ekspertowe. Logika rozmyta. dr inż. Michał Bereta Politechnika Krakowska

6. Zagadnienie parkowania ciężarówki.

WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA AUTOMATYKI. Robot do pokrycia powierzchni terenu

Sztuczna inteligencja: zbiory rozmyte

Sterowanie z wykorzystaniem logiki rozmytej

STANDARDOWE FUNKCJE PRZYNALEŻNOŚCI. METODY HEURYSTYCZNE wykład 6. (alternatywa dla s) (zdef. poprzez klasę s) GAUSSOWSKA F.

7. Zagadnienie parkowania ciężarówki.

ZBIORY ROZMYTE I WNIOSKOWANIE PRZYBLIŻONE

Rozmyte systemy doradcze

2.2 Opis części programowej

Inteligencja obliczeniowa

Temat: Projektowanie sterownika rozmytego. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

Sztuczna inteligencja : Zbiory rozmyte cz. III

Algorytm. a programowanie -

Sztuczna inteligencja : Zbiory rozmyte cz. 2

Zadanie 0 gdy nie mamy logiki rozmytej. Zadanie 1- gdy już mamy logikę rozmytą

Wykład 8. Testowanie w JEE 5.0 (1) Autor: Zofia Kruczkiewicz. Zofia Kruczkiewicz

3. WYNIKI POMIARÓW Z WYKORZYSTANIEM ULTRADŹWIĘKÓW.

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Jeśli przeszkoda jest blisko to przyhamuj

Politechnika Wrocławska

Piotr Sobolewski Krzysztof Skorupski

Raport z budowy robota typu Linefollower Mały. Marcin Węgrzyn

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Automatyka i sterowania

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Cel projektu: Wymogi dotyczące sprawozdania:

WYKŁAD 10 Rozmyta reprezentacja danych (modelowanie i wnioskowanie rozmyte)

Sreszczenie. Słowa kluczowe: sterowanie, poziom cieczy, regulator rozmyty

Systemy uczące się wykład 1

PRACA DYPLOMOWA MAGISTERSKA

Układy logiki rozmytej. Co to jest?

Temat: Model TS + ANFIS. Instrukcja do ćwiczeń przedmiotu INŻYNIERIA WIEDZY I SYSTEMY EKSPERTOWE

W narzędziu typu Excel, Calc czy Gnumeric napisz formułę logiczną która wyznaczy wartośd przynależności dla podanej temperatury do zbioru gorąco.

Podstawy sztucznej inteligencji

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

WIZUALIZACJA DANYCH SENSORYCZNYCH Sprawozdanie z wykonanego projektu. Jakub Stanisz

SCENARIUSZ LEKCJI. Streszczenie. Czas realizacji. Podstawa programowa

SID Wykład 7 Zbiory rozmyte

Wnioskowanie rozmyte. Krzysztof Patan

Regulator PID w sterownikach programowalnych GE Fanuc

1 Wprowadzenie do algorytmiki

Elżbieta Kula - wprowadzenie do Turbo Pascala i algorytmiki

Wykresy statystyczne w PyroSim, jako narzędzie do prezentacji i weryfikacji symulacji scenariuszy pożarowych

UKŁADY MIKROPROGRAMOWALNE

Technologie i systemy oparte na logice rozmytej

Sposoby przedstawiania algorytmów

Analiza i projektowanie oprogramowania. Analiza i projektowanie oprogramowania 1/32

Szybkie prototypowanie w projektowaniu mechatronicznym

Sztuczna Inteligencja Projekt

2.1 Porównanie procesorów

PODSTAWY BAZ DANYCH. 19. Perspektywy baz danych. 2009/2010 Notatki do wykładu "Podstawy baz danych"

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Raport z budowy robota Krzysio

Sterownik rozmyty (na przykładzie parkowania samochodu)

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

1. Opis teoretyczny regulatora i obiektu z opóźnieniem.

Maciej Piotr Jankowski

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Regulacja dwupołożeniowa (dwustawna)

Zakładka Obmiar jest dostępna dla pozycji kosztorysowej w dolnym panelu. Służy do obliczania ilości robót (patrz też p ).

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

STEROWNIKI PROGRAMOWALNE OBSŁUGA AWARII ZA POMOCĄ STEROWNIKA SIEMENS SIMATIC S7

ELEMENTY SZTUCZNEJ INTELIGENCJI. Wstęp do logiki rozmytej

Algorytmy i struktury danych. wykład 2

Temat: Systemy Ekspertowe i ich zastosowania

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Czym jest OnDynamic? OnDynamic dostarcza wartościowych danych w czasie rzeczywistym, 24/7 dni w tygodniu w zakresie: czasu przejazdu,

Reprezentacja rozmyta - zastosowania logiki rozmytej

PRZEWODNIK PO PRZEDMIOCIE

WPŁYW OPÓŹNIENIA NA DYNAMIKĘ UKŁADÓW Z REGULACJĄ KLASYCZNĄ I ROZMYTĄ

Obiekt. Obiekt sterowania obiekt, który realizuje proces (zaplanowany).

xx + x = 1, to y = Jeśli x = 0, to y = 0 Przykładowy układ Funkcja przykładowego układu Metody poszukiwania testów Porównanie tabel prawdy

BADANIE UKŁADÓW CYFROWYCH. CEL: Celem ćwiczenia jest poznanie właściwości statycznych układów cyfrowych serii TTL. PRZEBIEG ĆWICZENIA

Projekt i wykonanie robota klasy Micromouse

LICZNIKI PODZIAŁ I PARAMETRY

Tomasz Żabiński,

1 Moduł Neuronu Analogowego SM

Wzmacniacze różnicowe

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

ALGORYTMY I PROGRAMY

Programowanie strukturalne i obiektowe. Funkcje

Raport Robot mobilny klasy micromouse. Adrian Gałęziowski Paweł Urbaniak

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

ODWZOROWANIE PRZEBIEGU PULSACJI METODAMI SZTUCZNEJ INTELIGENCJI

Instrukcja do ćwiczenia 6 REGULACJA TRÓJPOŁOŻENIOWA

Regulator PID w sterownikach programowalnych GE Fanuc

Cyfrowe algorytmy sterowania AR S1 semestr 4 Projekt 4

Rozwiązanie dla standardowych urządzeń...

Transkrypt:

Wrocław, 13.01.2016 Metody sztucznej inteligencji Prowadzący: Dr hab. inż. Ireneusz Jabłoński Temat: Sterowanie mobilnością robota z wykorzystaniem algorytmu logiki rozmytej Wykonał: Jakub Uliarczyk, 195639

Spis treści 1. Założenia projektowe.... 3 2. Robot oraz czujniki.... 3 3. Logika rozmyta.... 4 4. Projekt regulatora.... 6 5. Algorytm logiki rozmytej w C.... 9 a. Ogólny schemat algorytmu... 10 b. Fuzyfikacja.... 12 c. Wnioskowanie.... 14 d. Defuzyfikacja.... 16 6. Wnioski:... 17 2

1. Założenia projektowe. Celem projektu było napisanie w języku C i zastosowanie algorytmu logiki rozmytej w robocie, którego zadaniem było omijanie przeszkód. Algorytm miał za zadanie sterować współczynnikiem wypełnienia sygnału PWM dla silników napędzających robota, w taki sposób aby robot mógł zmienić kierunek jazdy w momencie wykrycia przed sobą przeszkody. Zmiennymi wejściowymi dla algorytmu logiki rozmytej były zmierzone odległości przez ultradźwiękowe czujniki odległości umieszczone z przodu robota. Zmienną wyjściową robota był kierunek, w który robot miał się zwrócić w razie wykrycia przeszkody, aby bezkolizyjnie ją ominąć i pojechać dalej. 2. Robot oraz czujniki. Użyty do projektu robot nosi nazwę Andrzej. Robot został wyposażony w dwa ultradźwiękowe czujniki odległości HC-SR04, układ multipleksujący oraz moduł Bluetooth HC-05. Rys 1. Robot Andrzej. 3

Rys 2. Czujnik HC-SR04. Rys 3. Moduł Bluetooth HC-05. Robot jest zasilany baterią litowo-polimerową i komunikuje się ze światem zewnętrznym za pomocą modułu Bluetooth. 3. Logika rozmyta. Logika rozmyta jest rozszerzeniem klasycznej logiki bazującej na wartościach reprezentowanych przez 0(fałsz) oraz 1(prawda). Logika rozmyta rozmywa granice pomiędzy wartościami 0 i 1, wzbogacając je o przedział od 0 do 1. Stwarza to możliwość wystąpienia wartości z pomiędzy tego przedziału(od 0 do 1), np. 0,8 co może oznaczać prawie prawda. Logika rozmyta ma swoje zastosowanie w regulatorach, w przypadku gdy nie znamy matematycznego opisu obiektu lub jego opis jest trudny do wyznaczenia. Wtedy możemy skorzystać z logiki rozmytej bazując na empirycznych doświadczeniach z obiektem, określając jego zachowanie wartościami lingwistycznymi. Przykładowo dla opisu pracy silnika można zdefiniować taką wielkość jak szybkość obrotów, gdzie wartościami lingwistycznymi opisującymi tą wielkość mogłyby być: wolno, średnio i szybko. Sterowanie rozmyte składa się z trzech etapów: fuzyfikacja, wnioskowanie i defuzyfikacja. Kolejność występowania tych etapów prezentuje poniższy schemat: Reguły X Fuzyfikacja Wnioskowanie Defuzyfikacja Y Rys 4. Schemat algorytmu logiki rozmytej. 4

Fuzyfikacja jest to proces w którym do zmierzonej wartości wejściowej jest jest przypisywany stopień przynależności danych wejściowych do danego zbioru rozmytego. Wartość wejściowa ulega rozmyciu. Wnioskowanie polega na obliczeniu wag wyjściowej funkcji przynależności na podstawie danych pochodzących z procesu fuzyfikacji oraz zbioru reguł definiujących reakcję algorytmu(regulatora) na zadaną wartość wejściową. Defuzyfikacja na podstawie wag wyjściowych funkcji przynależności i przy użyciu odpowiedniej metody, określana jest wynikowa, ostra, wartość wyjściowa algorytmu(regulatora). Przed rozpoczęciem definiowania zachowania się regulatora(określeniu reguł), należy określić tzw. zbiory rozmyte. Zbiorem rozmytym nazywamy przedział w funkcji przynależności, który odpowiada jednej z wartości lingwistycznych określającej wartość wejściową/wyjściową algorytmu. Odnosząc się do przykładu silnika, poniżej prezentuję przykładową funkcję przynależności z zaznaczonymi zbiorami rozmytymi dla wartości wejściowej szybkość obrotów : Rys 5. Funkcja przynależności dla zmiennej szybkość obrotów. Wykres stworzony w środowisku LabVIEW. Reguły są to proste instrukcje warunkowe, które wiążą rozmyte wartości wejściowe z zachowaniem się regulatora i jego wynikową wartością wyjściową. Poniżej został przedstawiony przykład reguły: IF szybkość obrotów IS wolno AND obciążenie IS średnie THEN wypełnienie pwm IS pełne Posiadając wiedzę o wszystkich elementach algorytmu logiki rozmytej wymienionych wyżej oraz o wszystkich metodach matematycznych niezbędnych do zrealizowania algorytmu, można przejść do projektowania regulatora. 5

4. Projekt regulatora. W celu prostego i szybkiego zaprojektowania regulatora posłużyłem się środowiskiem LabVIEW, które jest wyposażone w asystenta tworzenia regulatora rozmytego. Asystent wyposażony jest w łatwy w obsłudze graficzny interfejs użytkownika, posiada przyjemny mechanizm tworzenia reguł oraz panel, na którym można zobaczyć wizualizację odpowiedzi regulatora i przetestować zaprojektowany regulator zadając odpowiednie wartości wejściowe i obserwując wartości wyjściowe. Rys 6. Panel główny asystenta tworzenia regulatora. Rys 7. Definicja funkcji przynależności dla zmiennej distance_left. 6

Rys 8. Definicja funkcji przynależności dla zmiennej distance_right. Rys 9. Definicja funkcji przynależności dla zmiennej direction. 7

Rys 10. Definiowanie reguł. Rys 11. Panel testowy regulatora. 8

Zaprezentowane wyżej obrazy odwołują się do projektu regulatora jaki został zaimplementowany w C i użyty w projekcie. Na przedstawionych obrazach można dostrzec wygląd funkcji przynależności dla zmiennych wejściowych oraz zamiennej wyjściowej. Na obrazie prezentującym reguły zauważalnym jest, że zostały pokryte wszystkie możliwe przypadki jakie mogą się pojawić w algorytmie, co na obrazie zawierającym wizualizację wyjścia regulatora jest widoczne w postaci płaszczyzny, która nie zawiera szpilek lub schodków, które świadczyłyby, że w danym miejscu reguły nie pokrywają w pełni wszystkich przypadków, co w efekcie będzie skutkować skokowym działaniem regulatora(co w niektórych przypadkach jest pożądane). 5. Algorytm logiki rozmytej w C. Krytycznym elementem projektu było napisanie algorytmu logiki rozmytej w C. Docelowym mikrokontrolerem był Atmega32L, jednak kod został napisany w taki sposób, że jest łatwo przenaszalny na inne platformy oraz łatwy do zaadaptowania w innych systemach wyposażonych w inne czujniki i w ich różne ilości. Jedynym napotkanym problemem była interpretacja reguł w C, a dokładniej pokonanie bariery pomiędzy określaniem wartości lingwistycznej za pomocą wartości liczbowej. Po rozwiązaniu wszystkich problemów algorytm działa bez jakichkolwiek oznak błędów. Na następnych stronach zostały przedstawione schematy blokowe wraz z opisem, obrazowo prezentujące sposób działania zaimplementowanego algorytmu logiki rozmytej. 9

a. Ogólny schemat algorytmu. 10

Cały algorytm rozpoczyna swoje działanie od zainicjalizowania wszystkich struktur niezbędnych do jego działania. Każdy z elementów algorytmu (tj. zmienna, funkcja przynależności, reguła) jest odpowiednio ustandaryzowany. Poniżej prezentuję wygląd struktur elementów algorytmu: Poniżej przykładowe inicjalizacje każdej z struktur: 11

b. Fuzyfikacja. 12

Proces fuzyfikacji rozpoczyna się od pobrania wskaźnika na zmienną. Zmienna natomiast posiada wskaźnik na funkcję przynależności, a ta znowuż jest tablicą struktur, w której zdefiniowane są zbiory rozmyte dla danej funkcji. Poniżej zostały przedstawione kody źródłowe funkcji używanych w procesie fuzyfikacji. 13

c. Wnioskowanie. 14

Wnioskowanie polega na określeniu wagi dla danego zbioru rozmytego funkcji przynależności zmiennej wyjściowej. W schemacie powyżej należy zwrócić uwagę na moment, w którym sprawdzane jest czy nowo obliczona wartość wagi jest większa od obecnej wartości zapisanej w części then. Jest to realizowanie funkcji MAX dla części then reguły, czyli zapisanie w tej części reguły wartości, o największym wpływie na zbiór rozmyty. Poniżej kod funkcji realizującej wnioskowanie: 15

d. Defuzyfikacja. 16

Defuzyfikacja jest finalnym etapem algorytmu logiki rozmytej, gdzie obliczana jest wyjściowa wartość regulatora rozmytego. Do obliczania tej wartości istnieje wiele sposobów, w projekcie została użyta metoda singletonów, ze względu na jej prostotę i łatwość implementacji w kodzie. Polega na zamianie zbiorów rozmytych funkcji przynależności zmiennej wyjściowej na zbiory jednoelementowe, które znajdują się w miejscach gdzie dany zbiór rozmyty przyjmuje wartość 1. W tej metodzie pojawia się pewna trudność w określeniu singletonu w przypadku gdy zbiór rozmyty ma postać trapezu, dlatego ważne jest aby dobierać tak kształty zbiorów rozmytych, aby nie mieć problemów z określaniem singleton ów. W projekcie wszystkie kształty zbiorów rozmytych mają postać trójkąta, więc określanie singleton u nie sprawiło żadnego problemu. Poniżej kod funkcji odpowiadającej za defuzyfikację: 6. Wnioski: Projekt został całkowicie zrealizowany, a efekty działania robota są w pełni zadowalające. Robot jest w stanie bez problemu przemieszczać się bezkolizyjnie po pomieszczeniach niezawierających elementów, które będą rozpraszać, bądź tłumić falę dźwiękową wysyłaną przez czujniki. Jednakże, podczas testów wynikły sytuacje w których robot starł się z ścianą, co było efektem ostrego kąta pod jakim robot zbliżał się do ściany. W takim przypadku fale dźwiękowe wysyłane prze czujniki nie trafiały z powrotem do odbiorników lecz odbiłaby się od ściany i płynęły w bliżej nieokreślonym kierunku. Kolejną nietypową sytuacją było zderzenie się robota z obiektem lub ścianą, w sytuacji gdy czujniki poprawnie wykrywały odległość od obiektu, jednakże po ułamku sekundy od zderzenia robot wycofywał się i dalej poprawnie realizował algorytm odjeżdżając od ściany i skręcając w kierunku, w którym wykrył więcej wolnej przestrzeni. Takie zachowanie jest spowodowane inercją systemu, który wylicza wartości zmiennych wejściowych na podstawie średniej z kilku pomiarów. Uśrednianie przetrzymywanych w buforze zmierzonych odległości ma na celu tłumienie zakłóceń, w postaci błędnych pomiarów czujników, bądź odfiltrowaniu nagłych i chwilowych zdarzeń typu machnięcie ręką przed robotem w trakcie jazdy do przodu. Rozwiązaniem tych problemów byłoby zwiększenie częstotliwości taktowania mikrokontrolera i optymalizacja kodu, co jednoznacznie zmniejszyłoby inercje systemu. Zastosowanie lepszego rozwiązania do filtrowania zakłóceń i błędnych wyników pomiarów również przyczyniłoby się do przyśpieszenia reakcji robota na otoczenie, co poprawiłoby ogólny wizerunek projektu. 17