• Aucun résultat trouvé

TP 1 - Transformations homogènes et modèle géométrique d'un robot

N/A
N/A
Protected

Academic year: 2022

Partager "TP 1 - Transformations homogènes et modèle géométrique d'un robot"

Copied!
4
0
0

Texte intégral

(1)

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

Fabio Morbidi Page 1/4

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).

(2)

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

Fabio Morbidi Page 2/4

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.

5) Soit un vecteur écrit en coordonnées homogènes. Déterminer le vecteur transformé à travers la matrice Ah trouvée au point 4).

p= [0, 0, 1,1]T p

(3)

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

Fabio Morbidi Page 3/4

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.

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).

c. La sortie T est la matrice de transformation homogène Tn0(q) qui donne la pose de l’effecteur par rapport à sa base.

2) Tester la fonction « MGD_gen » sur:

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

(4)

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

Fabio Morbidi Page 4/4

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 robotplanaire en Fig. 2 est:

Une démarche analytique simple permet de déterminer le modèle géométrique inverse du robot. En effet, nous avons :

É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).

px = d2 cosθ1

py = d2 sinθ1

d2 =

p2x +p2y

Références

Documents relatifs

Après une estimation de la focale d’une lentille inconnue par des mesures de grandissement, on utilisera celle-ci pour élargir la section d’un faisceau LASER tout en le

C’est le réseau labile de liaisons chimiques qui définit, selon nous, la métrique de matière ; rupture (microcraking) et reconstruction du réseau sont, au niveau

Vecten, professeur de mathématiques spéciales au lycée de Nismes, Rochat, professeur de navigation à St.-Brieux, et Ajasson, élève du lycée d’Angers, en ont.

doivent conséquemment comprendre des arcs égaux entre leurs côtés puis donc que ces arcs ont une extrémité commune b et vont dans le même sens, ils doivent se

Les tolérances dimensionnelles usuelles (ajustements…) ne suffisent pas toujours pour définir rigoureusement la forme géométrique d’un objet.. Malgré la cotation tolérancée

Afin de dénombrer les différentes architectures possibles d'un robot manipulateur, on peut se limiter à deux paramètres: 1) le type d'articulation (rotoïde, R, ou prismatique, P),

Afin de dénombrer les différentes architectures possibles d'un robot manipulateur, on peut se limiter à deux paramètres: 1) le type d'articulation (rotoïde, R, ou prismatique, P),

Première S2 Exercices sur le chapitre 17 : E3... Première S2 Exercices sur le chapitre 17