Tytuł projektu. WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA z siedzibą w Rzeszowie WYDZIAŁ INFORMATYKI STOSOWANEJ

Podobne dokumenty
INTELIGENTNY ŻOŁNIERZ

Dodatkowo planowane jest przeprowadzenie oceny algorytmów w praktycznym wykorzystaniu przez kilku niezależnych użytkowników ukończonej aplikacji.

Szybkie prototypowanie w projektowaniu mechatronicznym

Dokumentacja projektu QUAIKE Architektura oprogramowania

REFERAT PRACY DYPLOMOWEJ

OpenAI Gym. Adam Szczepaniak, Kamil Walkowiak

Opracował: Jan Front

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa, Inżynieria oprogramowania, Technologie internetowe

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Techniki animacji komputerowej

Sprawozdanie z realizacji programu Kodowanie z klasą dla uczniów klasy II i IV Szkoły Podstawowej nr 7

Tworzenie prezentacji w MS PowerPoint

Grafika i Systemy Multimedialne (IGM)

PRZEWODNIK PO PRZEDMIOCIE

Przyspieszenie obróbki CNC z edytorem ścieżki. narzędzia w ZW3D. ZW3D CAD/CAM Biała księga

D O K U M E N T A C J A

Referat Pracy Dyplomowej

PRZEWODNIK PO PRZEDMIOCIE

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

dr inż. Tomasz Krzeszowski

Programowanie gier 3D w HTML5. Andrzej P.Urbański Politechnika Poznańska

Wykaz osób pełniących funkcję opiekunów Warsztatów

3.7. Wykresy czyli popatrzmy na statystyki

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny)

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa

PRZEWODNIK PO PRZEDMIOCIE

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Testowanie w procesie Scrum

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Grafika komputerowa i wizualizacja

REFERAT PRACY DYPLOMOWEJ

GUI - projektowanie interfejsów

Prezentacja specjalności Inżynieria Systemów Informatycznych

SPECYFIKACJA WYMAGAŃ. w zakresie migracji i uruchomienia nowego serwisu WWW na potrzeby PKP S.A.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Czym jest wykrywanie kolizji. Elementarne metody detekcji kolizji. Trochę praktyki: Jak przygotować Visual Studio 2010 do pracy z XNA pod Windows

Innowacja pedagogiczna na zajęciach komputerowych w klasach 4e, 4f, 4g. Nazwa innowacji Programowy Zawrót Głowy

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski

PRZEWODNIK PO PRZEDMIOCIE

Aparaty słuchowe Hi-Fi z Multiphysics Modeling

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) kierunkowy (podstawowy / kierunkowy / inny HES)

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa i multimedia

GUI - projektowanie interfejsów

Podstawy 3D Studio MAX

S YSTEM O PERACYJNY L INUX W PARCOWNI

5.4. Efekty specjalne

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

Zad. 6: Sterowanie robotem mobilnym

PLAN SZKOLEŃ FEMAP. Nasza oferta: Solid Edge najefektywniejszy dostępny obecnie na rynku system CAD klasy mid-range,

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Kierunek:Informatyka- - inż., rok I specjalność: Grafika komputerowa i multimedia

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

PLAN SZKOLEŃ Femap. Nasza oferta: Solid Edge najefektywniejszy dostępny obecnie na rynku system CAD klasy mid-range,

Dokument Detaliczny Projektu Temat: Księgarnia On-line Bukstor

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Karty graficzne możemy podzielić na:

Problemy programowania gier. mgr Mateusz Rynk

Kierunek: INFORMATYKA. Studia stacjonarne. Studia drugiego stopnia. Profil: ogólnoakademicki

DESIGNER APPLICATION. powered by

REFERAT O PRACY DYPLOMOWEJ

Marek Parfieniuk, Tomasz Łukaszuk, Tomasz Grześ. Symulator zawodnej sieci IP do badania aplikacji multimedialnych i peer-to-peer

1.3. Tworzenie obiektów 3D. Rysunek 1.2. Dostępne opcje podręcznego menu dla zaznaczonego obiektu

Wizualizacja płomienia

INŻYNIERIA OPROGRAMOWANIA

Dokumentacja projektu Makao karciana gra sieciowa

Referat pracy dyplomowej

INŻYNIERIA OPROGRAMOWANIA

Procesowa specyfikacja systemów IT

System zarządzający grami programistycznymi Meridius

Tematy lekcji informatyki klasa 4a styczeń 2013

CMS, CRM, sklepy internetowe, aplikacje Web

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki. Paweł Parys. Nr albumu: Aukcjomat

Gry społecznościowe. wykład 0. Joanna Kołodziejczyk. 24 lutego Joanna Kołodziejczyk Gry społecznościowe 24 lutego / 11

Plan studiów dla kierunku:

I rok. semestr 1 semestr 2 15 tyg. 15 tyg. Razem ECTS. laborat. semin. ECTS. konwer. wykł. I rok. w tym. Razem ECTS. laborat. semin. ECTS. konwer.

rodzaj zajęć semestr 1 semestr 2 semestr 3 Razem Lp. Nazwa modułu E/Z Razem W I

Numer i nazwa obszaru: Temat szkolenia:

Moc płynąca z kart graficznych

Architektura gier komputerowych na wybranych przykładach. Krzysztof Rosiński

5.2. Pierwsze kroki z bazami danych

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Nazwa przedmiotu. Załącznik nr 1 do Uchwały nr 70/2016/2017 Rady Wydziału Elektrycznego Politechniki Częstochowskiej z dnia r.

Referat pracy dyplomowej

KARTA KURSU (realizowanego w module specjalności) Modelowanie 3D

PROGRAMOWALNE STEROWNIKI LOGICZNE

Efekty kształcenia dla kierunku studiów INFORMATYKA, Absolwent studiów I stopnia kierunku Informatyka WIEDZA

Prezentacja specjalności Inżynieria Systemów Informatycznych

Dokument Detaliczny Projektu

RAPORT KOŃCOWY PROJEKTU

KIERUNKOWE EFEKTY KSZTAŁCENIA

Sposoby sprawdzania osiągnięć edukacyjnych uczniów

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2014/2015. Forma studiów: Stacjonarne Kod kierunku: 11.

GRY KOMPUTEROWE 3D OpenGL DirectX Ogre3D Crystal Space ClanLib Irrlicht SDL Ardor3D jmonkey Engine GRY KOMPUTEROWE 2D ORX Troll2D

Transkrypt:

WYŻSZA SZKOŁA INFORMATYKI I ZARZĄDZANIA z siedzibą w Rzeszowie WYDZIAŁ INFORMATYKI STOSOWANEJ Tytuł projektu Wykonawca/y: Dmytro Matseyko (nr alb. 37967) Vitalii Kurylo (nr alb. 37965) Oleh Hulyk (nr alb. 37962) Yuriy Senych (nr alb. 37971) Igor Senych (nr alb. 35260 Prowadzący: dr hab. Janusz Starzyk Asystent: mgr Daniel Jachyra 1

Rzeszów 2010 Spis treści 1 Zawartość raportu 3 1.1 Koncept Ogólny 3 1.2 Zadania do Wykonania 4 1.2.1 Projektowanie oraz implementacja logiki działania systemu 4 1.2.2 Projektowanie oraz realizacja graficznych elementów systemu 5 1.2.3 Projektowanie GUI 6 1.2.4 Testowanie systemu 7 1.3 Rozwoju Projektu i jego znaczenie 8 1.4 Wymagania Softwareowe i Hardwarowe 9 1.5 Software 10 1.6 Trudności występujące w trakcie realizacji projektu 11 1.7 Trudności materiałowe i techniczne 11 1.8 Posumowanie i zalecenia na przyszłość 12 2

1 Zawartość raportu 1.1 Koncept Ogólny Dany projekt ma na celu realizacje środowiska do wizualizacji działania algorytmu uczenia ze wzmocnieniem. Bot, działający w środowisku ma na celu realizacje swoich potrzeb w postaci uzyskania określonych nagród w określonej kolejności. Fabula: w starej kopalni jeszcze zostało dość wiele złota, ale panuje tam teraz całkowita ciemność. Nasz bohater dostaję się tam w celu trochę zbogacić się. Środowisko jest rozbite na komórki, każda z nich ma swój numer (stan) i w każdej chwili bot znajduje się w określonym stanie. Do niektórych stanów są przypisane nagrody i bot postrzega czy jest nagroda w tym samym stanie, w którym jest, czy nie. Celem bota jest nauczenie się nachodzenia drogi do pewnej nagrody z każdego stanu środowiska, celem programu graficznego wizualizować jego zachowanie po nauczeniu się. 3

1.2 Zadania do Wykonania 1.2.1 Projektowanie oraz implementacja logiki działania systemu Architektura systemu: 1. Środowisko 2. Interfejs pomiędzy środowiskiem a alorytmem AI 3. Obiekty wewnątrz środowiska Sterowanie zachowaniem agenta zostało realizowane dwuwarstwowo: 1. Warstwa zewnętrzna algorytm uczenia 2. Warstwa wewnętrzna system Radar - Receiver Rysunek 1 Opis systemu zachowania agenta (warstwa wewnętrzna) Bazuje na Blender Logic Bricks. Składa się z trzech grup elementów: Sensors, Controllers, Actuators. Tabela 1 Elementy funkcjonalne systemu Nazwa elementu Radar Uwagi Wszystkie obiekty, które radar ma zdetektować muszą mieć ustawioną opcje Actor Odbiorca (Górnik) Przy odnajdowaniu celu Radar wysyła do Odbiorcy wiadomość, a odbiorca, w zależności od treści wiadomości (lewo czy prawo) poprzez Actuators zmienia wektor przemieszczenia Odbiorcy. Odbiorca może być w dwóch stanach: sterowany przez użytkownika (pierwszy rysunek) lub przez AI (drugi) Przy wyłączonym systemie 4

Przy włączonym 1.2.2 Projektowanie oraz realizacja graficznych elementów systemu Projektowanie graficznej oraz fizycznej reprezentacji agenta i środowiska Zaprojektowany agent z elementami symulacji fizycznej: 1. Bounding box detekcja kolizji 2. Armature animacja głównej siatki Rysunek 2 Zaprojektowany agent z elementami symulacji fizycznej 5

Rysunek 3 Środowisko 1.2.3 Projektowanie GUI Elementy interfejsu użytkownika: 1. Menu zaprojektowane jako tradycyjne menu dla gier. Została zrealizowana animacja jego elementów oraz obsługa zdarzeń myszki do sterowania grą Rysunek 4 Menu 6

2. Interfejs główny wydzielono trzy części: a. widok główny środowiska oraz agenta b. licznik czasu (dla celów wyznaczania czasu pracy algorytmu) c. licznik zdobytych nagród d. minimapa (dla celów wyznaczania położenia agenta w środowisku) Przy czym dane elementy są odświeżane poprzez Python Scripts, czyli czas, ilość monet oraz położenie agenta są zliczane (zgromadzane) ze środowiska i po przekształceniu wyświetlanie użytkownikowi. Rysunek 5 Działający program Takie podejście do projektowania danego systemu pozwoliło podzielić prace graficzne na trzy elementy: 1. Scena Menu wszystkie obiekty, dotyczące menu 2. Scena główna wszystkie obiekty, dotyczące środowiska 3. Overlay scene (HUD) scena ze wszystkimi elementami GUI, widocznymi podczas działania systemu 1.2.4 Testowanie systemu Testowanie systemu miało na celu: 1. Zredukować możliwe błędy przy opracowaniu logiki poprawność działania agenta w środowisku 2. Zredukować możliwe błędy przy opracowaniu interfejsu użytkownika oraz graficznej reprezentacji poprawność reakcji systemu na odpowiednie zdarzenia systemowe oraz poprawność interakcji graficznych elementów (kolizja, animacja i in.) 3. Zweryfikować poprawność symulacji fizycznej środowiska oraz odtwarzania dźwięku. 7

1.3 Rozwoju Projektu i jego znaczenie Pod czas realizacji podstawowych wymagań do projektu było wygenerowano wiele pomysłów co do jego rozwoju - jest sporo możliwości polepszenia prezentacji programu opierając na już zrealizowanej części graficznej. Z najbardziej ciekawych aspektów możliwości jego rozwoju warto wymienić: Utworzenie interfejsu do szybkiego podłączenia/przełączania klas, realizujących różne algorytmu sztucznej inteligencji. Zwiększenie liczby możliwych do uzyskania w środowisku nagród. Nadanie użytkownikowi możliwości edytować środowisko. Dodanie możliwości prowadzenia logów symulacji, ich zapisywania oraz generowania statystyki do porównywania algorytmów na ich podstawie. To tylko niektóre z funkcjonalności, którymi można rozszerzyć powstały w wyniku realizacji projektu program. Po wprowadzaniu odpowiednich polepszeń program ma sporą szansę stać dobrym narzędziem do wizualizacji oraz analizy różnych algorytmów uczenia maszynowego w bardzo atrakcyjny i przejrzysty sposób. Może być użyty na uczelniach na zajęciach poświeconych sztucznej inteligencji. 8

1.4 Wymagania Softwareowe i Hardwarowe Projekt został napisany w języku programowania Pyton z użyciem programu Blender 3D, który jest oprogramowaniem niezależnym od platformy oraz systemu operacyjnego. Dla tego wymagania sprzętowe dotyczą tylko ilości pamięci operacyjnej oraz karty graficznej. Od początku, jednym z założeń było to, że wynik projektu ma chodzić bez większych problemów na standardowych komputerach personalnych oraz laptopach, w tym celu część graficzna projektu została zoptymalizowana (lowpoly modelling). Ale z powodu wykorzystania przez nas OpenGL Shading Language dla polepszenia wizualizacji projektu, wymaganiem koniecznym dla uruchomienia jest karta graficzna, wspierająca tą technologię (Nvidia GeForce seria 8 lub nowsza; GeForce GTX 260, 280; Quadro FX 370, 570, 1700, 3700, 4600, 4700x2, 5600). Także zalecane jest posiadanie 2 Gb pamięci operacyjnej, chociaż nie jest to warunkiem koniecznym. 9

1.5 Software Do tworzenia aplikacja wykorzystaliśmy język programowania Python 2.6 oraz program Blender 3D wersji 2.49 beta. Blender 3D okazał się praktycznie idealnym programem do osiągnięcia celów stawionych przed nami w ramach danego projektu. Jest to narzędzie uniwersalne, pozwalające na modelowanie, animację, rendering oraz dodawanie efektów specjalnych do tworzonych scen graficznych. Także posiada swój własny silnik grafiki oraz fizyki wyspecjalizowany do tworzenia gier Blender Game Engine. To wszystko pozwoliło nie przełączać się między kilkoma różnymi narzędziami, a skupić się na opanowaniu jednego, chociaż nie było sprawą łatwą ze względu na jego ogromną funkcjonalność. Oprócz standardowych funkcjonalności Blender 3D dysponuje takim, bardzo przydatnym w naszym projekcie, narzędziem jak Blender Game Engine. Pozwala ono na symulowanie fizyki w ramach sceny, generowanie dynamicznego oświetlenia (GLSL), animowanie obiektów, współdziałających w scenie oraz pełna obsługa Pythona (API dla skryptów Pythona pozwalające na pełną kontrolę nad tworzoną sceną). W każdej chwili nadaje możliwość uruchomienia programu bez konieczności wcześniejszej jej kompilacji. Dla kontroli nad akcjami oraz ich wyświetlaniem w BGE wydzielane trzy podstawowe elementy logiki: Sensory (sensor) odczytuje stan obiektu; Aktuatory (actuator) zmienia stan obiektu; Kontrolery (controller) steruje przepływem danych od sensora do aktuatora. Do tworzenia tekstur wykorzystaliśmy programy Adobe Photoshop CS3 oraz GIMP 2 dla tego że mieliśmy doświadczenia pracy w nich, chociaż Blender też ma w sobie wbudowany redaktor graficzny, ale praca w nim wymagała dodatkowego czasu na przyzwyczajenie się. Do rozmieszczenia wyników pracy na każdym z etapów realizacji projektu wykorzystywaliśmy repozytorium Tortoise SVN. 10

1.6 Trudności występujące w trakcie realizacji projektu Dla naszego zespołu realizacja tego projektu była prawdziwym wyzwaniem, ponieważ i samo zadanie utworzenia trójwymiarowego środowiska graficznego było dla nas nowe oraz musieliśmy uczyć się języka Python wraz z narzędziami od początku. Na tej podstawie napotkaliśmy dość dużo trudności brak doświadczenia powodował spędzanie nadmiarowego czasu na rozwiązanie pewnych zadań, jako zapewnienie dostępu w skrypcie do obiektu znajdującego się w importowanej zewnątrz scenie używając klasy GameLogic, lub identyfikacja potrzeby ręcznego sprawdzania w kodzie stanu klawisza wywołującego zdarzenie, żeby uniknąć podwójnych akcji. Oprócz trudności czysto technicznych wystąpili też trudności komunikowania się z klientem i wypracowania wspólnej wizji codo tego, jak ma wyglądać logika środowiska oraz interfejs komunikowania z nim bota. Spowodowało to kilka zmian początkowego konceptu oraz przeprojektowanie oraz zmianę już istniejących części kodu. 1.7 Trudności materiałowe i techniczne Przy realizacji danego projektu wystąpiła głównie zależność sprzętowa. Praca przy edytorze grafiki komputerowej wymaga dość dużych zasobów technicznych. Dla tego początkowe założenia odnośnie sprzętu zostały troche zmienione: 1. pamięć operacyjana uległa zwiększeniu; 2. na wykorzystywane karty graficzne zostało narzucone ograniczenie (do wyświetlenia grafiki wymagana jest karta graficzna z implementowanym sprzętowo Open GL GLSL Shader); 11

1.8 Posumowanie i zalecenia na przyszłość Język Python jest bardzo prostym, efektywnym i przyjaznym narzędziem do programowania sztucznej inteligencji oraz szeregu innych systemów. Wraz z edytorem grafiki 3D Bender3D oraz silnikiem Blender Game Engine pozwala dość szybko i sprawnie tworzyć gry trójwymiarowe zawierające poważne elementy sztucznej inteligencji. Nasz program jest temu dobrym potwierdzeniem i uważamy że każda osoba interesująca się tematami 3D gier oraz AI powinna zapoznać się z tymi narzędziami. Uważamy że udało nam zrealizować większość postawionych przed sobą celów i jesteśmy naprawdę zadowoleni z przeprowadzonej pracy. 12