我有一个机器人使用红外和声纳传感器来测量距离。我建立了一个占用地图/网格。 到目前为止,我使用一个简单的基于整数的系统来“计算”一个小区被占用的概率。如果传感器命中,+1表示0和传感器读数-1之间的所有调用为-1。如果一个单元的数组中的数字高于阈值,则该单元被计为已占用,反之则为未占用。一切都在不确定之中。(有点复杂,但基于这个想法)
我现在想知道是否值得使用基于贝叶斯定理的解决方案(下面的第一个代码片段)。大多数人都是这样做的,答案很可能是肯定的:-)。在
在这个具体的例子中p1和p2是什么意思,比如说红外距离传感器?当解释这个定理时,我理解这些例子。但不知怎么的,我不能把它们转换成红外传感器的情况。(我的脑子有点卡住了) 我不知道应该放在那里的值是什么,如何估计,以及如何将它们应用于数组/映射。在
如果有人能开导我会很好的:-) 如果可能的话。在
下面也是我当前地图处理类。在
谢谢 罗伯特
Bayes函数——但是如何应用呢?在
def pos(p0, p1, p2):
return (p0 * p1)/(p0 * p1 + (1-p0) * (1-p2))
def neg(p0, p1, p2):
return (p0 * (1-p1))/(p0 * (1-p1) + (1-p0) * p2)
我当前的地图类:
^{pr2}$
在
pos
中:p0
是物体存在的先验概率。这可能需要事先知道地图上物体的密度。在p1
是给定目标存在时传感器命中的概率(低为真正值)p2
是在没有目标的情况下,没有传感器命中的概率(真负数)现在
1 - p2
因此是传感器命中的概率,如果目标不在那里(假阳性)。另外,1 - p0
是没有物体存在的概率。如果我们把这些值插入Bayes规则,我们得到:这是您给出的
pos()
函数。在注意:如果您事先不知道地图中对象的密度,可以使用
^{pr2}$p0 = 0.5
,在这种情况下,方程式简化为:相关问题 更多 >
编程相关推荐