Perception

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

5.2 Système

5.2.1 Perception

Les données sensorielles que nous avons à traiter sont des nuages de points 3D issus du capteur et alignés avec la variante d’icp présentée dans lasection 3.3.2. C’est une infor-mation creuse, au sens où un nuage de points nous renseigne sur ce qui existe en chaque point du nuage, mais ne dit rien entre eux.1Nous avons besoin d’une représentation qui nous permette de décider :

– si une pose particulière est acceptable (libre de collision, avec assez de surface de support et avec une inclinaison limitée) ;

– et s’il est possible de se déplacer entre deux poses voisines.

En particulier, il va falloir pouvoir répondre à ces questions n’importe où dans l’espace et il faut donc une représentation dense en ce sens. De plus, nous devons construire cette représentation en ligne, sur le robot, ce qui exclut des traitements trop couteux en espace mémoire et surtout en temps de calcul.

Le tensor voting permet justement d’inférer, en un endroit quelconque de l’espace, la structure géométrique à partir d’un nuage de point. Plus précisément, les tenseurs votent pour estimer les caractéristiques et la saillance de primitives géométriques (plan, ligne, ou sphère dans notre cas). Ce processus est souvent effectué en deux étapes avec une pre-mière phase, sparse voting (vote creux), où l’on estime la structure (le tenseur) en chacun des points d’entrée et une deuxième phase, dense voting (vote dense), où l’on peut calcu-ler le tenseur aux endroits désirés, typiquement des cellules dans une grille régulière. On obtient alors une grille 3D de cellules contenant chacune la saillance et les paramètres de chaque tenseur : vecteur normal pour un plan et direction principale pour une ligne.

Nous nous sommes intéressés essentiellement aux tenseurs de plans pour estimer les surfaces locales avec leur orientation. Un paramètre clé du tensor voting est la taille du noyau qui définit l’échelle à laquelle sont considérés les tenseurs. Nous avons choisi cette taille de manière à correspondre à la taille du robot, c’est-à-dire en pratique, de manière à ce que l’orientation du plan inféré correspondra en général à celle du robot à cet endroit.

Filtre de distance

Le nombre de votes de la phase de sparse voting est quadratique en nombre de points du nuage puisque chaque point est censé voter pour tous les autres. Nous avons proposé une implémentation sur carte graphique dans un autre travail (Liu et al., 2012) mais le robot ciblé n’en est pas pourvu. On peut néanmoins réduire à un nombre linéaire en combinant un noyau à support borné et une limitation du nombre de point sur ce support, c’est-à-dire de la densité des points. Le nombre de votes devient alors k× N avec N le

nombre de points et k le nombre de point maximal sur le support du noyau. Le problème est que le nuage de points peut présenter une densité de points arbitrairement grande à certains endroits et faible dans d’autres. On ne peut donc pas se contenter de sous-échantillonner de manière uniforme puisque l’on perdrait de l’information là où peu de points la présentent avant de limiter utilement la complexité.

Nous proposons donc de réduire à la fois le nombre de points et la densité maximale en supprimant les points qui sont trop proches les uns des autres. L’algorithme 2montre l’algorithme, avec d la distance la plus proche acceptée.

Alg. 2 Algorithme de filtrage des points par la distance. for all p∈ nuage de point do

for all n∈ nuage de point tel que ∥n − p∥ ≤ d do

supprime n

end for end for

Cet algorithme peut être réalisé efficacement à l’aide d’une recherche de plus proche voisins rapide (Elseberg et al.,2012) et en marquant les points à supprimer plutôt que

(a) Nuage de points d’origine. (b) Filtrage aléatoire.

(c) Filtre de distance. (d) Comparaison.

Fig. 5.1: Comparaison du filtre de distance avec un filtre aléatoire. En haut à gauche : nuage de points complet représentant deux étages avec la cage d’escalier à gauche ; les points (488 918) sont colorés en fonction de leur élévation. En haut à droite : nuage de points après filtrage aléatoire (36 014 points). En bas à gauche : nuage de points après filtrage de distance (36 014 points). En bas à droite : super-position des nuages de points ; en vert le filtre aléatoire et en magenta le filtre de distance. (Adapté de (Colas, Mahesh et al.,2013).)

les supprimant directement pour ne pas avoir à reconstruire le kD tree. La complexité de cette phase passe dont de O(N2)à O(N log N). Il ne s’agit pas ici de construire une repré-sentation optimale en minimisant le nombre de points, mais plutôt d’avoir un compromis raisonnable pour le temps de calcul du sparse voting.

La figure 5.1 montre une comparaison entre le filtre de distance et le sous-échantillonage aléatoire. Comme prévu, ce dernier perd de nombreux points dans les zones de faible densité alors que le filtre de distance garde une représentation plus équi-librée.

Tensor voting dense et paresseux

Après la phase de sparse voting, on peut faire la phase de dense voting ; c’est-à-dire calculer, en chaque endroit, les tenseurs d’après le vote de chaque point. La complexité est donc en O(N × G) avec G le nombre de cellule dans la grille dense. Ce nombre de

cellule est cubique en fonction de l’inverse de la taille du côté de la cellule, ce qui peut être prohibitif même pour des environnements d’intérieur : un quart de milliards de cellules de 5 cm dans un bâtiment de 100× 20 × 16 m.

Cependant la plupart de ces cellules sont vides et, contrairement aux robots volants, beaucoup plus ne sont pas pertinentes pour un robot au sol (plafonds, lampes, parties

Tab. 5.1: Évaluation du dense voting paresseux (adapté de (Colas, Mahesh et al.,2013)). nombre de cellules moyenne par cellule

Environnement total nécessaire nombre de requêtes temps de calcul

Escalier 5 509 350 131 586 1805 0,474 ms

Bureau 1 140 700 38 070 1016 0,577 ms

supérieures des murs et des obstacles). Ainsi, nous proposons de n’effectuer le dense voting qu’aux endroits où c’est nécessaire. Ce ne peut être déterminé que pendant la phase de planification et d’expansion de l’espace atteignable. Plutôt que de tout calculer a priori, nous effectuons le dense voting à la demande en utilisant un mécanisme de mémoïsation à l’aide d’une table de hachage pour ne pas le faire plusieurs fois.

La table 5.1 compare le nombre de cellules dans des environnements avec celui né-cessaire à la planification. Pour donner un élément de comparaison, la boite englobante du robot est de l’ordre de 400 cellules. On remarque donc que le calcul à la demande ré-duit le nombre de cellules calculées d’un ordre de grandeur. De plus, le nombre moyen de requêtes pour chaque cellule en regard du temps de calcul démontre l’intérêt de la mémoïsation.

5.2.2 Planification

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