47
Matthias Wagner Matthias Wagner computer graphics & computer graphics & visualization visualization Seminar – Computer Grafik Seminar – Computer Grafik und Visualisierung und Visualisierung Animation Animation

Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

Embed Size (px)

Citation preview

Page 1: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

Matthias WagnerMatthias Wagner

computer graphics & computer graphics & visualizationvisualization

Seminar – Computer Grafik und Seminar – Computer Grafik und VisualisierungVisualisierung

AnimationAnimation

Page 2: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

ÜbersichtÜbersicht

- Einführung in die AnimationEinführung in die Animation- UrsprüngeUrsprünge

- GrundlagenGrundlagen

- AnimationstechnikenAnimationstechniken- Procedural AnimationProcedural Animation

- Articulated StructuresArticulated Structures

- Motion CapturingMotion Capturing

Page 3: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Einführung in die AnimationEinführung in die Animation

- Ursprünge der Animation: Ursprünge der Animation: - Zeichentrickfilme im Kino und FernsehenZeichentrickfilme im Kino und Fernsehen

- Ziel: Illusion einer Bewegung durch schnell Ziel: Illusion einer Bewegung durch schnell aufeinanderfolgende, ähnliche Einzelbilderaufeinanderfolgende, ähnliche Einzelbilder

- Nötig: ca 12 fps, ab ca 70 fps keine Verbessung mehrNötig: ca 12 fps, ab ca 70 fps keine Verbessung mehr

Page 4: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Einführung in die AnimationEinführung in die Animation

- Überschneidungen zwischen Computeranimation Überschneidungen zwischen Computeranimation und traditioneller Animation:und traditioneller Animation:- Futureworld (1976)Futureworld (1976)

- Tron (Disney 1982)Tron (Disney 1982)

- Luxo Jr. (Pixar 1986)Luxo Jr. (Pixar 1986)

Page 5: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Einführung in die AnimationEinführung in die Animation

- Computeranimation:Computeranimation:- Virtualität erlaubt beliebige ErgebnisseVirtualität erlaubt beliebige Ergebnisse

- Sehr viele Animationsvariablen (Avars)Sehr viele Animationsvariablen (Avars)

- Nachteil: Animator schnell überfordertNachteil: Animator schnell überfordert

- Deswegen „motion control system“ hilfreichDeswegen „motion control system“ hilfreich

Page 6: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Motion control systemMotion control system- Skriptsprache oder InteraktivSkriptsprache oder Interaktiv

- Einführung eines „Actors“, ein Objekt das eigene Einführung eines „Actors“, ein Objekt das eigene Animations- und Interaktionsregeln besitztAnimations- und Interaktionsregeln besitzt

- Kann als eigene Entity betrachtet werden (ähnlich einem Kann als eigene Entity betrachtet werden (ähnlich einem komplexen Typ einer Programmiersprache)komplexen Typ einer Programmiersprache)

Page 7: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Control hierarchyControl hierarchy- High-level und low-level Befehle nötig:High-level und low-level Befehle nötig:

Page 8: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Control hierarchyControl hierarchy- High-level und low-level Befehle nötig:High-level und low-level Befehle nötig:

- Animation eines rigid body:Animation eines rigid body:- 6 Freiheitsgrade6 Freiheitsgrade

- 30 FPS30 FPS

- 5 Sekunden5 Sekunden

- benötigt 9000 low-level Werte! benötigt 9000 low-level Werte!

Page 9: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Control hierarchyControl hierarchy- High-level und low-level Befehle nötig:High-level und low-level Befehle nötig:

- Animation eines rigid body:Animation eines rigid body:- 6 Freiheitsgrade6 Freiheitsgrade

- 30 FPS30 FPS

- 5 Sekunden5 Sekunden

- benötigt 9000 low-level Werte! benötigt 9000 low-level Werte!

- Animation eines menschlichen Körpers:Animation eines menschlichen Körpers:- Ohne high-level Unterstützung nicht machbarOhne high-level Unterstützung nicht machbar

Page 10: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Anforderungen an Control Hierarchy:Anforderungen an Control Hierarchy:- high-level Befehle in low-level Befehle umwandelnhigh-level Befehle in low-level Befehle umwandeln

- korrekte Interaktion der low-level Animationen korrekte Interaktion der low-level Animationen untereinander sicherstellenuntereinander sicherstellen

- Reaktion der höheren Level auf Feedback der niederen Reaktion der höheren Level auf Feedback der niederen LevelLevel

Page 11: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- KeyframingKeyframing- Entwickelt von Walt DisneyEntwickelt von Walt Disney

- Bessere Animateure zeichnen einzelne Keyframes einer Bessere Animateure zeichnen einzelne Keyframes einer AnimationAnimation

- Weniger gute Animateure „interpolieren“ zwischen diesen Weniger gute Animateure „interpolieren“ zwischen diesen KeyframesKeyframes

- Key parameterKey parameter- Generalisiert: Möglichkeit jeden Parameter zu Generalisiert: Möglichkeit jeden Parameter zu

interpolieren (z.B. Geschwindigkeit)interpolieren (z.B. Geschwindigkeit)

Page 12: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Grundlagen der ComputeranimationGrundlagen der Computeranimation

- Parametrisierung wichtig:Parametrisierung wichtig:- Rotation einer Linie um 90°Rotation einer Linie um 90°

- Interpolation der Winkel gegenüber Interpolation der Winkel gegenüber

Interpolation der EndpunkteInterpolation der Endpunkte

- Nachteil: Keyframing funktioniert nur für einfache Nachteil: Keyframing funktioniert nur für einfache BewegungenBewegungen

Page 13: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Spline-driven animationSpline-driven animation

- Spline-driven animationSpline-driven animation- Objektanimation über kubische SplineObjektanimation über kubische Spline

- Beispiel: Bewegung eines Objekts entlang einem Pfad im Beispiel: Bewegung eines Objekts entlang einem Pfad im Raum:Raum:

- Q(u) = (x,y,z): Pfad R -> RQ(u) = (x,y,z): Pfad R -> R33

- V(u) = (t, s): Geschwindigkeitskurve R -> RV(u) = (t, s): Geschwindigkeitskurve R -> R22

Page 14: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Spline-driven animationSpline-driven animation

- Problem: wie u wählen, um gewollte Geschwindigkeit zu Problem: wie u wählen, um gewollte Geschwindigkeit zu erhalten?erhalten?

Page 15: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Spline-driven animationSpline-driven animation

- Parametrisierung von Q zur Bogenlänge sParametrisierung von Q zur Bogenlänge s- s = A(u)s = A(u)

- Q(u) zu Q(AQ(u) zu Q(A-1-1(s))(s))

- NumerischNumerisch- AA-1-1(s) über Intervallsuche (s) über Intervallsuche

auf A(u)auf A(u)- A(u) über numerische IntegrationA(u) über numerische Integration

evaluierenevaluieren

Page 16: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Spline-driven animationSpline-driven animation

- Spline-driven AnimationSpline-driven Animation- Parametrisierung von V nach tParametrisierung von V nach t

- Ebenfalls über IntervallsucheEbenfalls über Intervallsuche

- Zusammengefasst: Zusammengefasst: - Einsetzen der Zeit t in V (parametrisiert zur Zeit), um Einsetzen der Zeit t in V (parametrisiert zur Zeit), um

Bogenlänge s auf der Spline zu erhaltenBogenlänge s auf der Spline zu erhalten- Einsetzen von s in Q (parametrisiert zur Bogenlänge), um die Einsetzen von s in Q (parametrisiert zur Bogenlänge), um die

resultierende Position zur Zeit t zu erhalten.resultierende Position zur Zeit t zu erhalten.

Page 17: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Rotation und OrientierungRotation und Orientierung

- Euler RotationEuler Rotation- Rolls sind nicht unabhängig (Gimbal Lock Problem)Rolls sind nicht unabhängig (Gimbal Lock Problem)

- Reihenfolge der Rolls ist wichtigReihenfolge der Rolls ist wichtig

- Orientierungsänderung nicht eindeutigOrientierungsänderung nicht eindeutig

Page 18: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Rotation und OrientierungRotation und Orientierung

- Euler RotationEuler Rotation- Schlecht für Interpolation zwischen verschiedenen Schlecht für Interpolation zwischen verschiedenen

OrientierungenOrientierungen- Entscheidung schwer, in welcher Reihenfolge interpoliert Entscheidung schwer, in welcher Reihenfolge interpoliert

werden sollwerden soll

Page 19: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Rotation und OrientierungRotation und Orientierung

- Ausweg: Quaternion, ähnlich komplexer Zahl Ausweg: Quaternion, ähnlich komplexer Zahl definiert:definiert:- q = a + bq = a + bi i + c+ cjj + d + dkk mit mit i² = j² = k² = -1 i² = j² = k² = -1 und und ij = k ij = k

sowie sowie ji = -kji = -k

- Andere Notation: q = (s, Andere Notation: q = (s, vv) = s + v) = s + vxxii + v + vyyjj + v + vzzkk

- Multiplikation: qMultiplikation: q11qq22 = (s = (s11ss22 – v – v11∙v∙v22, s, s11vv22 + s + s22vv11 + v + v11×v×v22))

- Größe: |q|² = s² + |v|²Größe: |q|² = s² + |v|²

Page 20: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Rotation und OrientierungRotation und Orientierung

- Es kann gezeigt werden, dass ein Es kann gezeigt werden, dass ein Einheitsquaternion eine Rotation repräsentiert:Einheitsquaternion eine Rotation repräsentiert:- ( cos(Θ/2), sin(Θ/2) (x, y, z) ): Rotation um Θ um den ( cos(Θ/2), sin(Θ/2) (x, y, z) ): Rotation um Θ um den

Vektor v = (x, y, z) mit |v| = 1Vektor v = (x, y, z) mit |v| = 1

Page 21: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Rotation und OrientierungRotation und Orientierung

- Vorteil: Interpolation zwischen 2 Quaternions ist Vorteil: Interpolation zwischen 2 Quaternions ist „direkter“ als zwischen Eulerrotationen„direkter“ als zwischen Eulerrotationen- Sphärische lineare Interpolation nötig (Gruppe der Sphärische lineare Interpolation nötig (Gruppe der

Rotationen auf die Fläche der 4-dimensionalen Rotationen auf die Fläche der 4-dimensionalen Hypersphäre im Quaternionraum abgebildet)Hypersphäre im Quaternionraum abgebildet)

- qq11◦q◦q22 = cos Ω = cos Ω

- Rotationsrichtung: Wenn (qRotationsrichtung: Wenn (q11-q-q22)∙(q)∙(q11-q-q22)>(q)>(q11+q+q22)∙(q)∙(q11+q+q22), ), ersetze qersetze q22 mit –q mit –q2 2 für die kürzere Rotationfür die kürzere Rotation

sin

usinq

sin

)u1sin(q)u,q,q(slerp 2121

Page 22: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

ÜbersichtÜbersicht

- Einführung in die AnimationEinführung in die Animation- UrsprüngeUrsprünge

- GrundlagenGrundlagen

- AnimationstechnikenAnimationstechniken- Procedural AnimationProcedural Animation

- Articulated StructuresArticulated Structures

- Motion CapturingMotion Capturing

Page 23: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

AnimationstechnikenAnimationstechniken

- ProzeduralProzedural- Bewegung in Abhängigkeit der ZeitBewegung in Abhängigkeit der Zeit

- RepresentionalRepresentional- Nicht nur Bewegung, auch FormänderungNicht nur Bewegung, auch Formänderung

- Modellierung und Animation überschneidenModellierung und Animation überschneiden

- Typen:Typen:- Animation von articulated objectsAnimation von articulated objects- Soft object animationSoft object animation

- StochastischStochastisch- zB. PartikelsystemezB. Partikelsysteme

- BehaviouralBehavioural- Umgebung hat Einfluss auf Animation (Bird flocking zb)Umgebung hat Einfluss auf Animation (Bird flocking zb)

Page 24: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

AnimationstechnikenAnimationstechniken

- Prozedurale AnimationProzedurale Animation- Mittels einer Prozedur Attribute eines Objekts verändernMittels einer Prozedur Attribute eines Objekts verändern

- Manchmal auch Form – im Vergleich zu soft object Manchmal auch Form – im Vergleich zu soft object animation aber meist mathematisch/physisch basiertanimation aber meist mathematisch/physisch basiert

- Beispiel: WasserwellenBeispiel: Wasserwellen

Page 25: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- Animation analytischer ModelleAnimation analytischer Modelle- Neben Animation vorhandener Geometrie je nach Neben Animation vorhandener Geometrie je nach

Anwendungsfall auch Erstellen der OriginalgeometrieAnwendungsfall auch Erstellen der Originalgeometrie

- Letzteres z.B. bei WasserwellenLetzteres z.B. bei Wasserwellen

Page 26: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- Wasserwelle in feste Richtung k=(kWasserwelle in feste Richtung k=(k11, k, k22, 0):, 0):- A WellenamplitudeA Wellenamplitude- c Geschwindigkeitsvektor (auch in Richtung k)c Geschwindigkeitsvektor (auch in Richtung k)- z(x, y, t) = A cos ( k ∙ ( (x, y, 0) – ct ) )z(x, y, t) = A cos ( k ∙ ( (x, y, 0) – ct ) )

Page 27: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- PartikelsystemePartikelsysteme- Objekt wird durch viele einzelne Partikel repräsentiertObjekt wird durch viele einzelne Partikel repräsentiert

- Pro Frame:Pro Frame:- Emitter erstellen neue Partikel und fügen sie in das System Emitter erstellen neue Partikel und fügen sie in das System

einein- Diesen Partikeln individuelle Parameter zuweisen (z.B. Diesen Partikeln individuelle Parameter zuweisen (z.B.

Position und Geschwindigkeit)Position und Geschwindigkeit)- Partikel, deren Lifetime abgelaufen ist, entfernenPartikel, deren Lifetime abgelaufen ist, entfernen- Partikel nach ihren jeweiligen Scripts bewegenPartikel nach ihren jeweiligen Scripts bewegen- Partikel rendernPartikel rendern

Page 28: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- PartikelsystemePartikelsysteme- Rendern auch über Extraktion einer Oberfläche aus dem Rendern auch über Extraktion einer Oberfläche aus dem

Partikelsystem möglichPartikelsystem möglich

- DemoDemo

Page 29: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- Behavioural animationBehavioural animation- „„Flocking“ (z.B. Vogelschwärme)Flocking“ (z.B. Vogelschwärme)

- Partikel nicht voneinander unabhängigPartikel nicht voneinander unabhängig

- Partikel sind jetzt spezifische Objekte, besitzen eigene Partikel sind jetzt spezifische Objekte, besitzen eigene Orientierung und eigenes VerhaltenOrientierung und eigenes Verhalten

Page 30: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Prozedurale AnimationProzedurale Animation

- FlockingFlocking- Flug entlang z-Achse der Flock PartikelFlug entlang z-Achse der Flock Partikel

- Rotation um lokale x-Achse und y-Achse erlaubtRotation um lokale x-Achse und y-Achse erlaubt

- Summe der Partikel bestimmt Bewegung des Flocks, Summe der Partikel bestimmt Bewegung des Flocks, welcher wiederum die globale Richtung angibtwelcher wiederum die globale Richtung angibt

- Regeln für Flock Partikel in Reihenfolge:Regeln für Flock Partikel in Reihenfolge:- KollisionsvermeidungKollisionsvermeidung- Geschwindigkeit an Flock anpassenGeschwindigkeit an Flock anpassen- Nähe zum Flock bewahrenNähe zum Flock bewahren

Page 31: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

ÜbersichtÜbersicht

- Einführung in die AnimationEinführung in die Animation- UrsprüngeUrsprünge

- GrundlagenGrundlagen

- AnimationstechnikenAnimationstechniken- Procedural AnimationProcedural Animation

- Articulated StructuresArticulated Structures

- Motion CapturingMotion Capturing

Page 32: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Articulated StructuresArticulated Structures

- Articulated FigureArticulated Figure- Struktur aus mehreren festen Links/Bones, verbunden an Struktur aus mehreren festen Links/Bones, verbunden an

Joints (Gelenken)Joints (Gelenken)

- KinematikKinematik- BewegungsspezifikationBewegungsspezifikation

unabhängig von Kräftenunabhängig von Kräften

- Degrees of Freedom (DOF)Degrees of Freedom (DOF)- Freiheitsgradanzahl = AnzahlFreiheitsgradanzahl = Anzahl

an unabh. Positionsvariablen füran unabh. Positionsvariablen für

einen Zustand der Struktureinen Zustand der Struktur

- Basis und EndeffektorBasis und Endeffektor- Anfang und Ende eines ChainsAnfang und Ende eines Chains

Page 33: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Articulated StructuresArticulated Structures

- StatusvektorStatusvektor- Θ = (ΘΘ = (Θ11, …, Θ, …, ΘNN))

- |Θ| = DOF|Θ| = DOF

- Gibt Zustand jedes Joints in der Struktur anGibt Zustand jedes Joints in der Struktur an

- Zwei Vorgehensweisen eine Haltung zu erreichen:Zwei Vorgehensweisen eine Haltung zu erreichen:- Alle Joint Winkel festlegen:Alle Joint Winkel festlegen:

- VorwärtskinematikVorwärtskinematik- X = f( Θ )X = f( Θ )

- Position des Endeffektors festlegen:Position des Endeffektors festlegen:- Inverse KinematikInverse Kinematik- Θ = fΘ = f-1-1( X )( X )

Page 34: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Ziel: Statusvektor Θ berechnen, um bestimmte Ziel: Statusvektor Θ berechnen, um bestimmte Lage des Endeffektors X zu erhaltenLage des Endeffektors X zu erhalten

- Θ = fΘ = f-1-1( X )( X )

- Probleme:Probleme:- ff-1-1 finden nicht leicht finden nicht leicht

- Nicht eindeutigNicht eindeutig

- Nicht immer eine LösungNicht immer eine Lösung

Page 35: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Lösungsansätze:Lösungsansätze:- AnalytischAnalytisch

- Direktes Invertieren der VorwärtskinematikgleichungenDirektes Invertieren der Vorwärtskinematikgleichungen- Nur möglich bei relativ einfachen ChainsNur möglich bei relativ einfachen Chains

- NumerischNumerisch- Approximation und IterationApproximation und Iteration- Teurer…Teurer…- aber allgemeiner verwendbar!aber allgemeiner verwendbar!

Page 36: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Numerischer Ansatz über Numerischer Ansatz über JakobimatrixJakobimatrix- Vektorableitung bzgl Vektorableitung bzgl

anderem Vektoranderem Vektor

- Matrix partieller Matrix partieller Ableitungen für jede Ableitungen für jede Kombination der Kombination der VektorkomponentenVektorkomponenten

M

N

1

N

2

2

1

2

M

1

2

1

1

1

f......

f............

......ff

f...

ff

d

df),f(J

- dX = J(f, Θ) dΘ

- Gibt an, was Änderungen am Statusvektor Θ mit |Θ|=M am Endeffektor X mit |X|=N bewirken

Page 37: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Was bringt uns die Jakobimatrix?Was bringt uns die Jakobimatrix?- dX = J(f, Θ) dΘdX = J(f, Θ) dΘ

- dΘ = JdΘ = J-1-1(f, Θ) dX(f, Θ) dX

- ermöglicht uns, den Endeffektor iterativ näher an die ermöglicht uns, den Endeffektor iterativ näher an die gewollte Position zu schiebengewollte Position zu schieben

- f nichtlinear (sin und cos), deswegen nur kleine dX f nichtlinear (sin und cos), deswegen nur kleine dX möglichmöglich

- Für G als gewollte Endposition:Für G als gewollte Endposition:- dX = ß(G – X) mit 0≤ß≤1dX = ß(G – X) mit 0≤ß≤1

Page 38: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik- Berechnung der JakobimatrixBerechnung der Jakobimatrix

- Geometrischer AnsatzGeometrischer Ansatz- Rotation jointRotation joint

iii

'rX'aX

- Θi repräsentiert dabei einen Rotational DOF eines Joints

- a‘i ist Rotationsachse in Weltkoordinaten

- r‘i ist Jointposition in Weltkoordinaten

- X ist Endeffektorposition in Weltkoordinaten

Page 39: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Wie die Jakobimatrix invertieren?Wie die Jakobimatrix invertieren?- meist nicht quadratischmeist nicht quadratisch

- eventuell auch singuläreventuell auch singulär

- normales Invertieren nicht praktikabelnormales Invertieren nicht praktikabel

Page 40: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Invertieren der JakobimatrixInvertieren der Jakobimatrix- Moore-Penrose Pseudo-InverseMoore-Penrose Pseudo-Inverse

- J* = (JJ* = (JTTJ)J)-1-1JJTT

- Statt invertierter Matrix einfach transponierenStatt invertierter Matrix einfach transponieren- funktioniert besser als erwartetfunktioniert besser als erwartet- schneller und lokal berechenbarschneller und lokal berechenbar- qualitativ schlechter als Moore-Penrosequalitativ schlechter als Moore-Penrose

- SingulärwertzerlegungSingulärwertzerlegung

Page 41: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- Wann Algorithmus beenden?Wann Algorithmus beenden?- Lösung gefunden oder nahe dranLösung gefunden oder nahe dran

- Lokales MinimumLokales Minimum

- ZeitbasiertZeitbasiert

- Kann über Statusvektor überprüft werdenKann über Statusvektor überprüft werden

Page 42: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- AlgorithmusAlgorithmus

- While(X zu weit von G entfernt) {While(X zu weit von G entfernt) {- J(X, Θ) für aktuellen Status Θ berechnenJ(X, Θ) für aktuellen Status Θ berechnen

- JJ-1-1 berechnen berechnen

- dX = ß(G – X)dX = ß(G – X)

- dΘ = JdΘ = J-1-1 dX dX

- Θ = Θ + dΘΘ = Θ + dΘ

- X neu berechnen (über Vorwärtskinematik)X neu berechnen (über Vorwärtskinematik)

- }}

Page 43: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Inverse KinematikInverse Kinematik

- DemoDemo

Page 44: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

ÜbersichtÜbersicht

- Einführung in die AnimationEinführung in die Animation- UrsprüngeUrsprünge

- GrundlagenGrundlagen

- AnimationstechnikenAnimationstechniken- Procedural AnimationProcedural Animation

- Articulated StructuresArticulated Structures

- Motion CapturingMotion Capturing

Page 45: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Motion CapturingMotion Capturing

- Mittels Markern Bewegungen aufzeichnenMittels Markern Bewegungen aufzeichnen

- An jedem Joint Marker:An jedem Joint Marker:- AkustischAkustisch

- TrägheitTrägheit

- LEDLED

- MagnetischMagnetisch

- ReflektivReflektiv

Page 46: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

Motion CapturingMotion Capturing

- Was ist Tracking?Was ist Tracking?

- Korrekte Registrierung zwischen realen und Korrekte Registrierung zwischen realen und virtuellen Objektenvirtuellen Objekten

- Kalibrierung ist die (offline) Berechnung aller Kalibrierung ist die (offline) Berechnung aller invarianten Parameter (wie die Position der Marker invarianten Parameter (wie die Position der Marker und die Kameraeigenschaften)und die Kameraeigenschaften)

- Tracking ist die (online) Berechnung aller Tracking ist die (online) Berechnung aller zeitabhängigen Parameter (Position der Objekte)zeitabhängigen Parameter (Position der Objekte)

Page 47: Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation

computer graphics & computer graphics & visualizationvisualization

Matthias WagnerMatthias Wagner

EndeEnde

- Vielen Dank für die Aufmerksamkeit!Vielen Dank für die Aufmerksamkeit!

- Fragen?Fragen?