Kinect视觉SLAM技术介绍-视觉机器人本文介绍SLAM的历史、理论以及实现的方式,且主要介绍基于视觉(Kinect)的实现方式
前言开始做SLAM(机器人同时定位与建图)研究已经近一年了
从一年级开始对这个方向产生兴趣,到现在为止,也算是对这个领域有了大致的了解
然而越了解,越觉得这个方向难度很大
总体来讲有以下几个原因:1)入门资料很少
虽然国内也有不少人在做,但这方面现在没有太好的入门教程
《SLAMfordummies》可以算是一篇
中文资料几乎没有
2)SLAM研究已进行了三十多年,从上世纪的九十年代开始
其中又有若干历史分枝和争论,要把握它的走向就很费工夫
3)难以实现
SLAM是一个完整的系统,由许多个分支模块组成
现在经典的方案是“图像前端,优化后端,闭环检测”的三部曲,很多文献看完了自己实现不出来
4)自己动手编程需要学习大量的先决知识
首先你要会C和C++,网上很多代码还用了11标准的C++
第二要会用Linux
第三要会cmake,vim/emacs及一些编程工具
第四要会用openCV,PCL,Eigen等第三方库
只有学会了这些东西之后,你才能真正上手编一个SLAM系统
如果你要跑实际机器人,还要会ROS
当然,困难多意味着收获也多,坎坷的道路才能锻炼人(比如说走着走着才发现Linux和C++才是我的真爱之类的
)鉴于目前网上关于视觉SLAM的资料极少,我于是想把自己这一年多的经验与大家分享一下
说的不对的地方请大家批评指正
这篇文章关注视觉SLAM,专指用摄像机,Kinect等深度像机来做导航和探索,且主要关心室内部分
到目前为止,室内的视觉SLAM仍处于研究阶段,远未到实际应用的程度
一方面,编写和使用视觉SLAM需要大量的专业知识,算法的实时性未达到实用要求;另一方面,视觉SLAM生成的地图(多数是点云)还不能用来做机器人的路径规划,