Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Prof. Dr.-Ing. Jürgen Roßmann Dr.-Ing. Michael Schluse Dipl.-Inform. Thomas Josef Jung Dipl.-Phys. Malte Rast Institut für Mensch-Maschine-Interaktion, RWTH Aachen Ahornstraße 55, D-52074 Aachen Tel.: 0241 80-26101 Fax: 0241 80-22308 {rossmann;schluse;jung;rast}@mmi.rwth-aachen.de Zusammenfassung Die Entwicklung von Algorithmen zur realitätsnahen Simulation dynamischer virtueller Welten hat im letzten Jahrzehnt große Fortschritte gemacht – im Gegensatz zur realitätsnahen Simulation von Schüttgut. Standardmethoden wie Partikel- oder Starrkörpersimulationen sind auf dieses Problem nur beschränkt anwendbar, da die für eine überzeugende Simulation notwendige große Anzahl von Elementen in Echtzeit nicht zu bewältigen ist. Die hier vorgestellte Schüttgutsimulation verwendet eine spezielle Variante 3-dimensionaler zellulärer Automaten, mit der große Mengen von Elementen auf Kosten einer räumlichen Diskretisierung behandelt werden können. Neben einer realitätsnahen Schüttgutsimulation ist die dynamische Starrkörpersimulation ein weiterer wichtiger Aspekt der Simulation von Baustellenfahrzeugen. Die Kombination beider Verfahren erlaubt die interaktive, physikalisch plausible und realitätsnahe Simulation der Interaktion zwischen Starrkörperdynamik und Schüttgutverhalten. Diese Arbeit führt diese Verfahren zu einem neuen integrierten Simulationsverfahren zusammen. Schlüsselwörter Starrkörperdynamiksimulation, Schüttgutsimulation, zelluläre Automaten, Fahrzeugsimulation Seite 32 1 J. Roßmann, M. Schluse, T. J. Jung, M.Rast Motivation für die Kombination von Schüttgutsimulation mit Verfahren der Starrkörperdynamik Die Entwicklung von Algorithmen zur realitätsnahen Simulation dynamischer virtueller Welten hat im letzten Jahrzehnt große Fortschritte gemacht. Dadurch wurde die Simulation großer Starrkörpersysteme mit flexiblen Elementen oder virtueller Menschenmassen möglich, um nur zwei Beispiele zu nennen. Aber ein Teilbereich fehlt bisher – selbst in modernen offline animierten Filmen – die realitätsnahe Simulation von Schüttgut. Bis jetzt finden fast alle VR-Anwendungen auf entsprechend texturiertem starrem Untergrund statt. Insbesondere für die realitätsnahe Simulation von Baumaschinen oder von Fahrzeugen für lunare bzw. planetare Erkundungsmissionen ist die Schüttgutsimulation allerdings ein entscheidender Baustein. Aber wie kann diese Lücke geschlossen werden? Standardmethoden wie Partikel- oder Starrkörpersimulationen sind auf dieses Problem nur beschränkt anwendbar; die für eine überzeugende Simulation notwendige große Anzahl von Elementen ist in Echtzeit nicht zu bewältigen. Für die hier vorgestellte Schüttgutsimulation wird eine spezielle Variante 3-dimensionaler zellulärer Automaten verwendet, mit der große Mengen von Elementen auf Kosten einer räumlichen Diskretisierung behandelt werden können. Der zweite neben der Schüttgutsimulation wichtige Aspekt einer realitätsnahen Simulation von Baufahrzeugen ist die dynamische Starrkörpersimulation. Daher führt die vorliegende Arbeit diese beiden prinzipbedingt völlig unterschiedlich arbeitenden Simulationskomponenten zu einem neuen integrierten Simulationsverfahren zusammen und ermöglicht so eine überzeugende Wechselwirkung der beiden Systeme für die Realisierung neuer überzeugender Simulationsanwendungen. 2 Stand der Technik im Bereich der Simulation von Starrkörperdynamik Die Starrkörperdynamik basiert auf den Sätzen der Erhaltung des Impulses und des Drehimpulses von Newton und Euler. Eine echte Herausforderung bedeutet Simulation von Starrkörperdynamik erst dann, wenn das physikalische Verhalten über Gelenke verbundener Körper bzw. kollidierender Körper simuliert werden soll. Bei der Anwendung für VR-Applikationen werden üblicherweise Vollkoordinatenansätze verfolgt. Hierbei werden die einzelnen Körper zunächst in allen sechs Freiheitsgraden unabhängig voneinander simuliert. Das Verhalten an Gelenken und Kontakten und bei Kollisionen muss zusätzlich betrachtet werden. Hierzu existieren heute im Wesentlichen zwei konkurrierende Methoden: Die Verfahren mit Lagrange-FaktorenFormulierungen (LF-) und rein impulsbasierte Verfahren. Grundlegende Idee ersterer Verfahren ist es, sämtliche Kräfte im System, die zur Einhaltung gewisser Zwangsbedingungen („Constraints“) erforderlich sind, explizit zu berechnen. Zwangsbedingungen werden durch Gelenke und Kontakte impliziert. Hierzu werden sämtliche Bedingungen Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 33 eines Mehrkörperdynamik-Problems in eine mathematische Formulierung gefasst, typischerweise ein sogenanntes (gemischtes) lineares Komplementaritätsproblem ((M)LCP). Die Lösung dieses Problems liefert alle unbekannten Kräfte im System, womit die Simulation des Mehrkörperproblems nach den Bewegungsgesetzen nach Newton und Euler möglich ist. Ein bekannter Vertreter dieses Verfahrens ist die Open Dynamics Engine [ODE-ol], eine Open Source Bibliothek für die Starrkörperdynamik. Das Verfahren ist vielfach beschrieben worden, einen besonders umfassenden und detaillierten Ein- und Überblick liefert [Erl05]. Schnelle Lösungsverfahren für zwei unterschiedliche LF-Formulierungen wurden vorgestellt von David Baraff ([Bar94], [Bar96]). Stewart und Trinkle [Ste95] verbanden das Verfahren erstmalig mit einem impliziten Integrationsschritt, so dass die Lösung ihrer Formulierung nicht auf Kräfte und Beschleunigungen, sondern viel mehr auf Impulse und Geschwindigkeiten führt. Der zweite Ansatz für Vollkoordinaten-Dynamiksimulation wird gemeinhin der impulsbasierte Ansatz genannt. Grundlegende Idee ist nicht, alle Umstände des Mehrkörpersystems in eine mathematische Formulierung zu fassen, sondern die einzelnen Zwangsbedingungen z.B. iterativ unabhängig voneinander zu lösen. Die hier vorgestellten Verfahren zur Kombination von Starrkörperdynamik und Schüttgutsimulation beruhen auf einer LF-Methode, wobei das im Rahmen dieser Arbeit eingesetzte, am Institut für Mensch-Maschine-Interation (MMI) entwickelte Dynamiksimulationsframework beide Verfahren einsetzt. Das folgende Kapitel liefert einen kurzen Einblick in eine LF-Formulierung, da hierin wichtige Grundlagen für die Integration der Schüttgutsimulation gelegt werden. 2.1 Grundlagen der Starrkörperdynamik-Simulation mit LagrangeFaktoren Die Bewegungsgleichungen eines Mehrkörpersystems lassen sich in der Form r v r& M v (t ) = f C + f ext formulieren. Hierin sind: v ⎛ v&1 (t ) ⎞ ⎜v ⎟ ⎜ ω&1 (t ) ⎟ v v& (t ) = ⎜⎜ (..) ⎟⎟ ∈ R 6 n ⎜ vv&n (t ) ⎟ ⎜⎜ v& ⎟⎟ ⎝ ω n (t ) ⎠ ⎡ M1 ⎢ 0 ⎢ M =⎢ 0 ⎢ ⎢ 0 ⎢ 0 ⎣ die als ein Spaltenvektor geschriebenen Schwerpunkts- und Drehbeschleunigungen aller beteiligten n Körper, 0 I1 0 0 0 0 0 (..) 0 0 0 0 0 Mn 0 0 ⎤ 0 ⎥⎥ 0 ⎥ ∈ R 6 n×6 n ⎥ 0 ⎥ I n ⎥⎦ die in einer Matrix zusammengefassten Mas0⎤ senmatrizen mi 0 ⎥⎥, mi : Masse Kör0 mi ⎥⎦ per i) und Trägheitstensoren I i ∈ R 3×3 aller be⎡mi ( M i = ⎢⎢ 0 ⎢⎣ 0 teiligten n Körper, 0 Seite 34 J. Roßmann, M. Schluse, T. J. Jung, M.Rast r f ext ∈ R 6 n der Vektor der externen Kräfte und Drehmomente und r f C ∈ R 6n der Vektor der Zwangskräfte und -momente, hervorgerufen durch die Zwangsbedingungen. r In dieser Vorschrift findet sich nur eine unbekannte Größe: f C , der Vektor der Zwangskräfte und -momente, die zur Erfüllung unterschiedlicher Zwangsbedingungen innerhalb des Mehrkörpersystems notwendig sind. Zwangsbedingungen werden z.B. durch Gelenke und Kontakte impliziert. Sie können sich auf die Positionen, auf die Geschwindigkeiten oder auf die Beschleunigungen der beteiligten Körper beziehen. Dabei gilt, dass man Zwangsbedingungen, die sich wie z.B. Gelenkbedingungen auf die Positionen beziehen, durch Ableitung in geschwindigkeits- oder beschleunigungsrelevante Zwangsbedingungen umwandeln kann. Dieses Konzept wird z. B. in [Wag01] ausführlich behandelt. Im Folgenden wird davon ausgegangen, dass die Zwangsbedingungen auf der Ebene der Körpergeschwindigkeiten definiert sind. In diesem Fall lassen sich diese in eine einheitv v liche, mathematische Formulierung bringen: Jv ≥ b . Hierin sind: J ∈ R m× 6 n v b ∈ Rm v ⎛ v1 (t ) ⎞ ⎜v ⎟ ⎜ ω1 (t ) ⎟ v v (t ) = ⎜ (..) ⎟ ∈ R 6 n ⎜v ⎟ ⎜ v n (t ) ⎟ ⎜v ⎟ ⎝ ω n (t ) ⎠ die sog. Jacobi-Matrix. Sie enthält für jede der m Zwangsbedingungen im System eine Zeile und bei n Körpern 6n Spalten, die rechten Seiten der Zwangsbedingungs-(un-)Gleichungen. Für Gelenk- und Kontaktbedingungen sind die Einträge typischerweise 0 (z.B.: „Die Geschwindigkeit der Körper im Kontaktpunkt entlang der Kontaktnormalen ist größer gleich Null“) und die als ein Spaltenvektor geschriebenen Schwerpunkts- und Drehgeschwindigkeiten aller beteiligten n Körper. Bewegungsgleichungen und Zwangsbedingungen müssen gleichzeitig erfüllt sein. Dazu fehlt ein wichtiger Zusammenhang: Entsprechend dem d’Alembertschen Prinzip der virtuellen Arbeit gilt für die Zwangskräfte, dass sie in genau die gleichen Richtungen zeigen müssen, in denen das System durch die Zwangsbedingungen eingeschränkt ist. Dar v v her gilt f C = J T λ , wobei der Vektor λ ∈ R m die Beträge der Zwangskräfte zur Erfüllung der einzelnen Zwangsbedingungen enthält – die Lagrange Faktoren. Eine Variante zur Zusammenfassung von Bewegungsgleichungen und Zwangsbedingungen setzt die diskretisierten Bewegungsgleichungen, umgestellt nach den Körpergeschwindigkeiten im nächsten Zeitschritt, Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation M r r v r v (t + Δt ) − v (t ) = J T λ + f ext Δt r v r r v (t + Δt ) = v (t ) + M −1 J T λ Δt + M −1 f ext Δt Seite 35 (Gl. 1) ein in die Vorschrift für die Zwangsbedingungen: v v Jv ( t + Δ t ) ≥ b r v v r JM −1 J T λ Δt ≥ b − J v (t ) − M −1 f ext Δt ( (Gl. 2) ) Die Lagrange Faktoren werden zusätzlich eingeschränkt durch obere und untere Grenv v v zen λlow ≤ λ ≤ λhigh . Diese Einschränkungen sind notwendig zur korrekten Formulierung z.B. von Nicht-Durchdringungs-Zwangsbedingungen oder drehmomentbegrenzten Motorbedingungen. So kann die Zwangskraft, die ein Kontakt hervorruft, die beteiligten Körper zwar auseinander drücken, sie jedoch nicht zusammenhalten. Daher gilt, dass der entsprechende Lagrange-Faktor größer gleich null sein muss ( 0 ≤ λi ≤ ∞ ). v Die Lösung dieses Systems nach λ unter Berücksichtigung der Grenzwerte liefert die noch unbekannten Größen der Zwangskräfte. Damit sind alle Beschleunigungen im Mehrkörpersystem unter Berücksichtigung der Zwangsbedingungen bestimmbar und die physikalisch korrekte Simulation ist möglich. 3 Schüttgutsimulation In [ER04] wird der Stand der Technik im Gebiet der Schüttgutsimulation mittels zellulärer Automaten beschrieben. So wurden beispielsweise bereits in [Bax90] und [Kal98] zelluläre Automaten zur Beschreibung von grobgranularen Schüttgütern verwendet. Hier wurde allerdings der Schwerpunkt auf die physikalisch fundierte Formulierung von Stoffgesetzen als Regelsystem eines zellulären Automaten gelegt und Vergleiche zwischen zweidimensionalen Modellen und Experimenten bzgl. Schüttguts in Silos durchgeführt. Der hier vorgestellte Ansatz zielt dagegen auf eine physikalisch plausible, echtzeitfähige, interaktive dreidimensionale Simulation von Schüttgut, beispielsweise für Fahrertraining auf Baufahrzeugen. Wie kann man granulare Materialien für die Simulation von Baufahrzeugen oder von Fahrzeugen für lunare bzw. planetare Erkundungsmissionen modellieren? Die dafür notwendigen großen Schüttgutvolumina sind mit Starrkörpersimulationen oder Partikelsimulationen wie [ZB05], [SOH98], [ON03] nicht in Echtzeit zu bewältigen. Eine Diskretisierung des Raums und geschickte Definition aktiver Bereiche macht die notwendige Menge von Elementen erst beherrschbar. Diese Arbeit schlägt daher in einem neuen Ansatz die Verwendung zellulärer Automaten zur Modellierung von Schüttgut vor, die hierzu allerdings geeignet abgewandelt bzw. erweitert werden müssen. Ein auf den ersten Blick ähnlicher Ansatz wurde in [Pla08] vorgestellt, beschränkt sich aber bisher auf die Modellierung des Untergrundes ohne Möglichkeit zum Aushub. Seite 36 3.1 J. Roßmann, M. Schluse, T. J. Jung, M.Rast Zelluläre Automaten Zelluläre Automaten wurden von S. Ulam und J. v. Neumann in den 40er Jahren ursprünglich als Modelle für selbstreproduzierende biologische Systeme eingeführt. Heute werden zelluläre Automaten z.B. für Reaction-Diffusion-Modelle, Gitter-Gas-Modelle für Flüssigkeitsströmungen oder zur Simulation von Verkehr verwendet [Wei98]. Ein zellulärer Automat (ZA) ist durch folgende Komponenten definiert: • Ein zellulärer (diskreter) Raum S • Eine endliche Nachbarschaft N • Eine Menge von Zuständen Q • Eine lokale Übergangsfunktion δ : Q N → Q Solche zellulären Automaten eignen sich insbesondere zur Beschreibung von Ausbreitungs- und evolutionärer Prozesse, wie z.B. Populationen einfacher Lebensformen, Kristallwachstum oder Temperaturverteilungen in Feuersimulationen. Aber wie verhält es sich mit einer echtzeitfähigen Schüttgutsimulation? 3.2 Ein zellulärer Automat zur Schüttgutsimulation In einem herkömmlichen zellulären Automaten fluktuiert die Zahl der belegten Zellen üblicherweise sehr stark. Für eine Schüttgutsimulation muss allerdings die Erhaltung der Masse – d.h. eine konstante Anzahl belegter Zellen – garantiert sein. Dafür müssten die theoretisch 23⋅3⋅3 ≈ 1.3 ⋅108 möglichen Übergangsregeln für eine 3-dimensionale Nachbarschaft sorgfältig gewählt werden. Die Berücksichtigung von BenutzerInteraktion wie die Bewegung eines Werkzeugs durch den ZA würde die Komplexität eines solchen Regelwerks weiter erhöhen. Aus diesem Grund werden die Beschränkungen aus obiger Definition gelockert und hier eine etwas abgewandelte Definition verwendet: 3 • S = [0, X max ] ⊗ [0, Ymax ] ⊗ [0, Z max ] ⊂ Z • N = NF&K = 6 über Flächen und 8 über Kanten benachbarte Zellen und die Zelle selbst = 15 Nachbarn. Dies ist nur eine Wahl, andere Nachbarschaftskonfigurationen sind möglich. • Die Zellen können besetzt oder leer sein QC = {1,0}. Besetzte Zellen sind mit einem Element assoziiert, das wiederum mehrere Unterzustände haben kann, z. B. Q E = QS ⊗ Q D , wobei QS = {aktiv, inaktiv} zur Optimierung des Algorithmus und Q D = {oben, innen, fallend} für die Visualisierung verwendet wird. • Anstatt einer Übergangsfunktion für den Zustand QC jeder Zelle wird eine Übergangsfunktion für die Position p jedes Elements in einer besetzten Zel- Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 37 le definiert δ' ( N) = Δp . Des Weiteren werden die Übergänge nicht parallel, sondern sequentiell ausgeführt. Dies garantiert eine konstante Anzahl Elemente, d.h. ein konstantes gefülltes Volumen. Die Übergangsfunktion für die Unterzustände der Elemente δ' ' ( N) = q E ∈ Q E entspricht wieder der Standarddefinition. Damit enthält dieser ZA bewegliche, unsterbliche Elemente statt unbeweglicher, kurzlebiger Elemente, was wiederum den Anforderungen viel besser gerecht wird. Auf den ersten Blick geht der Vorteil verloren, dass im ursprünglichen ZA jeder Zellübergang prinzipiell parallel berechnet werden konnte. Allerdings ist die Übergangsfunktion immer noch lokal, sodass die Abarbeitung eines ZA auch weiterhin leicht parallelisiert werden kann, indem man den Zellraum S in passende Unterräume teilt. 3.3 Implementierung Der Zellraum S wird durch einen 3D-Array von Element-Objekten beschrieben. Um das Verhalten des ZA zu veranschaulichen, werden die Elemente zunächst als farbige Würfel dargestellt, wobei die Farbe den Zustand ∈ QS anzeigt. Eine realitätsnahe Visualisierungsvariante wird für die Anwendungsbeispiele in Abschnitt 4 verwendet. 3.3.1 Schwerkraft Die erste Regel, die der ZA befolgen soll, dient der Simulation der Schwerkraft: • δ'GRAV ( N) : Für alle unbesetzten Nachbarn n ∈ N wird zunächst die Projektion der Schwerkraft auf deren Richtung berechnet: ⎞ Aus allen Nachbarn mit wPROJ > wThreshold wird zu⎛ → ⎞ ⎛ → ⎜ g ⎟ ⎜ Δp(n ) ⎟ w PROJ = ⎜ → ⎟ • ⎜ → ⎟ fällig einer als Zielposition ausgewählt, wobei ⎜ | g | ⎟ ⎜ | Δp(n ) | ⎟ ⎠ wPROJ zur Gewichtung verwendet wird. ⎠ ⎝ ⎝ Diese gewichtete Zufallsverteilung ermöglicht eine quasi-kontinuierliche Schwerkraft. Der ZA, der beispielsweise die Ladefläche eines Kipplasters repräsentiert, kann sich relativ zum Weltkoordinatensystem frei bewegen, was in einem sich kontinuierlich drehenden Gravitationsvektor im Koordinatensystem des ZA resultiert. Mit dem Parameter wThreshold ≥ 0 kann der Winkel eingestellt werden, ab dem ein Gefälle ins Rutschen gerät. Unterschiedliche Nachbarschaftskonfigurationen und weitere Regeln verändern das Verhalten des ZA und den Böschungswinkel stabiler Konfigurationen. Allerdings sind aufgrund des diskreten Zellraums S nur diskrete Böschungswinkel möglich. Aus Gründen der Effizienz sollen weder in jedem Takt alle Zellen noch alle Elemente prozessiert werden. Die Verwaltung von Listen aktiver und inaktiver Elemente ermöglicht einen effizienten Algorithmus. Wird ein Element bewegt, aktiviert es alle Nachbarn vor und nach der Bewegung. Wenn ein aktives Element nicht bewegt werden kann, wird es inaktiv. Wenn S eine stabile Konfiguration erreicht hat, sind alle Elemente inak- Seite 38 J. Roßmann, M. Schluse, T. J. Jung, M.Rast tiv und es wird keine Rechenzeit verbraucht. Wenn ein ZA relativ zum Weltkoordinatensystem bewegt wird, werden alle Elemente reaktiviert (s. Bild 1). Bild 1: Verkippung eines Schüttgutbehälters (aktive Elemente hell-, inaktive dunkelgrün) 3.3.2 Hindernisse Zur Beschreibung von Hindernissen innerhalb eines ZA wird ein weiterer Zustand fest zu QS hinzugefügt: QS = {aktiv, inaktiv, fest} . Feste Elemente besetzen Zellen und werden ansonsten nicht in Berechnungen mit einbezogen. Solche Hindernisse werden verwendet um beispielsweise die Geometrie einer Schaufel im Zellraum S eines ZA nachzubilden (s. Bild 2). Bild 2: Links: Verhalten an Hindernissen / Rechts: Detailmodellierung der Schaufelgeometrie im Zellraum Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 39 3.3.3 Bewegung externer Objekte durch den ZA Um ein Werkzeug zu simulieren, welches einen Sandhaufen formt, wird ein Mechanismus benötigt, der Elemente aus Zellen verdrängt, in die das Werkzeug bewegt wird: • Für alle Werkzeug-Objekte wird eine kombinierte Bounding-Box ihrer − KS Ausdehnung im aktuellen und letzten Simulationsschritt BB Werkzeug bet −1,t rechnet, ausgerichtet am Koordinatensystem des Werkzeugs. Schneidet diese keinen ZA, wird sie verworfen. • Für alle ZA, die eine dieser Bounding-Boxen schneiden, wird aus − KS − KS BBWerkzeug eine Bounding-Box BB tZA berechnet, die am Zellraum S −1, t t −1, t ausgerichtet ist. − KS • Für alle besetzten Zellen in BBZA ⊂ S wird überprüft, ob sie in t −1, t Werkzeug − KS BBt −1, t liegen und daraufhin das Element in Bewegungsrichtung des Werkzeugs Δp Werkzeug bewegt. t −1, t • Die Zielposition kann natürlich belegt sein. Ist dies der Fall, wird versucht das Element auf die andere Seite des vor dem Werkzeug befindlichen Volumens zu bewegen. Ist dies aufgrund von Hindernissen oder dem Ende des ZA nicht möglich, wird das Element oberhalb des Volumens platziert. Dies resultiert in Verschiebungs- und Aufhäufungseffekten, die realistischer aussehen als die Beschreibung der Methodik vermuten lässt (siehe auch Kapitel 5). Im Gegensatz zu obiger Annahme ist das vom Werkzeug überstrichene Volumen keine Box. Wenn allerdings der Simulationsschritt klein genug und folglich der Drehwinkel des Werkzeugs pro Schritt klein genug ist, kann dieser Fehler vernachlässigt werden. Bild 3 zeigt ein Beispiel eines durch einen ZA bewegten Objekts. Bild 3: Objekt bewegt sich durch einen ZA und verdrängt kollidierende Elemente. Seite 40 J. Roßmann, M. Schluse, T. J. Jung, M.Rast 3.3.4 Be- und Entladen einer Schaufel Um das Schüttgutvolumen in der Schaufel eines Radladers be- und entladen zu können, werden ein zweiter ZA für die Umgebung eingeführt und Regeln für die Interaktion zweier ZA definiert. Betrachten wir einen „kleinen“ ZA1 (Schaufel) innerhalb eines „großen“ ZA2 (Umgebung). Wenn ein Element in ZA1 den Rand von ZA1 erreicht, wird der Nachbar, der außerhalb von ZA1, aber innerhalb von ZA2 frei ist, als potentielle Zielposition betrachtet. Nun können Elemente von einem ZA in einen anderen analog zu den inneren Bewegungen überführt werden (s. Bild 4). Über eine Kollisionserkennung analog zu Kapitel 3.3.3 können die Elemente aus dem großen stationären ZA2 in den kleinen beweglichen ZA1 zurückgeführt werden (s. Bild 5): Bild 4: Entladen einer Schaufel − KS eines beweg• Für alle stationären ZASTAT, die eine Bounding-Box BB BEW t BEW − KS − KS lichen ZABEW schneiden, wird aus BB t eine Bounding-Box BBSTAT t berechnet, die am Zellraum S ausgerichtet ist. − KS • Für alle besetzten Zellen in BBSTAT ⊂ SSTAT wird überprüft, ob die Position t des Elements in ZABEW frei ist und daraufhin wird das Element dorthin bewegt. Andernfalls belegen zwei Elemente in verschiedenen ZA die gleiche Position. Daraufhin wird ZABEW wie ein kollidierendes Objekt behandelt und verschiebt das Element in dessen Bewegungsrichtung Δp BEW t −1, t wie in Abschnitt 3.3.3 beschrieben. Bild 5: Beladen einer Schaufel Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 41 3.3.5 Visualisierung Zur realitätsnahen Visualisierung wird aus dem ZA eine texturierte Oberfläche mit entsprechenden Normalen generiert (s. Bild 6). Die Verwaltung einer Kopie des Unterraums S' ⊂ S , welcher nur die obersten Elemente aus S enthält, erlaubt eine effiziente Aktualisierung der Oberfläche. Oben ist dabei durch eine ausgewählte Achse des Zellraums definiert. Die Positionen der Elemente in S' werden direkt als Vertices zur Visualisierung der Oberfläche verwendet. Jetzt finden die zusätzlichen Zustände bzw. Darstellungstypen Q D = {oben, innen, fallend} aus Abschnitt 3.2 Verwendung. Jedes sich bewegende Objekt aktualisiert seinen Darstellungstyp und vor und nach der Bewegung die Typen der darüber und darunter liegenden Nachbarn. Wann immer ein Element als oben gesetzt wird, wird seine Kopie in S' aktualisiert. Dem Zustand aktiv der Elemente in S' wird eine neue Bedeutung zugewiesen. Wenn ein Element in S' aktualisiert wird, aktiviert das Element sich selbst und seine direkten Nachbarn ( Δx = ±1 oder Δy = ±1 ). Am Ende jedes Simulationsschrittes werden die Vertexnormalen der aktiven Elemente aktualisiert und die Elemente deaktiviert. Die aktualisierten Vertices und Normalen werden dann an die Grafik-Engine übergeben. Fallende Elemente werden als texturierte Billboards dargestellt. aktiv oben aktiv innen inaktiv oben inaktiv innen fallend Bild 6: 4 Links: Visualisierung von Schüttgutvolumina / Rechts: Illustration der Darstellungstypen Integration von Starrkörper- und Schüttgutsimulation Die Integration von Starrkörper- und Schüttgutsimulation erfordert einen bidirektionalen Datenaustausch zwischen den beiden Simulationskomponenten. Die Rückwirkung der Starrkörper- auf die Schüttgutsimulation ist mit den grundlegenden Algorithmen des hier vorgestellten neuen Verfahrens zur Schüttgutsimulation bereits abgedeckt. Die Seite 42 J. Roßmann, M. Schluse, T. J. Jung, M.Rast durch die Starrkörpersimulation bewegten zellulären Automaten reagieren automatisch mit ihren Schwerkraftbewegungen (siehe Abschnitt 3.3.1) bzw. auf durch sie hindurch bewegte Körper (siehe Abschnitte 3.3.3 und 3.3.4). Eine Bewegung der Elemente eines ZA aufgrund ihrer Trägheit bei externer Bewegung des ZA ist angedacht, allerdings aufgrund der im Rahmen der aktuellen Anwendungsbereiche üblicherweise auftretenden geringen Beschleunigungen noch nicht implementiert. Auf der anderen Seite können Kollisionen von Starrkörpern mit simulierten Schüttgutsystemen aus Sicht der Starrkörpersimulation nicht mit den üblichen Methoden zur Auflösung von Kollisionen behandelt werden. Stattdessen muss die Methodik z. B. ein Eintauchen einer Schaufel in einen Sandhaufen zur Aufnahme von Schüttgut ermöglichen. Daher wurde der Ansatz gewählt, dass Schüttgutsysteme verzögernde Kräfte in die Starrkörpersimulation einbringen können. 4.1 Robustes Aufbringen einer verzögernden Kraft aus der Schüttgutsimulation auf einen Körper des Mehr-Starrkörpersystems Eine verzögernde Kraft, die aus einer Schüttgutsimulation auf das Mehrkörpersystem angewandt werden soll, ist definiert durch ihren Betrag, ihre Richtung und ihren Angriffspunkt an den Starrkörpern der Mehrkörpersimulation. Grundsätzlich bestehen zwei Wege, eine weitere Kraftkomponente in das System zur Mehrkörpersimulation einzubringen. Der offensichtliche ist der Vektor der externen r Kräfte f ext – hierin ist z. B. die Gravitationskraft enthalten. Hier könnten sehr einfach weitere Kräfte und Momente eingebracht werden. Doch eine verzögernde Kraft aus der Schüttgutsimulation ist in Wahrheit eben nicht extern – sie hängt z. B. von der Geschwindigkeit ab, mit der eine Schaufel durch einen Sandhaufen getrieben werden soll. An der diskretisierten Form der Bewegungsgleichungen (s. Gl. 1) wird das resultierende Problem deutlich: Wird eine Schaufel mit hoher Geschwindigkeit in einen Sandhaufen getrieben, tritt kurzzeitig eine sehr große verzögernde Kraft auf – aber eben nur sehr kurzzeitig. Die Geschwindigkeit der Schaufel wird dadurch sehr schnell reduziert und damit sinkt auch die verzögernde Kraft schnell wieder ab. In der Animation der diskretisierten Bewegungsgleichungen wirkt eine externe Kraft jedoch über einen ganzen, diskreten Zeitschritt hinweg. Damit könnte die aufgewendete Kraft nicht nur verzögernd, sondern sogar entgegen der Bewegungsrichtung beschleunigend wirken und die Schaufel aus dem Sandhaufen hinausdrücken. Dieser Weg ist daher nicht sinnvoll. p(t) s(t) Bild 7: Modell eines Starrkörpers f Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 43 Die bessere Alternative ist die Einbringung einer entsprechenden Zwangsbedingung in das System. In der oben beschriebenen mathematischen Formulierung muss die v Zwangsbedingung eine Zielgeschwindigkeit für einen Angriffspunktpunkt p auf dem v v zu verzögernden Körper, eine Kraftwirkrichtung f , f = 1 sowie den Betrag der maximal einzusetzenden Verzögerungskraft f max vorgeben. Aus diesen Komponenten wird wie folgt eine entsprechende Zwangsbedingung formuliert: v Ausgehend von seiner Schwerpunktposition s (t ) , der Geschwindigkeit seines Schwerv v v punkts v (t ) , seiner gegenwärtigen Rotationsgeschwindigkeit ω(t ) und dem Vektor p(t ) vom Schwerpunkt des Körpers zum Angriffspunkt der Kraft ergibt sich die Geschwindigkeit des Angriffspunkts zu v v v v s& (t ) + p& (t ) =v (t ) + p& (t ) v v v =v (t ) + ω (t ) × p (t ) v v v =v (t ) − p (t ) × ω (t ) Da die verzögernde Kraft nur in eine bestimmte Richtung wirken soll, soll auch nur der Teil der Punktgeschwindigkeit verzögert werden, der in diese Richtung verläuft. Der in Kraftrichtung verlaufende Teil der Geschwindigkeit des Angriffspunktes ist: v v f • (v (t ) − v v = f • v (t ) − v v = f • v (t ) − v v p (t ) × ω (t ) ) v v v f • p (t ) × ω (t ) v v v f × p (t ) • ω (t ) Der Eintrag in der Jacobimatrix J aus Gl. 2 für diese Zwangsbedingung in oben beschriebener Formulierung ist damit: ... v f0 v f1 v f2 ( ) v v − f × p (t ) 0 ( ) ( ) v v v v − f × p(t ) 1 − f × p (t ) 2 ... Für die Zielgeschwindigkeit und damit auch für das zu dieser Bedingung gehörende v Element im Vektor b gilt, dass sie größer gleich Null sein müssen. Das bedeutet, die Zwangsbedingung greift nicht, wenn die Schaufel bereits aus dem Haufen hinausgezogen wird. Ebenso gilt für die Größe der verzögernden Kraft, dass sie nur positiv im Sinne ihrer Wirkrichtung sein kann. Denn die Schaufel wird zwar verzögert, wenn sie weiter in den Haufen eindringt, kann jedoch nicht festgehalten werden, wenn sie aus dem Haufen hiv v naus gezogen wird. Damit gilt für die Lagrange Faktoren: λlow = 0, λhigh = f max Δt , da in der oben beschriebenen Formulierung ebenfalls die Lagrange Faktoren multipliziert mit der Zeitschrittweite Δt bestimmt werden. Seite 44 4.2 J. Roßmann, M. Schluse, T. J. Jung, M.Rast Robustes Aufbringen eines verzögernden Drehmoments aus der Schüttgutsimulation auf einen Körper des Mehr-Starrkörpersystem Analog zum Aufbringen einer verzögernden Kraft wird auch ein verzögerndes Drehmoment durch eine Zwangsbedingung in das System eingebracht. Der maximale Betrag des verzögernden Moments sei τ max , seine Wirkrichtung sei τv, τv = 1 . v v v Die Aussagen für die Grenzwerte λlow , λhigh sowie für den Eintrag im Vektor b zur Zwangsbedingung für eine verzögernde Kraft gelten unverändert auch für ein verzögerndes Moment. Lediglich der Eintrag in der Jacobi Matrix ist anzupassen, da sich ein Drehmoment lediglich auf die Rotationsgeschwindigkeit, nicht aber auf die lineare Geschwindigkeit des Starrkörpers auswirkt. Der Drehimpuls eines Starrkörpers ist definiert als Produkt aus seinem Trägheitstensor I und seiner Winkelgeschwindigkeit ω . Das Drehmoment entspricht der zeitlichen Änderung des Drehimpulses: τ= d (Iω ) & = Iω + Iω& dt Vereinfachend wird an dieser Stelle für den Starrkörper ein rotationsunabhängiger Trägheitstensor angenommen, wie ihn eine Kugel mit homogener Dichteverteilung besitzt. Dadurch fällt der erste Summand weg und für das Drehmoment gilt: τ = Iω& . Für den vereinfachend angenommenen Trägheitstensor einer Kugel gilt außerdem, dass alle Elemente der Hauptdiagonalen gleich und alle sonstigen Elemente des Tensors gleich Null sind. Das bedeutet für diesen vereinfachten Fall, dass das Drehmoment und die resultierende Winkelbeschleunigung in dieselbe Richtung zeigen. Mit diesen Annahmen lässt sich leicht der notwendige Eintrag in der Jacobi-Matrix aus Gl. 2 vornehmen: ... 0 0 0 τ 0 τ 1 τ 2 ... 4.3 Rückwirkung der Schüttgutsimulation auf die Starrkörperdynamik Aus Sicht der Schüttgutsimulation muss für diese Vorgehensweise zunächst die Masse, die durch die Elemente eines ZA repräsentiert wird, bestimmt werden. Dazu wird dem Schüttgut eine Dichte zugewiesen (z.B. 1,5g/cm3 für feuchten Sand). Entsprechend der Schrittweite der Diskretisierung lässt sich daraus den Elementen eine Masse zuweisen. Damit kann die Masse des zellulären Automaten, der beispielsweise den Inhalt der Schaufel eines Radladers repräsentiert und in die Starrkörpersimulation integriert ist, am Ende jedes Taktes aktualisiert werden. Eine Aktualisierung des Schwerpunktes ist ebenfalls möglich, allerdings wurde hierauf aufgrund des zusätzlichen Rechenaufwandes zunächst verzichtet. Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 45 Der zweite Schritt ist dann die Rückführung einer abbremsenden Kraft beim Eintreten eines Starrkörpers, z. B. der Schaufel eines Radladers, in einen Sandhaufen. Dafür werden in jedem Schritt aus den Ergebnissen der in den Kapiteln 3.3.3 und 3.3.4 eingeführten Kollisionsbetrachtung mittels heuristischer Regeln die für die Verdrängung der einzelnen Elemente notwendigen Kräfte sowie ihre Ansatzpunkte bestimmt. Diese werden zu einer Gesamtkraft und einem Gesamtdrehmoment aufsummiert und wie oben beschrieben, auf die Dynamik des die Schaufel repräsentierenden Starrkörpers und damit implizit auf das gesamte simulierte Mehrkörpersystem angewandt. 5 Anwendungsbeispiele Die in Abschnitt 3.3 vorgestellten Methoden wurden in unser 3D-Echtzeit-Simulationsund VR-System VEROSIM® integriert. Dadurch konnte das in dieser Arbeit vorgestellte neue Verfahren zur Schüttgutsimulation mit den in dort bereits zur Verfügung stehenden modernen Verfahren zur Starrkörpersimulation, zur verteilten Simulation sowie zur flexiblen Anbindung von Interaktions- und Steuerungshardware zur Realisierung neuer Virtual-Reality-Anwendungen kombiniert werden. Der erste Anwendungsbereich ist die realistische Simulation von Baumaschinen. Die folgenden Bilder zeigen einige typische Beispielszenarien. Bild 8 zeigt einen Kipplaster, der Schüttgut ablädt. Dafür werden zwei 3-dimensionale zelluläre Automaten verwendet, welche die Ladefläche sowie die Umgebung repräsentieren. Sobald der Laster seine Ladfläche kippt, gerät die Ladung ins rutschen. Die Elemente, die die Ladefläche verlassen, fallen in den umgebenden zellulären Automaten. Wenn der Laster anfährt, planiert die Klappe den Sandhaufen am Boden. Bild 8: Links: Kipplaster beim Abladen / Rechts: Planierraupe beim Einebnen Seite 46 J. Roßmann, M. Schluse, T. J. Jung, M.Rast Bild 9: Links: Radlader belädt Kipplaster / Rechts: Bagger beim Ausheben Das Beladen eines Kipplasters mit einem Radlader ist in Bild 9, links dargestellt. Hierbei wird das Schüttgut in der Szene durch einen statischen ZA – Umgebung – und zwei bewegliche ZA in der Ladefläche des Lasters und der Schaufel des Radladers beschrieben. Die anspruchsvollste Anwendung in diesem Bereich ist das Ausbaggern. Der Zellraum der Umgebung rechts in Bild 9 enthält 7,5 Mio. Zellen, wobei 3,75 Mio. Zellen mit Elementen belegt sind. Da der Zellraum durch den Ausgrabungsprozess nur lokal beeinflusst wird und mit der beschriebenen Methodik optimiert werden kann, ist eine Echtzeitsimulation problemlos möglich. 6 Fazit Es wurde ein neuer Ansatz zur realitätsnahen Simulation von Schüttgut für unterschiedliche Anwendungen vorgestellt. Dafür wurde eine neue Methode zur Simulation von Vielteilchensystemen basierend auf einer speziellen Variante zellulärer Automaten entwickelt. Die Kombination mit einer modernen Starrkörperdynamiksimulation im Simulationssytem VEROSIM® ermöglicht die interaktive und physikalisch plausible Simulation z. B. für Baumaschinen. Die Algorithmen wurden stark optimiert, sodass auch die Simulation großer Schüttvolumen mit mehreren Millionen Elementen problemlos in Echtzeit möglich ist. Die vorgestellten Methoden sind ein wichtiger Ansatzpunkt für weitere Anwendungen, wie z.B. die Simulation autonomer Rover und Laufroboter auf der Mond- und Marsoberfläche. Daher soll in einem nächsten Schritt das Modell der Wechselwirkung zwischen Starrkörperdynamik und der Schüttgutsimulation durch an entsprechenden Mockups gewonnene Messwerte optimiert und weiter verfeinert werden. Zusätzlich zu den beiden Bausteinen Starrkörperdynamik- und Schüttgutsimulation ist die Integration einer Partikelsimulation (siehe z. B. [ZB05]) und eines Modells für deformierbare Körper nach [Tes04] geplant, sowie ein Vergleich des vorgestellten Verfahrens und der Partikelsimulation hinsichtlich Realitätsnähe und Leistungsfähigkeit. Ein Übergang zwischen Partikelsimulation und dem vorgestellten zellulären Automaten würde die Möglichkeit bieten, kleine bewegte Volumina als Partikel und große stabile Volumina mit der beschriebenen Methode zu behandeln. Verfahren zur Simulation de- Interaktive integrierte Starrkörperdynamik- und Schüttgutsimulation Seite 47 formierbarer Körper könnten auf den Untergrund angewandt werden. Eine geschickte Kombination dieser Verfahren sollte eine detaillierte Simulation von Erosions- und Verdichtungseffekten sowie weiteren Fahrzeug-Terrain-Wechselwirkungen, welche insbesondere auch im Bereich der Agrar- und Forstwirtschaft interessant sind, ermöglichen. Die resultierende Kombination aus Starrkörperdynamik, zellulären Automaten, deformierbaren Körpern und Partikelsimulation stellt dann einen leistungsfähigen Werkzeugkasten für eine große Bandbreite unterschiedlicher Anwendungen dar. Literatur [Bar94] BARAFF, D.: Fast Contact Force Computation for Nonpenetrating Rigid Bodies. In: Proceedings of the 21st annual conference on Computer graphics and interactive techniques, 1994. [Bar96] BARAFF, D.: Linear-time dynamics using Lagrange multipliers. In: Proceedings of the 23rd Annual Conference on Computer Graphics and interactive Techniques SIGGRAPH '96. ACM, New York, NY, 137-146, 1996. [ER04] EISENBERG, W., RENNER, U.: Zur Beschreibung grobgranularer Schüttgüter mit zellulären Automaten, ACRS 2004 – organic and pervasive computing, S. 247 – 252, (2004) [Erl05] ERLEBEN, K.: Stable, Robust, and Versatile Multibody Dynamics Animation. Dissertation, Universität von Kopenhagen, Departement of Computer Science, 2005. [Hah88] HAHN, J. K.: Realistic Animation of Rigid Bodes. In: Proceedings of the 15th annual conference on Computer graphics and interactive techniques, 1988. [Kal98] KALDENHOFF, M.: Simulation von grobgranularen Schüttgütern mit Hilfe Zellulärer Automaten, Diss. TU Braunschweig (1998) [ODE-ol] OPEN DYNAMICS ENGINE. unter: http://www.ode.org, Ferbruar 2009 [ON03] ONOUE, K., NISHITA, T.: Virtual Sandbox, Pacific Graphics (2003) [Pla08] PLA-CASTELLS, M. et al.: Physically-Based Interactive Sand Simulation, poster at the EUROGRAPHICS’08 Conference Crete, Greece (2008) [SOH98] SUMNER R.W., O’BRIEN, J. F., HODGINS, J. K.: Animating sand, mud and snow, Graphics Interface (1998) [ST95] STEWART, D.; TRINKLE, J.: An Implicit Time-Stepping Scheme For Rigid Body Dynamics With Inelastic Collisions And Coulomb Friction. International Journal of Numerical Methods in Engineering, eingereicht 1995. [Tes04] TESCHNER, M. et al.: A Versatile and Robust Model for Geometrically Complex Deformable Solids, Computer Graphics International (2004) [Wag01] WAGNER, F.: Konzepte und Methoden zu allgemeinen, physikalisch basierten Animationssystemen auf der Grundlage der Lagrange-Faktoren-Methode. Dissertation, Universität Rostock, 2001 [Wei98] WEIMAR, J.R.: Simulation with Cellular Automata. Logos Verlag Berlin ISBN 9783-89722-026-3 (1998) [ZB05] ZHU, Y., BRIDSON, R.: Animating Sand as a fluid, ACM SIGGRAPH (2005) Seite 48 J. Roßmann, M. Schluse, T. J. Jung, M.Rast Autoren Prof. Dr.-Ing. Jürgen Roßmann ist Leiter des Institutes für Mensch-MaschineInteraktion an der RWTH Aachen und Mitglied des Vorstandes der Dortmunder Initiative zur Rechnerintegrierten Fertigung (RIF e.V.). Dr.-Ing. Michael Schluse ist Oberingenieur am Institut für Mensch-MaschineInteraktion an der RWTH Aachen. Dipl.-Inform. Thomas Josef Jung studierte Technische Informatik an der Universität Dortmund und ist seit 2006 Mitarbeiter am Institut für Mensch-Maschine-Interaktion der RWTH Aachen. Dipl.-Phys. Malte Rast hat Physik an der Universität Bonn studiert und ist seit 2008 Mitarbeiter am Institut für Mensch-Maschine-Interaktion der RWTH Aachen.