Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Flocking Behaviours Michał Drobot Technical Art Director Reality Pump.

Podobne prezentacje


Prezentacja na temat: "Flocking Behaviours Michał Drobot Technical Art Director Reality Pump."— Zapis prezentacji:

1 Flocking Behaviours Michał Drobot Technical Art Director Reality Pump

2 Plan TeoriaTeoria Hierarchia ruchuHierarchia ruchu Warstwa Lokomocyjna – model ruchuWarstwa Lokomocyjna – model ruchu Siły sterujące jednostkoweSiły sterujące jednostkowe Siły sterujące grupoweSiły sterujące grupowe Scalanie siłScalanie sił

3 Empiryczny model zachowańEmpiryczny model zachowań Bazuje na:Bazuje na: Teorii rojuTeorii roju ChaosuChaosu Podstawach biologicznychPodstawach biologicznych Systemach kontroli ruchuSystemach kontroli ruchu Artificial lifeArtificial life TEORIA

4 Podstawa do tworzenia:Podstawa do tworzenia: Systemów cząsteczkowychSystemów cząsteczkowych Symulacji ekosystemówSymulacji ekosystemów Symulacji socjologicznychSymulacji socjologicznych Wykorzystywany w:Wykorzystywany w: GrachGrach Filmach – efekty specjalneFilmach – efekty specjalne Badaniach naukowychBadaniach naukowych TEORIA

5 Hierarchia ruchu Podstawowa hierarchia modelu ruchu: Wybór akcji Strategie Cele Planowania Sterowanie Wyznaczanie ścieżek Dynamiczne/Statyczne/chaotyczne Lokomocja Animacja/przemieszczanie/artykulacja

6 Lokomocja Prosty, elastyczny model Zamienia sygnały od warstwy sterującej na odpowiedni ruch Wymaga warstwy abstrakcyjnej łączącej sterującą z lokomocyjną Fuzzy logic Interfejs obsługi danej warstwy Reprezentacja prosta/dynamiczna/fizyczna

7 Prosty model lokomocji Korzysta z: Dynamiki Newtonowskiej Integracji Eulerowskiej w czasie (polecane RK) Opisuje podstawowe parametry agenta: Masa Max prędkość Max przyspieszenie

8 Prosty model lokomocji Dynamicznie oblicza: Wektor ruchu Wektor siły kierunkowej - sterującej Przyśpieszenie (zgodne z siłą sterującą) Wektor orientacji

9 Prosty model lokomocji Uproszczony model umożliwia: Zachowanie bezwładności Symulacje w środowisku fizycznym Symulacje cząsteczkową wielu zjawisk: Symulacja gazów/cieczy Symulacja stad Efekty specjalne …

10 Siły sterujące jednostkowe Na każdego agenta mogą działać siły indywidualne Pod pojęciem siły rozumiemy : chęć, ochotę, potrzebę, rozkaz itp.. Siły te będą odpowiednio wagowane w zależności od sytuacji i podjętych decyzji i uwzględniane jako siła napędowa w modelu lokomocji

11 Siły sterujące jednostkowe Na każdego agenta mogą działać siły indywidualne Pod pojęciem siły rozumiemy : chęć, ochotę, potrzebę, rozkaz itp.. Siły te będą odpowiednio wagowane w zależności od sytuacji i podjętych decyzji i uwzględniane jako siła napędowa w modelu lokomocji

12 Siły sterujące jednostkowe Zachowawcze: Seek Flee Pursuit Evasion Offset pursuit Arrival Obstacle avoidance

13 Siły sterujące jednostkowe Seek Ma za zadanie dotarcie do określonego punktu

14 Siły sterujące jednostkowe Flee Ma za zadanie ucieczkę od określonego punktu Może być wagowane/warunkowane przez odległość do punktu

15 Siły sterujące jednostkowe Arrive Ma za zadanie dotarcie do określonego punktu, wraz ze spowolnieniem i zatrzymaniem Zachowanie jak Seek, z tym że wektor chęci jest skracany wraz z maleniem dystansu agenta do punktu Aż do zatrzymania

16 Siły sterujące jednostkowe Pursuit Ma za zadanie przechwycić poruszającego się agenta / obiekt Potrzebuje danych o ruchu obiektu Dane odczytane z obiektu Dane pozyskane poprzez system widzialności agenta Aproksymacja percepcji Predykcja przyszłego położenia celu Przedłużamy aktualny wektor ruchu celu o wartość proporcjonalną do dystansu między agentem a celem oraz odwrotnie proporcjonalną do sumy ich prędkości Przechwycenie przez Seek do punktu predykcji

17 Siły sterujące jednostkowe Predykowany punkt Pursuit force Velocity Steering

18 Siły sterujące jednostkowe Evade Unikanie celu Działa dokładnie tak samo jak Pursuit z tym, że końcowy ruch realizuje Flee zamiast Seek

19 Siły sterujące jednostkowe Offset pursuit Działa jak pursuit z tym, że przesuwamy punkt śledzenia o określoną odległość ZA celem Wektor ruchu celu w przeciwnym kierunku, znormalizowany, przemnożony o wartość offsetu

20 Siły sterujące jednostkowe Interpose Ma za zadanie ustawienie agenta pomiędzy dwoma zbiegającymi ku sobie obiektami / agentami Np. zachowanie napastnika chcącego przechwycić piłkę podawaną między dwoma graczami Wyliczamy czas T potrzebny agentowi na dotarcie do środka odcinka łączącego pozycje pozostałych dwóch agentów Wyliczamy punkty predykcji ruchu agentów poprzez ekstrapolacje o czas T Wyznaczamy odcinek łączący punkty predykcji Poruszamy się przez Arrive do punktu środkowego odcinka

21 Siły sterujące jednostkowe Predykowany punkt Pursuit force Velocity Steering

22 Siły sterujące jednostkowe Predykowany punkt Pursuit force Velocity Steering

23 Siły sterujące jednostkowe Obstacle avoidance Zależne od środowiska w jakim poruszają się agenci Zwykle realizowane przy użyciu czujek Czujki to wystające wektory dookoła obiektu Są testowane ich kolizje z innymi obiektami W razie stwierdzone kolizji do siły Obstacle avoidance dodajemy wektor prostopadły do zaalarmowanej czujki Podobnie realizowalne omijanie ścian W zaawansowanym środowisku stosujemy snop widzenia/kolizji, który stara się ustawić optymalnie pomiędzy przeszkodami

24 Siły sterujące eksploracyjne Eksploracjne: Wander Explore/Forage Path following Wall following Flow field / Vector field sampling

25 Siły sterujące eksploracyjne Wander Ma za zadanie symulować swobodne poruszanie się agenta w środowisku Losowy ruch Wyliczanie losowego kierunku ruchu co klatkę kończy się bardzo drgającym ruchem Brak możliwości łagodnych zakrętów Potrzebna metoda zapewniająca parametryzacje losowego ruchu Łagodność Kierunkowość losowość

26 Siły sterujące eksploracyjne Wander Metoda okręgu Losujemy punkt na okręgu znajdującym się w określonej odległości od agenta Z każdą klatką Losujemy wektor offsetowy dla punktu okręgu Przemieszczamy się po okręgu Regulujemy moc wartości offsetowej, odległość okręgu od agenta, oraz promień okręgu

27 Siły sterujące eksploracyjne Wander Wartość offsetu reguluje losowość Odległość okręgu reguluje kierunkowość Wielkość okręgu reguluje łagodność ruchu

28 Siły sterujące eksploracyjne

29

30

31

32 Explore Poruszając się po grafie (bądź tworząc go w locie) agent stara się odwiedzić wszystkie możliwe do odwiedzenia miejsca Dochodzi do miejsca, zaznacza jako sprawdzone i wybiera wg zadanej logiki następne miejsce Poruszając się pomiędzy miejscami, zaznacza widoczne dla niego miejsca jak sprawdzone Zachowanie przydatne np. podczas symulacji patroli wroga

33 Siły sterujące eksploracyjne Path following Agent dostaje listę określonych punktów, waypointów Porusza się od jednego do drugiego, w zadanym porządku poprzez określony rodzaj ruchu (Seek, Arrive) Można stosować dodatkowe algorytmy skracania ścieżki, bądź wygładzania ruchu ze względu na następne punkty ruchu

34 Siły sterujące eksploracyjne Vector field Mapa jest opisana tzw. polem wektorowym Każdy punkt mapy ma zapisany wektor Agenci używają mapy wektorowej jako sugestii podczas poruszania się Jeśli liczą się długości wektorów można ręcznie kontrolować szybkość poruszania się (decyzji) na określonych fragmentach mapy Mapy malowane ręcznie Np. na terenie przy pomocy vertex color i vertex paint

35 Siły sterujące grupowe Podstawowe pojęcia: Sąsiedztwo (fov, distance..) Collision avoidance Organizacja przestrzeni Cell partitioning Spatial partitoning OCT…

36 Siły sterujące grupowe Sąsiedztwo Jest to obszar przestrzeni wyznaczony przez bryłę widzialności kula o promieniu widzenia Stożek oznaczający FOV agenta Przeszukujemy inne obiekty/agentów w symulacji i oznaczamy tych którzy są objęci bryłą

37 Siły sterujące grupowe Collision avoidance Można stosować dodatkową mocną siłę działającą na dwóch znajdujących się za blisko agentów, która będzie ich skutecznie odpychać w celu uniknięcia przenikania się obiektów Realizowalne przez czujki, które biorą pod uwagę innych agentów Możliwość sztywnego warunku

38 Siły sterujące grupowe Organizacja przestrzeni Przeszukiwanie sąsiedztwa sprowadza się do przeglądnięcia obiektów Brute force : n^2 Każdy agent przegląda wszystkich agentów W związku z rozmieszczaniem agentów w przestrzeni (2D, 3D) wymagana jest struktura przyśpieszająca testy obszarowe

39 Siły sterujące grupowe Organizacja przestrzeni Stosujemy podział przestrzeni na komórki (kubełki) Stały Proste przepinanie obiektów w czasie ruchu Wymaga doboru odpowiedniej wielkości kubełka Możliwa degeneracja do n^2 gdy wszyscy w kubełku Dynamiczne partycjonowanie przestrzeni jeśli w pojemniku powyżej k obiektów, podziel pojemnik na dwa mniejsze w logiczny sposób OCT Kosztowne przepinanie obiektów podczas przemieszczania Wydajne przeszukiwanie

40 Siły sterujące grupowe Główne siły: Separation Cohesion Alignment

41 Siły sterujące grupowe Separation Tworzy siłę sterującą agenta z dala od agentów w FOV Uśredniona wartość wektorów OD agentów FOV Odwrotnie proporcjonalna do odległości między agentami

42 Siły sterujące grupowe Alignment Tworzy siłę sterującą, tak by kierunek ruchu agenta zgadzała się z kierunkiem ruchu agentów z FOV Uśredniona wartość wektorów ruchu agentów FOV Odwrotnie proporcjonalna do odległości między agentami Np. samochody jadące ulicą prezentuja sume zachowań Separation i Alignment

43 Siły sterujące grupowe Cohesion Tworzy siłe sterująca agenta w kierunku środka ciężkości zbioru agentów z FOV Wyliczamy środek ciężkości Poruszamy agenta w jego kierunku poprzez Seek

44 Siły sterujące grupowe Przykładowe zastosowanie: Leader following: Arrival Separation Collision avoidance Offset Hide Shadow

45 Scalanie sił Stosujemy w zależności od potrzeb: Proste wagowanie Priorytetowa akumulacja z wagowaniem

46 Scalanie sił Proste wagowanie Wyliczamy wszystkie siły działające na obiekt Wagujemy je wg zadanych wag Wyliczamy końcową znormalizowana wartość Pojawia się problem sił sprzecznych Np. wall avoidance i separation z grupy Wymaga liczenia wszystkich sił kosztowne

47 Scalanie sił Priorytetowa akumulacja z wagowaniem Ustalamy odgórny limit na sumę długości sił sterujących Ustawiamy pojedyncze siły wg ich priorytetów Wyliczenia dokonujemy kolejno W momencie przekroczenia odgórnego limitu siły dokonujemy normalizacji Oszczędzamy czas obliczeń Ważne z punktu widzenia logiki obliczenia mają priorytet nad innymi siłami

48 Scalanie sił Przykład Separation, alignment, cohesion, wall avoidance, obstacle avoidance Z tego zestawu z punktu widzenia logiki wall avoidance i obstacle avoidance mają priorytet nad separation i alignment Wolimy bardziej chaotyczny ruch, niż obiekty przelatujące przez przeszkody

49 Scalanie sił Priorytetowa akumulacja wagowa z ditheryzacją Każda siła ma przypisane prawdopodobieństwo zaistnienia Kolejność testu sił wyznaczają wagi prawdopodobieństwa Dokonuje się testu prawdopodobieństwa pierwszej siły Jeśli TRUE to wyliczamy i zwracamy jej wartość Jeśli FALSE to testujemy dalej, aż do pierwszego TRUE

50 Scalanie sił Priorytetowa akumulacja wagowa z ditheryzacją Najszybsza metoda obliczeń Cierpi z powodu braku dokładności Możliwe skaczące wyniki Wymaga wygładzania wartości siły sterującej

51 Scalanie sił Smoothing W pamięci trzymana jest ostatnia siła sterująca Wyliczana jest oczekiwana siła sterująca Nowa siła sterująca powstaje poprzez interpolacje liniową miedzy ostatnia siłą o oczekiwaną wg różnicy w czasie między ostatnią zmianą Smoothing wykorzystywany w zmianach wielu innych dynamicznych parametrów

52 Kompleksowe rozwiązania Omówienie kompleksowych przykładów: Symulacja ryb i drapieżnika Stado sarn i wilki Itp...

53 Podsumowanie For more information contact me hello@drobot.org Slides will be available at Drobot.org

54 Questions ?


Pobierz ppt "Flocking Behaviours Michał Drobot Technical Art Director Reality Pump."

Podobne prezentacje


Reklamy Google