Flocking Behaviours Michał Drobot Technical Art Director Reality Pump.

Slides:



Advertisements
Podobne prezentacje
Modelowanie i symulacja
Advertisements

Wykład 4 2. Przykłady ruchu 1.5 Prędkość i przyśpieszenie c.d.
Planowanie bezkolizyjnego ruchu w środowisku wielu robotów z wykorzystaniem gier niekooperacyjnych OWD
Dynamika bryły sztywnej
Temat: O ruchu po okręgu.
Dynamika.
Zasady dynamiki Newtona - Mechanika klasyczna
Kinematyka punktu materialnego
Algorytm Dijkstry (przykład)
Dynamika Całka ruchu – wielkość, będąca funkcją położenia i prędkości, która w czasie ruchu zachowuje swoją wartość. Energia, pęd i moment pędu - prawa.
KINEMATYKA Kinematyka zajmuje się związkami między położeniem, prędkością i przyspieszeniem badanej cząstki – nie obchodzi nas, skąd bierze się przyspieszenie.
DYNAMIKA.
Kinematyka.
Rozpoznawanie Twarzy i Systemy Biometryczne, 2005/2006
I prawo dynamiki Jeśli cząstka nie oddziałuje z innymi cząstkami, to można znaleźć taki inercjalny układ odniesienia w którym przyspieszenie cząstki jest.
Wykład 3 dr hab. Ewa Popko Zasady dynamiki
Dane INFORMACYJNE Nazwa szkoły: ZESPÓŁ SZKÓŁ w BACZYNIE ID grupy:
Test 1 Poligrafia,
FIZYKA dla studentów POLIGRAFII Wykład 2
Wielkości skalarne i wektorowe
Nieinercjalne układy odniesienia
wykonał Jarosław Orski promotor pracy: mgr Szymon Smaga
Klasyfikacja dokumentów za pomocą sieci radialnych
Temat: Symulacje komputerowe lotu helikoptera w języku Java
Algorytmy genetyczne.
Opracowanie wyników pomiarów
T Zsuwanie się bez tarcia Zsuwanie się z tarciem powrót.
Opracowała Diana Iwańska
Zaawansowane techniki renderingu
podsumowanie wiadomości
POLA SIŁOWE.
Co to jest GPS? Dawid Dziedzic Kl. III „D”.
MECHANIKA I WYTRZYMAŁOŚĆ MATERIAŁÓW
ANALIZA DYNAMICZNA MANIPULATORÓW JAKO MECHANIZMÓW PRZESTRZENNYCH
ZWIĄZKI MIĘDZY KLASAMI KLASY ABSTRAKCYJNE OGRANICZENIA INTERFEJSY SZABLONY safa Michał Telus.
Z Wykład bez rysunków ri mi O X Y
Dynamika układu punktów materialnych
siła cz.II W części II prezentacji: o sile ciężkości
siła cz.I W części I prezentacji: definicja siły jednostka siły
Pole elektryczne. Prawo Coulomba. Przenikalność elektryczna środowisk.
DYNAMIKA Dynamika zajmuje się badaniem związków zachodzących pomiędzy ruchem ciała a siłami działającymi na ciało, będącymi przyczyną tego ruchu Znając.
Siły, zasady dynamiki Newtona
siła cz.IV W części IV prezentacji: treść II zasady dynamiki
RUCH KULISTY I RUCH OGÓLNY BRYŁY
Dynamika.
Geometria obliczeniowa Wykład 13 Planowanie ruchu 1.Znajdywanie ścieżki między dwoma punktami. 2.Ruch postępowy robota wielokątnego na płasz- czyźnie.
Przygotowanie do egzaminów gimnazjalnych
dr inż. Monika Lewandowska
Ruch jednostajny prostoliniowy i jednostajnie zmienny Monika Jazurek
Elementy ruchu Względność ruchu.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Ruch jednowymiarowy Ruch - zmiana położenia jednych ciał względem innych, które nazywamy układem odniesienia. Uwaga: to samo ciało może poruszać się względem.
Dynamika punktu materialnego Dotychczas ruch był opisywany za pomocą wektorów r, v, oraz a - rozważania geometryczne. Uwzględnienie przyczyn ruchu - dynamika.
Zasady dynamiki Newtona. Małgorzata Wirkowska
Dynamika punktu materialnego
Dynamika ruchu obrotowego
Ruch – jedno w najczęściej obserwowanych zjawisk fizycznych
Ruch – jedno w najczęściej obserwowanych zjawisk fizycznych Zjawiska ruchu Często ruch zachodzi z tak dużą lub tak małą prędkością i w tak krótkim lub.
Zbiory fraktalne I Ruchy browna.
Zjawiska ruchu Ruch – jedno w najczęściej obserwowanych zjawisk fizycznych Często ruch zachodzi z tak dużą lub tak małą prędkością i w tak krótkim lub.
FIZYKA KLASA I F i Z Y k A.
Korelacje dwóch zmiennych. Korelacje Kowariancja.
Box2D Bodies – Fixture. Konstruktor struktury b2BodyDef.
Zadania z drugiej zasady dynamiki. Zadania z drugiej zasady dynamiki.
Metody Badań Operacyjnych Michał Suchanek Katedra Ekonomiki i Funkcjonowania Przedsiębiorstw Transportowych.
Dynamika bryły sztywnej
Wówczas równanie to jest słuszne w granicy, gdy - toru krzywoliniowego nie można dokładnie rozłożyć na skończoną liczbę odcinków prostoliniowych. Praca.
Trochę matematyki - dywergencja Dane jest pole wektora. Otoczymy dowolny punkt P zamkniętą powierzchnią A. P w objętości otoczonej powierzchnią A pole.
SIŁA JAKO PRZYCZYNA ZMIAN RUCHU
Symulacje komputerowe
Zapis prezentacji:

Flocking Behaviours Michał Drobot Technical Art Director Reality Pump

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ł

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

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

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

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

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

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

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 …

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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ść

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

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

Siły sterujące eksploracyjne

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

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

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

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

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łą

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Podsumowanie For more information contact me Slides will be available at Drobot.org

Questions ?