• Aucun résultat trouvé

6.3 Fonctionnement interne

6.3.3 Étape d’observation

6.3.3.1 Approximation de linéarité des parallaxes

L’approche que nous avons développée avec le compas visuel est parallèle à, et complémentaire

du, modèle de déformation de Franz (voir section4.5). Elle est parallèle car nous y introduisons aussi

une approximation, mais qui ne repose pas sur une hypothèse de distance constante. Elle est com-plémentaire car, au lieu de supposer que les amers sont à la même distance, elle utilise au contraire implicitement les différentes distances. Elle peut aussi être complémentaire de l’algorithme Panama de Röfer, notamment dans le cas où l’environnement contient peu d’amers exploitables, et nous re-viendrons plus loin sur cet aspect.

L’approximation que nous introduisons peut être exprimée de plusieurs façons. Concrètement, nous supposerons que le déplacement d’un amer i dans le champ de vision causé par le mouvement de l’animat (la parallaxe angulaire) est une fonction linéaire du déplacement.

l’azimut d’un amer en fonction du déplacement de l’animat, en confondant cet azimut avec son ap-proximation au premier ordre. Ainsi, pour un déplacement au voisinage d’un point M , en un point X variable nous obtenons l’expression :

θnord→iX = θnord→iM + M nord→i d−−→M X · −−→ M X + o(−−→M X)

Notre approximation de linéarité des parallaxes revient à ignorer le terme en o(−−→M X) dans cette

équation.

L’essentiel de cette étape d’observation est de récolter suffisamment d’informations pour exploiter cette linéarité et construire un invariant au premier ordre.

6.3.3.2 Hypothèses et déroulement

Nous supposons que l’animat peut évoluer dans un voisinage de sa position actuelle, que nous appellerons région d’observation. Nous supposerons la présence d’au moins trois amers que l’animat perçoit dans toute cette région d’observation. On peut énumérer des triplets d’amers (s’il y a n amers il y a n(n − 1)(n − 2)/6 triplets), et considérer le cercle circonscrit à chaque triplet. Nous supposons qu’au moins un de ces cercles circonscrits n’intersecte pas la région d’observation. Nous verrons pourquoi à la section suivante.

L’étape d’observation consiste en la mémorisation de trois panoramas pris depuis trois points

M ,N ,P situés dans la région d’observation. La connaissance de ces trois panoramas va permettre de

calculer des coefficients λidont dépendra la propriété d’invariance.

Remarquons que l’animat doit connaître sa direction pendant cette étape, mais les positions des points de prises de vues M ,N ,P dans l’environnement n’ont pas à être connues.

Ces points de prises de vues ne doivent pas être alignés. De façon similaire au choix d’un amer

jouant le rôle d’étoile polaire6.2.1.2, il est bon que le plus grand des angles du triangle M N P soit

inférieur à 135. Les panoramas doivent avoir au moins 3 amers i,j,k communs vus dans chacun des

3 panoramas, ce qui fait 9 azimuts mesurés.

6.3.3.3 L’invariant

Sous les hypothèses que nous nous sommes fixées, nous allons construire une fonction des azimuts observés qui sera un invariant (au premier ordre) par rapport au déplacement en translation de l’animat. La disponibilité de cet invariant permettra ensuite de découpler la translation et la rotation, dans le cas d’un déplacement faisant intervenir les deux variables.

6.3.3.3.1 Définition La disponibilité des trois panoramas nous donne accès à des mesures de pa-rallaxes. À l’aide de ces mesures nous allons calculer ce que nous appelons une « marque » (d’après

6.3. FONCTIONNEMENT INTERNE 157

l’expression « prendre ses marques »1).

Une « marque » est un ensemble de trois nombres réels λa, λb, λc associés au triplet d’amers

(a, b, c) et à la vue M , que nous utiliserons à l’étape « exploitation » pour estimer la direction de

l’animat via l’invariant.

Pour (i, j, k) ∈ {(a, b, c), (b, c, a), (c, a, b)}, nous définissons (et justifierons très bientôt) :

λi= DM →Nj DkM →P − DM →Pj DM →Nk (6.1)

Nous définissons alors l’invariant Ia,b,c,M,N,P attaché au triplet comme étant une combinaison

linéaire des trois azimuts, avec les notations introduites en section2.1.1.1:

Ia,b,c,M,N,P(X) = X i∈{a,b,c} λiµ(θXnord→i− θMnord→i) = X i∈{a,b,c} λiDiM →X (6.2)

La somme des trois λ n’est pas proche de zéro parce que nous éliminons par hypothèse le cas où le cercle circonscrit aux trois amers passe à proximité du triangle M N P . Nous verrons précisément

pourquoi en6.4.2.1. Pour l’instant, disons

Tous les triplets sont ainsi énumérés et les marques correspondantes sont créées, comme détaillé

plus loin (section6.4.3.1). Pour l’instant on peut simplement supposer qu’on a trouvé un triplet

conve-nable, parce qu’on a fait l’hypothèse qu’au moins un des triplets avait un cercle circonscrit ne passant pas à proximité du triangle M N P .

Un exemple d’invariant est donné à la figure 6.3. Cette figure montre l’intérêt et les limites de

l’approximation de linéarité sur laquelle repose la propriété d’invariance. Les trois disques pleins près des bords sont trois amers. Les trois cercles sont les trois points d’observations reliés par le chemin qu’a pris l’animat. Les dégradés de fond et les lignes de niveau représentent les valeurs de l’invariant sur tout le rectangle. Les petits chiffres sur les lignes de niveaux indiquent les valeurs effectivement prises par l’invariant, divisées par la somme des coefficients, ce qui correspond aussi à l’erreur angulaire due à l’approximation, en degrés. L’aspect polygonal des lignes de niveau est du à la taille de la grille où les valeurs sont échantillonnées. L’irrégularité des lignes de niveau est due à la granularité de la rétine simulée de l’animat qui limite la précision des mesures d’angles à 1 degré. On constate que l’invariant est exactement nul aux points d’observation (aux erreurs de mesures près), ce qui est vrai par construction. Les lignes de niveaux très espacées montrent que les valeurs sont faibles, non seulement à proximité des points mais sur une zone plus étendue vers le centre du diagramme. En revanche, l’erreur devient forte quand on s’approche des amers car l’approximation de linéarité ne

tient plus (cf.6.4.4), causant des zones noires là où la densité de lignes de niveaux devient très forte.

1

En anglais « prendre ses marques » se dit “to get (ou to find) one’s bearings”, d’où le choix du terme « bearing » quand nous publions en anglais.

FIG. 6.3: Un exemple de valeurs obtenues pour l’invariant. (Plus d’explications sont incluses dans le texte.) Comme en témoignent les lignes de niveau, l’invariant n’est pas strictement nul. En revanche, les lignes de niveau sont très espacées au voisinage des trois points d’observation (cercles ouverts) mais aussi dans une région plus étendue vers le centre du diagramme, ce qui signifie que l’invariant varie très peu dans cette région. La signification pratique de cette figure est de représenter, en chaque point du rectangle couvert, l’erreur en degrés que ferait l’animat en utilisant le compas visuel en cet endroit. On constate qu’avec à peine 3 amers, il existe une zone étendue où l’animat peut retrouver son orientation avec une bonne précision. La force de cette méthode est dans son compromis entre ses résultats et ses faibles hypothèses.

6.3. FONCTIONNEMENT INTERNE 159

6.3.3.3.2 Obtention des coefficients Par définition de l’invariant, Ia,b,c,M,N,P(M ) = 0 car les

parallaxes DM →Mi sont toutes nulles. Les formules6.1de calcul des λiont été obtenues à partir des

contraintes suivantes :

Ia,b,c,M,N,P(M ) = Ia,b,c,M,N,P(N )

= Ia,b,c,M,N,P(P ) (6.3)

= 0

Expliquons l’équation6.1en interprétant géométriquement le système6.3dans l’espace R3.

La définition de l’invariant par l’équation6.2est formellement un produit scalaire entre un vecteur

Λ = (λa, λb, λc) et un vecteur ∆M →X = (DM →Xa , DM →Xb , DcM →X) . On cherche un vecteur Λ non

nul qui soit orthogonal à chacun des deux vecteurs ∆M →NM →P. Le produit vectoriel ∆M →N ×

M →P fournit un tel vecteur. Ses composantes sont précisément les coefficients de l’équation6.1:

Λ = ∆M →N × ∆M →P (6.4)

La vérification est immédiate :

Ia,b,c,M,N,P(M ) = −→0 ·Λ = 0

Ia,b,c,M,N,P(N ) = DM →N · Λ = DM →N · (∆M →N × ∆M →P) = 0

Ia,b,c,M,N,P(P ) = DM →P · Λ = DM →N · (∆M →P × ∆M →P) = 0

La nullité de l’invariant en ces trois points entraîne sa nullité sur tout un voisinage (moyen-nant l’approximation au premier ordre). En effet, nos hypothèses de linéarité reviennent à confondre

Ia,b,c,M,N,P(X) avec sa différentielle en M . Celle-ci est une forme linéaire dépendante de deux

va-riables (les coordonnées de X), qui s’annule sur trois points non colinéaires (M , N , P ), et est donc nulle partout.

Ia,b,c,M,N,P(X) est donc bien nul au premier ordre en M , c’est-à-dire que les λ calculés sont ceux

qui minimisent la valeur effective de l’invariant dans un voisinage des points d’observation.

Pour être rigoureux, un invariant nul au premier ordre au sens strict serait obtenu en faisant tendre

N et P vers M . Par commodité, nous nous contentons de l’approximation où N et P sont à distance

finie de M , d’autant plus que, pour obtenir en conditions réelles une mesure de parallaxe ∆M →X, X

doit être suffisamment loin de M pour que les parallaxes mesurées ne soient pas noyées dans le bruit de mesure.

6.3.3.4 Conclusion pour l’étape observation

L’approximation de linéarisation des parallaxes par rapport aux déplacements nous a permis de définir une combinaison linéaire des azimuts qui est un invariant au premier ordre par rapport aux déplacements en translation de l’animat.

En observant trois vues non alignées et appariées entre elles, l’animat peut se donner un ensemble de marques, chacune associée à un triplet d’amers, et enregistrant les coefficients de la combinaison li-néaire qui réalise l’invariance des parallaxes des amers observés. Les marques obtenues sont attachées aux vues M , N , P .

L’animat n’a pas besoin de savoir où les trois vues ont été prises. Il suffit qu’elles soient d’orienta-tion connue, suffisamment voisines l’une de l’autre pour présenter des amers communs (sans toutefois être trop proches, pour que les parallaxes soient mesurables).