计算机视觉、图像基础
- 数字图像处理
- 计算机视觉
- 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 correspondencesAndrew Davison的课程
AD在在week 8里面推荐了slam的两个入门 Tutorial 1 和Tutorial 2Tutorial的两篇文章文笔灰常秀丽,但是不操作还是云里雾里
所以这里有一个瑞士苏黎世理工的学生练习
大家把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这几篇经典文章