Vous êtes sur la page 1sur 4

Promeo - Université de Picardie Jules Verne 2015-2016

LPro Automatisme et Robotique Initiation à la Robotique

TP 1 - Transformations homogènes et modèle


géométrique d'un robot
Durée: 3h + 1h pour le compte rendu

Le but de ce TP est de développer des fonctions sous Matlab qui permettent de définir
des transformations homogènes et de calculer le modèle géométrique direct (MGD) d’un
manipulateur. Le modèle géométrique inverse (MGI) d’un simple manipulateur à 2 DDL sera
aussi consideré.
Un compte rendu avec les méthodes proposées ainsi que les résultats intermédiaires est
à rendre à la fin de la séance par chaque étudiant. Il est à noter que du simple code n’est pas
un compte rendu: commentez vos fonctions et motivez vos choix dans votre rapport final.

Attention: Sélectionner la version à 64 bits au démarrage de Windows.

Une brève introduction à Matlab


Le logiciel Matlab est un logiciel de manipulation de données numériques et de
programmation dont le champ d’application est essentiellement les sciences appliquées. Son
objectif, par rapport aux autres langages, est de simplifier au maximum la transcription en
langage informatique d’un problème mathématique, en utilisant une écriture la plus proche
possible du langage naturel scientifique.

Matlab est un logiciel interprété (donc sans phase préliminaire de compilation) qui exécute les
opérations demandées séquentiellement, avec possibilité de boucle, test et saut. Il ne manipule
que des données numériques et ne sait effectuer aucun calcul formel à priori.

L'écran de base comprend l'écran de contrôle, le Command Window, ainsi que des fenêtres
complémentaires permettant de suivre le fonctionnement général d'une application. Les
instructions frappées (ou collées) dans la Command Windows s'exécutent directement.

Les commandes peuvent être relancées dans la fenêtre Matlab simplement en remontant la
liste par ↑ et en validant la ligne par Return.

L'exécution d'une ligne provoque automatiquement l'affichage des résultats sous forme d'une
liste de données numériques. Cette fonctionnalité peut être bloquée en mettant un ";" à la fin
de chaque ligne de programme (préférable lorsque le calcul concerne une matrice de grande
dimension).

Tout programme enregistré sous l'extension ".m" peut être lancé depuis la Commande
Windows de Matlab, en frappant son nom (sous réserve que le chemin d'accès au fichier soit
déclaré sous Matlab, voir la commande Set Path du menu Fichiers.

La commande "help" ou "help nom-de-fonction" permet d'obtenir une aide sur le logiciel en
général, un Toolbox (ou boîte à outils) ou une fonction particulière. Toute variable utilisée est
rangée dans l'espace mémoire appelé workspace et y reste à moins d'effacer le workspace par
la commande "clear all". Le contenu du workspace peut être affiché par l'instruction "who"
(nom seul des variables) ou "whos" (noms avec description du type).

Fabio Morbidi Page 1/4


Promeo - Université de Picardie Jules Verne 2015-2016
LPro Automatisme et Robotique Initiation à la Robotique

La valeur d'une variable s'affiche en frappant simplement son nom (sans le ";" en fin de
ligne). Son dimensionnement s'obtient par "size(nom-de-variable)".

Pour transformer un ensemble d'instruction écrites dans la Commande Windows en fonction:


1. Ajouter l'entête suivant au texte :

function [par_retour1, par_retour2,...] = ma_fonction (par_entree1, par_entree2,...)

Instruction 1 % Commentaire à l'instruction 1


Instruction 2
...
2. Sauvegarder le texte avec comme nom de fichier le nom ma_fonction.m (l'extension
".m" est obligatoire pour être reconnue comme fonction) dans un répertoire accessible
à Matlab. Une fois sauvegardée, la fonction est utilisable dans tout programme,
comme toute autre fonction du noyau Matlab.

Exercice 1 : Rotations et transformations homogènes [7 pts]


1) Définir sous Matlab les matrices de rotation élémentaires 3 × 3 suivantes:
Rx(π/6), Ry(π/4), Rz(π/2).
• Vérifier que Rx(-π/6) = RTx(π/6) et Rz(-π/2) = RTz(π/2) où RT indique la
transposée de la matrice R.
• Vérifier que les colonnes des trois matrices Rx(π/6), Ry(π/4), Rz(π/2) ont
norme équale à 1 (tapez "help norm" sous Matlab) et que elles sont
orthoganales à deux à deux (pour le produit scalaire, tapez "help dot"
sous Matlab).
2) Écrire trois fonctions Matlab, appelées Rx = Rot_x(γ), Ry = Rot_y(β) et Rz =
Rot_z(θ), qui prennent en entrée les angles γ, β et θ, respectivement
(en radians), et renvoient les matrices de rotation élémentaires Rx, Ry et Rz
autour des axes x, y et z, respectivement.

3) Écrire une fonction Matlab, appelée A = TransHom(R, t), qui prend en entrée
la matrice de rotation 3 × 3, R, et le vecteur de translation 3 × 1, t, et renvoie la
matrice de transformation homogène 4 × 4, A.

4) Utiliser les fonctions développées aux points b) et c) pour déterminer la matrice


de transformation homogène Ah correspondant à une rotation autour de l’axe y
d’un angle β= π/3, suivie d'une translation le long de l’axe x et le long de l’axe z
d’une longueur dx = 2 m et dz = 1 m, respectivement.

 = [0, 0, 1, 1]T un vecteur écrit en coordonnées homogènes. Déterminer le


5) Soit p
  transformé à travers la matrice Ah trouvée au point 4).
vecteur p

Fabio Morbidi Page 2/4


Promeo - Université de Picardie Jules Verne 2015-2016
LPro Automatisme et Robotique Initiation à la Robotique

Exercice 2 : Modèle géométrique direct d'un robot planaire à 2 DDL [5 pts]

a) Développer une fonction Matlab, appelée P = MGD_2R(q), qui:


• Calcule le MGD d’un robot planaire à deux articulations rotoïdes (RR), et
dont les longueurs des segments sont a1 = 0.6 m, a2 = 0.4 m (voir la Fig. 1).
• La fonction fournit les coordonnées [px, py]T du point terminal P en
fonction des variables articulaires θ1 et θ2.

b) Tester cette fonction pour les valeurs des variables articulaires θ1 et θ2 suivantes:
[0, π/2]T, [0, 0]T, [-π/2, π/2]T, [π/2, 0]T.

Figure 1 : Robot planaire à 2 DDL (RR).

Exercice 3 :Modèle géométrique direct d’un robot quelconque [5 pts]


1) Écrire une fonction Matlab, appelée T = MGD_gen(a, alpha, d, theta), qui:

a. Calcule le MGD d’un robot (à chaîne simple ouverte) quelconque.

b. Les entrées a, alpha, d, theta, sont les vecteurs n × 1 des paramètres de Denavit-
Hartenberg (DH) du robot (les unités de mesure sont mètres et radians).
0
c. La sortie T est la matrice de transformation homogène Tn (q) qui donne la pose
de l’effecteur par rapport à sa base.

2) Tester la fonction « MGD_gen » sur:

Fabio Morbidi Page 3/4


Promeo - Université de Picardie Jules Verne 2015-2016
LPro Automatisme et Robotique Initiation à la Robotique
a. Le manipulateur anthropomorphe (a2 = a3 = 0.6 m) pour les valeurs des
variables articulaires suivantes: [0, 0, 0]T et [-π/4, π/6, π/6]T.
b. Le manipulateur cylindrique (d1 = 0.4 m) pour les valeurs des variables
articulaires suivantes: [0, 0.25, 0.25]T et [π/3, 0, 0.4]T.

3) Ajouter les entrées qinf, qsup à la fonction « MGD_gen ». qinf, qsup sont les
vecteurs n × 1 des butées articulaires du robot. Si les paramètres fournis par
l'utilisateur ne respectent pas les butées articulaires du robot, un message d'erreur
doit être affiché.

Exercice 4 :Modèle géométrique inverse d'un robot planaire à 2 DDL [3 pts]


Problème géométrique inverse: déterminer le vecteur des variables articulaires q d'un
robot permettant d'obtenir une situation désirée pour l’effecteur.

Le modèle géométrique direct du robot planaire en Fig. 2 est:

px = d2 cos θ1
py = d2 sin θ1
Une démarche analytique simple permet de déterminer le modèle géométrique inverse du
robot. En effet, nous avons :


d2 = p2x + p2y
Écrire une fonction Matlab, appelée [theta1, d2] = MGI_RP(px, py), qui prend en entrée
les coordonnées du point P (voir la Fig. 2) et renvoie les variables articulaires du robot.

Remarque: Pour plus de robustesse dans le calcul de θ1, la fonction arc tangente à
2 arguments (tapez "help atan2" sous Matlab) est à préférer.

Figure 2 : Robot planaire à 2 DDL (RP).

Fabio Morbidi Page 4/4

Vous aimerez peut-être aussi