58
Master 2 Recherche STPI-EEA Spécialité : "Automatique et Robotique" Rapport de stage Préparé au Laboratoire d’Informatique de Robotique et de Microelectronics de Montpellier LIRMM UMR (CNRS-UM2) N 5506 161, 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

Conception et développement d’un générateur de …chemori/Temp/Oussama/Rapport_stage_M2_Bacha.pdf · Conception et développement d’un générateur de trajectoires pour des

Embed Size (px)

Citation preview

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

les

simp

lifiés

Trajecto

ires issu

es

de

la bio

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é

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é

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)

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

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