• Aucun résultat trouvé

Planification

Dans le document Modélisation bayésienne et robotique (Page 82-85)

5.2 Système

5.2.2 Planification

Les techniques de recherche de chemin dans un graphe de la famille de Dijkstra et A* ont des problèmes de passage à l’échelle lors de l’augmentation de la dimension de l’espace de planification à cause de l’augmentation exponentielle du nombre de voisins, c’est-à-dire du facteur de branchement. L’espace des configurations statiques de notre robot est de dimension 11, avec les 6 dimensions de la pose du corps central, les 4 angles des flippers et l’angle entre les bogies.

Faire une recherche exhaustive dans cet espace serait trop couteux pour une planifi-cation en ligne, mais on peut réduire la complexité à l’aide des observations suivantes :

– l’assiette (tangage et roulis) et l’angle entre les bogies sont complètement détermi-nés par la position du robot et le terrain autour de cette position ;

– l’orientation (cap) est déterminée par la séquence des positions puisque le robot n’est pas holonome ;

– les angles des flippers peuvent être déterminés de manière à aider le robot à effectuer la séquence de positions.

On s’aperçoit alors qu’il est possible de planifier un chemin dans l’espace à trois dimen-sions de la position du robot et ensuite de recouvrer les dimendimen-sions restantes grâce à la connaissance du terrain. Pour cela, il est nécessaire de s’assurer que le chemin est fai-sable en termes d’assiette, d’orientation et d’angles des flippers en prenant en compte les contraintes que ça induit dans la connectivité du graphe de planification. Cela se traduit aussi par une fonction de cout entre des nœuds voisins qui exprime les différences de difficulté liées à ces dimensions dépendantes.

Pour l’algorithme spécifique de recherche de chemin, nous avons choisi D*-Lite (Koe-nig et Likhachev,2002). Il s’agit d’un algorithme de recherche de chemin de moindre cout dans un graphe à l’aide d’une heuristique comme A* mais, à la différence de ce der-nier, il peut être utilisé pour adapter le chemin dans le cas d’un changement dans les couts ou dans la position du robot.

Connectivité

La planification de chemin en 2D se fait généralement sans référence explicite aux obstacles mais en n’introduisant pas les régions occupées dans le graphe. Dans le même esprit, nous recherchons les chemins faisables (pas seulement libres de collision) en re-streignant les connexions aux cellules faisables. Ainsi, nous considérons une connectivité générique de 26 voisins (les directions cardinales et les diagonales en 3D) et nous vérifions, durant l’expansion d’une cellule, lesquels de ces 26 voisins sont faisables depuis cette cel-lule.

Plusieurs critères entrent en jeu dans la définition d’un voisin acceptable : – le robot n’est pas en collision ;

– il y a une surface pour supporter le robot ;

– la surface est orientée de manière à ce que le robot ne se renverse pas.

Le critère de non-collision est vérifié en regardant l’intersection entre le nuage de points laser et la boite englobante du robot positionné à l’aide de la surface en cette cellule. Le critère de support est assuré grâce à un seuil sur la saillance de la surface de support telle que calculée par le dense voting. Enfin le critère d’orientation se base sur l’angle entre la verticale et le vecteur normal à la surface, estimé lui aussi par le dense voting.

Fonctions de cout

D*-Lite fonctionne, comme Dijkstra et A*, avec une liste de nœuds en attente qui sont considérés en fonction du cout total depuis la position de départ :

g(c) = min

n∈N{g(n) + cost(n, c)},

avec g le cout depuis le départ,N la liste des voisins acceptables de la cellule c considérée

et cost(n, c) le cout de transition de la cellule n à la cellule c.

Pour cette dernière fonction de cout, nous définissons les éléments suivants : – saillance : les voisins les plus saillants sont préférés ;

– stabilité : les voisins avec les pentes les moins fortes sont préférés ; – distance : les voisins les plus proches sont préférés ;

– orientation : les voisins pour lesquels la direction du robot suit la plus grande pente sont préférés.

Ces critères sont assez évidents à l’exception peut-être du dernier qui est motivé par la conception du robot. En effet les flippers permettent de franchir un fossé en agrandissant le polygone de sustentation, mais ils permettent aussi une plus grande stabilité dans l’axe de déplacement du robot. Cela se traduit par la possibilité d’une inclinaison plus grande en tangage qu’en roulis. En pratique notre robot peut grimper une pente de 45° mais pas s’y déplacer en diagonale. C’est une caractéristique commune aux robots équipés de

10°

flat

tip-over approach driving

Fig. 5.2: Configurations des flippers pour franchir des obstacles positifs ou négatifs (repris de (Colas, Mahesh et al.,2013)).

Pour obtenir une pondération entre ces différents éléments, nous avons optimisé ces paramètres sur des trajectoires de test en visant à réduire conjointement la longueur et la courbure du chemin. Cela conduit à un poids assez grand sur la composante de distance pendant que les autres composantes contribuent à un chemin plus lisse.

Configuration

Une fois le chemin obtenu sous la forme d’une suite de positions il est nécessaire de déterminer les angles des flippers. Une technique serait de définir ces angles à l’aide de la surface de support de manière à ce que chaque flipper ait le meilleur contact possible. Cette idée vient du rôle stabilisateur des flippers. Mais ils ont aussi un rôle pour aider aux transitions. Par exemple, lorsque le robot doit grimper sur un obstacle, les flippers avant doivent rester fixes et non pas chercher à s’adapter à la surface en se repliant progres-sivement. De la même manière, en s’engageant dans une pente descendante, les flippers arrière peuvent faciliter le basculement en poussant plutôt qu’en restant sur la surface.

Nous avons donc regroupé les configurations des flippers en quatre postures suivant quatre situations typiques (figure 5.2) :

– driving (conduite) : les flippers sont repliés pour réduire les frottements au sol et libérer le champ de vision des capteurs pour de la navigation en terrain facile ; – flat (plat) : les flippers sont étendus à plat pour augmenter la stabilité et la traction

dans les pentes ;

– approach (approche) : les flippers avant sont levés pour négocier un obstacle positif pendant que les flippers arrière sont étendus pour prévenir un basculement ; – tip-over (basculement) : les flippers sont dirigés vers le sol, à l’avant pour amortir

et à l’arrière pour aider au basculement lors d’obstacles négatifs.

Concrètement, une posture est associée à chaque position du chemin planifié. Cela est effectué en deux passes : d’abord les postures permanentes, driving et flat, en fonction de la pente ; ensuite les postures de transitions, approach et tip-over, en fonction du signe du changement de pente.

Dans le document Modélisation bayésienne et robotique (Page 82-85)

Documents relatifs