• Aucun résultat trouvé

Cette section est consacrée à la description de l’extension de notre solution analytique au cas non colinéaire, c.-à-d. lorsque les marqueurs ~Ri et ~Li de chaque robot ne sont pas sur le même axe que la caméra ~Ci de leur robot respectif. En premier lieu, nous précisons les implications mathématiques de cette généralisation. En second lieu, nous développons les corrections qui peuvent être appliquées à notre solution analytique pour minimiser l’erreur de nos estimations. En troisième lieu, nous présentons les résultats des simulations qui ont été réalisées pour valider nos calculs. Nous concluons en ouvrant sur les possibilités de cette généralisation.

2.4.1 Effets de la non colinéarité sur la solution proposée

Le fait que les caméras ne soient pas colinéaires avec les marqueurs lumineux de leur robot respectif ajoute une complexité aux calculs de localisation relative. Afin de bien comprendre cette complexité, nous allons présenter les effets du décalage des caméras sur la solution que nous avons proposée à la section2.1. L’analyse de ces effets est d’abord faite en ne supposant que le décalage d’une caméra à la fois. Ensuite, nous vérifions ce qui doit être considéré lorsque les deux caméras ne sont pas colinéaires et lorsque l’angle β est estimé.

Figure 2.28 – Histogramme représentant l’erreur sur l’estimation de la position du RobotB sur des

distances l entre 12.1 m et 15.0 m, faite par notre système de localisation relative. L’erreur moyenne est de 5.37 cm.

Figure 2.29 – Histogramme représentant l’erreur sur l’estimation de l’orientation du RobotB sur des

distances l entre 12.1 m et 15.0 m, faite par notre système de localisation relative. L’erreur moyenne est de 0.0238 rad.

et ~LA. La figure2.30montre graphiquement ce décalage, qui peut être complété par un rappel à la figure 2.2 de gauche. Soit un plan de décalage défini par la normale du plan illustré en jaune à la figure 2.2de gauche et par le vecteur O

BT~, qui représente le vecteur de translation entre l’origine du référentiel FA et la caméra ~CB. Nous définissons, sur ce plan de décalage, une translation ~SA, qui rend la caméra ~CAnon colinéaire avec ~LAet ~RA. L’angle du décalage

~

SA par rapport àOBT~ peut être décrit par la variable ΘA. Ici,ABT~ est le vecteur de translation réel entre les deux caméras, qui n’est donc pas égal à O

Figure 2.30 – Visualisation de la non-colinéarité selon le plan Y −Z (l’axe X sortant de la page) dans le cas de la caméra ~CA. Cette caméra observe une translation ~SApar rapport au centre du référentiel

FA. De plus, cette translation possède un angle de ΘA par rapport au vecteur OBT . Puisque la non-~

colinéarité de ~CA cause une erreur dans l’estimation de la distance l, la translation ~T est employée

pour approximer une correction de cette estimation.

D’une part, il a été vu à la sous-section2.1.2que l’angle α correspond à l’angle entre les deux marqueurs du RobotA vus de la caméra ~CB. D’autre part, nous avons également montré que l’angle β correspond à la position de la caméra ~CB par rapport à l’axe optique de la caméra

~

CA. Si la caméra ~CAest décalée, cela entraîne la modification de la mesure de β, modification qui est correcte car nous cherchons à localiser ~CBpar rapport à ~CA. Cependant, celle de l’angle αdemeure inchangée car elle ne dépend que des marqueurs ~LA, ~RAet de la caméra ~CB. Cela a pour conséquence que l’angle α engendre une erreur puisqu’il ne considère pas le décalage de ~CA.

Dans cette situation, étant donné que l’angle β prend en compte la position non colinéaire de la caméra ~CA, la direction deA

BT~ est bien déterminée. Néanmoins, l’équation2.9nous montre que la distance estimée l qui sépare les deux caméras est mal calculée, puisqu’elle dépend de l’angle α et que celui-ci est erroné. Il faut donc modifier cette longueur l en calculant la translation ~T qui corrige approximativement cette erreur. De plus, la translation appliquée à la caméra ~CAmodifie légèrement l’estimation de l’orientation relative de la caméra ~CB. Ainsi, il est nécessaire de déterminer la rotation permettant de corriger cette erreur.

Considérons maintenant le cas où la caméra ~CB n’est pas sur l’axe défini par ~RB et ~LB tout en supposant que la caméra ~CAdemeure colinéaire avec ~LAet ~RA. De façon similaire, le plan

de décalage est cette fois défini par le vecteurB

AT~ et par la normale du plan illustré en jaune à la figure2.2de droite. Nous définissons, sur ce plan de décalage, une translation ~SB, qui rend la caméra ~CB non colinéaire. Alors, l’angle de ~SB par rapport à B

AT~ peut être décrit par la variable ΘB. Étant donné que ces définitions sont les mêmes que pour le cas précédent, nous omettons d’ajouter une autre figure et nous référons le lecteur à la figure 2.30.

Il a été vu à la sous-section 2.1.2 que l’image IB générée par la caméra ~CB est utilisée pour calculer l’angle α. Puisque la caméra ~CB est décalée, la valeur de l’angle α est modifiée. Par exemple, si la caméra ~CB est déplacée de l’axe ~LB- ~RB de manière à la rapprocher de ~CA, l’angle α perçu sera augmenté. Néanmoins, la distance estimée l entre les caméras ~CA et ~CB demeure correcte. Cependant, la caméra ~CA utilise les marqueurs ~RB et ~LB pour évaluer la direction deA

BT~ dans le but de déterminer l’angle β. Par conséquent, l’angle β sera erroné dans cette situation. Afin de corriger cette erreur, il suffit donc de calculer la rotation à appliquer pour modifier l’estimation de la position relative de la caméra ~CB. De surcroît, il faut appliquer cette même rotation à l’estimation de son orientation relative.

Perturbation sur Caméra CA Caméra CB

Affecte l’angle α β

Altère l’estimation de distance l position Correction sur A

BTpar translation rotation Correction sur A

BRpar petite rotation petite rotation

Le tableau2.4.1est une synthèse de la présente sous-section. Nous y avons affiché les effets res- pectifs des décalages appliqués à chaque caméra. Nous rappelons que la matriceA

BTest définie par la conversion du vecteur de translationA

BT~ à l’équation2.20en une matrice de translation. Nous indiquons également que la matriceA

BR est en fait la combinaison des matricesABR1et A

BR2, qui proviennent respectivement des équations 2.15et2.19.

Nous notons ici une conclusion importante : le décalage d’une caméra entraîne des effets indé- pendants de la colinéarité de l’autre caméra. Ainsi, nous allons utiliser ce fait à notre avantage à la prochaine sous-section afin de déterminer les corrections approximatives à appliquer à notre solution analytique pour résoudre le problème non colinéaire.

2.4.2 Corrections approximatives à notre solution Non colinéarité de la caméra ~CA

Tout d’abord, rappelons que lorsque la caméra ~CA n’est pas colinéaire, la valeur de l’angle α est invalide. Cette erreur a un impact sur l’estimation de la distance l entre les caméras. Dans cette situation, la première étape pour approximer une correction est de calculer l’erreur l sur la distance l.

Rappelons aussi que le décalage de la caméra correspond à une translation, ~SA, qui est connue dans le référentiel FA. Comme l’indique la figure2.30, ce décalage déplace la caméra ~CAà un angle de ΘA hors de la trajectoire du vecteur de translationO

BT~ entre l’origine du référentiel FA et la caméra ~CB. Pour évaluer l, il est nécessaire de calculer cet angle ΘA:

ΘA=acos( O BT · ~~ SA |O BT || ~~ SA| ). (2.46) Cependant, O

BT~ n’est pas connu par notre système. Néanmoins, nous avons présenté à la section2.1.3 la translationA

BT~ entre les deux caméras colinéaires que nous rappelons ici : A

BT = l~ AP~

B

|AP~B|. (2.47)

Puisque l >> d dans les cas réels d’utilisation de notre système, il est possible d’approximer O

BT~ parABT~ lorsque le décalage est petit relativement à la distance d, c.-à-d. lorsque |~SA| < d. En effet, du point de vue de la caméra ~CB, l’angle entre −O

BT~ et −ABT~ est négligeable. Par conséquent, l’angle ΘAentre le décalage ~SA de la caméra ~CA et le vecteur O

BT~ est estimé par l’équation2.48: ΘA≈acos( A BT · ~~ SA |A BT || ~~ SA| ). (2.48)

Ainsi, il est possible de calculer une approximation de l’erreur l sur la distance l en utilisant le décalage ~SAet son angle ΘApar rapport à O

BP~ :

l= | ~SA| cos(ΘA) (2.49) À la section 2.4.1, nous avons montré que nous pouvons approximer une correction pour la non colinéarité de la caméra ~CA à l’aide d’une translation le long du vecteurA

BT~ suivie d’une faible rotation pour corriger l’orientation relative estimée du RobotB.

Identifions par ~Tla translation corrigeant l’estimation initiale de la translation réelle entre les deux robots, le long du vecteurA

BT~. En utilisant l’erreur l sur la distance l entre le RobotA et le RobotB, ~T peut être estimé :

~ T= l A BT~ |A BT |~ . (2.50)

Par la suite, la translation ~T est trivialement convertie en une matrice de translation T. De manière similaire, nous retrouvons la petite rotation qui corrige la non-colinéarité de la caméra ~CA. Cette rotation, définie par RA

, est déterminée en utilisant encore une fois l’angle ΘA, qui a été calculé à l’équation 2.48.

RA ≈Rodrigues LA~RA, arcsin sin(ΘA) |~SA| |A

BT | + ~ l !!

Documents relatifs