L’animation par cinématique directe ou inversedupuis/Modelisation et animation par...

62
L’animation par cinématique directe ou inverse Table des matières Introduction Rappel des notions de base en cinématique Modélisation cinématique Contrôle automatique de la caméra Modélisation cinématique hiérarchique Cinématique directe Cinématique inverse

Transcript of L’animation par cinématique directe ou inversedupuis/Modelisation et animation par...

1

L’animationpar

cinématique directeou

inverseTable des matières

IntroductionRappel des notions de base en cinématiqueModélisation cinématiqueContrôle automatique de la caméraModélisation cinématique hiérarchiqueCinématique directeCinématique inverse

2

IntroductionCinématique :

La spécification ou l’étude du mouvement indépendamment des forcessous-jacentes qui produisent ce mouvement.

Décrit le mouvement des corps.

La cinématique tente de décrire le mouvement des corps sans faireréférence aux notions de forces ou d’énergie.

Elle étudie les mouvements des corps à l’aide des notions d’espace etde temps, en faisant abstraction de leurs causes.

Elle utilise les concepts de position, déplacement, vitesse, accélération.

3

IntroductionDynamique :

Branche de la mécanique qui fait appel à la notion de force pourexpliquer le mouvement des corps.

Explique le mouvement des corps.

Gravité, force, masse et contraintes liées à un objet sont gérées par lelogiciel d’animation.

Il n’est pas nécessaire de décrire chaque mouvement indépendammentcomme dans le cas de la cinématique. Les mouvements, particulièrementréalistes, sont calculés par le logiciel d’animation.

La mise en œuvre est plutôt lourde et l’approche exige des temps decalculs importants.

Forces agissant sur unautomobile qui freine.

4

Rappel des notions de base en cinématiqueLa cinématique consiste à décrire la manière dont un objet se déplacedans l’espace et dans le temps.

1er cas :

Mouvement de translation en ligne droite (cinématique 1D) oùtoutes les parties de l’objet subissent la même variation de position

L’objet peut donc être considéré comme une particule.

5

Mouvement de translation en ligne droiteUne particule se déplace d’une origine P sur la droite passant par Pde direction d.

P

d

Posons C(t) ≡ P + λ(t) d la position de la particule au temps t surcette droite.

On peut définir S(t) ≡ déplacement de la particule réalisé au temps t.

≡ signe de λ(t) . || C(t) – P ||

≡ λ(t) . || d ||

Note : Le déplacement dépend uniquement des positions initialeet finale, mais pas de l’itinéraire suivi.

On peut aussi définir la distance parcourue, D(t), i.e. la longueur dutrajet réel (un scalaire positif).

6

Vitesse à laquelle la particule se déplace

Vitesse scalaire moyenne ≡ D(t) / t (un scalaire positif)Vitesse moyenne ≡ S(t) / t (le trajet réel parcouru entre-temps

n’a pas d’importance)

Note : Le signe de la vitesse moyenne est le même que celuidu déplacement; une valeur positive signifie que lemouvement net se fait dans la direction d.

Vitesse instantanée ≡ V(t) Vitesse en un point quelconquede l’espace.

≡ d S(t) = S'(t)dt

Permet de décrire en détail un parcours effectué à vitesse nonconstante.

7

Accélération à laquelle la particule se déplaceUn objet accélère lorsque sa vitesse varie en module ou en direction,ou les deux.accélération moyenne durant un intervalle de temps donné ≡

vitesse moyenne / intervalle de temps

accélération instantanée ≡ A(t) ≡ d V(t) = S''(t)dt

Première loi de Newton (1687) :

Tout corps conserve son état de repos ou de mouvement rectiligneuniforme, à moins que des forces extérieures ayant une résultante nonnulle n’agissent sur lui et ne le contraignent à changer d’état.

D’où la propriété d’inertie d’un corps : sa tendance à résister à toutevariation de son état de mouvement.

C’est la tendance d’un objet à rester au repos s’il est au repos et àvitesse constante s’il est en mouvement.

frottement tension sur la cordeforces égales ⇒ vitesse constante

8

Exemple I : Mouvement de translation en ligne droite à vitesse constante

C(t) = P + t dS(t) = t ||d|| = D(t)

t

S(t) = D(t)

t

V(t)

V(t) = ||d|| ∀t ≥ 0

A(t) = 0 ∀t ≥ 0

Exemple II : Mouvement de translation en ligne droite à vitesse constantedans la direction d dans [0, t1] etdans la direction -d dans [t1, t]

C(t) = P + t d 0 ≤ t ≤ t1P + t1 d + (t1 - t) d t ≥ t1

tt1

P

D(t) = t ||d||, t ≥ 0

t

S(t) = t ||d|| 0 ≤ t ≤ t1(2t1 - t) ||d || t ≥ t1

S(t)

tt1

Exemple II (suite)

V(t) = ||d|| 0 ≤ t ≤ t1- ||d || t ≥ t1

t

V(t)

t1

Accélération nulle.

11

Exemple III : Mouvement de translation en lignedroite à accélération constante

A(t) = a ∀t ≥ 0

V(t) = v0 + a t ∀t ≥ 0 où V(0) = v0

A(t) ≡ S''(t) ≡ λ''(t) . || d || = aV(t) ≡ λ'(t) . || d || = a t + v0 ∀t ≥ 0 où V(0) = v0S(t) = v0t + ½ a t2 ∀t ≥ 0 où S(0) = 0C(t) = P + [v0t + ½ a t2] d / ||d|| ∀t ≥ 0.

t

S(t) V(t)

t

v0

A(t)

t

a

12

Exemple IV : Mouvement en chute libre verticaleMouvement qui se produit sous le seul effet de la gravité.

Galilée au XVIIe siècle En l’absence de résistance de l’air, tous les corpsqui tombent ont la même accélération due à la gravité, quelle que soitleur taille ou leur forme.

L’accélération vaut à peu près 9,8 m/sec2 près de la surface de la terre.Pour des vitesses faibles et de petits intervalles de temps, on peutnégliger cette variation et supposer que les corps sont en chute libreavec une accélération constante.

Cela nous ramène au cas précédent (si l’axe des y est utilisé pour lemouvement vertical et est orienté vers le haut, A(t) = –9,8 m/sec2).

Exemple : Sur la lune, en 1971, l’astronaute David Scott lâcha unmarteau et une plume au même instant; des millions detéléspectateurs furent témoins que les 2 objets sont arrivésen même temps au sol.

13

Exemple V : Mouvement en chute libre en présencede résistance de l’air

L’accélération diminue avec le temps et peut même s’annuler.Un objet qui tombe d’une très grande hauteur n’accélère pas indéfini-ment. Il finit par atteindre une vitesse limite, vL, puis continue à tomberen gardant cette vitesse constante.

t

vL (avec résistance de l’air)sans résistance de l’air

vitesse

vL dépend du poids et de la forme de l’objet qui tombe, et de la massevolumique de l’air, laquelle dépend de la pression et de la température.

Exemple: La position que donnent les parachutistes à leur corps permetd’agir sur le niveau de résistance de l’air.

(i) Position verticale : vL = 300 km/h dans à peu près 15 s.(ii) Position du saut de l’ange (jambes et bras écartés) : vL = 200 km/h.

14

2ième cas : le mouvement d’un projectile dans un planSi l’on ne tient pas compte de la résistance de l’air, la seule force agissantsur le projectile une fois qu’il a été lancé est la force gravitationnelle.Expérience de Galilée :On laisse tomber une balle du haut du mât d’un bateau se déplaçant àvitesse constante.

Vitesse horizontale constante

Elle tombe au pied du mât si l’on néglige la résistance de l’air car, aumoment où elle est lâchée du sommet du mât, la boule a la même vitessehorizontale que le navire.Elle conserve la composante horizontale de la vitesse, même enaccélérant verticalement.

Accélérationconstante

Le mouvement d’un projectile dans un plan (suite)

Résultat de Galilée :

Un projectile près de la surface de la terre possède deux mouvementsindépendants :

un mouvement horizontal à vitesse constante

un mouvement vertical en chute libre

Équations résultantes :

Si l’axe des x est horizontal avec x0 = 0 et l’axe des y est vertical et orienté vers le haut avec y = y0 initialement, alors mouvement horizontal : accélération nulle, vitesse horizontale constantemouvement vertical :

accélération constante -g (9,8 m/sec2),vitesse verticale = vitesse verticale initiale - g tdéplacement vertical = position verticale initiale (y0)

+ vitesse verticale initiale * t – ½ g t2.

16

Le mouvement d’un projectile dans un plan (fin)

La composante verticale du mouvementd’une balle lancée horizontalement est lamême que celle d’une balle qu’on laissesimplement tomber.

La vitesse verticale initialedoit être la même.

Remarque :Si l’on tient compte de la résistance de l’air, les équations précédentesne sont valables que si la vitesse du projectile est très inférieure à savitesse limite.

Ce n’est pas le cas d’une balle de base-ball ou de golf, d’une flècheou d’une balle de fusil.

17

3ième cas : le mouvement circulaire uniforme

r

|| V(t) || = v ∀t ≥ 0particuleV(t)

A(t)

Il s’agit d’une particule se déplaçant autour d’un axe sur un cercle derayon r avec :une vitesse V(t) de direction tangente au cercle de grandeur constante v,une accélération A(t) radiale et orientée vers le centre

(appelée accélération centripète).

axe|| A(t) || = v2/ r ∀t ≥ 0

Soit T = temps nécessaire pour effectuer une révolution complète, alorsv = 2 πr / T.

18

le mouvement circulaire uniforme :la position C(t) de la particule en fonction du tempsSans perte de généralité, après avoir effectué des transformations debase, on suppose que l’axe de rotation coïncide avec l’axe des z et lecercle est centré à l’origine dans le plan x-y.

C(t) = r cos ωt avec || C(t) || = rr sin ωt

V(t) = - ω r sin ωt avec || V(t) || = ω r = vω r cos ωt

A(t) = - ω2 r cos ωt avec || A(t) || = ω2 r = v2 / rω2 r sin ωt

S(t) = vt t ≤ T

Note : On a supposé que les dimensions du corps sont négligeables p/rau rayon ce qui revient à traiter le corps comme une particule.

19

4ième cas : le mouvement circulaire non uniforme d’une particule

C(t) = r cos ω(t) avec || C(t) || = rr sin ω(t)

V(t) = - ω'(t) r sin ω(t) avec || V(t) || = ω'(t) r = v(t)ω'(t) r cos ω(t)

La vitesse peut varier en grandeur et en direction.

A(t) = - v2(t) cos ω(t) + dv(t) - sin ω(t)r sin ω(t) dt cos ω(t)

accélération radiale accélération tangentielle à la trajectoire

direction radiale (ur) direction tangentielle (ut)

x

yur

ut

20

le mouvement circulaire non uniforme d’une particule (suite)

Cas uniforme : ω'(t) = constante.Accélération tangentielle nulle

S(t) = v(t) dt = r [ω(t) - ω(0) ].∫0

t

NOTE :

Ce rappel prend en compte uniquement le cas où les objets peuventêtre ramenés à des particules.

Autrement, chaque objet subit non seulement un mouvement detranslation mais aussi un mouvement de rotation autour d’un axe.À suivre (prochain chapitre) …

21

Les animateurs s’inquiètent plus souvent de la qualité générale dumouvement que du contrôle précis de la position ou de l’orientationde chaque objet.Exemple : lorsque l’animateur gère un grand nombre d’objets,

lorsque l’on traite des objets placés à l’arrière-plandont le mouvement précis n’a guère d’importance,pour certaines simulations physiques.

Nous aurons recours à un modèle structuré pour produire un mouve-ment. Cela supprime pour l’animateur la contrainte d’avoir à se soucierconstamment de spécifier les détails du mouvement, ceux-ci étant géréspar le modèle.L’utilisateur perd alors généralement le contrôle fin du mouvement desobjets car de tels modèles impliquent automatiquement certainescontraintes au mouvement à générer.l’application de contraintes de non-pénétration,la préservation des volumes, l’application de règles de comportement,le calcul de réactions à la gravité, etc.

Modélisation cinématique

22

Contrôle automatique de la caméraCela porte sur des modèles de calculs du mouvement de la camérabasés sur la configuration géométrique des éléments de la scène.

L’animateur est plus intéressé par le fait de bien montrer l’action quise déroule que d’obtenir un angle de caméra particulier.

De plus, il ne peut pas toujours anticiper la position exacte, ni mêmeglobale, des objets au cours de la séquence d’animation.

Par conséquent, il est difficile pour l’animateur de savoir commentpositionner et orienter sa caméra précisément afin de capter la partiela plus importante de l’action.

La position de la caméra et du centre d’intérêt doivent être généréeautomatiquement pour chaque image de l’animation.

23

Techniques de contrôle automatique de la caméra

Placer la caméra et/ou le centre d’intérêt en fonction de la positiond’un ou plusieurs objets de l’animation.

Exemple : Si un groupe d’objets se déplace simultanément, on peutalors utiliser la moyenne de leurs positions comme centred’intérêt de la caméra.

On peut aussi contraindre la position de la caméra dans un planprédéfini ou sur un segment de droite ou de courbe.

Exemple : Conserver la caméra à une altitude donnéei.e. la contraindre à se situer dans un plan || au plan du solde façon qu’elle puisse saisir l’action en vue plongeante.

Exemple : La caméra peut suivre de près un objet se déplaçant dansun vaste espace en se positionnant en fonction de l’objeten mouvement.Le centre d’intérêt peut être défini dans le système decoordonnées local de l’objet.

24

Techniques de contrôle automatique de la caméra

On peut aussi contraindre la distance entre la position de la caméraet le centre d’intérêt.

etc.

Bien entendu, le contrôle automatique de la caméra est fort utilemais cela exige beaucoup d’expérience pour pouvoir anticiper laqualité des résultats.

L’animateur doit renoncer à une part du contrôle en échange d’uneplus grande simplicité d’utilisation.

25

Modélisation cinématique hiérarchiqueJusqu’à maintenant, nous avons considéré le mouvement d’objetssimples (splines, surfaces de Bézier, volumes tricubiques, etc.).

Cependant, il existe des modèles d’objets plus complexes que ceuxreprésentant des objets élémentaires.Ces modèles d’objets renferment plusieurs composantes, lesquels sontreprésentés à l’aide d’une structure hiérarchique.

Cela permet d’avoir un meilleur contrôle sur le mouvement associé àchaque partie d’un objet.

Exemple I de modèle hiérarchique : les systèmes planétaires

Les lunes tournent autour des planètes qui,elles-mêmes, tournent autour d’un soleil qui sedéplace dans une galaxie.

26

Modélisation cinématique hiérarchique

Exemple II de modèle hiérarchique : les humains et les animaux

Ce sont des objets reliés bout à bout pourformer des chaînes permettant de manipulerles articulations de leurs membres.

Remarque :

Ces modèles hiérarchiques proviennent en bonne partie du domainede la robotique.

Les ouvrages de robotique traitent de la modélisation demanipulateurs : une série d’objets reliés en chaîne par des articulations.

27

Quelques définitions en robotiqueLien : les objets rigides formant les connexions entre les articulations.

Effecteur final : l’extrémité libre d’une chaîne d’articulations et de liens.

Cadre : le système de coordonnées local associé à chaque articulation,c’est-à-dire son repère.

Types d’articulation en robotique :

Tous les types d’articulations dans lesquelles 2 liens bougent l’un enfonction de l’autre.

Types d’articulation en infographie :

Principalement, les articulations tournantes etles articulations coulissantes.

Degrés de liberté:(DDL)

# de variables permettant de définir une configuration(1 DDL : un mouvement dans une direction).

28

Articulations tournantesUn lien tourne autour d’un point fixede l’autre lien.

Les liens sont généralement joints à cepoint.Le lien le plus éloigné dans la chaînetourne pendant que l’autre demeure fixe,au moins par rapport à cette articulation.

1 DDL : mouvement dans une direction.Articulations coulissantes

Un lien glisse le long d’un axe enfonction de l’autre lien.1 DDL: un mouvement dans une direction.

R. Parent, Animatique Algorithmes &techniques. Vuibert, p. 180.

29

Articulations complexesCe sont des structures dans lesquelles coexistent plusieurs degrés deliberté.Généralement, lorsqu’une articulation possède n DDL (n > 1), elle estmodélisée sous la forme d’un ensemble de n articulations à 1 DDLreliées par n – 1 liens de longueur 0.Elles comprennent : - les articulations planaires et

- les articulations à rotule.Articulations planaires

Celles dans lesquelles un lien coulissesur la surface plane d’un autre.

30

Articulations à rotule

Rick Parent, Animatique Algorithmes et techniques.Vuibert informatique, chap. 4, 2003.

31

Représentation de modèles hiérarchiquesCes modèles sont représentés par une structure arborescente desommets reliés par des arêtes.À chaque sommet est rattachée la définition géométrique d’un objetélémentaire (lien).

À chaque arête i est associée la transformation à appliquer à tous lessommets se trouvant sous lui dans la hiérarchie (articulation).

Cette transformation peut contenir :- une transformation constante du sommet i vers sa position

neutre par rapport au sommet parent,- une transformation variable responsable de l’articulation.

sommeti

arêtei

Remarque : Associer une arête à une articulation peut sembler nonintuitif mais cela est pratique car une partie d’objet peutavoir plusieurs articulations qui lui sont rattachées.

32

Exemple de structure arborescente

R. Parent, Animatique Algorithmes & techniques. Vuibert, p. 183.

33

Représentation de modèles hiérarchiquesLe nœud racine correspond à l’objet dont la position et l’orientationsont connues dans le système de coordonnées global.

La position et l’orientation de tous les autres sommets sont définiespar rapport à leur sommet parent.

Un changement dans la position et l’orientation d’un sommettransformera la position et l’orientation de ses sommets descendants.

En particulier, on peut modifier la transformation associée au sommetracine en fonction du temps pour animer la position et l’orientation dela structure rigide.

Les sommets d’un objet donné peuvent être transformés vers leurposition finale en concaténant les transformations situées plus hautdans l’arbre et en appliquant la matrice de transformation combinéeaux sommets.

34

Exemple simple à 2 dimensions avec 3 liens

(position et orientation globales)

R. Parent, Animatique Algorithmes & techniques. Vuibert, p. 186.

35

Structure hiérarchique de cet exemple simple

(position et orientation globales)

(transformation du lien 1 p/r au lien 0)

(transformation du lien 1.1 p/rau lien 1)

36

Calcul des transformations à appliquer aux sommets dans cet exemple simple

Lien 0 : T0

Lien 1 : T0 T1 R1(θ1)

Lien 1.1 : T0 T1 R1(θ1) T1.1 R1.1(θ1.1)

Dans la représentation arborescente mettant en œuvre une articulationtournante, une transformation de rotation est associée à l’arête quiprécède le sommet représentant le lien à faire tourner.

37

Cas d’appendices multiplesExemple I :

Exemple II : voir le personnage articulé à la figure précédente.

R. Parent, Animatique Algorithmes &techniques. Vuibert, p. 187.

38

Structure arborescente correspondant à une hiérarchie à 2 appendices

39

Cinématique directe (« forward kinematics »)Le contrôle du mouvement d’un objet articulé est spécifié explicitementpar l’animateur en fixant les paramètres de chaque articulation.

Le mouvement d’une composante est déterminé par l’accumulation detoutes les transformations conduisant à cette composante.

Exemple : Le mouvement d’un pied peut être considéré comme lacombinaison des effets résultant des transformationsportées à la hanche, au genou et à la cheville.

L’évaluation complète d’une arborescence produit un objet articulé dansune position et une orientation qui reflètent la définition des paramètresd’articulation.

Cette évaluation se fait en parcourant l’arbre selon une technique defouille en profondeur.

Pose : l’ensemble totalement spécifié des paramètres des articulationsqui permet le positionnement et l’orientation de l’objet articulé.

40

Technique de fouille en profondeur

10.

2.

1. 4.

9.

3.

8.

7.5. 6.

Chaque fois qu’une arête est suivie vers le bas, ses transformations sontconcaténées aux transformations de son sommet parent.Chaque fois qu’une arête est traversée en remontant l’arbre vers unsommet, la transformation de ce sommet doit être restaurée avant quela traversée ne reprenne vers le bas.

Choix d’une pilepour réaliser cette

fouille en profondeur

41

Contrôle de cinématique directeDans une animation simple, un animateur peut déterminerinteractivement des positions clés puis interpoler les valeurs desparamètres d’articulation.

Le positionnement d’un objet articulé en spécifiant tous les paramètresd’articulation s’appelle un contrôle cinématique direct.

Mais, placer un objet articulé dans une position finale souhaitée enspécifiant les paramètres d’articulation peut être une opérationlaborieuse pour l’utilisateur. C’est souvent un processus par

essais et erreurs.

Pour éviter ces difficultés, un contrôle cinématique inverse est parfoisutilisé.

La position et l’orientation souhaitées de l’effecteur finalsont données, et les paramètres d’articulation internes sontcalculés automatiquement.

42

Repères de coordonnées locales

Avant d’aborder le contrôle cinématique inverse, nous allons aborderla définition de repères de coordonnées locales.

La définition de hiérarchies complexes et le contrôle cinématiqueinverse nous amènent à vouloir définir des points dans un repère localassocié à une articulation.

Il faut alors disposer d’une méthode bien définie pour convertir lescoordonnées d’un point d’un repère à un autre.

Exemple : Convertir les points définis dans le repère d’unearticulation vers le système de coordonnées global àdes fins d’affichage.

43

1ière approche : Matrices de transformation 4 x 4

À chaque arc est associée une matrice de transformation pour passerd’un repère parent à un repère enfant.

L’inverse de cette transformation (facile à obtenir) permet d’effectuerle chemin inverse.

2ième approche : Notation Denavit-Hartenberg

Paramétrage utilisé en robotique plus concis et plus parlant.

Chaque repère est décrit p/r à un repère adjacent par 4 paramètresqui indiquent la position et l’orientation d’un repère enfant p/r à sonrepère parent.

44

Exemple I : articulation tournante où l’axe de rotation z demeure inchangé

Soient l’axe des z du repère d’articulation : l’axe de rotation,l’axe des x du repère d’articulation :

le lien associé à l’articulation,ai : distance sur l’axe des x d’une articulation à la suivante,θi+1 : angle d’articulation (angle de rotation autour de l’axe des z)

(longueur du lien)

R. Parent, Animatique Algorithmes &techniques. Vuibert, p. 191.

45

Exemple II : articulation tournante avec une configuration non-planaire

Soient l’axe des z du repère d’articulation : l’axe de rotation,l’axe des x du repère d’articulation :

le lien associé à l’articulation,

ai : distance sur l’axe des x d’une articulation à la suivante,

αi : rotation de l’axe des z du iième repère autour de l’axe xi,

di+1 : décalage de lien (distance sur l’axe des z de xi à xi+1),

θi+1 : angle d’articulation (angle de rotation autour de l’axe des z)

La conversion d’un point d’un repère à un autre s’obtient ainsi :

Vi+1 = RZ(θi+1) TZ(di+1) RX(αi) TX(ai) Vi

46

Exemple II : articulation tournante avec une configuration non-planaire

(longueur du lien)

R. Parent, Animatique Algorithmes &techniques. Vuibert, p. 191.

47

Manipulateur utilisant 3 articulations tournantes

Le système de liens est planaire.Il n’y a pas de paramètres de déplacement ni de rotation de lien.

R. Parent, Animatique Algorithmes &techniques. Vuibert, p. 194.

48

Cinématique inverse ( « Inverse Kinematics »)La position voulue et l’orientation possible de l’effecteur final sontfournies par l’utilisateur.

Les angles d’articulation et déplacements requis pour atteindre cetteconfiguration sont calculés.

Ce problème peut présenter aucune, une ou plusieurs solutions.

Système surcontraint Système sous-contraint

Si le mécanisme est simple, le vecteur de pose requis pour produirela configuration finale souhaitée peut être calculée analytiquement.

Si les vecteurs de pose initial et final sont donnés, des configurationsintermédiaires peuvent être formées en interpolant les valeurs desvecteurs de pose, en animant ainsi le mécanisme de sa configurationde départ à sa configuration d’arrivée.

Si le mécanisme est trop compliqué pour des solutions analytiques,des méthodes itératives sont utilisées.

49

Résolution d’un système simple par analyse

Bras simple à 2 liens dans l’espace 2D(L2 ≤ L1)

Espace de travail atteignable

La première opération consiste à s’assurer que la position du but est àportée de l’effecteur final : L1 – L2 ≤ √x2 + y2 ≤ L1 + L2,

où (x, y) désigne la position de l’effecteur final.

Origine

50

Rappel : règle du cosinus

AB

C

|C|2 = |A|2 + |B|2 – 2 |A| . |B| cos ∝

où |A|, |B| et |C| désignent la longueur des côtés A, B et C resp.

51

Résolution d’un système simple (suite)

position del’effecteur

final

Calcul des anglesd’articulation θ1 et θ2

Il existe 2 solutionssymétriques p/r àl’axe (0,0)-(X,Y) àcause de l’arccosinus.

52

En l’absence de solutions analytiques …Pour des structures plus complexes, il peut y avoir un nombreextrêmement élevé de solutions x qui donneront la position souhaitéede l’effecteur final y tel que F(x) = y.

En animation par ordinateur, de nombreuses situations se présententoù l’approche analytique ne peut être considérée.

Il faut avoir recours à des solutions numériques itératives pourrésoudre le système F(x) = y.

Définition :

Soit la fonction F : ℜn → ℜm au point x,alors la matrice jacobienne JF(x) de F est :

JF(x) = ∇F(x) =

∂F1(x) / ∂x1 ∂F1(x) / ∂x2 … ∂F1(x) / ∂xn

∂F2(x) / ∂x1 ∂F2(x) / ∂x2 … ∂F2(x) / ∂xn

…………………………………………………

∂Fm(x) / ∂x1 ∂Fm(x) / ∂x2 … ∂Fm(x) / ∂xn

53

Méthode de Newton-Raphson généraliséeLe problème consiste à trouver le vecteur x tel que :

f1(x) = y1f2(x) = y2……….fm(x) = ym

y1y2…ym

Partant d’une solution x0,à l’itération k, on obtient : xk+1 = xk + zk

où zk est une solution du système d’équations linéaires

JF(xk) z = y – F(xk). (*)

est fixé.où y =

1er cas : m = n et l’inverse du Jacobien existe

zk = JF-1(xk) (y – F(xk)).

54

Méthode de Newton-Raphson généralisée (suite)

2ième cas : m = n et l’inverse du Jacobien n’existe pas

Le système est singulier i.e. il n’existe pas de solution au problème.

3ième cas : m < n, la matrice n’est pas carrée et l’inverse du Jacobienn’est donc pas défini

Il y a plus de DDL qu’il n’y a de contraintes à satisfaire.

Il existe une infinité de solutions au problème.Pour en trouver une, on considère les inverses généralisés pourrésoudre ce système :

De manière compacte, il s’agit de trouver z tel queAz = b

ou AtAz = Atbou z = (AtA)–1 Atb

JF(xk) z = y – F(xk).

inverse généralisé de A = (AtA)–1 At

55

Adaptation à la cinématique inverseSoient y : la position et l’orientation visées de l’effecteur final,xk : les angles

d’articulation,F(xk): la position &

l’orientationcourantes del’effecteurfinal,

y – F(xk) :le terme droit dusystème d’équationslinéaires à résoudre (*)représentant la différenceentre la position/orientationcourante et celle visée.

F(xk-1)

y

F(xk)

xk+1 = xk + zkoù zk est solution de

JF(xk) z = y – F(xk).

xvisé

xk-1

56

Cas simple d’un manipulateur planaire à 3 articulations

Objectif : Déplacer l’effecteur final E vers la position visée G.L’orientation de l’effecteur final n’a pas d’importance ici.

L’axe de rotation de chaque articulation est ⊥ au personnage etémerge de la feuille.

Cas simple d’un manipulateur planaire à 3 articulations

θk+1 = θk + αk, θk ≡ (θ1k , θ2

k , θ3k),

αk ≡ (α1k , α2

k , α3k),

où αk est solution de J(θk) α = G – Ek

avec

Ek : position de l’effecteur final,P1k : position de P1 à l’itération k,P2k : position de P2 à l’itération k,

Il nous reste à déterminer le Jacobien J(θk).

À l’itération k + 1,

1. P1k = RZ(θ1k) L1

00

2. P2k = P1k + RZ(θ1k + θ2

k) L200

Cas simple d’un manipulateur planaire à 3 articulations

3. Ek = P2k + RZ(θ3k + θ1

k + θ2k) L3

00

ou encore,

L1 cos(θ1k) + L2 cos(θ1

k + θ2k) + L3 cos(θ3

k + θ1k + θ2

k) Ek = L1 sin(θ1

k) + L2 sin(θ1k + θ2

k) + L3 sin(θ3k + θ1

k + θ2k)

0

J(θk) =

4.- Ek

y P1ky – Ek

y P2ky – Ek

yEk

x Ekx - P1k

x Ekx – P2k

x 0 0 0

Il s’ensuit que :

J(θk) : ((0, 0, 1) x Ek)x ((0, 0, 1) x (Ek - P1k))x ((0, 0, 1) x (Ek – P2k))x

((0, 0, 1) x Ek)y ((0, 0, 1) x (Ek - P1k))y ((0, 0, 1) x (Ek – P2k))y

ou encore,

((0, 0, 1) x Ek)z ((0, 0, 1) x (Ek - P1k))z ((0, 0, 1) x (Ek – P2k))z

g1 g2 g3

Cas simple d’un manipulateur planaire à 3 articulations

Il se peut que le système soit singulier.

Exemple : θk ≡ 0, Ek ≡ L1 + L2 + L300

J(θk) ≡0 0 0L1 + L2 + L3 L2 + L3 L30 0 0

Calculons alors l’inverse généralisé du Jacobien :pour trouver une solution au système d’équations linéaires.

On peut enlever la 3ième équation du système linéaire: J(θk) α = G – Ek.Cela nous ramène au cas m = 2 < n = 3.

(J(θk)t J(θk) )–1 J(θk)t

Il n’existe pas de solution au système d’équations linéairesà moins que G = E1 + E2 + E3.

Cas simple d’un manipulateur planaire à 3 articulations

Extension du modèle au casoù

les angles d’articulation sont bornés

Nous avons les contraintes supplémentaires suivantes :

θ ≤ θ ≤ θ

On peut encore utiliser la méthode de Newton-Raphson généraliséeen remplaçant, par exemple, chaque composante de θ, soit θi, par :

θ + ( θ - θ) sin2 βi

Exemple :

Modélisation de l’index.

62

Difficultés ou contraintes liées à cette méthodeL’inversion de la matrice jacobienne ou le calcul de l’inversegénéralisée peuvent donner lieu à des instabilités numériques.

Pour assurer la convergence de cette méthode, la solution de départdoit être proche de la solution visée. Certaines propriétés de continuitédu Jacobien doivent aussi être satisfaites.

Lorsqu’on construit le Jacobien, il est important de s’assurer quetoutes les valeurs de coordonnées se situent dans le même système decoordonnées car il arrive souvent que les informations propres àl’articulation soient données dans le système de coordonnées local àcette articulation.

Un mouvement plus réaliste que les techniques cinématiques estsouvent souhaité et des simulations de nature physiques sont alorsnécessaires.