INTELIGENTNY ŻOŁNIERZ

Transkrypt

INTELIGENTNY ŻOŁNIERZ
WYŻSZA SZKOŁA
INFORMATYKI I ZARZĄDZANIA
z siedzibą w Rzeszowie
WYDZIAŁ INFORMATYKI STOSOWANEJ
Projekt Zespołowy
INTELIGENTNY ŻOŁNIERZ
Skład grupy:
Łukasz Jabłoński
Łukasz Prus
Marcin Czebanyk
Bartłomiej Drozd
46687
25383
36327
36333
Prowadzący:
prof. nadzw. dr hab. Janusz Starzyk
Asystent:
mgr Daniel Jachyra
Rzeszów, 2012
1
KONCEPT OGÓLNY ................................................................................ 3
2
MOTYWACJA BOTÓW DO DZIAŁANIA........................................... 4
3
BUDOWA I LOGIKA BOTA ................................................................... 4
4
OPIS ODDZIAŁYWAŃ POMIĘDZY BOTAMI .................................. 6
5
SOFTWARE ................................................................................................. 6
6
ZESPÓŁ ........................................................................................................ 7
7
KOMUNIKACJA W ZESPOLE ............................................................... 7
8
WYMAGANIA KLIENTA ........................................................................ 8
9
HARMONOGRAM PRAC ....................................................................... 8
10 ŚWIAT BOTA.............................................................................................. 9
11 TRUDNOŚCI WYSTĘPUJĄCE W TRAKCIE REALIZACJI ........... 11
12 PODSUMOWANIE I ZALECENIA NA PRZYSZŁOŚĆ ................. 11
2
1 KONCEPT OGÓLNY
Celem niniejszego projektu było przede wszystkim poznanie praktycznych
zasad projektowania oraz tworzenia inteligentnych systemów komputerowych,
opartych o mechanizmy sztucznej inteligencji. Jak sama nazwa wskazuje, za cel
projektu należało również uważać wyrobienie nawyków i przyzwyczajeń wśród
członków zespołu, mających przyczynić się do efektywnej współpracy przy
realizowanym projekcie, jak również przy jemu podobnych w przyszłości.
W ramach realizacji projektu, stworzone zostało środowisko, po których porusza
się agent, który ma za zadanie nauczyć się rozpoznawać, które z napotkanych
postaci są do niego wrogo nastawione, a które nie. Agent podejmuje walkę jedynie z
postaciami agresywnymi nie reagując na postacie neutralne. Dodatkowo agent uczy
się do czego służy punkt apteczny.
Przy
pierwotnych
założeniach
projektowych,
zakładaliśmy
stworzenie
środowiska, w których będzie się poruszał agent. Świat agenta według planów miał
zawierać jednostki, z którymi bot będzie toczył walkę, jak również jednostki
nastawione do niego neutralnie. Założenia te udało się zrealizować. Problem pojawił
się przy tworzeniu elementów, które miały wpływ bezpośrednio na agenta, np.
punkt apteczny. Chcieliśmy również wzbogacić możliwości walki w naszym
projekcie, poprzez zdefiniowanie dodatkowych broni, które bot mógłby zdobywać.
Założenie to przerosło nasze możliwości, z tego powodu pomysł został porzucony i
w projekcie występuje jeden rodzaj broni, którą posługują się boty.
Fabuła projektu
Przy pracach archeologicznych zostaje odnaleziony bot-żołnierz, zamrożony
przed laty. Po odmrożeniu, ożywa i w akcie desperacji, nie jest w stanie
rozpoznać, która postać jest do niego wrogo nastawiona, a która nie, dlatego
też zaczyna walczyć, każdą napotkaną postacią. Po upływie czasu, uczy się,
że tylko wojsko jest do niego wrogo nastawione i przestaje zabijać
laborantów.
3
2 MOTYWACJA BOTÓW DO DZIAŁANIA
Początkowo bot unicestwia wszystkie pojawiające się postacie, jednak stopniowo
zaczyna rozróżniać, która z postaci jest to niego wrogo nastawiona, a która nie. Za
unicestwienie dobrej postaci bot zostaje ukarany poprzez obniżenie potrzeby
moralności. Po pewnym czasie bot zaczyna rozpoznawać postacie – zabija tylko
postać złą, dzięki czemu jego poziom moralności rośnie do maksymalnej wartości.
Podczas wędrówki po środowisku, bot może również zostać ranny, co nakłania go
do poszukiwania apteczki.
3 BUDOWA I LOGIKA BOTA
Rysunek 1
4

Bottom
–
korpus
bota;
obiekt
typu
Dynamic.
Poprzez
aktuator
Motion/ServoControl nadaną ma prędkość liniową wzdłuż lokalnej osi X. Dwa
sensory Message odbierają informacje z radarów i odpowiednio nadają
prędkość obrotową.

Rradar/Lradar – obiekty podlegające pod obiekt Bottom. Sensory typu Radar
ustalone są dla wyszukiwania obiektów z parametrem Env w obszarze
zasięgu radaru. Radary w przypadku zadziałania wysyłają informacje do
obiektu Bottom stosując aktuator Message.

Top – wieża bota; Sensor typu Radar ustalony został do wyszukiwania
obiektów z parametrem Enemy, Enemy1 i Lekarz, dodatkowo zasięg radaru
reprezentuje zasięg światła latarki. Radary wysyła informację o koniecznym
wystrzale jeśli w zasięgu pojawi się robot wrogi do obiektu Cannon stosując
aktuator Message.

Cannon – obiekty typu Empty podlegający pod obiekt Top. W przypadku
otrzymania
od niego
informacji
o
wystrzale,
uruchamia
aktuator
EditObject/AddObject. Wygenerowany zostaje wtedy obiekt Bullet z zadaną
prędkością początkową.
Boty poruszające się po terenie nie maja zaprogramowanych sztywnych tras po
których się poruszają, posiadają minimalna inteligencje pozwalającą im na
odbieranie bodźców poprzez sensory. Sensory pozwalają botom na autonomiczne
poruszanie się po terenie omijając przeszkody ustawione na scenie oraz wykrywanie
wrogich jednostek będących w zasięgu broni. Boty dzięki swojej inteligencji
zaprogramowanej przy pomocy kostek logiki potrafią odróżniać wrogie jednostki od
pozostałych oraz poruszać się po terenie bez udziału człowieka.
5
4 OPIS ODDZIAŁYWAŃ POMIĘDZY BOTAMI
Złe postacie na mapie są agresywne i zmniejszają poziom zdrowia żołnierza,
który musi uzupełnić poprzez znalezienie apteczki. Postacie dobre są pokojowo
nastawione do bohatera i nie robią mu krzywdy, ale bot może je unicestwiać.
Boty poruszają się na mapie w sposób losowy, doprowadzając w ten sposób do
różnych sytuacji: może dojść do spotkania bohatera głównego z wrogiem, z czego
wyniknie walka pomiędzy nimi, może również dojść do spotkania bohatera z
kilkoma wrogo nastawionymi jednostkami, co w konsekwencji również prowadzi do
walki. Drugim możliwym wariantem jest spotkanie Inteligentnego żołnierza z
jednostką nastawioną neutralnie, co po procesie uczenia powinno doprowadzić do
tego, że bot rozpozna, że napotkana jednostka nie jest do niego wrogo nastawiona i
nie będzie otwierał ognia w celu jej unicestwienia. Kolejnym możliwym wariantem
jest spotkanie pomiędzy jednostką neutralną a jednostką wrogo nastawioną do
głównego bohatera, co zaowocuje brakiem jakiejkolwiek reakcji.
5 SOFTWARE
Do realizacji projektu wykorzystaliśmy język programowania Python oraz
program Blender 3D. Język Python jest efektywnym i przyjaznym narzędziem do
programowania sztucznej inteligencji oraz szeregu innych systemów Wraz z
edytorem grafiki Blender 3D oraz silnikiem Blender Game Engine pozwala szybko i
sprawnie tworzyć gry trójwymiarowe zawierające elementy sztucznej inteligencji. Z
kolei Blender 3D jest uniwersalnym narzędziem, pozwalającym na modelowanie,
animację, rendering, oraz dodawanie efektów specjalnych do tworzenia scen
graficznych. Oprócz standardowych funkcjonalności, Blender dysponuje bardzo
przydatnym
w
naszym
projekcie,
narzędziem
–
Blender
Game
Engine,
pozwalającym na symulowanie fizyki w ramach sceny, generowanie dynamicznego
6
oświetlenia, animowanie obiektów, współdziałających w scenie oraz pełna obsługa
Pythona.
6 ZESPÓŁ
Nasz zespół składa się z czterech osób:
1. JABŁOŃSKI ŁUKASZ – osoba odpowiedzialna za programowanie oraz testy
2. PRUS ŁUKASZ – osoba odpowiedzialna za programowanie
3. CZEBANYK MARCIN – osoba odpowiedzialna za sporządzenie grafiki oraz
stworzenie animacji
4. DROZD BARTŁOMIEJ – osoba odpowiedzialna za całość dokumentacji,
stworzenie prezentacji PDR oraz raportu końcowego
7 KOMUNIKACJA W ZESPOLE
Komunikacja w zespole odbywała się przede wszystkim za pośrednictwem
Internetu, z wykorzystaniem komunikatora Gadu-Gadu, jak również Skype. Z
użytkowaniem tych narzędzi wiązała się główna komunikacja pomiędzy członkami
zespołu – ustalanie najważniejszych punktów projektu, wyznaczanie najbliższych
celów do realizacji
Członkowie zespołu prowadzili również rozmowy z wykorzystaniem poczty
elektronicznej jak również poprzez rozmowy telefoniczne a także smsy. Służyły one
jednak wyłącznie do szybkich ustaleń konkretnych punktów projektu.
7
8 WYMAGANIA KLIENTA
A. Autonomiczne poruszanie się żołnierza po środowisku.
B. Nauka wykorzystywania różnych rzeczy w środowisku do zaspokajania i
redukcji bólu, np. uczenie się do czego służy apteczka.
C. Generowanie statystyk z zachowania bota.
D. Wprowadzić kolejny element, który jest zaspokajany po uzyskaniu max.
moralności.
9 HARMONOGRAM PRAC
Zaprezentowany powyżej harmonogram prac został przez nas starannie
zaplanowany i dobrze przemyślany. Wzięliśmy w nim pod uwagę niekorzystne
warunku za jakie trzeba uznać naszą pracę zawodową, bowiem każdy z nas na co
dzień pracuje i dysponuje ograniczoną ilością wolnego czasu. Uważamy, że dobrze
się z niego wywiązaliśmy, bowiem w naszych pracach raczej nie zdarzały się
opóźnienia dzięki temu również i dokumentacja oraz prezentacje składane były w
wyznaczonych terminach do wglądu i oceny. Z pewnością za spore utrudnienie przy
jego realizacji należy uznać, że nie mogliśmy pracować wszyscy razem w jednym
czasie, bowiem bez dostarczonych materiałów graficznych, nie dało się ruszyć z
programowaniem i w dalszej konsekwencji z dokumentacją. Ale tak jak już wcześniej
pisaliśmy, raczej się wywiązywaliśmy z wyznaczonych terminów i uważamy, że
dobrze zrealizowaliśmy harmonogram naszych prac.
8
10 ŚWIAT BOTA
Rysunek 2
Rysunek 3
9
Rysunek 4
Powyższe ilustracje przedstawiają szatę graficzną projektu. Widzimy na nich
obszar po którym poruszają się boty oraz same boty. Niebieskie jednostki są
traktowane jako jednostki wrogo nastawione, szare jako neutralne, natomiast
jednostka czerwona to omawiany „inteligentny żołnierz”. Na planszy znajdują się
trzy wrogie jednostki, dwie neutralne i jeden bohater projektu.
Boty poruszają się po laboratorium. Jeżeli w polu widzenia bota, oznaczonego
wiązką światła pojawi się wroga jednostka, zaczyna do niej strzelać.
10
11 TRUDNOŚCI WYSTĘPUJĄCE W TRAKCIE REALIZACJI
Dla naszego zespołu realizacja omawianego projektu była prawdziwym
wyzwaniem, ponieważ nigdy wcześniej nie mieliśmy styczności z technologią
wykorzystaną przy realizacji projektu. Stanęło przed nami wyzwanie nauczenia się
całkiem nowego języka programowania, którym wcześniej się nie posługiwaliśmy – i
to stanowiło główną trudność. Brakowało na doświadczenie, przez co spędzaliśmy
nadmierną ilość czasu nad rozwiązywaniem problemów, które jak się później
okazywało wcale nie były aż tak skomplikowane.
Oprócz
trudności
technicznych,
wymienić
należy
przede
wszystkim
czasochłonność zadania, bowiem jako studenci studiów zaocznych, rzeczą naturalną
jest, że stanęło przed nami trudne zadanie połączenia pracy zawodowej z
kształceniem się na uczelni wyższej. Stąd też wynikały opóźnienia w postaci
niedotrzymywania wyznaczonych terminów, odstępstw od harmonogramu prac jak
również trudności w zebraniu wszystkich członków zespołu na wspólnej dyskusji.
12 PODSUMOWANIE I ZALECENIA NA PRZYSZŁOŚĆ
Niestety nie udało nam się zrealizować wszystkich zamierzonych założeń. Dużo
do życzenia pozostawia inteligencja naszego agenta, który nie zachowuje się do
końca tak jak byśmy tego chcieli i jak wymaga tego projekt. Spowodowane jest to
przede wszystkim brakiem umiejętności, na co przyczynia się również brak
wystarczającej ilości czasu, żeby je nabyć.
Zrealizowany przez nas projekt posiada potencjał, może być dalej rozwijany i
wzbogacany o dalsze funkcjonalności. Uważamy, że z pewnością można jeszcze
poprawić szatę graficzną, wzbogacając ją o dodatkowe elementy. Jak wcześniej
pisaliśmy z założenia mieliśmy wprowadzić dodatkowe bronie, które boty mogą
zdobywać, jak również udoskonalić inteligencję agent oraz wprowadzić dodatkowe
elementy wpływające na jego zachowanie.
11

Podobne dokumenty