18
Commande des Systèmes Robotiques - NSR13 Modélisation Support de cours réalisé en collaboration avec Wael Bachta Vincent Padois [email protected] Université Pierre et Marie Curie Institut des Systèmes Intelligents et de Robotique (CNRS UMR 7222) Fonctionnement et contrôle des connaissances Bon à savoir Transparents de cours disponibles sur le site web de l’UE : http://chronos.isir.upmc.fr/~padois/teaching/comrob ; Les cours et les TPs sont obligatoires. Les cours commencent à 8h30 et se terminent à 12h45. Tout(e) étudiant(e) arrivant en retard pourra se voir refuser l’accès à la salle de cours ou à la salle de TP. Deux heuristiques de détermination de ce qu’est un retard acceptable : "On n’a pas le droit d’être plus en retard que le prof." et "Un retard n’est jamais acceptable.". Contrôle des connaissances Evaluation sur 100 points dont 60 points pour l’examen et 40 points pour le CC Contrôle continu : Evaluation (en TP ou sur la base d’un compte-rendu) des TPs Eventuels exercices à rendre et/ou interrogations surprises Examen de 4h00 sans documents avec (potentiellement) une partie sous Matlab (en janvier). Contenu de l’UE Cours Introduction de la problématique de la commande en Robotique (C1) Modélisation et identification des systèmes Robotiques en vue de leur commande (C2) Techniques de commande articulaire "classiques" en Robotique (C3) Techniques de commande opérationnelle (C4) TPs Identification paramétrique du modèle dynamique d’un système Robotique (sous Matlab, à partir de données expérimentales) (TP1) Contrôle décentralisé et réglage des correcteurs PID (avec un robot à deux DdL) (TP2) Contrôle avec découplage dynamique (avec un robot à deux DdL) (TP3) Emploi du temps

Fonctionnement et contrôle des connaissances Bon à savoir ...chronos.isir.upmc.fr/~padois/teaching/comrob/fichiers/cours3_comrob-handout4wide.pdf · Formalisme de Newton-Euler :

Embed Size (px)

Citation preview

Commande des Systèmes Robotiques - NSR13Modélisation

Support de cours réalisé en collaboration avec Wael Bachta

Vincent Padois

[email protected]

Université Pierre et Marie CurieInstitut des Systèmes Intelligents et de Robotique (CNRS UMR 7222)

Fonctionnement et contrôle des connaissances

Bon à savoirI Transparents de cours disponibles sur le site web de l’UE :

http://chronos.isir.upmc.fr/~padois/teaching/comrob ;I Les cours et les TPs sont obligatoires.I Les cours commencent à 8h30 et se terminent à 12h45. Tout(e)

étudiant(e) arrivant en retard pourra se voir refuser l’accès à la salle decours ou à la salle de TP. Deux heuristiques de détermination de ce qu’estun retard acceptable : "On n’a pas le droit d’être plus en retard que leprof." et "Un retard n’est jamais acceptable.".

Contrôle des connaissancesI Evaluation sur 100 points dont 60 points pour l’examen et 40 points pour

le CCI Contrôle continu :

I Evaluation (en TP ou sur la base d’un compte-rendu) des TPsI Eventuels exercices à rendre et/ou interrogations surprises

I Examen de 4h00 sans documents avec (potentiellement) une partie sousMatlab (en janvier).

Contenu de l’UE

CoursI Introduction de la problématique de la commande en Robotique (C1)I Modélisation et identification des systèmes Robotiques en vue de leur

commande (C2)I Techniques de commande articulaire "classiques" en Robotique (C3)I Techniques de commande opérationnelle (C4)

TPsI Identification paramétrique du modèle dynamique d’un système Robotique

(sous Matlab, à partir de données expérimentales) (TP1)I Contrôle décentralisé et réglage des correcteurs PID (avec un robot à deux

DdL) (TP2)I Contrôle avec découplage dynamique (avec un robot à deux DdL) (TP3)

Emploi du temps

Génération de consignes dans les grandes lignes

Fonction du générateur de consignesI La pluplart des lois de commande sont conçues pour des petites erreurs

(vrai aussi bien au niveau oéprationnel qu’au niveau articulaire).I Un générateur de consigne permet d’interpoler entre la position de départ

et la position d’arrivée, avec éventuellement des points de passage.I Les position interpolées sont ensuite envoyées en temps réel au contrôleur.

Forme générale :q(t) = q(t0) + r(t) (q(tf )− q(t0)) (1)

r(t0) = 0 et r(tf ) = 1 (2)q(t) = r(t) (q(tf )− q(t0)) (3)

RemarqueEn fonction de la loi de commande retenue, la fonction d’interpolation r(t) doitrespecter des conditions de dérivabilité à d’ordres plus ou moins élevés.

Interpolation polynomiale

PrincipeI La fonction d’interpolation est choisie comme un polynome.I L’ordre du polynome est fixé par le nombre de conditions initiales / finales

à respecter.I Le calcul des coefficients du polynome se fait par simple résolution d’un

système d’équations linéaires.I Afin d’obtenir des mouvements synchronisés des n axes du robot, le calcul

des conditions initiales et finales doit tenir compte des capacités du robot :vitesse maximale et accélération maximale de chaque axe.

Interpolation polynomiale Loi en trapèze : trajectoires à temps minimum

PrincipeI Afin d’obtenir des trajectoires à temps minimum, on utilise les axes au

maximum de leurs possibilités :I On accélère au max jusqu’à atteindre la vitesse maximale.I On se déplace à vitesse maximale.I On décélère au max.

I Une telle stratégie induit un profil d’accélération discontinu.I En général on lisse le profil d’accélération : pour épargner la mécanique,

pour des raisons de confort (commande “minimum jerk”).I Afin d’obtenir des mouvements synchronisés et homothétiques des n axes

du robot, le calcul des conditions initiales et finales doit tenir compte descapacités du robot : vitesse maximale et accélération maximale de chaqueaxe.

Loi en trapèze Loi en trapèze

Exercice à rendre : Par email ([email protected]) un document PDFprésentant le calcul formel des différents paramètres d’une loi d’interpolation entrapèze dans le cas général d’un robot à n degrés de liberté rotoïdes.

Principe général

I On cherche à asservir le système en position dans l’espace articulaire enune configuration désirée qd .

I Le correcteur est diagonal, c’est-à-dire que le couple envoyé sur le moteur ine dépend que de l’erreur sur l’axe i.

I Tous les effets de couplage sont considérés comme des perturbations quele correcteur doit rejeter.

I Lorsque l’on souhaite atteindre une configuration désirée qd , on effectuetoujours une interpolation de trajectoire (les consignes en échelon ne sontutilisées que pour le réglage du contrôleur, éventuellement).

Correcteur PIDForme générale

Γ = Kp(qd (t)− q(t)

)+ Kd

d(qd (t)− q(t)

)

dt + Ki

∫ t

0

(qd (τ)− q(τ)

)dτ (4)

Analogie mécaniqueI Kp représente un ressort / Kd représente un amortisseurI Ki est utilisé pour rejeter les perturbations statiques (frottement secs)

ImplémentationI Une boucle cadencée en temps réel est appelée toutes les T secondes.I On connaît qd,k et qk ce qui permet de calculer ek = (qd,k − qk )

I Terme proportionnel : Γp = Kpek

I Terme dérivé : Γd = Kdek−ek−1

T , ek−1 aura donc été mémoriséI Terme intégral : integk = integk−1 + Tek ; Γi = Ki integk ; integk−1 aura

donc été mémoriséI En général, le terme intégral est saturé.

Réglage d’un PID pour un axe

I Modèle linéarisé d’un axe : Γ = aq + bqI Réglage : calculer les gains pour que le comportement en boucle fermé ait

un pôle triple en s = ω0

1. Calculer la fonction de transfert en boucle fermée2. Identifier le numérateur avec (s − ω0)3

I Choix de ω0 : en principe, le plus grand possible, mais il ne faut pasoublier qu’on travaille sur un modèle rigide, donc ne doit pas atteindre lavaleur du premier mode flexible négligé. Typiquement, choisir la moitié dupremier mode flexible.

Correcteur PID : Réglage pratique

I On commence par les axes les plus près de l’effecteur.I Augmenter progressivement Kp jusqu’à obtenir deux oscillations pour une

réponse à un échelonI Augmenter Kd pour amortir les oscillations. Du fait du calcul approché du

terme dérivé (non causalité) et des bruits de quantification, une vibrationHF peut se faire entendre avant d’avoir obtenu l’amortissement voulu.Dans ce cas, diminuer Kp

I Régler enfin Ki pour annuler suffisamment rapidement l’erreur résiduelle.I En général, on doit itérer deux ou trois fois.I Chaque fois qu’un axe est réglé, l’essayer dans la configuration la plus

inertielle et la moins inertielle, à vitesse lente et à vitesse rapide.

Réglage pour un robot plan à 2DDL Augmentation de Kp sur l’axe 2

Augmentation de Kd sur l’axe 2 Augmentation de Ki sur l’axe 2 (horizontal)

Réglage de Ki sur des mouvements lents Performances finales pour l’axe 2

Réglage de Kp pour l’axe 1 Performances finales pour l’axe 1

Principe

Principe généralI Exploiter une connaissance du modèle dynamique pour augmenter les

performances de suivi (limiter les effets du couplage).I Les commandes envoyées sur un axe i ne dépendent plus seulement du

mouvement à réaliser sur cet axe, mais aussi du mouvement des autresaxes.

Deux approchesI Anticipation on utilise le modèle dynamique inverse pour calculer les

commandes à envoyer au robot correspondant à la trajectoire désirée. Uncorrecteur PD ou PID décentralisé est conservé pour annuler les erreursrésiduelles liées aux erreurs de modélisation

I Découplage on utilise le modèle dynamique pour transformer le système àcommander de façon à ce que, vu du correcteur, il soit découplé

Commande dynamique par anticipation (1)

Si un modèle dynamique du robot est connu, on peut calculer la commande i∗mqui correspond à la trajectoire désirée qd , qd , qd

i∗m = K−1c W−T(H(qd )qd + C(qd , qd )qd + g(qd ) + Γft(qd )

)(5)

Commande dynamique par anticipation (2)

I Le terme d’anticipation ne modifie pas la stabilité du système. On peutdonc conserver un correcteur PID réglé comme précédemment pour lacommande décentralisée. D’où la simplicité de mise en œuvre.

I Cette technique s’adapte bienI Si le modèle était parfaitement connu, le correcteur serait inutile. En

pratique, donc, le correcteur sert uniquement à compenser les erreurs demodèle. Il travaille aux petites erreurs, ce qui est notoirement plus robuste.

I Il est indispensable de travailler avec des trajectoires interpolées deux foiscontinûment dérivables.

Commande dynamique par découplage

Si un modèle dynamique du robot est connu, on peut calculer la commande imqui correspond à un commande de l’accélération ˜q :

i∗m = K−1c W−T(H(q)˜q + C(q, q)q + g(q) + Γft(q)

)(6)

Vers l’identificatiion du modèle dynamique

Obtention du modèle dynamique dans le cas d’un manipulateur

Indications suplémentaires :I la gravité est orientée selon −~y0 ;I l’actionneur i est placé entre le corps i-1 et le corps i.

Formalisme de Newton-Euler

Le formalisme de Newton-Euler est basé sur l’expression du principe de ladynamique pour chacun des corps du système.

Pour un corps du système :I x actions mécaniques :

mOi

i→s , fi→si = 1 . . . x ;

I équation de Newton :∑x

i=1 fi→s = ms vGs/0 ;

I équation d’Euler :∑x

i=1 mOii→s = IG

s ωs/0 + ωs/0 ×(IGs ωs/0

);

où ms et IGs représentent respectivement la masse du corps s et son tenseur

d’inertie exprimé au centre de gravité.

Formalisme de Newton-Euler : cas d’un manipulateur série

Dans le cas d’un manipulateur série, quelques choix judicieux peuvent être faitsqui simplifient l’expression des équations de Newton-Euler. Les liaisons sontsupposées parfaites.

Conventions :I L’axe de la liaison entre le corps i − 1 et le

corps i est orienté selon l’axe ~ki du repère Ri ;I Description de la topologie :

I δi = 0 pour une liaison pivot ;I δi = 1 pour une liaison glissière.

I Vitesses relatives :I ωi/i−1 = δi θiki ;I vi/i−1 = (1− δi )diki ;

Formalisme de Newton-Euler : cas d’un manipulateur série

Que doit-on calculer ?

I équation de Newton :∑x

i=1 fi→s fi→s = msms vGs/0vG

s/0 ;I équation d’Euler :∑x

i=1 mOii→sm

Oii→s = IG

s IGs ωs/0ωs/0 + ωs/0ωs/0 ×

(IGs ωs/0

);

=⇒Connues a priori (modèle CAO) ou par identification.

=⇒A calculer.

Formalisme de Newton-Euler : cas d’un manipulateur série

1 - Propagation des vitesses (forme récursive)On part de la base (CI connue) :

ωi/0 = ωi−1/0 + δi θiki

vOii/0 = vOi−1

i−1/0 + ωi−1/0 ×−−−−→Oi−1Oi + (1− δi )diki

1 - Calcul des accélérations (par dérivation)ωi/0 = ωi−1/0 + δi θiki + δi θi

(ωi−1/0 × ki

)

vOii/0 = vOi−1

i−1/0 + ωi−1/0 ×−−−−→Oi−1Oi + ωi−1/0 ×

(ωi−1/0 ×

−−−−→Oi−1Oi)

+ (1− δi )diki +

(1− δi )di(ωi−1/0 × ki

)

1 - Calcul des accélérations des CdGvGi

i/0 = vOii/0 + ωi/0 ×

−−→Oi Gi

vGii/0 = vOi

i/0 + ωi/0 ×−−→Oi Gi + ωi/0 ×

(ωi/0 ×

−−→Oi Gi)

Formalisme de Newton-Euler : cas d’un manipulateur série

2 - Calcul des efforts inertielsmGi

ineri= IG

i ωi/0 + ωi/0 ×(

IGi ωi/0

)

fineri = mi vGi/0

3 - Rétropopagation des effortsOn part de la base (CI connue) :

fn→n+1 = fext

mOnn→n+1 = mM

ext + fext ×−−→MOn

fi−1→i = fi→i+1 + fineri (−mi gi )

mOii−1→i = mOi+1

i→i+1 + fi→i+1 ×−−−−→Oi+1Oi + (fineri (−mi gi ))×−−→Gi Oi

Formalisme de Newton-Euler : cas d’un manipulateur série

Une fois connus les torseurs d’interaction entre chacun de corps successifs, on obtientles efforts articulaires en considérant la composante du torseur selon l’axe :

4 - Extraction des efforts articulairesLiaison pivot : τi = kT

i mOii−1→i

Liaison glissière : fi = kTi fi−1→i

5 - Groupement final sous forme matricielOn fait apparaitre les matrices caractéristiques vues dans le cours : matrice d’inertie,des effets Coriolis et centrifuges.Remarque : On peut aussi tenir compte de la gravité en la modélisant comme uneaccélération de la base du robot vG0

0/−1 = g .

Méthodes d’identificationAfin de pouvoir utiliser le modèle dynamique du système en vue de sacommande, les masses, inerties, coefficients de friction ainsi que les paramètresgéométriques (longueur des corps, distance des centre de liaison au centre degravité) doivent être connues.

Méthodes d’identification “à la main”I A priori : à partir du modèle CAO du robot et des données constructeur la

plupart des paramètres peuvent être obtenus. Le problème est que certainedonnées sont rarement données (inertie des réducteurs) et dépendantes dumontage du robot : coefficients de frottement. Par ailleurs, les données apriori peuvent être partiellement erronées ou ne pas tenir compte desévolutions liées à la vie du robot : ajout d’un capteur ici ou là,changements de pièce non exactement standards...

I Méthode direct : avant l’assemblage ou après désassemblage du robot, onmesure les masses et moments d’inertie par pesée, recherche des pointsd’équilibre, méthode du pendule... Là encore tous les paramètres nepeuvent pas être obtenus par mesure directe. Par ailleurs, certains de cesparamètres dépendent de l’assemblage. Enfin ces méthodes sontfastidieuses et gourmandes en temps...et il n’est pas toujours possible /sans risque de démonter le robot.

Méthodes d’identification

Méthodes d’identification “automatique”Méthode numérique :

I Méthode d’identification en boucle fermée (en boucle ouverte le systèmen’est pas stable).

I On asservit le robot en position articulaire (commande décentralisée, nenécessite pas de connaissance a priori du modèle).

I Generation de trajectoires pertinentes (dites “excitantes”, par exemple dessommes pondérées de sinusoïdes à fréquences différentes).

I On enregistre les commandes (courant dans les moteurs) ainsi que lesgrandeurs articulaires : position, vitesse, accélération.

Identification numérique

Etapes de l’identification numériqueI Dans les équations dynamiques telles que formulées pour la modélisation

et la commande, les relations sont non linéaires en les paramètres deconfiguration. En revanche, on peut reformuler ces équations de manière àles faire apparaitre comme linéaires en les paramètres à identifier.

I On reécrit donc le modèle dynamique sous la forme : im = Y (q, q, q)p oùp est le vecteur des paramètres à identifier.

I Cette forme est appelée forme d’identification. Elle fait apparaitre desgroupements de paramètres et il est donc rarement possible d’identifierexactement les paramètres un à un. Ce n’est pas un problème pour lacommande pusique c’est de la valeur des ces groupements de paramètresdont on a besoin. Ces groupements sont appelés paramètres de base.

I Chaque mesure mène à une ligne dans le vecteur des commandes im etdans la matrice d’observation Y ;

Identification numérique

Etapes de l’identification numériqueI A partir du moment où le nombre de mesure est supérieur aux nombres de

paramètres à identifier, le système linéaire est surcontraint et il n’y a pasde solution exacte.

I On recherche donc la solution p qui minimise les erreurs par rapport auxmesures effectuées.

I En considérant la minimisation au sens des moindres carrés, la solution estcelle qui minimise la norme euclidienne de l’erreur :p0 = argmin(‖im − Y p‖) = Y +im.

I On rappelle que Y + est la pseudoinverse de Y .

Conseils pratiques pour l’identification numérique

Recommandations pratiquesI En général, seules les positions (voire les vitesses) sont mesurées. Il faut

obtenir les vitesses et accélérations par calcul, ce qui fait intervenir unbruit de quantification dans Y. “Solutions” :

I Travailler avec des grandes vitesses et accélérations pour augmenter lerapport signal/bruit.

I Filtrer les vitesses et accélérations. Pour éviter le déphasage, on peut utiliserun filtre à différence centrale (fonction filtfilt sous Matlab).

I On peut filtrer directement l’équation dynamique, puisqu’elle est linéaireen les paramètres. On obtient une équation linéaire en les paramètres entreles grandeurs filtrées. Cette technique permet d’éviter le calcul desaccélérations (méthode dite du filtrage parallèle de la matriced’observation et du vecteur de mesure des commandes).

I Choix des trajectoires pour l’identification :I Il existe des techniques qui permettent la synthèse de trajectoires dites

excitantes, par optimisation du conditionnement de la matrice d’observation.I En pratique, on peut choisir des trajectoires sinusoïdales pour chacun des

axes, en évitant de choisir des fréquences multiples entre les axes.

Conseils pratiques pour l’identification numérique

Recommandations pratiques (suite)I Pour les robots 6R type anthropomorphique, on a interêt à séparer

l’identification du poignet et celle du porteur.I Si r est le nombre de paramètres à identifier, travailler avec au moins 500r

équations.I Faire appel le plus souvent possible à des considérations physiques et

essayer d’évaluer a priori les ordres de grandeurs. Ceci permet notammentde détecter les paramètres qui ont peu d’influence et qui « déconditionnent» la matrice d’observation.

I Il est ainsi plus judicieux de commencer par quelques mouvements simplespour identifier séparément quelques paramètres, notamment ceux defrottements et de gravité.

Exercice

Etant donné le modèle dynamique suivant. Ecrire les équations de ladynamique sous forme identifiable.

Exemple de mouvements simples

Le robot est asservi par une commande decentralisée en positionI Mesures pour des configurations statiques mettant en exergue les

phénomènes de gravité.I Mesures à vitesse constante permettant d’ignorer les termes liés à

l’accélération.I Mesures à vitesse lente permettant de considérer les termes

d’entrainements (Coriolis et centrifuges) comme négligeables.I Mesure à vitesse nulle sur l’ensemble des axes sauf un : permet d’ignorer

une partie des couplages.I Mesure avec changements de signe de la vitesse : mise en avant des

phénomènes de frottement sec.

Modèle dynamique dans l’espace opérationnel (1)

Modèle dynamique dans l’espace articulaire

H(q)q = WTKc im − C(q, q)q− g(q)− Γft (7)

Changement d’espaceOn a :

(v0nOn

Ω0n

)= J(q)q

d’où :(

v0nOn

Ω0n

)= J(q, q)q + J(q)q

Soit : q = J−1(q)

(v0n

On

Ω0n

)− J−1(q)J(q, q)q

Modèle dynamique dans l’espace opérationnel (2)

Λ(q)a = F− µ(q, q)− p(q)− Fft (8)Avec :

I Λ = J−T (q)H(q)J−1

I a =

(v0n

On

Ω0n

)

I F = J−T (q)WTKcimI p(q) = J−T (q)g(q)

I µ(q, q) = J−T(C(q, q) + J−1(q)J(q, q)q)

I Fft = J−T Γft

Commande dans l’espace opérationnel

I De nombreuses tâches robotisées nécessitent un suivi de trajectoire del’effecteur :

I Soudage (hors le soudage par points).I PeintureI PalettisationI etc. . .

I Dans ce cas, les commandes articulaires qui permettent le suivi d’unetrajectoire spécifiée dans l’espace des articulations, ne sont pas suffisantes.

I Deux approches peuvent être utilisées :I On calcule une trajectoire dans l’espace opérationnel, puis on inverse la

géométrie du robot pour calculer une trajectoire articulaire.I On calcule directement la commande dans l’espace opérationnel.

Deux approches Commande par modèle géométrique inverse

I La dynamique en boucle fermée se règle au niveau articulaire.I Très simple de mise en œuvre (solutions utilisée sur de nombreux robots

industriels).I L’inversion de la géométrie utilise la mesure courante pour le choix du

mode d’assemblage.I Pour les commandes avancées, on peut dériver les consignes articulaires

pour obtenir les signaux de vitesse et accélération de consigne.

Commande par modèle cinématique inverse

I La dynamique en boucle fermée se règle au niveau articulaire.I Le calcul des erreurs se fait dans l’hypothèse de petites erreurs :εq = J(q)−1(xd − f (q))

I Dans cette expression, le jacobien inclut celui du paramétrage :JT (q) = J−1p (x)J(q)

I Ne fonctionne qu’aux petites erreurs, pour lesquelles seules le termedifférentiel opérationnel a un sens.

I Problème aux singularités, mais pas d’inversion géométrique.I La fermeture de la boucle au niveau opérationnel est encore plus

performante si elle se base sur une mesure extéroceptive : commanderéférencée vision.

Limitations

I La dynamique en boucle fermée se règle au niveau articulaire.I Si les performances de suivi sont critiques, cette solution n’est pas

optimale, car on ne maîtrise pas la dynamique d’erreur au niveau de latâche.

I En particulier, les premiers axes sont en général beaucoup plus lents queles axes du poignet.

I Les erreurs produites au niveau de l’organe terminal découlent des erreursde suivi articulaire et se combinent en fonction de la configurationinstantanée du robot : elles ne sont pas compensées au sens de la tâche.

ConclusionPour de applications avancées, notamment au contact, ou à grande bandepassante, on préfère exprimer la commande directement au niveauopérationnel,ce qui permet de maîtriser le comportement de l’effecteur enboucle fermée.

Commande dans l’espace opérationnel

ProblèmesI calcul de l’erreur opérationnelle

I Quel vecteur construire ?I Comment le construire à partir d’un paramétrage donné ?

I commande (sortie du correcteur) qui dépend des asservissements basniveau du robot :

I Si les actionneurs sont pilotés en couple : commande opérationnelle =torseur d’effort

I Si les actionneurs sont pilotés en vitesse : commande opérationnelle =torseur cinématique

I Correcteur : Quelle est la dynamique du système vue du correcteur ?

Calcul de l’erreur dans l’espace opérationnel (1)

I Aux petites erreurs, on calcule : ε = Jp(f (q)

)(xd − f (q)

)

I La quantité ε est souvent appelée "torseur différentiel" :

ε =

(dr = dθu

dp

)

I dr= rotation différentielle = rotation d’un angle dθ autour d’un axe uI dp= déplacement du point M utilisé pour paramétrer x = f (q)I Le champ de moment est équiprojectif (d’où le nom de torseur)

I Attention, en principe, cette relation n’est vraie que pour desdéplacements infinitésimaux.

Calcul de l’erreur dans l’espace opérationnel (2)

I Si l’erreur ne peut pas être supposée petite à tout instant, cela n’a pas desens de calculer l’erreur par une différence entre les paramètresopérationnels désirés et les paramètres opérationnels courants.

I On calcule le déplacement fini et on extrait un paramétrage de l’erreur.

ExempleA partir de x = [xOT , yOT , zOT , α, β, γ] (angles d’Euler ZYX) :

I Reconstruction des matrices de transformation homogènesI Calcul de la matrice de transformation homogène du déplacement à

effectuer :TT→Td = (T0→T )−1T0→Td =

(RT→Td tT→Td

0 1

)

I Calcul de l’erreurI tT→Td représente l’erreur en positionI La matrice RT→Td est représentée par un paramétrage axe/angle θu

Calcul de l’erreur dans l’espace opérationnel (3)

I L’erreur opérationnelle T ε =

(θu

tT→Td

)

I Expression de l’erreur dans le repère de base du robot (si requis) :0ε =

(R0→T 00 R0→T

)T ε =

(θ0u

0tT→Td

)

Fonction de sortie du correcteur

Actionneurs pilotés en couple

On utilise la transformation : τ = JT (q)˜(f0→nmOn

0→n

)

Du point de vue du correcteur, la commande est un torseur d’effortsvirtuellement appliqué à l’effecteur

Actionneurs pilotés en vitesse

On utilise la transformation : ˜q = J−1(q)˜(v0nOn

Ω0n

)

Du point de vue du correcteur, la commande est le torseur cinématiquedécrivant le mouvement instantané de l’effecteur par rapport à la base

Cas d’une commande en vitesse : commande par cinématique inverse (1)

I Le correcteur le plus simple : C(s) = kpI6 où kp est un scalaire strictementpositif

I Loi de commande : ˜q = kpJ−1(

θ0u0tT→Td

)= kpJ−1

(θ0u

0xd − 0x

)

I Comportement en boucle fermée :I On suppose que les asservissements articulaires en vitesse sont très rapides

par rapport à la boucle de position opérationnelleI Dans ce cas la vitesse instantanée est supposée égale à la vitesse de

commande à tout instant, d’où :(v0nOn

Ω0n

)=

˜(v0nOn

Ω0n

)= kp

(θ0u

0xd − 0x

)

Cas d’une commande en vitesse : commande par cinématique inverse(2)

En notant Jθu le jacobien associé au paramétrage θu, il vient : dθ0u

dt = J−1θu0Ωn0 = kpJ−1θu θ

0ud(0xd−0x)

dt = −0v0nOn = −kp(0xd − 0x)

Or : Jθu = −I +θ

2 [u]x −(1−

θ2

tan( θ2 )

)

Donc : Jθuu = −u⇒ J−1θu u = −u

Soit : dθ0u

dt = −kpθ0u

d(0xd−0x)dt == −kp(0xd − 0x)

θ0u = e−kp t(θ0u)t=0(0xd − 0x) = e−kp t(0xd − 0x)t=0

Cas d’une commande en vitesse : commande par cinématique inverse(3)

I Terme d’anticipation. Lorsque la consigne n’est pas fixe, on peut calculer,au niveau du générateur de trajectoire, le torseur des vitesses désirées :(

0v0nOn

0Ω0n

)

dI La commande devient alors :

˜(0v0nOn

0Ω0n

)=

(0v0nOn

0Ω0n

)

d+ kp

(θ0u

0xd − 0x

)

I On peut montrer que dans ce cas, la dynamique d’erreur est la même,c’est-à-dire qu’on obtient une convergence exponentielle de l’erreur régléepar la constante de temps 1/kp

I kp s’exprime en s−1. Typiquement : 5 à 10 (plus reviendrait à faireintervenir la dynamique des boucles locales en vitesse).

Cas d’une commande en couple : commande par matrice de raideur

I Le correcteur le plus simple : une matrice de raideur K6×6 :˜(f0→nmOn

0→n

)= K

(θ0u

0tT→Td

)

I La loi de commande complète s’écrit : τ = JTK(

θ0u0tT→Td

)

I A l’équilibre, en l’absence d’efforts extérieurs, et hors les singularités, lescouples appliqués sont nuls ssi l’erreur est nulle.

I Aux singularités, le système peut produire un couple nul pour une erreurnon nulle (si l’erreur est dans le noyau de JT ), mais il n’y a pas dedivergence, contrairement aux schémas par cinématique inverse

Matrice de raideur

I On peut représenter le comportement statique du corps terminal de lafaçon suivante :

I Lorsqu’on déplace le solide de sa position d’équilibre d’une quantité(θuT , tT

T→Td )T ), les points Mi sont déplacés, ce qui engendre des forcesélastiques.

I Leur combinaison produit un torseur d’effort résultant (f T0→n, (mM

0→n)T )T

I La matrice K s’obtient par la relation entre les déplacements et le torseurrésultant aux petits déplacements.

Comportement en boucle fermée (1)

I En statique, si des efforts extérieurs sont appliqués au niveau de l’organeterminal (cas de contacts), ils s’équilibrent avec l’ensemble des ressortsvirtuels représentés par la matrice K

I Pour caractériser le comportement dynamique, rappelons que :Λ(q)a = F− µ(q, q)− p(q)− Fft

I La dynamique en boucle fermée des actionneurs commandés en couple estsupposée de bande passante infinie (temps de réponse négligeable devantles autres constantes de temps).

I En négligeant tous les termes en vitesse et la gravité (perturbations), lecomportement en boucle fermée s’écrit donc :

Λ(q)

dJθuθ0u

dtd2xdt2

= K

(θ0u

(0xd − 0x)

)

Comportement en boucle fermée (2)

Λ(q)

dJθuθ0u

dtd2xdt2

= K

(θ0u

(0xd − 0x)

)

I Cette équation est très fortement couplée. En effet, la "matrice d’inertie"opérationnelle ne dépend pas que de l’inertie des corps constituant lerobot, mais aussi de la cinématique

I En pratique, on devra régler une raideur très petite (gains de correctionfaibles) pour préserver la stabilité dans tout l’espace de travail.

I Ce schéma ne permet pas de bonnes performances en suivi dans l’espaceopérationnel. Il sera utilisé uniquement si le robot doit être en contactavec l’environnement (cobotique notamment).

Comportement en boucle fermée (3)

I Noter aussi que cette équation d’ordre 2 n’est pas amortie (mais on anégligé tous les termes en vitesse).

I En pratique, comme K est petit, les termes de frottements peuvent suffireà amortir le système (mais alors la précision statique est très mauvaise).

I On peut aussi ajouter un terme en vitesse dans le correcteur.Dans ce cas, la commande devient :τ = JTK

(θ0u

0tT→Td

)− B

(0v0nOn

0Ω0n

)

Commande des Systèmes Robotiques - NSR13Modélisation

Support de cours réalisé en collaboration avec Wael Bachta

Vincent Padois

[email protected]

Université Pierre et Marie CurieInstitut des Systèmes Intelligents et de Robotique (CNRS UMR 7222)

Rappel de la problématique de la Robotique (1)

Objectifs de la RobotiqueI Réalisation d’une tâche : mise en mouvement d’un objet, application

d’efforts sur un objet.→ Un robot est un système qui présente les degrés de liberté et les moyens

d’actionnement nécessaires pour réaliser cette mise en mouvement ouexercer des efforts.

→ La réalisation de la tâche passe par le contrôle d’un (ou plusieurs) pointparticulier de la chaine cinématique du robot (en général l’organeterminal) : suivi de trajectoire en mouvement et/ou en effort,asservissement réactif. Différentes grandeurs peuvent donc être asservies :torseur cinématique / torseur d’efforts.

→ Au delà de la réalisation de la tâche, le contrôle du robot induit aussi lerespect de contraintes : évitement de butées articulaires, évitement decollisions, non saturation des actionneurs.

Rappel de la problématique de la Robotique (2)

Problématique→ Conception du système mécanique du robot de telle manière à ce qu’il

présente un nombre degrés de liberté suffisant par rapport à la tâche etrespecte un ensemble de contraintes liées notamment aux performances àatteindre.

→ Choix des éléments technologiques (capteurs, actionneurs, interfaces,support du contrôleur) en accord avec les performances désirées.

→ Modélisation du système et l’ensemble des éléments technologiques.→ Identification paramétrique du système..→ Conception des boucles d’asservissement et mise en oeuvre du contrôleur

en sachant que le contrôle des actionneurs peut se faire à deux niveauxdifférents : asservissement en couple / asservissement en vitesse.

I cours 1I cours 2I cours 3

Différents niveaux de modélisation (1)

1 Modélisation géométrique du système x = f(q)

I x est un paramétrage de l’espace opérationnelI q est un paramétrage de l’espace articulaire

2 Modélisation cinématique du système v = 0J(q)qI v est le torseur cinématique associé à l’organe terminalI 0J(q) est le Jacobien naturel du systèmeI v = Jp(q)xI Jp(q) est le Jacobien du paramétrage du système

3 Modélisation statique du système Γ = 0J(q)TFI Γ est le vecteur des couples articulaires du systèmeI F est le torseur d’effort statique associé à l’organe terminal

Différents niveaux de modélisation (2)

4 Modélisation dynamique du système0.1 Modélisation dynamique des actionneurs

I Asservissement du couple

I Asservissement de la vitesse

0.2 Modélisation dynamique des axes q =NΓm−g(q)

Jes s2+feqs

I N rapport de transmission (> 1) ;I Jes inertie équivalente de l’axe et de l’actionneur vue de la sortie ;I fes frottement visqueux équivalent de l’axe et de l’actionneur vue de la sortie.

0.3 Modélisation dynamique du système poly-articuléA(q)q + C(q, q)q + g(q) + Γft (q, q) = Γ

I A(q) matrice d’inertie ;I C(q, q) matrice des effets Coriolis et centrifuges (peut s’écrire sous des formes

différentes) ;I g(q) vecteur des efforts articulaires liés à la gravité ;I Γft (q, q) vecteur des efforts articulaires liés aux frottements (secs et visqueux).

Différents niveaux de commande : espace articulaire (1)

1 Commande articulaire décentralisée Γi = PID(qid , qi )

I Les efforts externes ou de couplage dynamique sont considérés comme desperturbations

2 Commande articulaire centralisée par anticipationi∗m = K−1c W−T (H(qd )qd + C(qd , qd )qd + g(qd ) + Γft (q, q))

Différents niveaux de commande : espace articulaire (2)

3 Commande articulaire centralisée par découplage

i∗m = K−1c W−T (H(q)˜q + C(q, q)q + g(q) + Γft (q, q))

˜qi = PID(qid , qi (, qid , qi ))

Différents niveaux de commande : espace opérationnel (1)

1 Fermeture de boucle au niveau articulaire : modèle géométriqueinverse : qd = inv(f)(xd) et Γ = cea(qd , q)

→ Mauvais rejet des erreurs de modélisation géométrique et cinématique→ Inversion du modèle géométrique fastidieuse et non générique

2 Fermeture de boucle au niveau opérationnel / correcteur articulaireεq = J(q)−1Jp(q)(xd − f(q)), ε = Jp(q)(xd − f(q)) est appelé le torseur différentiel.

Différents niveaux de commande : espace opérationnel (2)3 Fermeture de boucle au niveau opérationnel / correcteuropérationnel :

a Sans prise en compte de la dynamique et du couplage associé auniveau opérationnel

I Asservissement bas niveau en couple : Γ = 0J(q)T (Kε(−Bv))

I K est une matrice de raideur opérationnel ;I B est une matrice d’amortissement opérationnel ;I En général utilisé si le robot est en contact avec l’environnement (cobotique par

exemple) ;I Asservissement bas niveau en vitesse : q = J(q)−1 (Kpε(+v))

I Kp est une matrice de gain proportionnel opérationnel.I Dans ces deux schémas, la dynamique opérationnel et les couplages

opérationnels associés ne sont pas pris en compte directement. →Performances réduites.

b Avec prise en compte de la dynamique et du couplage associé auniveau opérationnelΓ = 0J(q)T (Λ(q)~a + µ(q, q) + p(q) + Fft)

avec a = (Kε(−Bv))

I Kp est une matrice de gain proportionnel opérationnel ;I Découplage dynamique opérationnel ;I La méthode par anticipation peut aussi être utilisée dans ce schéma.