Le robot marcheur Rabbit

publicité
François BERUARD
INPG - ESISAR
Option ISC
EI5 - p2003
Année 2002-2003
Rapport de Stage
afin d'obtenir le
DEA Automatique – Productique option Automatique
Commande impulsionnelle d'un système mécanique
Application à la robotique mobile
du 3 Mars au 31 Août 2003 au sein du
Laboratoire d'Automatique de Grenoble
ENSIEG - Domaine Universitaire - BP46
38402 Saint Martin d'Hères – Cedex
FRANCE
Maître de stage
M. Carlos CANUDAS DE WIT
Résumé
Rabbit est un robot marcheur bipède présentant notamment comme particularités
de n’avoir qu’un tronc, deux jambes et aucun pied et d’être sous actionné. Lors de ce
stage une nouvelle loi de commande a été étudiée afin d’améliorer la marche. Cette loi se
base sur une commande de type impulsionnel. Il a tout abord fallu la mettre en œuvre
sur une masse en chute libre sur un sol compliant puis d’essayer de l’adapter sur Rabbit.
Mots clés : commande impulsionnelle, sol compliant, application de Poincaré, robot
marcheur
Abstract
Rabbit is a walking biped robot that has just one trunk and two legs but no feet
and it is under actuated. During this trainee period a new law has been studied to
improve the robot’s walk. This law is based on an impulse control. So first this law has
had to be studied and tested on a mass in a free fall on a compliant surface, then to be
adapted on Rabbit.
Key words : impulse control, compliant surface, Poincaré map, walking robot
Remerciements
Je tiens spécialement à remercier :
Monsieur Carlos Canudas de Wit, directeur de recherche au CNRS, pour m'avoir accueilli
au sein du groupe de recherche Commande des Systèmes Electromécaniques et
Robotique et m'avoir encadré pendant les 6 mois de mon projet de fin d’études puis de
mon stage DEA. Je lui suis aussi très reconnaissant des moments passés à me conseiller
et m'aider sur les différents problèmes rencontrés durant ce stage.
Tous les membres de l'équipe CSER : Yajun, Ahmed, Ayman, Claudio, Edinson,
Emmanuel, Guillaume, John, Morten et Riccardo, où la langue a tout été sauf une
barrière.
Table des matières
Introduction ............................................................................. 1
Le robot marcheur Rabbit .......................................................... 2
1
Rabbit, un projet national ......................................................... 2
2
Pourquoi Rabbit ? .................................................................... 3
2.1
2.2
2.3
2.4
Objectifs scientifiques .................................................................. 3
Approche scientifique .................................................................. 3
Description du système ............................................................... 3
Modèle mathématique ................................................................. 5
Masse en chute libre sur un sol compliant .................................... 6
1
Introduction ........................................................................... 7
1.1
1.2
1.3
2
Commande impulsionnelle ........................................................ 9
2.1
2.2
2.3
3
Idée .......................................................................................... 9
Etude théorique ........................................................................ 10
Simulation ............................................................................... 12
Stabilisation de l'orbite périodique, attractivité ........................... 13
3.1
3.2
3.3
3.4
4
Modèle ressort-amortisseur non linéaire......................................... 7
Définition du système .................................................................. 7
Simulation d'une chute libre ......................................................... 8
Préambule ...............................................................................
Application de Poincaré ..............................................................
Simulation sous Simulink ...........................................................
Améliorations ...........................................................................
13
14
16
18
Robustesse ............................................................................ 19
4.1
Vis-à-vis des paramètres k et  .................................................. 19
4.2
Etude de l'approximation des impulsions ...................................... 20
Application sur Rabbit ............................................................. 22
1
Avant propos ......................................................................... 22
2
Problèmes d’adaptation posés .................................................. 23
3
Questions primordiales ........................................................... 23
Conclusion ............................................................................. 25
1
La masse en chute libre .......................................................... 25
2
Application sur Rabbit ............................................................. 25
Liste des figures ..................................................................... 26
Bibliographie .......................................................................... 35
Introduction
Le Laboratoire d’Automatique de Grenoble (LAG) est l’un des principaux laboratoires
nationaux spécialisés en Automatique. Il a de plus une certaine renommée mondiale. Au
sein de ce laboratoire de l’INPG, l’équipe Commande de Systèmes Electromécaniques et
Robotique (CSER) est notamment spécialisée en robotique et travaille depuis de
nombreuses années sur des projets de recherche sur les robots. Actuellement cette
équipe participe au développement du robot marcheur Rabbit. Le but des recherches est
bien évidemment de faire marcher et courir ce robot. Plusieurs lois de commande ont
déjà été réalisées et implémentées sur Rabbit, avec plus ou moins de succès. Les
résultats obtenus à ce jour permettent de faire marcher Rabbit. Malheureusement cette
marche n’est pour l’heure pas fluide et n’est donc pas périodique. Ceci est notamment dû
aux impacts avec le sol où de l’énergie est perdue. Une solution à ce problème pourrait
être alors de redonner de l’énergie en envoyant des impulsions lors du contact avec le
sol.
A ce jour, peu de travaux ont été réalisés autour de la commande impulsionnelle. Le
but de mon stage est donc de développer des nouvelles lois de commande de type
impulsionnel qui seront applicables sur Rabbit. Mais avant de travailler directement sur
Rabbit, des développements ont été réalisés sur un système mécanique "simple" et
proche d’un système robot marcheur.
Nous allons donc ici exposer les différentes recherches réalisées sur une masse en
chute libre sur un sol compliant. Après une étude théorique sur ce système et sur les
impulsions, une première loi de commande sans retour est réalisée. Nous aborderons par
la suite le problème par un retour d’état afin de rendre périodique la chute de la masse.
Pour finir nous parlerons de la robustesse d’une telle loi de commande, avant de conclure
sur les perspectives de mise en place de cette loi sur le robot marcheur Rabbit.
Une présentation du LAG et de l’équipe CSER, ainsi qu’une brève présentation de
Rabbit sont réalisées en tout début de ce présent document.
1
Le robot marcheur Rabbit
1
Rabbit, un projet national
Le développement du robot marcheur Rabbit s'inscrit dans un projet national
"Commande pour la marche et la course d'un robot bipède". Ce projet s'inscrit lui-même
dans un programme national interdisciplinaire de recherche intitulé "Robotique et Entités
Artificielles" (Robea). Robea se situe dans le cadre des grands programmes thématiques
du département Sciences et Technologies de l'Information et de la Communication
(STIC). Il couvre diverses disciplines de recherche des STIC, en informatique, en
traitement du signal et en automatique.
Sept laboratoires nationaux participent aux recherches sur Rabbit. Ils regroupent
différentes spécialités dont la mécanique, la robotique et l'automatique. Cette équipe
travaille depuis 4 ans avec l'objectif commun de faire marcher et courir un robot bipède.
Liste des laboratoires participants et leurs compétences :







Institut de Recherche en Communications et Cybernetique de Nantes
(IRCCyN) : spécialisé dans la commande des systèmes non-linéaires, la
modélisation, l'identification et la commande de robots manipulateurs.
Laboratoire d'Automatique de Grenoble (LAG) : voir page 4
Laboratoire de Génie Industriel et de Production Mécanique (LGIPM) de
l'université de Metz : spécialisé dans les réalisations et expérimentation sur les
prototypes.
Laboratoire d'Informatique, de Robotique et de Microélectronique de
Montpellier (LIRMM) : spécialisé dans l'identification et la commande prédictive
Laboratoire de Mécanique des Solides (LMS) de Poitiers : la compétence des
membres du LMS impliqués dans ce projet concernent principalement la conception
mécanique de robot marcheur, l'optimisation de trajectoires de robot et la
biomécanique
Laboratoire de Robotique de Versailles (LRV) : spécialisé dans la commande des
systèmes. Ils ont aussi participé à la réalisation et à l'expérimentation sur un
prototype hybride, c'est à dire possédant des roues et des pattes. Ils réalisent
actuellement un prototype de robot bipède ayant la même structure que Rabbit mais
actionné par des actionneurs hydrauliques
Laboratoire de Vision et Robotique (LVR) de Bourges : spécialisé dans la
simulation de comportement dynamique et en particulier de bipèdes complexes et
dans l'étude de la commande par les réseaux de neurones
L’Institut National de Recherche en Informatique et en Automatique (INRIA)
est aussi associé au projet. Un laboratoire américain de l’université du Michigan, EECS
Control Systems Laboratory, de l'Université du Michigan, participe aussi depuis peu à
la recherche autour de Rabbit.
2
2
Pourquoi Rabbit ?
Il existe actuellement différents types de robots. Rabbit est un robot marcheur et
fait donc partie de la classe des robots appelée "robots à pattes". Contrairement à des
robots à roues ou chenilles, les robots marcheurs présentent l'avantage de pouvoir
évoluer sur tout type de terrain, qu'il soit accidenté ou pas, et gravir des marches. Le
développement en est alors bien plus complexe.
2.1
Objectifs scientifiques
L'objectif scientifique du projet "Commande pour la marche et la course d'un robot
bipède" est de développer des méthodes et des outils théoriques pour faire marcher et
courir un robot bipède, et de les valider expérimentalement. A notre connaissance, cet
objectif n'a pas encore été atteint par aucun groupe de recherche dans le monde.
La motivation d'un tel projet s'explique par les perspectives d'utilisation de tels
robots. Dans le futur, ces recherches pourront donner lieu à des prototypes conçus pour
des applications spécifiques : prothèses médicales, déplacement en terrain hostile.
2.2
Approche scientifique
La recherche s'oriente vers la reproduction la plus fidèle possible de la marche
humaine. Un soucis particulier est apporté sur la recherche d'une marche optimale, c'est
à dire la moins énergétique possible. La gravité occupe alors une place primordiale dans
le développement de Rabbit. Il s'agit en effet d'appréhender la gravité comme une aide
et non pas comme une gène. Ceci est l'un des points qui a poussé Rabbit à ne pas avoir
de pieds, annihilant ainsi un quelconque couple au niveau des chevilles. Aussi afin de
donner un rôle à la gravité, Rabbit est sous motorisé. Il y a un degré de sous
motorisation en phase de simple support, et trois degrés de sous motorisation en phase
de vol.
Le but est donc d'aborder le rôle de la gravité durant la marche mais aussi les
effets de l'impact avec le sol et les problèmes liés au changement de phases entre les
différentes phases : simple appui, double appui et vol.
2.3
Description du système
Rabbit a été conçu de sorte qu’il puisse reproduire la marche humaine d’une
manière la plus simpliste. De ce fait il est composé d’un tronc non actionné et de deux
jambes, chacune actionnée au niveau de la hanche et du genou. La particularité de
Rabbit est qu’il n’a pas de pieds. Le contact au sol est ponctuel, deux roues terminant
chacune des jambes.
3
Le déplacement de Rabbit est limité au plan et s’effectue autour d’une base
centrale fixée au sol. Une tige relie le robot à la base. De ce fait Rabbit a un déplacement
libre circulaire. Les roues des deux jambes sont orthogonales au plan sagittal afin
d’assurer une stabilité latérale (Figure 1)
Mensurations
Rabbit a une taille totale de 1,45m. Ces hanches se trouvent à 80cm du sol. Les
mensurations de Rabbit sont :
Longueur [m]
Masse [kg]
Inertie [kg.m2]
Fémur
0,4
8,0
0,32
Tibia
0,4
6,0
0,19
Tronc (sans charge) Tronc (avec charge)
0,625
7,0
20,0
1,07
1,95
Tableau 1 : paramètres de Rabbit
Notes : Rabbit ne peut supporter qu’une charge maximum de 20kg
Actionneurs
Afin de faire marcher Rabbit, ce dernier est équipé de moteurs électriques. Ces
moteurs sont des moteurs à courant continu. Les moteurs ne sont pas fixés directement
au niveau des articulations actionnées, mais y sont chacun relié par une courroie et un
moto-réducteur. Deux sont montés au sommet du tronc et assurent l’articulation des
hanches. Afin d’assurer l’actionnement des genoux, les deux autres moteurs sont montés
le plus proche possible des hanches afin de minimiser l’inertie des jambes.
Capteurs
Les quatre joints actionnés sont chacun équipé de deux capteurs mesurant la
position angulaire. La vitesse est alors déterminée à partir de la position. Un encodeur
incrémental est positionné sur l'axe du moteur et un encodeur absolu sur l'axe du motoréducteur.
Rabbit est équipé de trois autres encodeurs : un mesure l'angle entre le tronc et la
tige, un mesure l'angle verticale entre la tige et la base et le dernier mesure l'angle du
déplacement circulaire.
Résistance aux impacts
Lorsque les jambes entrent en contact avec le sol, un impact plus ou moins
important se produit. Comme tout système, ces chocs peuvent être nuisibles à long
terme et endommagés sérieusement le robot. La magnitude de ces chocs dépend à la
fois du type de sol (dur, souple, absorbant) et du type de semelle. De ce fait les roues de
Rabbit sont en polymère afin d'absorber les chocs.
4
Rabbit a été conçu de telle sorte qu’il puisse marcher au moins à 5km/h et courir
à plus de 12km/h.
2.4
Modèle mathématique
Rabbit est un robot à 7 degrés de liberté : les cinq degrés de rotation ainsi que les
positions verticales et horizontales.
q  q1
q31 q41 q32
q42
x
y
T
Rabbit est un système sous-actionné : les hanches et les genoux sont actionnées
alors que le tronc ne l'est pas.
u  u1 u2
u3 u 4 
T
Voir Figure 2 et Figure 3.
Toutes les caractéristiques de Rabbit sont dans [2] et [7].
5
Masse en chute libre sur un sol compliant
Le but de l’étude qui va suivre est de rendre périodique l’orbite d’une masse en chute
libre sur un sol compliant. Il s’agit donc de rendre la vitesse d’impact de la balle avec le
sol équivalente à sa vitesse de sortie. Ce qui implique donc de faire revenir la masse à la
même hauteur à chaque rebond.
Une étude sur la commande d’une masse en chute libre sur un sol compliant a déjà
été réalisée par Laurence Roussel et Carlos Canudas de Wit dans [1] et [6]. Ils proposent
une commande restituant l’énergie perdue lors du contact. L’énergie est restituée en
annihilant les pertes dues à l’amortissement du sol. L’étude qui suit reprend donc une
partie de leurs travaux afin de développer une nouvelle loi de commande : une
commande dite impulsionnelle.
Il est à noter qu’il existe différentes façons d’interpréter la commande
allons appliquer. Nous pouvons discerner deux cas de figure :


u que nous
soit la masse est en chute libre sur un sol compliant (Figure 4a)
soit la masse est commandée et entre en contact sur un sol rigide (Figure
4b)
Par la suite nous considérerons le premier cas de figure, à savoir la masse en
chute libre sur un sol compliant.
6
1
Introduction
1.1
Modèle ressort-amortisseur non linéaire
Dans un premier temps en 1881, Hertz a développé un modèle linéaire issu de la
théorie l'élasticité et de la mécanique des contacts. La force de contact F s'exprime :
F   kxn
où
(1)
n caractérise la forme des surfaces en contacts
x est la pénétration dans la surface ( x  0 )
k est le coefficient de raideur en N .m 1 , k>0


Ce modèle présentant l'inconvénient de ne faire intervenir aucune dissipation
d'énergie, Hunt et Crossley (1992) ont alors introduit un modèle ressort-amortisseur
conduisant à une continuité dans la force et dans les états du système tout en ayant un
terme dissipatif. Ainsi :
F    x x  k x
n
où
n 1
x
(2)
 est le coefficient d'amortissement N .s.m 1 , >0
En 1996, Orin et Marhefka (1996) ont notamment démontré que si l'on considère
une masse de masse m en contact avec une surface compliante, alors la position x peut
être exprimé explicitement en fonction de la vitesse
vitesse d'impact
v , de la position d'impact xi et de la
vi :
x ˆ  ( xi , vi , v, k ,  )
 2m(n  1) 
2  3vi
 3 v  vi   2 ln
ˆ  
2

2  3v
 9 k 
1.2
1
 n 1

   xi n 1 



avec  
2

3k
(3)
Définition du système
Soit notre système une masse (de masse
sur un sol compliant.
m en kg) en chute libre ayant un contact
En surface libre, notre masse n'est soumis qu'à la force de gravité (g=9,81m.s-1) :
mx   mg
si x  0
7
(4)
Lors du contact, la masse subit alors les forces de contact F exprimées ci-dessus en
plus de la force gravitationnelle, soit :
mx   mg  F
n
n 1
  mg   x x  k x x
En intégrant la commande
si x  0
(5)
u , le système complet s'écrit :
  mg
mx  
n
n 1
  mg   x x  k x x  u
si x  0
si x  0
(6)
ou
 g

x  
1
n
n 1
g 
  x x  k x x  u

m



si x  0
si x  0
(7)
La commande u est une force. De ce fait elle ne peut pas se soustraire aux autres
forces. La commande u est donc toujours positive. Son but est de redonner de l’énergie
au système. De plus elle ne peut s'appliquer que durant la phase de contact.
1.3
Simulation d'une chute libre
Sous Simulink, nous avons simulé une masse en chute libre avec pour commande
u  0 . Nous avons pris n  1 . Le temps de simulation est fixé à 10s : Figure 5.
8
2
Commande impulsionnelle
2.1
Idée
Lorsque la masse entre en contact avec le sol, il y a une perte d’énergie. Ceci se
traduit par le fait que la vitesse en sortie du sol v o est largement inférieure à la vitesse
d’impact
v i avec le sol.
Le but de la commande impulsionnelle est de rendre la vitesse de sortie
vo égale à
v i , soit vo  vi . La chute de la masse entrerait alors dans
une orbite périodique avec des vitesses v o et v i constantes et opposées. Pour ce faire,
l’idée est de compenser la perte d’énergie lors du contact en envoyant une impulsion v
l'opposé la vitesse d’impact
au niveau de la vitesse.
L’impulsion
v se fait lors du contact à une certaine position que nous appelons
hauteur des impulsions, notée x impulse . Cette impulsion se fait à une vitesse d’avant
impulsion
v  qui résulte sur une vitesse d’après impulsion v  . v  est déterminée en
v  v  v (Figure 6).
*
fonction de la vitesse de sortie désirée v o . Ainsi
Dans un premier temps nous dirons que nous avons deux orbites. La première
correspond à notre masse en chute libre non commandée avec pour vitesse d’impact
vi1  vi* , vi* étant la vitesse d'impact désirée, et pour vitesse de sortie vo1 . La deuxième
orbite est celle que nous aimerions avoir en sortie de contact avec comme vitesses
vo 2  v
*
o,
v étant la vitesse de sortie désirée avec v   v
*
o
*
o
orbites se fait grâce à l’impulsion
première orbite à x impulse et


v  v  v , où v

*
i .
vi 2 et
La transition entre les deux
correspond à la vitesse de la

v à la vitesse de la deuxième orbite à x impulse .
La commande u peut donc s'écrire u  v. (t ) , où
 (t ) est l'impulsion dirac.
Bien évidemment plusieurs questions se posent : faisabilité ? quand ? comment ?
stratégie ? Nous allons donc essayer de répondre à ces différentes questions en réalisant
différentes études accompagnées de leurs simulations.
9
2.2
Etude théorique
2.2.1
Impact avec un sol compliant
Lors de l'impact d'un objet avec un sol compliant, l'orbite de pénétration peut
s'exprimer en fonction de la vitesse v , de la vitesse d'impact v i et de la position
d'impact
xi . Ainsi Marhefka et Orin (1996) ont notamment démontré que l'orbite dans le
plan de phase à l'impact est :
x ˆ  ( xi , vi , v, k ,  )
 2m(n  1) 
2  3vi
 3 v  vi   2 ln
ˆ  
2
2  3v
 9 k 
1
 n 1

   xi n 1 


avec  
2

3k
(8)
n permet de modéliser différentes géométries de contact.
Dans notre étude, nous prenons n  1 . On peut alors écrire :
x ˆ  ( xi , vi , v, k ,  )
 4m 
2  3vi
ˆ   2  3 v  vi   2 ln
2  3v
 9 k 
1

   xi 2

2


avec  
2

3k
(9)
Que l'on réécrit :
0 ˆ ( xi , vi , x, v, k ,  )
 4m 
2  3vi
0 ˆ x   2  3 v  vi   2 ln
2  3v
 9 k 
2.2.2


   xi 2 


1
2
avec  
2

3k
(10)
Calculs
Pour nos premières simulations, nous avons décidé de faire un calcul ‘hors ligne’
(sans retour) : v sera calculé avant la simulation à partir des conditions initiales. A
partir de (10) nous déterminons les différentes valeurs qui nous sont nécessaires.
2.2.2.1
Calcul d’une vitesse d'impact
Il s'agit de résoudre l'équation :
10
vi

1
2
g.t i  v(0).t i  x(0)  0
2
Afin de déterminer le temps
On détermine alors
2.2.2.2
x
(11)
t  t i  0 quand à lieu l'impact.
vi à t  t i  0 , ie vi   g.t i  v(0)
(12)
Calcul de la pénétration à v=0
Suite à différents essais, il a été constaté que la valeur minimum de la pénétration
se situait à v  0 . Afin de déterminer cette valeur minimum il s'agit donc d'évaluer
(10) à
xi  0 et à v  0 :
0  (0, vi , x,0, k ,  )
 4m 
2  3vi
0  x   2   3 vi  2 ln
2
 9 k 
1
 2
 

(13)
Le calcul de cette pénétration nous permet de choisir ximpulse . En effet ximpulse sera
fonction de la pénétration à v=0. Arbitrairement nous avons choisi de prendre
x impulse 
x(v  0)
.
3
2.2.2.3
Calcul de la vitesse d'impact pour une vitesse de sortie donnée
Connaissant la vitesse de sortie
vo (>0), il s'agit de déterminer la vitesse d'impact
vi (<0) correspondante. Pour se faire nous évaluons l'équation (10) à x  0 , v  vo et
xi  0 :
0  (0, vi ,0, vo , k ,  )
 4m 
2  3vi
0   2  3 vo  vi   2 ln
2  3vo
 9 k 
0  3 vo  vi   2 ln
2  3vi
2  3vo
avec  
1
 2


 
2

3k
Ce calcul nous permet de caractériser la deuxième orbite.
11
(14)
2.2.2.4
Soit,
Calcul de
v
0  ( xi , vi1 , x, v, k ,  )
(15)
l'orbite 1 ayant pour vitesse d'impact
Soit,
0  ( xi , vi 2 , x, v, k ,  )
v i1 et pour vitesse de sortie vo1
(16)
l'orbite 2 ayant pour vitesse d'impact
avec v o 2  v
vi 2 et pour vitesse de sortie v o 2 ,
*
o
On souhaite avoir une orbite avec comme vitesse d'impact v i  v i1 et comme
*
vitesse de sortie vo  vo 2 .
*
Nous souhaitons appliquer l'impulsion à une pénétration x  ximpulse .
v  v   v  avec v   0 et v   0 . Pour chaque orbite, il nous faut
donc chercher la vitesse v correspondant à une pénétration x impulse . Nous évaluons donc
On pose
les équations (15) et (16) à
déterminer v

et v

xi  0 , x  ximpulse et vi  vi1 et vi  vi 2 respectivement afin de
:
0  (0, vi1 , ximpulse, v  , k ,  )
0  (0, vi 2 , ximpulse, v  , k ,  )
2.2.2.5
17
18
Résolution des équations
Les équations (13), (14), (17) et (18) sont résolues numériquement sous Matlab
grâce à la fonction fsolve(). Les résultats sont des résultats théoriques calculés à partir
de (10). Il peut donc y avoir des différences entre les calculs théoriques et la simulation.
2.3
Simulation
Par une simulation de 10s (avec un pas de simulation de 0,001s) sous Simulink,
nous obtenons : Figure 7.
Malheureusement l'orbite obtenue n'est pas invariante. En effet nous observons
une erreur de l'ordre de 0,2m.s-1 lors de la vitesse d'impact au deuxième contact avec le
sol. Mais cette erreur était prévisible car elle peut notamment être due à l'approximation
de l'impulsion lors de la simulation, mais aussi à l’approximation que fait Matlab lorsqu’il
calcule les différentes valeurs utiles. Toutefois, nous pouvons remarquer que l'orbite
converge petit à petit après une dizaine de contacts avec le sol.
Pour remédier à ce problème, une loi de commande améliorée est à développer.
Cette nouvelle loi de commande devra assurer l'attractivité de l'orbite.
12
3
Stabilisation de l'orbite périodique, attractivité
3.1
Préambule
Afin de stabiliser la masse autour d’une orbite stabilisée, nous allons ajouter un
terme de correction.
Notons les domaines suivants :
x
Dnc   x, v  : x  0 
Dc1  x, v  : x  0 , v  v  
Dimpulse  x, v  : x  ximpulse , v   v  v 
Dc 2    x , v  : x  0 , v  v  
Dnc
Dc1
Domaines de l'orbite
Dimpulse

19
20
21
22
v
Dc2
Durant le contact, l'orbite naturelle dans le plan de phase est décrite par
l'équation (9). Ainsi les domaines Dc1 et Dc 2 peuvent être caractérisés par  : v  x , la
différence se faisant au niveau des conditions initiales. Dans le domaine
Dnc , la surface
libre, l'orbite est régie par l'équation différentielle x   g . En supposant qu'aucune force
extérieure n'intervient, il n'y a aucune perte d'énergie en surface libre. Les valeurs des
vitesses d'impact v i et de sortie du contact vo sont donc opposées. Le domaine Dimpulse
définit quant à lui le domaine où a lieu l'impulsion
peuvent être définis par :
v . Ainsi les différents domaines
Dnc : vi   vo
Dc1 : x   ( xi , vi , v)   (0, vi , v)
Dimpulse : v  v   v 
Dc 2 : x   ( xi , vi , v)   ( ximpulse, v  , v)
23
24
25
26
Aux frontières des différents domaines, nous avons donc :
Dnc : vi   vo
Dc1 : ximpulse   (0, vi , v  )
Dimpulse : v  v   v 
Dc 2 : 0   ( ximpulse, v  , vo )
13
27 
28
29
30
La continuité étant assurée en x  0 , les quatre fonctions peuvent alors être
concaténées, ainsi :
x   ( ximpulse, v  , v)
  ( (0, vi , v  ), v  , v)
  (v  , v  , v i , v )
31
ˆ (v, v  , vi , v)
En résolvant les équations (27), (29) et (30), il est alors possible de déterminer
v et v  afin qu'ils résolvent (31) évaluée en x  ximpulse et v  vd :
32
ximpulse  (v, v  , vi , vd )
De manière explicite, (31) s'écrit :

 4m 
2  3v  2  3v   3v
x    2  3 v  vi  v   2 ln

2  3vi  2  3v 
 9 k 



1
 2


 
 4m 
2  3v
3v
 x    2  3 v  vi  v   2 ln
 2 ln 1 
2  3vi
2  3v 
 9 k 
33
1
 2


 
34
avec  
3.2
2

3k
Application de Poincaré
Des explications sur l’application de Poincaré peuvent se trouver en [4] et [9].
Considérons ici la section de Poincaré S  x, v  
x, v 

x  ximpulse , v  0 .
L'application de Poincaré reliant la vitesse d'après impulsion v

à l'instant

t  k  1 et la vitesse d'après impulsion v à l'instant t  k est implicitement donnée par
vi   v0 (k  1) , v  v  (k ) et x  ximpulse :
l'équation (31) évaluée en

ximpulse   vk  1, v  k  1,  v0 k  1, v  (k )
Par continuité de

(35)
 , l'application de Poincaré peut s'écrire implicitement comme :

v  (k )   vk  1, v  k  1,  v0 k  1, ximpulse
14

(36)
3.2.1
Commande à réponse pile
Nous allons résoudre (36) avec v

k   v d , où
v d est la vitesse v  désirée. Avec

ce type de commande, v d est atteinte du "premier coup".
~  (k )  v   v  (k ) , à partir de (36) nous obtenons :
En posant v
d

v~  (k )  vd   vk  1, v  k  1,  v0 k  1, ximpulse
Si v(k  1) et

(37)
v  (k  1) satisfont (27), (28), (29) et (30), alors   v  (k )  v d .
On a alors :
v~  (k )  v d  v d
 v~  (k )  0
38

La commande à réponse pile permet alors d’atteindre vd en un seul coup.
3.2.2
Stabilisation asymptotique de type proportionnelle
Afin d'assurer la stabilité asymptotique et une certaine robustesse, nous allons
résoudre
(36)


v  k   vd  k p vd  v  k  1 , où
avec
k p 1
afin
d'assurer
la
convergence.
Si

v(k  1)

d

v  (k  1)
et

d


satisfont
(27),
(28),
(29)
et
(30),
alors
  v (k )  v  k p v  v (k  1) . A partir de (36) on a alors :

v~  (k )  vd  vd  k p vd  v  (k  1)
 v~  (k )  k p v~  (k  1)

39
Vu que nous avons k p  1 , nous avons alors :
lim v~  (k )  0
(40)
lim v  (k )  vd
(41)
k 
Et ainsi :
k 
La stabilisation asymptotique de l'orbite est alors assurée avec une vitesse de
convergence définie par k p .
15
3.3
Simulation sous Simulink
Lors des simulations, nous distinguerons deux cas de figure :

lorsque vd  v 1 ; ici v d  6 m.s



 lorsque vd  v 1 ; ici vd  2 m.s

3.3.1


Commande à réponse pile v

1
1
k   v d
Le temps de simulation est fixé à 10s, le pas de simulation à 0,001s.


simulation en réponse pile pour v d  6 m.s
Nous atteignons bien v


d
 6 m.s
1

1
: voir annexe Figure 8
du premier coup.
simulation en réponse pile pour v d  2 m.s
1
: voir annexe Figure 9
L'impulsion ne pouvant être que positive, l'orbite désirée est atteinte après
quelques rebonds.
3.3.2
Stabilisation asymptotique proportionnelle
Le temps de simulation est fixé à 10s, le pas de simulation à 0,001s.


simulation en stabilisation asymptotique P pour v d  6 m.s
1
: voir annexe Figure
10
v d  6 m.s 1 est bien atteint après plusieurs rebonds et l’erreur tend bien
vers 0.


simulation en stabilisation asymptotique P pour v d  2 m.s
11
1
: voir annexe Figure
Comme pour la réponse pile, v est négatif afin de réduire la vitesse mais
la commande étant obligatoirement positive, le système considère v comme
positif, ce qui augmente le temps de réponse du système.
16
3.3.3
Stabilisation asymptotique proportionnelle - intégrateur
Suite aux premières simulations, nous avons aussi tester la stabilisation
asymptotique grâce à correcteur de type proportionnel – intégrateur. A partir de [8], le
correcteur se définit par :
v~  k   v d  v  k 
ik   ik  1  v~  k 
u k   k p v~  k   k i ik 
v  k  1  v d  u k 
avec k p  1 et
42
43
44
0  k i  1 a fin d'assurer la convergence asymptotique
Le temps de simulation est fixé à 30s, le pas de simulation à 0,001s.


simulation en stabilisation asymptotique PI pour v d  6 m.s
1
avec kp = 0,4 et
ki = 0,4 : voir annexe Figure 12
3.3.1

simulation en stabilisation asymptotique PI pour v d  6 m.s
1
avec kp = 0,1
et ki = 0,4Stabilisation asymptotique proportionnelle

Figure 13
Suivant les valeurs du couple
k
p
, k i , nous obtenons deux types de réponse :
soit des oscillations amorties, soit une réponse avec un dépassement. Les résultats
obtenus avec kp=0,4 et ki=0,1 semblent meilleurs que ceux obtenus avec k p=0,4 et
ki=0,4 dans le sens où les amplitudes y sont moins importantes. Dans les deux cas, la

vitesse converge vers v d mais avec d'une part un temps de convergence plus long, mais
aussi une hauteur des impulsions plus importantes que pour une stabilisation par un
correcteur proportionnel.
17
3.4
Améliorations

Suite à ces premières simulations, une amélioration est à apporter lorsque v d est

inférieure à v . Auparavant, on prenait toujours la valeur absolue de
3.4.1
Saturation de
v
Une première stratégie consiste à saturer
le sol, tant que v

v sans "réfléchir".

d
sera supérieur à v ,
v à 0. Ainsi aux premiers contacts avec
v sera égal à 0 et de ce fait aucune impulsion
ne sera générée.

1

simulation en réponse pile pour v d  2 m.s

simulation en stabilisation asymptotique pour v d  2 m.s
: voir annexe Figure 14

1
: voir annexe Figure 15
Le fait de saturer v à 0 fait entrer le système dans une phase transitoire où
celui-ci n’est pas commandé et donc laisser à lui même. Par contre la saturation améliore
le temps de réponse du système.
3.4.2
Changement de fenêtre
Une deuxième stratégie consiste à changer la fenêtre de génération des impulsions.
Si v  v 1 , l'impulsion sera générée dans la fenêtre

d


1
x  0, v  0.

simulation en réponse pile pour v d  2 m.s

simulation en stabilisation asymptotique P pour v d  2 m.s
: voir annexe Figure 16

1
: voir annexe Figure
17
A priori, la solution de changer de fenêtre semble être la meilleure. Le système est
alors commandé et non "livré" à lui même. Par contre, en envoyant une impulsion dans
la fenêtre de gauche x  0, v  0 , une fois le système stabilisé, les impulsions ont une


amplitude quatre fois supérieure à celle lors d'une saturation de v . Ceci peut bien
évidemment poser problème par la suite si l'amplitude de la commande est limitée.
Par la suite nous saturerons
v à 0.
18
4
Robustesse
4.1
Vis-à-vis des paramètres k et 
Nous cherchons ici à étudier la robustesse vis-à-vis des paramètres k et . Le
calcul de la hauteur des impulsions ximpulse est réalisé avec des paramètres différents de
ceux utilisés en simulation.
 représente l'amortissement du sol. Ainsi lorsque   0 , l'énergie perdue tend
elle aussi vers 0. De ce fait, si =0, il n'y a alors aucune perte d'énergie lors du contact
au sol. Ainsi les commandes à réponse pile et par correcteur proportionnel sont robustes

par rapport à , quelque soit la valeur de v d . Par contre, la commande par correcteur PI
n'est pas robuste lorsque v d  v 1 à cause du dépassement engendré.


v étant saturé
à 0 et le système ne perdant pas d'énergie, cette commande permet uniquement au
système de se stabiliser autour de la vitesse engendrée par le premier dépassement.
k représente la raideur du sol et donc permet de calibrer la profondeur maximale
atteinte par la masse. Pour un ximpulse calculé à partir de k=1000N.m-1, les trois
commandes sont robustes pour 500<k<10000N.m-1. Pour des valeurs de k trop petites,
la masse ne ressort pas du sol, chose non physiquement réalisable. Plus k est grand plus

la masse sortira rapidement du sol. Nous atteignons bien v d , mais par la suite la vitesse
de sortie correspondante peut donner une vitesse d'impact et donc une vitesse d'avant
impulsion
v  supérieure à v d . Le système ne pouvant pas "retourner" en arrière, il se
stabilise autour d'une vitesse plus grande que celle désirée. Il n'y aurait dans ce cas plus
de perte d'énergie mais un gain.
19
4.2
Etude de l'approximation des impulsions
Une impulsion peut se définir comme un signal d'amplitude infinie et de durée
infinitésimale. Un tel signal ne peut bien évidemment pas être reproduit idéalement en
pratique. Il convient alors de faire des approximations. Il s'agit dans ce cas d'étudier les
réactions du système aux différentes approximations de l'impulsion que nous pouvons
faire.
4.2.1
Rappel sur l'impulsion dirac
L'impulsion
 (t ) est définie tel que :
 pour t  0
 0 pour t  0
 (t )  
L'aire d'une impulsion est toujours égale à 1, soit
(43)
  (t ) dt  1 . Ainsi il est possible
d'approximer cette fonction de différentes manières :
4.2.2
But
Les amplitudes des impulsions que nous avons obtenus pour l'instant sont assez
conséquentes. Elles peuvent aller jusqu'à 10000N. En faisant varier le  , notamment en
l'augmentant, il nous sera alors possible d'obtenir différentes impulsions à l'amplitude
moins importante.
Pour ce faire, un module sous simulink permet de fixer le
simulation.
20

en fonction du pas de
4.2.3
Simulations
Les précédentes simulations ont toutes été réalisées avec un  de 0,001s. Pour
chaque type de correcteur nous procédons à des simulation pour un  de 0,005s et de

1
0,010s. Pour chaque simulation, nous fixons v d  6 m.s .
 Réponse pile

commande à réponse pile pour

commande à réponse pile pour

commande à réponse pile pour
  0.001s
  0.005s
  0.010s
: Figure 8
: Figure 18
: Figure 19
 Stabilisation asymptotique avec un correcteur P

stabilisation asymptotique avec un correcteur P pour

commande à stabilisation asymptotique P pour

commande à stabilisation asymptotique P pour
  0.001s
  0.005s
  0.010s
:Figure 10
: Figure 20
: Figure 21
 Stabilisation asymptotique avec un correcteur PI
4.2.4

stabilisation asymptotique avec un correcteur PI pour

12
commande à stabilisation asymptotique PI pour

commande à stabilisation asymptotique PI pour
  0.001s
  0.005s
  0.010s
:Figure
: Figure 22
: Figure 23
Conclusion
Conformément à ce que nous pensions, en augmentant trop
alors plus efficace. En effet nous n'atteignons pas v

d
 6 m.s
1
 , l'approximation n'est
pour   0.010s pour la
commande à réponse pile et la stabilisation asymptotique P (voir Figure 19 et Figure 21).

Par contre pour la stabilisation asymptotique PI, nous atteignons v d  6 m.s
  0.010s
1
pour
(voir Figure 23). Cette commande est donc plus robuste vis-à-vis de
l'approximation des impulsions.
Aussi, comme cela était prévisible, augmenter le  présente l'avantage de faire
considérablement diminuer la hauteur des impulsions. On se retrouve alors avec des
amplitudes maximum de 800N à la place d'amplitudes de l'ordre du 10000N pour les
deux premiers types de commande (Figure 18 et Figure 20). L’inconvénient du
dépassement engendré par le correcteur PI est limité grâce à sa robustesse qui permet
d’avoir un  plus important que les deux autres commandes. L’amplitude maximum peut
de ce fait se limiter à 1000N (Figure 23).
21
Application sur Rabbit
1
Avant propos
Soit les cinq degrés de liberté les cinq degrés de rotation :
q  q1
q42 
T
q31 q41 q32
La dynamique du robot marcheur Rabbit s’écrit en simple support comme :
H qq  Cq, q q  Gq  Du
(44)
où H(5x5) est la matrice d’inertie,
C(5x5) la matrice de Coriolis
G(1x5) les effets de la gravité
D(5x4) la matrice de commande
u  u1 u2
Si on considère la commande impulsionnelle
T
 (t ) seule, on peut alors écrire :
H qq  Cq, q q  Gq  B (t )
où
u3 u4  la commande
(45)
B  0  31  41  32
 42  avec ij constantes
T
En intégrant cette dynamique, il est alors possible de relier la vitesse juste après
l’impact
q  avec la vitesse juste avant l’impact q  :


H q  q   q   B
soit
q  q   q   H 1 q B
22
(46)
(47)
2
Problèmes d’adaptation posés
Nous allons ici énoncer différents problèmes auxquels il faut réfléchir avant même
d’essayer d’adapter la commande impulsionnelle sur Rabbit.
Lorsque le robot se déplace, nous pouvons distinguer deux cas de figure. Le robot
marche et il alterne alors une phase de double support avec une phase de simple
support. Sinon le robot court et il n’y alors qu’une phase de simple support. La masse en
chute libre sur un sol compliant étudiée précédemment représente un contact ponctuel
avec le sol. On peut alors en conclure que le robot en mode course est le système qui se
rapproche le plus de la masse en chute libre : le contact de la masse avec le sol est
« équivalent » au contact du pied sur le sol. Une idée serait alors d’intégrer la commande
impulsionnelle à une commande pour la course du robot existante.
Il s’agit aussi de considérer que le sol compliant peut poser un problème pour
adapter la commande impulsionnelle sur le robot. Cette commande ne s’applique que sur
un sol compliant. Or actuellement le sol sur lequel évolue Rabbit est rigide. De plus, le
fait de considérer le sol de Rabbit comme compliant restreint le champ d’action. Une des
solutions envisageable serait alors de ne pas s’occuper de la configuration du sol et
d’ajouter un ressort sur chaque pied de Rabbit ! Ces ressorts seraient alors actionnés. La
compliance se ferait au niveau des pieds (Figure 4b). Cette solution est actuellement à
l’étude.
Une donnée qui est encore floue à l’heure actuelle est de savoir quand et où
envoyer l’impulsion. Le robot a deux pieds, soit deux endroits où envoyer une impulsion.
Lors de la course, il est évident que l’impulsion se fera sur la jambe arrière. Par contre
lors de la marche, il n’est pas aussi évident d’y répondre : jambe avant ou arrière ? ou
sur les deux ? Outre les jambes, il y a aussi les articulations. Quatre articulations sont
commandables, soit 24 combinaisons pour envoyer les impulsions.
3
Questions primordiales
Ci-dessus nous avons évoqué la possibilité d’intégrer la commande impulsionnelle
sur une commande existante. Greffer une nouvelle commande sur une existante est une
chose, mais il est évidemment important de vérifier si cette greffe ne va pas modifier la
commande existante. Il est donc assez important de se poser plusieurs questions pour
rendre la commande impulsionnelle viable.
Une des questions primordiale qui se pose est est-ce que le fait d’envoyer une
impulsion modifie la dynamique zéro du robot marcheur. Si l’envoie d’une impulsion
modifie la dynamique zéro du système, le robot ne pourra alors plus être commandé
correctement et ainsi l’envoie d’une impulsion pour améliorer la marche du robot ne
fonctionnera pas du tout.
Afin de pouvoir répondre à cette interrogation, il s’agit d’étudier l’évolution du
moment d’inertie  d’une robot lors de l’envoie d’une impulsion. D’après [3],
  B  H q q
avec
B B  0
23
(48)
La variation
 du moment d’inertie peut alors s’écrire :
  B  H q q
(49)
D’après (47) et (49), on peut alors écrire :
  B  H q H 1 q B
   0
(50)
On peut donc conclure d’après (50) qu’envoyer une impulsion ne modifie pas la
dynamique zéro du robot marcheur. En effet lors de l’impulsion le moment d’inertie  ne
varie pas.
Autre point important qu’il ne faut pas oublier est à propos des forces de contact
du robot avec le sol. En effet les conditions de non glissement doivent être respectées.
Ainsi il s’agit de conserver la relation :
Ft  Fn
où Ft est la force tangentielle
Fn la force normale
 <1
L’envoi d’une impulsion ne devra donc pas modifier cette propriété.
Dans le même ordre idée, l’envoi d’une impulsion devra produire un couple dans
le sens de la marche. Il s’agira donc ici d’étudier comment les couples sont transmis
entre chaque articulation et quelle en est la résultante.
Lors de l’étude des impulsions, nous avons mis en avant un point essentiel :
l’amplitude des impulsions. L’idéal est une impulsion à amplitude infinie. Or aucun
système ne peut supporter des impulsions infinies. Rabbit a forcément un seuil de
tolérance dans ce domaine. Il faudra donc veiller à d’une part limiter, et donc
approximer, ces impulsions suivant la limite supportée par le robot, puis gérer ces
approximations afin de retrouver des résultats comme ceux obtenus sur la masse en
chute libre.
24
Conclusion
1
La masse en chute libre
Le travail effectué sur le système d'une masse en chute libre sur un sol compliant
répond en majorité aux différentes questions que nous nous posions.
Il a été démontré que grâce à une commande impulsionnelle, il est possible de
stabiliser et de rendre périodique l’orbite de cette masse. A travers les différentes
simulations réalisées, nous nous sommes aperçus qu’il était délicat de peser le pour et le
contre entre une commande à réponse pile et une commande à stabilisation
asymptotique proportionnelle. La seule différence pouvant se faire au niveau du temps
réponse. Les simulations n’ont malheureusement pas pu nous montrer une meilleure
robustesse théorique du correcteur P par rapport à la commande à réponse pile. Il a donc
été décidé d’étudier une commande à stabilisation asymptotique de type proportionnelintégrateur. Cette commande a pour inconvénients d’engendrer un dépassement ou des
oscillations amorties suivant les valeurs des paramètres du correcteur. Par contre, cette
commande présente l’avantage d’être plus robuste au niveau de l’approximation des
impulsions. Ceci est un avantage non négligeable compte tenu du fait que les impulsions
sont bien évidemment limitées en amplitude.
2
Application sur Rabbit
Suite au travail effectué sur le système de la masse en chute libre sur un sol
compliant, il s'agit maintenant d'appliquer les différentes lois de commande
impulsionnelle sur le robot marcheur Rabbit. Actuellement différentes lois de commande
permettant de faire marcher et courir Rabbit existent. Elles ne sont pour l'instant pas
optimales : les applications de Poincaré résultantes ne sont pas périodiques : le robot
marche ou court mais maladroitement. Le but de la commande impulsionnelle est alors
de rendre la marche ou la course plus fluide.
La situation pour laquelle Rabbit se rapproche le plus du système étudié ici est
lorsque le robot court. En effet, en course, le robot alterne deux phases : le vol (les deux
jambes sont en l'air) et l'appui sur le sol sur une jambe. Pour ce faire, il s'agira de
reprendre une loi de commande existante et d'y intégrer la commande impulsionnelle. A
priori l’ajout d’une impulsion ne modifie pas la dynamique du robot, ce qui rend
l’intégration sur une commande existante possible. Mais plusieurs problèmes sont à
prévoir et une étude approfondie est requise.
25
Liste des figures
Figure 1 : vue du système complet : Rabbit tourne autour d'une base reliée par une tige
27
Figure 2 : schéma de Rabbit à 7 degrés de liberté
27
Figure 3 : les 4 actionneurs de Rabbit
27
Figure 4 : Modélisation d'une masse en chute libre sur un sol compliant (a) et d'une
masse commandée sur un sol rigide (b)
27
Figure 5 : plan de phase d'une masse en chute libre sur un sol compliant
28
Figure 6 : Réprésentation de l'impulsion v
28
Figure 7 : simulation d’une chute commandée avec vi vo vo
*
Figure 8 : simulation en réponse pile pour v

d
Figure 9 : simulation en réponse pile pour v

d
 6 m.s
1
 2 m.s
1
29
29
29
 6 m.s
1
30
Figure 11 : simulation en stabilisation asymptotique P pour v d  2 m.s
1
30
Figure 10 : simulation en stabilisation asymptotique P pour v

d


1

d
1
Figure 12 : simulation en stabilisation asymptotique PI pour v d  6 m.s
ki = 0,4
30
Figure 13 : simulation en stabilisation asymptotique PI pour v
 6 m.s
ki = 0,1

1
Figure 14 : simulation en réponse pile pour v d  2 m.s
31


Figure 16 : simulation en réponse pile pour v d  2 m.s
Figure 17 : simulation en stabilisation asymptotique P pour v
Figure 19 : commande à réponse pile pour
1
32

d
 2 m.s
  0.005s
Figure 21 : commande à stabilisation asymptotique P pour   0.010s
Figure 22 : commande à stabilisation asymptotique PI pour   0.005s
Figure 23 : commande à stabilisation asymptotique PI pour   0.010s
Figure 20 : commande à stabilisation asymptotique P pour
26
31
1
  0.005s
  0.010s
avec kp = 0,4 et
31
Figure 15 : simulation en stabilisation asymptotique pour v d  2 m.s
Figure 18 : commande à réponse pile pour
avec kp = 0,4 et
1
32
32
33
33
33
34
34
Figure 1 : vue du système complet : Rabbit tourne autour d'une base reliée par une tige
Figure 3 : les 4 actionneurs de Rabbit
Figure 2 : schéma de Rabbit à 7 degrés de liberté
Figure 4 : Modélisation d'une masse en chute libre sur un sol compliant (a)
et d'une masse commandée sur un sol rigide (b)
27
Chute d'une masse sur un sol compliant avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.2
1
position x [m]
0.8
0.6
0.4
0.2
0
-0.2
-5
-4
-3
-2
-1
vitesse v [m/s]
0
1
2
3
Figure 5 : plan de phase d'une masse en chute libre sur un sol compliant
0.05
v i1  v
vi 2
0
orbite 1
orbite 2
*
i
v
-0.05
position x [m]
v o 2  v o*
vo1
x impulse
v
v
-0.1
xmin
-0.15
-0.2
-8
-6
-4
-2
vitesse v [m/s]
Figure 6 : Réprésentation de l'impulsion
28
0
v
2
4
Commande impulsionnelle avec vo2=-vi1 et deltaV=1.5734m/s
Chute d'une masse sur un sol compliant avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.2
10000
9000
1
8000
Commande u [N]
7000
0.6
0.4
6000
5000
4000
3000
0.2
2000
0
1000
0
-0.2
-5
-4
-3
-2
-1
0
1
vitesse v [m/s]
2
3
4
5
0
1
Figure 7 : simulation d’une chute commandée avec
2
Commande |u| [N]
1.6
1.4
1.2
position x [m]
2
3
4
5
6
Temps [s]
7
8
9
vi vo vo*
4
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.8
Réponse pile avec v+d=6.0m/s
x 10
1.5
1
0.5
1
0
0
1
2
3
4
0
1
2
3
4
5
6
7
8
9
10
5
6
Temps [s]
7
8
9
10
0.8
4
0.6
deltaV [m/s]
0.4
0.2
0
-0.2
-6
-4
-2
0
vitesse v [m/s]
2
4
3
2
1
0
6
Figure 8 : simulation en réponse pile pour
v d  6 m.s 1
Réponse pile avec v+d=2.0m/s
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
5000
Commande |u| [N]
1.2
1
0.8
4000
3000
2000
1000
0.6
0
0.4
1
deltaV [m/s]
position x [m]
position x [m]
0.8
0.2
0
-0.2
-5
-4
-3
-2
-1
0
vitesse v [m/s]
1
2
3
1
2
3
4
0
1
2
3
4
6
7
8
9
10
5
6
Temps [s]
7
8
9
10
0
-0.5
Figure 9 : simulation en réponse pile pour
29
5
0.5
-1
4
0
v d  2 m.s 1
10
Commande |u| [N]
1.6
1.4
1.2
x 10
2
1
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
3
deltaV [m/s]
1
position x [m]
Stabilisation asymptotique P avec v+d=6.0m/s et k p=0.4
4
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.8
0.8
0.6
2
1
0
Erreur v~ [m/s]
0.4
0.2
0
-0.2
-6
-4
-2
0
vitesse v [m/s]
2
4
6
6
4
2
0
Figure 10 : simulation en stabilisation asymptotique P pour
1
10000
5000
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
1
deltaV [m/s]
position x [m]
0.8
Stabilisation asymptotique P avec v+d=2.0m/s et k p=0.4
Commande |u| [N]
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.2
v d  6 m.s 1
0.6
0.4
0
-1
-2
Erreur v~ [m/s]
0.2
0
-0.2
-5
-4
-3
-2
-1
0
1
vitesse v [m/s]
2
3
4
5
2
1
0
Figure 11 : simulation en stabilisation asymptotique P pour
5
4
4 Stabilisation
Commande |u| [N]
Stabilisation asymptotique PI avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
6
6
x 10
v d  2 m.s 1
asymptotique PI avec v+d=6.0m/s k p=0.4 et k i=0.4
4
2
0
0
5
10
15
20
25
30
0
5
10
15
20
25
30
0
5
10
15
Temps [s]
20
25
30
deltaV [m/s]
3
2
5
0
1
Erreur v~ [m/s]
position x [m]
10
0
-1
-15
-10
-5
0
vitesse v [m/s]
5
10
15
6
4
2
0
-2
-4
Figure 12 : simulation en stabilisation asymptotique PI pour
30
v d  6 m.s 1
avec kp = 0,4 et ki = 0,4
4 Stabilisation
Commande |u| [N]
Stabilisation asymptotique PI avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
4.5
4
3.5
asymptotique PI avec v+d=6.0m/s k p=0.1 et k i=0.4
2
0
0
5
10
15
20
25
30
0
5
10
15
20
25
30
0
5
10
15
Temps [s]
20
25
30
10
deltaV [m/s]
2.5
2
1.5
5
0
Erreur v~ [m/s]
1
0.5
0
-0.5
-10
-8
-6
-4
-2
0
2
vitesse v [m/s]
4
6
8
10
6
4
2
0
-2
Figure 13 : simulation en stabilisation asymptotique PI pour
v d  6 m.s 1
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
Commande |u| [N]
5000
1
0.8
position x [m]
avec kp = 0,4 et ki = 0,1
Réponse pile avec v+d=2.0m/s
1.2
4000
3000
2000
1000
0.6
0
0.4
1
0
1
2
3
4
0
1
2
3
4
5
6
7
8
9
10
5
6
Temps [s]
7
8
9
10
0.8
deltaV [m/s]
0.2
0
0.6
0.4
0.2
-0.2
-5
-4
-3
-2
-1
0
vitesse v [m/s]
1
2
0
3
Figure 14 : simulation en réponse pile pour
1
0.8
v d  2 m.s 1
Stabilisation asymptotique P avec v+d=2.0m/s et k p=0.4
Commande |u| [N]
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.2
6000
4000
2000
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
deltaV [m/s]
1
0.6
0.4
0.5
0
0.2
Erreur v~ [m/s]
position x [m]
position x [m]
3
x 10
4
0
-0.2
-5
-4
-3
-2
-1
0
vitesse v [m/s]
1
2
3
2
1
0
Figure 15 : simulation en stabilisation asymptotique pour
31
v d  2 m.s 1
4
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
4
Commande |u| [N]
1.2
1
position x [m]
0.8
3
2
1
0
0.6
Réponse pile avec v+d=2.0m/s
x 10
0
1
2
3
4
0
1
2
3
4
5
6
7
8
9
10
5
6
Temps [s]
7
8
9
10
8
deltaV [m/s]
0.4
0.2
0
-0.2
-5
6
4
2
0
-4
-3
-2
-1
0
vitesse v [m/s]
1
2
3
Figure 16 : simulation en réponse pile pour
Stabilisation asymptotique P avec v+d=2.0m/s et k p=0.4
1
0.8
Commande |u| [N]
4
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.2
4
v d  2 m.s 1
x 10
2
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
deltaV [m/s]
0.6
0.4
4
2
0
Erreur v~ [m/s]
0.2
0
-0.2
-5
-4
-3
-2
-1
0
vitesse v [m/s]
1
2
3
2
1
0
Figure 17 : simulation en stabilisation asymptotique P pour
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
Commande |u| [N]
1500
1.5
1000
500
1
0
0
1000
2000
3000
4000
0
1
2
3
4
5000
6000
7000
8000
7
8
9000 10000
4
deltaV [m/s]
0.5
0
-0.5
-6
v d  2 m.s 1
Réponse pile avec v+d=6.0m/s et e=0.005s
2
position x [m]
position x [m]
6
-4
-2
0
vitesse v [m/s]
2
4
3
2
1
0
6
Figure 18 : commande à réponse pile pour
32
  0.005s
5
6
Temps [s]
9
10
Réponse pile avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
Réponse pile avec v+d=6.0m/s et e=0.010s
400
Commande |u| [N]
1.8
1.6
1.4
position x [m]
1.2
300
200
100
1
0
0
1000
2000
3000
4000
0
1
2
3
4
deltaV [m/s]
0.2
0
-0.2
-6
7000
8000
7
8
9000 10000
-4
-2
0
vitesse v [m/s]
2
4
3
2
1
0
6
Figure 19 : commande à réponse pile pour
1.5
10
  0.010s
500
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
3
deltaV [m/s]
0.5
2
1
Erreur v~ [m/s]
0
0
-4
-2
0
vitesse v [m/s]
2
4
6
4
2
0
6
Figure 20 : commande à stabilisation asymptotique P pour
1.6
1.4
1.2
  0.005s
Stabilisation asymptotique P avec v+d=6.0m/s e=0.010s et k p=0.4
Commande |u| [N]
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
1.8
400
200
0
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
7
8
9
10
0
1
2
3
4
5
6
Temps [s]
7
8
9
10
3
deltaV [m/s]
1
0.8
0.6
2
1
0
Erreur v~ [m/s]
0.4
0.2
0
-0.2
-6
9
1000
1
-0.5
-6
5
6
Temps [s]
Stabilisation asymptotique P avec v+d=6.0m/s e=0.005s et k p=0.4
Commande |u| [N]
Stabilisation asymptotique P avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
2
position x [m]
6000
4
0.6
0.4
position x [m]
5000
0.8
-4
-2
0
vitesse v [m/s]
2
4
6
6
4
2
Figure 21 : commande à stabilisation asymptotique P pour
33
  0.010s
Stabilisation asymptotique PI avec v+d=6.0m/s e=0.005s k p=0.4 et k i=0.4
Commande |u| [N]
Stabilisation asymptotique PI avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
6
5
2000
1000
0
0
5
10
15
20
25
30
0
5
10
15
20
25
30
0
5
10
15
Temps [s]
20
25
30
10
3
deltaV [m/s]
position x [m]
4
3000
2
5
0
-5
Erreur v~ [m/s]
1
0
-1
-15
-10
-5
0
vitesse v [m/s]
5
10
15
6
4
2
0
-2
-4
Figure 22 : commande à stabilisation asymptotique PI pour
Stabilisation asymptotique PI avec v+d=6.0m/s e=0.010s k p=0.4 et k i=0.4
Commande |u| [N]
Stabilisation asymptotique PI avec x(0)=1.00m v(0)=0.00m/s m=1.0kg k=1000 alpha=0.1
4
3.5
3
1000
500
0
2.5
0
5
10
15
20
25
30
0
5
10
15
20
25
30
0
5
10
15
Temps [s]
20
25
30
deltaV [m/s]
10
2
1.5
5
1
0
0.5
6
Erreur v~ [m/s]
position x [m]
  0.005s
0
-0.5
-10
-8
-6
-4
-2
0
2
vitesse v [m/s]
4
6
8
10
4
2
0
-2
Figure 23 : commande à stabilisation asymptotique PI pour
34
  0.010s
Bibliographie
[1] C. Canudas de Wit, L. Roussel et A. Goswani, Periodic Stabilization of a 1-DOF
Hopping Robot under nonlinear Compliant surface, 25 Mars 2003
[2] C. Chevallereau, G. Abba, Y. Aoustin, F. Plestan, E.R. Westervelt, C. Canudas de Wit,
et J.W. Grizzle, RABBIT: A Testbed for Advanced Control Theory, proposé à IEEE
Control Systems Magazine; Septembre 2002
[3] C.Chevallereau, Time-Scaling Control for an Underactuated Biped Robot, IEEE
Transactions on Robotics and Automation, vol 19, no 2, Avril 2003
[4] H.K. Khalil, Nonlinear System, Macmillan Publishing Company, New York, 2 e
édition, 1996
[5] John W. Perram, Anton Shiriaev, Carlos Canudas de Wit et Frédéric Grognard,
Explicit Formula for a general integral motion for a class of mechanical systems
subject to holonomic constraint
[6] L. Roussel, Génération de trajectoires de marche optimales pour un robot
bipède, Doctorat de l'INPG, 1998
[7] E.R. Westervelt, J.W. Grizzle et D.E. Koditschek, Hybrid Zero Dynamics of Planar
Biped Walkers. Reprint, IEEE-TAC, Vol. 48, No. 1, Janvier 2003, pages 42-56.
[8] E.R. Westervelt, J.W. Grizzle et C. Canudas de Wit, Switching and PI Control for
Planar Biped Walkers, Reprint, IEEE Transactions on Automatic Control, Vol. 48, No. 2,
Février 2003, pages 308-312
[9] A. Zavala-Rio, Commande de robots jongleurs, Doctorat de l'INPG, 1997
35
Téléchargement