Pubié le

Trouver la position grâce à la triangulation

Authors

Introduction

Considérons un plan 2D avec trois points de référence dont les coordonnées sont (x1x_1, y1y_1), (x2x_2, y2y_2) et (x3x_3, y3y_3). On cherche à déterminer la position (xx, yy) d'un point en mesurant d1d_1, d2d_2 et d3d_3.

d12=(xx1)2+(yy1)2d22=(xx2)2+(yy2)2d32=(xx3)2+(yy3)2{d_1}^2 = (x-x_1)^2 + (y-y_1)^2 \\ {d_2}^2 = (x-x_2)^2 + (y-y_2)^2 \\ {d_3}^2 = (x-x_3)^2 + (y-y_3)^2

En développant :

d12=x22xx1+x12+y22yy1+y12d22=x22xx2+x22+y22yy2+y22d32=x22xx3+x32+y22yy3+y32{d_1}^2 = x^2 - 2xx_1 + {x_1}^2 + y^2 - 2yy_1 + {y_1}^2 \\ {d_2}^2 = x^2 - 2xx_2 + {x_2}^2 + y^2 - 2yy_2 + {y_2}^2 \\ {d_3}^2 = x^2 - 2xx_3 + {x_3}^2 + y^2 - 2yy_3 + {y_3}^2 \\

L'objectif est d'éliminer les termes au carré. On va alors soustraite (1) à (2) et (1) à (3).

d22d12=2x(x2x1)+x22x122y(y2y1)+y22y12d32d12=2x(x3x1)+x32x122y(y3y1)+y32y12{d_2}^2 - {d_1}^2 = - 2x(x_2 - x_1) + {x_2}^2 - {x_1}^2 - 2y(y_2 - y_1) + {y_2}^2 - {y_1}^2 \\ {d_3}^2 - {d_1}^2 = - 2x(x_3 - x_1) + {x_3}^2 - {x_1}^2 - 2y(y_3 - y_1) + {y_3}^2 - {y_1}^2 \\

Et en réagencent :

x(x1x2)+y(y1y2)=d22d12x22+x12y22+y122x(x1x3)+y(y1y3)=d32d12x32+x12y32+y122x(x_1 - x_2) + y(y_1 - y_2) = \frac{{d_2}^2 - {d_1}^2 - {x_2}^2 + {x_1}^2 - {y_2}^2 + {y_1}^2}{2} \\ x(x_1 - x_3) + y(y_1 - y_3) = \frac{{d_3}^2 - {d_1}^2 - {x_3}^2 + {x_1}^2 - {y_3}^2 + {y_1}^2}{2}

On cherche à mettre ces équations sous la forme suivante :

(ABDE)(xy)=(CF)\begin{pmatrix} A & B \\ D & E \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} C \\ F \end{pmatrix}

Par identification, on obtient :

{A=x1x2B=y1y2C=d22d12x22+x12y22+y122D=x1x3E=y1y3F=d32d12x32+x12y32+y122\left\{\begin{matrix} A = x_1 - x_2 \\ B = y_1 - y_2 \\ C = \frac{{d_2}^2 - {d_1}^2 - {x_2}^2 + {x_1}^2 - {y_2}^2 + {y_1}^2}{2} \\ D = x_1 - x_3 \\ E = y_1 - y_3 \\ F = \frac{{d_3}^2 - {d_1}^2 - {x_3}^2 + {x_1}^2 - {y_3}^2 + {y_1}^2}{2} \end{matrix}\right.

Il suffit alors d'inverser la matrice pour obtenir la position (xx, yy)

Exemple en 2 dimensions

Considérons un plan 2D avec trois points de référence dont les coordonnées sont (x1=0,y1=0)(x_1=0, y_1=0), (x2=1,y2=0)(x_2=1, y_2=0) et (x3=0,y3=1)(x_3=0, y_3=1). On cherche à déterminer la position (x,y)(x, y) d'un point en mesurant d1d_1, d2d_2 et d3d_3. Imaginons qu'il se situe en (1,1)(1,1), et on cherche à retrouver cette position.

Nos différents capteurs nous renvoient les 3 distances suivantes :

d12=12210+02+12210+02=2d22=12211+12+02210+02=1d32=12210+02+12211+12=1{d_1}^2 = 1^2 - 2*1*0 + 0^2 + 1^2 - 2*1*0 + 0^2 = 2 \\ {d_2}^2 = 1^2 - 2*1*1 + 1^2 + 0^2 - 2*1*0 + 0^2 = 1\\ {d_3}^2 = 1^2 - 2*1*0 + 0^2 + 1^2 - 2*1*1 + 1^2 = 1\\

En remplaçant les valeurs dans l'équation matricielle finale :

(1001)(xy)=(11)\begin{pmatrix} -1 & 0 \\ 0 & -1 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} -1 \\ -1 \end{pmatrix}

D'où la solution :

(xy)=(11)\begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} 1 \\ 1 \end{pmatrix}