SLAM学习资料整理 殿堂级大牛

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Darlingqiang/article/details/80689922

总结一下我接触过的SLAM算法吧,主要集中在visual slam:

特征法:

  1. ORB SLAM github.com/raulmur/ORB_

优势: 在静态环境下定位准确,稳定, 单目和双目版本都可以达到实时(高于10frames/s)。代码可读性强,易扩展, 网上也有实现和imu融合的版本。

劣势:建的地图点云稀疏。 运行速度方面,因为提特征点的时间有瓶颈最快的运行速度应该不超过30frames/s, 我在本机 (i7-6600U) 测的速度基本都在20frames/s左右,因此对于高帧率的相机需要降帧率才能用。对动态物体很敏感,再有动态物体时非常容易tracking lost。

总的来说ORB-SLAM还是在智能驾驶领域用的最广泛的SLAM算法,因为它在work的时候可以work的很好,急需解决的问题是对特征点提取的加速,以及处理的环境中的动态物体。


直接法

2. DSO github.com/JakobEngel/d

优势:可以生成相当稠密的点云, 这个优点给DSO很大想象空间。 速度在可以work的时候很快, 大概在20-30frames/s。

劣势:对场景光照要求高,要求尽量保持曝光时间的稳定。对动态物体没有orb那样敏感。代码可扩展性比较差,目前开源的只有单目版本,这个版本没有做尺度恢复因此没法在实际中直接用。这里贴一个我开发的stereo dso: github.com/JiatianWu/st, 可以恢复相对准确的pose。

DSO的缺点和优点都很明显,目前的局限应该是还没有一个开源可用的像双目orb那样稳定的版本,但是有很大的潜力去做一些orb无法做的事,比如建稠密的高精地图,甚至semantic的高精地图都有可能。

简单说一下LSD,自从DSO出来后LSD就没多少价值了,因为DSO在准确性,稳定性和速度上都比LSD好。LSD有个优势就是回环检测,这个对于DSO有些鸡肋,因为如果odometry都可以很精确为什么需要用额外的计算量去做回环检测呢。


半直接法

3. SVO github.com/uzh-rpg/rpg_

优点:非常快, 快到可以在laptop上达到300frames/s。

缺点:误差大,不准确。这也是为达到高速度牺牲性能的结果吧。

SVO适用的主要场景是无人机,因此代码中采用了一些无人机上的假设,比如假设相机的姿态是向下看的。SVO的最大问题就是不准确,这个可以通过融合imu改善,前提是你拥有一个准确的imu。。


Visual-inertial SLAM

4. 首推港科大的VINS github.com/HKUST-Aerial。 没仔细研究过, 不过港科大的这个工作开源的很彻底,ros版本的和ios版本的都开源了, 大家可以看看产品级的slam应用是怎么实现的,代码也很清晰,主要侧重点在后端的优化,前端写的很简洁。

另外经典的VIO还是ETH的OKVIS: github.com/ethz-asl/okv 。VINS和OKVIS性能差不多, OKVIS开发得更早一些, 后端优化的一些思想比如sliding window optimization也被DSO和VINS所借鉴。


链接:https://www.zhihu.com/question/51045335/answer/340167377
MonoSLAM、Co-SLAM、Swarm SLAM、ORB_SLAM、RGB-D SLAM


一、入门篇

1. Andrew Davison的课程: http://www.doc.ic.ac.uk/~ajd/Robotics/index.html

    week7 SLAM,week8里面推荐了slam的两个入门 Tutorial 1  和Tutorial 2

2. 瑞士苏黎世理工的学生练习http://www.csc.kth.se/~kootstra/index.php?item=313&menu=300

    把excise 3:SLAM(EKF)做完,SLAM原理基本理解

3. 高博的CNBLOG:http://www.cnblogs.com/gaoxiang12/


二、现有资源

1. OpenSLAM:https://openslam.org/

    这个网站中含有很多slam方面的资料,编写的程序也各有不同,很权威

2. Kitti图库,可以做simulation:http://www.cvlibs.net/datasets/kitti/

3. 苏黎世理工学习练习excise3看完后可以使用Javier Civera 的程序进行试手,注意对calibration的调整

    http://webdiis.unizar.es/~jcivera/code/1p-ransac-ekf-monoslam.html

4. 对于Javier Civera的1p RANSAC-monoSLAM有一定了解了,可以试试用SURF去实现

    南理工论文可以参考 http://cdmd.cnki.com.cn/Article/CDMD-10288-1012319519.htm

5. RGB-D SLAM Dataset and Benchmark:http://cvpr.in.tum.de/data/datasets/rgbd-dataset
    慕尼黑工业大学,还有其他的数据库,如单目视觉里程计数据库,详见http://vision.in.tum.de/data/datasets

6. Monocular SLAM:http://vision.ia.ac.cn/Students/gzp/monocularslam.html

    The research in monocular SLAM technology is mainly based on the EKF(Extended Kalman Filter) SLAM approaches.

7. MRPT:http://www.mrpt.org/    the mobile robot programming toolkit非常好的东西

三、相关书籍

1. Multiple View Geometry in Computer Vision Second Edition ,http://www.robots.ox.ac.uk/~vgg/hzbook/

    计算机视觉方面大神级别的书,也有中文版

2. Robotics Vision and Control ,http://www.petercorke.com/RVC/

    澳大利亚昆士兰理工大学的Peter Corke是机器视觉领域的大牛人物,他所编写的Robotics, vision and control一书更是该领域的经典教材

    配套有matlab工具箱。工具箱分为两部分,一部分为机器人方面的,另一部分为视觉方面的工具箱

    源代码都是开放免费下载的: http://petercorke.com/Toolbox_software.html

3. Probabilistic Robotics,http://www.probabilistic-robotics.org/理解这本书要有很好的数学基础



四、研究学者
国内激光雷达Slam武汉大学做得好,李明教授是最早一批做3Dslam的;国防科大的应该也不错。
国外的话斯坦福的塞巴斯蒂安是绝对的大牛,他的徒弟也都很厉害;KIT的SLAM6D做的很好,现在网上有开源的3DTK,内部集成了slam6D;
德国弗莱堡大学做的也不错。
1. 英国帝国理工学院Andrew Davison:http://www.doc.ic.ac.uk/~ajd/,SLAM领域的权威

2. 麻省理工John Leonard:http://marinerobotics.mit.edu/ 侧重于应用。目前主要在做水下SLAM的项目。参加过DARPA的智能车挑战赛。

3. 悉尼大学Victoria Par: http://www-personal.acfr.usyd.edu.au/nebot/victoria_park.htm 经典数据库
4. 慕尼黑工业大学Jakob Engel:http://vision.in.tum.de/members/engelj
5. 斯坦福Sebastian Thrunhttp://robots.stanford.edu/papers.html


五、其他资源(一)

1. Giorgio GrisettiCyrill StachnissWolfram Burgard; (GridMapping 算法,及概率机器人一书作者)

2. M. Montemerlo; Dirk HaehnelSebastian Thrun; (FastSLAM创始者,理论水平和实际应用能力非常强)

   参加过DARPA的智能车挑战赛,取得最好成绩。

3. Austin EliazarRonald Parr; (DP-SLAM创始者,从文章到数据,程序都公开的牛人) 

4. 以 Jose Neira和Jose luis Blanco为代表的一批西班牙学者.

5. http://babel.isa.uma.es/mrpt/index.php/Main_Page  2008年开始陆续出现了一些好文章.

6. http://cres.usc.edu/radishrepository/view-all.php  包含了大量的用于验证SLAM算法的数据.

7. http://www.isa.uma.es/C13/jlblanco/default.aspx     西班牙的一个博士生.编程能力极强. 另外Jose Neira带领的团队也比较猛.


六、其他资源二(

工具类:

ros框架

linux系列教程     vim 

Eigen      Eigen快速入门

Pangolin  Pangolin安装与使用

 

      

数据集:

TUM          数据格式      

提供python写的工具,参考  TUM数据集测评工具的使用

除此之外提供online测试

 合并深度图和rgb:

python associate.py rgb.txt depth.txt > associations.txt #如果没有最后那个选项会把结果直接打印到控制台

对齐输出轨迹,并计算误差:

python eveluate_ate.py --save alignedTrajectory.txt groundtruth.txt KeyFrameTrajectory.txt

 

 

科研类:

PTAM - ISMAR2007 英国牛津 Georg Klein 主页及代码  PTAM-GPL   

DTAM - ICCV2011 伦敦帝国理工学院 Richard  paper

RGB-D_SLAM Trans. on Robotics2014   开源代码

ORB-SLAM - Trans. on Robotics2015 西班牙Raúl Mur Artal 主页  ORB-SLAM开源代码 ORB-SLAM2开源代码 

SVO -  ICRA2014 瑞士苏黎世大学 Christian Forster 开源代码

LSD-SLAM 2014 德国慕尼黑工业大学(TMU) Jakob Engel 开源代码

DSO 2016 机构作者同LSD  主页    开源代码

德国慕尼黑工业大学计算机视觉组:https://vision.in.tum.de/research/vslam

一个更全的统计:Awesome SLAM\


阅读更多
博主设置当前文章不允许评论。

博主推荐

换一批

没有更多推荐了,返回首页