DE102010055708A1 - Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung - Google Patents

Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung Download PDF

Info

Publication number
DE102010055708A1
DE102010055708A1 DE102010055708A DE102010055708A DE102010055708A1 DE 102010055708 A1 DE102010055708 A1 DE 102010055708A1 DE 102010055708 A DE102010055708 A DE 102010055708A DE 102010055708 A DE102010055708 A DE 102010055708A DE 102010055708 A1 DE102010055708 A1 DE 102010055708A1
Authority
DE
Germany
Prior art keywords
agent
obstacle
speed
collision
velocity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102010055708A
Other languages
English (en)
Inventor
Changkyu Kim
Stephen J. Guy
Anthony-Trung D. Nguyen
Daehyun Kim
Jatin Chhugani
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102010055708A1 publication Critical patent/DE102010055708A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

Ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit (117, 217) für einen Agenten (110) in einer Menschenmassensimulationsumgebung (100) umfasst das Identifizieren eines quadratischen Optimierungsproblems, das der kollisionsfreien Geschwindigkeit entspricht, und das Finden einer genauen Lösung für das quadratische Optimierungsproblem, indem ein geometrischer Ansatz verwendet wird.

Description

  • GEBIET DER ERFINDUNG
  • Die offenbarten erfindungsgemäßen Ausführungsformen beziehen sich im Allgemeinen auf computergenerierte Bilderzeugung, und beziehen sich spezieller auf Menschenmassensimulationsaufgaben bei computergenerierter Bilderzeugung.
  • HINTERGRUND DER ERFINDUNG
  • Anwendungen einer virtuellen Welt (z. B. Second Life) sind im Begriff, eine wichtige Komponente des CVC-(Connected Visual Computing)-Paradigmas zu werden. Eine der wichtigen auszuführenden Aufgaben ist die künstliche Intelligenz, A. I. (artificial intelligence), wobei die Charaktere in der virtuellen Welt spezifische zugeteilte Aufgaben ausführen und sich durch die Welt navigieren. Die Charakternavigation, die ebenfalls als Menschenmassensimulation bezeichnet wird, ist eine rechenintensive Aufgabe, und bestehende Algorithmen können nur ein paar tausend Agenten in Echtzeit simulieren. Dies ist eine Größenordnung hinsichtlich der Unterstützung der zehn- bis hunderttausenden Agenten, die erforderlich wären, um ein realistisches Szenario einer virtuellen Welt zu generieren.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die offenbarten Ausführungsformen werden besser bei Durchsicht der folgenden detaillierten Beschreibung verstanden, die in Verbindung mit den begleitenden Figuren in den Zeichnungen gegeben wird, in denen:
  • 1 eine Darstellung eines einfachen Menschenmassensimulationsszenarios ist, das drei Agenten involviert, gemäß einer erfindungsgemäßen Ausführungsform;
  • 2 eine Veranschaulichung eines geometrischen Ansatzes für die Entdeckung einer kollisionsfreien Geschwindigkeit in einem Menschenmassensimulationsszenario ist, gemäß einer erfindungsgemäßen Ausführungsform;
  • 3 ein Ablaufdiagramm ist, das ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform; und
  • 4 ein Ablaufdiagramm ist, das ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, in der der Agent eine Anfangsgeschwindigkeit aufweist, und mit einer Vielzahl von Hinderniskegeln verbunden ist, die in einem Geschwindigkeitsintervall verbleiben, gemäß einer erfindungsgemäßen Ausführungsform.
  • Zum Zweck der Einfachheit und Klarheit der Veranschaulichung veranschaulichen die Zeichnungen in den Figuren die allgemeine Art der Ausgestaltung, und Beschreibungen und Details von wohlbekannten Merkmalen und Techniken können weggelassen werden, um zu verhindern, dass die Erörterung der beschriebenen erfindungsgemäßen Ausführungsformen unnötigerweise in den Hintergrund gerückt wird. Außerdem sind Elemente in den Zeichnungen in den Figuren nicht notwendigerweise maßstabgetreu gezeichnet. Beispielsweise können die Abmessungen einiger der Elemente in den Figuren bezogen auf andere Elemente übertrieben groß dargestellt sein, um dabei zu helfen, das Verständnis der erfindungsgemäßen Ausführungsformen zu verbessern. Die gleichen Bezugsnummern in unterschiedlichen Figuren kennzeichnen die gleichen Elemente, während ähnliche Bezugsnummern ähnliche Elemente anzeigen können, dies aber nicht notwendigerweise tun.
  • Die Begriffe „erste/r/s”, „zweite/r/s”, „dritte/r/s”, „vierte/r/s” und dergleichen in der Beschreibung und in den Ansprüchen werden, wenn überhaupt, zur Unterscheidung zwischen ähnlichen Elementen verwendet, und werden nicht notwendigerweise zur Beschreibung einer besonderen sequentiellen oder chronologischen Reihenfolge verwendet. Es ist selbstverständlich, dass die so verwendeten Begriffe unter angemessenen Umständen untereinander austauschbar sind, derart, dass die hierin beschriebenen erfindungsgemäßen Ausführungsformen beispielsweise in der Lage sind, in Abläufen zu betrieben zu werden, neben denjenigen, die hierin veranschaulicht oder anderweitig beschrieben sind. Gleichermaßen, wenn ein Verfahren hierin als eine Reihe von Schritten umfassend beschrieben ist, ist die Reihenfolge solcher Schritte, wie hierin aufgezeigt, nicht notwendigerweise die einzige Reihenfolge, in der solche Schritte ausgeführt werden können, und bestimmte der angegebenen Schritte können möglicherweise weggelassen werden und/oder bestimmte andere Schritte, die hierin nicht beschrieben sind, können dem Verfahren möglicherweise hinzugefügt werden. Des Weiteren sollen die Begriffe „umfassen”, „beinhalten”, „aufweisen” und jegliche Variationen davon eine nicht-alleinige Einbeziehung abdecken, derart, dass ein Prozess, Verfahren, Produkt oder eine Vorrichtung, der/die eine Liste von Elementen umfasst, nicht notwendigerweise auf diese Elemente beschränkt ist, sondern dass er/sie andere Elemente beinhalten kann, die nicht ausdrücklich aufgelistet sind oder solch einem Prozess, Verfahren, Produkt oder solch einer Vorrichtung innewohnend sind.
  • Die Begriffe „links”, „rechts”, „vorne”, „hinten”, „oben”, „unten”, „über”, „unter” und der gleichen in der Beschreibung und in den Ansprüchen werden, wenn überhaupt, zum Zwecke der Beschreibung verwendet, und werden nicht notwendigerweise zur Beschreibung von permanenten relativen Positionen verwendet. Es ist selbstverständlich, dass die so verwendeten Begriffe unter angemessenen Umständen untereinander austauschbar sind, derart, dass die hierin beschriebenen erfindungsgemäßen Ausführungsformen beispielsweise in der Lage sind, in anderen Richtungen betrieben zu werden, neben denjenigen, die hierin veranschaulicht oder anderweitig beschrieben sind. Der Begriff „gekoppelt”, wie hierin verwendet, wird definiert als direkt oder indirekt auf eine elektrische oder nicht-elektrische Art und Weise verbunden. Objekte, die hierin als „angrenzend” zueinander beschrieben sind, können in physischem Kontakt zueinander sein, in unmittelbarer Nähe zueinander sein, oder in dem gleichen allgemeinen Bereich oder Gebiet zueinander sein, wie für den Kontext angemessen ist, in dem der Ausdruck verwendet wird. Vorkommnisse des Ausdrucks „bei einer Ausführungsform” beziehen sich hierin nicht notwendigerweise alle auf die gleiche Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG DER ZEICHNUNGEN
  • Bei einer erfindungsgemäßen Ausführungsform umfasst ein Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung das Identifizieren eines quadratischen Optimierungsproblems, das der kollisionsfreien Geschwindigkeit entspricht, und das Finden einer genauen Lösung für das quadratische Optimierungsproblem, indem ein geometrischer Ansatz verwendet wird.
  • Menschenmassensimulation in virtuellen Welten wird unter Anbetracht des Aufkommens von sozialen Netzwerkseiten in 3D immer wichtiger. Gleichermaßen ist Menschenmassensimulation eine immer wichtiger werdende Komponente des A.I.-Teils der visuellen Simulationsschleife. Das Berechnen von kollisionsfreien Geschwindigkeiten der Agenten ist der zeitaufwendigste Teil des Menschenmassensimulationsalgorithmus. Das heutzutage am häufigsten verwendete Verfahren nennt sich reziprokes Geschwindigkeitshindernis (Reciprocal Velocity Obstacle, RVO), wobei Hinderniskegel für einen Agenten in dem Geschwindigkeitsintervall gebildet werden, und eine Geschwindigkeit wird berechnet, die die Zeit bis zur Kollision mit diesen Kegeln maximiert. Der Algorithmus verwendet ein abtastbasiertes Verfahren, wobei ein Satz an 200–300 Abtastungen aus einer gleichmäßigen Verteilung von Punkten ausgewählt wird, und die Abtastung, die die Zeit bis zur Kollision maximiert, wird als die Geschwindigkeit für den nächsten Zeitschritt des Agenten ausgewählt. Bei diesem Verfahren ist nicht einmal sicher, ob eine kollisionsfreie Geschwindigkeit gefunden wird, und es führt tatsächlich oft zu Kollisionen unter Agenten.
  • Im Gegensatz dazu formulieren die erfindungsgemäßen Ausführungsformen das kollisionsfreie Geschwindigkeitsproblem als ein quadratisches Optimierungsproblem, und lösen dies unter Verwendung eines geometrischen Ansatzes genau, wie nachstehend weiter beschrieben wird. (Ein quadratisches Optimierungsproblem sucht einen optimalen Wert, wobei die Optimierungsfunktion quadratisch ist und die Beschränkungsfunktionen linear sind.) Erfindungsgemäße Ausführungsformen ermöglichen, dass lokale Kollisionsverhinderungsgeschwindigkeiten der Agenten wesentlich schneller als bei derzeit verwendeten Verfahren berechnet werden können, und ermöglichen die Generation realistischer 3D-Menschenmassensimulationen, neuer Anwendungsfallszenarien und reicherer Benutzererfahrung. Die offenbarten Verfahren sind ebenfalls anwendbar bei modernen 3D-Spielen, da diese ein spezifisches Beispiel virtueller Welten sind.
  • Unter jetziger Bezugnahme auf die Zeichnungen, ist 1 eine Darstellung eines einfachen Menschenmassensimulationsszenarios 100 im Geschwindigkeitsintervall, das drei Agenten involviert, gemäß einer erfindungsgemäßen Ausführungsform. Wie in 1 veranschaulicht, beinhalten die drei Agenten einen Agenten 110 zusammen mit Agenten 120 und 130, die Agent 110 meiden muss. Pfeile 115 (einer für jeden der Agenten 110, 120 und 130) stellen die bevorzugte Geschwindigkeit (z. B. unter Verwendung von Berechnungen gemäß erfindungsgemäßer Ausführungsformen gefunden) für jeden Agenten in dem nächsten Frame dar. Hinderniskegel 125 und 135 stellen die Geschwindigkeitshindernisse für Agent 110 dar, die sich entsprechend auf Agenten 120 bzw. 130 beziehen. Diese Geschwindigkeitshindernisse bilden die Geschwindigkeitsbereiche, die zu Kollisionen mit den anderen Agenten führen. Mit anderen Worten entspricht jeder Punkt innerhalb der Kegel einer Geschwindigkeit, die schließlich in einer Kollision zwischen Agent 110 und einem oder beiden der Agenten 120 und 130 resultiert (solange diese Agenten eine konstante Geschwindigkeit aufrechterhalten), während jeder Punkt außerhalb beider Kegel einer kollisionsfreien Geschwindigkeit entspricht. Selbstverständlich können Agenten 120 und 130 sehr wohl von einem Moment zum nächsten Änderungen bei der Geschwindigkeit zeigen, wodurch die Annahme konstanter Geschwindigkeit eine Fehleinschätzung ist, da aber die Hinderniskegel jeden Zeitschritt oder Aktualisierungsframe aktualisiert werden, wird dieses potentielle Problem abgeschwächt.
  • Wie gezeigt, überschneidet sich der Geschwindigkeitspfeil 115 für Agent 110 mit Hinderniskegel 125, was bedeutet, dass eine Kollision mit Agent 120 kurz bevor steht. Eine neue Geschwindigkeit für Agent 110 muss daher berechnet werden, um die Kollision zu verhindern; diese neue Geschwindigkeit sollte außerhalb beider Hinderniskegel liegen. Unter anhaltender Bezugnahme auf 1, wird solch eine neue Geschwindigkeit durch einen Pfeil 117 dargestellt. Da diese neue Geschwindigkeit außerhalb Hinderniskegel 125 und 135 liegt, wird diese (basierend auf den Informationen, die zu der Zeit, die in der Figur abgebildet ist, bekannt sind) es Agent 110 erlauben, eine Kollision mit Agenten 120 und 130 zu vermeiden. Selbstverständlich stellt Pfeil 117 nur eine von vielen möglichen kollisionsfreien Geschwindigkeiten dar. Diese bestimmte Geschwindigkeit wurde ausgewählt, da sie außerhalb aller Hinderniskegel liegt, und der Anfangsgeschwindigkeit am nächstgelegenen ist, daher werden abrupte Änderungen bei der Geschwindigkeit für Agent 110 minimiert, und gleichmäßige und natürliche Bewegung wird ermöglicht. Die Art und Weise, auf die diese nächstgelegene Geschwindigkeit ausgewählt wird, wird nun detaillierter beschrieben.
  • Wie erwähnt, berechnen erfindungsgemäße Ausführungsformen die neue (kollisionsfreie) Geschwindigkeit (die, was nicht vergessen werden darf, ein Punkt in einem 2D-Geschwindigkeitsintervall ist), die außerhalb aller Hinderniskegel liegt, und am geringsten von dem Anfangsgeschwindigkeitspunkt abweicht. Dies kann durchgeführt werden, indem der euklidische Abstand der neuen Geschwindigkeit zu der Anfangsgeschwindigkeit minimiert wird, um das folgende quadratische Optimierungsproblem zu erhalten (in dem (x0, y0) die Anfangsgeschwindigkeit darstellt, und (x, y) die neue Geschwindigkeit des betreffenden Agenten darstellt): Minimieren von (x – x0)2 + (y – y0)2, sodass Alx + Bly < Cl für alle Kegelsegmente ist. (1)
  • Für N-Kegel gibt es 2N solcher (linearer) Beschränkungen
  • Anstelle der Verwendung von Verfahren, wie z. B. das Innenpunkt-, Aktivsatz- oder konjugierte Gradienten-Verfahren, nutzen erfindungsgemäße Ausführungsformen die geometrische Natur des Menschenmassensimulationsproblems aus, um die resultierende Geschwindigkeit (x, y) geometrisch zu berechnen. Beispielsweise kann die angemessene resultierende Geschwindigkeit visualisiert werden, indem Hinderniskegel im Geschwindigkeitsintervall manipuliert werden, wie veranschaulicht in 2.
  • 2 veranschaulicht einen Hinderniskegel 225 und einen Hinderniskegel 235, die beide für einen betreffenden Agenten (nicht gezeigt) als ein Ergebnis der Gegenwart von anderen Agenten in der Nähe (ebenfalls nicht gezeigt) aufkommen. Eine Anfangsgeschwindigkeit für den betreffenden Agenten ist durch einen Punkt 215 dargestellt. Erfindungsgemäße Ausführungsformen fordern das Auftrennen von Hinderniskegeln 225 und 235 in „Segmente”, die Längen der Kegelgrenzlinien sind, die von einem Linienende oder von einer Überschneidung mit einem anderen Liniensegment beendet werden. (Durch Veranschaulichung zeigt 2 beispielsweise ein Liniensegment 237 innerhalb Hinderniskegel 235, und zeigt weiter Liniensegmente 227 und 228 innerhalb Hinderniskegel 225.) Als nächstes werden die Kegelsegmente in „Innen-” und „Außen-”bereiche aufgeteilt, abhängig von ihrem Standort entweder innerhalb oder außerhalb der anderen Kegel, wie veranschaulicht (wobei „Außen-”bereiche Bereiche auf Kegelgrenzen beinhalten, vorausgesetzt, diese befinden sich nicht innerhalb irgendwelcher anderer Kegel). Das Testen von Innen-/Außenkegelsegmenten ist im Grunde genommen eine lineare Beschränkungsüberprüfung, und kann durch einen Ausdruck der Form Ax + By < C dargestellt werden. Nach der Aufteilung in Innen- und Außensegmente wird der Mindestabstand eines jeden Segments zu dem Anfangspunkt berechnet, um den nächstgelegenen Geschwindigkeitspunkt eines jeden Segments zu finden (d. h. der Punkt auf jedem Segment, der dem Anfangsgeschwindigkeitspunkt am nächstgelegenen ist), und anschließend wird von diesen nächstgelegenen Punkten der gesamttechnisch nächstgelegene Geschwindigkeitspunkt als die neue Geschwindigkeit ausgewählt. Dieser Punkt ist in 2 durch einen Punkt 217 dargestellt.
  • Bei einigen Szenarien kann das Finden einer Lösung nicht möglich sein. In diesen Fällen wird die unbedeutendste Beschränkung entfernt (z. B. der Agent, der am unwichtigsten für den betreffenden Agenten ist, wird ignoriert), und das Optimierungsproblem wird gemäß der vorstehend dargelegten Schritte gelöst. Beispielsweise kann der unwichtigste Agent als der Agent genommen werden, der am weitesten von dem betreffenden Agenten entfernt ist, oder der Agent, der sich in eine Richtung bewegt, die direkt entgegengesetzt der Bewegung des betreffenden Agenten ist, oder die den betreffenden Agenten ansonsten am unwahrscheinlichsten beeinflussen kann.
  • Erfindungsgemäße Ausführungsformen ermöglichen Menschenmassensimulationsausführungszeiten (für eine Anzahl an Agenten, die zwischen 100 und 250.000 und mehr variiert), deren Größenordnung schneller ist, als die besten Ausführungszeiten, über die in der Literatur berichtet wird. Außerdem skalieren erfindungsgemäße Ausführungsformen bei großen Anzahlen an Kernen (32 und mehr) fast linear, und können Parallelismus auf Datenebene ausnutzen, um noch schnellere Beschleunigungen zu erzielen. Auf einem 8-Kern Intel Penryn System wurde beispielsweise gesamttechnisch ein 7 × paralleles Skalieren beobachtet. Wenn mit einem Mehrkernsimulator simuliert wurde, wurde ein 29 × Skalieren auf 32 Kernen erreicht. Insgesamt, auf einem 8-Kern, 3.2 GHz Penryn System, sind erfindungsgemäße Ausführungsformen in der Lage, 15.000 Agenten bei 58 Frames pro Sekunde (frames per second, FPS), und 5.000 Agenten in einer komplexen Umgebung bei 121 FPS zu simulieren.
  • Die vorangehenden Ergebnisse wurden erhalten, und erfindungsgemäße Ausführungsformen wurden getestet und mit bestehenden Verfahren verglichen, indem Eingabedaten verwendet wurden, wie sie nun beschrieben werden.
  • Kreis-100: 100 Agenten starten gleichmäßig um einen Kreis herum angeordnet, und versuchen sich direkt durch den Kreis zu ihrer antipodischen Position auf der anderen Seite zu bewegen. Das Szenario wird sehr überfüllt, wenn alle Agenten in der Mitte aufeinandertreffen, was zu einem Wirbelverhalten führt.
  • Vier-Flüsse: 2.000 Agenten sind als vier Flüsse organisiert, die entlang der Diagonalen eines Quadrats gehen. Gleichmäßige Bewegung, Spurbildung und einige Wirbel werden beobachtet.
  • Hin- und Herbewegung: Zwischen 10 und 100 Agenten bewegen sich entlang einer Linie hin- und her-. Dieser Test wurde parallel mit OpenSteer (eine C++ Library, um bei der Ausgestaltung von Führungsverhalten für autonome Charaktere bei Spielen und Animationen zu helfen) betrieben, um die Anzahl an Kollisionen von unmodifiziertem OpenSteer gegen Kollisionen von OpenSteer in Kombination mit erfindungsgemäßen Ausführungsformen zu vergleichen.
  • Gebäudeevakuierung: Agenten werden in unterschiedlichen Räumen eines Bürogebäudes in Anfangspositionen aufgestellt. Die Szene hat 218 Hindernisse, und der Plan besteht aus 429 Knoten und 7.200 Kanten. Die Agenten bewegen sich zu den Zielpositionen hin, die den Ausgangsschildern entsprechen. Es wurden drei Versionen dieses Szenarios mit 500, 1.000 bzw. 5.000 Agenten verwendet.
  • Stadionszene: Dies simuliert die Bewegung von 25.000 Agenten beim Aufstehen aus ihren Sitzen und ihrem Austritt aus dem Stadion. Die Szene hat in etwa 1.400 Hindernisse, und der Plan besteht aus nahezu 2.000 Knoten und 3.200 Kanten. Die Agenten bewegen sich entlang der Korridore, was zu einer Verstopfung und dichtgepackten Szenarien führt.
  • Stadtsimulation: Ein Stadtmodell mit Gebäuden und Straßen sowie 1.500 Hindernissen wurde verwendet. Der Plan hat 480 Knoten und 916 Kanten. Die Bewegung unterschiedlicher Agenten wird simuliert, wie sie in der Stadt und bei Überschneidungen umherlaufen. Die Agenten bewegen sich unterschiedlich schnell, und überholen sich gegenseitig, und verhindern Kollisionen mit entgegenkommenden Agenten. Es wurden drei Versionen dieses Szenarios mit 10.000, 100.000 bzw. 250.000 Agenten verwendet.
  • 3 ist ein Ablaufdiagramm, das ein Verfahren 300 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform. Die kollisionsfreie Geschwindigkeit wird unter Verwendung eines Rechengeräts berechnet. Bei einer Ausführungsform kann das Rechengerät über ein Kommunikationsnetzwerk mit einem zweiten Rechengerät verbunden werden.
  • Ein Schritt 310 von Verfahren 300 ist es, ein quadratisches Optimierungsproblem zu identifizieren, das der kollisionsfreien Geschwindigkeit entspricht. Beispielsweise kann das quadratische Optimierungsproblem gleich dem Ausdruck (1) sein, der vorstehend erscheint. Als ein weiteres Beispiel kann das Rechengerät ein Client-Computer sein, das zweite Rechengerät kann ein Server sein, und das Kommunikationsnetzwerk kann das Internet sein.
  • Ein Schritt 320 von Verfahren 300 ist es, eine genaue Lösung bei dem Rechengerät für das quadratische Optimierungsproblem zu finden, indem ein geometrischer Ansatz verwendet wird. Bei bestimmten Ausführungsformen involviert der geometrische Ansatz das Identifizieren von Hinderniskegeln für den Agenten in einem Geschwindigkeitsintervall, und das Finden eines Punktes, der außerhalb der Hinderniskegel liegt (wobei der Punkt die kollisionsfreie Geschwindigkeit darstellt).
  • Bei einigen Ausführungsformen umfasst das Finden des (kollisionsfreien Geschwindigkeits-)Punkts das Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten, das Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen, das Berechnen (für jedes Hinderniskegelgrenzsegment in dem Teilsatz) eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht, und das Auswählen eines kleinsten Mindestabstands der berechneten Mindestabstände. Dieser Kleinste der Mindestabstände wird der betreffende Punkt, d. h. die kollisionsfreie Geschwindigkeit.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren 400 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung veranschaulicht, in der der Agent eine Anfangsgeschwindigkeit aufweist, und mit einer Vielzahl von Hinderniskegeln verbunden ist, die in einem Geschwindigkeitsintervall verbleiben, gemäß einer erfindungsgemäßen Ausführungsform. Verfahren 400 behandelt eine Situation, die ähnlich ist zu derjenigen, die von Verfahren 300 behandelt wird, die aber auf eine andere Art und Weise beschrieben wird.
  • Ein Schritt 410 von Verfahren 400 liegt darin, alle Grenzsegmente der Hinderniskegel, die außerhalb aller anderen Hinderniskegel liegen, als ein Außengrenzsegment zu identifizieren. Beispielsweise können die Hinderniskegel ähnlich zu Hinderniskegeln 125, 135, 225 und 235 sein, die in 1 und 2 gezeigt sind, und die Außengrenzsegmente können wie vorstehend in der Erörterung von 2 definiert sein. Wie vorstehend erwähnt, umfasst in Situationen, wo kein Außengrenzsegment besteht, das Verfahren weiter das Ignorieren eines der Hinderniskegel, z. B. der Hinderniskegel, der den Agenten am unwahrscheinlichsten beeinflusst oder, allgemeiner, ein Hinderniskegel, der den Agenten am unwahrscheinlichsten als ein anderer Hinderniskegel beeinflusst. Mögliche Identitäten solcher Kegel wurden vorstehend erörtert.
  • Ein Schritt 420 von Verfahren 400 liegt darin, für jedes Außengrenzsegment einen Mindestabstand des Außengrenzsegments zu der Anfangsgeschwindigkeit zu berechnen. Diese Berechnung kann erzielt werden, indem ganz einfach der euklidische Abstand (unter Verwendung von Standardtechniken) zwischen Punkten in einem Geschwindigkeitsintervall gemessen wird.
  • Ein Schritt 430 von Verfahren 400 liegt darin, eine Geschwindigkeit als die kollisionsfreie Geschwindigkeit auszuwählen, die dem kleinsten berechneten Mindestabstand entspricht.
  • 5 ist ein Ablaufdiagramm, das ein Verfahren 500 zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Anwendung einer virtuellen Welt veranschaulicht, gemäß einer erfindungsgemäßen Ausführungsform. Verfahren 500 behandelt eine Situation, die ähnlich ist zu derjenigen, die von Verfahren 300 und 400 behandelt wird, die aber auf eine andere Art und Weise beschrieben wird. Jeder der Schritte 510550 von Verfahren 500 wird für jeden Bildaktualisierungframe oder Zeitschritt einer visuellen Simulationsschleife der Anwendung einer virtuellen Welt ausgeführt.
  • Ein Schritt 510 von Verfahren 500 liegt darin, eine Anfangsgeschwindigkeit für den Agenten zu erhalten. Es ist anzumerken, dass hierfür keine tatsächliche Berechnung erforderlich ist (obwohl dies zulässig ist); es ist lediglich erforderlich, dass die Anfangsgeschwindigkeit bekannt ist, bevor die nachfolgenden Schritte ausgeführt werden. Daher kann die Anfangsgeschwindigkeit berechnet werden, die von dem Server der virtuellen Welt empfangen wird, oder auf eine andere Art und Weise erhalten wird.
  • Ein Schritt 520 von Verfahren 500 liegt darin, einen Hinderniskegel in einem Geschwindigkeitsintervall für jeden fremden Agenten in der Anwendung einer virtuellen Welt auszugestalten, der innerhalb eines bestimmten Abstands zu dem Agenten lokalisiert ist. Wie vorstehend zuerst beschrieben, stellt jeder solche Hinderniskegel einen Satz aller Geschwindigkeiten dar, die in einer Kollision zwischen dem Agenten und einem bestimmten fremden Agenten resultieren, wobei angenommen wird, dass sich bei dem bestimmten fremden Agenten die Geschwindigkeit nicht ändert.
  • Ein Schritt 530 von Verfahren 500 liegt darin, eine Vielzahl möglicher neuer Geschwindigkeiten für den Agenten zu identifizieren, von denen jede außerhalb aller Hinderniskegel liegt. Bei einer Ausführungsformen umfasst Schritt 530 das Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten, das Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen, und für jedes Hinderniskegelgrenzsegment in dem Teilsatz das Berechnen eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht.
  • Ein Schritt 540 von Verfahren 500 liegt darin, einen Abstand zu der Anfangsgeschwindigkeit zu jeder der möglichen neuen Geschwindigkeiten zu bestimmen, um eine bestimmte Geschwindigkeit der möglichen neuen Geschwindigkeiten zu finden, die der Anfangsgeschwindigkeit am nächstgelegenen ist. Bei einer Ausführungsform umfasst das Finden der bestimmten Geschwindigkeit der möglichen neuen Geschwindigkeiten das Minimieren von (x – x0)2 + (y – y0)2 derart, dass Alx + Bly < Cl für jeden der Hinderniskegel, wobei (x0, y0) die Anfangsgeschwindigkeit ist, (x, y) die kollisionsfreie Geschwindigkeit des Agenten ist, und Alx + Bly < Cl eine lineare Beschränkungsüberprüfung ist.
  • Ein Schritt 550 von Verfahren 500 liegt darin, die nächstgelegene Geschwindigkeit einer Vielzahl neuer Geschwindigkeiten als die kollisionsfreie Geschwindigkeit für den Bildaktualisierungsframe auszuwählen.
  • Obwohl die Erfindung unter Bezugnahme auf spezifische Ausführungsformen beschrieben wurde, ist es für Fachleute selbstverständlich, dass verschiedene Änderungen unternommen werden können, ohne vom Geist oder Umfang der Erfindung abzurücken. Dementsprechend ist die Offenbarung der erfindungsgemäßen Ausführungsformen zur Veranschaulichung des Umfangs der Erfindung gedacht und soll diese nicht einschränken. Es ist beabsichtigt, dass der Umfang der Erfindung nur in dem Ausmaß beschränkt ist, wie dies von den angehängten Ansprüchen erfordert wird. Beispielsweise wird ein Fachmann sofort erkennen, dass die Menschenmassensimulationsberechnungsverfahren und darauf bezogene Verfahren, die hierin erörtert werden, in einer Vielfalt von Ausführungsformen implementiert werden können, und dass die vorangehende Erörterung von bestimmten Ausführungsformen dieser Ausführungsformen nicht notwendigerweise eine vollständige Beschreibung aller möglichen Ausführungsformen darstellt.
  • Außerdem wurden der Nutzen, andere Vorteile sowie Problemlösungen hinsichtlich spezifischer Ausführungsformen beschrieben. Der Nutzen, die Vorteile, Problemlösungen und jede(s) Element(e), die dafür sorgen können, dass jeglicher Nutzen, Vorteil oder Lösung auftritt oder stärker hervorkommt, sind jedoch nicht als kritische, erforderliche oder wesentliche Merkmale oder Elemente irgendeines oder aller der Ansprüche auszulegen.
  • Außerdem sind hierin offenbarte Ausführungsformen und Beschränkungen unter der Widmungsdoktrin nicht der Allgemeinheit gewidmet, wenn die Ausführungsformen und/oder Beschränkungen: (1) nicht ausdrücklich in den Ansprüchen beansprucht werden; und (2) potentielle Äquivalente von ausgedrückten Elementen und/oder Beschränkungen in den Ansprüchen unter der Äquivalentdoktrin sind.

Claims (10)

  1. Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung unter Verwendung eines Rechengeräts, wobei das Verfahren umfasst: Identifizieren eines quadratischen Optimierungsproblems, das der kollisionsfreien Geschwindigkeit entspricht; und Finden einer genauen Lösung für das quadratische Optimierungsproblem bei dem Rechengerät, indem ein geometrischer Ansatz verwendet wird.
  2. Verfahren nach Anspruch 1, wobei: der geometrische Ansatz involviert: Identifizieren von Hinderniskegeln für den Agenten in einem Geschwindigkeitsintervall; und Finden eines Punktes, der außerhalb der Hinderniskegel liegt, wobei der Punkt die kollisionsfreie Geschwindigkeit darstellt.
  3. Verfahren nach Anspruch 2, wobei: das Finden des Punktes umfasst: Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten; Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen; Berechnen, für jedes Hinderniskegelgrenzsegment in dem Teilsatz, eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht; und Auswählen eines kleinsten Mindestabstands der berechneten Mindestabstände.
  4. Verfahren nach Anspruch 1, wobei: das quadratische Optimierungsproblem Minimieren von (x – x0)2 + (y – y0)2 umfasst, derart, dass Alx + Bly < Cl für alle Segmente der Hinderniskegel, wobei (x0, y0) eine Anfangsgeschwindigkeit des Agenten ist, (x, y) die kollisionsfreie Geschwindigkeit des Agenten ist, und Alx + Bly < Cl eine lineare Beschränkungsüberprüfung ist.
  5. Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung, in der der Agent eine Anfangsgeschwindigkeit aufweist, und mit einer Vielzahl von Hinderniskegeln verbunden ist, die in einem Geschwindigkeitsintervall verbleiben, wobei das Verfahren umfasst: Identifizieren aller Grenzsegmente der Hinderniskegel, die außerhalb aller anderen Hinderniskegel liegen, als ein Außengrenzsegment; Berechnen, für jedes Außengrenzsegment, eines Mindestabstands des Außengrenzsegments zu der Anfangsgeschwindigkeit; und Auswählen einer Geschwindigkeit als die kollisionsfreie Geschwindigkeit, die einem kleinsten berechneten Mindestabstand entspricht.
  6. Verfahren nach Anspruch 5, weiter umfassend: Ignorieren von einem der Hinderniskegel, in Fällen, wo kein Außengrenzsegment besteht.
  7. Verfahren nach Anspruch 6, wobei: der ignorierte Hinderniskegel der Hinderniskegel ist, der den Agenten am unwahrscheinlichsten beeinflusst.
  8. Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Anwendung einer virtuellen Welt, wobei das Verfahren umfasst: für jeden Bildaktualisierungsframe einer visuellen Simulationsschleife für die Anwendung einer virtuellen Welt: Erhalten einer Anfangsgeschwindigkeit für den Agenten; Ausgestalten eines Hinderniskegels in einem Geschwindigkeitsintervall für jeden fremden Agenten in der Anwendung einer virtuellen Welt, der innerhalb eines bestimmten Abstands zu dem Agenten lokalisiert ist, wobei jeder solche Hinderniskegel einen Satz aller Geschwindigkeiten darstellt, die in einer Kollision zwischen dem Agenten und einem bestimmten fremden Agenten resultieren, wobei angenommen wird, dass sich für den bestimmten fremden Agenten die Geschwindigkeit nicht ändert; Identifizieren einer Vielzahl möglicher neuer Geschwindigkeiten für den Agenten, von denen jede außerhalb aller Hinderniskegel liegt; Bestimmen eines Abstands zu der Anfangsgeschwindigkeit zu jeder der möglichen neuen Geschwindigkeiten, um eine bestimmte Geschwindigkeit der möglichen neuen Geschwindigkeiten zu finden, die der Anfangsgeschwindigkeit am nächstgelegenen ist; und Auswählen der nächstgelegenen Geschwindigkeit einer Vielzahl möglicher neuer Geschwindigkeiten als die kollisionsfreie Geschwindigkeit für den Bildaktualisierungsframe.
  9. Verfahren nach Anspruch 8, wobei: das Identifizieren der Vielzahl möglicher neuer Geschwindigkeiten umfasst: Identifizieren einer Vielzahl von Hinderniskegelgrenzsegmenten; Identifizieren eines Teilsatzes der Hinderniskegelgrenzsegmente, die außerhalb aller Hinderniskegel liegen; und Berechnen, für jedes Hinderniskegelgrenzsegment in dem Teilsatz, eines Mindestabstands zu einem Anfangspunkt in dem Geschwindigkeitsintervall, der einer Anfangsgeschwindigkeit des Agenten entspricht.
  10. Verfahren nach Anspruch 8, wobei: das Finden der bestimmten einen Geschwindigkeit der möglichen neuen Geschwindigkeiten das Minimieren von (x – x0)2 + (y – y0)2 umfasst, derart, dass Alx + Bly < Cl für jeden der Hinderniskegel, wobei (x0, y0) die Anfangsgeschwindigkeit ist, (x, y) die kollisionsfreie Geschwindigkeit des Agenten ist, und Alx + Bly < Cl eine lineare Beschränkungsüberprüfung ist.
DE102010055708A 2009-12-29 2010-12-22 Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung Withdrawn DE102010055708A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/655,362 2009-12-29
US12/655,362 US20110161060A1 (en) 2009-12-29 2009-12-29 Optimization-Based exact formulation and solution of crowd simulation in virtual worlds

Publications (1)

Publication Number Publication Date
DE102010055708A1 true DE102010055708A1 (de) 2012-05-10

Family

ID=43598684

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010055708A Withdrawn DE102010055708A1 (de) 2009-12-29 2010-12-22 Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung

Country Status (6)

Country Link
US (1) US20110161060A1 (de)
CN (1) CN102110311A (de)
DE (1) DE102010055708A1 (de)
GB (1) GB2476714A (de)
RU (1) RU2482541C2 (de)
TW (1) TWI512679B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10109097B2 (en) 2011-08-01 2018-10-23 Autodesk, Inc. Dynamic collision avoidance for crowd simulation over structured paths that intersect at waypoints
TWI599988B (zh) * 2012-04-23 2017-09-21 天門有限公司 製作內容細膩的視訊之方法及其相關之電腦程式與電腦可讀取媒體
CN104008562B (zh) * 2014-06-06 2017-05-31 东南大学 一种面向用户规划的虚拟人群仿真框架
CN104809743B (zh) * 2015-04-23 2019-07-26 清华大学 高密度人群踩踏事故风险计算与预警方法
CN105589464B (zh) * 2016-03-28 2019-02-26 哈尔滨工程大学 一种基于速度障碍法的uuv动态避障方法
IL303608A (en) 2016-03-31 2023-08-01 Magic Leap Inc Interactions with 3D virtual objects using pose controllers and multiple degrees of freedom
CN112650232B (zh) * 2020-12-15 2023-08-22 大连海事大学 一种结合colrges的逆速度障碍法动态避障方法
CN116036603B (zh) * 2023-01-28 2023-05-30 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机及可读存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW353741B (en) * 1997-09-26 1999-03-01 Inventec Corp Method of determining collision in a virtual space and processing method of the determined collision points
WO2003096054A2 (en) * 2002-05-10 2003-11-20 Honda Giken Kogyo Kabushiki Kaisha Real-time target tracking of an unpredictable target amid unknown obstacles
US7188056B2 (en) * 2002-09-09 2007-03-06 Maia Institute Method and apparatus of simulating movement of an autonomous entity through an environment
US7797107B2 (en) * 2003-09-16 2010-09-14 Zvi Shiller Method and system for providing warnings concerning an imminent vehicular collision
KR100578942B1 (ko) * 2004-10-18 2006-05-12 한국과학기술원 비례 항법을 이용한 무인 항공기의 충돌 회피 방법 및시스템
JP2006136962A (ja) * 2004-11-11 2006-06-01 Hitachi Ltd 移動ロボット
US20070271079A1 (en) * 2006-05-17 2007-11-22 Kentaro Oguchi Simulator for Vehicle Radio Propagation Including Shadowing Effects
RU2364546C1 (ru) * 2008-01-28 2009-08-20 Институт проблем управления им. В.А. Трапезникова РАН Способ расхождения судна со встречными объектами
KR101021105B1 (ko) * 2008-09-11 2011-03-15 포항공과대학교 산학협력단 초음파 센서를 이용하는 로봇의 지도 작성을 위한 상충이 소거된 최대 근사 우도 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUY, S. J. [et al.]: ClearPath: highly parallel collision avoidance for multi-agent simulation. In: Proceedings of the 2009 ACM SIGGRAPH/Eurographics Symposium on Computer Animation, SCA 2009. New York: Association for Computing Machinery, August 2009, S. 177-187. - ISBN 978-1-60558-610-6 *

Also Published As

Publication number Publication date
US20110161060A1 (en) 2011-06-30
CN102110311A (zh) 2011-06-29
GB201021592D0 (en) 2011-02-02
TW201142744A (en) 2011-12-01
RU2011101372A (ru) 2012-07-20
GB2476714A (en) 2011-07-06
TWI512679B (zh) 2015-12-11
RU2482541C2 (ru) 2013-05-20

Similar Documents

Publication Publication Date Title
DE102010055708A1 (de) Verfahren zum Berechnen einer kollisionsfreien Geschwindigkeit für einen Agenten in einer Menschenmassensimulationsumgebung
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE112019004076T5 (de) Dezentralisiertes verteiltes deep learning
WO2018219522A1 (de) VERFAHREN UND VORRICHTUNG ZUR ERSTELLUNG EINER FAHRSPURGENAUEN STRAßENKARTE
DE112020005360T5 (de) Fein differenzierte optische erkennung in erweiterter realität
DE60124279T2 (de) System und Verfahren zur Anordnung von Kennzeichnungsfeldern oder Beschriftungen in graphischen Wiedergaben
DE112018006189T5 (de) Robuste gradienten-gewichtskomprimierungsschemata für deep-learning-anwendungen
DE112007001789B4 (de) Verfahren zum Bewerten eines Bildes im Hinblick auf eine dominante Linie
DE102013223803A1 (de) Verfahren und Vorrichtung zur Segmentierung eines Belegungsgitters für ein Umfeldmodell eines Fahrerassistenzsystems für ein Fahrzeug
DE112020005095T5 (de) Automatische trennung und extraktion von tabellendaten unter verwendung von maschinellem lernen
DE202016107031U1 (de) Parallelisierte Simulation der Verfügbarkeit von Datenfluss mithilfe stochastischer Prozess- und Datenflusstechnikalgorithmen
DE102018131417A1 (de) Automatische Erzeugung von Fussgängern in einer virtuellen Simulation von Strassenkreuzungen
DE112021002453T5 (de) Iteratives trainieren eines modells für maschinelles lernen
DE102020120479A1 (de) Fusion von Strassenkarten
DE112018001952T5 (de) Verbessertes visuelles dialogsystem für intelligente tutoren
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112020002344T5 (de) Feature engineering zur optimierung von neuronalen netzwerken
DE112020006045T5 (de) Formal sicheres symbolisches bestärkendes lernen anhand von visuellen eingaben
DE202016009145U1 (de) Deep-Learning-basierte funktionale Korrelation von volumetrischen Designs
DE69817107T2 (de) System und Verfahren zur polyhedral Kollisiondetektion
DE102020206705A1 (de) Simulationen mit realistischen sensorfusionsdetektionsschätzungen von objekten
DE102018006332A1 (de) Verfahren zum Ermitteln von Ampelschaltzeiten
DE102020211636A1 (de) Verfahren und Vorrichtung zum Bereitstellen von Daten zum Erstellen einer digitalen Karte
DE112019003764T5 (de) Von der lage der zellen unabhängiges, in bezug auf die gewichtung linear aktualisierbares synaptisches cmos-array
DE102011082304A1 (de) System, Verfahren und Computerprogrammprodukt zum Bestimmen von einem oder mehreren Kontkatpunkten zwischen einem Paar von Objekten

Legal Events

Date Code Title Description
R409 Internal rectification of the legal status completed
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee