2.1.7 Variables robot – Joint Variables Tout robot est controlé par des consignes angulaires ou linéaires envoyées aux actionneurs (moteurs). A robot is controlled by sending desired joint variables to the actuators. The number of joint variables is the number of degrees of freedom of the robot. Symbols qi or qi are used for these variables. Ces angles ou positions sont les variables robots. Leur nombre n est le nombre de ddl du robot. (joint variables) Nous utilisons { q1, q2, … qi, …. qn } ou { q1, q2, … qi, …. qn }.
Variables opérationnelles – Operational (Task-specific) variables La tâche du robot se décrit dans d’autres termes: Position et orientation de l’outil, de l’objet à manipuler. Pour un corps rigide, il sera nécessaire de spécifier six paramètres indépendants, correspondants aux six ddl d’un solide dans l’espace. {x,y,z, Q} ou {x,y,z, a, b, g} The robot task is described in other variables, task specific: The position and orientation of the object to be handled, i.e. the six independant values {x,y,z, Q} or {x,y,z, a, b, g}
Modèle Géométrique Direct MGD Forward Kinematics Le MGD donne les coordonnées opérationelles en fonction des variables articulaires Forward kinematics is the mathematical expression of the task variables as function of the joint variables. {x,y,z, Q} = F (q1, q2, … qi, …. qn )
q4 y q2 L2 L1 q1 x Exemple: MGD du SCARA Fig.8 Définition des variables articulaires qi 1st step: Definition of the joint variables définir les positions de référence qi = 0 2nd step Definition of reference position (of the zero) définir les paramètres du robot Li 3rd step Definition of the robot parameters
qi = 0 y L1 L2 x x = … ? y = … ? z = q3 j = q1 + q2 + q4 Position de référence qi = 0 y L1 L2 x Le MGD donne orientation et position de la main x = … ? y = … ? z = q3 j = q1 + q2 + q4 q1 q2 q4 L1 L2 y x The forward kinematics will give position & orientation of the hand
x = L1 cos q1 + L2cos(q1 + q2 ) = L1 c1 + L2c12 Position du centre de la main (tool center point TCP) & orientation de la main TCP y q2 L2 L1 q1 x x = L1 cos q1 + L2cos(q1 + q2 ) = L1 c1 + L2c12 y = L1 sin q1 + L2sin(q1 + q2 ) = L1 s1 + L2s12 z = q3 j = q1 + q2 + q4
Position & orientation d’un outil TCP y L4 q2 q1 x x = L1 c1 + L2c12 + L4c124 y = L1 s1 + L2s12 + L4s124 z = q3 j = q1 + q2 + q4 Position & orientation of a tool
La même démarche pour un robot à 6 ddl devient MGD d’un robot à 6 ddl? La même démarche pour un robot à 6 ddl devient très difficile => utiliser les matrices homogènes! For a 6 d.o.f. robot, the same task becomes very hard by hand. It becomes straight forward with the use of homogenous matrices. Exercice 9 !
Ex. 9b Rot. de q4 de autour de [ L1 + L2 , 0 ]T Rot. de q2 de autour de [ L1 , 0 ]T Rot. de q1 de autour de [ 0 , 0 ]T 1.)
et L1 2 = L1 + L2 avec les définitions versine(q) = 1– cosq Ex. 9b Rot. de q4 de autour de [ L1 + L2 , 0 ]T avec les définitions versine(q) = 1– cosq donc v4 = 1– cos q4 et L1 2 = L1 + L2
Ex. 9b MGD complet: =
Ex. 9c MGD complet: =
x x = L1 c1 + L2c12 + L4c124 y = L1 s1 + L2s12 + L4s124 Application du MGD L1 L2 y x L4 Ex. 10 q1 q2 L4 y x TCP x = L1 c1 + L2c12 + L4c124 y = L1 s1 + L2s12 + L4s124
x Etablissement du MGD: Définir les variables robots Définir leurs positions de référence Définir les paramètres du robot Enchainer les mouvements successifs (multiplication de matrices homogènes) L4 y L1 L2 x
MGD d’un robot 6ddl q3 q2 q6 q5 q4 q1 Variables robot Convention: Partir de la base vers la main q1
2. Positions de référence q2 q3 q5 q4 , q6 y z x q1 2. Positions de référence qi = 0 Les flèches indiquent le sens de rotation positif The arrows indicate positive rotation Le référentiel (x,y,z) est fixe (coordonnées opérationelles) Fixed coordinate frame!
z x y 3. Paramètres du robot q5 q3 q2 q1 D4 L2 D3 q4 , q6 Les axes q1 et q2 se croisent => L1=0 cross each other D4 Les axes q2 et q3 sont parallèles, dist. L2 q5 q3 Les axes q3 et q4 se croisent => L3=0 L2 Les axes q1 et q4 sont décalés sur l'axe q3 d'une distance D3 Distance between q1 and q4 along q3 : D3 D3 x y Les axes q4 et q5 se croisent => L4=0 q2 Les axes q3 et q5 sont décalés sur l'axe q4 d'une distance D4 q1
Généralisation de la paramétrisation: Paramètres Denavit-Hartenberg Les axes de rotation successifs qi sont reliés par les perpendiculaires communes, définissant ainsi des points de repère Pi q2 q3 q1 P1' P2 P2' P3 L2 L1 ai D2 Passage de l'axe 1 à l'axe 2: Déplacement de L1, Angle fixe de a1 autour de L1 Li: Link length ai: Twist angle Distance de Pi à Pi': Joint offset Di
4. Enchainement des mouvements z q4 , q6 Rot. de q6 autour de l'axe z , décalée de p = [D3,0,0]' q5 D4 q3 L2 D3 x y q2
2. Rot. de q5 autour de l'axe x , décalé de p = [0,0, L2+D4]' z q4 , q6 2. Rot. de q5 autour de l'axe x , décalé de p = [0,0, L2+D4]' q5 D4 q3 L2 D3 x y q2 et ainsi de suite pour K4 ,K3 , K2 , K1
MGD du robot 6ddl P(qi) = (K1 K2 K3 K4 K5 K6 ) P0 P0 q3 q2 q6 P(qi) q5 Forward kinematics of the robot arm: P(qi) = (K1 K2 K3 K4 K5 K6 ) P0
2.1.8 Représentation de l’orientation: Angles d'Euler L'orientation est très souvent exprimée en angles autour de trois axes fixés au corps en mouvement. (Figures p. 2.1-11) Historiquement ce sont précession, nutation, rotation propre (axes z,x,z liés au corps) Généralisation: On trouve 12 jeux d'angles différents Orientation is often expressed as angles around body-fixed axes. Historically, these were first defined by Euler as precession, nutation and proper rotation of a gyroscope
Orientation: Poignet à 3 axes concurrents Wrist with three axes through a common intersection q5 q4 q6 Fig 10
Poignet à 3 axes: Angles d’Euler Gruber p. 209 q5 q4 q4= y q5= ϑ y x q6 =j z Poignet à 3 axes: Angles d’Euler Gruber p. 209 ( y, ϑ ,j ) Précession nutation rotation propre axes z,x,z (corps) body-fixed
q5 q6 q4 Poignet cardanique: Roulis (roll) j aut. axe x, direction d'approche tangage (pitch) J aut. axe y lacet (yaw) y aut. axe z Angles d'Euler (x,y,z), axes liés au corps q5 q4 q6 Cardanic wrist
P(qi) = (K1 K2 K3 K4 K5 K6 ) P0 MGD: Comment trouver les angles (j, J, y) par rapport à des axes fixes x,y,z? R1 R2 R3 R4 R5 R6 = Rtot = Rtot = Rz Ry Rx =
Solution: j = Atan2(r32, r33) y = Atan2(r21, r11)
2.1.9 MGI Tâche pratique: Quelles variables qi pour un P donné? z x q2 q4 q6 q5 q1 q3 y P(qi) On cherche qi(P) , donc la fonction inverse du MGD P(qi)
Modèle Géométrique Inverse (indirect) Inverse Kinematics, rückwärts Kinematik Problème mathématiquement difficile! Exemple très simple: L2 q1 q2 x L1 MGD x = L1 c1 + L2c12 y = L1 s1 + L2s12 Donnés x & y, quels sont q1 et q2 ?
1. Remplacer cos(q1 + q2) par cosq1 et cosq2 x = L1 c1 + L2c12 = L1 c1 + L2c1c2 – L2s1s2 y = L1 s1 + L2s12 = L1 c1 + L2s1c2 + L2c1s2 2. L'introduction des sinus nécessite d'ajouter les relations entre sinus et cosinus s12 + c12 = 1 s22 + c22 = 1 4 équations, 4 inconnues mais des équations quadratiques!
Nous constatons donc que le MGI est beaucoup plus complexe que le MGD! Les équations sont non-linéaires Des solutions analytiques générales comme dans le cas d'équ. linéaires sont inconnues Solutions multiples possibles! Infinité de solutions possible (redondance)
Note Robot redondant: Plus de ddl que nécessaires au positionement Raison: Accessabilité Applications typiques: Soudure, peinture sur des éléments complexes (carosserie d'auto)
Solution des 4 équations: (x2 + y2) = L12 + L22 + 2 L1 L2 c2 Cela donne cos(q2) et donc deux angles q2 Exercice: Trouvez q1
Robot à 6 ddl Position: On peut trouver le MGI en combinant deux fois l'exemple planaire qui vient d'être fait. Nous avons donc déjà 2x2=4 postures possibles
donc R(q4,q5,q6) = R(base)–1 R(consigne) MGI du robot à 6 ddl Orientation: Les angles sont des angles d'Euler par rapport à l'orientation du troisième membre. R(consigne) = R(base) R(q4,q5,q6) donc R(q4,q5,q6) = R(base)–1 R(consigne) Postures? (nombre de solutions?)
Postures du poignet q5 q4 q6 q5 => -q5 q4 => q4±p q6 => q6±p
Récapitulation MGD et MGI Le MGD se trouve de façon systématique. (Paramètres Denavit Hartenberg, matrices homogènes) Il y a toujours une solution dans le domaine de travail Le MGI ne peut pas se calculer systématiquement dans tous les cas (besoin d'astuces) Solutions multiples (postures) possibles Nombre de solutions inconnu en général! Méthodes numériques ne donnent pas toutes les solutions
Robots parallèles? q3 q1 q2 f MGD: Données q1, q2, q3, (x, y) f q3 q1 q2 MGD: Données q1, q2, q3, Quels sont (x, y, f) ?
Solution:
Constat: Pour les robots parallèles, c'est le modèle géométrique direct MGD qui aura plusieurs solutions. On les appelle les "contorsions"
MGI? q3 q1 q2 f MGI: Données (x, y, f) , Quels sont q1, q2, q3 ?
MGI (x, y) f A l'évidence, il n'y a qu'une seule solution.
Fin section 2.1 "Cinématique" Robots sériels: Le MGD a une seule solution; méthode "infaillible" existe Le MGI a des solutions multiples! (Les postures) Robots parallèles, c'est juste l'inverse: Le MGD a des solutions multiples! (Les contorsions) Le MGI n'a qu'une solution, souvent facile à trouver Ces questions sont objet de recherche en robotique. (publications, conférences...)