我正在为我的机器人实施蒙特卡洛本地化,并给出了环境及其起始位置和方向的地图。排雷方法如下:


在给定位置周围均匀创建500个粒子
然后在每个步骤:

使用里程表运动更新所有粒子(我当前的方法是newX = oldX + odometryX(1 + standardGaussianRandom),等等)
返回具有最大概率的粒子作为此步骤的位置
然后按照权重从旧粒子中重新采样9/10个新粒子,并在预测位置附近均匀采样1/10。



现在,我为机器人的环境编写了一个模拟器,这是本地化的行为方式:
http://www.youtube.com/watch?v=q7q3cqktwZI

我很担心机器人会在更长的时间内迷路。如果将粒子添加到更大的区域,机器人会更容易丢失。

我希望有更好的表现。有什么建议吗?

评论

考虑到单个声纳传感器,视频中显示的性能很好。您是否有机器人遗失的示例视频?

实际上有5个声纳,还是会说很好吗?我没有失去机器人的视频,但是今天我将在一个真正的机器人上进行尝试。

我不清楚您的关注是什么。您实施的PF似乎工作正常。也许您可以更详细地了解问题所在。

请不要在多个堆栈交换站点上问相同的问题。如果您不小心在错误的网站上提问,则可以将其迁移到正确的网站。

欢迎使用机器人技术Andrei Ivanov。就目前情况而言,不清楚您的实际问题在这里。我们倾向于根据您所遇到的实际问题提出实用,可回答的问题。看看“如何询问和浏览”以获取有关堆栈交换如何工作的更多信息,并考虑如何编辑问题以使其更易于回答。

#1 楼

我刚刚回答了StackOverflow上的问题。这是链接:

https://stackoverflow.com/questions/21249131/monte-carlo-localization-for-mobile-robot

评论


$ \ begingroup $
阅读您的回答,您是对的:)
$ \ endgroup $
– Neo
2014年2月4日在6:46