Proseminar: How to make a PIXAR movie?

Slides:



Advertisements
Ähnliche Präsentationen
Matrixmultiplikation
Advertisements

Matthias Wagner computer graphics & visualization Seminar – Computer Grafik und Visualisierung Animation.
Computer graphics & visualization Procedural Terrain Generation Hager Simon Proseminar Gamedesign.
Schnelle Matrizenoperationen von Christian Büttner
Tipps & Tricks zu benutzerdefinierten Animationspfaden
Genetische Algorithmen für die Variogrammanpassung
Seminar Stochastik im WS 02/03
Ziele – warum?.
Dachbodenausbau by Michael Lameraner und Florian Kerschbaumer
Einführung Übersicht Einsatz der Zielwertsuche Einsatz des Solvers
Numerik partieller Differentialgleichungen
Sortierverfahren Richard Göbel.
Heuristiken Automatic Problem Solving Institut für Informatik
Dynamische Programmierung (2) Matrixkettenprodukt
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Genetische Algorithmen
Computerkurs: Quantitative Auswertung biochemischer Experimente Guten Morgen.
Computerkurs: Quantitative Auswertung biochemischer Experimente Tag 8 Einführung in die numerische Integration Aufgabe 18: Simulation einer Assoziationskinetik.
Lösung linearer Gleichungssysteme
Erkennung von Gesichtsausdrücken anhand von Bildbewegungen (Irfan Essa & Alex Pentland) Hauptseminar Smart Environments Joachim Biggel
Klausur „Diskrete Mathematik II“
Parallele Gleichungslöser für die linearen TRACE-Module
Modellbildung in der Geoökologie (G5, 103) SS 2004
Dipl.-Ing. (FH) Carsten Büttner, MSc.
Quaternionen Eugenia Schwamberger.
Modellierung von Baumstrukturen mit einem einzigen Polygonnetz
Tutorium
und relative Häufigkeit Bettina delert, andreas mertke
Konzeption und Realisierung von DSS
Einführung in die Physik für LAK
Integration virtueller und realer Objekte Proseminar: Anwendungen für Augmented Reality.
Ausgleichung ohne Linearisierung
Übersicht Motivation Konzeption Umsetzung/ Implementierung
How to make a PIXAR movie
Projekt: Mesh-Man Björn Gohlke Bachelor Bioinformatik – 7. Semester Sebastian Graf Diplom Informatik – 5. Semester.
EXCEL PROFESSIONAL KURS
Smart features Subtypen und Domänen Subtypen und Domänen.
Einführung in die Programmierung
Abschlussvortrag zur Studienarbeit
Lineare Algebra Komplizierte technologische Abläufe können übersichtlich mit Matrizen dargestellt werden. Prof. Dr. E. Larek
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Dynamische Programmierung mit Anwendung auf Sequence Alignment Problem
Klicken Sie in der Meldungsleiste auf Bearbeitung aktivieren,
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Kapitel 10 Multikollinearität
… oder wie finde ich den Weg
Algorithm Engineering „GPU Algorithmen“
Hallo Ich habe eine Linie mit den Auto-Forms gezeichnet. Diese Linie soll sich um ihren linken Äußeren Punkt drehen, um etwa 40 Grad. Das Problem ist nur.
ProSeminar WS 2007/08 Leo Hackstein
Wahrscheinlichkeitsrechnung
Ein Überblick über verschiedene Verfahren
Using latent semantic analysis to find different names for the same entity in free text Präsentation und Diskussion des Papers Im Rahmen des PS Web-Information.
Drehung im Raum – Kreiseltheorie
Eindimensionale Bewegungen
Musterlösung zum Arbeitsblatt Nr. 1
Wichtige Transformationen
Routenplanung querfeldein - Geometric Route Planning
Magnus Brockschmidt Vortrag über Animationen zum Seminar Computergrafik WS 02/03 Animiation: Bewegung von Objekten zeit- oder ereignisgesteuert.
Kap. 7: Die quadratische Funktion – numerisch, graphisch, theoretisch

EIN NEUES ENSEMBLE- KLASSIFIKATIONSVERFAHREN Tim Schneider Rotation Forest.
PCA Principal Component Analysis. Gliederung PCA – Warum eigentlich? PCA – Was ist zu tun? Was passiert eigentlich? Anwendungen Zusammenfassung.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
 Präsentation transkript:

Proseminar: How to make a PIXAR movie? Inverse Kinematik Proseminar: How to make a PIXAR movie?

Inhalt Überblick & Motivation Grundbegriffe Inverse Kinematik Kinematik, DOF, Hierarchisches Modell, Vorwärtskinematik Inverse Kinematik Einführung Anwendungen Pro/Contra Linearer Lösungsansatz Numerischer Lösungsansatz Weitere Methoden Demo

Inhalt Überblick & Motivation Grundbegriffe Inverse Kinematik Kinematik, DOF, Hierarchisches Modell, Vorwärtskinematik Inverse Kinematik Einführung Anwendungen Pro/Contra Linearer Lösungsansatz Numerischer Lösungsansatz Weitere Methoden Demo

Überblick & Motivation Inverse Kinematik (IK) ist eine Animationstechnik im Animationsprozess IK dient der Animation von Bewegungsabläufen IK vereinfacht die Erstellung von Animationen für den Character Animator (CA) Ziel: der CA bringt nur das Schlussglied an die gewünschte Position; die restlichen Glieder werden automatisch mitgeführt

Inhalt Überblick & Motivation Grundbegriffe Inverse Kinematik Kinematik, DOF, Hierarchisches Modell, Vorwärtskinematik Inverse Kinematik Einführung Anwendungen Pro/Contra Linearer Lösungsansatz Numerischer Lösungsansatz Weitere Methoden Demo

Kinematik Teilgebiet der Mechanik Geometrische Beschreibung von Bewegungen

DOF (Degrees of Freedom) Zu deutsch: Freiheitsgrad Charakterisierung der Gelenke Maximum: 6 DOFs 1: links/rechts 2: vorne/hinten 3: oben/unten 4: link/rechts drehen 5: seitlich kippen 6: vorne/hinten kippen

DOF (Degrees of Freedom) 1 DOF: Ellbogen 3DOF: Schulter Drehgelenk // Kugelgelenkk

Hierarchisches Modell Oftmals auch kinematische Kette genannt Herstellung einer Baumhierarchie für die einzelnen Glieder des Objekts System aus starren Körpern, die durch Gelenke verbunden sind Mind. 3 Glieder Jedes Gelenk kann andere DOFs besitzen Root: Becken Basisknoten: Schulter, Ellbogen, Knie, etc. Endeffektor: Finger, Zehen, Genick Beispiel: Hueftknochen hat 3 DOFs, Knee, wie Ellbogen, 1 DOF

Vorwärtskinematik (FK) Given the angles at all of the robot's joints, what is the position of the hand? Man bewegt die einzelnen Glieder, angefangen beim obersten Glied in der Hierarchie, in die gewünschte Position Probleme: aufwendig für der CA sehr schwierig umsetzbar bei komplexen Bewegungen, z.B. Gehen

FK - Beispielvideo Am Ende sagen: fuer komplexe Bewegungsablaeufte wurde IK entwickelt und folgt dem folgenden Satz: „Given the position of the hand, what are the anges of the robots joints?“

Inhalt Überblick & Motivation Grundbegriffe Inverse Kinematik Kinematik, DOF, Hierarchisches Modell, Vorwärtskinematik Inverse Kinematik Einführung Anwendungen Pro/Contra Linearer Lösungsansatz Numerischer Lösungsansatz Weitere Methoden Demo

IK – Einführung Herkunft aus der Robotik: Wie bringt man den Greifarm an die gewünschte Zielposition? Umkehrfunktion der FK: Erleichtert die Arbeit für den CA: möchte oftmals nur den Endpunkt an einer bestimmten Position haben die anderen Glieder sollen sich realistisch anordnen IK wird auch für die Erzeugung von Keyframes verwendet Zur Erinnerung: Phi ist unser Vektor zur Beschreibung der DOFs, e ist die Position des Endeffektors Problem fuer den CA: er wird eingeschraenkt wie er die Bewegung machen will. Deswegen wurde z.b. bei toy story auf ik verzichtet und manche CA verwenden prinzipiell kein CA. Bei dem Pixar-Kurzfilm Luxo Jr., der von der Pixar-Lampe handelt, wurde nicht nur auf IK verzichtet sondern der komplette Film wurde mit FK animiert

IK - Beispielvideo

IK – Anwendungen Robotik Computeranimation Industrieroboter „Roboterspiele“ Computeranimation Animationsfilme Videospiele Medizin (Computer Assisted Surgery) Medizin: kompliziertes Problem, da kiefer auch nach vorne bewegbar

IK – Pro/Contra Pro IK Contra IK Schnell und intuitiv bedienbar Oft keine bis mehrere Lösungen Immense Reduzierung des Arbeitsaufwands Manchmal wird nicht die natürliche Haltung des menschl. Körpers erreicht CA muss sich keine Gedanken über die Winkelstelllungen der Gelenke machen um das Objekt an das gewünschte Ziel zu führen Berechnungen teilweise sehr rechenlastig Geringer Einfluss des CA auf den Bewegungsablauf Um die negativen Aspekte zu beseitigen werden neue Algorithmen entwickelt. Einige neue Alg erwaehne ich spaeter

IK – Analytischer Lösungsansatz Nur in einfachen Fällen möglich Ergebnis kann wiederverwendet werden, jedoch fast ausschließlich in Robotik verwendet Schnell Liefert exaktes Ergebnis Beispiel: 2 Freiheitsgrade Vorgabe der Endposition Nur in einfachen faellen moeglich, da es mit steigender anzahl an dofs komplizierter wird

IK – Analytischer Lösungsansatz Es existieren 2 Lösungen 2 Lösungen einzeichnen. Loesungsweg geometrisch erklaeren anhand grafik Loesung mittels Kosinussatz Mittels der Umkehrfunktion des cos(theta1-theta) + theta bzw. In fall 2 pi – umkehrfkt cos(pi – theta2)

IK – numerischer Lösungsansatz Ausgangslage: Linearisierung des Problems: Korrekt bei kleinen Änderungen von Idealfall: J nicht-singulär  Ausgangslage: Formel, wobei wobei e die Position des Endeffektors und Phi der Vektor zur Beschreibung der Freiheitsgrade ist Lineraisierung durch taylor-entwicklung

IK – numerischer Lösungsansatz

IK – numerischer Lösungsansatz Erste Zeile ist noch leicht verständlich: g ist unser ziel; e ist position vom endeffektor; Solange der berechnete Abstand e zur gewünschten Position g zu groß ist machen wir unsere Berechnung weiter Spaeter noch mehrere Abbruchkriterien Dann berechnen wird die Jacobi-Matrix; Hierzu eine kurze Einführung was diese ist.

IK – numerische Lsg: Jacobi-Matrix Darstellung der Abhängigkeit von mit  Wie ändert sich die Position von , wenn verändert wird ist die Endposition im Raum (3D-Vektor) J ist eine 3xN-Matrix Jacobi im Endeffekt die Ableitung von e nach Phi N ist die Anzahl der Freiheitsgrade Bsp fuer Jacobi-Mtrx: Eintrag Zeile 1, Spalte 2 beschreibt Aenderung der x-Coord. d. Endeffektors wenn sich der Winkel Phi2 minimal aendert Achtung: Jacobi matrix nur bei veraenderungen verwendbar Doch wie bestimmt man die einzelnen Spalten?  Das werden wir uns jetzt genauer anschauen

IK – numerische Lsg: Jacobi-Matrix Für jeden DOF berechnen, wie sich e in Abhängigkeit zum DOF verändern würde, wenn dieser verändert wird  absolute Achse und Drehpunkt finden: r transformiert als Positions- und a transformiert als Richtungsvektor

IK – numerische Lsg: Jacobi-Matrix Anhand dieser Werte lässt sich berechnen, wie sich verändern würde, wenn wir um diese Achse rotieren Mit dieser Formel erhalten wir eine Spalte der Jacobi-Matrix Weitere Spalten: über jeden DOF iterieren und entsprechende Spalte in der Matrix berechnen

IK – numerischer Lösungsansatz J Invertieren

IK – numerische Lsg: J invertieren Problem: J selten invertierbar Lösung: Pseudoinverse oder Transponierte Pseudoinverse Transponierte: Funktioniert erstaunlicherweise sehr gut Ist viel schneller als J invertieren oder Pseudoinverse bilden J invertierbar nur, wenn Matrix quadratisch ist (gleiche Anzahl an DOFs im Gelenk wie im Endeffektor) J nicht invertierbar bei Singularitäten  Verlust der lin. Unabhaengigkeit wenn sich 2 Gelenke hintereinandern anordnen Pseudoinverse fur alle Matrizen mit Eintraegen aus reellen und komplexen Zahlen definiert

IK – numerischer Lösungsansatz -Nun delta e berechnen: ziel vom akt. Endefftor abziehen und mit geeignetem beta mult. beta: sollte genuegend klein sein  klein genug damit stabil, aber je kleiner desto oefters, evtl praxis wert fuer beta -Die Abänderung der Freiheitsgrade wird berechnet durch mult J^-1 mit delta e -Der neue Wert wird angewandt -Die neue Endefftorposition wird mit FK berechnet

IK – numerische Lsg: Terminierung 3 Kriterien für die Terminierung Es wurde eine Lösung gefunden Feststecken  Lokales Minimum Lösungen: Akzeptieren Anderer Algorithmus Zufällige Position für den e-Vektor Fehlermeldung Zeit Feststecken: der Algorithmus findet keine bessere Loesung: lokale Minima Zeit: wichtig fuer interaktive Systeme, zB in der Medizin Zufaellige Position fuer Endeffetor: entweder leicht oder stark verschieben und ncohmals probieren: siehe Demo Was wird in der Praxis verwendet? – Konnte nichts dazu finden, aber Annahme: in der Praxis funktioniert IK sehr gut aufgrund der neueren Algorithmen, die verwendet werden. Falls es bei diesem doch mal zu einem „Feststecken“ kommt finde ich die Loesung der zufaelligen Position fuer den e-Vektor als geeignete Loesung. Zumindest in geeignetem Zeitrahmen

IK – Weitere Methoden CCD (Cyclic Coordinate Descent) Aufteilung in 1 Freiheitsgrad-IK-Probleme und diese analytisch lösen Lagrange Multiplikatoren Funktionsoptimierung durch Herausfinden des Extremwerts einer Funktion h unter Nebenbedingung g LPIK (Linear Programming IK-Solver) Minimierung der Summe der absoluten Werte Ausschließlich numerische lsg CCD eignet sich nur fuer Ketten ohne verzweigungen, ist aber schnell, einfach und robust. CCD wird mittels iterativeb, rekursiven Algorithmus realisiert Idee hinter CCD: einfach 1 Freiheitsgrad-IK-Probleme loesen und die Kette „hochwandern“ Vorteil: 1DOF Probleme sind simpel und analyt loesbar; Nachteil: schnell, aber in der praxis rucklige animation Lagrange: 2005 als bester IK solver gehandelt. Niedrige Kosten von O(n+m^3) Idee: Funktionsoptimiuerung duch: Finde den Extremwert einer Funktion h(x1... xn) unter der Nebenbedingung g(x1...xn)=c - was ist die fkt? LPIK: 2005 vorgestellt. Laut Aussage der Entwickler besser als Lagrange;Minimierung der Summe der absoluten Werte anstatt Suche der kleinsten Quadrate (bei Pseudo-Inverse-Methode)

IK Demo

Vielen Dank für Ihre Aufmerksamkeit Fragen? Vielen Dank für Ihre Aufmerksamkeit

IK - Demo Auf die Geschwindigkeitsunterschiede achten