Python 获取(真实)对象的位置

Python 获取(真实)对象的位置,python,math,python-3.4,Python,Math,Python 3.4,故事:假设我有一个带有距离(超声波?)传感器的机器人。机器人可以计算出与前方任何物体的距离,但无法知道物体的坐标。因此,机器人稍微移动一点以获得不同的视角,并计算与该视角的距离,知道它与第一个视角的距离 如何使用以下输入获取Python3.4中真实对象的坐标或某种位置 与视图A中对象的距离。 与视图B中对象的距离。 视图A和B之间的距离 A和B总是在同一个X坐标上 输入示例: a = 3.5 #Distance from object at point A (in cm) b = 7 # Di

故事:假设我有一个带有距离(超声波?)传感器的机器人。机器人可以计算出与前方任何物体的距离,但无法知道物体的坐标。因此,机器人稍微移动一点以获得不同的视角,并计算与该视角的距离,知道它与第一个视角的距离

如何使用以下输入获取Python3.4中真实对象的坐标或某种位置

与视图A中对象的距离。 与视图B中对象的距离。 视图A和B之间的距离

A和B总是在同一个X坐标上

输入示例:

a = 3.5 #Distance from object at point A (in cm)

b = 7 # Disatance from object at point B (in cm)

c = 5 # Distance between A and B (in cm)
输出应该是一些坐标或者我可以用来找出物体位置的东西

我如何计算对象的位置?我知道有某种算法,但我不知道它叫什么,也不知道它是如何工作的

我想这更像是一个数学问题,而不是一个编程问题,但我想以编程的方式实现它

不管怎么说,输入不一定就是这个。我想你也需要一个角度或类似的东西,所以如果需要extre输入,就在anwser中使用它

谢谢

(我使用的是Win10,64位,Python 3.4)


如果你知道怎么做,或者知道一些算法名称,但是你不懂Python,请指出它或者给出一个数学例子,我将尝试用Python实现它。

对象在两个圆周上,一个中心位于机器人的位置1(已知),半径
a(=位置1到对象的距离)另一个中心位于位置2,半径
b
(=从位置2到对象的距离)。然后就是找到这两个圆周的交点。由于周长将在两个点上相交,因此您仍然必须确定对象位于其中一个点上。因此,您需要一些额外的信息来决定这一点,但我相信有了这个小小的帮助,您就可以开始了。

用坐标绘制三角形ABC
(0,0),(b,0),(cx,cy)
(将原点固定在A处,因为没有更好的位置放置它——以后您可以随时移动坐标)

然后您就知道了数量
AC^2=cx^2+cy^2
BC^2=(cx-b)^2+cy^2
。您可以为
cx=(AC^2-BC^2+b^2)/2b
cy=+/-sqrt(AC^2-cx^2)
求解这些方程。 请注意,您没有提供足够的信息来推断cy的符号(对象位于x轴的哪一侧)


用Python编写代码很简单。

您使用的是超声波传感器吗

A = (-c/2, 0)
B = (+c/2, 0)
C = (tx, ty), ty >= 0
然后


因为答案是唯一确定的,所以只有在确定之后才能求解。

基本上你有一个三角形,你知道三条边的长度。这还不足以获得任何类型的绝对位置信息,因为你没有参考系。但是,你可以用余弦定律得到三角形的角度。如果机器人的坐标是已知的,那么是的,可以找到物体的坐标。你能简单解释一下吗?我只有13岁,英语不是我的主要语言。现在我不知道该怎么办了。我知道它是如何计算的,但cx和cy是什么?哪个变量应该是/我如何计算最终结果,物体的位置?cx和cy是物体的坐标,这些是你试图求解的变量。是的,物体的位置是
(cx,cy)
。我们选择
A
作为原点,
B
是另一个固定点(在x轴上,我写的方式),因此
AC
是从
A
C
的距离,
BC
是从
B
C
的距离
AB
,从
A
B
的距离就是我所说的
B
。Thx!这对我的理解有很大帮助。
AC^2 = (tx+c/2)^2 + ty^2 = a^2
BC^2 = (tx-c/2)^2 + ty^2 = b^2