是否存在用于此目的的算法?
#1 楼
不管您使用什么传感器,算法本质上都是相同的。克里斯谈到的真正问题是,即使使用非常好的传感器,SLAM也很难。
我认为GPS,车轮测距法和IMU甚至是尝试用超声波猛击的必要条件。
如果您只是在寻找便宜的定位技术,我建议您同时考虑一下基于视觉/ kinect的猛击方法。网络摄像头和kinect都很便宜,视觉冲击已经走了很长一段路。
只要您在室内,就传感器性能/成本而言,kinect几乎是圣杯。
以下是机器人上的Kinect实例以及大量数学运算:http://www.youtube.com/watch?v=9Y4RQVpp-BY
#2 楼
关于这个主题有整个文献领域。最一般的想法是同时定位和映射(SLAM),在这种情况下,机器人必须在将自己定位在地图中的同时构建地图。根据您希望地图的精确程度,您可以尝试创建一个占用网格图的简单问题,假设您知道机器人的位置。一般来说,GPS太可怕了,因此,仅使用GPS作为主要位置信息源来生成占用栅格,就会生成漂亮的模糊地图。但是,可以将GPS与加速度,陀螺仪,指南针,照相机,车轮编码器和其他传感器集成在一起,以在世界范围内找到合适的位置。否则,您将需要研究一个简单的SLAM系统来解决您的问题。
一个很好的开源软件包g2o,用于GraphSLAM,它允许您放置GPS等约束以及墙的相对位置。它可能不完全合适,但是很笼统。
#3 楼
要进行SLAM,您将需要相对良好的位置估计。使用激光扫描仪的机器人可以仅使用里程表来完成,因为数据相对准确,并且可以使用扫描仪数据来帮助
超声波传感器非常模糊,通常方向模糊度超过20度,并且可以检测到大方向上的任何物体。
因此,它们在帮助本地化方面的帮助微不足道(在非常结构化的环境中除外)。
GPS / IMU组合可用于进行合理的本地化。当然,这取决于机器人的规模,如果是在室内,则GPS可能不可行。
如果您能够仔细控制车轮打滑,车轮里程计可以显着改善驾驶室的定位。短期(尽管最好使用绝对的本地化方法)。没有绝对参考(例如GPS),即使使用激光扫描仪,您也将需要能够解决“闭合环路”的问题。
结构化的环境可能对精度的要求较低。例如,在一个迷宫般的环境中,墙壁具有规则的正方形网格距离,在这里可以很容易地检测到网格单元各个方向上的墙壁。
评论
$ \ begingroup $
另外一个想法是使用基本的回避行为来收集所有数据,以确保机器人不会撞到任何东西,然后使用后处理图形SLAM。这可以利用捕获的所有数据,而不是一个点的先前数据。您可能希望签出:openslam.org/ssa2d.html或robots.stanford.edu/papers/thrun.graphslam.html
$ \ endgroup $
–巴雷特·埃姆斯(Barrett Ames)
2012年10月25日20:08