• Aucun résultat trouvé

find

"

β

α

#

min −α

s. t. hG −(Ha)i

"

β

α

#

=h

"

β

α

#

0

(2.12)

Si le LP (2.12) admet une solution, alors la position du centre de masse dans

l’état initial, c

0

, permet de satisfaire les contraintes dynamiques imposées par la

phase de contact{p}et la valeur optimale α

donne la valeur maximale de

l’ampli-tude de l’accélération selon la directiona qui permet de satisfaire ces contraintes :

¨c

max

=aα

.

Nous pouvons maintenant appeler la méthode DIMT entre les deux étatsx

0

et

x

1

, avec ces bornes d’accélération calculées.

Nous avons donc développé dans cette section un test permettant de vérifier si un

état du robot est dynamiquement valide (c’est à dire qu’il respecte les contraintes

de non glissement) et une méthode permettant de calculer l’accélération maximale

admissible dans une direction donnée en fonction d’un état du robot. Ces deux

méthodes étant formulées comme des problèmes LP, nous pouvons utiliser des

mé-thodes de résolution du commerce afin de les résoudre efficacement.

Grâce à ces méthodes nous avons écrit une méthode de planification locale qui

génère une trajectoire optimale en temps, connectant exactement deux états x

{p}

0

et x

{q}1

, dynamiquement valide dans le voisinage de x

{p}0

. La partie effectivement

valide de cette trajectoire est ensuite déterminée par la méthode de validation de

trajectoire.

2.3 Application à la planification de guide avec

RB-RRT

Nous rappelons que la méthode présentée en introduction découple le problème

de planification de contact en deux phases : tout d’abord, la planification d’un

chemin guide (P

1

) grâce à la méthode RB-RRT utilisant un modèle simplifié du

robot (Fig.1.5) présentée dans la section1.5. Ensuite, la génération d’une séquence

discrète de configurations corps complet en équilibre statique qui suivent le chemin

trouvé précédemment (P

2

).

Grâce à l’intégration des méthodes présentées dans la section précédente au

sein de RB-RRT, nous transformons la problème de planification de chemin P

1

en un problème de planification de trajectoire. Ce qui nous permet alors de

sup-primer la contrainte qui imposait les configurations produites par P

2

d’être en

équilibre statique. Nous obtenons ainsi une version kinodynamique de RB-RRT

[Fernbach 2017].

Cela nous permet de nous intéresser à résoudre d’autres types de problèmes,

qui n’auraient pas de solution quasi-statique. Par exemple un mouvement incluant

un saut, ou de devoir descendre une pente qui n’est pas presque plate (c’est à dire

dont la normale est orientée telle que le cône de friction ne contient pas la direction

opposée à la gravité).

De plus, grâce à l’utilisation de ces méthodes nous pouvons désormais garantir de

forte probabilité que des configurations en équilibre existent le long de la trajectoire

planifiée.

Dimensions et notations de la trajectoire guide

Dans le cas géométrique, RB-RRT planifie une trajectoire pour la base mobile

du modèle simplifié dansSE(3) (la position et l’orientation 3D du centre du modèle

réduit) et pour lesn

trunk

degrés de liberté du tronc du robot. La trajectoire est donc

représenté parq

trunk

(t) avec q

trunk

SE(3)×R

nroot

une configuration du modèle

réduit.

Dans le cas kinodynamique, nous rajoutons les variables d’état ˙c∈R

3

et¨c∈R

3

respectivement la vitesse et l’accélération du centre de masse du modèle réduit.

Or, la position du centre de masse du modèle réduit c est uniquement définie par

q

trunk

, nous avons donc bien une trajectoire centroïdale sous sa forme classique

x(t) =<c,˙c,¨c>.

Au final, la trajectoire guide est notée par :

<x(t) =<c,˙c,¨c>,q

trunk

(t)> (2.13)

Lors de la planification locale, la trajectoire centroïdale x(t) =< c,˙c,¨c > est

générée via la méthode de planification locale présentée dans la section précédente

tandis que les autres degrés de libertés q

trunk

sont gérés comme dans la méthode

RB-RRT géométrique : une interpolation dansSO(3) pour l’orientation de la base

mobile et une interpolation linéaire pour les degrés de liberté du tronc du robot.

2.3.1 Planification de trajectoire pendant P

1

2.3.1.1 Intégration de la méthode de planification locale

L’efficacité de la méthode RB-RRT s’explique en partie par le découplage entre la

planification de trajectoire guide et la génération de contact. En effet, durantP1 les

contacts ne sont pas générés explicitement afin d’éviter la complexité combinatoire

que cela impliquerait.

Cependant, la méthode de planification locale présentée dans la section

précé-dente nécessite de connaître les contacts actuels entre le robot et l’environnement,

puisqu’elle prend en entrée des états associés à des phases de contact x

{p}

qui

dé-finissent donc P

{p}

et N

{p}

, respectivement la position des points de contact et

2.3. Application à la planification de guide avec RB-RRT 59

la normale des surfaces de contact pour la phase de contact {p}. Afin de pouvoir

utiliser notre méthode d’extension locale au sein de RB-RRT nous allons donc

ap-proximer ces contacts durantP1 comme suit :

Pour une position du centre du modèle réduit c donnée, l’intersection entre les

espaces atteignables de chaque membre et l’environnement est calculée, et l’on

sup-pose que le contact existe au centre de cette intersection, comme présenté sur la

figure 2.3. Dans le cas où l’espace atteignable d’un membre intersecte

l’environ-nement en plusieurs surfaces disjointes, la position du contact est approximée au

centre de la surface la plus proche de la configuration de référence de ce membre.

Une autre approximation est faite pour la position du centre de masse, qui

est placée au centre géométrique du modèle simplifié. Cette dernière

approxima-tion est équivalente à supposer que les membres du robot ont une masse nulle

[Mordatch 2012].

Figure 2.3 – Approximation des points de contact utilisée pendant P

1

. Gauche :

les polygones bleus représentent les intersections entre l’espace atteignable d’un

membre et l’environnement. Le centre de cette intersection (sphères noires) est la

position du centre du pied ou de la main estimée durant P

1

, à partir de laquelle

les points de contact (sphères rouges) sont extrapolés. Droite : configuration corps

complet correspondante générée pendantP

2

.

2.3.1.2 Validation de trajectoires pendant P

1

De la même manière, la méthode de validation de trajectoire prend en entrée un

ensemble de phases de contact représenté par P(t) etN(t) et nous devons donc les

approximer. Pour ce faire, nous calculonsP(0) etN(0) via l’approximation proposée

dans la sous-section précédente. Puis nous supposons que tant que la même surface

de l’environnement intersecte l’espace atteignable des membres, les points de contact

glissent en suivant la trajectoire du centre du modèle réduitc(t). Ceci revient à dire

que la position des points de contact dans le référentiel local du robot est constante.

Lorsque la surface sur laquelle la position des points de contact avait été estimée

àt= 0 n’est plus dans l’espace atteignable d’un membre, on approxime de nouveaux

points de contact avec la même méthode. Au final, N(t) est constant par morceaux

etP(t) est différentiable par morceaux.

2.3.2 Génération de saut

Dans cette sous-section, nous montrons un cas d’utilisation particulier de notre

planificateur : la génération de trajectoires comprenant des sauts.

Afin de pouvoir planifier une trajectoire comprenant un saut, il faut tout d’abord

pouvoir générer une trajectoire balistique connectant exactement deux positions,

pour cela nous nous basons sur les travaux de [Campana 2016b] résumés dans la

sous-section 1.2.2.

Ici, nous nous intéressons à planifier une trajectoire qui ne comprend des sauts

que lorsque cela est nécessaire, et nous montrons comment intégrer de telles

trajec-toires lors de la planification, tout en assurant la validité dynamique du résultat.

1) 2-a) 2-b)

3) 4) 5)

Figure 2.4 – Un saut est composé d’une phase balistique et d’une phase de

prépa-ration, planifié séquentiellement.

Notre méthode de planification locale peut produire des trajectoires x(t) entre

deux états x

0

etx

1

qui résultent en des phases où le nombre de contacts possibles

passe en dessous d’un seuil défini par l’utilisateur (Fig2.4- 1), c’est à dire que

l’es-pace atteignable de certains membres n’est plus en collision avec l’environnement.

Lorsque ce cas est détecté pendant la validation de trajectoire, le planificateur essaie

de générer un saut comme suit :

Tout d’abord, il identifie le dernier état valide où suffisamment de zones

attei-gnables sont encore en collision avec l’environnement x(t

to

) (Fig2.42-a). La figure

2.4 2-b montre le premier état invalide : l’espace atteignable des deux pattes avant

ne sont plus en collision, aucun contacts n’est donc possible pour ces pattes.

Ensuite, en utilisant la méthode présentée dans la sous-section 1.2.2, une

tra-jectoire balistique est générée entre c

to

et c

1

en calculant la vitesse de décollage

nécessaire ent

to

: ˙c

to

(Fig2.43, le vecteur bleu est la vitesse de décollage requise).