• Aucun résultat trouvé

5.1 Confrontation avec la réalité

5.1.2 Scénario de validation

Une comparaison visuelle n’est évidemment pas précise, nous avons donc opté pour une comparaison des phénomènes de contact en se basant sur les données des capteurs d’efforts : celles calculées par le simulateur et celles obtenues directement du capteur. Pour cela nous réaliserons un essai très simple en statique impliquant seulement le robot et un objet fixe dans l’environnement. En l’occurrence, nous demandons au robot de plier son bras droit à angle droit et d’appuyer légèrement sur une poutre située juste en face de lui. C’est la partie où le robot appuie sur la poutre qui nous intéresse le plus ici, en particulier les efforts exercés sur la main.

Pour obtenir des résultats les plus proches de la réalité, plusieurs paramètres doivent être pris en compte : le coefficient de frottement entre les objets, le modèle réel des capteurs d’effort et les paramètres réels des actionneurs du robot et enfin les flexibilités au niveau des chevilles.

5.1.2.1 Détermination des coefficients de frottement

Les coefficients de frottement que nous avons à identifier sont entre les pieds et le sol, et entre la main et la poutre. Pour celui entre les pieds et le sol, nous avons pu obtenir le pied seul du robot sur lequel nous avons rajouté un poids (𝑚 = 11, 84kg1), et grâce à un dynamomètre nous avons mesuré la

force nécessaire 𝑓 pour faire glisser le pied sur le sol (voir figure 5.2). Le coefficient de frottement sec s’obtient simplement par l’équation :

𝑓 = 𝜇𝑓𝑛= 𝜇𝑚𝑔 ⇒ 𝜇 = 𝑓

𝑚𝑔 (5.1)

Nous avons réalisé 50 essais afin d’obtenir un résultat plus précis (voir figure 5.3). Nous avons pris alors la moyenne de toutes les valeurs obtenues, à savoir 𝜇 ≈ 0, 983. Il est à noter que nous ne mesurons ici que le coefficient de frottement statique et non dynamique. Dans la situation présente, nous pouvons considérer que ces deux coefficients sont identiques. De même pour le coefficient entre la main et la poutre, nous avons 𝜇 ≈ 0, 1.

5.1.2.2 Modélisation des capteurs d’efforts

La modélisation des capteurs d’efforts est plus complexe. Comme les mesures fournies par le capteur sont données dans le repère du capteur, nous avons besoin de la position et de l’orientation du capteur par rapport au repère du corps dans lequel il se situe. En l’occurrence pour la main, le capteur a une orientation d’environ 90 degrés par rapport à la main et son centre est quasiment confondu avec celui de la main (voir figure 5.4).

Ensuite pour obtenir les véritables valeurs des efforts, les valeurs données par le capteur sont à multiplier par une matrice, carrée pleine, de gains de calibration G qui lorsque le capteur est parfait est égale à l’identité. Dans notre cas, les capteurs sont un peu anciens, par conséquent cette matrice G

1. En réalité la masse n’a pas d’importance, nous avons pris une masse qui permette d’effectuer des mesures fiables compte tenu de la précision du dynamomètre.

figure 5.2: Dispositif pour mesurer le coefficient de frottement statique entre le pied et le sol.

figure 5.3: Valeurs obtenues lors des mesures du coefficient de frottement statique entre le pied et le sol. n’est pas égale à l’identité ; ses paramètres ont été identifiés à partir de mesures hors ligne à diverses postures/orientations de la pince. Nous avons enfin l’équation de la dynamique du capteur qui s’écrit :

𝑚¨x = P + f𝑒+ f𝑟 (5.2)

où 𝑚 et ¨x sont respectivement la masse et l’accélération du corps où se trouve le capteur, f𝑒 et f𝑟 sont respectivement les forces extérieures s’exerçant sur le capteur et la force exercée par les autres corps du robot sur le capteur, P est le poids du corps où se trouve le capteur. Cette équation est exprimée dans le repère du capteur. Dans notre cas, nous travaillons principalement en statique car nous voulons

figure 5.4: Position et orientation du capteur par rapport à la main. L’indice 𝑐 représente le capteur,

l’indice𝑚 la main.

mesurer les forces en statique. De fait on a ¨x = 0 et :

P + f𝑒+ f𝑟 = 0 (5.3)

et

f𝑒= −P − f𝑟 (5.4)

La force donnée par le capteur f𝑐est en fait égale à −f𝑟. De fait on a :

f𝑒= −P + f𝑐= −P + Gf𝑙 (5.5)

avec f𝑐= Gf𝑙et f𝑙 la force directement lue sur le capteur. En réalité, les capteurs sont calibrés lorsque

le robot se tient droit (toutes les articulations à zéro), les forces données sur la main sont mises à zéro ! Par conséquent nous rajoutons un décalage f𝑑sur le résultat et nous avons alors :

f𝑒= −P + G(f𝑙+ f𝑑) (5.6)

5.1.2.3 Loi de commande

Pour actionner les articulations, un couple est envoyé par les moteurs. Généralement dans les simulations, le couple appliqué résulte d’une loi de commande de type proportionnel-dérivée :

Γ = 𝐾𝑝(q𝑑− q) + 𝐾𝑣( ˙q𝑑− ˙q) (5.7)

mais nous devons en réalité tenir compte de différents facteurs tels que les frottements secs statiques et visqueux dans les articulations et les coefficients de réduction des moteurs. Avec ces différents

paramètres, le couple alors à envoyer pourrait plutôt résulter d’une loi qui s’écrit :

Γ = 𝑅 (𝐾𝑝(q𝑑− q) + 𝐾𝑣( ˙q𝑑− ˙q)) + 𝜇𝑣˙q + 𝜇𝑑sign( ˙q) (5.8)

avec 𝑅 les coefficients de réductions, 𝜇𝑣 et 𝜇𝑑 les coefficients de frottements visqueux et sec statique

respectivement. Ces différents paramètres ont été identifiés expérimentalement. 5.1.2.4 Flexibilités

Comme nous l’avons indiqué dans le chapitre précédent, le robot possède des flexibilités au niveau des chevilles. Ces flexibilités entraînent des oscillations sur le robot qui peuvent être réduites en utilisant un stabilisateur. Dans notre cas, nous nous passerons de ce stabilisateur car on ne connaît pas son expression et la façon dont il agit sur les références articulaires ; son usage serait donc clairement source d’incertitude pour la mesure. Par contre la flexibilité des chevilles existe et son influence, elle, n’est certainement pas négligeable. Par conséquent nous devons intégrer ces flexibilités. Nous utilisons pour cela le modèle, simplifié, présenté dans le chapitre précédent, à savoir un ressort-amortisseur virtuel dans chaque direction. Les valeurs des paramètres des ressorts-amortisseurs ont été réglées d’après les valeurs fournies par le groupe HRG [Nakaoka et al., 2007].

5.1.2.5 Simulation et expérience

Avec toutes ces considérations, nous obtenons alors les résultats présentés dans les figures 5.5 et 5.6 pour la simulation et l’expérience respectivement. Les figures 5.7 et 5.8 représentent les données du capteur de la main droite du robot en simulation (en bleu) et expérimentalement (en vert) selon les axes 𝑧 et 𝑦 respectivement du capteur. Noter que le robot n’effectuant le mouvement que dans le plan sagittal, on aura toujours une force nulle ou négligeable selon l’axe 𝑥 au niveau de la main.

Sur les figures 5.7 et 5.8, la période allant de 1s à 3s correspond au moment où le robot plie un peu ses jambes et ses bras, la période allant de 4s à 5, 5s correspond au moment où le robot plie son bras droit pour l’avoir à l’horizontale, le robot avance ensuite son bras de 5, 5s à 7s puis ne bouge plus. Au début (le robot se tient droit) le capteur donne comme valeur selon l’axe 𝑧 7, 55N qui est le poids de la main et bien 0 selon l’axe 𝑦. Contrairement à ce qui a été dit plus haut nous avons préféré faire en sorte que le capteur donne selon l’axe 𝑧 le poids de la main lorsque le robot se tient droit, pour que lorsque la main est à l’horizontale, le capteur nous donne 0N ce qui est bien le cas entre 5, 5s et 6, 5s. Le pic observé à 6, 5s correspond au moment où le robot touche la poutre avec sa main. Celle-ci a tendance à ripper légèrement sur la poutre ce qui provoque une chute des efforts de contact avant d’appuyer vraiment sur la poutre et donc obtenir des efforts positifs selon l’axe 𝑧. La force selon 𝑦 évolue peu et reste équivalente au poids de la main. Les oscillations observées à partir de 7s sont dues aux flexibilités des chevilles. Nous pouvons constater que nous obtenons des résultats en simulation très proches de ceux de la réalité. Les légères différences observées entre 6, 5s et 7s sont en particulier dues à des erreurs entre la position, l’orientation réelles du robot avec celles données au simulateur et à des erreurs dans la modélisation des flexibilités aux chevilles.

figure 5.5: Captures d’écran de simulation. De gauche à droite, le robot est d’abord tout droit, il plie

ensuite ses jambes et légèrement ses bras, il plie son bras droit pour l’avoir horizontal, il avance son bras, il touche alors la poutre et enfin il reste dans cette position.

figure 5.6: Captures d’écran de l’expérience.

5.2

Applications

Dans cette partie nous montrons trois applications pratiques de notre simulateur au robot HRP-2. Pour les deux premières applications, il s’agit pour le robot d’effectuer des tâches de manipulation

figure 5.7: Evolution de la force lue sur le capteur selon l’axe 𝑧 au cours du temps. En bleu, la force

calculée en simulation ; en vert, la force donnée par le capteur réel.

figure 5.8: Evolution de la force lue sur le capteur selon l’axe 𝑦 au cours du temps. En bleu, la force

calculée en simulation ; en vert, la force donnée par le capteur réel.

avec des objets. Le premier exemple consiste à soulever de manière dynamique une boîte lourde de 4, 5kg jusqu’à la hauteur des hanches, le deuxième exemple s’inspire de l’haltérophilie et consiste à soulever des objets lourds jusqu’au dessus de la tête du robot. Ces travaux ont été réalisés en collaboration avec Hitoshi Arisumi pour le premier exemple et avec en plus Sylvain Miossec pour le second exemple. En réalité, la seconde tâche que l’on peut qualifier d’extrême, a été réalisée grâce à l’optimisateur de trajectoire développé par Sylvain Miossec [Miossec et al., 2006] et dont la base est le calcul de la dynamique. Les deux applications qui suivent sont tirées de [Arisumi et al., 2007,

Arisumi et al., 2008]. Enfin, la dernière application consiste à générer des postures et des trajectoires dynamiquement stables et à les jouer sur notre simulateur. La génération de postures et de trajectoires a été réalisée dans le cadre du travail de thèse d’Adrien Escande et du stage de master de Sylvain Garsault, nous avons défini les scénarios puis validé leur réalisation sur notre simulateur. La majeure partie des résultats et figures sont tirés de [Garsault, 2008] pour cette partie.