1:slam简介与应用
这篇博主讲了slam的简介以及应用场景,主要是无人机,无人驾驶与AR
https://blog.csdn.net/liubing8609/article/details/80754213
2.如何实现定位
2.1 基于特征点匹配
算法:
虽然实际情况是小车移动,墙静止。但是相对车,墙在移动。通过特征点匹配,可以得出墙的移动后的位置(x2,y2,z2,alpha2,beta2,gama2),两帧的位置差(x2-x1,y2-y1,z2-z1,....)。相对来说,我们就可以得出小车的位移。
那么动态障碍物造成的干扰呢?
3.如何实现建图?
获取深度的方式有RGB-D,双目,单目需要有参考物。
获取深度图后,要形成点云,重点便是点云的拼接,在slam十四讲里有示例:
https://blog.csdn.net/weixin_40353209/article/details/81367511
这里主要谈下主要思想;
利用PCL建立点云 变量,比如pointT(类似一个多维向量,不用定义大小,不断添加数据),然后不断向里面放置点云信息(x,y,z,r,g,b)。如何融合多张图的点云呢?很简单。我们通过深度图,可以得知每个点在世界坐标的位置,得到(x,y,z,r,g,b)
然后再push_back进pointT这个vector里。这样假如两张深度图里有相同的点,就在点云图里重合在一起就好了。当所有点遍历完毕,点云图也就建立完成。
那么问题来了,一般建立的ROS导航地图都是2D的,如何处理爬坡等问题呢?