Math 利用未知固定点的给定距离进行三维三边测量

Math 利用未知固定点的给定距离进行三维三边测量,math,3d,triangulation,euclidean-distance,trilateration,Math,3d,Triangulation,Euclidean Distance,Trilateration,我是这个论坛的新成员,不是以英语为母语的人,所以请友好一些!:) 以下是我目前面临的挑战: 我想根据两个点之间的一组给定距离,计算三维欧几里德空间中未知点的(近似)相对坐标。 在我的第一种方法中,我想忽略可能的多个解决方案,只是随机选择第一个解决方案。 e、 g: 给定一组距离:(我认为这是创建一个以直角三角形为基础的金字塔) P1-P2-距离 1-2-30 2-3-40 1-3-50 1-4-60 2-4-60 3-4-60 步骤1: 现在,如何计算这些点的相对坐标? 我计算出第一个点是0

我是这个论坛的新成员,不是以英语为母语的人,所以请友好一些!:)

以下是我目前面临的挑战: 我想根据两个点之间的一组给定距离,计算三维欧几里德空间中未知点的(近似)相对坐标。 在我的第一种方法中,我想忽略可能的多个解决方案,只是随机选择第一个解决方案。

e、 g: 给定一组距离:(我认为这是创建一个以直角三角形为基础的金字塔)

P1-P2-距离
  • 1-2-30
  • 2-3-40
  • 1-3-50
  • 1-4-60
  • 2-4-60
  • 3-4-60
步骤1: 现在,如何计算这些点的相对坐标?
我计算出第一个点是0,0,0,所以第二个点是30,0,0。
之后,可通过查找点1和2的两个圆与点3的距离(分别为50和40)的交点来计算第三个点。我如何从数学上做到这一点?(尽管我把这些简单的数字当作我脑海中情况的简单表示)。此外,我不知道如何用正确的数学方法得出答案,第三点是30,40,0(或30,0,40,但我将忽略它)。
但获得第四分并不像那样容易。我想我必须使用3个球体来计算交叉点,但是我该怎么做呢

第二步: 在我弄明白如何计算这个“简单”的例子后,我想使用更多的未知点。。。对于每个点,到另一点的最小给定距离为1,以将其“链接”到其他点。如果因为坐标的自由度而不能计算坐标,我想忽略所有的可能性,除了我随机选择的一个,但是关于已知的距离

第三步: 现在,最后一个阶段应该是这样的:由于现实生活中的情况,每个测量的距离都有点不正确。因此,如果给定的一对点的距离超过1,则平均距离。但由于距离不精确,在确定点的精确(相对)位置时可能会有困难。所以我想把不同的可能位置平均到“最佳”位置


你能帮我一步一步地完成我的挑战吗

你需要使用三角学——特别是“余弦规则”。这将给你三角形的角度,让你解决第三和第四点

规则规定

c^2 = a^2 + b^2 - 2abCosC
式中,a、b和c是边的长度,c是对边c的角度

在你的例子中,我们需要1-2和1-3之间的角度-在(0,0,0)处相交的两条线之间的角度。它将是90度,因为你有3-4-5三角形,但让我们证明:

50^2 = 30^2 + 40^2 - 2*30*40*CosC
CosC = 0
C = 90 degrees
这是直线(0,0,0)-(30,0,0)和(0,0,0)-点3之间的角度;沿着这条线延伸1-3边的长度(50),你会得到第二个点(0,50,0)

找到你的第四点稍微有点困难。我能想到的最简单的算法是首先找到点的(x,y)分量,然后使用毕达哥拉斯的方法直接得到z分量

假设(x,y,0)平面上有一个点直接位于点4的“下方”——称之为点5。现在可以创建3个直角三角形1-5-4、2-5-4和3-5-4

你知道1-4,2-4和3-4的长度。因为它们是直角三角形,所以比率
1-4:2-4:3-4
等于
1-5:2-5:3-5
。使用三角法找到点5,“正弦规则”将给出1-2和1-4、2-1和2-4之间的角度等

“正弦规则”规定(在直角三角形中)

对于三角形1-2-4,虽然你不知道长度1-4和2-4,但你知道比率
1-4:2-4
。同样,您知道其他三角形中的比率
2-4:3-4
1-4:3-4


我让你来解决第四点。一旦你有了这一点,你可以很容易地用毕达哥拉斯解出4的z分量,你将得到边1-4,1-5,长度4-5将是z分量。

如果你知道节点之间的距离(系统的固定部分)和到标签的距离(移动的),你可以使用三边测量来找到x,y位置

我使用具有测距功能的纳米电子无线电模块完成了这项工作


关于

我首先假设您知道所有点对之间的距离

正如您所说,您可以选择一个点(
A
)作为原点,沿x轴定位第二个点(
B
),并沿xy平面放置第三个点(
C
)。可以按如下方式求解C的坐标:

given: distances ab, ac, bc
assume
A = (0,0)
B = (ab,0)
C = (x,y)  <- solve for x and y, where:
  ac^2 = (A-C)^2 = (0-x)^2 + (0-y)^2 = x^2 + y^2
  bc^2 = (B-C)^2 = (ab-x)^2 + (0-y)^2 = ab^2 - 2*ab*x + x^2 + y^2

-> bc^2 - ac^2 = ab^2 - 2*ab*x
-> x = (ab^2 + ac^2 - bc^2)/2*ab
-> y = +/- sqrt(ac^2 - x^2)
给定:距离ab、ac、bc
假定
A=(0,0)
B=(ab,0)
C=(x,y)bc^2-ac^2=ab^2-2*ab*x
->x=(ab^2+ac^2-bc^2)/2*ab
->y=+/-sqrt(ac^2-x^2)
要使其准确工作,您需要避免点
{A,B,C}
在直线上或接近直线的情况

在3-空间中求解附加点类似——您可以扩展距离的毕达哥拉斯公式,取消二次元素,并求解得到的线性系统。但是,这并不能直接帮助您完成步骤2和步骤3

不幸的是,对于步骤2和步骤3,我也不知道一个性能良好的精确解。您的总体问题通常是过度约束(由于相互冲突的嘈杂距离)和欠约束(由于缺少距离)


您可以尝试使用迭代解算器:从随机放置所有点开始,将当前距离与给定距离进行比较,然后使用该距离调整点,以改进匹配。这是一种优化技术,所以我会查阅有关数值优化的书籍。

你有所有点对之间的距离吗?
given: distances ab, ac, bc
assume
A = (0,0)
B = (ab,0)
C = (x,y)  <- solve for x and y, where:
  ac^2 = (A-C)^2 = (0-x)^2 + (0-y)^2 = x^2 + y^2
  bc^2 = (B-C)^2 = (ab-x)^2 + (0-y)^2 = ab^2 - 2*ab*x + x^2 + y^2

-> bc^2 - ac^2 = ab^2 - 2*ab*x
-> x = (ab^2 + ac^2 - bc^2)/2*ab
-> y = +/- sqrt(ac^2 - x^2)