• Aucun résultat trouvé

4.2 Intégration de la dérive dans le SLAM

4.2.2 Architecture dédiée

Grâce au modèle présenté ci-avant, il devient possible d’intégrer le biais dans le processus d’estimation afin de prendre en compte la dérive induite par le SLAM. Chaque pose de véhicule (ou amer) pourrait être directement connectée à l’estima- tion de biais correspondante dans le filtre de Kalman. Néanmoins, procéder d’une telle façon ne provoquerait pas le comportement attendu. En effet, l’incertitude pro- venant du biais ainsi que celles issues des mesures seraient mélangées dans la matrice de covariance associée au vecteur d’état. Comme cela a été plusieurs fois énoncé, l’intégration d’observations via le filtre de Kalman tend à faire sur-converger l’es- timation de la pose du véhicule. En mixant les incertitudes, puis en intégrant de nouvelles observations, l’incertitude provenant du biais serait alors globalement ré- duite par ce problème de sur-convergence. Cette méthode n’est donc pas viable pour la prise en compte de la dérive.

Plutôt que de l’intégrer dans le SLAM dit bas niveau, nous avons décidé de sortir l’estimation du biais dans un deuxième filtre. Ce dernier se contente de recevoir les amers et la pose du véhicule en provenance du SLAM classique présenté jusqu’ici. Les nouvelles observations sont uniquement intégrées dans le bas niveau et n’affectent donc pas l’estimation du biais. En plus d’éviter ce phénomène, cette configuration permet de rendre le SLAM bas niveau totalement indépendant de la gestion du biais. Par conséquent, il est possible d’utiliser n’importe quel algorithme de SLAM à la place de l’EKF monoculaire présenté ici. Le SLAM doit juste fournir la pose du véhicule, sa covariance et les positions et incertitudes des amers. Les capteurs utilisés importent peu et une approche employant plus qu’une simple caméra peut remplacer notre solution monoculaire. De même, la méthode de localisation n’a pas

d’importance dans ce cas et ouvre ainsi la porte à la minimisation globale ou à d’autres filtres.

Le deuxième processus d’estimation mis en place est également basé sur un filtre de Kalman étendu afin de pouvoir intégrer facilement les informations permettant d’estimer la dérive. L’organisation globale du système est montrée en figure 4.16.

Figure 4.16 – Organisation globale du système

Les deux parties de ce système interagissent uniquement par l’intermédiaire d’une queue dans laquelle les amers du bas niveau (et la pose du véhicule) sont déposés. Le haut niveau se charge ensuite d’intégrer ces amers ainsi que la dérive dans l’EKF. Les informations permettant de faire une estimation du biais sont di- rectement gérées dans le haut niveau. Il est ainsi facile de prendre en compte une information absolue, une fermeture de boucle ou encore des amers provenant d’autres véhicules.

Afin de ne pas surcharger la mémoire en menant deux processus SLAM de front, le bas niveau peut être spécialisé vers une odométrie visuelle. L’intérêt est que dès que les amers ne sont plus visibles, ceux-ci sont supprimés du bas niveau et uni- quement conservés dans le SLAM intégrant la dérive. Ainsi, il est toujours possible d’identifier des fermetures de boucle et le coût du bas niveau reste faible en plus d’être approximativement constant. Côté charge processeur, celle-ci n’évolue que très peu car le haut niveau n’a pas pour but de faire directement le suivi des amers. Celui-ci cherche seulement à estimer la dérive et n’effectue pas les mêmes actions que le SLAM bas niveau.

Il est bon de noter que les amers sont transmis au haut niveau seulement lorsqu’ils sont précis (incertitude inférieure à moins de 50 centimètres cumulés sur les 3 axes). En effet, envoyer régulièrement des estimations d’un même amer nécessiterait la prise en compte du biais à chaque fois ce qui induit un surcoût calculatoire non négligeable. De plus, des amers imprécis ne sont pas utiles à l’estimation de la dérive.

L’algorithme d’association de données cherchant des fermetures de boucle (ou des informations similaires) requiert des amers précis afin d’être robuste. Une fois envoyé, les amers peuvent toujours être améliorés localement dans le bas niveau. Néanmoins, le gain d’information est faible par rapport à l’incertitude de biais, rendant cette perte à haut niveau quasiment nulle.

Le fait de transformer le SLAM bas niveau en une odométrie visuelle pose la question de quand envoyer les amers vers le SLAM haut niveau. Deux possibilités sont envisageables : soit dès qu’ils ne peuvent plus être observés, soit dès qu’ils sont suffisamment précis pour être utile au haut niveau. Nous privilégierons la seconde méthodes car ces amers peuvent ainsi aider l’estimation de la dérive plus rapidement que si l’on doit attendre qu’ils ne soient plus observables. La figure 4.17 montre les interactions entre le SLAM bas niveau et le filtre prenant en compte la dérive.

Figure 4.17 – Interactions entre les deux niveaux de l’architecture. v est la pose du véhicule et Pv la covariance associée. ai représente l’amer i et Pai l’incertitude correspondance. bj est une estimation de biais et Pbj sa covariance. Les versions des amers et de la pose du véhicule prenant en compte le biais sont indexées avec un u.

Dans cet exemple, 2 amers sont envoyés vers le SLAM haut niveau. On peut remarquer qu’uniquement les variances sont envoyées et pas les covariances. Cela s’explique par le fait que comme nous avons décidé d’échanger uniquement des amers précis, leurs connexions via les covariances sont très faibles dans le bas niveau par rapport à leurs liens au travers du biais dans le haut niveau. Ainsi, elles sont négligeables et peuvent être omises. Dès que les amers sont reçus, l’estimation de biais courante (b1ici) leur est appliquée. Des liens sont ainsi re-créés dans la matrice

de covariance par l’intermédiaire de la dérive. Les amers se retrouvent naturellement liés au biais. Si des informations permettent de mettre à jour un amer ou le biais, l’ensemble du vecteur d’état sera corrigé.

Les deux amers précédemment envoyés seront supprimés du bas niveau dès qu’ils ne seront plus utiles. Considérons le système précédent après la suppression de ces 2 points et la convergence du dernier amer dans le SLAM local. L’état de ce système est montré en figure 4.18.

Figure4.18 – État du système après une nouvelle convergence. L’amer encadré dans le SLAM bas niveau est copié dans la partie décentralisée. Le module de gestion du biais lui permet d’intégrer sa dérive b2 et ainsi d’être lié au reste du vecteur d’état

haut niveau.

La carte du SLAM prenant en compte le biais a été augmentée d’une nouvelle es- timation du biais et de l’amer reçu. Ce dernier a été connecté au reste de l’état grâce

au biais b2. On peut voir que seulement deux estimations du biais sont intégrées au

vecteur d’état pour 3 amers et la pose du véhicule. Cela ne devrait normalement pas être le cas. Chaque amer dépend d’une abscisse curviligne précise et devrait avoir son propre biais. Néanmoins, le problème est qu’ajouter un biais par amer augmenterait la taille de la carte très rapidement. De plus, sur des abscisses curvilignes proches, l’augmentation de l’incertitude de biais est faible. Par conséquent, nous avons choisi d’intégrer de nouvelles estimations du biais régulièrement, en fonction de la distance parcourue (et non pour chaque amer). Cette contrainte est pertinente dès lors que cette distance n’est pas trop importante (un biais tous les 5 mètres est acceptable par exemple) et que l’incertitude du biais est majorée par la distance maximale que couvrira celui-ci. Sur de courtes distances, l’évolution du biais est donc négligeable. Afin de ne pas perturber le fonctionnement du SLAM local, les actions du haut niveau sont déclenchées périodiquement pour vérifier si de nouveaux amers sont disponibles. Le fonctionnement global autour de la gestion du biais est expliqué en figure 4.19.

Figure 4.19 – Fonctionnement de l’algorithme haut niveau

Les nouveaux amers sont d’abord testés pour des associations avant d’être inté- grés dans le filtre. Si la recherche de correspondances est positive alors une fusion (association point 3D - point 3D) est déclenchée. Sinon, les amers sont connectés au reste du vecteur d’état. Avant d’ajouter un nouveau biais, l’abscisse curviligne est vérifiée. Si une nouvelle estimée doit être créée alors elle augmente le vecteur d’état et doit être connectée au reste de la carte.

L’architecture développée permet de correctement prendre en compte la dérive naturelle des algorithmes de SLAM. Celle-ci a été conçue afin d’éviter des surcoûts

trop importants. De même, sa conception est favorable à son extension multivéhicule comme cela sera expliqué en section 5.2. Il nous reste maintenant à étudier comment connecter le vecteur d’état au biais via le filtre de Kalman. De même, l’intégration de la dérive pour les amers et la pose du véhicule doit être analysée.