您的位置:首页 > 其它

SLAM算法工程师学习方向

2018-03-28 09:33 495 查看
https://www.cnblogs.com/xtl9/p/8053331.html https://zhuanlan.zhihu.com/p/28565563

1.编程基础

《Effective C++》《C++ Primer》《Effective STL》
    c++11

2.数据结构与算法。

入门推荐

《数据结构(C++ 语言版)》

刷题,leetcode和剑指offer。
时间来不及推荐这个

3.SLAM基础

《SLAM十四讲》《计算机视觉中的多视图几何》《State Estimation For Robotics(Tim.Barfoot)》《概率机器人》
视觉,CSE486是一个比较好入门的材料,(湘厦人的博客

Eigen、OpenCV、PCL、ROS这些基础的工具需要掌握.
后端优化的库g2o、GTSAM、Ceres solver可以先选一个开始学,工程上推荐用g2o,大家用的比较多,不过注释很少需要一定的功力才能看懂。
GTSAM代码写得要好读一些,而且具有优秀的编程规范,十分适合学习,GTSAM的doc目录下也有很多写得很好的文档,相比与其他两个库,其 iSAM 求解器是一大亮点。
Ceres 是谷歌出的优化库,代码注释十分良心,配合一些最优化的书学习最适合不过了。同时注意多写博客分享自己的心得体会,这个在招聘时也是加分项。
最后对于SLAM这一块,还需要读综述以及跑跑Demo,如ORBSLAM、SVO、LSD-SLAM 等。
重点:

相似变换、仿射变换、射影变换的区别
Homography和Fundamental Matrix的区别,包括二者区别,几个自由度,为什么是这么多自由度,怎么计算,这些在多视图几何那本书中都有
视差与深度的关系。在相机完成校正后,则有d/b=f/z,其中d表示视差,b表示基线,f是焦距,z是深度
PNP算法
闭环检测常用方法
给一个二值图,求出最大联通区域(可以用深度优先和广度优先算法,现场手写代码)
说一说梯度下降法、牛顿法、高斯-牛顿法区别
边缘检测算子
BA算法
SVO中的深度滤波器原理
说一说某个SLAM的工作原理(orb,lsd,svo,ptam)及其优缺点,如何改进
实现RANSAC的框架(MRPT写得是比较好的,注意每次此迭代后需要更新迭代次数。见libs/base/src/math/ransac.cpp)
简单实现cv::Mat()
简述一下GN、LM等优化方法的区别
推导一下卡尔曼滤波,描述一下粒子滤(http://blog.csdn.net/heyijia0327
描述一下SIFT或者SURF特征检测,匹配
如何求解Ax=b (非迭代、迭代,其中非迭代的方法可以参考eigen手册,上面 列了一些(http://eigen.tuxfamily.org/dox/group__TutorialLinearAlgebra.html)
简述一下Bundle Adjustment的过程

8da8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: