CV、图像基础:
- 数字图像处理
- 计算机视觉
- 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 1
SimultaneousLocalisationandMapping(SLAM):Part 2
- 做visual slam的话,推荐visual odometry part 1和part 2
visual odometry 和 visual slam基本是同质的问题,只不过关注的点各有侧重,odometry注重的是当前实时性,slam 注重的是全局的优化。这两篇文章归纳了做odometry(slam)的三种主流的feature-based算法:
1.2D-to-2D correspondences
2.3D-to-3D correspondences
3.2D-to-3D correspondences
-
1. Andrew Davison的课程: http://www.doc.ic.ac.uk/~ajd/Robotics/index.html
AD在在week 8里面推荐了slam的两个入门 Tutorial 1 和Tutorial 2
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这几篇经典文章