Manipulation n˚1 : GENERATION DE MOUVEMENT ET SYSTEME

Transcription

Manipulation n˚1 : GENERATION DE MOUVEMENT ET SYSTEME
Manipulation n˚1 :
GENERATION DE MOUVEMENT
ET SYSTEME DE COMMANDE
1
Introduction
Le but de ce TP est d’étudier quelques modes de génération de mouvement à effectuer par un
robot. L’exemple considéré est celui du robot plan RPR représenté ci-dessous. La situation
X de l’effecteur est décrite par ses coordonnées cartésiennes (x, y) ainsi par l’angle α du
dernier segment avec l’horizontale, à savoir X = (x, y, α)T . Les coordonnées articulaires
sont données par Q = (θ1 , r2 , θ3 )T .
y0
E
α
re
θ3
r2
θ1
x0
Figure 1: Représentation filaire du robot.
L’objet de cette manipulation est la génération des consignes Q(t) à envoyer aux asservissements des actionneurs afin de réaliser un déplacement de l’effecteur entre une position initiale
et une position finale, positions décrites dans l’espace opérationnel respectivement par Xi et
Xf . Deux options sont proposées:
Les fonctions Q(t) sont générées par interpolation sur la seule base des configurations
initiale et finale du robot (trajectoire libre dans l’espace opérationnel),
Les fonctions Q(t) sont déduites d’une trajectoire établie dans l’espace opérationnel,
et ce en procédant à une inversion numérique du Jacobien.
Programmation et Simulation graphique
La programmation est réalisée sous MATLAB/Simulink. Les données pour la simulation
sont fixées comme suit:
Position initiale et finale: Xi = [1.5, −0.4, 0], Xf = [1, 0.4, 0],
Durée de la simulation et pas de calcul: T = 5s, te = 0.1s,
Donnée géométrique: re = 0.35
Une fonction nommée Trace(Qt,Xf) permet de réaliser une animation graphique du programme réalisé. L’argument Qt est une matrice de taille 3xNT (NT=nombre de points de
calculs), et Xf un vecteur de taille 1x3 donnant les coordonnées de Xf.
TP Génération de mouvement et système de commande
2
3
Etude préalable
1. Donner l’expression du modèle géométrique direct X = f (Q).
2. Donner l’expression du modèle géométrique inverse Q = f −1 (X)
3. Donner l’expression du jacobien J du robot
3
Programmation des modèles
Dans cette première phase, des fonctions Matlab décrivant les différents modèles précédents
sont crées. Nous y ferons appel lors des générations de trajectoire souhaitées.
1. Ecrire une fonction Matlab X=MGD(Q) dont le rôle est de calculer le modèle géométrique
direct du robot.
2. Ecrire une fonction Matlab Q=MGI(X) dont le rôle est de calculer le modèle géométrique
inverse du robot. On utilisera les commandes sqrt et atan2 pour calculer les racines
et arc tangentes.
3. A l’aide de l’expression du Jacobien, écrire une fonction Matlab dQ=InvJacob(u) dont
le rôle est de calculer les accroissements dQ en fonction de dX et de Q. le vecteur u
de dimension 6 de cette fonction aura respectivement dX et Q pour trois premières et
trois dernières composantes (c’est à dire dX=u(1:3); et Q=u(4:6);).
4
4.1
Génération de mouvements
Interpolation
D’une manière générale, pour définir une trajectoire en fonction du temps t ∈ (0, T ), disons
Z(t) (qui pourra être selon le cas X(t) ou Q(t)), entre une position initiale Zi et une position finale Zf , une loi possible consiste à utiliser une interpolation polynomiale de degré 3.
L’équation définissant Z(t) s’écrit alors:
Z(t) = Zi + d(t) (Zf − Zi )
avec
d(t) = 3 (t/T )2 − 2 (t/T )3 .
˙
˙ ) = 0, permet d’assurer un
La fonction d(t) ainsi choisie, avec d(0) = d(0)
= d(T ) = d(T
déplacement avec des vitesses nulles au départ et à l’arrivée.
4.2
Trajectoire libre dans l’espace opérationnel
Dans cette approche, la connaissance des positions initiale Xi et finale Xf , suffit à générer
une lois Q(t) qui servira de consigne aux actionneurs du robot. Elle a pour avantage de pouvoir exploiter les capacités des actionneurs en terme de vitesses et accélérations admissibles.
La trajectoire dans l’espace de travail (opérationnel) n’est par contre pas maı̂trisée.
1. Ecrire un programme Matlab basé sur la fonction MGI et permettant de calculer la
trajectoire Q(t) selon la règle établie au paragraphe 4.1. Utiliser la fonction Trace
pour visualiser le déplacement du robot.
4.3
Trajectoire imposée dans l’espace opérationnel
Lorsque la maı̂trise du déplacement du robot entre ses point de départ et arrivée s’avère
nécessaire, par exemple pour éviter un obstacle ou mieux connaı̂tre la position de l’effecteur
4
TP Génération de mouvement et système de commande
durant tout son déplacement, une génération de trajectoire dans l’espace opérationnel (c’est
à dire l’élaboration d’une loi X(t)) s’avère nécessaire. L’objet de ce paragraphe est, connaissant la loi X(t), de générer la consigne des actionneurs (Q(t)) par inversion en ligne du
Jacobien précédemment calculé.
1. Sous Simulink, réaliser le schéma de simulation de la figure 1 ci dessous et utilisant les
fonctions MGD et InvJacob precedemment crées.
2. Ecrire un programme Matlab permettant d’exécuter le schéma Simulink précédent
après avoir défini la trajectoire dans l’espace opérationnel X(t) selon le paragraphe
4.1. On utilisera la fonction sim pour exécuter depuis Matlab le programme Similink
ci-dessus. On veillera à initialiser l’intégrateur du schéma à la valeur Qi. Utiliser la
fonction Trace pour visualiser le déplacement.
[t',Xt]
MATLAB
Function
From
Workspace
Inv Jacobien
10
1
s
Qt
To Workspace
MATLAB
Function
MGD
Exemples de programmes à compléter
function dQ = InvJacob(u)
function X = MGD(Q)
% Calcul du modèle géométrique direct % Inversion du modèle cinématique
global re
global re
dX=u(1:3); Q=u(4:6);
Theta1 = Q(1); R2 = Q(2); Theta3 = Q(3);
theta1=Q(1); r2=Q(2); theta3=Q(3);
xe = R2*cos(Theta1)+....;
J=[-r2*sin(theta1) -...
....;
ye = ... ;
....
.....
....;
alpha =....;
....
....
....];
X = [xe ye alpha]’;
dQ=J\dX;
%Génération de trajectoire Q(t) libre
clear;
global re NT
T=5; te=0.1; t=0:te:T;
NT=length(t);re=.35;
%%Configurations initilale et finale
X_i=[1.5 -0.4 0]; Q_i=mgi(X_i);
X_f=....; Q_f=...;
%% Calcul de Q(t) (à faire)
.....
%%Animation du déplacement du robot
Trace(Qt,X_f)