2 Theoretical Foundations: Model and Control 2.1 KinematicsBleuler 2.2 JacobianBouri 2.3 DynamicsBouri 2.4 ControlBouri
2.1 Kinematics Generic task of industrial robot: Move an object (tool, workpiece) Therefore: Need to study kinematics, i.e. geometry of motion Velocities, accelerations later Forces (statics & dynamics) later Tâche "générique" du robot industriel: Déplacer un objet (outil ou pièce) Donc: Etude de la cinématique, i.e. géometrie des mouvements Forces, statique & dynamique plus tard Temps, vitesses, accélérations plus tard
La cinématique peut représenter 80% de l'effort dans l'établissement du modèle d'un robot. Elle seule peut facilement faire l'objet de cours ou de livres entiers. Ce chapitre 2.1 n’est qu'une introduction se limitant à l'essentiel. Kinematics may reach 80% of the effort to model a robot Robot Kinematics is a research topic on its own, textbooks available This lecture provides only an introduction to the bare essentials
Content of § 2.1 Kinematics 1.Introduction, active & passive transformations 2.Translations & rotations 2D around coord. origin 3.Combination transl. & rot: Homogenous matrices 4.2D Rotations around any centerpoint 5.3D Rotations: Rot.-axis, quaternions 6.Homogenous matrices 7.Forward kinematicsModèle géométrique direct 8.Euler angles 9.Inverse Kinematics Modèle géométrique inverse
22 44 66 55 11 33 Joint Coordinates Variables robot A robot is controlled by angular or linear input commands. These values are sent to the actuators (motors). These angular or linear values are called joint coordinates or joint variables { q 1, q 2, … q i, …. q n } or { 1, 2, … i, …. n }.
Joint Coordinates Variables robot Robot Coordinates Variables articulaires Tout robot est controlé par des consignes angulaires ou linéaires envoyées aux actionneurs (moteurs). Ces angles ou positions sont les variables robots. Leur nombre n est le nombre de ddl du robot. { q 1, q 2, … q i, …. q n } ou { 1, 2, … i, …. n }. 11 22 33 44
Operational (or task) variables The robot task is not defined in joint coordinates: It is position and orientation of the tool or workpiece to be manipulated with respect to a fixed working frame. e.g. x,y,z of the tool center point, tool orientation x y z
Operational (or task) variables Variables opérationelles x y z 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 variables, correspondants aux six ddl d’un solide dans l’espace. { x,y,z } = position d’un point du solide, p.ex. du centre. Les trois paramètres restants peuvent être représenté par une grande variété de façons.
Variables for orientation Parmi les plus communes: Angles autour de trois axes fixés au corps en mouvement. Vous connaissez au moins une telle représentation: Tangage, roulis, lacet sont liés aux axes d'un véhicule (avant, haut, directions latérales) (Roll–, Neig– und Gier–winkel) Fig. 13 p.13 Ces définitions peuvent se rapporter à l'observateur Usually, orientation is defined as rotation angles around axes fixed to the moving body: Roll, Pitch, Yaw are used for vehicles, Euler angles for gyroscopes, Rectangular axes tied to the approach direction of the robot hand. Représentation de l’orientation
Wrist with 3 intersecting axes Poignet à 3 axes concurrents 55 44 66 Fig 10 p. 11
Poignet à 3 axes: Angles d’Euler Gruber p. 209 55 44 66 Fig 10b) p. 11 4 5 y x 6 Précession nutation rotation propre z Wrist
Forward Kinematics Exprimer les variables opérationelles { x, y, z, } en fonction des variables robots { q 1, q 2, … q i, …. q n } Express the operationel (task level) variables { x, y, z, } as function of the joint variables { q 1, q 2, … q i, …. q n } Modèle géométrique direct
Challenge: Multiple reference frames Fixes (base du robot, table de travail, etc) En mouvement, donc solidaires au corps (élément du robot, poignet, outil, pièce,...) Fixed frame of reference (e.g. robot base, work table) Frame in motion, tied to a robot element such as wrist, tool, workpiece... A system of coordinates is usually defined for each frame of reference Référentiels (Bases des systèmes de coordonnées)
Cela mène à deux types de transformation: 1.Changement de position d'un objet dans un système de coordonnées donné: Transformation active 2.Changement de système de coordonnées d'un objet fixe: Transformation passive (Gruber p.682) Always distinguish the two types of transformation : 1.Change of position of an object in a single given system of coordinates « Active Transformation » 2.Change of coordinates without motion of object: « Passive Transformation »
2.1.2 Translation & rotation in 2D around origine O x y v 1 2 v t P (before) P (after) C C Translation of point P at position v 1 to position v 2 v 2 = v 1 + t valid for any point of the rigid body C Active transformation
Translation of the frame O 1 to O 2 v 2 = v 1 – t Passive transformation: x y t P O2O2 (before) v1v1 v2v2 (after) O1O1
Translation of frame from O 1 to O 2 v 2 = v 1 – t The passive transformation is the inverse of the active: x y v 1 2 v t P (avant) P (après) C C Translation of object C from position 1 to position 2 v 2 = v 1 + t x y t P O2O2 (before) v1v1 v2v2 (after) O1O1
Translation : Changement de position sans changement d’orientation (tout les points changent de la même façon) Rotation : Changement d’orientation, En 2D il existe un point fixe (centre de rotation) Translation: Change of position without change of orientation Rotation: Change of orientation. In 2D, there exists a fixed point (center of rotation)
Rotation (active) autour de O dans le plan Axe (z) : toujours perpendiculaire au plan x y v 1 v 2 C (avant) C (après) O (2) P P Rotation axis always normal to the plane of motion
In polar coordinates (r, ) this rotation is trivial. In cartesian coordinates, we need some trigonometry: Pour passer directement de [x 1,y 1 ] à [x 2,y 2 ] en cordonnées cartésiennes, sans devoir calculer (r, ) à partir de [x 1,y 1 ], les théorèmes trigonométriques suivants sont nécessaires: cos(a+b) = cos(a)cos(b) – sin(a)sin(b) sin(a+b) = sin(a)cos(b) + cos(a)sin(b)
Application to the sums of angles in (2) gives: La matrice de rotation R contient l'angle. On l'appelle également Matrice des cosinus directeurs This is the matrix of direction cosines for a plane rotation by an angle also simply called “rotation matrix”)
Rotation around O x y v 1 v 2 C (avant) C (après) O P P
Exercices 1a)R( = 0) = ? 1b)R(– ) = ? 1c)R( ) –1 = ? 1d)v 3 = R( )v 2 = R( )R( )v 1 = R(?)v 1 ? 1e)R( )R( ) = R( )R( ) ?
En transformant les vecteurs [1,0] T et [0,1] T, on constate que les colonnes de R forment un repère orthogonal tourné de par rapport au repère cartésien d'origine. (v 1. v 2 = 0, v i. v i = 1). Ces conditions impliquent R T =R –1 (matrice orthogonale). Le déterminant est nécessairement ||R|| = 1 Transformation of the unit vectors shows that the columns of R represent an orthogonal frame rotated w.r.t. the original frame. Such an orthogonal matrix satisfies R T = R –1 Its determinant is 1.
Rotation passive autour de O dans le plan Axe: toujours perpendiculaire au plan (z) O x1x1 y1y1 x2x2 y2y2 P
Transformations passives = inverse des transformations actives Translation du Référentiel O 1 vers O 2, même position! v 2 = v 1 – t Translation du point P de la position v 1 à la position v 2 v 2 = v 1 + t Rotation du point P de la position v 1 à la position v 2 Rotation du référentiel même vecteur!
Nécessité de combiner rotations et translations dans une seule opération Rotation autour de points arbitraires: Rotation around any point? x y O Centre de rotation? Need for unified operation for transl. & rotation
2.1.4 Rotation 2D autour de points arbitraires: x y O Centre de rotation O
1. Translation de C vers O x y O C O
2. Rotation autour de l’origine O x y O O
3. Translation vers C x y O C O
Translation: Addition vectorielle Rotation: Multiplication matricielle Il serait utile d’avoir la même opération mathématique pour tout changement de position, que ce soit translation ou orientation A unified operation would be useful
Nécessité de combiner rotations et translations dans une seule opération Rotation autour de points arbitraires: Rotation around any point? x y O P Centre de rotation? P Need for unified operation for transl. & rotation
Solution:Homogenous coordinates Coordonnées homogènes Les coordonnées homogènes sont largement utilisées en infographie pour la représentation de scènes 3D Elles sont adaptées à la géométrie projective, utilisée dans logiciels graphiques (OpenGL, Direct3D …) August Ferdinand Möbius, Leipzig, 1827 Homogenous coordinates have been introduced by Möbius in the context of projective geometry.
Cette combinaison est obtenue de la façon suivante: 1.On ajoute un "facteur d'échelle" 1 à chaque vecteur 2.On ajoute le vecteur de translation à droite de R 3.On ajoute la ligne [0 0 1] sous R v 2 = v 1 + t v 2 = T v 1 Comment obtenir addition vectorielle dans une multiplication matricielle?
donc Question: Est-ce rot-transl ou transl-rot? Réponse: Trouvez vous-même!
A retenir: Les vecteurs en représentation homogène contiennent un élément de plus que le nombre de dimensions géometriques. Les matrices en représentation homogène contiennent une ligne et une colonne de plus que le nombre de dimensions géometriques. Remember: Vectors in homogenous form have one element more than the number of geometric coordinates: The scale factor (in our case always 1) Homogenous matrices thus have one line and one column more than the number of coordinates. Last line: 0 0 1, last column [ t, 1] ’
Exemple: Enchainement de deux transformations Sans représentation homogène: v 2 = R( ) v 1 + t 1 v 3 = R( ) v 2 + t 2 =R( ) R( ) v 1 + R( ) t 1 + t 2 avec représentation homogène: (ex.2)
Solution ex. 2
Ex 3a: Rotation pure? Translation pure? Identité? 3b) Translation puis rotation 3c) Inverse?? (Faites le contrôle!)
Solutions 3b) Translation puis rotation 3c) Rotation puis translation -t
2.1.4 Rotation 2D autour de points arbitraires: x y O Centre de rotation? P O
1. Translation de P vers l’origine x y O P O
2. Rotation autour de l’origine x y O O
3. Translation vers P d’origine x y O P O (9)
Cette expression met en évidence qu’une rotation autour de P est équivalente à une rotation autour de O suivie d’une translation P–RP A l’inverse, on peut trouver un centre de rotation pour toute combinaison de translation et rotation. This shows that rotation around P is equivalent to rotation around O and a translation p-Rp Conversely a center of rotation can be found for any combination of transl. & rotation
Exercice 4 4a) Le paragraphe précédent est-il entièrement correct? 4b) Trouver le centre de rotation 1.) par un dessin, 2.) à l'aide de la formule précédente 3.) en cherchant un vecteur propre de la matrice homogène. 4c) Trouver la matrice homogène qui décrit une rotation de 60° autour d'O 4d) Trouver la matrice homogène qui décrit une translation de un en direction x, puis une rotation de 60° autour d'O 4e) Trouver la matrice homogène qui décrit une rotation de 60° autour de [1,1] T. 4.f) Un objet avec deux points v 1, w 1 est déplacé de sorte que ces points se retrouvent aux locations v 2, w 2. v 1 = [1,0] T, w 1 = [1,1] T, v 2 = 0.5 [1–√3,1–√3] T, w 2 = 0.5 [2–√3,1] T Trouver la matrice homogène,, p (solution graphique) qui décrit ce déplacement.