Kinematics Vs Dynamics

Σχετικά έγγραφα
Kinematics X Dynamics

Ιεραρχική και ανικειμενοστραφής μοντελοποίηση

Section 8.3 Trigonometric Equations

CHAPTER 25 SOLVING EQUATIONS BY ITERATIVE METHODS

The Simply Typed Lambda Calculus

EE512: Error Control Coding

derivation of the Laplacian from rectangular to spherical coordinates

Exercises 10. Find a fundamental matrix of the given system of equations. Also find the fundamental matrix Φ(t) satisfying Φ(0) = I. 1.

6.1. Dirac Equation. Hamiltonian. Dirac Eq.

3.4 SUM AND DIFFERENCE FORMULAS. NOTE: cos(α+β) cos α + cos β cos(α-β) cos α -cos β

Matrices and Determinants

Inverse trigonometric functions & General Solution of Trigonometric Equations

Numerical Analysis FMN011

Approximation of distance between locations on earth given by latitude and longitude

SCHOOL OF MATHEMATICAL SCIENCES G11LMA Linear Mathematics Examination Solutions

Lecture 2: Dirac notation and a review of linear algebra Read Sakurai chapter 1, Baym chatper 3

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

2 Composition. Invertible Mappings

TMA4115 Matematikk 3

Reminders: linear functions

Lecture 2. Soundness and completeness of propositional logic

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

DESIGN OF MACHINERY SOLUTION MANUAL h in h 4 0.

( ) 2 and compare to M.

Homework 8 Model Solution Section

Section 7.6 Double and Half Angle Formulas

Homework 3 Solutions

Περισσότερα+για+τις+στροφές+

HOMEWORK 4 = G. In order to plot the stress versus the stretch we define a normalized stretch:

Partial Differential Equations in Biology The boundary element method. March 26, 2013

Review Test 3. MULTIPLE CHOICE. Choose the one alternative that best completes the statement or answers the question.

Phys460.nb Solution for the t-dependent Schrodinger s equation How did we find the solution? (not required)

4.6 Autoregressive Moving Average Model ARMA(1,1)

10/3/ revolution = 360 = 2 π radians = = x. 2π = x = 360 = : Measures of Angles and Rotations

Fourier Series. MATH 211, Calculus II. J. Robert Buchanan. Spring Department of Mathematics

PARTIAL NOTES for 6.1 Trigonometric Identities

ω ω ω ω ω ω+2 ω ω+2 + ω ω ω ω+2 + ω ω+1 ω ω+2 2 ω ω ω ω ω ω ω ω+1 ω ω2 ω ω2 + ω ω ω2 + ω ω ω ω2 + ω ω+1 ω ω2 + ω ω+1 + ω ω ω ω2 + ω

Problem Set 9 Solutions. θ + 1. θ 2 + cotθ ( ) sinθ e iφ is an eigenfunction of the ˆ L 2 operator. / θ 2. φ 2. sin 2 θ φ 2. ( ) = e iφ. = e iφ cosθ.

MATHEMATICS. 1. If A and B are square matrices of order 3 such that A = -1, B =3, then 3AB = 1) -9 2) -27 3) -81 4) 81

Solutions to Exercise Sheet 5

Example Sheet 3 Solutions

Strain gauge and rosettes

Areas and Lengths in Polar Coordinates

Section 9.2 Polar Equations and Graphs

Fractional Colorings and Zykov Products of graphs

( y) Partial Differential Equations

6.3 Forecasting ARMA processes

New bounds for spherical two-distance sets and equiangular lines

If we restrict the domain of y = sin x to [ π, π ], the restrict function. y = sin x, π 2 x π 2

Instruction Execution Times

Trigonometric Formula Sheet

Areas and Lengths in Polar Coordinates

Partial Trace and Partial Transpose

Chapter 6: Systems of Linear Differential. be continuous functions on the interval

Section 8.2 Graphs of Polar Equations

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

Concrete Mathematics Exercises from 30 September 2016

2. THEORY OF EQUATIONS. PREVIOUS EAMCET Bits.

Nowhere-zero flows Let be a digraph, Abelian group. A Γ-circulation in is a mapping : such that, where, and : tail in X, head in

If we restrict the domain of y = sin x to [ π 2, π 2

Practice Exam 2. Conceptual Questions. 1. State a Basic identity and then verify it. (a) Identity: Solution: One identity is csc(θ) = 1

Second Order RLC Filters

9.09. # 1. Area inside the oval limaçon r = cos θ. To graph, start with θ = 0 so r = 6. Compute dr

Srednicki Chapter 55

Bayesian statistics. DS GA 1002 Probability and Statistics for Data Science.

Notes on the Open Economy

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ EPL035: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ

The challenges of non-stable predicates

Tridiagonal matrices. Gérard MEURANT. October, 2008

ECE Spring Prof. David R. Jackson ECE Dept. Notes 2

Navigation Mathematics: Kinematics (Coordinate Frame Transformation) EE 565: Position, Navigation and Timing

CHAPTER 48 APPLICATIONS OF MATRICES AND DETERMINANTS

PP #6 Μηχανικές αρχές και η εφαρµογή τους στην Ενόργανη Γυµναστική

Volume of a Cuboid. Volume = length x breadth x height. V = l x b x h. The formula for the volume of a cuboid is

k A = [k, k]( )[a 1, a 2 ] = [ka 1,ka 2 ] 4For the division of two intervals of confidence in R +

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 7η: Consumer Behavior Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Solution Series 9. i=1 x i and i=1 x i.

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ψηφιακή Οικονομία. Διάλεξη 10η: Basics of Game Theory part 2 Mαρίνα Μπιτσάκη Τμήμα Επιστήμης Υπολογιστών

Συστήματα Διαχείρισης Βάσεων Δεδομένων

How to register an account with the Hellenic Community of Sheffield.

Solutions to the Schrodinger equation atomic orbitals. Ψ 1 s Ψ 2 s Ψ 2 px Ψ 2 py Ψ 2 pz

Spherical Coordinates

ΚΥΠΡΙΑΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY 21 ος ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεύτερος Γύρος - 30 Μαρτίου 2011

Lifting Entry (continued)

the total number of electrons passing through the lamp.

CORDIC Background (4A)

F-TF Sum and Difference angle

Αλγόριθμοι Ταξινόμησης Μέρος 3

Macromechanics of a Laminate. Textbook: Mechanics of Composite Materials Author: Autar Kaw

b. Use the parametrization from (a) to compute the area of S a as S a ds. Be sure to substitute for ds!

Orbital angular momentum and the spherical harmonics

Other Test Constructions: Likelihood Ratio & Bayes Tests

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ. του Γεράσιμου Τουλιάτου ΑΜ: 697

Απόκριση σε Μοναδιαία Ωστική Δύναμη (Unit Impulse) Απόκριση σε Δυνάμεις Αυθαίρετα Μεταβαλλόμενες με το Χρόνο. Απόστολος Σ.

Variational Wavefunction for the Helium Atom

Γενική Φυσική. Κίνηση & συστήματα αναφοράς. Η κίνηση. Η κίνηση. Η κίνηση. Η κίνηση 24/9/2014. Κίνηση και συστήματα αναφοράς. Κωνσταντίνος Χ.

CRASH COURSE IN PRECALCULUS

상대론적고에너지중이온충돌에서 제트입자와관련된제동복사 박가영 인하대학교 윤진희교수님, 권민정교수님

Statistical Inference I Locally most powerful tests

Transcript:

Kinematics Vs Dynamics

Kinematics Focus on articulated structures There are two ways to pose/animate an articulated character forward and inverse kinematics

Kinematics

Forward vs. Inverse Kinematics Forward Kinematics Compute configuration (pose) given individual DOF values Keyframe animation belongs to forward kinematics Inverse Kinematics Compute individual DOF values that result in specified end effector position

Forward Kinematics Hierarchical model - joints and links Joints - rotational or prismatic Joints - 1, 2, or 3 Degree of Freedom Links - displayable objects Pose - setting parameters for all joint DoFs Pose Vector - a complete set of joint parameters

Degrees of Freedom (DOFs) The variables that affect an object s orientation How many degrees of freedom when flying? So the kinematics of this airplane permit movement anywhere in three dimensions Six x, y, and z positions roll, pitch, and yaw

Degrees of Freedom How about this robot arm? Five 1-base, 1-shoulder, 1-elbow, 2-wrist

Reachable Workspace The set of all possible positions (defined by kinematics) the end effector can reach Dextrous workspace

Example: 2-Link Structure

Forward Kinematics

Forward Kinematics

MoCap data can be used Forward Kinematics Difficult to achieve coordinated motion for articulated structures

Forward Kinematics

Drawing Articulated Figures

Static Figure Transformations

Forward Kinematics Control

Hierarchy Representation All body frames are local (relative to parent) Transformations affecting root affect all children Transformations affecting any node affect all its children

Transformations at the arcs T0 T1.1 T2.1 R1.1 R2.1 T1.2 T2.2 R1.2 R2.2 User modifies Rotation (new pose vector ) Re-traverse tree To get new pose

Ροµποτικός βραχίονας Τρεις βαθµοί ελευθερίας: Γωνία περιστροφής της βάσης Γωνίες στις αρθρώσεις Μετρώνται στο σύστηµα συντεταγµένων (frame) του αντίστοιχου µέρους

Ροµποτικός βραχίονας Καθώς µεταβάλλονται οι γωνίες των βραχιόνων τα αντικείµενα ή τα frames τους βραχιόνων µετακινούνται ως προς τη βάση Έχει προηγηθεί τοποθέτηση στη σωστή σχετική θέση

Ροµποτικός βραχίονας Ηκίνηση ενός µέρους πρέπει να µεταδοθεί στα µέρη άνωθεν αυτού Περιστροφή βάσης µε πίνακα περιστροφής R y (θ) Ο κάτω βραχίονας πρέπει να περιστραφεί, να τοποθετηθεί στην κορυφή της βάσης και να περιστραφεί µαζί της: R y (θ) T(0,h 1,0) R z (φ) Ο πάνω βραχίονας πρέπει να περιστραφεί κατά ψ και να τοποθετηθεί στην κορυφή του κάτω βραχίονα: R y (θ) T(0,h 1,0) R z (φ) T(0,h 2,0) R z (ψ)

Ροµποτικός βραχίονας glrotate() base() gltranslate() glrotate() lower_arm() gltranslate() glrotate() upper_arm() Modelview matrix contains all transformations so far (product of transformation matrices)

Drawing Articulated Figure

ιάσχιση δένδρων ιάσχιση του δένδρου για την απεικόνιση του σύνθετου αντικειµένου Preorder διάσχιση: αναδροµική διάσχιση ρίζας, αριστερού υποδένδρου, δεξιού υποδένδρου Συνάρτηση που πραγµατοποιεί την διάσχιση Αναλυτικά µε κατάλληλη χρήση σωρών για αποθήκευση των απαιτούµενων µετασχηµατισµών Με αναδροµικό τρόπο

ιάσχιση δένδρων

Όταν µετακινούµαι σε νέο κλαδί πρέπει να επαναφέρω τον modelview (popmatrix) Όταν πάω σε παιδί ο modelview του πατέρα κληρονοµείται (επηρεάζει το παιδί) όπως θα έπρεπε

ιάσχιση µε βάση σωρούς Χρήση push και pop για αποµόνωση των µετασχηµατισµών glpushmatrix() torso(); gltranslate(); glrotate; Head(); glpopmatrix(); glpushmatrix() gltranslate(); glrotate; Left_upper_leg(); gltranslate(); glrotate; Left_lower_leg();

ιάσχιση µε βάση τους σωρούς Η µέθοδος µε τους σωρούς απαιτεί κώδικα γραµµένο για το συγκεκριµένο αντικείµενο δεν δίνει µια γενική συνάρτηση διάσχισης δένδρου.

ενδρικές δοµές δεδοµένων Χρήση κατάλληλων δοµών δεδοµένων (lists) για την αναπαράσταση των δένδρων και ένα γενικό αλγόριθµο διάσχισης Αναπαράσταση δένδρου: left child, right sibling Κάθε κόµβος έχει δείκτη στο αριστερότερο παιδί και στον δεξιό αδερφό (κόµβος στο ίδιο επίπεδο, παιδί του ίδιου πατέρα)

ενδρικές δοµές δεδοµένων

ενδρικές δοµές δεδοµένων Σε κάθε κόµβο αποθηκεύουµε: είκτη σε συνάρτηση που ζωγραφίζει το αντικείµενο Πίνακα µετασχηµατισµού που τοποθετεί το αντικείµενο σε σχέση µε τον πατέρα είκτες σε αριστερό παιδί, αδερφό typedef struct treenode{ GLfloat m[16]; void (*f)(); struct treenode *sibling; struct treenode *child; }treenode; ιαφορετική προσέγγιση από την προηγούµενη

ενδρικές δοµές δεδοµένων Κατά την απεικόνιση ο πίνακας m πολλαπλασιάζεται µε τον τρέχοντα πίνακα µετασχηµατισµού και καλείται η f Αρχικοποιούµε κατάλληλα τον κάθε κόµβο ίνουµε την αρχική θέση και την συσχέτιση µε τους υπόλοιπους κόµβους

ενδρικές δοµές δεδοµένων treenode torso_node, head_node, lua_node,.. glloadidentity(); glrotatef(theta[0], 0.0, 1.0, 0.0); //φτιάχνουµε κατάλληλο modelview και τον αποθηκεύουµε στον m glgetfloatv(gl_modelview_matrix,torso_node.m); torso_node.f = torso; torso_node.sibling = NULL; torso_node.child = &head_node; //Το theta είναι µεταβλητή που αλλάζει για να πετύχω την κίνηση

ενδρικές δοµές δεδοµένων glloadidentity(); gltranslatef(-(torso_radius+upper_arm_radius), 0.9*TORSO_HEIGHT, 0.0); //το µετακινώ στη σωστή θέση glrotatef(theta[3], 1.0, 0.0, 0.0); //µεταβλητή γωνία glgetfloatv(gl_modelview_matrix,lua_node.m); lua_node.f = left_upper_arm; lua_node.sibling = &rua_node; lua_node.child = &lla_node;

ενδρικές δοµές δεδοµένων Όταν µετακινούµαι σε αδερφό πρέπει να επαναφέρω τον modelview (popmatrix) Όταν πάω σε παιδί ο modelview του πατέρα κληρονοµείται όπως θα έπρεπε Αν αλλάξω τις γωνίες (DOF) ξαναδιασχίζω το δέντρο. Μπορούµε να προσθέσουµε / διαγράψουµε κόµβους δυναµικά. Αλλαγές στο αντικείµενο

ενδρικές δοµές δεδοµένων Αναδροµική συνάρτηση διάσχισης (preorder) Γενική, ανεξάρτητη από το συγκεκριµένο δέντρο void traverse(treenode* root){ if(root==null) return; glpushmatrix(); glmultmatrixf(root->m); root->f(); if(root->child!=null) traverse(root->child); glpopmatrix(); } if(root->sibling!=null) traverse(root->sibling);

Example: 2-Link Structure

Inverse Kinematics

What is Inverse Kinematics? Forward Kinematics? θ 1 θ 2 θ 3 End Effector Base r x = r f(θ)

What is Inverse Kinematics? Inverse Kinematics θ 1 θ2 θ3 End Effector Base r θ = r f 1 ( x)

Inverse Kinematics

Inverse Kinematics : When useful? Want character to push a button or take a step can give the animator a good first step that he/she can later fine tune

What Makes IK Hard? Goal of "natural looking" motion Singularities Redundancy

Inverse Kinematics

Analytical Solutions

r f(θ) What does looks like? l 1 l 2 θ 2 l 3? End Effector θ 1 Base θ 3 x y = = l l 1 1 cos( θ ) + 1 sin( θ ) + 1 l l 2 2 cos( θ ) + 2 2 sin( θ ) + l l 3 3 cos( θ ) sin( θ ) 3 3

Solution to r θ = r f 1 ( x) Our example x = l cos( θ ) + l cos( θ y = l 1 1 1 sin( θ ) + 1 l 2 2 2 2 ) + l sin( θ ) + l 3 3 cos( θ ) sin( θ ) Number of equations : 2 Unknown variables : 3 Infinite number of solutions! 3 3

Redundancy System DOF > End Effector DOF Our example x y = l = l 1 1 cos( θ ) + 1 sin( θ ) + System DOF = 3 1 l l 2 2 cos( θ ) + 2 2 sin( θ ) + End Effector DOF = 2 l l 3 3 cos( θ ) sin( θ ) 3 3

Redundancy A redundant system has infinite number of solutions Human skeleton has 70 DOF Ultra-super redundant How to solve highly redundant system?

IK Incremental Constructions Configurations too complex for analytical solution? Motion can be incrementally constructed At each time step, compute best way to change each joint angle to match the desired endpoint This computation forms the matrix of partial derivatives (Jacobian)

IK Incremental Constructions

IK -> Incremental Constructions w2 d2 End Effector q 2 w2 x d2 - Compute instantaneous effect of each joint - Find linear combination to take end effector towards goal position

IK -> Incremental Constructions

IK Incremental Constructions : Mathematics Unknowns End effector velocities Joint angles Approach valid for small changes

IK Incremental Constructions : Mathematics V vector of linear and rotational velocities represents the desired change in the end effector Unknowns (joint angle velocities) Desired change difference between current position/orientation to that specified by the goal configuration

Jacobian changes with time IK Incremental Constructions : Mathematics Jacobian: what is the effect of a specific joint angle change to a certain component of V

IK Incremental Constructions : Mathematics Rotational change ω at end effector: velocity of joint angle about the axis of revolution Linear change at end effector: cross product of axis of revolution and vector from joint to effector

Using the Jacobian

IK -> Incremental Constructions Solution only valid for an instantaneous step Once a step is taken, need to recompute solution

IK Incremental Constructions : Example Planar configuration We are not interested in the orientation of end effector! Axis of rotation of all joints: perpendicular to the figure

IK Incremental Constructions : Mathematics Jacobian: what is the effect of a specific joint angle change to a certain component of V

IK Incremental Constructions : Example V=g 1 θ 1 + g 2 θ 2 + g 3 θ 3

IK Incremental Constructions : Example Singularities No linear combination of g s will lead to the target Jacobian is not invertible

For redundant systems the Jacobian is not a square matrix. Use pseudoinverse (if possible)

Secondary goals Due to redundancy multiple solutions exist A point can be reached with many arm configurations A redundant system is more dextrous Can use redundancy and find solutions that allow e.g. obstacle avoidance or are more natural

Secondary goals Such a change in the DOF does not result in a change of the end effector velocities

Secondary goals Bias the solution towards desired angles, e.g. middle angle between joint limits (soft constraints)

Secondary goals Such a solution reaches both the primary goal and also is biased towards the secondary goal