sujet - Université de Picardie Jules Verne

Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
TP 2 - Modèle cinématique
Durée: 3h + 1h pour le compte rendu
Le but de ce TP est de développer des fonctions sous MATLAB qui permettent de
calculer le modèle cinématique direct (MCD) et le modèle cinématique inverse (MCI) d'un
manipulateur quelconque. Les fonctions développées utilisent la convention de DenavitHartenberg (DH) pour paramétrer le robot: elles seront appliquées aux différents robots vus
dans le cours.
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 binôme d'étudiants. Du simple code n’est pas un
compte rendu: commentez vos fonctions et motivez vos choix dans votre rapport final.
Exercice 1 : Robot planaire à 3 DDL
On dispose du même robot planaire que celui vu dans le Chapitre 3.2 (voir la Figure 1,
ci-dessous). Ce robot possède trois articulations rotoïdes. C’est un robot à 3 degrés de
liberté (DDL): 2 pour le positionnement, px, py, et 1 pour l’orientation, φ, de l'effecteur.
Figure 1: Robot planaire à 3 DDL (RRR)
A. Modèle cinématique direct
Le modèle cinématique direct d'un manipulateur décrit la vitesse
de l'organe terminal en fonction des vitesses articulaires
. Le jacobien est utilisé
pour faire le lien entre les deux vecteurs de vitesses selon la forme suivante:
Fabio Morbidi ___________________________________________________________ Page 1/3
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
Le calcul du jacobien
peut se faire à partir du modèle géométrique direct du robot, grâce à la formule suivante:
Le but de cette partie est de développer une fonction qui calcule le MCD du robot
montré dans la Figure 1.
Cette fonction, appelée ve = MCD_3R(q, qp, L), prends en entrée le vecteur des
positions articulaires q, le vecteur des vitesses articulaires qp, et le vecteur L = [a1, a2, a3]T
qui contient la longueur de chaque segment du robot, et génère en sortie le vecteur de vitesse
cartésienne ve de l'organe terminal du robot.
1. Pour calculer le produit vectoriel entre deux vecteurs, utiliser la fonction MATLAB
« cross ». Utilisez cette fonction pour vérifier numériquement, à l'aide d'exemples,
les quatre premières propriétés du produit vectoriel de l'Exercice 1 du TD3.
2. Tester la fonction MCD_3R dans chacune des cas suivants (les unités de mesure sont
mètres pour les distances, radians pour les angles et rad/s pour les vitesses
angulaires):
• q = [0, 0, 0]T, qp = [0.1, -0.2, 0.3]T, a1 = a2 = 0.4 m, a3 = 0.1 m
• q = [π/3, -π/4, π/2]T, qp = [0.1, 0.2, -0.1]T, a1 = a2 = 0.4 m, a3 = 0.1 m
• q = [0, π/3, π/6]T, qp = [-0.1, -0.2, 0.1]T, a1 = a2 = a3 = 0.5 m
B. Modèle cinématique inverse
Le modèle cinématique inverse permet de calculer, à partir d'une configuration q donnée, les
vitesses articulaires
qui assurent à l'organe terminal du robot une vitesse
opérationnelle imposée (cf. l'Exercice 4 du TD3).
Pour celles-là, on calcule
, la pseudo-inverse du jacobien, qui permet de déterminer
les vitesses articulaires grâce à la relation :
• Créer une fonction qp = MCI_3R(q, ve, L) qui calcule le MCI du robot en Figure 1.
• Cette fonction prend en entrée le vecteur de positions articulaires q, le vecteur de la
vitesse opérationnelle ve, et le vecteur des paramètres L = [a1, a2, a3]T.
• Utiliser la fonction créée dans la partie A, ainsi que la fonction MATLAB « pinv » qui
permet de calculer la pseudo-inverse d'une matrice.
• Tester la fonction avec deux configurations du robot de votre choix.
Fabio Morbidi ___________________________________________________________ Page 2/3
Université de Picardie Jules Verne
M1 EEAII ViRob
2014-2015
Robotique Industrielle
Exercice 2 : Robot quelconque
Le but de cet exercice est de développer des fonctions MATLAB qui calculent le
jacobien ainsi que le modèle cinématique direct et inverse d’un robot à chaîne ouverte
quelconque. Ces fonctions utilisent la convention de DH pour paramétrer le robot.
A. Calcul du jacobien
Développer une fonction MATLAB qui calcule le jacobien d’un robot quelconque.
La fonction sera appelée: J = Jacob(a, alpha, d, theta)
• Les entrées a, alpha, d, theta sont les vecteurs n × 1 des paramètres de DH du robot.
• La sortie J est le jacobien 6 × n du robot.
Remarque: Bénéficier du programme développé dans l'Exercice 2 du TP1 pour le calcul des
matrices homogènes T du robot.
B. Modèle cinématique direct
Développer une fonction MATLAB qui utilise la fonction « Jacob » pour calculer le modèle
cinématique direct d’un robot quelconque.
La fonction sera appelée: ve = MCD_gen(a, alpha, d, theta, qp)
• Les entrées a, alpha, d, theta sont les vecteurs n × 1 des paramètres de DH du robot.
• L'entrée qb est le vecteur des vitesses articulaires du robot.
• La sortie ve est la vitesse de l'organe terminal du robot.
Tester la fonction avec le manipulateur SCARA à 4 DDL et avec le manipulateur
cylindrique.
C. Modèle cinématique inverse
Développer une fonction MATLAB qui utilise la fonction « Jacob » pour calculer le modèle
cinématique inverse d’un robot quelconque.
La fonction sera appelée par : qp = MCI_gen(a, alpha, d, theta, ve)
D. Application au robot planaire à 3 DDL
Tester les fonctions « MCD_gen » et « MCI_gen » avec le robot planaire à 3 DDL de
l'Exercice 1, et comparer les résultats avec ceux trouvés dans la première partie du sujet.
Fabio Morbidi ___________________________________________________________ Page 3/3