1 Introduction - Laboratoire d’Automatique, Génie …bonnet/image/TP_Robotique... ·  ·...

3
Manipulation n˚1 : GENERATION DE MOUVEMENT ET SYSTEME DE COMMANDE 1 Introduction Le but de ce TP est d’´ etudier quelques modes de g´ en´ erationde mouvement`a effectuer par un robot. L’exemple consid´ er´ e est celui du robot plan RPR repr´ esent´ e ci-dessous. La situation X de l’effecteur est d´ ecrite par ses coordonn´ ees cart´ esiennes (x, y) ainsi par l’angle α du dernier segment avec l’horizontale, ` a savoir X =(x, y, α) T . Les coordonn´ ees articulaires sont donn´ ees par Q =(θ 1 ,r 2 3 ) T . E x 0 y 0 θ 1 θ 3 α r 2 r e Figure 1: Repr´ esentation filaire du robot. L’objet de cette manipulation est la g´ en´ eration des consignes Q(t)` a envoyer aux asservisse- ments des actionneurs afin de r´ ealiser un d´ eplacement de l’effecteur entre une position initiale et une position finale, positions d´ ecrites dans l’espace op´ erationnel respectivement par X i et X f . Deux options sont propos´ ees: Les fonctions Q(t) sont g´ en´ er´ ees par interpolation sur la seule base des configurations initiale et finale du robot (trajectoire libre dans l’espace op´ erationnel), Les fonctions Q(t) sont d´ eduites d’une trajectoire ´ etablie dans l’espace op´ erationnel, et ce en proc´ edant ` a une inversion num´ erique du Jacobien. Programmation et Simulation graphique La programmation est r´ ealis´ ee sous MATLAB/Simulink. Les donn´ ees pour la simulation sont fix´ ees comme suit: Position initiale et finale: X i = [1.5, -0.4, 0], X f = [1, 0.4, 0], Dur´ ee de la simulation et pas de calcul: T =5s, t e =0.1s, Donn´ ee g´ eom´ etrique: r e =0.35 Une fonction nomm´ ee Trace(Qt,Xf) permet de r´ ealiser une animation graphique du pro- gramme r´ ealis´ e. 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´ ees de Xf.

Transcript of 1 Introduction - Laboratoire d’Automatique, Génie …bonnet/image/TP_Robotique... ·  ·...

Page 1: 1 Introduction - Laboratoire d’Automatique, Génie …bonnet/image/TP_Robotique... ·  · 2010-03-07robot. L’exemple consid ... La programmation est r´ealis´ee sous MATLAB/Simulink.

Manipulation n 1 :

GENERATION DE MOUVEMENT

ET SYSTEME DE COMMANDE

1 Introduction

Le but de ce TP est d’etudier quelques modes de generation de mouvement a effectuer par unrobot. L’exemple considere est celui du robot plan RPR represente ci-dessous. La situationX de l’effecteur est decrite par ses coordonnees cartesiennes (x, y) ainsi par l’angle α dudernier segment avec l’horizontale, a savoir X = (x, y, α)T . Les coordonnees articulairessont donnees par Q = (θ1, r2, θ3)

T .

E

x0

y0

θ1

θ3

α

r2

re

Figure 1: Representation filaire du robot.

L’objet de cette manipulation est la generation des consignes Q(t) a envoyer aux asservisse-ments des actionneurs afin de realiser un deplacement de l’effecteur entre une position initialeet une position finale, positions decrites dans l’espace operationnel respectivement par Xi etXf . Deux options sont proposees:

Les fonctions Q(t) sont generees par interpolation sur la seule base des configurationsinitiale et finale du robot (trajectoire libre dans l’espace operationnel),

Les fonctions Q(t) sont deduites d’une trajectoire etablie dans l’espace operationnel,et ce en procedant a une inversion numerique du Jacobien.

Programmation et Simulation graphique

La programmation est realisee sous MATLAB/Simulink. Les donnees pour la simulationsont fixees comme suit:

Position initiale et finale: Xi = [1.5,−0.4, 0], Xf = [1, 0.4, 0],

Duree de la simulation et pas de calcul: T = 5s, te = 0.1s,

Donnee geometrique: re = 0.35

Une fonction nommee Trace(Qt,Xf) permet de realiser une animation graphique du pro-gramme realise. L’argument Qt est une matrice de taille 3xNT (NT=nombre de points decalculs), et Xf un vecteur de taille 1x3 donnant les coordonnees de Xf.

Page 2: 1 Introduction - Laboratoire d’Automatique, Génie …bonnet/image/TP_Robotique... ·  · 2010-03-07robot. L’exemple consid ... La programmation est r´ealis´ee sous MATLAB/Simulink.

TP Generation de mouvement et systeme de commande 3

2 Etude prealable

1. Donner l’expression du modele geometrique direct X = f(Q).

2. Donner l’expression du modele geometrique inverse Q = f−1(X)

3. Donner l’expression du jacobien J du robot

3 Programmation des modeles

Dans cette premiere phase, des fonctions Matlab decrivant les differents modeles precedentssont crees. Nous y ferons appel lors des generations de trajectoire souhaitees.

1. Ecrire une fonction Matlab X=MGD(Q) dont le role est de calculer le modele geometriquedirect du robot.

2. Ecrire une fonction Matlab Q=MGI(X) dont le role est de calculer le modele geometriqueinverse du robot. On utilisera les commandes sqrt et atan2 pour calculer les racineset arc tangentes.

3. A l’aide de l’expression du Jacobien, ecrire une fonction Matlab dQ=InvJacob(u) dontle role est de calculer les accroissements dQ en fonction de dX et de Q. le vecteur ude dimension 6 de cette fonction aura respectivement dX et Q pour trois premieres ettrois dernieres composantes (c’est a dire dX=u(1:3); et Q=u(4:6);).

4 Generation de mouvements

4.1 Interpolation

D’une maniere generale, pour definir une trajectoire en fonction du temps t ∈ (0, T ), disonsZ(t) (qui pourra etre selon le cas X(t) ou Q(t)), entre une position initiale Zi et une posi-tion finale Zf , une loi possible consiste a utiliser une interpolation polynomiale de degre 3.L’equation definissant Z(t) s’ecrit alors:

Z(t) = Zi + d(t) (Zf − Zi) avec d(t) = 3 (t/T )2 − 2 (t/T )3.

La fonction d(t) ainsi choisie, avec d(0) = d(0) = d(T ) = d(T ) = 0, permet d’assurer undeplacement avec des vitesses nulles au depart et a l’arrivee.

4.2 Trajectoire libre dans l’espace operationnel

Dans cette approche, la connaissance des positions initiale Xi et finale Xf , suffit a genererune lois Q(t) qui servira de consigne aux actionneurs du robot. Elle a pour avantage de pou-voir exploiter les capacites des actionneurs en terme de vitesses et accelerations admissibles.La trajectoire dans l’espace de travail (operationnel) n’est par contre pas maıtrisee.

1. Ecrire un programme Matlab base sur la fonction MGI et permettant de calculer latrajectoire Q(t) selon la regle etablie au paragraphe 4.1. Utiliser la fonction Trace

pour visualiser le deplacement du robot.

4.3 Trajectoire imposee dans l’espace operationnel

Lorsque la maıtrise du deplacement du robot entre ses point de depart et arrivee s’averenecessaire, par exemple pour eviter un obstacle ou mieux connaıtre la position de l’effecteur

Page 3: 1 Introduction - Laboratoire d’Automatique, Génie …bonnet/image/TP_Robotique... ·  · 2010-03-07robot. L’exemple consid ... La programmation est r´ealis´ee sous MATLAB/Simulink.

TP Generation de mouvement et systeme de commande 4

durant tout son deplacement, une generation de trajectoire dans l’espace operationnel (c’esta dire l’elaboration d’une loi X(t)) s’avere necessaire. L’objet de ce paragraphe est, con-naissant la loi X(t), de generer la consigne des actionneurs (Q(t)) par inversion en ligne duJacobien precedemment calcule.

1. Sous Simulink, realiser le schema de simulation de la figure 1 ci dessous et utilisant lesfonctions MGD et InvJacob precedemment crees.

2. Ecrire un programme Matlab permettant d’executer le schema Simulink precedentapres avoir defini la trajectoire dans l’espace operationnel X(t) selon le paragraphe4.1. On utilisera la fonction sim pour executer depuis Matlab le programme Similinkci-dessus. On veillera a initialiser l’integrateur du schema a la valeur Qi. Utiliser lafonction Trace pour visualiser le deplacement.

Qt

To Workspace

MATLAB

Function

MGD

MATLAB

Function

Inv Jacobien

1

s10

[t',Xt]

From

Workspace

Exemples de programmes a completer

function X = MGD(Q)

% Calcul du modele geometrique direct

global re

Theta1 = Q(1); R2 = Q(2); Theta3 = Q(3);

xe = R2*cos(Theta1)+....;

ye = ... ;

alpha =....;

X = [xe ye alpha]’;

function dQ = InvJacob(u)

% Inversion du modele cinematique

global re

dX=u(1:3); Q=u(4:6);

theta1=Q(1); r2=Q(2); theta3=Q(3);

J=[-r2*sin(theta1) -... ....;

.... ..... ....;

.... .... ....];

dQ=J\dX;

%Generation 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) (a faire)

.....

%%Animation du deplacement du robot

Trace(Qt,X_f)