Master 2 Recherche STPI-EEA
Spécialité : "Automatique et Robotique"
Rapport de stage
Préparé auLaboratoire d’Informatique de Robotique et de Microelectronics de Montpellier
LIRMM UMR (CNRS-UM2) N◦ 5506161, rue Ada
34095, Montpellier
Thème
Conception et développement d’un générateur de
trajectoires pour des allures de marche dynamique stable
en robotique humanoïde
Présenté par
Souhila BACHA
Encadré par
Ahmed CHEMORI
Soutenu le
08 Septembre 2010
Remerciements
Tout d’abord, je tiens à remercier Ahmed Chemori pour m’avoir encadré durant ces 5 mois de stage,
ainsi que pour tous les conseils qu’il a su me prodiguer, aussi bien dans le cadre de la recherche que
dans de plus vastes domaines. Sa rigueur scientifique et ses connaissances nombreuses dans le domaine
de la robotique m’ont beaucoup aidé et permis de mieux comprendre les robots humanoïdes.
Je tiens à remercier tous ceux qui ont participé de près ou de loin à l’élaboration du rapport de stage
et qui se reconnaîtront donc dans ces remerciements.
Table des matières
1 Introduction générale 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 La marche humaine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2.1 Description de la marche humaine . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 Les plans de la marche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.3 Décomposition d’un cycle de marche humaine . . . . . . . . . . . . . . . . . . . 3
1.3 La marche humanoïde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Les modes de marche humanoïde . . . . . . . . . . . . . . . . . . . . . . . . . . 4
La marche statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
La marche quasi-statique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
La marche dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2 Décomposition d’un cycle de marche humanoïde . . . . . . . . . . . . . . . . . 5
1.3.3 Description et principe de la marche humanoïde . . . . . . . . . . . . . . . . . . 5
1.4 Les indicateurs de stabilité de la marche . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.1 Le centre de masse (COM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4.2 Le centre de pression (COP et ZMP) . . . . . . . . . . . . . . . . . . . . . . . . 7
Centre de Pression CoP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Le Zero Moment Point (ZMP) : . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5 Exemples de réalisations marquantes a travers le monde . . . . . . . . . . . . . . . . . 9
1.6 Organisation du rapport . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2 État de l’art, contexte et problématique 12
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Solutions existantes en terme de génération de trajectoires . . . . . . . . . . . . . . . . 12
2.2.1 Méthodes basées sur des modèles simplifiés . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Méthodes issues de la biomécanique . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Méthodes basées sur les oscillateurs . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.4 Méthodes basées sur les B-Splines . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2.5 Autres méthodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
i
Table des matières
2.3 Contexte et Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3 Robot bipède SHERPA : Description et modélisation 20
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2 Description technologique du prototype . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.1 La structure mécanique articulée de SHERPA . . . . . . . . . . . . . . . . . . . . 21
3.2.2 Les actionneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2.3 Les capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.4 Le PC de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3 Modélisation géométrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Modèle géométrique directe (MGD) . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Modèle Géométrique Inverse (MGI) : . . . . . . . . . . . . . . . . . . . . . . . 24
3.4 Modélisation cinématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.4.1 Modélisation cinématique directe (MCD) . . . . . . . . . . . . . . . . . . . . . 25
3.4.2 Modélisation Cinématique Inverse (MCI) . . . . . . . . . . . . . . . . . . . . . . 25
3.5 Modélisation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4 Solution proposée en terme de génération de trajectoires 27
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.2 Généralités sur les B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.1 Les fonctions de base B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.2 Les courbes B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.3 Propriétés des fonctions B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2.4 Différents types de B-splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.5 Exemples illustratifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Méthode 1 : B-Spline avec points de contrôle . . . . . . . . . . . . . . . . . . . 30
Méthode 2 : B-Spline avec points de passage et conditions aux limites . . . . . 31
4.3 Générateur de trajectoires de marche dynamique à base de B-spline . . . . . . . . . . . 31
4.3.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.3.2 Solution 1 : Générateur à base de méthode 1 . . . . . . . . . . . . . . . . . . . 32
4.3.3 Solution 2 : Générateur à base de méthode 2 . . . . . . . . . . . . . . . . . . . 33
4.3.4 Choix des trajectoires des pieds . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.3.5 Calcul des trajectoires de positions articulaires . . . . . . . . . . . . . . . . . . 34
4.3.6 Calcul des trajectoires de vitesses et d’accélérations articulaires . . . . . . . . . 34
ii Souhila BACHA
Table des matières
4.3.7 Calcul des trajectoires du COM et du ZMP . . . . . . . . . . . . . . . . . . . . 35
Trajectoire du COM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Trajectoire du ZMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.4 Optimisation des trajectoires par rapport à la stabilité dynamique . . . . . . . . . . . 36
4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5 Résultat de simulation 38
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2 Le simulateur développé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.1 Description de l’interface graphique . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.2 Principales fonctionnalités du simulateur . . . . . . . . . . . . . . . . . . . . . . 39
5.2.3 Procédure typique d’utilisation du simulateur . . . . . . . . . . . . . . . . . . . 40
5.3 Résultats de simulation sans optimisation . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.1 Première solution : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5.3.2 deuxième solution : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.4 Analyse de la stabilité de la marche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.5 Résultat de simulation avec optimisation . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.5.1 Première solution : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.5.2 Deuxième solution : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6 Conclusions et perspectives 48
6.1 Conclusion générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Solution proposée en terme de génération de trajectoire iii
Chapitre 1
Introduction générale
1.1 Introduction
La marche humaine est un geste quotidien qui nous semble extrêmement simple du fait qu’on le
répète depuis notre enfance, pourtant c’est une activité complexe acquise chez l’enfant après un long
processus d’essai et d’erreur [5] [40].
La marche est la forme de mouvement humain la plus importante, elle est extrêmement difficile
à reproduire fidèlement, et a fait l’objet d’un grand nombre d’études approfondies notamment en
robotique, dont l’objectif était de faire marcher un robot bipède de la même façon que l’homme.
Dans le but de mieux comprendre la marche humaine nous allons introduire les notions de base
permettant de fixé les idées.
1.2 La marche humaine
On marche sans même y penser, et pourtant mettre un pas devant l’autre est un mécanisme très
complexe qui fait intervenir différentes parties du corps, à savoir le squelette, les muscles et le sys-
tème nerveux. Ces derniers constituent ce qu’on appelle l’appareil locomoteur. Le squelette sert de
charpente. la rencontre des os forme les articulations. Pour qu’il y ait mouvement, il faut avoir des
forces s’exerçant sur ces articulations, les forces sont obtenus à travers de la contraction musculaire.
Pour se faire, les muscles doivent recevoir des ordres du système nerveux (cf. figure 1.1).
[29] Différentes régions du cerveau interviennent dans le mécanisme de la marche :
– Le cervelet envoie en permanence des messages au lobe frontal pour lui donner des informa-
tions sur la position du corps, la direction à prendre, la force nécessaire à utiliser, et la présence
d’obstacles,etc.
– Le lobe frontal quand à lui planifie les mouvements et envoie un message au cortex moteur pour
choisir le groupe de muscles à contracter. Ensuite, il transmet les ordres de contractions par l’in-
termédiaire de la moelle épinière, qui à son tour, enverra des messages à travers les nerfs jusqu’aux
1
1.2. La marche humaine
muscles des fessiers, des jambes et des pieds.
Figure 1.1 – Composition du système nerveux humainFigure 1.2 – Plans principaux dans les quels les mouve-
ments prennent lieu
1.2.1 Description de la marche humaine
La marche humaine est un mode de déplacement durant lequel on a toujours au moins un pied en
contact avec le sol, on constate donc une alternance de phases de simple support (un seul pied au sol)
et de balancement (pour l’autre pied) et de double support (cas de deux pieds au sol) ceci constitue
ce qu’on appelle cycle de marche (cf. section 1.2.3)
La marche utilise une répétition de séquences des segments corporels pour déplacer le corps vers
l’avant tout en maintenant l’équilibre [25]. A un rythme libre, c’est une activité quasi-périodique avec
des phases droites et gauches.[3], [5] Le cycle de marche est normalisé de façon que le contact initial
du pied représente 0% (début du cycle) et que le contact suivant du même pied représente 100% (fin
du cycle). Ce procédé facilite énormément la comparaison de cycles entre les deux membres ou entre
des personnes différentes.
1.2.2 Les plans de la marche
Le mouvement de la marche est décomposé suivant trois plans de l’espace : sagittal, frontal et hori-
zontal (cf. figure 1.2). Le mouvement principal a lieu dans le plan sagittal, néomoins de nombreux
mouvements comme le déhanchement, le mouvement du bassin ou la position des pieds, apparaissent
dans les autres plans. Dans le plan sagittal interviennent :
– Une rotation du bassin autour de l’axe vertical avec un basculement du coté non porteur.
– Une flexion du genou pendant l’appui.
– Des mouvements bien coordonnés du pied et de la cheville.
2 Souhila BACHA
Chapitre 1. Introduction générale
Dans le plan frontal intervient le déplacement latéral du bassin.
A noter que ces mouvements jouent un rôle primordial dans la minimisation du débattement du centre
de gravité.
1.2.3 Décomposition d’un cycle de marche humaine
Pour pouvoir être analysée, la marche est découpée en termes d’événements clés et de phases princi-
pales qui se produisent pendant le cycle de marche et ceci dans le plan sagittal [4], [30] (cf. figure 1.3)
.
Phase d’appui :
1. La phase de mise en charge (0 à 10% du cycle de marche) : Elle débute lorsque le pied
droit entre en contact avec le sol (0 à 2% ) alors que le membre inférieur gauche touche
encore le sol et correspond donc au premier appui bipodal. Son rôle est de transférer le
poids vers la prochaine jambe d’appui, d’absorber les chocs et de conserver la vitesse de
marche tout en maintenant l’équilibre.
2. La phase du milieu d’appui (10 à 30% du cycle de marche) : C’est la première moitié de
l’appui unipodal. Elle permet au corps d’avancer au dessus du pied en appui et se termine
quand le centre de masse du corps est aligné avec l’avant pied (cf. 1.3).
3. La phase de fin d’appui (30 à 50% du cycle de marche) : C’est la deuxième moitié
de l’appui unipodal. Le centre de masse passe en avant de l’appui. Et elle se termine au
contact du pied opposé avec le sol.
4. La phase pré-oscillante (50 à 60% du cycle de marche) : Cette phase correspond au
deuxième appui bipodal. Son rôle est la propulsion du corps vers l’avant avec le transfert
de poids vers la prochaine jambe d’appui.
Phase oscillante :
5. La phase du début d’oscillation (60 à 73% du cycle de marche) : Elle correspond au
premier tiers de la phase oscillante. Elle se termine quand le pied passe à coté du pied
controlatéral. Le rôle de cette phase et des deux suivantes est de permettre l’avancée du
membre oscillant sans qu’il y ait de contact avec le sol.
6. La phase du milieu d’oscillation (73 à 86% du cycle de marche) : Elle correspond au
deuxième tiers de la phase oscillante. Elle se termine quand le tibia est vertical.
7. La phase de fin d’oscillation (86 à 100% du cycle de marche) : Elle correspond au
troisième tiers de la phase oscillante. Elle se termine lorsque le pied droit entre à nouveau
en contact avec le sol.
Solution proposée en terme de génération de trajectoire 3
1.3. La marche humanoïde
Figure 1.3 – Décomposition d’un cycle de marche humaine[3]
Figure 1.4 – Marche statique bi-pède, vue de dessus, (carré : COM )projeté sur le polygone de sustenta-tion [5]
Pied
Figure 1.5 – Marche quasi-statique, vue de dessus
Figure 1.6 – Illustration de lamarche dynamique, position des piedset projection de la trajectoire duCOM
1.3 La marche humanoïde
Un robot humanoïde est un robot de forme humaine, Se déplacer par mouvements et appuis successifs
des jambes et des pieds sans quitter le sol (Le Petit Robert), un pied reste en contact avec le sol à
tout moment de la marche.
1.3.1 Les modes de marche humanoïde
Dans le contexte de la marche robotique, on distingue trois types de marches qui sont étroitement liés
à la stabilité du corps du robot pendant le déplacement. Il s’agit de la marche statique, quasi-statique
et dynamique qui seront brièvement décrites.
La marche statique
La marche statique est caractérisée par le fait que le robot marcheur garde toujours son centre de
masse (COM) projeté verticalement à l’intérieur du polygone de sustentation, formé par les points de
contact avec le sol. Cela signifie qu’à n’importe quel instant, si les mouvements du robot sont arrêtés,
il reste indéfiniment en position stable, (cf. figure 1.4)
4 Souhila BACHA
Chapitre 1. Introduction générale
Tibia
Hanche
Tronc
Cuisse
SolCheville
Genou
Figure 1.7 – Structure simple d’un robotmarcheur bipède
Double support Impact simple support
Figure 1.8 – Séquence des phases dans la marche
La marche quasi-statique
Consiste à utiliser de grands pieds encadrant la zone centrale du robot. Pour ce faire pieds en forme
de U sont utilisés. Néanmoins un problème peut se poser lors des changements de direction. Ce type
de marche est illustré sur la figure 1.5
La marche dynamique
Elle correspond à la marche la plus ressemblante à celle de l’humain. La difficulté dans ce type de
marche réside essentiellement dans les phases de déséquilibre, la projection du centre de masse sur
le sol peut se retrouver localement en dehors du polygone de sustentation comme le montre la figure
1.6. De plus, des difficultés supplémentaire résident dans les allures de démarrage (cf. figure 1.6) et
arret qu’il faut gérer.
1.3.2 Décomposition d’un cycle de marche humanoïde
Les prototypes de robots bipèdes se multiplient, les instituent académiques sont eux davantage concer-
nés par le développement de techniques avancées pour le contrôle des mouvements de leurs machines
et interaction avec l’environnement d’où l’intérêt des chercheurs et industriels pour l’analyse et la
synthèse de la locomotion des robots bipèdes.
Un robot marcheur bipède peut être défini comme étant une chaîne cinématique qui comporte deux
sous-chaînes appelées jambes et une troisième appelée tronc. Les trois sous-chaînes sont interconnec-
tées entre elles par des articulations au niveau de la hanche. Les jambes peuvent être articulées en
plusieurs points comportant ainsi une cuisse, un tibia, une cheville et des orteils. La complexité de
ces systèmes dépend du nombre de degré de liberté.
Un schéma illustratif d’une structure simple d’un robot bipède, est montrée sur la figure 1.7.
1.3.3 Description et principe de la marche humanoïde
L’interaction d’un robot marcheur avec le sol définit les différentes phases de marche, elles peuvent
être classées comme suit :
Solution proposée en terme de génération de trajectoire 5
1.4. Les indicateurs de stabilité de la marche
– Phase de simple support : Elle correspond à une configuration ouverte de la chaîne cinématique
constitué par le squelette du robot durant laquelle le robot est en contact avec le sol à travers
une seule jambe. Un des pieds reste en appui sur le sol, alors que l’autre est en mouvement de
balancement de l’arrière vers l’avant sans toucher le sol.
1. La jambe en l’aire oscille en se pliant puis en s’étendant, le mouvement de la jambe libre est
proche du mouvement d’un pendule simple avec une liaison pivot au niveau de la hanche.
2. La jambe en appui a un mouvement proche de celui d’un pendule inversé avec une liaison
pivot sur la cheville d’appui.
– Phase double support : Les deux pieds du bipède sont simultanément en appui sur le sol, formant
ainsi une chaîne cinématique fermée. Durant cette phase le bipède fait avancer son centre de gravité
et prépare les conditions initiales de la prochaine phase de simple support.
– Phase d’impact : Elle caractérise le phénomène de choc entre le pied de balancement et le sol et
elle intervient à la fin de la phase de simple support.
Un cycle de marche consiste en un enchaînement de phases de simple support, d’impact, et de double
support (cf. figure 1.8).
Pour d’écrire la dynamique du mouvement, un modèle dynamique est nécessaire, il varie selon les
phases du cycle de marche. Le contact entre le pied et le sol est unilatéral car les efforts de réaction
empêchent la pénétration du (ou des) pied dans le sol mais pas son décollement, il est modélisé comme
étant un contact entre deux corps rigides.
1.4 Les indicateurs de stabilité de la marche
Il existe différents indicateurs de stabilité, dans ce chapitre on s’intéressera aux indicateurs les plus
utilisés, à savoir les ZMP (Zero Moment Point [13]), COP(Center Of Pressure [32]) et le COM (center
Of Mass [32]). Avant tout nous définirons ce qu’on appelle polygone de sustentation. Le polygone de
sustentation est l’enveloppe convexe reliant l’ensemble des points par la quel un corps repose sur un
plan horizontal. Chez l’humain le polygone de sustentation est défini comme le montre la figure 1.9).
1.4.1 Le centre de masse (COM)
C’est le point d’application de la résultante des forces de gravité, autrement dit c’est le point où la
masse totale du corps peut être appliquée et se déplace lorsque les parties du corps se déplacent. il est
déterminé par la somme pondérée des centres de masse des segments on utilisant la formule suivante :
OG =∑
MiOGi (1.1)
Le centre de masse n’est pas toujours a l’intérieur du polygone de sustentation, tout dépend des
mouvements du robot. Selon la figure 1.10 (b) la projection du centre de masse est a l’intérieur du
6 Souhila BACHA
Chapitre 1. Introduction générale
Figure 1.9 – Polygone de sustentation chezl’humain [3]
Figure 1.10 – Illustration du centre de masse (COM)
polygone de sustentation, alors que sur la figure 1.10 (a) la projection du COM est a l’extérieur du
polygone à cause d’un déplacement dynamique.
1.4.2 Le centre de pression (COP et ZMP)
Les concepts critères du ZMP et du CoP sont utilisés pour caractériser l’équilibre dynamique d’un
robot bipède.
Centre de Pression CoP
Le Centre de Pression est le point P du sol tel que les composantes du moment resultant Mp calculé
au point P , selon les axes x, y,MPx, MPy , soient nulles, voir la figure 1.8, [6],[13] [32],[39] le pied
qui est en contact avec sol est soumis a des forces élémentaires qui sont réparties, la force de contacte
peut être calculée selon la formule suivante :
F =∑
k
fk (1.2)
La force de contact élémentaire peut être séparée en trois composantes : une composante normale fkz
qui est la force de pression locale, créant un moment MOt = [Mox,Moy]T autour de l’axe x ou y et
deux composantes tangentielles fkx, fky constituent les forces de frottement locale, créant un moment
MOz autour de l’axe z, le moment résultant peut être calculé selon la formule suivante [6] :
MO =∑
k
OPkΛfk (1.3)
Avec OPk = [Pkx, Pky, Pkz]T est le vecteur de position du point d’application de la force élémentaire
fk. Les forces élémentaires sont appliquées sur le polygone délimité par :Lxmin ≤ OPkx ≤ Lxmax
Lymin ≤ OPky ≤ Lymax
(1.4)
Solution proposée en terme de génération de trajectoire 7
1.4. Les indicateurs de stabilité de la marche
Figure 1.11 – Forces de contact Figure 1.12 – COM, ZMP et polygone de sustentation [13].
les composantes du moment sont contraintes par la surface de contacte, par conséquent ces moments
vérifient les inégalité suivantes : LxminFz ≤MOx ≤ LxmaxFz
LyminFz ≤MOy ≤ LymaxFz
(1.5)
Le moment résultant Mp s’exprime en fonction de MO :
Mp = MO + POΛF (1.6)
PO est le vecteur de position du point P, l’equation (1.6) devient :
MP =
MPx
MPy
MPz
=
MOx
MOy
MOz
+
−PyFz
+PxFz
PxFy + PyFx
(1.7)
les composantes Mp selon x et y sont nulles :
MPx = MPy = 0 (1.8)
à partir de cette equation on détermine la position du centre de pression et on obtient :Px = MOy/Fz
Py = −MOx/Fz
(1.9)
Le Zero Moment Point (ZMP) :
Le ZMP est le point où le moment du à la force gravitationnelle et les forces d’inertie est égal à zéro.
– ZMP vs COM : Comme est montré sur la figure 1.12, dans le cas (a) l’homme est immobile
la projection du COM coïncide avec la position du ZMP. Dans le cas (b) l’humain se déplace de
manière dynamique, la projection du COM et à l’extérieure du polygone de sustentation par contre
le ZMP est toujours à l’intérieure du polygone de sustentation. Dans les deux cas la stabilité est
garantie
8 Souhila BACHA
Chapitre 1. Introduction générale
– Calcul du ZMP : Pour calculer le ZMP il est nécessaire de calculer les efforts exercés par le sol
sur le robot. Avant tout nous appliquerons les théorèmes généraux de la dynamique du robot, voir
figure 1.13, Les forces extérieures sont les forces de contact du torseur (F,M)O [6].
Figure 1.13 – Illustration des efforts sur un bipède 3D [6].
mγG = F −mg
δO = MO +mOGΛg(1.10)
– m : masse du robot
– g = [0, 0, y]T : vecteur d’accélération de la gravité
– δO : moment dynamique calculé en o.
– γG = [xg, yg, zg] : vecteur des accélérations linéaires du centre de gravité.
F = mγG +mg
δO = MP +OPΛF +mf(q)Λg(1.11)
– OP = [Px, Py, Pz]T : Vecteur de position du ZMP
– MP = [0, 0,MPz]T .f(q) = [xg, yg, zg] : vecteur de position du centre de gravité G dans le repère
(O,R) lié a la cheville
Les coordonnées de position du ZMP sont Alors donnée par :Px = −(δOy +mgxg)/m(g + zg)
Py = −(δOx +mgyg)/m(g + zg)(1.12)
1.5 Exemples de réalisations marquantes a travers le monde
Nous allons citer quelques réalisations du siècle, et faire une description brève sur chaque robot
humanoïde. La figure 1.14 montre trois example de robots français leurs descriptions est récapitulée
sur le tableau 1.1. Les nouveaux robots japonais savent parler, danser, faire de la cuisine, etc. Les
Solution proposée en terme de génération de trajectoire 9
1.6. Organisation du rapport
spécialistes pensent que les humanoïdes ferons bientôt partie de leurs vie quotidienne. La figure 1.15
montre quatre exemple de robots japonais dont les caractéristique sont récapitulées sur le tableau 1.2
Bip [3]Robian [23] Nao [8]
Figure 1.14 – Exemples de prototypes de robots bipèdes français
BIP NAO ROBIAN
Nombre ddL 15 25 16
Masse 105 kg 4.5 kg 29 kg
Taille 180 cm 57 cm 130 cm
Actionneur MCC sans balais Lithium-ion MCC
Groupe INRIA Aldebaran Robotics LISV
Reconnaissance aucune Vocal, Vision Aucune
Table 1.1 – Comparaisons entre trois spécifications de quelques robots humanoïdes Français
HRP2 HRP4 ASIMO SDR-4X
Nombre ddL 35 30 26 28
Masse 55 kg 43 kg 52 kg 6.5 kg
Taille 137 cm 158 cm 120 cm 58 cm
Actionneurs MCC MCC Servo-Moteur ISA-4
Groupe AIST AIST Honda Sony
Reconnaissance Vocale, vision Vocale, vision, tactile Vocale, vision Vocale, vision, tactile
Table 1.2 – Comparaisons entre quatre robots humanoïdes Japonais
1.6 Organisation du rapport
Le manuscrit est organisé comme suite :
10 Souhila BACHA
Chapitre 1. Introduction générale
QRIO sdr4 [19] HRP2 [15] HRP4 [1] ASIMO [31]
Figure 1.15 – Exemples de prototypes de robots humanoïdes japonais
– Chapitre 1 : Permet au lecteur de se familiariser avec la robotique humanoïde, et les principes de
base de la marche humaine et humanoïde.
– Chapitre 2 : Présente un état de l’art sur les approches de génération de trajectoires pour la
marche des robots bipèdes humanoïde.
– Chapitre 3 : Description du robot bipède SHERPA.
– Chapitre 4 : Présente notre solution proposée en terme de génération de trajectoires. Ce chapitre
d’écrit également le calcul du ZMP et des trajectoires articulaires.
– Chapitre 5 : Présente les résultats de simulations en terme de génération de trajectoire . Différent
scénarios y sont présentés pour montrer l’efficacité de l’approche proposé.
– Chapitre 6 : Nous conclurons ce manuscrit par une synthèse des différents contributions apportées
et par une présentation de nos perspectives et travaux futures.
1.7 Conclusion
Dans ce premier chapitre, nous avons introduit quelques notions qui sont liées à la marche humanoïde
comme le cycle de marche, les plans de la marche, description et principe de la marche humanoïde, les
indicateurs de stabilité de la marche (COM, ZMP) qui nous seront utiles pour la suite de ce rapport.
Solution proposée en terme de génération de trajectoire 11
Chapitre 2
État de l’art, contexte et problématique
2.1 Introduction
Le présent chapitre est articulé autour de deux volets principaux. Le premier sera consacré à une
étude bibliographique concernant les solutions existantes en terme de génération de trajectoires pour
la marche en robotique humanoïde. Une classification de ces méthodes en différentes classes s’est
avérés nécessaire afin de souligner le point commun entre les différentes méthodes d’une même classe.
Le deuxième volet du chapitre concerne la présentation du contexte et problématique de l’étude
réalisée dans le cadre de ce stage.
2.2 Solutions existantes en terme de génération de trajectoires
La plupart des approches de commande des robots bipèdes/humanoïdes proposées dans la litérature
se reposent sur l’utilisation de trajectoires de référence qu’il faut suivre en temps réel. Cela montre
clairement l’importance d’un générateur de trajectoires pour la marche humanoïde.
En effet, plusieurs types de générateurs de trajectoires on été proposés. Cependant, ceux qui assurent
une stabilité a priori de la marche sont souvent basés sur l’un des principaux critères de stabilisation
suivants :
– le COM (Center Of Mass),
– le ZMP (Zero Moment Point),
– le FRI (Foot Rotation Indicator).
Un tour d’horizon des approches proposées dans la littérature pour la génération de trajectoires de
marche en robotique humanoïde, nous a permis de faire une classification de ces solutions en :
– méthodes basées sur des modèles simplifiés,
– méthodes issues de la biomécanique,
– méthodes basées sur les oscillateurs,
– méthodes basées sur les B-Spline,
– autres méthodes.
12
Chapitre 2. État de l’art, contexte et problématique
Le schéma-bloc de la figure 2.1 illustre cette classification. Dans la suite les principales méthodes de
chaque classe seront décrites.
Modèles simplifiés Biomécanique AutresFonctions B-Splines
Les oscillateurs
[Huang et al. 1999]
Générateurs de trajectoires
LIPM [Kajita et al. 2001][Hong et al. 2009][Tang et al. 2007][Ferreira et al. 2009][Lee, 2007]
2MLIPM[Albert et al. 2002]
3MLIPM[Takenaka et al. 2009]
Biomécanique:[Bruneau et al. 1998]
Motion capture:[Harada, 2009][Kim et al. 2009][Takano et al. 2007]
Fonction Polynomial [Zaier et al. 2007]Réseau de neurones[Yang et al. 2007]
Van der pol[Katoh et al. 1984]
Sinusoïdaux[Zhao et al. 2008]
FFT[Yamaguchi et al. 2008]
Figure 2.1 – Classification des générateurs de trajectoires
2.2.1 Méthodes basées sur des modèles simplifiés
Unmodèle simplifié consiste à utiliser le modèle du pendule inversé 3D avec une masse [14][10][11][38][7][20],
deux masses dans [2], bien trois masses [37].
Figure 2.2 – Approximation du corp du robot par une seul masse ponctuelle
Kajita et al. proposent dans [14] d’analyser La dynamique d’un pendule inversé 3D contraint de
faire des mouvements dans un plan arbitraire. Le résultat de cette analyse a conduit au modèle de
pendule inversé linéaire 3D permettant d’approximer la dynamique d’un robot marcheur bipède. La
nature géométrique des trajectoires pour la marche ainsi que la méthode de génération sont discutées.
Solution proposée en terme de génération de trajectoire 13
2.2. Solutions existantes en terme de génération de trajectoires
Les résultats de simulation sur un modèle de robot bipède à 12 degrés de liberté sont présentés.
Hong et al. dans [10] proposent une méthode omni-directionnelle, Le module de mesure proposé
utilise à la fois le principe des caractéristiques de périodicités et la méthode des moindre carrés afin
de réduire la marge de fluctuation de la trajectoire du ZMP, la trajectoire désirée du ZMP est conçue
avec des polynômes quadratiques.
Dans[11], les auteurs proposent un générateur de trajectoires basé sur le modèle du pendule inversé
linéaire (sous forme d’équations d’état linéaires discrétisées). Ce modèle est utilisé dans une boucle
de commande qui comportent deux contrôleurs : un contrôleur feedforward pour la minimisation de
l’erreur de poursuite, et un contrôleur feedback par placement de pôles.
Tang et al. dans [38] proposent un générateur de trajectoires pour la marche humanoïde utilisant
un modèle de pendule inversé (Inverted Pendulum Model : IPM). Les contraintes du ZMP du robot
sont analysées au travers les mouvements du ZMP du pendule inversé, et le centre de gravité de ce
dernier est utilisé pour approximer celui du robot. La trajectoire du centre de gravité est générée par
les mouvements du pendule inversé, puis en se basant sur un modèle géométrique d’un robot bipède
à 12 degrés de liberté, les trajectoires articulaires sont obtenues.
Ferreira et al. proposent dans [7] un générateur de trajectoires du ZMP dans le plan sagittal utilisant
des mouvements humains. Le générateur proposé est basé sur un modèle du pendule inversé linéaire
(LIPM). D’après une analyse de données de la marche humaine, le ZMP évolue le long du pied,
allant du talent jusqu’aux orteils. Afin de reproduire le même mouvement sur le ZMP du robot, un
paramètre géométrique est utilisé pour caractériser l’évolution du ZMP. D’autre part, d’après l’analyse
de données biomécaniques, l’amplitude du ZMP dépend de la durée du pas, sa loi de variation a été
identifiée expérimentalement.
Albert et al. dans [2] proposent un algorithme de génération de trajectoires pour les robots bipèdes
sans tronc. La méthode proposée peut être considérée comme étant une extension du concept du
modèle de pendule inversé (IPM). Le générateur proposé utilise un modèle de pendule inversé linéaire
à deux masses (A 2 Mass Linear Inverted Pendulum Model : 2MLIPM). La méthode proposée montre
une meilleure stabilité de la marche comparée avec les méthodes de pendule inversé classique. Cette
amélioration de stabilité est vérifiée au travers la mesure des forces de contact avec le sol.
Lee et al. dans [20] proposent un générateur de trajectoire à base d’un modèle simplifié de pendule
inversé linéaire 3D (3D-LIPM) étendu. Afin de garantir la stabilité de la marche, l’idée de base consiste
à manipuler le ZMP au travers la modification de certains paramètres du générateur (longueur du
pas, période du pas). Le générateur proposé a été implémenté en simulation et expérimenté sur le
robot humanoïde HanSaRam-VII.
Takenaka et al. proposent dans [37] un modèle de pendule inversé à trois masses afin d’approximer
la dynamique d’un robot humanoïde. Le générateur de trajectoires proposé utilise aussi une condition
de limite relaxée appelée ’le composant divergent de mouvement’ (the divergent component of motion).
14 Souhila BACHA
Chapitre 2. État de l’art, contexte et problématique
Les techniques utilisées dans ce générateur permettent la génération en temps réel de trajectoires de
marche humanoïde avec de bonnes marges des limites du polygone de sustentation
2.2.2 Méthodes issues de la biomécanique
bruneau et al dans [4] partent d’un cycle de trajectoires articulaires enregistrées sur un homme pen-
dant la marche, pour générer une famille de trajectoires en déformant le cycle a partir des rotations
et translation. Ils obtiennent alors les coordonnées articulaires pour différentes vitesses de marche, et
différentes longueurs de pas ainsi que les translations nécessaires pour passer d’une allure à une autre
[30].
Harada et al. proposent dans [9] un générateur de trajectoires issu de la biomécanique. Les données
biomécaniques enregistrées (longueur du pas, trajectoire de la hanche, etc) sont ensuite analysées.
Ceci a montré que les débattements de la hanche d’un robot humanoïde dans le plan frontal sont
généralement supérieur à ceux d’un être humain. C’est ainsi qu’ils ont eu l’idée de modifier la trajec-
toire du ZMP dans le but de réduire ces débattements.
Takano et al. dans [36] proposent un générateur de trajectoires de la marche humanoïde à base
de capture de mouvements humains. Cet article introduit une méthode pour construire un modèle
de transformation stochastique symbole-mot utilisant les étiquettes de mots fournis par l’opérateur
durant les sessions de capture de mouvement. Le modèle convertit une séquence d’entrée de mots
en une séquence de symboles, ce qui permettra ensuite de rechercher la donnée correspondante à la
séquence d’entrée dans la base de données de capture, et de fournir aux utilisateurs une nouvelle
donnée de mouvement généré par les symboles.
Kim et al. dans [18] Proposent un générateur de trajectoire pour le corps complet dans le but d’ef-
fectuer une marche dynamique stable. La méthode proposée est basée sur une capture de mouvements
humains, ou les données obtenues sont utilisées avec un modèle simplifié de l’humain pour calculer
la trajectoire du ZMP, utilisée comme trajectoire de référence pour le ZMP du robot. A partir de la
trajectoire du ZMP, en utilisant un modèle du pendule inversé, la trajectoire du COM est calculée.
Afin d’obtenir les trajectoires articulaires du robot, son modèle géométrique inverse est utilisé.
2.2.3 Méthodes basées sur les oscillateurs
Dans cette section nous avons mis trois catégories de méthodes, la méthode de Ven Der Paul dans
[16], les sinusoïdaux dans [44] et la FFT dans [41].
Zhao et al. dans [44] proposent un générateur de trajectoires basée sur la stabilité de cycle limite
et inspiré de la marche dynamique passive (robots sans actionneurs se déplaçant sous l’effet de la
gravité sur un sol incliné). Les trajectoires générées son en 3D, à savoir dans le plan sagittal et dans
le plan frontal séparément. Le principe de base du générateur proposé repose sur le concept de pente
virtuelle, en réduisant la longueur de la jambe de balancement du robot compas équivalant.
Solution proposée en terme de génération de trajectoire 15
2.2. Solutions existantes en terme de génération de trajectoires
Katoh et al. présentent dans [16] un contrôleur pour réaliser une marche dynamique stable en utili-
sant un modèle dynamique à cycle limite stable. Le cycle de marche est décomposé en phase de simple
support et de double support et le robot bipède considéré est un prototype à 4 d.d.l. Le principe de
base du contrôleur proposé consiste à utiliser un générateur de trajectoires qui repose sur le concept
de bifurcation d’un ensemble d’oscillateurs de Van Der-Pol couplés. Ces derniers sont des systèmes
dynamiques disposant d’un cycle limite stable dans leur comportement.
Yamaguchi et al. dans [41] présentent le prototype d’un robot humanoïde à taille humaine qu’ils
ont développé, il s’agit de WABIAN-R, un robot à 35 d.d.l. Ils proposent aussi un contrôleur pour
l’asservissement du corps entier du robot utilisant une technique de coordination entre les mouve-
ments du tronc et ceux de la hanche. L’objectif d’un tel contrôleur est de commander le moment
total généré, non seulement par les mouvements des membres inférieurs, mais prenant en compte
également les mouvements des bras du robot. Les trajectoires de référence sont générées en utilisant
des transformations de fourrier rapides (Fast Fourrier Transform : FFT).
2.2.4 Méthodes basées sur les B-Splines
Huang et al. dans [12] proposent un générateur de trajectoires à base de fonction B-spline. Le
générateur proposé consiste à utiliser une fonction B-spline d’ordre 3 périodique pour la trajectoire
de la hanche, et une B-spline d’ordre 3 et interpolation pour la trajectoire du pied libre du robot. La
stabilité de la marche dynamique est prise en compte au travers le ZMP en ajustant itérativement les
paramètres des B-Splines.
2.2.5 Autres méthodes
D’autre méthodes ont été proposées dans [43] utilisant les fonctions polynômiales, et dans [42] utili-
sant les réseaux de neurones.
Zaier et al. dans [43] proposent un générateur de marche pour les robots humanoïdes basé sur les
fonctions polynômiales linéaires par morceaux est inspiré par la marche passive. Pour faire face à des
perturbations latérales et frontales, la rétroaction sensorielle est réalisée sur le modèle du pendule
inverse. Le système reflex s’adapte et contrôle les mouvements du robot humanoïde quand une per-
turbation importante se produit.
Yang et al. présentent dans [42] un réseau de neurones oscillateur pour la génération de trajectoires
périodiques, pour la locomotion bipède, capable de s’adapter au changements de pente dans l’incli-
naison du sol. Les trajectoires articulaires du robot sont prédéterminées dans le générateur comme
étant des fonctions périodiques de l’allure de marche. La phase de chaque fonction périodique est
coordonnée avec la sortie du réseau de neurone oscillateur qui inclut les signaux de mesures issues des
capteurs détectant le contact avec le sol dont l’inclinaison est inconnue. Afin de garantir la stabilité,
16 Souhila BACHA
Chapitre 2. État de l’art, contexte et problématique
le réseau de neurones joue un rôle primordial au travers la commande de la trajectoire du COM, en
phase avec celle du ZMP.
2.3 Contexte et Problématique
2.3.1 Contexte
Dans cette section l’objectif est de situé le contexte dans le quel se déroule le travail à réaliser dans le
cadre de ce stage, qui concerne la conception et développement d’un générateur de trajectoires pour
des allures de marche dynamique stable en robotique humanoïde. Pour notre étude nous avons utilisé
le robot humanoïde SHERPA, qui est un robot marcheur 3D destiné au transport de charges, conçue
et réalisé au sein du LIRMM. Nous nous intéresserons au mode marche dynamique afin de générer
des trajectoires de marche stable, dont la preuve est basée sur l’utilisation du concept du ZMP. Le
générateur de trajectoires qu’on propose est basée sur les fonction B-spline. Le contexte de notre
étude est récapitulé sur la figure illustratif 2.3.1
2.3.2 Problématique
Pour cette études, l’objectif principal est de réaliser la marche dynamique stable du robot marcheur
SHERPA. Il nous faut pour cela concevoir un générateur de trajectoires pour la marche humanoïde.
Pour résoudre cette problématique on est confronté à plusieurs difficultés de différentes natures :
– la non-linéarité du modèle,
– les contrainte à gérer (contacte avec le sol),
– la structure variable du modèle due aux différentes phases du cycle de la marche,
– le sous actionnement dû au nombre de degrés de liberté élevé part rapport aux nombre d’actionneur,
– la stabilité qui doit être assurer pendant la marche.
La marche d’un robot humanoïde est donc quelque chose de complexe a mettre en place. De nom-
breuses stratégies ont étés mise en place pour permettre cette marche. Certaines stratégies utilisent
une commande évoluée où intelligent comme cŠest le cas avec les réseaux de neurones ou les algo-
rithmes génétiques, mais la plupart des techniques classique utilisent des trajectoires de référence que
le robot suit pour marcher. Cette approche nécessite de créer des trajectoires articulaires qui génère
une marche stable, mais la question qui peut se posé est comment obtenir ces trajectoires ? Créer des
trajectoires qui garantissent une stabilité a priori est le but de cette étude. Pour cela, les indicateurs
de stabilité tels que le ZMP, qui permettent de valider les trajectoires générés sont utilisés, ainsi qu’un
générateur de trajectoire pour obtenir des trajectoires articulaires.
Solution proposée en terme de génération de trajectoire 17
2.4. Conclusion
2.4 Conclusion
Comme nous l’avons vu tout au long de ce chapitre plusieurs approches on été proposées pour la
génération de trajectoires pour la marche dynamique des robots humanoïdes, la génération de tra-
jectoires n’est pas une tache facile a réaliser. Ces approches constituent le travail de plusieurs années
d’études et de nos jours on dispose d’un choix considérable de méthodes pour la génération de la
marche dynamique. Cependant les meilleurs de ces approches sont celle qui garantissent la stabilité
du robot, et celles qui sont plus robustes par rapport aux perturbations et aux incertitudes.
La génération de trajectoire que nous avons proposé est à base de B-Spline, cette méthode est moins
utilisé que la méthode du pendul inversé, d’ou l’intérêt d’explorer de nouvelles pistes dans le domaines
de générateurs de trajectoires.
18 Souhila BACHA
Chapitre 2. État de l’art, contexte et problématique
Ro
bo
ts march
eu
rs bip
èd
es
Qu
el typ
e d
e ro
bo
tB
ipè
de
?
Qu
el typ
e d
e m
arche
?
March
e d
ynam
iqu
e
Ro
bo
ts march
eu
rs 2D
Ro
bo
ts passifs
March
e statiq
ue
ZMP
CO
MFR
I
Mo
dè
les
simp
lifiés
Trajecto
ires issu
es
de
la bio
mé
caniq
ue
Fon
ction
s p
olyn
ôm
iales
Fon
ction
s B
-Splin
es
Qu
el typ
e d
’ind
icateu
r d
e stab
ilité ?
Qu
el typ
e d
e gé
né
rateu
r d
e traje
ctoire
?
Pe
nd
ule
s inve
rsés
(LIPM
,2M
LIPM
,3M
LIPM
)M
od
èle
com
pas
Ro
bo
ts march
eu
rs 3D
CO
M
Co
ntexte
de
l’étud
e
Ro
bo
ts actifs
Mo
de
s de
march
e ro
bo
tiqu
e
Ind
icateu
rs de
stabilité
sGé
né
rateu
rs de
trajecto
ire
Fig
ure2.3
–Positionnem
entdu
contextede
l’étude
Solution proposée en terme de génération de trajectoire 19
Chapitre 3
Robot bipède SHERPA : Description et
modélisation
3.1 Introduction
La robotique humanoïde est un domaine de recherche en plein effervescence, il attire de plus en
plus des chercheurs à travers le monde, pour résoudre des problématiques diverses et variées telle
que la conception mécatronique, la modélisation, le choix et le développement des actionneurs, la
commande, la vision, etc. Pendant les deux dernières décennies, de nombreux prototypes de robots
marcheurs bipèdes/humanoïdes ont été réalisés à travers le monde et plus particulièrement au Japon.
Le projet national ANR-Blanc SHERPA s’inscrit dans ce contexte, où l’objectif principal concerne le
développement d’un robot marcheur destiné au transport de charges.
Dans ce cadre, le robot SHERPA a été conçu et réalisé au LIRMM, en collaboration avec l’Institut
d’Electronique du Sud (Montpellier) et l’Institut du Science du Mouvement (Marseille). C’est un
robot bipède, à 18 degrés de liberté, composé de deux jambes et d’un tronc à échelle humaine. Il
dispose de 12 articulations équipées d’actionneurs utilisant un nouveau concept appelé transparence
(faible inertie, faible frottement et réversibilité) lui permettant de réaliser des allures de marche plus
performantes.
Ce chapitre sera consacré à la description et modélisation du robot marcheur bipède SHERPA. La
présentation du robot inclut une description technologique, la structure mécanique articulée, les ac-
tionneurs, les capteurs, et les différents modèles mathématiques du robot. Ces outils présentés seront
utilisés, tout au long de notre étude, pour valider nos développements en terme de génération de
trajectoire pour des allures de marche dynamique.
3.2 Description technologique du prototype
SHERPA est un robot marcheur bipède possédant une hanche et deux jambes, chaque jambe se compose
de trois segments cuisse, tibia et cheville reliées entre elles par des articulations au niveau de la hanche,
20
Chapitre 3. Robot bipède SHERPA : Description et modélisation
PC de commande
Hanche
Cuisse
Genou
Tibia
Cheville
Capteur d’effort
Pied
Pied Carte d’entrée/sortie
Figure 3.1 – Le prototype du robot marcheur SHERPA (à gauche), vue du pied du robot (en haut à droite), vue des
cartes d’interface (en bas à droite)
du genou et de la cheville. Afin de piloter toutes les articulations du robot, le système est équipé d’un
PC de commande qui est relié avec les cartes entrées/sorties (cf. figure3.1(en bas à droite)). Plusieurs
conceptions mécaniques ont été mise en oeuvre :
1. Mécanisme différentiel utilisant un profil droit.
2. Mécanisme différentiel en utilisant un profil en "U".
3. Mécanisme parallèle utilisant des tiges et des articulations sphériques.
En se basant sur la modularité, et la simplicité, la robustesse des caractéristiques de poids, les concep-
teurs du robot SHERPA ont mit en place un modèle d’assemblage final de conception assistée par or-
dinateur (CAO), à titre d’exemple la figure 3.2 donne un apperçu d’un module d’actionnement avec
deux schéma de CAO et un proto du module final assemblé. Cette figure montre l’axe de rotation
principal, et l’axe de rotation secondaire constituant le mécanisme articulaire a 2 ddl représenté sur
la figure 3.2 (en haut à gauche).
3.2.1 La structure mécanique articulée de SHERPA
Le robot SHERPA (cf. figure 3.1) mesure 112 cm pour 47.1 kg, il est constitué de 12 articulations estimées
suffisantes pour reproduire la marche humaine de base, ces articulations peuvent être regroupées
comme le montre le tableau 3.1, c’est ainsi que sa structure mécanique articulée comporte 18 degrés
de liberté (cf. figure 3.3 et le tableau3.1).
3.2.2 Les actionneurs
Les concepteurs du robot SHERPA ont évité les multiples inconvénients du marché des actionneurs
[24], ils ont conçu des actionneurs a poids léger et a usage spécial. Pour actionner ces articulations,
Solution proposée en terme de génération de trajectoire 21
3.2. Description technologique du prototype
Moteur actionneur
Mécanismearticulaireà 2 d.d.l
Axe de rotationprincipale
Axe de rotationsecondaire 2 actionneurs
Vis sans fin
Câble
Figure 3.2 – Modèle d’assemblage final du CAO (en bas), Modèle
du mécanisme articulaire à 2 d.d.l(en haut à gauche), Section sur le
l’actionneur (en haut à droite) [22]
Hanche
Genou
Cheville
Position
Orientation
SolPied
Figure 3.3 – Schéma de la structure méca-
nique articulée du robot SHERPA
Articulation Nombre de degré de liberté
Hanche 3 d.d.l (articulations rotoïdes)
Genou 1 d.d.l (articulation rotoïde)
Cheville 2 d.d.l (articulations rotoïdes)
Position et orientation 6 d.d.l (3 transalations et 3 rotations)
Table 3.1 – Définitions des articulations du robot SHERPA
SHERPA dispose de modules identiques constitués de deux actionneurs chacun agissant en parallèle
sur des joints complexes à 2 d.d.l. La transmission mécanique de ces modules est telle que lorsque les
deux actionneurs agissent de concert sur l’articulation, ils provoquent le mouvement du 1er ddl, et
que lorsqu’ils agissent dans des directions opposées ils sollicitent le 2ème ddl. Une telle transmission
permet de superposer les efforts moteurs permettant ainsi d’obtenir de forts couples sur chaque
articulation. Ces modules sont équipés de moteurs électriques développés spécifiquement pour cette
application en collaboration avec l’IES à Montpellier. La transmission du mouvement, inspirée des bras
maîtres du CEA LIST, repose sur l’utilisation de vis à billes réversibles à grands pas et de câbles(cf.
figure 3.2). Cette technologie confère au robot des caractéristiques d’actionnement remarquables :
absence de jeux, faible frottement, réversibilité de la chaine de transmission, faible inertie ressentie.
Ces caractéristiques, qui se rapprochent de celles de l’humain, sont sensées procurer au robot une
marche plus efficace. Ceci notamment parce que ce mode d’actionnement :
– autorise un asservissement en couple des articulations
– permet d’exploiter la dynamique libre des jambes lors des phases balistiques de la marche
– permet de mieux absorber les chocs dus aux impacts pied/sol.
22 Souhila BACHA
Chapitre 3. Robot bipède SHERPA : Description et modélisation
3.2.3 Les capteurs
La commande du robot nécessite la connaissance de l’état du système à chaque instant d’échantillon-
nage au travers l’acquisition des mesures issues des capteurs. Dans le cas des robots bipèdes/humanoïdes,
en plus des mesures articulaires, il sera nécessaire de mesurer les forces d’interaction du robot avec son
environnement, ce qui permettra d’évaluer la stabilité de la marche. Notre robot marcheur SHERPA
est équipé de 12 codeurs absolus (de type HENGSTLER AD36 à technologie optique, voir figure
3.4) permettant de mesurer en temps réel les variables articulaires. En effet, le placement de chaque
codeur absolu, permet de mesurer l’angle absolu entre les segments de chaque jambe. Afin d’évaluer
les forces de contact avec le sol, SHERPA est équipé de deux capteurs développés spécifiquement
pour des applications de robotique humanoïde (de type ATI - Mini 85, voir figure 3.4). Ces capteurs
compacts sont intégrés au niveau des pieds du robot permettant ainsi des mesures à six axes (3 forces
et 3 couples).
Figure 3.4 – Le capteur d’effort ATI - Mini 85 (à gauche), le codeur absolu AD 36 d’Hengstler (à droite)
3.2.4 Le PC de commande
Le PC de commande (appelé aussi calculateur) est le cIJur du système de contrôle du robot, il
permet l’exécution en temps réel des algorithmes de commande dédié au pilotage du robot. Ce PC
est équipé d’un noyau temps réel appelé RTX (Real-Time eXtension for control of Windows) de chez
Ardence. A chaque instant d’échantillonnage, le PC de commande interroge les cartes d’interface
afin de mesurer l’état du robot provenant des différents capteurs. Il calcul ainsi la loi de commande
(couples des actionneurs) en se basant sur les mesures et les trajectoires de référence à suivre selon
la tâche programmée (équilibre postural, marche statique ou dynamique, etc). Une fois calculés, ces
signaux de commande seront envoyés aux cartes d’entrées/sorties, puis aux variateurs des moteurs
actionneurs pour commander les mouvements des articulations du robot.
3.3 Modélisation géométrique
La structure des robots humanoïde est décomposée selon le nombre de segments reliés entre eux par
le biais des articulations, la modélisation géométrique consiste à définir les coordonnées locales qui
permettrent de repérer les positions et orientations de chaque corps. Il exisiste deux types de modèles :
Solution proposée en terme de génération de trajectoire 23
3.4. Modélisation cinématique
le modèle géométrique directe (exprimant les coordonnées cartésiennes en fonction des coordonnées
articulaires), et le modèle géométrique inverse (exprimant les coordonnées articulaires en fonction des
coordonnées cartésiennes).
3.3.1 Modèle géométrique directe (MGD)
Ce modèle sert à calculer la position et l’orientation de segments en fonction des coordonnées articu-
laires articulations (expressions des points dans l’espace opérationnel en fonction des variables dans
l’espace articulaire).Le calcul du modèle géométrique est souvent basé sur le formalisme de Denavit-
Hartenberg (pour plus de détails, cf. [13],[35], [34],[17]).De part la nature, la structure arborescente
des robots bipèdes nous offre plusieurs points d’intérêt dont il faut calculer les coordonnées carté-
siennes. dans le cas de notre robotSHERPA nous avons décidé de prendre le point situé au milieu du
bassin puis remonter à l’extrémiter de chaque jambe, le modèle géométrique directe obtenu s’écrit :
X = f(q) (3.1)
q ∈ R18×1 est le vecteur des coordonnées articulaires. X ∈ R18×1 est le vecteur de positions carté-
siennes des points d’intérêt opérationnel de la structure du robot SHARPA (hanche, pied libre et pied
de support, etc).
3.3.2 Modèle Géométrique Inverse (MGI) :
Le modèle géométrique inverse, comme son nom l’indique, est l’inverse du modèle géométrique directe.
Il sert à calculer les positions articulaires en fonction de la position et orientation des corps dans
l’espace opérationnel, le modèle obtenue s’écrit :
q = f−1(X) (3.2)
Dans le cas du robot SHARPA, le modèle géométrique inverse. Il permettra le calcul des trajectoires
articulaire à partir des trajectoires de la hanche et des pieds du robot. le calcule du MGI peut être
effectué soit par approche analytique, ou bien par approche numérique. Dans le cas de notre robot
SHERPA, nous avons adapté un algorithme de résolution numérique qui sera décrit dans la section 4.3.5
3.4 Modélisation cinématique
La modélisation cinématique consiste à calculer les vitesses cartésiennes en fonction des vitesses
articulaires(cas du modèle cinématique directe), ou bien les vitesses articulaires en fonction des vitesses
cartésiennes(cas du modèle cinématique inverse [35], [34],[17])
24 Souhila BACHA
Chapitre 3. Robot bipède SHERPA : Description et modélisation
3.4.1 Modélisation cinématique directe (MCD)
Le modèle cinématique direct d’un robot manipulateur décrit les vitesses opérationnelles en fonction
des vitesses articulaires. Il est obtenue en dérivant le modèle géométrique directe (3.1) :
X =∂f(q)∂q
q (3.3)
où X est le vecteur des vitesses opérationnelles, et q est le vecteur des vitesses
où J(q) = ∂f(q)∂q désigne la matrice jacobienne de dimension R18×18, dans le cas de SHERPA.
3.4.2 Modélisation Cinématique Inverse (MCI)
Il permet le calcul des vitesses articulaires en fonction des vitesses opérationnelles, il est obtenu en
inversant le modèle cinématique directe [35], [34], et s’écrit :
q = J(q)+X (3.4)
où J(q)+ ∈ R18×18 désigne la matrice pseudo-inverse de la matrice jacobienne. Le calcul du MCI peut
se faire de deux façons soit analytique ou bien numérique :
– L’avantage de la solution analytique est de diminuer considérablement le temps de calcul au travers
le nombre d’opérations réduit. Cependant, les singularités doivent etre traitées séparément [17].
– La méthode numérique, quant à elle, est la plus utilisée, elle repose sur des algorithmes numérique
permettant de calculer itérativement les vitesses articulaires. ces algorithmes traitent de façon
unifiée les cas réguliers, redondants, et singularités. L’incovénient de tell méthode est le temps de
calcul, relativement élevé dû aux nombre d’intéractions [35], [34],[17].
3.5 Modélisation dynamique
La modélisation dynamique d’un système mécanique/robotique consiste à trouver la relation reliant les
positions, les vitesses , les accélérations, et les forces externes. Afin de résoudre une telle problématique
il existe deux formalismes : Newton-Euler et Lagrange [35], [34],[17]. Dans notre cas, le formalisme
de lagrange a été utilisé pour calculer le modèle dynamique de SHERPA à 18 ddl. Le vecteur de
coordonnéesgénéralisées q ∈ R18, inclut 12 coordonnées articulaires et 6 coordonnées cartésiennes la
position et l’orientation du robot.
M(q)q + C(q, q)q +G(q) = Su (3.5)
où
q, q, q ∈ R18 sont les vecteurs de positions, vitesses et accélérations articulaires,
M(q) ∈ R18×18 est la matrice d’inertie,
C(q, q) ∈ R18×18 est la matrice des forces de coriolis et centrifuge,
Solution proposée en terme de génération de trajectoire 25
3.6. Conclusion
G(q) ∈ R18 est le vecteur de gravité,
u ∈ R12 est le vecteur des entrées de commande (couples des actionneurs).
S ∈ R18×12 est la matrice de distribution des commandes sur les articulations.
Si le robot est en contact avec le sol pendant la phase de simple ou de double support, l’équation
dynamique devient :
M(q)q + C(q, q)q +G(q) = Su+ J(q)Tλ (3.6)
où λ représente le vecteur des multiplicateurs de Lagrange associés aux forces de contact avec le sol,
J(q) est la matrice jaccobienne des contraintes de contact avec le sol.
3.6 Conclusion
lors de ces deux dernière décenies, la robotique humanoïd a connu un grand essor avec le developpe-
ment de nouveaux prototypes trés aboutis à travers le monde est en particuliers au Japon. Le robot
SHERPA fait partie de ces prototypes de robot marcheurs dédiè a reproduire la marche humaine. Sa
spécificité réside dans le type d’actionnement utilisé et sa capacité de transporter des objets.
Ce chapitre a fait l’objet d’une présentation détaillée du robot SHERPA décrivant ainsi sa porté techno-
logique (structure mécanique articulaire, actionneurs, capteur, PC de commande,. . . etc). Le second
volet de ce chapitre a été consacré a la modélisation du robot SHERPA (génération, cinématique, et
dynamique).
26 Souhila BACHA
Chapitre 4
Solution proposée en terme de génération
de trajectoires
4.1 Introduction
Dans la plupart des filières de la robotique (mobile, de manipulation, spatiale, humanoïde, etc) la
génération de trajectoires est d’une grande importance. Les trajectoires générées sont poursuivies à
l’aide d’approches de commande proposées pour assurer le pilotage en temps réel du robot [12] [21].
En robotique humanoïde [14], la plupart des approches de commande qui ont été proposées dans la
littérature reposent sur l’utilisation de trajectoires de référence, qu’il faut suivre en temps réel. Cela
montre clairement l’importance d’un générateur de trajectoires pour la marche humanoïde. C’est
ainsi que plusieurs chercheurs à travers le monde se sont intéressés à la génération de trajectoires
en robotique humanoïde. Un état de l’art détaillé sur les générateurs de trajectoires en robotique
humanoïde a fait l’objet du chapitre 2 de ce rapport. Les générateurs de trajectoires à base de B-
Spline en font partie.
Les B-Spline sont des courbes polynomiales possédant différentes caractéristiques très intéressantes
permettant de spécifier naturellement les conditions aux limites et la forme de la courbe obtenue. Les
courbes B-spline ont été inventées par Schoenberg [33] au milieu des années 40, qui les a définies de
façon analytique par morceaux avec des conditions de régularité. Depuis leur apparition, les B-splines
ont été largement utilisées et notamment en cartographie, en robotique, en automatique, en analyse
numérique, etc [28], [26], [27].
Ce chapitre est articulé autour de deux volets, à savoir la présentation du principe de base des fonctions
B-spline, et l’intégration de ces dernières dans un générateur de trajectoires pour des allures de marche
dynamique stable en robotique humanoïde. Le générateur de trajectoires proposé utilisera les modèles
géométriques du robot pour calculer les trajectoires articulaires, et des dérivées numériques pour en
déduire les trajectoires des vitesses et accélérations articulaires.
27
4.2. Généralités sur les B-splines
4.2 Généralités sur les B-splines
Une fonction B-spline est une combinaison linéaire de splines positives, elle désigne une courbe conti-
nue polynomiale par morceaux. Autrement dit, elle peut être définie comme étant une suite d’arcs
polynomiaux du même degré connectés entre eux avec des contraintes de continuité entre les arcs. Une
B-spline est définie par rapport à un ensemble de nœuds, qui est un vecteur de temps caractérisant la
courbe. Si le vecteur de nœuds est uniforme la B-spline est dite uniforme, sinon elle est non uniforme
[26].
4.2.1 Les fonctions de base B-splines
Soit m + 1 nœuds ti ∈ [0, 1] avec t0 < t1 < ... < tm. Une courbe spline de degré n est une courbe
paramétrée ,S : [0, 1]→ R2, composée de fonctions B-spline de base de degré n. Ces m+ 1 fonctions
sont définies par des équations de récurrence[26].
La i ème fonction B-spline de base Nik(t) d’ordre k est donnée par :
k = 1→ Ni1 =
{1 si ti ≤ t ≤ ti+1
0 sinon.(4.1)
k > 1→ Nik(t) =t− ti
ti+k−1 − tiNi,k−1(t) +
ti+k − tti+k − ti+1
Ni+1,k−1(t) (4.2)
4.2.2 Les courbes B-splines
Soit le vecteur de nœuds (t0, . . . , tm) et des points d0, . . . , dm dans Rn, appelés points de contrôle et
qui forment ce qu’on appelle le polygone de contrôle. La courbe B-Spline de degré k − 1 associée est
donnée par :
S(t) =m−1∑i=0
diNi,k(t), t ∈ [0, 1] (4.3)
4.2.3 Propriétés des fonctions B-splines
1. La fonction Nik(t) est sur chaque intervalle [ti, ti+1[ un polynôme de degré inférieur ou égal à k.
2. La fonction Nik(t) s’annule en dehors de l’intervalle [ti, ti+k+1[.
3. La fonction Nik(t) s’annule aussi en ti sauf si ti = . . . = ti+k < ti+k+1, auquel cas Ni,k(ti) = 1.
4. La forme des fonctions de base est déterminée par la position des nœuds. C’est ainsi que lorsque
on modifie un nœud la fonction B-spline résultante se déforme continûment.
5. La courbe est à l’intérieur de l’enveloppe convexe formée par les points de contrôle.
6. Le déplacement d’un point de contrôle modifie localement l’allure de la courbe.
7. Nik(t) > 0 pour ti ≤ t ≤ ti+k
8.∑n
i=0Nik(t) = 1, ∀ t ∈ [tk−1, tn+1]
28 Souhila BACHA
Chapitre 4. Solution proposée en terme de génération de trajectoires
L’ordre k joue un rôle primordial dans la définition de la forme des courbes B-splines. En effet, c’est le
choix de ce paramètre qui détermine la forme des fonctions de base (cf. figure 4.1) et par la suite celle
de la courbe B-spline résultante. Une courbe B-spline est plus lisse quand l’ordre k est plus élevé.
(a) (b) (c)
Figure 4.1 – Différentes fonctions de base B-splines en fonction de l’ordre : (a) Constante (k = 1), (b)linéaire (k = 2), et (c) quadratique (k = 3)
4.2.4 Différents types de B-splines
B-spline Constante : La B-spline constante est la plus simple des splines, elle est définie sur un
intervalle, mais la fonction n’est pas continue sur les différents nœuds.
Ni1 =
{1 si ti ≤ t ≤ ti+1
0 si non.(4.4)
B-spline linéaire : La B-spline linéaire est définie sur deux intervalles consécutifs, elle est continue
sur les intervalles, mais elle n’est pas dérivable.
Ni,1 =
t−ti
ti+1−tisi ti ≤ t ≤ ti+1
ti+2−tti+2−ti+1
si ti+1 ≤ t ≤ ti+2
0 si non.
(4.5)
B-spline uniforme quadratiques : La B-spline quadratique à vecteur de nœud uniforme est une
forme courante de B-splines. Elle peut facilement être pré-calculée, elle est définie comme suit :
Ni,2 =
12 t
2 + 12
−t2 + t+ 12
12(1− t)2
(4.6)
Sous forme matricielle la fonction s’écrit :
Si(t) =[t2 t 1
] 12
1 −2 1
−2 2 0
1 1 0
di−1
di
di+1
(4.7)
Pour t ∈ [0, 1], i = 1, 2, . . . ,m− 2
Solution proposée en terme de génération de trajectoire 29
4.2. Généralités sur les B-splines
B-spline cubique : La formulation d’une B-spline cubique pour un segment singulier s’écrit comme
suit :
Si(t) =3∑
k=0
di−3+k Ni−3+k,3(t) ; t ∈ [0, 1] (4.8)
4.2.5 Exemples illustratifs
Après avoir présenter les notions de base de B-spline, deux exemples illustratifs seront de fixer les
idées :
Méthode 1 : B-Spline avec points de contrôle
Dans cet exemple, on concidère 6 points de contrôles reliés entre eux par des segments pour former
le polygône de contrôle. L’objectif est de générer une trajectoire B-spline quadratique en utilisant
ces points de contrôle, puis voire l’effet de changement de ces points sur la forme de trajectoire. La
syntaxe de la commande Matlab utilisée est la suivante :
Trajectoire = spcrv(points, 3) (4.9)
3 est l’ordre de la B-spline quadratique.
points : est le vecteur des points de contrôles.
Afin de voir l’effet des points de contrôle on se propose de les modifier comme suite :
X Choix initial des points de contrôle : [(1,1),(2,2),(3,1),(4,3),(2,5),(1,3)]
X Nouveau choix des points de contrôle : [(1,1),(2,3),(3,1.5),(3.5,3),(2,4),(1,3)]
Le résultat obtenu est représenté sur la figure 4.2 pour les deux choix des points de contrôles.
On remarque que les deux courbes sont différentes, ceci est dû au changement des points de contrôles
1 1.5 2 2.5 3 3.5 41
1.5
2
2.5
3
3.5
4
4.5
5
Figure 4.2 – Courbes de B-splines quadratique pour deux choix différents des points de contrôle
qui a changé également la position des asymptotes et qui implique le changement de la forme de la
courbe. Cet exemple montre l’importance et effet du choix des points de contrôles sur la forme de la
courbe B-spline, d’où l’idée d’utiliser (pour le générateur qu’on va proposer) une fonction de ce genre
pour générer la trajectoire de la hanche du robot et le choix des position des pieds comme étant les
points de contrôle de la fonction.
30 Souhila BACHA
Chapitre 4. Solution proposée en terme de génération de trajectoires
Méthode 2 : B-Spline avec points de passage et conditions aux limites
Cette méthode consiste à générer une trajectoire en se basant sur une fonction B-spline cubique et
une interpolation entre les points de passage. Pour cela il faut spécifier la position des points par
lesquels la fonction doit passer ainsi que les conditions aux limits (qui peuvent être des positions,
des vitesses, et/ou des accélérations), comme le montre la figure 4.3. Afin d’illustre ce concept, on
propose de générer une trajectoire sur l’intervalle de temps [ti, tf ] = [0, 20] et qui passe par les deux
points ( tf4 , X( tf
4 ) = 0), (3tf4 , X(3tf
4 ) = 10), et qui respecte les conditions aux limites X(ti) = −50,
X(tf ) = −30. La syntaxe de la fonction Matlab utilisée est la suivante :
» MatF = csape( [0,tf/4,3*tf/4,tf], [F0,P1,P2,Ff],[1,2],[-50,-30])
Elle calcule la matrice de la fonction B-spline correspondante. Le troisième paramètre de cette fonction
[1, 2] permet le choix du degré de dérivée imposée aux conditions aux limites. Le premier terme revient
à la condition initiale et sa valeur 1 représente la vitesse, et le second terme revient à la condition
finale et sa valeur 2 représente l’accélération.
Afin d’évaluer la trajectoire le long du vecteur de temps T , la fonction fnval est utilisée comme suit :
» Trajectoire = fnval(MatF,T)
Pour calculer les trajectoires de vitesses et d’accélérations correspondantes, la fonction fnder associée
à la fonction fnval est utilisée. Le résultat obtenu est représenté sur la figure 4.4 qui trace l’évolution
Figure 4.3 – Illustration d’une courbe B-spline avec
points de passage et conditions aux limites .
0 5 10 15 20−50
0
50Position
0 5 10 15 20−100
0
100Vitesse
0 5 10 15 20−50
0
50Accélération
Figure 4.4 – Courbes des position, vitesse et accélération
obtenue par la fonction B-spline avec passage
des trajectoires de position, de vitesse et d’accélération. On remarque, d’après ces courbes, que les
conditions imposées sont respectées.
4.3 Générateur de trajectoires de marche dynamique à base de B-
spline
Cette section sera consacrée à la présentation du générateur de trajectoire qu’on propose à base de
fonctions B-splines.
Solution proposée en terme de génération de trajectoire 31
4.3. Générateur de trajectoires de marche dynamique à base de B-spline
4.3.1 Principe de base
Afin de reproduire la marche dynamique comme chez l’être humain, nous proposons un générateur
de trajectoire a base de B-spline. Afin de générer les trajectoires il faut en premier lieu définir le
placement des pieds. Pour cela il, faut respecter un certain nombre de paramètres des allures de
marche souhaitées, comme les conditions initiales, positions des pieds, longueur du pas, nombre de
pas, pied vol, l’angle de rotation de direction pendant la marche. Une fois que tous les paramètres
sont définis les positions des pieds sont calculés grâce au placement des pieds (cf. figure 4.5). Les
positions des pieds pour tous les pas de la marche constituent l’entrée du bloc principal (fonction
B-spline) de notre générateur de la figure 4.5. A l’aide de la fonction B-spline et les positions des
pieds, la trajectoires de la hanche est calculée (définie précédemment dans 4.2.5). A partir de la
trajectoire du pied de vol, et de la hanche, le modèle géométrique inverse est utilisé pour calculer les
positions articulaires du robot SHERPA. Avec la dérivée premiere on obtient les vitesses articulaires et
avec la dérivée seconde on obtient les accélérations articulaires. Le calcul du COM se fait à partir des
positions articulaires du robot. Pour calculer le ZMP on utilise deux modèles, le modèle simplifié (
chariot sur table) qui sera décrit brièvement dans la section 4.3.7 et le modèle complet qui donne le
ZMP calculé a partir de COM du robot et des positions et vitesses articulaires
Pied de vol
Conditions initiales
Longueur du pas Placement
des
Pieds
Fonction
B-SplineMGI
Trajectoire du pied de vol
Positiondes
Pieds
Angle de rotation
Nombre de pas
Trajectoire de la
hanche
Calcul du
COM
Modèle
complet
Modèle
simplifié
ZMP simplifié
COMZMP réel
Calcul du ZMP
Traj
ect
oir
es
de
ré
fére
nce
Par
amè
tre
s d
e s
tab
ilité
Figure 4.5 – Schéma-bloc du générateur de trajectoires proposé
4.3.2 Solution 1 : Générateur à base de méthode 1
L’une des premières fonction associées au générateur présenté dans la section précédente, est une
fonction B-Spline avec points de contrôle. l’objectif est de générer une trajectoire de la hanche pour
32 Souhila BACHA
Chapitre 4. Solution proposée en terme de génération de trajectoires
une marche dynamique stable. Pour cela l’idée de base de notre générateur réside dans l’utilisation
des positions des pieds du robot comme étant des points de contrôle de trajectoire B-spline. Par
conséquent le changement des positions des pieds du robot va certainement changer l’allure de la
trajectoire de la hanche, ce qui va, à son tour, changer les trajectoire articulaires et le COM ainsi que
le ZMP du robot.
4.3.3 Solution 2 : Générateur à base de méthode 2
La deuxième solution consiste à utiliser le générateur de trajectoire de la figure 4.5 le principe de
base de cette deuxième solution réside dans l’utilisation d’une fonction B-spline de la méthode 2
(cf. section 4.2.5). La trajectoires B-spline générée et celle de la hanche. Selon cette méthode, les
paramètres de la trajectoire sont les points intermédiaires par les quels la trajectoire doit passer ainsi
que les conditions aux limites(telles que les positions, vitesse, accélération initiales ou finales) qu’il
faut spécifier. les points intermédiaires où les conditions aux limites peuvent agir sensiblement sur
l’allure de la trajectoire B-spline généré, d’où l’idée de les choisir (dans la phase d’optimisation) afin
d’amélioré la stabilité de la marche dynamique du robot.
4.3.4 Choix des trajectoires des pieds
Pendant la marche humanoïde, le robot bipède est amener à alterner les pieds en contact avec le sol.
C’est ainsi que pendant un pas de marche, de durée Ts, le pied de support devrait rester en contact
avec le sol, alors que le pied libre est amené à faire un mouvement de balancement vers l’avant. Pour
cela un choix judicieux de trajectoire du pied de vol consiste à trouver des trajectoires permettant de
relier une certaine position initiale du pied Pi = [PixPiyPiz]T (au début du pas) à une position finale
Pf = [PfxPfyPfz]T (à la fin du pas), tout en évitant que ce pied rentre en contacte avec le sol durant
le pas. Pour ce faire, nous avons choisi une trajectoire simple sous forme d’une demi-ellipse définie
par l’équation (4.10) (cf. figure 4.6) :
Position initial
T = 0Position finale
T = Ts
Trajectoire du pied de vol
Figure 4.6 – Trajectoire du pied de vol sous
forme d’une demi-ellipse.
X(t) = Pfx−Pix
Ts t+ Pix
Y (t) = Pfy−Piy
Ts t+ Piy
Z(t) = b
√(1−(
Pfz−Piz2
)2)
a2
a = Pfx−Pix
2
(4.10)
Solution proposée en terme de génération de trajectoire 33
4.3. Générateur de trajectoires de marche dynamique à base de B-spline
4.3.5 Calcul des trajectoires de positions articulaires
La trajectoire de la hanche sera générée a l’aide des fonctions B-spline basée sur l’une des solution
présenté précédemment. La trajectoire du pied de vol, quant à elle, sera générée par une demi-ellipse
(cf. figure 4.6). Une fois que ces trajectoires sont calculées, l’étape suivante consiste à calculer les
trajectoires articulaires du robot.
Pour cela on se propose d’utiliser le MGI du robot SHERPA implémenté sous forme numérique à partir
d’un algorithme proposé dans [13]
étape 1 : définir la position et l’orientation (pB,RB) de la hanche (la ceinture).
étape 2 : définir la position et l’orientation (pref ,Rref ) du segment cible (le pied droit).
étape 3 : définir le vecteur q qui contient les angles articulaires entre la base et la cible.
étape 4 : calculer la cinématique directe pour obtenir la position et orientation (p,R) de la cible.
étape 5 : calculer la difference entre position et orientation obtenues et désirées de la cible (∆p,∆R)
= (pref − p,RTRref ).
étape 7 : si (∆p,∆R) sont trop grands, calculer ∆q pour réduire les erreurs.
étape 8 : calculer q := q +4q et retourner à l’étape 3.
4.3.6 Calcul des trajectoires de vitesses et d’accélérations articulaires
Les trajectoires articulaires des positions sont obtenues au travers le MGI du robot. Afin d’obtenir les
trajectoires des vitesses et accélérations articulaires nous proposons d’utiliser une méthode de calcul
numérique de la dérivée. une telle technique sera décrite ci dessous et sera utilisée successivement pour
calculer les trajectoires de vitesses et accélérations articulaires Soit f une fonction connue seulement
par sa valeur en (n + 1) points donnés Xi i = 1, . . . , n distincts. On suppose connue la valeur de la
fonction en xi−1, xi et xi+1, on pose f(xi−1) = yi − 1, f(xi) = yietf(xi+1) = yi+1. Si on suppose que
l’espace entre deux points successifs est constant, donc on pose h = xi − xi−1 = xi+1 − xi.
Formule de différence progressive
f ′(xi) =f(xi+1)− f(xi)
xi+1 − xi=yi+1 − yi
xi+1 − xi(4.11)
Formule de différence régressive
f ′(xi) =f(xi)− f(xi−1)
xi − xi−1=yi − yi−1
xi − xi−1(4.12)
Formule de différence centrale
f ′(xi) =f(xi+1)− f(xi−1)
xi+1 − xi−1=yi+1 − yi−1
xi+1 − xi−1(4.13)
34 Souhila BACHA
Chapitre 4. Solution proposée en terme de génération de trajectoires
4.3.7 Calcul des trajectoires du COM et du ZMP
Trajectoire du COM
Connaissant la position et l’orientation de chaque corps constituant le robot, la position du centre de
masse s’obtient en respectant les 3 étapes suivantes [13] :
1. Définir la position du centre de masse de chaque corps dans le repère de référence.
2. Calculer le moment résultant, exprimé à l’origine, généré par la masse de chacun des corps.
3. La position du centre de masse du système s’obtient par la division du moment résultant par la
masse totale du robot.
Trajectoire du ZMP
Dans cette section nous allons décrire deux méthodes de calcul du ZMP. La première consiste a utiliser
un modèle simplifié du robot humanoïde, à savoir le modèle du chariot sur table (cf. figure 4.7). La
deuxième méthode, quant à elle, consiste a utiliser la dynamique du robot et les trajectoires du COM
du robot.
Méthode du chariot sur table :
M
Figure 4.7 – Schéma du modèle du chariot sur la table pour le calcule du ZMP.
Soit un chariot de masse M qui se déplace sur une table de masse négligeable, Bien que le pied
de la table soit trop petit pour conserver l’équilibre statique lorsque le chariot est sur le bord du
plateau, nous pouvons maintenir l’équilibre dynamique en conférant une accélération suffisante
au chariot [13].
La masse du chariot représente la position du COM, nous connaissons la trajectoire de ce dernier
qui est calculées dans le paragraphe 4.3, aussi bien que la position des pieds. nous pouvons à
présent calculer la trajectoire du ZMP. Considérons l’équation du ZMP suivant :
Selon l’axe des X :
px = x− (zc/g)x (4.14)
Solution proposée en terme de génération de trajectoire 35
4.4. Optimisation des trajectoires par rapport à la stabilité dynamique
Selon l’axe des Y :
py = y − (zc/g)y (4.15)
Px, Py position du ZMP respectivement selon l’axe des x et y
Zc position du COM , g gravité Nous discrétisons l’équation du ZMP avec un pas de temps ∆t,
la valeur de l’accélération est approchée par :x = (xi−1 − 2xi + xi+1)/∆t2
y = (yi−1 − 2yi + yi+1)/∆t2(4.16)
l’équation du ZMP descrétisée ou est calculée comme suit :
pi = axi−1 + bxi + cxi+1
a = −zc/(g∆t2)
b = 2zc/(g∆t2) + 1
c = −zc/(g∆t2)
(4.17)
Méthode du pendul inversé : le calcul du ZMP est basé sur les mouvements du robot, en utilisant
un modèle simplifié qui réduit tout le corps du robot en une seule masse ponctuelle qui représente
le COM (cf. figure 2.2). Les équations de positions du ZMP dans le plan horizontal sont les
suivantes :
px = Mgx+pzRx−Ly
Mg+Rz
py = Mgy+pzRy−Lx
Mg+Rz
(4.18)
R est la dérivé de la quantité de mouvement.
L est la dérivé des moments cinétiques du robot exprimés à l’origine du repère de référence.
Pour plus de détails sur le calcul de la quantité de mouvement et le moment cinétique voire [13].
4.4 Optimisation des trajectoires par rapport à la stabilité dyna-
mique
Le générateur proposé tel qu’il est ne suffit a lui seul de garantir la stabilité de la marche dynamique
robot humanoïde. Ceci est vrai étant donné que, dans sa phase de conception, une telle stabilité n’a
pas été prise en compte. Notre deuxième contribution consiste a modifier le générateur de trajectoires.
Pour atteindre un tel objectif, nous proposons de combiner certaines paramètres sur les trajectoires
B-splines générées dont leur variation agit sur la trajectoire du ZMP correspondante. Ensuite ces
paramètres seront optimisé afin d’améliorer la stabilité de la marche dynamique du robot. Pour la
premier solution nous avons ajouté un point de contrôle intermédiaire, et choisis sa position par
optimisation afin de trouver la meilleur trajectoire du ZMP par rapport à la stabilité dynamique. Le
36 Souhila BACHA
Chapitre 4. Solution proposée en terme de génération de trajectoires
critère d’optimisation est en fonction de deux paramètres qui représente les coordonnées du point de
contrôle intermédiaire. Pour la seconde solution nous avons agi sur un seul paramètre d’optimisation
et calculer le ZMP correspondant par ce générateur de trajectoires proposé.
Si(t) =
[xi
yi
]= Arg min xi
yi
J = Arg min xi
yi
∑
Qx(zmpx − zmpxd)2 +Qy(zmpy − zmpyd)2 (4.19)
où le zmpx, zmpy sont les coordonnées du ZMP du robot, zmpxd, zmpyd sont les coordonnées du
ZMP désiré, situé au centre du polygone de sustentation. Qx, Qy sont des coefficient de pondération.
Un autre critère d’optimisation peut être aussi utilisé :
Si(t) =
[xi
yi
]= Arg min xi
yi
J = Arg min xi
yi
max
∑Qx(zmpx − zmpxd)2 +Qy(zmpy − zmpyd)2(4.20)
4.5 Conclusion
Dans ce chapitre nous avons présenté les contributions fait proposées dans le cadre de ce stage.
La premiere contribution est la conception d’un générateur de trajectoire a base de B-Spline où
deux méthodes ont été proposées. La seconde contribution consiste à améliorer la stabilité de la
marche dynamique en utilisant un critère d’optimisation. Nous avons également décrit les méthodes
de calcul des positions, des vitesses et des accélérations articulaires. Nous avons en outre présenté
deux méthodes pour le calcul du ZMP.
Solution proposée en terme de génération de trajectoire 37
Chapitre 5
Résultat de simulation
5.1 Introduction
Dans le cadre de ce stage, l’objectif premier était la conception d’un générateur de trajectoires pour
le robot bipède SHERPA afin de réaliser des allures de marche dynamique stable. C’est ainsi que deux
solutions sont proposées dans le chapitre 4.3.5 de génération de trajectoires à base de B-Spline.
le présent chapitre sera consacré aux résultats de simulation obtenus par application des deux solutions
proposées, ainsi qu’à la présentation du simulateur développé.
5.2 Le simulateur développé
Le logiciel Matlab 1 nous a permis de réaliser un simulateur de générateur de trajectoires pour le robot
SHERPA. Le simulateur développé est à base d’interface graphique qui peut contenir des fenêtres, des
boutons poussoirs, des menus déroulants, des curseurs, des éditeurs de texte, etc.
Afin de réaliser un tel simulateur du robot SHERPA, nous avons construit une interface graphique qui
permet à l’utilisateur de communiquer avec les programmes. Dans une interface on peut intégrer en
générale le choix des paramètres, le choix entre différentes alternatives, la visualisation graphique,
l’animation en temps réel, etc. Le simulateur développé à l’aide de GUI (Graphical User Interface
en anglais) de Matlab sera détaillé dans la section suivante.
5.2.1 Description de l’interface graphique
L’interface graphique de notre simulateur (cf. figure 5.1) est constituée de plusieurs blocs permettant
à l’utilisateur d’interagir avec les programmes en affichant le résultat de simulation sous forme d’infor-
mation graphique (figures, courbes, animation, etc.). L’interface graphique principale du simulateur
développé est présentée sur la figure 5.1. Elle contient les blocs suivant :
1. Un produit de Mathworks : www.mathworks.com
38
Chapitre 5. Résultat de simulation
Paramètres
de la marche
Visualisation
des courbes
Calcul des
trajectoires
Animation
et vidéo
Visualisation du
COM et des pieds
Aide
d’utilisateur
&
fermeture de
l’interface
Simulateur développé
Figure 5.1 – Interface graphique du simulateur de génération de trajectoires du robot SHERPA.
• Paramètre de la marche
X Nombre de pas
X Début de marche
X Arret de la marche
X Pied de vol
X Choix de la fonction
• Calcule des trajectoires
• Animation et vidéo
• visualisation du COM et la position des pieds
• Visualisation des courbes
• Aide / Quitter l’interface
5.2.2 Principales fonctionnalités du simulateur
Nous allons décrire les principales fonctions du simulateur selon les différents blocs de l’interface :
Paramètre de la marche : Nous permet d’introduire le nombre de pas de marche et l’angle de
rotation pour une marche avec changement de direction.
Début de marche : Nous permet de choisir les positions des pieds au début de la marche, à savoir
des pieds alignés ou distincts.
Arrêt de la marche : Nous permet de choisir les positions des pieds à la fin de la marche, c.à.d
pieds alignés ou distincts.
Pied de vol : Nous permet de choisir le pied de vol pour le premier pas (pied gauche ou droit).
Choix de la fonction : Permet de choisir le type de la fonction B-Spline utilisée dans le générateur.
Ces fonctions ont été définies dans le chapitre 4.3.5.
Calcul des trajectoires : Ce bloc comporte trois actions, à savoir l’optimisation des trajectoires,
Solution proposée en terme de génération de trajectoire 39
5.2. Le simulateur développé
la génération des trajectoires et l’effacement de la fenêtre graphique pour une nouvelle génération
de trajectoires .
Animation et vidéo : Nous permet de visualiser la marche du robot SHERPA correspondant aux
trajectoires générées. Il permet aussi de générer une vidéo du mouvement obtenu. Une fois l’une
de ces deux actions déclanchée, la fenêtre graphique d’animation et affichée (cf. figure 5.2).
Aide : Permet à l’utilisateur de se familiariser avec les différentes commandes du simulateur.
Fermer : Permet de quitter le simulateur et fermer toutes les fenêtres graphiques.
Figure 5.2 – Visualisation graphique du robot SHERPA .
Visualisation des courbes : Permet de tracer les courbes de simulation. On peut ainsi visualiser :
– Les trajectoires de positions, vitesses et accélérations articulaires.
– Les trajectoires du COM, ZMP et des Pieds.
5.2.3 Procédure typique d’utilisation du simulateur
Dans cette section nous allons présenter (étape par étape) une procédure typique d’utilisation du
simulateur :
– Étape 1 (Paramètre de simulation) : Introduire le nombre de pas et l’angle de rotation theta (theta
est un vecteur d’une dimension égale au nombre de pas).
– Étape 2 (Début de marche) : Choisir la position des pieds au début de la marche alignés ou
distincts.
– Étape 3 (Allure d’arret) : Choisir la position des pieds à la fin de la marche (oui : arrêt avec pieds
alignés, Non : arrêt avec pieds distincts).
– Étape 4 (Pied de vol) : Choisir avec quel pied le robot commence la marche (pied gauche ou droit).
– Étape 5 (Choix de la fonction) : Choisir l’une des fonctions B-Splines et en fonction des objectifs
décider si celle-ci requiert une optimisation ou non.
40 Souhila BACHA
Chapitre 5. Résultat de simulation
– Étape 6 (Trajectoire) : Une fois que tous les paramètres sont définis cette action génére la tra-
jectoire de la hanche et les positions des pieds. Si on fait une optimisation on clique en premier
lieu sur optimisation puis sur génération. Si l’utilisateur souhaite générer une nouvelle trajectoire
il doit effacer la fenêtre graphique en cliquant sur effacer.
– Étape 7 (Animation et vidéo) : Visualiser l’animation de la marche du robot SHERPA et générer
une vidéo.
– Étape 8 (Visualisation des trajectoires) : Permet de tracer les courbes de simulation
5.3 Résultats de simulation sans optimisation
Dans cette section, nous présenterons les résultats de simulation obtenus sans optimisation, pour cela
plusieurs scénarios ont été simulés, à savoir marche en ligne droite et la marche avec changement de
direction. Dans les différents résultats de simulation qui seront présentés pour la suite du chapitre,
les notion suivantes sont utilisées :
q = [q2, . . . , q7] : Vecteur de positions articulaires de la jambe droite,
q = [q8, . . . , q13] : Vecteur de positions articulaires de la jambe gauche,
q = [q2, . . . , q7] : Vecteur de vitesses articulaires de la jambe droite,
q = [q8, . . . , q13] : Vecteur de vitesses articulaires de la jambe gauche,
q = [q2, . . . , q7] : Vecteur de accélérations articulaires de la jambe droite,
q = [q8, . . . , q13] : Vecteur de accélérations articulaires de la jambe gauche.
5.3.1 Première solution :
Cette première solution consiste à utiliser un générateur de trajectoires à base de fonction B-spline uti-
lisant des points de contrôle. Dans cette section les résultats de simulation des deux scénarios marche
en ligne droite et changement de direction vont être présenté, Les figures 5.3, . . . 5.9 représentent les
résultats de simulation obtenus.
Les figures 5.3, 5.4 et 5.5 représentent l’évolution des positions, des vitesses et d’accélérations articu-
laires respectivement, d’aprés ces courbes les trajectoires obtenues sont cycliques.
La figure 5.6 montre les trajectoire des pieds en fonction du temps, on remarque que ces trajectoires
s’alternent. Quand le pied droit est en phase de vol le pied gauche en support. La trajectoire du pied
de vol est sous forme d’une ellipse, le pied de support est a zéro.
Les figures 5.7 et 5.8 montre l’évolution des positions du ZMP et du COM ainsi que la position des
empreintes des pieds durant la marche avec, respectivement, le calcul du ZMP réel et le calcul du
ZMP simplifié. Les deux méthodes de calcul sont décrites dans la section 4.3.7. On remarque qu’il y
a une grande différence entre la position du ZMP calculé avec la méthode simplifiée et celle où on
considère toute la dynamique du robot (ZMP réel). On en déduit que le calcul qui se fait avec la
méthode simplifiée n’est pas précis. Dans la suite de ce rapport on prend en compte que le calcul réel
du ZMP.
Solution proposée en terme de génération de trajectoire 41
5.3. Résultats de simulation sans optimisation
0 2 4 6−1
0
1
q2, q
8 [rad]
0 2 4 6−0.1
0
0.1
q3, q
9 [rad]
0 2 4 6−1
−0.5
0
q4, q
10[rad]
Temps [s]
0 2 4 60.5
1
1.5
q5, q
11[rad]
0 2 4 6−1
−0.5
0
q6, q
12[rad]
0 2 4 6−0.1
0
0.1
q7, q
13[rad]
Temps [s]
Figure 5.3 – Evolution des positions articulaires (solu-
tion 1, sans optimisation)
0 2 4 6−1
0
1
qp2, qp
8[rad/s]
0 2 4 6−0.5
0
0.5
qp3, qp
9[rad/s]
0 2 4 6−1
0
1
qp4, qp
10[rad/s]
Temps [s]
0 2 4 6−2
0
2
qp5, qp
11[rad/s]
0 2 4 6−1
0
1
qp6, qp
12[rad/s]
0 2 4 6−0.5
0
0.5
qp7, qp
13[rad/s]
Temps [s]
Figure 5.4 – Evolution des vitesses articulaires (solution
1, sans optimisation)
Nous avons également évalué la stabilité sur la marche avec changement de direction, le résultat de
simulation est sur la figure 5.9. D’après cette figure le ZMP de est à l’extérieure des empreintes des
pieds, le robot est par conséquent instable.
5.3.2 deuxième solution :
Cette deuxième solution consiste à utiliser un générateur de trajectoires à base de fonction B-spline
utilisant des points de passage et des conditions aux limites. La stabilité de marche est évaluée pour
les deux scénarios décris précédemment en basant sur le ZMP. Les figures 5.10, . . . , 5.15 représentent
les résultats de simulation obtenus.
Les figures 5.10, 5.11 et 5.12 représentent l’évolution des positions, vitesses et accélération articulaires
respectivement. Les trajectoires obtenues sont périodiques.
La figure 5.13 montre la trajectoire des pieds en fonction du temps on remarque que les trajectoires
des deux pieds s’alternent est sous forme d’une ellipse, cependant la trajectoire du pied de support
reste a zéro.
La figures 5.14 montre l’évolution du ZMP réel et du COM ainsi que la position des empreintes des
pieds durant la marche en ligne droite.
La figure 5.15 montre l’évolution du ZMP pour une marche avec changement de direction. Le ZMP
n’est pas totalement a l’intérieure du pied cela n’est pas assez pour garantir la stabilité de la marche
dynamique.
42 Souhila BACHA
Chapitre 5. Résultat de simulation
0 2 4 6−1
0
1
qpp2, qpp
8[rad/s2]
0 2 4 6−1
0
1
qpp3, qpp
9[rad/s2]
0 2 4 6−5
0
5
qpp4, qpp
10[rad/s2]
Temps [s]
0 2 4 6−5
0
5
qpp5, qpp
11[rad/s2]
0 2 4 6−5
0
5
qpp6, qpp
12[rad/s2]
0 2 4 6−1
0
1
qpp7, qpp
13[rad/s2]
Temps [s]
Figure 5.5 – Evolution des accélération articulaires (so-
lution 1, sans optimisation)
0 1 2 3 4 5 6−2
0
2
Temps [s]
X
Pied droitPied gauche
0 1 2 3 4 5 6−0.2
0
0.2
Temps [s]
Y
0 1 2 3 4 5 60
0.05
Temps [s]
Z
Figure 5.6 – Evolution des trajectoire des pieds (solution
1, sans optimisation)
0 0.5 1 1.5 2−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
ZMPCOM
Figure 5.7 – Trajectoires du ZMP réel et du CoM (so-
lution 1, sans optimisation)
0 0.5 1 1.5 2−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
ZMPCOM
Figure 5.8 – Trajectoires du ZMP simplifié et du CoM
(solution 1, sans optimisation)
5.4 Analyse de la stabilité de la marche
Rappelons les conditions de stabilité pour les robots humanoïdes, l’une des approches de stabilité est
basée sur l’analyse du ZMP et la condition pour garantir la stabilité de la marche est que le ZMP
reste toujours à l’intérieure du polygone de sustentation. Le ZMP calculé avec la première solution
proposée pour une génération de trajectoires à base de B-spline avec des points de contrôle pour les
deux scénarios (marche en ligne droite et changement de direction) est complètement à l’extérieur des
empreintes des pieds, le robot est donc en position d’instabilité. Cette génération de trajectoire telle
qu’elle est n’est pas suffisante pour assurer la stabilité de la marche dynamique.
Le ZMP calculé avec la deuxième solution proposée pour une génération de trajectoires à base de
B-spline pour le scénario de la marche en ligne droite est complètement à l’intérieure des empreintes
des pieds, le robot est donc en marche dynamique stable. Dans le but d’assurer une meilleurs stabilité
Solution proposée en terme de génération de trajectoire 43
5.5. Résultat de simulation avec optimisation
0 0.5 1 1.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
ZMPCOM
Figure 5.9 – Trajectoires du ZMP réel et du CoM avec changement de direction (solution 1, sans optimisation)
0 2 4 6−1
0
1
q2, q
8 [rad]
0 2 4 6−0.2
0
0.2
q3, q
9 [rad]
0 2 4 6−1
−0.5
0
q4, q
10[rad]
Temps [s]
0 2 4 60.5
1
1.5
q5, q
11[rad]
0 2 4 6−1
−0.5
0
q6, q
12[rad]
0 2 4 6−0.2
0
0.2
q7, q
13[rad]
Temps [s]
Figure 5.10 – Evolution des positions articulaires (solu-
tion 2, sans optimisation)
0 2 4 6−1
0
1
qp2, qp
8[rad/s]
0 2 4 6−1
0
1
qp3, qp
9[rad/s]
0 2 4 6−1
0
1
qp4, qp
10[rad/s]
Temps [s]
0 2 4 6−2
0
2
qp5, qp
11[rad/s]
0 2 4 6−1
0
1
qp6, qp
12[rad/s]
0 2 4 6−1
0
1
qp7, qp
13[rad/s]
Temps [s]
Figure 5.11 – Evolution des vitesses articulaires (solu-
tion 2, sans optimisation)
pour la marche dynamique, nous proposons comme solution de faire une optimisation pour garder le
ZMP centré à l’intérieure du polygone du sustentation ce qui permet au robot d’avoir une marge de
stabilité plus large.
5.5 Résultat de simulation avec optimisation
Dans cette section nous allons présenter les différents résultats de simulation obtenus avec optimisation
pour les deux solution de générateur proposées. Deux scénarios seront envisagés, à savoir la marche
en ligne droite et la marche avec changement de direction.
44 Souhila BACHA
Chapitre 5. Résultat de simulation
0 2 4 6−1
0
1
qpp2, qpp
8[rad/s2]
0 2 4 6−10
0
10
qpp3, qpp
9[rad/s2]
0 2 4 6−10
0
10
qpp4, qpp
10[rad/s2]
Temps [s]
0 2 4 6−20
0
20
qpp5, qpp
11[rad/s2]
0 2 4 6−10
0
10
qpp6, qpp
12[rad/s2]
0 2 4 6−10
0
10
qpp7, qpp
13[rad/s2]
Temps [s]
Figure 5.12 – Evolution des accélération articulaires (so-
lution 2, sans optimisation)
0 1 2 3 4 5 6−2
0
2
Temps [s]
X
Pied droitPied gauche
0 1 2 3 4 5 6−0.2
0
0.2
Temps [s]
Y
0 1 2 3 4 5 60
0.05
Temps [s]
Z
Figure 5.13 – Evolution des trajectoire des pieds (solu-
tion 2, sans optimisation)
−0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4−0.5
−0.4
−0.3
−0.2
−0.1
0
0.1
0.2
0.3
0.4
0.5
ZMPCOM
Figure 5.14 – Trajectoires du ZMP réel et du CoM avec
marche droite (solution 2, sans optimisation)
0 0.5 1 1.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1ZMP & COM réel
ZMPCOM
Figure 5.15 – Trajectoires du ZMP réel et du CoM avec
changement de direction (solution 2, sans optimisation)
5.5.1 Première solution :
Dans cette partie nous allons décrire les résultats de simulation avec optimisation obtenus dans le cas
du générateur de trajectoires à base de fonction B-spline avec points de contrôle.
Les figures 5.16 et 5.17 montrent l’évolution des positions du ZMP et du COM ainsi que les positions
des empreintes des pieds respectivement durant une marche droite et un changement de direction,
même avec l’optimisation, le ZMP n’est pas totalement a l’intérieure du polygone de sustentation,
par conséquent, le robot est toujours en position de marche dynamique instable.
5.5.2 Deuxième solution :
Dans cette partie nous allons décrire les résultats de simulation avec optimisation obtenus dans le cas
du générateur de trajectoires à base de fonction B-Spline avec points de passage et conditions aux
limites.
Solution proposée en terme de génération de trajectoire 45
5.6. Conclusion
0 0.5 1 1.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
ZMPCOM
Figure 5.16 – Trajectoires du ZMP réel et du CoM avec
optimisation avec une marche en ligne droite (solution 1,
avec optimisation)
−0.4 −0.2 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
ZMPCOM
Figure 5.17 – Trajectoires du ZMP réel et du CoM avec
optimisation avec changement de direction et optimisation
(solution 1, avec optimisation)
0 0.5 1 1.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 5.18 – Trajectoires du ZMP réel et du CoM avec
optimisation avec une marche en ligne droite (solution 2,
avec optimisation)
0 0.5 1 1.5−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
ZMPCOM
Figure 5.19 – Trajectoires du ZMP réel et du CoM avec
optimisation avec changement de direction et optimisation
(solution 2, avec optimisation)
Les figures 5.18 et 5.19 montrent l’évolution des positions du ZMP réel et du COM ainsi que les posi-
tions des empreintes des pieds respectivement durant une marche en ligne droite et avec changement
de direction.
Nous remarquons qu’avec l’optimisation le ZMP est mieux concentré à l’intérieure du polygone sus-
tentation, améliorant ainsi la stabilité dynamique de la marche.
5.6 Conclusion
Dans ce chapitre, nous avons simulé le générateur présenté dans le chapitre 4.3.5 utilisant deux
méthodes différentes pour le calcul des trajectoires, appliquées dans le cas de deux scénarios. Les
résultats obtenus par application de ces deux solutions montrent clairement que la stabilité de ma
marche dynamique n’est pas garantie pour la première solution. Pour cela, on a proposé d’améliorer les
deux solutions en introduisant un problème d’optimisation permettant de calculer certains paramètres
46 Souhila BACHA
Chapitre 5. Résultat de simulation
des trajectoires B-splines dans le but d’améliorer la stabilité de la marche dynamique. Les résultats
obtenus dans ce deuxième cas avec optimisation montre qu’effectivement que les allures de marche
obtenues respectent les contraintes de stabilité dynamique. Une comparaison entre les deux solutions
à montré que la deuxième solution est meilleure en terme de stabilité.
Solution proposée en terme de génération de trajectoire 47
Chapitre 6
Conclusions et perspectives
6.1 Conclusion générale
En robotique humanoïde, la plupart des approches de commande proposées pour la marche dans la
littérature reposent sur l’utilisation de trajectoires de référence. Afin d’effectuer des allures de marche
de différentes natures, ces trajectoires devront être suivies en temps réel. Cela montre le rôle impor-
tant d’un générateur de trajectoires en robotique humanoïde. En effet, plusieurs chercheurs à travers
le monde se sont intéressés à la génération de trajectoires en robotique humanoïde. Dans le cadre de
ce stage, l’objectif concerne la conception et le développement d’un générateur de trajectoire pour des
allures de marche dynamique stable en robotique humanoïde, et plus spécifiquement pour le robot
SHERPA.
Dans ce contexte, la solution qu’on a proposée consiste à concevoir ce générateur autour fonctions
B-spline. Le générateur proposé permet de générer une trajectoire de la hanche en se basant sur les
fonctions B-splines. Deux solutions sont proposées, la première consiste à utiliser une fonction B-spline
avec des points de contrôles et la deuxième, quant à elle, consiste à utiliser une fonction B-spline avec
points de passage et interpolation et des conditions aux limites qui peuvent être choisies librement.
Quelque soit la solution, une fois que la trajectoire de la hanche est générée, en se basant sur le
modèle géométrique inverse du robot, les trajectoires articulaires sont calculées. En effet, le calcul de
ces trajectoires articulaires nécessite la connaissance de la trajectoire de la hanche et celle des pieds.
C’est ainsi qu’on a proposé pour le pied de vol une trajectoire d’ellipse permettant de joindre les
positions initiale et finale du pied.
La première solution, telle qu’elle a été proposée ne garantit pas forcément la stabilité de la marche
dynamique du robot. Par conséquent, l’idée qu’on a proposée pour surmonter ce problème est d’in-
troduire une technique d’optimisation dans le cas des deux solutions afin d’améliorer la stabilité de
la marche dynamique. Les résultats obtenus après cette modification ont montré une nette amélio-
ration de la stabilité de la marche des deux solutions proposées. Néanmoins, la première solution ne
garantit toujours pas la stabilité même avec optimisation. La deuxième solution, quant à elle, assure
une stabilité de la marche dynamique avec amélioration remarquable des marges de stabilité.
48
Chapitre 6. Conclusions et perspectives
6.2 Perspectives
Même si les résultats obtenus à travers les deux solutions proposées sont très prometteurs, il serait
judicieux de continuer le travail actuel de ce stage en tenant compte, entre autres, des perspectives
suivantes :
– Le couplage du générateur de trajectoires proposé avec un contrôleur permettant la poursuite des
trajectoires obtenues et voir la stabilité de la marche.
– Exploration de nouvelles pistes dans le choix des paramètres d’optimisation afin d’améliorer la
stabilité de la marche et augmenter ses marges.
– L’implémentation en temps réel du générateur de trajectoires proposé sur le robot SHERPA.
– Application du générateur de trajectoires proposé au cas du robot humanoïde HYDROID dans le
cadre du projet ANR R2A2.
Solution proposée en terme de génération de trajectoire 49
Bibliographie
[1] AIST. Hrp-4 robot. http ://www.switchhr.com/2010/05/27/hrp-4-the-talent-pipeline/, 2010.
[2] A. Albert and W. Gerth. Analytic path planning algorithms for bipedal robots without a trunk. Journalof Intelligent and Robotic Systems, 36 :109–127, 2003.
[3] C. Azevedo. Contrôl de la locomotion artificielle : de l’homme aux robots. Thèse de doctorat, INRIARhône Alpes, 2002.
[4] O. Bruneau, F. Ouzedou, and F.B. Weiber. Dynamic transition simulation of a walking anthropomorphicrobot. In IEEE International Conference on Robotics and Automation (ICRA’98), pages 1392–1397,Leuven, Belgium, 1998.
[5] A. Chemori. Quelques contributions à la commande non linéaire des robots marcheurs bipèdes sous-actionnés. Thèse de doctorat, Institut National Polytechnique de Grenoble (INPG), 2005.
[6] S. Djoudi. Contribution à la commande d’un robot bipède. Thèse de doctorat, ECN, Université Nantes,2007.
[7] J. Ferreira, M. Crisostomo, A. Coimbra, and K. Kaneko. ZMP trajectory reference for the sagittal planecontrol of a biped robot based on a human CoP and gait. In IEEE/RSJ International Conference onIntelligent Robots and Systems (IROS’09), pages 1588–1593, St. Louis, USA, 2009.
[8] D. Gouaillier, V. Hugel, and P. Blazevic. Mechatronic design of nao humanoid. In IEEE/RSJ InternationalConference on Intelligent Robots and Systems (IROS’09), pages 769–774, Kobe, Japan, 2009.
[9] K. Harada, K. Miura, M. Morisawa, K. Kaneko, S. Nakaoka, F. Kanehiro, T. Tsuji, and S. Kajita. Towardhuman-like walking pattern generator. In IEEE/RSJ International Conference on Intelligent Robots andSystems (IROS’2009), pages 1071–1077, St. Louis, USA, 2009.
[10] S. Hong, Y. Oh, Y. Chang, and B. You. An omni-directional walking pattern generation method forhumanoid robots with quartic polynomials. In IEEE/RSJ International Conference on Intelligent Robotsand Systems (IROS’07), pages 4207–4213, San Diego, USA, 2007.
[11] S. Hong, Y. Oh, D. Kim, and B. You. A walking pattern generation method with feedback and feedforwardcontrol for humanoid robots. In IEEE/RSJ International Conference on Intelligent Robots and Systems(IROS’09), pages 1078–1083, St. Louis, USA, 2009.
[12] Q. Huang, S. Kajita, K.and Yokoi K. Koyachi, N.and Kaneko, H. Aria, K. Komoriya, and K. Tanie. Ahigh stability, smooth walking pattern for a biped robot. In IEEE International Conference on Roboticsand Automation (ICRA’99), pages 65–71, Detroit, Michigan, USA, 1999.
[13] S. Kajita, H. Hirukawa, K. Harada, and K. Yokoi. Introduction à la commande des robots humanoïdes, Dela modélisation à la génération du mouvement. Springer Verlag (traduit en français par Sophie Sakka),New York, USA, 2009.
50
Bibliographie
[14] S. Kajita, F. Kanihero, K. Kaneko, and K. Wa. The 3d linear inverted pendulum mode : A simplemodeling for a biped walking pattern generation. In IEEE/RSJ International Conference on IntelligentRobots and Systems (IROS’01), pages 239–246, Hawaii, USA, 2001.
[15] K. Kaneko, F. Kanehiro, S. Kajita, T. Hirukawa, H.and Kawasaki, M. Hirata, K. Akachi, and T. Iso-zumi. Humanoid robot hrp-2. In IEEE/RSJ International Conference on Intelligent Robots and Systems(IROS’04), pages 1083–1090, San Diego, USA, 2004.
[16] R. Katoh and M. Mori. Control method of biped locomotion giving asymptotic stability of trajectory.Bulletin of American Mathematical Society, 20(4) :405–414, 1984.
[17] W. Khalil and E. Dombre. Modélisation, identification et commande des robots. Hermès, Paris, France,1999.
[18] S. Kim, C. Kim, B. You, and S. Oh. Stable whole-body motion generation for humanoid robots to imitatehuman motions. In IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’09),pages 2518–2524, St. Louis, USA, 2009.
[19] Y. Kuroki, M. Fujita, T. Ishida, K. Nagasaka, and J. Yamaguchi. A small biped entertainment robot explo-ring attractive applications. In IEEE International Conference on Robotics and Automation (ICRA’03),pages 471–476, Taipei, Taiwan, 2003.
[20] B. Lee, D. Stonier, Y.D. Kim, J. Yoo, and J.H. Kim. Modifiable walking pattern generation using real-timezmp manipulation for humanoid robots. In IEEE/RSJ International Conference on Intelligent Robots andSystems (IROS’07), pages 4221–4226, San Diego, USA, 2007.
[21] S. Lengagne. Planification et re-planification de mouvements sûrs pour les robots humanoïdes. Thèse dedoctorat, Université Montpellier II, 2009.
[22] I. Olaru, S. Krut, and F. Pierrot. Novel mechanical design of biped robot sherpa using 2 dof cabledifferential modular joints. In IEEE/RSJ International Conference on Intelligent Robots and Systems,St. Louis, USA, 2009.
[23] F. Ouezdou, B. Mohamed, V. Scesa, and R. Sellaouti. Design and experiments of a torso mechanism forthe robian biped robot. Robotica, 24 :337–347, 2006.
[24] Garrec P., Martins J.P., and Friconneau J.P. A new technology for portable exoskeletons. AMSE, 36,2004.
[25] J. Perry. Gait Analysis. McGraw-Hill, New York, USA, 1992.
[26] L. Piegl and W. Tiller. The NURBS book. Springer, 2nd Edition, New York, USA, 1997.
[27] M. Pingault. A rational b-spline hypervolume for multidimensional multivariate modeling. Journal ofmechanical science and technology ISSN 1738-494X, 23(7) :1967–1981, 2009.
[28] M. Pingault, E. Bruno, and D. Perllin. A robust multiscale b-spline function decomposition for estimatingmotion transparency. IEEE Transaction on image processing ISSN 1057-7149, 12(11) :1416–1426, 2003.
[29] L. Ren, R. Jones, and D. Howard. Predictive modelling of human walking over a complete gait cycle.Journal of biomechanics, 40 :1567–1574, 2007.
[30] L. Roussel. Génération de trajectoires de marche optimales pour un robot bipède. Thèse de doctorat,Institut National Polytechnique de Grenoble (INPG), 1998.
[31] Y. Sakagami, R. Watanabe, S. Aoyama, C.and Matsunaga, N. Higaki, and K. Fujimura. The intelligentasimo : System overview and integration. In IEEE/RSJ International Conference on Intelligent Robotsand Systems (IROS’02), pages 2478–2483, Laussanne, Switzerand, 2002.
Solution proposée en terme de génération de trajectoire 51
Bibliographie
[32] P. Sardain and G. Bessonnet. Forces acting on a biped robot. center of pressure–zero moment point. IEEETRANSACTIONS ON SYSTEMS, MAN, AND CYBERNETICSŮPART A :, 34(5) :630–637, 2004.
[33] J. Schoeberg. Spline interpolation and best quadrature formulae. Automatica, 70(1) :143–148, 1964.
[34] L. Sciavicco and B. Siciliano. Modeling and control of robot manipulators. McGraw Hill, New York, 1996.
[35] M. Spong and M. Vidyasagar. Robot Dynamics and Control. John Wiley & Sons, New York, 1989.
[36] W. Takano, K. Yamane, and Y. Nakamura. Capture database through symbolization, recognition andgeneration of motion patterns. In IEEE International Conference on Robotics and Automation (ICRA’07),pages 3092–3097, Roma, Italy, 2007.
[37] T. Takenaka, T. Matsumoto, and T. Yoshiike. Real time motion generation and control for biped robot-1streport : Walking gait pattern generation. In IEEE/RSJ International Conference on Intelligent Robotsand Systems (IROS’09), pages 1084–1091, St. Louis, USA, 2009.
[38] Z. Tang and M. Er. Humanoid 3d gait generation based on inverted pendulum model. In IEEE Interna-tional Symposium on Intelligent Control (ISIC’07), pages 339–344, Singapore, 2007.
[39] M. Vukobratovic, V. Potkonjak, and A. Rodic. Contribution to the dynamic study of humanoid robotsinteracting with dynamic environment. Robotica, 22 :439–447, 2004.
[40] D.A. Winter. Biomechanics and motor control of human movement. John Wiley, New York, USA, 1990.
[41] J. Yamaguchi, E. Soga, S. Inoue, and A. Takanishi. Development of a bipedal humanoid robot - controlmethod of whole body cooperative dynamic biped walking. In IEEE/RSJ International Conference onIntelligent Robots and Systems (IROS’1999), pages 368–374, Detroit, Michigan, 1999.
[42] W. Yang and Y. Chong. Self-adapting humanoid locomotion using a neural oscillator network. InIEEE/RSJ International Conference on Intelligent Robots and Systems (IROS’07), pages 309–316, SanDiego, USA, 2007.
[43] R. Zaier and S. Kanda. Piecewise-linear pattern generator and reflex system for humanoid robots. InIEEE International Conference on Robotics and Automation (ICRA’07), pages 2188–2194, Roma, Italy,2007.
[44] M. Zhao, J. Zhang, Y. Liu, H. Dong, L. Li, and X. Su. Humanoid robot gait generation based on limitcycle stability. In Proceeding of the RoboCup Symposium 2008, pages 403–413, Singapore, 2008.
52 Souhila BACHA