• Aucun résultat trouvé

Vue générale

Dans le document SLAM temporel à contraintes multiples (Page 129-133)

SLAM contraint

8.3.1 Vue générale

++Ci,k σi ++ ++2 (8.1)

avec C les différents types de contraintes, avec Ki le nombre d’observations correspondant à la contrainte i, Ci,k l’erreur associée à l’observation k de la contrainte i et σi l’estimation de l’erreur de mesure (qui est spécifique à chaque contrainte). L’avantage de cette approche est que la fonction de coûtE est re-générée automatiquement en analysant le graphe si celui-ci change.

La conception du framework MCSLAM est basée sur 3 contributions : 1. la bibliothèque d’optimisation LMA présentée dans le chapitre II,

2. une architecture logicielle avec un haut niveau de modularité et de performances,

3. une utilisation temps réel d’un modèle de trajectoire paramétrique offrant une manière efficace d’inclure des contraintes hétérogènes asynchrones dans le processus d’optimisation (détaillée chapitre10).

Les objectifs de l’approche MCSLAM et les solutions proposées sont :

— la modularité : utilisation d’un graphe de dépendances entre paramètres et contraintes ; ajouter ou retirer une contrainte revient alors à l’ajout ou la suppression d’un nœud dans le graphe, — la performance : résolution du problème d’optimisation basée sur l’utilisation de LMA.

8.3.1 Vue générale

Le MCSLAM est doté d’une architecture classique de SLAM. Ainsi, trois processus principaux sont exécutés en parallèle : l’acquisition, la localisation et la reconstruction. La « reconstruction » est une notion relative au SLAM visuel. Dans un contexte plus général, on parle ici de reconstruction pour qualifier l’optimisation de l’ensemble des paramètres du problème par opposition à la localisation où seule la trajectoire est optimisée. Le processus d’acquisition est composé d’une liste de capteurs gérés par un outil d’acquisition multi-capteurs nommé vbus et disponible dans la bibliothèque libv2. La localisation reçoit et traite les données pour estimer la pose courante en fonction de différentes contraintes. Toutefois, seuls les paramètres de trajectoire sont optimisés (la carte 3D n’est pas mise à

La modularité du MCSLAM provient de la modélisation des problèmes d’optimisation sous la forme d’un graphe de dépendances. Ce graphe est composé de deux types de nœuds : des nœuds de contraintes liés à des nœuds de paramètres. Dans la suite du manuscrit, la représentation graphique d’un nœud qui dépend d’une contrainte est la suivante :

Contrainte Paramètre

Les liens sont orientés afin de définir les dépendances entre les nœuds du graphe. Chaque nœud est défini par l’utilisateur et doit contenir les éléments suivants :

— pour les nœuds de paramètres :

— à la compilation : le type de paramètre du nœud, — à l’exécution :

— les dépendances (autres nœuds du graphe), — les instances de paramètres à optimiser, — pour les nœuds de contraintes :

— à la compilation : la fonction de coût du nœud, — à l’exécution :

— les dépendances,

— les instances d’erreurs du nœud à ajouter à l’optimisation. Le graphe est parcouru de deux façons :

1. à la compilation : pour lister les différents termes d’erreurs de la fonction de coût du problème afin de générer un solveur spécifique avec la bibliothèque LMA,

2. à l’exécution : pour parcourir le graphe afin de définir les paramètres à optimiser et les contraintes nécessaires tout en respectant l’ordre de parcours défini par les dépendances. A titre d’exemple, pour un problème de SLAM classique, la définition du graphe de dépendances suivant :

Reprojection

Images

nécessite l’implémentation par l’utilisateur de 3 nœuds ayant les caractéristiques suivantes : — nœud de paramètres « Images clés » :

— le type de paramètre à optimiser est une pose à 6 dof. (paramétrisation classique),

— les poses à optimiser sont les 3 dernières images clés (critère de Mouragnon vu dans la section 2.2).

— nœud de paramètres « Points 3D » :

— le type de paramètre à optimiser est un point 3D à 3 dof., — le nœud « Images clés » doit avoir été préalablement appelé,

— les points 3D à optimiser sont ceux vus dans les images clés à optimiser (définies par le nœud « Images clés »).

— nœud de contraintes « Reprojection » :

— la contrainte est l’erreur de reprojection entre des poses et des points 3D,

— les nœuds « Images clés » et « Points 3D » doivent avoir été préalablement appelés, — la liste des erreurs est définie par l’ensemble des points 3D définis dans le noeud « Points

3D » projeté dans l’ensemble des poses 3D définies dans le noeud « Images Clés ».

A la compilation, un solveur sera généré pour minimiser la contrainte d’erreur de reprojection, et à l’exécution, le graphe sera parcouru dans l’ordre « Images clés »→ « Points 3D » → « Reprojection » On observe que le nœud « Reprojection » dépend de la résolution préalable des nœuds de paramètres. C’est pourquoi, la notion de dépendance du graphe est importante. Dans la suite du manuscrit, les schémas représentant les graphes de dépendances pourront ne pas contenir l’ensemble des liens entre nœuds afin de faciliter la lecture.

La forme générale du graphe doit être définie statiquement, i.e. directement dans le code source et prend une forme relativement simple :

Graph<Constraints(Reprojection),Parameters(KeyFrames,Points3D)> graph;

Les dépendances entre nœud n’apparaissent pas dans la définition statique du graphe car elles ne sont utiles qu’à l’exécution du programme. L’ajout ou le retrait d’un nœud (contraintes ou paramètres) s’effectue simplement en ajoutant ou retirant le nœud dans les listes Constraints ou Parameters. La sélection des paramètres à optimiser et les erreurs à utiliser sont définies à l’exécution. Ainsi conçu, le MCSLAM permet de générer facilement des configurations diverses de SLAM. Le graphe de dépendances ajoute un niveau d’abstraction3 à l’utilisation de la bibliothèque LMA. C’est pourquoi, celui-ci est disponible en open-source avec la bibliothèque LMA.

8.4 Conclusion

L’état de l’art du SLAM contraint est riche en contributions. Toutefois, chaque travail de recherche se focalise sur le développement d’une ou deux contraintes. L’objectif du MCSLAM est de proposer une approche suffisamment modulaire et performante pour intégrer au sein d’un même algorithme les travaux de l’état de l’art. La configuration du graphe de dépendances se fait simplement par ajout ou retrait des contraintes, ce qui permet de générer rapidement différentes configurations de SLAM. Dans le cadre de la thèse, le framework a été utilisé pour générer des applications de SLAM visuel, telles que l’algorithme présenté dans le chapitre3 et des applications à contraintes multiples, comme le montre les expérimentations présentées dans le chapitre11.

Dans le document SLAM temporel à contraintes multiples (Page 129-133)