三维模型重建可以怎样用于机器人导航?

申请了一个三维模型重建的项目,老师的本意是将它用于机器人导航。 考虑方案时感觉点云处理过就可以导航了,三维模型并没有什么用途啊… 还有一个技术问题,想…
关注者
290
被浏览
38,488

5 个回答

回答一下问题的要点:

  1. 三维模型能否用于导航?
    可以。但是大部分移动机器人都在地面运动,所以导航用二维地图足矣。二维地图在ROS里就有包故不列举。
    三维模型可供无人机等在三维空间里运动的机器人导航。例如[1]:

  2. 怎样的三维模型可用于导航?
    原始点云并不适合做3D导航。基于八叉树的占据网格型地图Octomap[2]就是一个较好的例子。它将空间划分成网格并以八叉树的形式存储,具有存储高效、表达方式灵活的优点。上图即是一个octomap的例子,可详细的可参考原始论文或我的博客:SLAM拾萃(1):octomap
  3. 3D模型怎么来?
    这其实是一个SLAM或SFM问题,考虑到机器人背景还是说SLAM为妥。既然你都用Kinect了,建议你使用RGBD SLAM方法,事实上RGBD在视觉slam中还算是最简单的(相比于mono slam和stereo来说)。好用的RGBD SLAM例子有(论文就不列了,直接给git地址):

至于导航算法,由于我个人是做slam的,只知道基本的A*, D*,进一步的就不清楚了,还望相关同学补充。

如果你想零基础了解一下RGBD SLAM,可以参看我的博客,提供配套代码与对应数据:

半闲居士 - 博客园

参考文献:

[1]. Real-Time Visual-Inertial Mapping, Re-localization and Planning onboard mavs in unknown environments, Michael Burri et al., IROS 2015.

[2]. OctoMap: An efficient probabilistic 3D mapping framework based on octrees, Hornung, Armin et al. Auton. Robots, 2013.

我的本科毕业设计也是一个机器人导航的,只不过用的不是3D图像重建,用的是激光测距仪,一个简单的周围环境2D轮廓重建,避障什么的还是没问题,我没有研究很深,毕业以后就没有接触了,因为现在导师没给我安排这个方向了。


我当初用了两个算法,EKF SLAM和FastSLAM,下面是我用matlab仿真的结果,右下角是构建出来的地图。


个人觉得这两个算法真的有很多很多不足,在现实生活中根本很难用得上,特别是随着时间推移,误差积分会越来越大,而且计算量不小,如果路面不平整,有坑坑洼洼的,或者机器人(假设是轮式机器人)轮胎打滑,最极端情况是假设机器人摔了一跤或者是突然将机器人移动到另外一个地方,那么这个算法就会几乎完全失效。。。悲剧(原谅我才疏学浅,勿喷)

个人觉得目前解决的这个问题的终极办法是把你对图像中用于定位的兴趣点识别率提高到越高越好,你想啊,我们人类是怎样在脑海中构建地图的?主要还是靠双眼对周围某些特征的识别,比如房间中的门、窗户、墙壁上的挂件等等,从而实现对自己的定位,要是识别能力上不去,这个SLAM框架再牛逼也是白搭。。。会随着时间推移,地图重建出来的效果越来越离谱,甚至完全不具有参考价值了(( ´◔ ‸◔')

呃,好像有点偏题了,你问的三维地图重建,不过,目前就我了解到的资料,主流框架还是SLAM,要是在移动环境中进行重建的话,还是离不开SLAM的……

个人觉得现在搞地图重建真的瓶颈太大了,将来哪天图像识别能力上去了,地图重建也会迎刃而解了。