• Aucun résultat trouvé

Prise en compte du modèle de mouvement du véhicule

véhicule

Comme on l’a vu précédemment, il est intéressant de pouvoir prédire la pose approximative de la caméra à l’image i en utilisant le passé. Ceci peut être fait si la caméra est montée sur un véhicule. Nous l’avons fait dans le cas où la caméra est montée sur le cycab. Le résultat de la prédiction du mouvement et la pose résultant de l’observation sont alors utilisés dans un filtre de Kalman comme illustré par la

CHAPITRE 4. LOCALISATION 77

figure 4.7.

FIG. 4.7 – Filtre de Kalman prenant en compte le modèle de mouvement du véhi-cule

Seul un modèle simplifié a été utilisé afin d’illustrer comment un modèle de mouvement pouvait être pris en compte dans le processus de localisation. Un mo-dèle mieux adapté au cycab, comme le momo-dèle tricycle décrit au paragraphe 5.3.1, permettrait sans doute d’améliorer encore les performances du système. On pour-rait aussi prendre en compte les mesures odométriques (vitesse de rotation de chaque roue et angle de braquage) ou la commande envoyée au cycab (calculée au moment de la localisation de l’image précédente). Pour utiliser le modèle de mou-vement du cycab, la transformation rigide permettant de passer du repère caméra au repère du véhicule a été mesurée directement sur le véhicule.

Le modèle utilisé est représenté sur la figure 4.8. Connaissant la pose de la caméra à l’instant t et à des instants passés, on en déduit la pose du véhicule et on calcule le vecteur vitesse instantané du véhicule −→v. Comme le calcul de l’orientation de la caméra est souvent plus précis que le calcul de la position, la direction du vecteur −→v est obtenue à partir de l’orientation de la caméra calculée à l’instant t. On note −v0le vecteur unitaire orienté selon la direction d’avancement du véhicule. La norme du vecteur vitesse est ensuite obtenue par :

k−vk = v0·

−−−−−−−−−−−→

OR(t − ∆t)OR(t)

CHAPITRE 4. LOCALISATION 78

FIG. 4.8 – Modèle de mouvement utilisé dans le filtre de Kalman. Le point OR situé au milieu de l’essieu arrière est l’origine du repère robot. Le mouvement considéré est une translation selon le vecteur vitesse.

où OR(t) désigne la position du robot à l’instant t. Dans ce modèle simplifié, on considère que l’angle de braquage du véhicule est nul (les roues sont supposées droites) et que le sol est plan. Le déplacement du véhicule durant un intervalle de durée∆test donc∆t−→v. On applique donc cette translation au centre optique de la caméra pour obtenir la pose de la caméra à l’image suivante.

Le calcul de la pose s’accompagne du calcul de la matrice de covariance asso-ciée. La matrice de covariance à l’instant t+ ∆t s’obtient à partir de la matrice de covariance à l’instant t en augmentant la variance sur chacune des variables :

Cov(t + ∆t) = Cov(t) + diag(σ2rot, σ2rot, σrot2 , σ2pos, σ2pos, σ2pos) (4.23) où σrot et σpos sont deux constantes choisies en fonction de la confiance qu’on accorde à la prédiction pour la rotation et pour la position. Nous utilisonsσpos= 0.05 m et σrot = 0.25.

La prédiction qui vient d’être calculée permet de définir les zones de recherche pour l’appariement des points entre image courante et image de référence. La

CHAPITRE 4. LOCALISATION 79

pose de la caméra et la matrice de covariance associée sont calculées par vision (elles sont notées Pose observée et Covariance observée sur la figure 4.7). On fusionne ensuite la pose observée et la pose prédite pour obtenir la pose finale qui est utilisée pour commander le véhicule. La fusion est faite en utilisant les formules classiques du filtre de Kalman. On note X le vecteur d’état de la caméra formé par les 6 paramètres de pose. Le gain K est calculé par :

K= Covprediction(Covprediction+Covobservation)−1 (4.24) Et le résultat de la fusion est obtenu par :

Xf usion= Xprediction+ K(Xobservation− Xprediction) (4.25)

Covf usion= Covprediction− KCovprediction (4.26)

4.7 Perspectives

L’amélioration des performances en localisation est certainement possible en couplant plus étroitement l’algorithme de vision, le modèle du véhicule, la loi de commande et les éventuels capteurs proprioceptifs. Mise à part au paragraphe 4.6, la caméra associée à l’algorithme de localisation se comporte comme un capteur de position indépendant du robot sur lequel il est installé. C’est une propriété in-téressante, car cela permet une utilisation dans un grand nombre d’applications : la caméra peut être fixée rigidement sur un véhicule (équipé ou non d’autres cap-teurs), ou simplement tenue à la main. Par contre, cela impose à l’algorithme de vision de calculer la pose de la caméra sans utiliser certaines informations qui peuvent être disponibles et qui permettraient d’améliorer les performances du systèmes. Par exemple, la connaissance d’un modèle de mouvement du véhicule a été considérée au paragraphe 4.6. Mais d’autres informations pourraient égale-ment être prises en compte pour prévoir la pose de la caméra avant de procéder à l’appariement entre image courante et image de référence. Avec une meilleure prédiction, il est possible de réduire la taille des zones de recherche et donc d’ac-célérer la mise en correspondance tout en réduisant le nombre d’appariements erronés.

Pour pouvoir intégrer des informations provenant du véhicule ou d’autres cap-teurs, il devient nécessaire de connaître avec précision le changement de repère entre le repère caméra et le repère robot. Il serait donc utile de développer une méthode spécifique de calibrage. D’autre part, les informations odométriques et la modélisation du véhicule ne sont facilement utilisables que si on fait l’hypo-thèse d’un sol plan. Or il est nécessaire de prendre en compte l’inclinaison du sol

CHAPITRE 4. LOCALISATION 80

ainsi que le tangage et le roulis du véhicule pour obtenir la pose complète de la caméra avec six degrés de liberté. Pour résoudre ce problème, on pourrait imagi-ner modéliser la déclivité du sol le long de la trajectoire d’apprentissage à partir de la reconstruction 3D calculée.

Chapitre 5

Mise en œuvre et performances

5.1 Matériel utilisé

Le matériel utilisé pour les expérimentations est composé d’un ordinateur por-table et d’une caméra. C’est le minimum pour faire fonctionner le système de lo-calisation. Les expérimentations qui intègrent la commande du robot ont été faites sur le cycab. Afin de comparer les résultats obtenus par vision à la vérité terrain, un récepteur GPS différentiel a été utilisé. Le matériel a évolué au cours du temps. La présentation qui en est faite ici concerne le matériel le plus récent. Certaines expérimentations plus anciennes ont été réalisées avec un matériel légèrement dif-férent. Cela sera précisé au cas par cas si nécessaire.

5.1.1 Matériel informatique

Nous avons successivement utilisé des PC portables équipés de processeurs Pentium 4 à 3 GHz ou 3.4 GHz, puis de processeurs Pentium M à 2 GHz. Les temps de calcul étaient très proches sur les deux types de machines.

Au niveau logiciel, les acquisitions provenant des différents capteurs sont gé-rées par l’architecture D-Bite. Cela permet d’enregistrer en même temps que la donnée capteur, une date exprimée en millisecondes qui permet de synchroniser les données entre la caméra, l’odomètre et le GPS.

5.1.2 La caméra

La caméra est une caméra CMOS noir et blanc. Elle produit des images de ré-solution 1024×768 pixels. Traiter des images de cette taille serait trop lent. Aussi, elles sont rééchantillonnées par logiciel à une taille de 512× 384. La procédure

CHAPITRE 5. MISE EN ŒUVRE ET PERFORMANCES 82

de rééchantillonnage a été programmée en utilisant le jeu d’instructions SSE. Le niveau de gris d’un pixel de l’image d’arrivée est le résultat de la moyenne des niveaux de gris de 4 pixels contigus de l’image originale. Le rééchantillonnage prend moins de 2 ms. La caméra fournit des images à une fréquence de 15 images par seconde.

L’objectif utilisé est un objectif à très grand angle. Sa focale est de 3.5 mm, avec une caméra disposant d’un capteur dont la diagonale mesure 1/2” soit 12.7 mm. Si on néglige la distorsion, le champ angulaire (dans la diagonale) est obtenu par α = 2tan−1( 12.7

3

.5×2) soit α = 122. En réalité, à cause de la distorsion, le champ réel est plus grand que cela. Le champ atteint 130dans la largeur de l’image.

L’utilisation d’un objectif à très grand angle est très intéressante car cela per-met de réduire les risques d’occultation. Par exemple, une personne située à deux ou trois mètres de la caméra occupe une toute petite partie de l’image. Dans ce cas, la personne masque très peu de points d’intérêt, ce qui est généralement sans conséquence sur le résultat de la localisation.

Signalons enfin que la principale difficulté lorsqu’on utilise une caméra en extérieur est le manque de dynamique des caméras actuelles. Il est fréquent de ne pas pouvoir trouver un couple diaphragme et temps de pose pour lequel la totalité de l’image soit correctement exposée. Par exemple, si les façades des bâtiments sont en plein soleil d’un côté de la rue et dans l’ombre de l’autre côté, il faut souvent faire un choix entre surexposer un côté de l’image ou sous-exposer l’autre côté, ce qui revient dans les deux cas à se priver d’une partie de l’information utile pour se localiser. Des caméras avec une plus grande dynamique permettraient certainement d’améliorer la robustesse des algorithmes de vision en extérieur.

5.1.3 Le cycab

Le robot sur lequel ont été réalisées les expérimentations est le cycab (voir figure 5.1). C’est un véhicule électrique de petite taille (1.90 m de long et 1.20 m de large). Il est capable de transporter deux personnes à une vitesse maximale de 18 km/h. La caméra est placée sur le toit, à environ 1.80m au dessus du sol. L’axe optique est dirigé vers l’avant. Du point de vue de la commande, le cycab est un véhicule non holonome dont la modélisation sera abordée plus en détail au paragraphe 5.3.1.

CHAPITRE 5. MISE EN ŒUVRE ET PERFORMANCES 83

FIG. 5.1 – Le cycab

Documents relatifs