Multiagent Simulator 2

Kolejna odsłona programu do modelowania zachowań tłumu z wykorzystaniem systemów multi agentowych.

Trochę informacji o wersji pierwszej.

MODELOWNIE ZACHOWAŃ TŁUMU Z WYKORZYSTANIEM SYSTEMÓW AGENTOWYCH

Modelowanie zachowań tłumu stało się ostatnimi laty bardzo popularne. Zapoczątkowane przez nowatorskie produkcje filmowe znalazło zastosowanie w wielu projektach badawczych analizujących na przykład zachowania cząsteczek, systemów złożonych.
Tworzony przez nas symulator ma umożliwić zaprogramowanie złożonych zachowań pojedynczych użytkowników, jak i całych grup. Wykorzystanie w nim systemu multi agentowego daje możliwość nadawania indywidualnych cech pojedynczym jednostkom, co pozwala na doświadczalne sprawdzanie zachowań całych mas w danych sytuacjach. Takich jak ucieczka z płonących budynków, ale również współdziałanie na polu walki.
Wykorzystanie grafiki trójwymiarowej do wizualizacji zachowań agentów daje możliwość wykorzystania aplikacji także do tworzenia animacji.

1. Konstrukcja programu

1.1 Agent cechy indywidualne.

Multi agent simulation 2 - wygląd podstawowy
Multi agent simulation 2 - wygląd podstawowy

Stworzeni przez nas agenci posiadają zdolność podejmowania autonomicznych decyzji bazujących na warunkach otoczenia w jakich się aktualnie znajdują. Komunikują się ze sobą oraz współdziałają w celu osiągnięcia z góry zaprogramowanych korzyści. Nieustannie monitorują otoczenie i starają się reagować na jego zmiany. Mają zaprogramowane liczne funkcje celu, których waga zmienia się w zależności od sytuacji ( chodź istnieje też pierwiastek losowości zachowań ).

Pełna animacja agentów:

YouTube Preview Image

1.2 Agent żołnierz – na potrzeby symulacji pola bitwy

Agent żołnierz posiada następujące atrybuty:

  • wielkość obrażeń ( np. rodzaj broni )

    Multi agent simulation 2 - agent view
    Multi agent simulation 2 - agent view
  • ilość życia i obrony ( definiuje jak długo agent może przetrwać w zwarciu lub pod ostrzałem )
  • zręczność i wściekłość ( modyfikacja wielkości obrażeń oraz prędkości szarży / ucieczki )
  • odwaga ( definiuje z iloma przeciwnikami naraz każdy z agentów może walczyć, a kiedy uzna za stosowne ratować życie )
  • stan i szybkość poruszania się ( stan w jakim znajduje się agent, stan zgodny z diagramem stanów, szybkość poruszania się zależy od stanu jak i od nachylenia terenu )
  • animacja ( odrębne zestawy animacji dla każdego ze stanów )
  • zakres widzenia i walki ( rysunek po prawej przedstawia zakres widzenia, zasięg walki zależy od rodzaju broni )
  • gromadzenie statystyk ( na potrzeby badawcze istnieje możliwość zapisywania statystyk, np. średnie obrażenia, droga poruszania się , wybrane cele oraz sposób realizacji )

Animacja agentów tworzona jest z wykorzystaniem 3DS Max, oraz funkcji szkieletowej lub biped’owej animacji postaci.

Multi agent simulation 2 - agent  3ds max biped
Multi agent simulation 2 - agent 3ds max biped

1.3 Poruszanie się

  • Algorytm przemieszczania się agentów uodporniony jest na „zacinanie się” agentów np. w rogach budynku.
  • Multi agent simulation 2 - wielopoziomowy teren
    Multi agent simulation 2 - wielopoziomowy teren

    Dyskretyzacja przestrzeni, w której znajdują się agenci pozwala na optymalizację obliczeń.

  • Przestrzeń agentowa jest wielopoziomowa, pozwala to na budowania np. wielopiętrowych budynków, schodów, zboczy gór, obszarów zadaszonych. Rysunek po prawej przedstawia roboczą przestrzeń agentową.
  • Algorytmy przemieszczania się agentów pozwalają na skuteczne omijanie przeszkód.
  • Dostosowane do potrzeb symulacji algorytmy wyszukiwania ścieżki pozwalają na znalezienie przez naszych agentów drogi ewakuacji nawet z labiryntu.

1.4 Scena

  • Rzeźba terenu modelowana z wykorzystaniem programu Large 3D Terrain Generator.

    Multi agent simulation 2 - scena
    Multi agent simulation 2 - scena
  • Na potrzeby animacji stworzyliśmy możliwość wczytywania poszczególnych warstw terenu z plików, ułatwiło i przyspieszyło to tworzenie bardziej zaawansowanych budynków takich jak widoczny po lewej zamek.
  • Dokładność obiektów, którą udało nam się osiągnąć jest w granicach 20cm x 20 cm x 50 cm.
  • Ilustracja po lewej przedstawia wygląd roboczy, na którym widoczne są dokładnie „klocki”, z których składany jest budynek . teren.

1.5 Wizualizacjia

multi-agent-simulation-2-jme2-logo Do wizualizacji terenu i agentów, wykorzystaliśmy silnik graficzny jMonkeyEngine v2 ( LWJGL ). Silnik jME wspiera również animację agentów, a także renderowanie grafiki w sekwencje filmowe.

1.6 Renderowanie

Na potrzeby symulacji stworzyliśmy też moduł odpowiedzialny za zapis animacji do pliku. Dodatkowe możliwości reżyserowania ruchów kamery oraz możliwość „reżyserowania” zachowań agentów, okazały się bardzo pomocne w czasie końcowych prac. Multi Agent Simulator v2 został wzbogacony również o moduły sterujące szybkością animacji agentów jak i ilością wyświetlanych klatek ( FPS ).

2. Algorytmy

System walki wzorowany jest na klasycznych zasadach gier RPG i uwzględnia następujące elementy: zręczność, szybkość, odległość, ilość obrony, ilość siły , wściekłość oraz możliwość kontr ataku. Agenci „sprawdzają” czy mogą zobaczyć swojego przeciwnika oraz jeżeli już go widzą to czy mogą do niego dojść w prosty sposób. W przypadku gdy dojście do przeciwnika nie jest możliwe agent stara się wycofać na bezpieczną odległość.

2.1 Prezentacja algorytmu poruszania się oraz grupowania.

YouTube Preview Image

Agenci zbierają się w grupę podążając za jednym z przywódców, którzy są w ich zakresie widzenia.

2.2 Prezentacja algorytmu ucieczki z labiryntu.

YouTube Preview Image

Symulacja ucieczki agentów z labiryntu. Film obrazuje umiejętność naszych agentów do znajdowania wyjścia z zamkniętych pomieszczeń np. z budynków, ewakuacji stadionów , ewakuacji płonących budynków.

2.3 Prezentacja algorytmu walki ( ucieczki i walki )

YouTube Preview Image

W pierwszej części filmu wyreżyserowaliśmy ucieczkę jednego z agentów, jak widać porusza się on przez chwilę znacznie szybciej od napastnika. W drugiej części filmu współczynnik odwagi obydwu wojaków został zrównany i doszło do starcia.

3. Animacje końcowe

Jednymi z efektów naszych prac są dwie animacje w pełni obrazujące możliwości MASv2.

YouTube Preview Image

Statyczna animacja walki o zamek, kamera umieszczona na murze.

YouTube Preview Image

Pełna animacja zdobywania zamku. Wyreżyserowany ruch kamery oraz częściowo wyreżyserowane działania agentów, którzy jednak nie do końca chcieli się nas słuchać 🙂

Pełna prezentacja projektu: MultiAgent 2010 v4

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.


*