• Aucun résultat trouvé

Mouvements de reference pour le robot

4.1 Introduction

Le but de ce chapitre consiste a produire non pas des mouvements optimaux, mais des mouvements proches de la marche humaine pour le robot. Nous avons besoin de plu-sieurs types de trajectoires de reference, de sorte que le robot puisse avoir la possibilite de choisir et d'adapter son mouvement a l'environnement. La capture de mouvements four-nit des trajectoires de reference cycliques. Les progres recents des techniques de capture de mouvements permettent de generer facilement et rapidement des donnees de mouve-ments humains. Ces techniques de capture de mouvemouve-ments ont ete largement utilisees pour animer des squelettes de corps rigides 3D. En utilisant des technologies magnetiques ou optiques, il est possible de stocker les positions et les orientations de marqueurs localises sur le corps humain. L'ensemble de toutes les positions represente le mouvement realise par l'humain, mouvement qui est ensuite rejoue par le personnage virtuel.

Nous presentons la methode que nous avons utilisee pour obtenir un cycle de marche, a partir des donnees qui nous ont ete fournies. N'ayant aucune donnee sur des mouvements transitoires du robot, nous presentons ensuite une methode qui permet de calculer de tels mouvements. Ces mouvements transitoires nous paraissent necessaires, car il s'avere insusant de n'avoir qu'un cycle de marche : avant d'avoir un rythme de marche cyclique, il faut que le robot puisse demarrer, puis s'arr^eter apres.

4.2 Adaptation de mouvements captures pour l'obtention d'un

cycle de marche

Les donnees qui nous ont ete fournies sont des groupes de positions cartesiennes des marqueurs, comme celles fournies dans [Win90]. Chaque groupe comprend les positions cartesiennes de tous les marqueurs places sur le sujet, dans le repere du monde, et corres-pond a une posture du sujet a un instant donne. L'ensemble de ces groupes correscorres-pond a l'ensemble des postures du sujet, c'est-a-dire a son mouvement.

70 Mouvements de reference pour le robot

Nous avons vu, au chapitre 2, que le contr^ole du mouvement devrait ^etre de ni par fonction de t^aches, sur des trajectoires articulaires ou angulaires. En e et, il est plus courant de travailler avec ce type de donnees en robotique, en particulier lorsqu'un envi-ronnement est pris en compte. Ainsi, la trajectoire de nie est independante du referentiel de base, et peut ^etre rejouee par le robot n'importe ou dans l'environnement, du moment que les elements de cet environnement le permettent. D'ailleurs, ce type de representation est d'autant plus necessaire des que nous souhaitons considerer des mouvements cycliques. Cela n'a e ectivement que peu de sens de parler de trajectoires cycliques, si ces trajectoires sont de nies en coordonnees cartesiennes. Le premier travail a donc consiste a transformer ces donnees cartesiennes en coordonnees articulaires.

4.2.1 Transformation en coordonnees articulaires

Le mouvement de marche, comme nous l'avons note au chapitre refch :marche, se deroule principalement dans le plan sagittal. Il constitue donc un mouvement 2D, ce qui

est veri e sur les donnees capturees, les valeurs des coordonnees en Z restant quasiment

constantes au cours du mouvement, pour chaque articulation. Par consequent, les

seg-ments sont coplanaires, avec pour normale l'axe (OZ). Nous determinons les coordonnees

articulaires comme etant les angles entre les segments adjacents aux articulations. Plus precisement, un repere local est attache a chaque segment. Le repere qui lui est adja-cent est soit son ls, soit son pere dans la structure arboresadja-cente. Un segment ls est entierement de ni par rapport a son pere. Ainsi, l'origine de son repere local correspond

a l'extremite du repere de son pere, et il est oriente d'un angle  par rapport a son pere.

C'est cet angle que nous souhaitons determiner.

Pour cela, nous utilisons la methode des tangentes. Nous calculons la valeur de l'angle



i que fait un segment i avec l'horizontale par :

 i = arctan y B ,y A x B ,x A

ou les pointsA= (x

A ;y A ;z A) et B = (x B ;y B ;z

B) sont les extremites du segment i(cf.

Fi-gure 4.1 (a)).

Puis, pour une articulation donnee, nous calculons les angles 

i et 

j pour les deux

segments i et j qui lui sont adjacents, et nous en deduisons la valeur de l'angle  associe

a cette articulation par :

 =

j

,

i

si le segmentj est de ni par rapport au segmenti(cf. Figure 4.1 (b)). Sinon, c'est l'oppose.

4.2.2 Determination du cycle

Une fois que nous avons le mouvement en coordonnees articulaires, nous determinons le cycle de reference de ce mouvement. Cependant, le mouvement capture s'est avere

4.2 Adaptation de mouvements captures pour l'obtention d'un cycle de marche71

segment i

a) Angle avec l’horizontale

C segment j segment i articulation b) Angle de l’articulation A A θ B A i θ B j θ i θ

Fig.4.1: Calcul des angles par la methode des tangentes.

n'^etre qu'un cycle et demi de marche. Nous n'avons pu le decouper en plusieurs cycles de maniere a veri er la stabilite du mouvement. Nous nous sommes contentes de decouper le mouvement en un cycle, a partir de deux evenements identiques, a savoir le decollement des orteils. Nous avons ensuite veri e que les coordonnees articulaires de toutes les arti-culations etaient identiques a ces deux instants. L'erreur entre ces deux postures, calculee a partir des angles en radians par :

e = X i (q i(t 1),q i(t 2))2 avec t 1 ett

2 les instants correspondants des deux postures, est de l'ordre de 0:005, ce que

nous avons juge comme tout a fait acceptable.

4.2.3 Longueur des segments

Nous avons ensuite determine la longueur des segments-membres du sujet humain, c'est-a-dire entre chaque couple de marqueurs adjacents. Les donnees capturees de posi-tions etaient bruitees, certainement a cause du bruit lie a la capture du mouvement et du deplacement des capteurs sur la peau du sujet pendant le mouvement. Nous avons donc calcule la moyenne de ces longueurs sur l'ensemble du mouvement. Nous avons utilise ces longueurs pour notre robot virtuel. Elles sont legerement di erentes des longueurs prevues pour le robot reel. Le fait de les utiliser evite d'eventuels problemes de cinematique. En e et, si nous prenons pour notre simulation des longueurs de segments di erentes de celles de l'humain lors de la capture du mouvement, et si nous rejouons les m^emes valeurs des angles au cours du temps, il est possible que les pieds de notre robot virtuel penetrent le sol. Il devient alors necessaire de faire appels aux techniques de reajustement de mouve-ment a de nouveaux personnages (cf. paragraphe 3.3.4).

Documents relatifs