Geometry 如何用三角剖分法确定点的位置

Geometry 如何用三角剖分法确定点的位置,geometry,sensors,wireless,triangulation,Geometry,Sensors,Wireless,Triangulation,我正在从事定位无线传感器网络项目。我使用三角测量法估计无线传感器的位置,其中我有两个传感器,其位置已知: A(x1,Y1) 和B(X2,Y2) 我要定位的点是c(x,y) 我有这些点之间的距离: AB、AC和BC 我怎样才能用三角测量法做到这一点 a := dist(B,C), b := dist(A,C). A := (a1,a2), B := (b1,b2), C := (x,y). 我们有 (x - a1)^2 + (y - a2)^2 = b^2 eq (1) (x

我正在从事定位无线传感器网络项目。我使用三角测量法估计无线传感器的位置,其中我有两个传感器,其位置已知:

A(x1,Y1)

和B(X2,Y2)

我要定位的点是c(x,y)

我有这些点之间的距离:

AB、AC和BC

我怎样才能用三角测量法做到这一点

a := dist(B,C), b := dist(A,C).
A := (a1,a2), B := (b1,b2), C := (x,y).
我们有

(x - a1)^2 + (y - a2)^2 = b^2           eq (1)
(x - b1)^2 + (y - b2)^2 = a^2
cos(theta) = (b^2 + c^2 - a^2)/(2bc)    eq (3)
因此:

现在减去:

(2(b1) - 2(a1))x + (a1)^2 - (b1)^2 + 2((b2) - (a2))y + (a2)^2 - (b2)^2
    = b^2 - a^2
求解
y

y = u + vx                              eq (2)
其中:

u := ((a1)^2 + (a2)^2 - ((b1)^2 + (b2)^2) + a^2 - b^2)/(2((a2) - (b2)))
v := (2((b1) - (a1)))/(2((a2) - (b2)))
r := 1 + v^2
s := -2(a1) + 2uv - 2v(a2)
t := (a1)^2 + (uˆ2) - 2u(a2) + (a2)^2 - b^2
将上述等式1中的
y
替换为
u+vx

(x - a1)^2 + (u + vx - a2)^2 = b^2 

rx^2 + sx + t = 0
其中:

u := ((a1)^2 + (a2)^2 - ((b1)^2 + (b2)^2) + a^2 - b^2)/(2((a2) - (b2)))
v := (2((b1) - (a1)))/(2((a2) - (b2)))
r := 1 + v^2
s := -2(a1) + 2uv - 2v(a2)
t := (a1)^2 + (uˆ2) - 2u(a2) + (a2)^2 - b^2
求解
x

x = (-s +/- sqrt(s^2 - 4rt))/(2r)
根据等式2:

y = u + vx.

替代方法

a:=dist(B,C)
B:=dist(a,C)
如上所述,并将
C:=dist(a,B)
设为
theta
为角度
BAC
,如下所示

我们有

(x - a1)^2 + (y - a2)^2 = b^2           eq (1)
(x - b1)^2 + (y - b2)^2 = a^2
cos(theta) = (b^2 + c^2 - a^2)/(2bc)    eq (3)
然后我们可以导出
h
c1
as

h := b * sin(theta) = b * sqrt(1 - cost(theta)^2).
c1 := b * cos(theta)
所以

在哪里

现在我们可以利用这样一个事实,
C
在距离
h
的垂直方向上与
AB
相交于
D

C := (d1, d2) +/- ((a2 - b2)*h/c, (b1 - a1)*h/c) 
其中,
+/-
表示
C
AC
行上方或下方的两种可能性

在哪里


示例

A = (2,3) - B = (5,4) - a = sqrt(5) - b = sqrt(5)
计算
c

c := dist(A,B) = 3.16227766016838.
来自等式(3)

计算
h
c1

h := b * sin(theta) = 1.58113883008419.
c1 := b * cos(theta) = 1.58113883008419.
根据等式(4):

现在计算
C

C = ((a2 - b2)) * h / c , (b1 - a1) * h / c) + D
  = (-0.5,1.5) + (3.5,3.5)
  = (3,5)
核实:

dist(A,C) = dist((2,3),(3,5)) = sqrt(1ˆ2 + 2^2) = b (OK)
dist(B,C) = dist((5,4),(3,5)) = sqrt(2^2 + 1^2) = a (OK)

我遵循了你的链接,但我想要一个简单的例子来了解如何确定CI的C(X,Y)坐标没有答案,但它可以帮助我将问题形象化。首先,确保
AB
,因为。第二,你需要找到正确的答案。希望这在某种程度上有所帮助。这可能不是最优雅的方程组。但是,它将有望让您继续您的项目。如果有任何其他方法有助于确定未知点的位置?如果您将所有点从自身和
B
中减去
A
,将所有点转换为
A
,方程将更简单,因为这样你就摆脱了
a1
a2
(它们都变成了
0
)。所以你可以解决这个简单情况下的问题(包括重写
a1=a2=0
)然后将
A
添加到解中,得到
C
的实际坐标为
(x+a1,y+a2)。
我举了一些例子,但结果不匹配,这个算法的结果是近似的还是精确的?你能告诉我这个算法的来源吗?这样我就可以用它作为参考了。谢谢你,在等式x=(-s+/-sqrt(s^2-4rt))/(2r)[s+/-]中它意味着s+或s-?
D = (3.5,3.5)
C = ((a2 - b2)) * h / c , (b1 - a1) * h / c) + D
  = (-0.5,1.5) + (3.5,3.5)
  = (3,5)
dist(A,C) = dist((2,3),(3,5)) = sqrt(1ˆ2 + 2^2) = b (OK)
dist(B,C) = dist((5,4),(3,5)) = sqrt(2^2 + 1^2) = a (OK)