UFR des Sciences, Département EEA M1 EEAII Parcours ViRob Fabio MORBIDI E-mail: [email protected]! http://home.mis.u-picardie.fr/~fabio/Teaching.html Année Universitaire 2014/2015 Plan du cours Chapitre 1 : Généralités 1.1 Définitions 1.2 Constituants d’un robot 1.3 Classification des robots 1.4 Caractéristiques d’un robot 1.5 Les générations de robot 1.6 Programmation des robots 1.7 Utilisation des robots Chapitre 2 : Degrés de liberté - Architecture 2.1 Positionnement • Rotation et représentation de la rotation • Attitude et matrices homogènes 2 Plan du cours 2.2 Cinématique • Vitesse d’un solide • Vecteur vitesse de rotation • Mouvement rigide • Torseur cinématique Chapitre 3 : Modélisation d’un robot 3.1 Modèle géométrique • Convention de Denavit-Hartenberg • Modèle géométrique direct • Modèle géométrique inverse 3.2 Modèle cinématique • Jacobien direct d’un robot • Jacobien inverse d’un robot 3.3 Modèle dynamique • Equation d’Euler-Lagrange 3 Cinématique différentielle effecteur θ˙4 d˙3 p˙ e ωe θ˙2 θ˙1 Cinématique différentielle: elle nous donne la relation entre ˙ et la vitesse linéaire p˙ e et angulaire ω e la vitesse des articulations q de l’effecteur du robot par rapport au repère de la base Le mappage q˙ −→ (p˙ e , ω e ) est décrit par une matrice, le jacobien géométrique, qui dépend de la configuration q du manipulateur 4 Jacobien géométrique • Le jacobien est l'un des outils les plus importants pour la caractérisation d’un manipulateur • En effet, le jacobien est utile pour: o Trouver les singularités o Analyser la redondance o Déterminer des algorithmes pour le modèle géométrique inverse o Décrire la relation entre les forces appliquées à l'effecteur et les forces résultantes au niveau des articulations (“efforts statiques”) o Dériver les équations dynamiques du mouvement o Développer des stratégies de contrôle dans l’espace opérationnel Remarque: Soit F(x) : R −→ R , le jacobien de F est une matrice m × n définie par: n m ∂ F1 ∂ x1 ∂F J= = ... ∂x ∂F m ∂ x1 ··· .. . ··· ∂ F1 ∂ xn .. . ∂ Fm ∂ xn 5 Jacobien géométrique Considérons un manipulateur avec n articulations. Nous pouvons écrire le modèle géométrique direct: Te (q) = � Re (q) pe (q) 01×3 1 � T où q = [q1 , . . . , qn ] est le vecteur des variables des articulations. La position et orientation de l’effecteur varie lorsque q varie. ˙ e et la vitesse angulaire ω e Objectif: exprimer la vitesse linéaire p de l’effectuer en fonction de la vitesse des articulations q ˙ 6 Jacobien géométrique Les relations cherchées sont toutes les deux linéaires par rapport ˙: à les vitesses des articulations q p˙ e = JP (q) q˙ ω˙ e = JO (q) q˙ où JP (q) ∈ R3×n : matrice qui met en relation la contribution des vitesses ˙ avec la vitesse linéaire de l’effecteur p˙ e des articulations q JO (q) ∈ R3×n : matrice qui met en relation la contribution des vitesses ˙ avec la vitesse angulaire de l’effecteur ω e des articulations q Sous une forme compacte: ve = � p˙ e ωe � = J(q) q˙ Équation de la cinématique différentielle du manipulateur 7 Jacobien géométrique La matrice: J = � JP JO � ∈ R6×n est le jacobien géométrique du manipulateur (une fonction des variables d’articulation, en général) Pour calculer explicitement le jacobien géométrique, on va utiliser les propriétés des matrices de rotation et les formules pour la cinématique du corps rigide vues dans le Chapitre 2, partie 2 8 Vitesse des segments d’un robot Art. i Repère i - 1 Caractérisation d’un segment générique i d’un manipulateur (en utilisant la convention de DH) Segment i Art. i + 1 Repère 0 Repère i Soient: pi−1 , pi : vecteurs de la position des origines des repères i – 1 et i ri−1 i−1,i : position de l’origine du repère i par rapport au repère i – 1 exprimée dans le repère i – 1 Assumption: Le repère 0 et n sont les repères de la base et de l’effecteur du robot. On va aussi omettre l’exposant “0” du repère de base. 9 Vitesse des segments d’un robot On trouve que: pi = pi−1 + Ri−1 ri−1 i−1,i Ri−1 : rotation du repère i – 1 par rapport au repère 0 Si on calcule la dérivée par rapport au temps de cette équation, et on utilise encore les formules vues dans le Chapitre 2, partie 2, nous trouvons: i−1 p˙ i = p˙ i−1 + Ri−1 r˙ i−1 + ω × R r i−1 i−1 i−1,i i−1,i où = p˙ i−1 + vi−1,i + ω i−1 × ri−1,i vi−1,i : vitesse de l’origine du repère i par rapport à l’origine du repère i – 1 Remarque: nous avons ainsi trouvé l’expression de la vitesse linéaire du segment i en fonction de la vitesse linéaire et angulaire du segment i – 1 p˙ i = p˙ i−1 + vi−1,i + ω i−1 × ri−1,i 10 Vitesse des segments d’un robot Pour la vitesse angulaire du segment i, on peut partir avec la formule de composition de deux rotations: Ri = Ri−1 Ri−1 i Si on calcule la dérivée par rapport au temps de cette équation, et on utilise les formules vues dans le Chapitre 2, partie 2: ˙ i = S(ω i ) Ri = S(ω i−1 ) Ri + Ri−1 S(ω i−1 ) Ri−1 R i−1,i i où S(ω i ) : matrice antisymétrique associée au vecteur ω i : vitesse angulaire du repère i par rapport au repère i – 1 exprimée ω i−1 i−1,i dans le repère i – 1 On peut réécrire le 2ième terme du côté droit de l’équation ci-dessus comme (note que, en général R S(ω) RT = S(R ω)): i−1 i−1 i−1 i−1 T Ri−1 S(ω i−1 )R = R S(ω )R R R = S(R ω i−1 i−1 i−1 i−1 i−1,i i i−1,i i i−1,i )Ri I3 11 Vitesse des segments d’un robot Donc on a trouvé que: S(ω i ) Ri = S(ω i−1 ) Ri + S(Ri−1 ω i−1 i−1,i ) Ri à partir de laquelle nous déduisons que: ω i = ω i−1 + Ri−1 ω i−1 i−1,i = ω i−1 + ω i−1,i Remarque: nous avons ainsi trouvé l’expression de la vitesse angulaire du segment i en fonction de la vitesse angulaire du segment i – 1 et i par rapport au segment i – 1 Note qu’on obtient des expressions différentes pour: p˙ i = p˙ i−1 + vi−1,i + ω i−1 × ri−1,i ω i = ω i−1 + ω i−1,i en fonction du type d’articulation i (c’est-à-dire, prismatique ou rotoïde) 12 Vitesse des segments d’un robot Art. i Segment i Repère i Repère i – 1 di Art. i + 1 Articulation prismatique: L’orientation du repère i par rapport au repère i – 1 ne change pas en déplaçant le segment i, donc: ω i−1,i = 0 En outre, la vitesse linéaire est: vi−1,i = d˙i zi−1 où zi−1 est le vecteur unitaire de l’axe de l’articulation i 13 Vitesse des segments d’un robot Art. i Segment i Repère i Repère i – 1 di Art. i + 1 Articulation prismatique: Donc on trouve les équations suivantes: ω i = ω i−1 p˙ i = p˙ i−1 + d˙i zi−1 + ω i × ri−1,i 14 Vitesse des segments d’un robot Art. i Repère i Segment i θi Repère i – 1 Art. i + 1 Articulation rotoïde: Pour la vitesse angulaire, on a: ω i−1,i = θ˙i zi−1 tandis que pour la vitesse linéaire: vi−1,i = ω i−1,i × ri−1,i en raison de la rotation du repère i par rapport au repère i – 1 induite par le mouvement du segment i 15 Vitesse des segments d’un robot Art. i Segment Repère i i θi Repère i – 1 Art. i + 1 Articulation rotoïde: Donc on trouve les équations suivantes: ω i = ω i−1 + θ˙i zi−1 p˙ i = p˙ i−1 + ω i × ri−1,i où on a utilisé (pour la 2ième equ.): ω i−1,i × ri−1,i + ω i−1 × ri−1,i = (ω i−1,i + ω i−1 ) × ri−1,i = ω i × ri−1,i 16 Calcul du jacobien Pour calculer le jacobien, il est opportune de procéder séparément pour les vitesses linéaires et angulaires Pour la contribution à la vitesse linéaire, on peut écrire la dérivée de pe (q) par rapport au temps, comme: p˙ e = n � ∂ pe i=1 Pi q˙i ∂ qi q˙i = n � Pi q˙i i=1 : contribution de la vitesse de l’articulation i à la vitesse linéaire de l’effecteur lorsque toutes les autres articulations sont immobiles Articulation prismatique: Si l’articulation i est prismatique ( qi = di ): Pi q˙i = d˙i zi−1 et donc: Pi = zi−1 17 Calcul du jacobien Articulation rotoïde: Si l’articulation i est rotoïde ( qi = θi ), en observant que la contribution à la vitesse linéaire doit être calculée par rapport à l’origine du repère de l’effecteur, nous avons: et donc: Pi q˙i = ω i−1,i × ri−1,e = θ˙i zi−1 × (pe − pi−1 ) Pi = zi−1 × (pe − pi−1 ) 18 Calcul du jacobien Pour la contribution à la vitesse angulaire, on a: ωe = ωn = n � ω i−1,i = i=1 n � Oi q˙i i=1 On peut encore caractériser les termes Oi q˙i séparément. Articulation prismatique: Si l’articulation i est prismatique: et donc: Oi q˙i = 0 Oi = 0 Articulation rotoïde: Si l’articulation i est rotoïde: Oi q˙i = θ˙i zi−1 et donc: Oi = zi−1 19 Calcul du jacobien Conclusion: 3×1 Le jacobien J peut être partitionné en vecteurs colonnes Pi , Oi ∈ R , comme: J = où � Pi Oi � = � P1 P2 O1 O2 � � zi−1 0 ··· ··· Pn On � ∈ R6×n si l’articulation est prismatique � � zi−1 × (pe − pi−1 ) z si l’articulation est roto¨ıde i−1 Cette expression permet de calculer le jacobien d’un manipulateur d’une façon simple et systématique à partir du modèle cinématique direct En effet, zi−1 , pe , pi−1 sont toutes fonctions des variables articulaires 20 Calcul du jacobien Conclusion: En effet: • zi−1 est donné par la troisième colonne de la matrice de rotation R0i−1 • pe est donné par les trois premiers éléments de la quatrième colonne de la matrice de transformation T0e • pi−1 est donné par les trois premiers éléments de la quatrième colonne de la matrice de transformation T0i−1 Remarque: les équations précédentes permettent de calculer le jacobien géométrique par rapport au repère de la base. • Si on veut répresenter le jacobien dans un repère différent “u”, il suffit de connaître la matrice de rotation relative Ru • La relation entre les vitesses dans les deux repères est: � p˙ ue ω ue � = � u R 0 0 Ru �� p˙ e ωe � = � u R 0 � 0 J q˙ u R Ju : jacobien géométrique dans le rep. “u” 21 Calcul du jacobien géométrique Exemples 22 1 - Manipulateur planaire à 3 segments θ3 θ2 θ1 23 Manipulateur planaire à 3 segments Trois articulations rotoïdes. Le jacobien est donc: J(q) = � z0 × (p3 − p0 ) z0 z1 × (p3 − p1 ) z1 z2 × (p3 − p2 ) z2 � Les vecteurs de position des segments du robot sont: 0 a1 cos θ1 a1 cos θ1 + a2 cos(θ1 + θ2 ) p0 = 0 , p1 = a1 sin θ1 , p2 = a1 sin θ1 + a2 sin(θ1 + θ2 ) 0 0 0 a1 cos θ1 + a2 cos(θ1 + θ2 ) + a3 cos(θ1 + θ2 + θ3 ) p3 = a1 sin θ1 + a2 sin(θ1 + θ2 ) + a3 sin(θ1 + θ2 + θ3 ) 0 Les vecteurs unitaires des axes des articulations sont (les axes sont tous parallèles au axe z0): z0 = z1 = z2 = � 0 0 1 �T 24 Manipulateur planaire à 3 segments Conclusion: −a1 s1 − a2 s12 − a3 s123 a c +a c +a c 2 12 3 123 1 1 0 J = 0 0 1 −a2 s12 − a3 s123 a2 c12 + a3 c123 0 0 0 1 −a3 s123 a3 c123 0 0 0 1 Remarque: • Seulement les trois lignes du jacobien différentes de zéro sont importantes. Elles sont relatives aux composants de la vitesse linéaire le long des axes x0 et y0, et au composant de la vitesse angulaire autour de l’axe z0. • En effet, 3 DDL permettent de spécifier au maximum 3 variables de l’effecteur: vz , ωx , ωy sont toujours zéro pour ce manipulateur. 25 2 - Manipulateur anthropomorphe a3 θ3 θ2 θ1 26 Manipulateur anthropomorphe Trois articulations rotoïdes. Le jacobien est donc encore: J(q) = � z0 × (p3 − p0 ) z0 z1 × (p3 − p1 ) z1 z2 × (p3 − p2 ) z2 � Les vecteurs de position des segments du robot sont: 0 a2 cos θ1 cos θ2 cos θ1 (a2 cos θ2 + a3 cos(θ2 + θ3 )) p0 = p1 = 0 , p2 = a1 sin θ1 cos θ2 , p3 = sin θ1 (a2 cos θ2 + a3 cos(θ2 + θ3 )) 0 a2 sin θ2 a2 sin θ2 + a3 sin(θ2 + θ3 ) Les vecteurs unitaires des axes des articulations rotoïdes sont: 0 z0 = 0 , 1 sin θ1 z1 = z2 = − cos θ1 0 27 Manipulateur anthropomorphe Conclusion: −s1 (a2 c2 + a3 c23 ) c1 (a2 c2 + a3 c23 ) 0 J = 0 0 1 −c1 (a2 s2 + a3 s23 ) −s1 (a2 s2 + a3 s23 ) a2 c2 + a3 c23 s1 −c1 0 −a3 c1 s23 −a3 s1 s23 a3 c23 s1 −c1 0 Remarque: • Seulement 3 des 6 lignes du jacobien sont linéairement indépendantes. • La matrice JP −s1 (a2 c2 + a3 c23 ) = c1 (a2 c2 + a3 c23 ) 0 −c1 (a2 s2 + a3 s23 ) −s1 (a2 s2 + a3 s23 ) a2 c2 + a3 c23 −a3 c1 s23 −a3 s1 s23 a3 c23 décrit la rélation entre les vitesses des articulations et la vitesse linéaire de l’effecteur. • Ce manipulateur ne permit pas une vitesse angulaire arbitraire. En effet les deux composants ωx , ωy ne sont pas indépendants: ωy s1 = −ωx c1 28 3 - Manipulateur Stanford θ6 θ5 θ4 θ2 θ1 29 Manipulateur Stanford Cinq articulations rotoïdes et une articulation prismatique. Le jacobien est donc: J = � z0 × (p6 − p0 ) z0 z1 × (p6 − p1 ) z1 z2 0 z3 × (p6 − p3 ) z3 z4 × (p6 − p4 ) z4 z5 × (p6 − p5 ) z5 � Les vecteurs de position des segments du robot sont: 0 p0 = p1 = 0 , 0 c 1 s 2 d3 − s 1 d2 p 3 = p 4 = p 5 = s 1 s 2 d3 + c 1 d2 c 2 d3 � � c1 s2 d3 − s1 d2 + c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5 d6 � � p6 = s1 s2 d3 + c1 d2 + s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 d6 c2 d3 + (−s2 c4 s5 + c2 c5 )d6 30 Manipulateur Stanford Enfin, les vecteurs unitaires des axes des articulations sont: et 0 z0 = 0 , 1 −s1 z1 = c 1 , 0 −c1 c2 s4 − s1 c4 z4 = −s1 c2 s4 + c1 c4 , s2 s4 c1 s2 z2 = z3 = s 1 s 2 c2 c1 (c2 c4 s5 + s2 c5 ) − s1 s4 s5 z5 = s1 (c2 c4 s5 + s2 c5 ) + c1 s4 s5 −s2 c4 s5 + c2 c5 31 Singularités cinématiques • Le jacobien définit un mappage linéaire ve = J(q) q˙ entre le vecteur des vitesses des articulations T T T vitesses de l’effecteur ve = [p˙ e , ω e ] q˙ et le vecteur des • Les configurations où le jacobien n’a pas rang plein sont appelées singularités cinématiques Trouver le singularities d’un manipulateur est important parce que: 1. Les singularités sont des configurations où la mobilité du robot est réduite, c’est-à-dire, il n’est pas possible d'imposer un mouvement arbitraire à l'effecteur 2. Si le robot est à une singularité, ils peuvent exister une infinité de solutions au problème inverse 3. Dans le voisinage d'une singularité, des petites vitesses dans l’espace opérationnel peuvent produire des grandes vitesses dans l'espace articulaire 32 Singularités cinématiques Remarque: les configurations du robots qui sont singulières pour le modèle géométrique inverse le sont aussi pour le jacobien • Il existe deux types de singularités: 1) Les singularités aux limites du volume de travail qui apparaissent lorsque le bras est complètement étendu (ou rétracté). Ils peuvent être évités: ils ne représentent pas un véritable problème 2) Les singularités à l’intérieur du volume de travail qui apparaissent lors de l’alignement de deux ou plus axes du robot, ou pour des configurations particulières de l’effecteur. Elles sont critiques parce que on peut les rencontrer partout dans le volume de travail Exemple [Manipulateur planaire à deux segments] θ1 θ2 = 0 33 Singularités cinématiques Exemple [Manipulateur planaire à deux segments] p˙ x , p˙ y θ1 θ2 = 0 • On consider seulement les composants de la vitesse linéaire p˙ x , p˙ y dans le plan: • Le jacobien est donc la matrice 2 × 2: J = � −a1 s1 − a2 s12 a1 c1 + a2 c12 −a2 s12 a2 c12 � • Pour analyser le rang du jacobien, on peut calculer son déterminant 34 Singularités cinématiques Exemple [Manipulateur planaire à deux segments] θ1 • On trouve que: θ2 = 0 det(J) = a1 a2 sin θ2 • Si a1 , a2 �= 0 le determinant est zéro lorsque: θ2 = 0, θ2 = π (bras complètement étendu ou rétracté) et la valeur de θ1 est irrevelante pour étudier les configurations singulières • Singularité de type 1 35 Singularités cinématiques Exemple [Manipulateur planaire à deux segments] θ1 θ2 = 0 • Si on analyse le mouvement différentiel pour θ2 = 0 , on observe que les deux colonnes du jacobien: [−(a1 + a2 )s1 (a1 + a2 )c1 ]T , [−a2 s1 a2 c1 ]T deviennent parallèles et le rang de la matrice devient 1 • Cela veut dire que les composants de la vitesse de l’effecteur p˙ x , p˙ y ne sont pas indépendants 36 Cinématique différentielle inverse Objectif: déterminer les vitesses articulaires du manipulateur en fonction de la vitesse de l’effecteur • En général, on peut calculer les vitesses articulaires via: q˙ = J† ve où J† est la pseudo-inverse de Moore-Penrose de J • Si le jacobien est carré (si le robot est redondant, nombres des colonnes > nombre des lignes), et il a rang plein, on a que J† = J−1 (la pseudoinverse devient l’inverse classique) et on trouve: q˙ = J−1 ve • On peut intégrer cette équation différentielle en temps discret en utilisant, par ex. la méthode d’intégration d’Euler. Si le pas d’intégration ∆ t et les positions et vitesses au temps tk sont connues, les positions des articulations au temps tk+1 = tk + ∆ t peuvent être calculées via: q(tk+1 ) = q(tk ) + J−1 (q(tk ))ve (tk )∆ t 37 Cinématique différentielle inverse • En pratique, pour avoir des algorithmes plus robustes, on préfére travailler avec le jacobien analytique JA : x˙ e = � p˙ e φ˙ e � = � JP (q) Jφ (q) � q˙ = JA (q) q˙ où pe φe : origine du repère de l’effecteur par rapport à la base : représentation minimale de l’orientation de l’effecteur (3 variables) dans l’espace opérationnel • Le jacobien analytique JA est différent du jacobien géométrique J parce ˙ que la vitesse angulaire de l’effecteur par rapport à la base ω e, n’est pas φ e • Pour plus de détails sur les algorithmes pour la cinématique inverse basés sur le jacobien analytique (en effet, la littérature est très grande), voir la séction 3.7 du livre de Siciliano, Sciavicco, Villani et Oriolo. 38 Efforts statiques τ3 Objectif de la statique: déterminer la rélation entre les forces généralisées appliquées à l’effecteur et les forces généralisées appliquées à les articulations (forces pour les art. prismatiques et couples pour les art. rotoïdes) avec les manipulateur dans une configuration d’équilibre statique γe τ2 Soit: τ ∈R n×1 : vecteur des efforts exercés par les actionneurs sur les articulations du robot τ1 γ e ∈ Rr×1 : vecteur des efforts agissant sur l’effecteur, où r est la dimension de l’espace opérationnel • L’application du “Principe du Travail Virtuel”, nous permet d’écrire l’équation: τ = JT (q) γ e • La transposée du jacobien géométrique d’un manipulateur met en relation les forces sur l’effecteur avec les forces sur les articulations 39
© Copyright 2024