• Aucun résultat trouvé

g + (Gite) + (site) + (Euler) + (Euler) Z’r Zr Xr Yr Y X Z

Fig. B.3 – Les angles donn´es par les inclinom`etres.

B.4.2 Platine vers Mat

Il suffit de composer les deux rotations donn´ees par la platine : on effectue une premi`ere rotation de Z(θp), puis une seconde X1(−φp)

B.4.3 Robot vers Robot Red

Les angles donn´ees par les inclinom`etres ne sont pas des angles d’Euler (voir fi- gure B.3). On effectue donc une premi`ere rotation Xr(α), qui am`ene l’axe Zr sur l’axe Zr0, puis une rotationYr(β).

On a (voir la figure) α = ArcSin(sin(ψr)

cos(φr)) et β =−φr.

B.5

Graphe g´eom´etrique

Un fichier de configuration dont la grammaire est donn´ee sur la figure B.4 permet de d´ecrire la structure de graphe pr´esent´ee dans la section pr´ec´edente. ´Etant donn´e que les graphes destin´es `a ˆetre manipul´es ne sont pas cens´es ˆetre excessivement complexes, la grammaire choisie est tr`es simple. Le principe gen´eral, illustr´e par l’exemple de la figure B.5, est de d´eclarer les rep`eres que l’on souhaite d´efinir, puis de les relier ensuite par le mot-cleflinken indiquant si le lien ainsi cr´ee est statique ou mobile. Les quelques autres mot-cl´efs pr´esent´es ci-apr`es permettent de d´efinir les attributs des liens (update,

124 GEOM ´ETRIE SUR LE ROBOT LAMA

file ←− declaration declaration file

declaration ←− require frame main update link

require ←− "require" string ";"

frame ←− "frame" framelist

framelist ←− string string "," framelist

main ←− "main" string ";"

update ←− "update" string ";"

link ←− "link" "{" linkdecl "}"

linkdecl ←− linkelt ";" linkelt ";" linkdecl linkelt ←− "from" string

"to" string

"translate" double double double

"rotate" double double double

"update" string string ←− "A"|"Z" "a"|"z" digit double ←− ["-"] digit ["."] digit

digit ←− "0"|"9"

Fig. B.4 – Grammaire du fichier de description g´eometrique d’un robot.

frame A,B,C,D ; main A ; link { from B ; to A ; update U2 ; } link { from C ; to B ; translate -1.0 1.0 0.0 ; } link { from D ; to B ; translate -1.0 -1.0 0.0 ; } link { from D ; to C ; update U1 ; } U1 C D B A U2

B.5. GRAPHE G ´EOM ´ETRIQUE 125

. require Contient le nom d’une biblioth`eque partag´ee contenant la d´efinition des

fonctions permettant la mise `a jour des liens mobiles. Cette biblioth`eque est charg´ee par InSitu au moment de la lecture du fichier de configura- tion.

. frame D´eclare le nom d’un nouveau rep`ere dont la position doit ˆetre calcul´ee

par InSitu. A l’heure actuelle, aucune contrainte n’est impos´ee sur ce nom. Il peut sembler avantageux de d´efinir un ensemble de noms utili- sables, dans le but d’uniformiser les descriptions des diff´erents robots. Cependant, ces listes pr´ed´efinies consituent plus souvent un handicap car il est difficile d’envisager toutes les situations futures. La figure ref- fig :insitu :robots montre dej`a, pour le seul cas des cam´eras, qu’il est difficile de choisir une description compatible avec les trois types de robots pr´esent´es : le robot Hilare IIbisne poss`ede qu’une cam´era, `a l’ex- tr´emit´e de son bras ; le robot Lamaposs`ede quatre cam´eras r´eparties en deux bancs st´er´eo que l’on nomme couramment « haut » et « bas » ; le dirigeable poss`ede quant `a lui un banc st´ereo dont les cam´eras sont avantageusement nomm´ees « avant » et « arriere ».

. main D´efinit le nom du rep`ere principal.

. link Cr´ee un lien entre 2 rep`eres. Les mots-clef from et to permettent de d´efinir l’orientation du lien — et donc sa signification.

. update Plac´e `a l’int´erieur de la d´efinition d’un lien, update permet de d´efinir

le nom d’une fonction charg´ee de calculer la transformation courante associ´ee au lien. Plac´e `a l’ext´erieur de toute d´efinition de lien, update

d´efinit une fonction invoqu´ee imm´ediatement avant la mise `a jour de chaque lien. Cette fonction est utilis´ee pour factoriser la lecture des diff´erents param`etres utilis´es dans les liens du mod`ele.

GPS Camera (top, left) PTU (top) Camera (top, right) Robot Robot (vertical) Front PTU (bottom) Camera (bottom, left) Camera (bottom, right) Mast Mobile Rigid

Fig. B.6 – Le graphe g´eom´etrique du robot Lama : les rectangles sont les nœuds et repr´esentent les

rep`eres calcul´es et export´es. Les rectangles sont les rep`eres dont les configurations sont export´ees dans

le syst`eme. Le rectangle en gras repr´esente le rep`ere principal. Chaque rep`ere mobile est associ´e `a une

C

Modélisation des erreurs

de la stéréo-vision

Nous pr´esentons ici une analyse empirique de l’algorithme de st´er´eo-vision que nous avons utilis´e. Cette analyse a permis d’´ebaucher un mod`ele d’erreur du capteur « st´er´eo- vision », qui permet d’estimer en ligne la pr´ecision des coordonn´ees des points 3D calcul´es.

C.1

Principe de l’algorithme de st´er´eo-vision

Le principe de l’algorithme de st´er´eo-vision par corr´elation de pixels que nous utilisons est tr`es classique : il se base sur la connaissance pr´ecise des positions res- pectives des cam´eras (obtenues par calibration) et sur la d´etermination d’apparie- ments entre les pixels des images gauche et droite. Ses diff´erentes ´etapes sont r´esu- m´ees sur la figure C.1 :il s’agit d’un algorithme d´esormais bien connu dans la litt´era- ture [Krotkov, Faugeras], qui donne d’excellents r´esultats (en terme de nombre de points 3D) d`es que la sc`ene per¸cue exhibe suffisamment de texture. Cet algorithme est utilis´e au laboratoire depuis plusieurs ann´ees, et quelques am´eliorations y ont ´et´e apport´ees [Lasserre,Haddada].

L’op´eration de rectification est une transformation des images qui permet d’assurer que l’´epipolaire d’un point d’une image est une ligne horizontale dans l’autre image : cette op´eration n’est pas indispensable pour calculer une images de points 3D, mais elle permet d’effectuer de tr`es grandes optimisations de calculs lors de la phase de mise en correspondance [Faugeras].

C’est la phase de mise en correspondance qui est la plus importante : elle consiste `

a d´eterminer le correspondant d’un pixel d’une image sur la ligne ´epipolaire de l’autre image. Elle est r´ealis´ee par le calcul de ressemblance entre une fenˆetre d´efinie autour du pixel et des fenˆetres d´efinies autour des pixels candidats (figure C.2). De nombreux moyens de calculer cette ressemblance sont d´efinis dans la litt´erature [Martin], et apr`es diff´erentes ´evaluations nous avons opt´e pour le score de corr´elation crois´e norma-

128 MOD ´ELISATION DES ERREURS DE LA ST ´ER ´EO-VISION Mise en correspondance Triangulation Image 3D Image gauche Rectification et correction de la distorsion

Calcul des moyennes et variances Rectification et

correction de la distorsion

Calcul des moyennes et variances Image droite

Fig. C.1 – Les diff´erentes ´etapes de l’algorithme de st´er´eo-vision par corr´elation de pixels.

lis´e (ZNCC1) :

X 0 X X 0+ Dmin X 0 X 0 + d X

Image 2 Image 1

Fig. C.2 – Principe de l’´etape de mise en correspondance.

ZN CC(x, y, d) =

1 N

P

(x,y)∈F(Ig(x + d, y)Id(x, y))−N12

P

(x,y)∈F(Ig(x + d, y))P(x,y)∈F(Id(x, y))

σgσd

o`u F est la fenˆetre d´efinie autour des pixels, et d est la disparit´e entre deux pixels consid´er´es, c’est `a dire le d´ecalage en nombre de colonnes. L’avantage de ce score de corr´elation est son ind´ependance par rapport `a toute transformation affine sur les ni- veaux de gris des pixels : il n’est donc pas sensible aux diff´erences d’illumination et de dynamique de l’image qui apparaissent toujours entre deux cam´eras.

Un autre crit`ere de ressemblance qui est extrˆemement performant est le crit`ere dit Census. Introduit dans [Zabih], il tr`es original et s´eduisant : il se base sur une transformation pr´ealable des images, o`u `a chaque pixel est associ´e un champ de n bits qui code la relation d’ordre entre le pixel et ses n voisins. La ressemblance entre deux fenˆetres d´etermin´ees sur ces images est alors donn´ee par la distance de Hamming, qui ´

enum`ere le nombre de bits qui diff`erent entre l’ensemble des champs de bits des fenˆetres. Des optimisations similaires au calcul du crit`ere ZNCC s’appliquent, et les performances en temps de calcul et en nombre d’appariements produits sont ´equivalentes.

C.1. PRINCIPE DE L’ALGORITHME DE ST ´ER ´EO-VISION 129

Le seul calcul de ces scores ne permet cependant pas toujours d’´etablir des apparie- ments valides : une phase dite de “corr´elation inverse”, qui v´erifie que le pixel appari´e dans la seconde image s’apparie avec le pixel d’origine, permet d’´eliminer un grand nombre de mauvais appariements, et diff´erents tests sur les courbes de corr´elation per- mettent d’´eliminer les faux appariements restants (figure C.3).

dmax C(x,y,d)

d d0

dmin

Fig. C.3 – Quelques courbes de scores de corr´elation. En haut `a droite, un appariement sˆur : la courbe

exhibe un pic bien marqu´e, avec une valeur proche de 1 (maximum th´eorique du score ZNCC). Les

trois autres courbes correspondent `a de faux appariements : en haut `a droite, la valeur du score au

niveau du maximum est trop faible, en bas `a gauche, le pic n’est pas bien marqu´e, ce qui correspond

`

a une zone tr`es faiblement textur´ee, et en bas `a droite, des pics de valeur ´elev´ee sont r´ep´et´es, ce qui

correspond `a la pr´esence de motifs r´ep´etitifs dans la sc`ene.

L’analyse de quelques images suffit `a d´eterminer les diff´erents seuils qui permettent d’´eliminer tous les mauvais appariements, sans pour autant trop r´eduire le nombre de pixels effectivement corr´el´es. Ces valeurs d´ependent de la qualit´e des images disponibles et du type de sc`enes per¸cues : avec les images des cam´eras Sony qui composent le banc st´er´eoscopique sup´erieur de Lama, aucun de ces tests n’est en fait n´ecessaire, la phase de corr´elation inverse suffisant `a ´eliminer les mauvais appariements (figure C.4).

Une fois le pic de corr´elation d´etermin´e sur l’ensemble des disparit´es enti`eres consi- d´er´ees, une interpolation quadratique est appliqu´ee `a partir de la valeur du pic de corr´elation et des ses deux voisins. Cela permet d’affiner la d´etermination de la dispa- rit´e, mais absolument rien ne justifie le calcul de l’interpolation de cette mani`ere : nous allons voir que cela a des effets “pervers” sur la pr´ecision des donn´ees fournies.

Enfin, l’´etape de triangulation permet d’obtenir les coordonn´ees des points 3D `a partir des valeurs de disparit´e et des matrices de calibration du banc st´er´eoscopique.

La performance en temps de calcul de la st´er´eo-vision d´ecroˆıt avec le cube du taux de sous-echantillonnage des images. `A bord du robot Lama, les images sont sous- ´

echantillonn´ees d’un facteur 3 (taille 256× 192 pixels), et l’ensemble de l’algorithme prend une seconde. Notons que grˆace `a la pr´esence de plus en plus fr´equente d’instruc- tions vectorielles ou SIMD sur les processeurs (extension MMX des Pentium ou Activec des G4), ce temps de calcul peut ˆetre r´eduit par un facteur d’au moins 10.

130 MOD ´ELISATION DES ERREURS DE LA ST ´ER ´EO-VISION

Fig. C.4 – Un r´esultat de st´er´eo-vision `a partir des images acquises par le banc st´er´eoscopique sup´erieur

de Lama. Les niveaux de gris de l’image de disparit´e (`a droite) sont inversement proportionnels `a la

profondeur des pixels. La zone o`u des pixels ne sont pas appari´es correspond au banc st´er´eoscopique

inf´erieur : ce dernier ´etant mobile, la disparit´e maximum jusqu’`a laquelle sont effectu´es les calculs de

ressemblance est d´efinie de fa¸con `a ne pas couvrir ce volume.