SLAM入门资料整理

计算机视觉、图像基础

  • 数字图像处理
  • 计算机视觉
  • Multiple View Geometry in Computer Vision,配合Berkeley课件

数学基础

  • 《线性代数应该这样学》,英文名《Linear Algebra Done Right》

  • Sparse Matrix:optimization->各种least square算法Dr. Tim Davis的课件:Tim Davis ,他的主页里有全部的课程视频和Project

  • 针对SLAM问题,最常用的least square算法是Sparse Levenberg Marquardt algorithm,这里有一份开源的代码以及具体实现的paper:[Sparse Non-Linear Least Squares in C/C++]

  • Thrun的《probabilistic robotics》概率学是如何解决机器人中的问题的,关键学习贝叶斯滤波,也是就是贝叶斯公式在各个问题(定位,SLAM)中的应用

  • 优化的话,建议先把最小二乘优化中给弄透彻,数学推导要会,因为很多问题,最后都是归结到最小二乘优化,然后就是梯度下降、求Jacobian之类的

SLAM入门

  • 综述论文
    SimultaneousLocalisationandMapping(SLAM):Part SimultaneousLocalisationandMapping(SLAM):Part 2

  • 做visual slam的话,推荐visual odometry part 1和part 2visual odometry 和 visual slam基本是同质的问题,只不过关注的点各有侧重,odometry注重的是当前实时性,slam 注重的是全局的优化。这两篇文章归纳了做odometry(slam)的三种主流的feature-based算法:
    1、2D-to-2D correspondences
    2、3D-to-3D correspondences
    3、2D-to-3D correspondences

  • Andrew Davison的课程
    AD在在week 8里面推荐了slam的两个入门 Tutorial 1 Tutorial 2

  • Tutorial的两篇文章文笔灰常秀丽,但是不操作还是云里雾里
    所以这里有一个瑞士苏黎世理工的学生练习
    大家把excise 3:SLAM(EKF)做了,也就差不多了解些slam的原理了。关于练习3的答案,我过几天上传好。

编程基础

  • OpenCV的文档Camera Calibration and 3D Reconstruction中,包含SLAM相关的基础理论公式以及C/C++/Python实现的API

  • 入门先写一发最小二乘优化,可以就做一个简单的直线拟合,不要用Matlab中的优化工具,了解数学推导最后是怎么写到代码里面的。

  • 要玩好Matlab优化工具包,做实验最方便了

  • 尝试玩一些现有的SLAM包www.openslam.org

  • ROS建议先试试Gmapping

  • 阅读orbslam的源代码

经典论文

PTAM,DTAM,SLAM这几篇经典文章

    原文作者:武林墨客
    原文地址: https://www.jianshu.com/p/43706a18ddc0
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞