使用给定距离的未知固定点进行3D三边测量

时间:2011-02-10 23:14:56

标签: math 3d triangulation euclidean-distance trilateration

我是这个论坛的新手而不是母语为英语的人,所以请你好! :)

这是我目前面临的挑战: 我想基于2点之间的一组给定距离来计算3D欧几里德空间中未知点的(近似)相对坐标。 在我的第一种方法中,我想忽略可能的多种解决方案,只需随机选择第一种方法。

例如为: 给定的距离集:(我认为它创建了一个以直角三角形为基础的金字塔)

P1-P2-距离

  • 30年1月2日
  • 40年2月3日
  • 1-3-50
  • 60年1月4日
  • 60年2月4日
  • 60年3月4日

步骤1: 现在,我该如何计算这些点的相对坐标?
我认为第一点是0,0,0所以第二点是30,0,0 之后,可以通过找到点1和2的2个圆与它们到点3的距离(分别为50和40)的交叉来计算第三个点。我如何以数学方式做到这一点? (虽然我把这些简单的数字用于表达我脑海中的情况)。除了我不知道如何以正确的数学方式得到答案,第三点是30,40,0(或30,0,40,但我会忽略它)。
但获得第四点并不是那么容易。我认为我必须使用3个球来计算交叉点以获得重点,但我该怎么做?

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

步骤3: 现在最后阶段应该是:由于现实生活情况,每个测量距离都有点不正确。因此,如果对于给定的一对点存在多于1个距离,则距离被平均。但是由于距离不精确,在确定点的确切(相对)位置时可能存在困难。所以我想将不同的可能位置平均为“最佳”位置。

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

3 个答案:

答案 0 :(得分:1)

你需要使用三角学 - 特别是'余弦规则'。这将为您提供三角形的角度,让您解决第3和第4点。

规则规定

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之间的角度。 1-4,2-1和2-4等。

'正弦规则'表明(在一个直角三角形中)

a / SinA = b / SinB = c / SinC

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

我将让你解决第4点。一旦你有了这一点,你可以使用毕达哥拉斯轻松解决4的z分量 - 你将有1-4,1-5和4的长度5将是z组件。

答案 1 :(得分:1)

我最初假设您知道所有点对之间的距离。

正如您所说,您可以选择一个点(A)作为原点,沿x轴定位第二个点(B),然后放置第三个点({{1}沿着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) 处于直线或靠近它的情况。

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

不幸的是,我不知道步骤2和3的行为准确的解决方案。您的整体问题通常会受到过度约束(由于噪声距离冲突)和欠约束(由于距离不足)。

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

答案 2 :(得分:0)

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

我使用具有测距能力的Nanotron无线电模块完成了这项工作。

此致