• Aucun résultat trouvé

L’utilisation d’un modèle de prédiction tel que celui-ci permet d’avoir un système pleine- ment fonctionnel. Cependant plusieurs hypothèses ont été faites pour modéliser le véhicule et certaines pourrait être reconsidérées. Tout d’abord pour le filtre lui-même, les modèles utilisés pourraient être perfectionnés pour obtenir une meilleure évaluation de la position et de l’incer- titude sur celle-ci. Mais aussi au niveau de l’utilisation de la prédiction, avoir une meilleure information pourrait aider à simplifier l’algorithme de vision et optimiser les calculs.

4.6.1

Amélioration du modèle d’évolution

Tout d’abord le modèle d’évolution a été choisi sous hypothèse de vitesse constante avec un bruit constant sur chaque valeur du vecteur d’état. Ces valeurs ont été fixées arbitrairement en fonction des expérimentations. Cependant une étude plus poussée du bruit provoqué pourrait permettre d’améliorer cette évolution. En particulier le bruit pourrait être considéré comme une accélération et, en développant les équations, être intégré plus finement au modèle, ce qui permettrait d’avoir une estimation de l’incertitude sur la position plus réaliste.

De même il est possible dans les équations du filtre de Kalman, d’intégrer les ordres donnés par la commande. Cela permet d’ajuster la prédiction du véhicule en anticipant non seulement les mouvements réalisés mais aussi ceux que l’on désire réaliser.

Pour finir le déplacement du véhicule a été entièrement projeté dans le plan de la route. Pour cela les données concernant le roulis et le tangage, disponibles avec la vision ont été ignorées. Modéliser le mouvement en 3D du véhicule permettrait de prédire l’intégralité de la pose du véhicule. Cependant le filtre deviendrait sensiblement plus complexe, en particulier au niveau de l’interprétation des valeurs de l’odométrie.

4.6.2

Utilisation plus poussée de la prédiction

Une autre amélioration qui pourrait être réalisée suite à cette implémentation consiste à uti- liser la prédiction pour améliorer davantage la localisation. En effet, la prédiction étant devenue plus fiable il serait possible au lieu de ne l’utiliser que pour reprojeter les patchs, de prévoir lesquels ont le plus de chance d’être retrouvés. En triant a priori les patchs en fonction de cette probabilité il devient possible de ne projeter qu’un nombre limité de patchs à chaque itération

et ainsi garantir un temps constant entre l’acquisition de l’image et l’accès au résultat du calcul de la pose.

Cette méthode empêcherait sans doute un certain nombre de bons appariements de se faire, mais tant que suffisamment de patchs de référence sont appariés pour se localiser, l’intérêt d’avoir davantage de points reste discutable. De plus les patchs peu intéressants seraient ignorés, permettant de gagner à la fois du temps de calcul et d’éviter de faux appariements. La principale difficulté pour cette solution consiste à définir un facteur qui permettrait de savoir a priori si un patch (ou même un groupe de patchs) est plus intéressant à rechercher qu’un autre en fonction de la pose prédite.

Résultats expérimentaux de la localisation

Après avoir réalisé avec succès les tests préliminaires, le système a été mis en œuvre dans des conditions réelles.

5.1

Matériel utilisé

Pour réaliser les expérimentations, il est nécessaire de disposer au minimum d’une caméra et d’un ordinateur qui exécute l’algorithme. De plus, la fusion nécessite d’embarquer le dis- positif à bord d’un véhicule disposant d’odométrie. Pour finir un GPS différentiel est utilisé comme capteur de référence, fournissant une position considérée comme exacte. L’algorithme peut fonctionner avec toute sorte de matériel, toutefois les dernières expérimentations ont es- sentiellement utilisé le matériel décrit dans cette partie. Si tout ou partie du matériel diffère lors d’une expérience, cela sera précisé au cas par cas.

5.1.1

Caméra

Les caméras utilisés sont des caméra CMOS noir et blanc. Les images fournies ont une ré- solution de 1024×768 pixels, mais pour accélérer le traitement, sont ré-échantillonnées à une résolution deux fois moindre de 512×384 pixels. Ce rééchantillonnage est réalisé directement par le GPU en même temps que la correction d’image présentée en partie 3.4.2. Les valeurs des pixels de l’image corrigée sont prises directement sur l’image d’origine (avant rééchantillon- nage), permettant ainsi de ne pas nécessiter davantage de temps tout en réduisant l’image.

La caméra peut fournir des images à une fréquence de 15 images par seconde, mais cette vitesse est généralement réduite à 7,5 images par seconde pour laisser le temps à l’algorithme de réaliser tous les traitements nécessaires.

L’objectif utilisé est un objectif à très grand angle. En tenant compte de la distorsion du capteur, le champ de vue réel atteint 130 degrés dans la largeur de l’image. L’utilisation d’un tel objectif permet de réduire les risques d’occultation. Par exemple un objet présent à 2 m

de l’objectif n’occupera que peu de place sur l’image, réduisant le nombre de points d’intérêt masqués. De plus cela permet d’avoir une bonne visibilité sur les façades des immeubles au bord de la route. Les façades sont généralement planes et les patchs observés sont généralement bien reconstruits et plus faciles à reconnaitre.

Pour finir, la caméra dispose d’un diaphragme automatique permettant d’augmenter ou ré- duire l’intensité lumineuse perçue en fonction de la lumière ambiante. Ce dispositif est sensé limiter les risques de sous-exposition ou sur-exposition de l’image. Cependant en pratique, la situation n’est pas toujours bien maitrisée, en particulier lorsque le soleil est assez bas et peut éclairer directement les façades d’un coté de la rue en laissant celles de l’autre coté dans l’ombre. Dans ce cas la dynamique de la caméra n’est généralement pas suffisante pour fournir une information correcte des deux façades, et il faut alors choisir de sous exposer ou sur-exposer un coté de la rue.

5.1.2

Matériel informatique

Pour utiliser l’algorithme dans un système embarqué, il est nécessaire de disposer d’un ordinateur portable assez puissant pour faire fonctionner le système dans de bonnes conditions. En particulier l’appariement étant implémenté sur GPU, la carte graphique doit être performante et compatible avec le langage CUDA utilisé. Le processeur est utilisé pour gérer l’arrivée des données, le calcul de pose et, dans le cas de navigation autonome, la génération et l’envoi de la commande.

L’ordinateur est équipé d’un processeur Intel Core i5 avec 2 cœurs physiques cadencé à 2,5 GHz et de 8 Gio de mémoire RAM. Il s’agit d’un processeur milieu de gamme. Au niveau de la carte graphique, il s’agit d’une carte Nvidia GeForce GTX 485M, possédant un multi- processeur avec 48 cœurs et 2 Gio de mémoire, cette carte assez performante permet de faire fonctionner l’algorithme en temps-réel.

5.1.3

Véhicule

Le véhicule sur lequel la plupart des expérimentations ont été réalisées est le Vipalab (photo de la figure 5.1). Ce véhicule électrique est capable de transporter 4 personnes à des vitesses inférieures à 20 km/h. Il dispose de deux caméras placées au niveau du toit, l’une orientée vers l’avant du véhicule et l’autre vers l’arrière. Lors de nos expérimentations, seule la caméra située à l’avant est utilisée pour se localiser. Le véhicule dispose également d’odométrie capable de fournir toutes les 20 ms les informations sur la vitesse du moteur des roues arrières et l’angle de braquage à l’avant.

5.1.4

GPS

Pour mesurer la vérité terrain lors des expérimentations, un GPS différentiel est également utilisé. Ce GPS, situé sur le toit du Vipalab, est couplé à une base fixe pour fonctionner comme

FIGURE5.1 – Le Vipalab

GPS différentiel ayant une précision centimétrique. Les données GPS sont disponibles à une fréquence de 10 Hz.