SLAM面试题

引用:https://zhuanlan.zhihu.com/p/68858564,这篇博主的定位是自动驾驶与机器人公司相关的SLAM职位

其面试题目有:

1、SLAM题目

什么是闭环检测?常用的方法有哪些?你用的哪种方法?有没有创新?
解释一下Gauss-Netwon和LM算法。
熟悉Ceres优化库吗?说一下。
描述(扩展)卡尔曼滤波与粒子滤波,你自己在用卡尔曼滤波时遇到什么问题没有?
除了视觉传感,还用过其他传感吗?比如GPS,激光雷达。。。
什么是紧耦合、松耦合?优缺点。
你认为室内SLAM与自动驾驶SLAM有什么区别?
地图点的构建方法有哪些?
如果对于一个3D点,我们在连续帧之间形成了2D特征点之间的匹配,但是这个匹配中可能存在错误的匹配。请问你如何去构建3D点?
RANSAC在选择最佳模型的时候用的metric是什么?
除了RANSAC之外,还有什么鲁棒估计的方法?
有哪几种鲁棒核函数?
3D地图点是怎么存储的?表达方式?
给你m相机n个点的bundle adjustment。当我们在仿真的时候,在迭代的时候,相机的位姿会很快的接近真值。而地图点却不能很快的收敛这是为什么呢?
LM算法里面那个 [公式] 是如何变化的呢?
说一下3D空间的位姿如何去表达?
李群和李代数的关系。
求导 [公式]
给你一个H高W宽的图像或者matrix,问如何去访问每一个元素,是先访问行呢?还是先访问列?跟缓存还有关系~
写出单目相机的投影模型,畸变模型。
说一个自己熟悉的SLAM算法,Lidar/Visual slam,说优缺点。
读Maplab,设计室内服务机器人地图更新的方法、流程。
安装2D lidar的平台匀速旋转的时候,去激光数据畸变,写代码
给两组已经匹配好的3D点,计算相对位姿变换。已知匹配的ICP问题,写代码。
ORB-SLAM初始化的时候为什么要同时计算H矩阵和F矩阵?
说一下Dog-Leg算法
什么是边缘化?First Estimate Jacobian?一致性?可观性?
说一下VINS-Mono的优缺点
你做的工作在本质上有什么不同,贡献,创新本质上在哪里?
什么是Essential,Fundamental矩阵?
给定几个连续帧的带有位姿的帧,如何去测量车道线相对于世界坐标系的坐标。
在给定一些有噪声的GPS信号的时候如何去精准的定位?
如何标定IMU与相机之间的外参数?
给你xx误差的GPS,给你xx误差的惯导你怎么得到一个cm级别的地图。
计算H矩阵和F矩阵的时候有什么技巧呢?实际上在问归一化的操作。
给一组点云,从中提取平面。
给一张图片,知道相机与地面之间的相对关系,计算出图的俯视图。
双线性差值如何去做,写公式。
RGB-D的SLAM和RGB的SLAM有什么区别?
机器人从超市门口出发,前往3公里外的小区送货。请你设计一个定位系统,包括传感器的配置、算法的流程,用伪代码写出来。
什么是ORB特征,ORB特征的旋转不变性是如何做的,BRIEF算子是怎么提取的。
如果把一张图像去畸变,写公式,流程。
ORB-SLAM中的特征是如何提取的?如何均匀化的?
2、算法数据结构&C++

ORB-SLAM的共视图是什么结构?内部如何存储的?
写一个四叉树的结构
不用递归遍历二叉树
求最大连通域
多线程的实现方式
std::vector描述一下,如何动态扩展,如何shink内存
Eigen是行优先还是列优先
unorder容器与ordered容器的区别
说一下Mat是如何析构的
说一下智能指针,shared_ptr与unique_ptr
说一下什么是虚函数
普通指针如何实现一块内存只能有一个指针指向这种功能
C++ RTTI 是什么东西?
C++是如何实现多态的?
vector的iterator什么时候失效?
重建二叉树
写CmakeLists.txt,写gcc指令
一个图,给出两个一对的若干节点对,求两个节点之间的通路。
实现一个稀疏矩阵的数据结构,并实现稀疏矩阵的加法。
棋盘格,每个格子角点上有一个灯,按一下周围四个灯就会取反。开始的时候这个棋盘格上灯状态随机,问如何操作这些按钮可以使得整个棋盘全灭。
编一个二分查找
给你一个数组去排序,说排序算法
给你2D平面的两个线段,判断两个线段是否相交
写快速排序、写反转链表
给两个排序数组,升序的。一个大小为n,一个大小为m。从中找出第k小的数字。

我刚好可以练习学习一下:
1.闭环检测在视觉领域用的主要是词袋模型,最简单的思想是把当前帧的词袋与前面关键帧(可以随机选取)进行比较;激光其实不容易做闭环,Cartographer用的subMap来做,也是类似的思想,闭环的相似性。谈到闭环,这里也刚好涉及到自动驾驶与机器人的区别。自动驾驶其实很难短时间内有闭环,所以对里程计要求更高,并且要求有全局定位(比如GPS,或者与高精地图比较来实现全局定位),而机器人,尤其是室内机器人,移动距离没有自动驾驶大,累计误差也没那么大,比较容易有闭环,所以容易闭环来修正一次。(闭环修正不是实时性的,是一次性的),而且室内不容易有全局定位(除了建好的地图外,GPS失效),所以还是有些区别。同时室内环境没那么恶劣,不像自动驾驶要考虑安全雨雾等,这样对毫米波雷达的引入便是必需。

目前的词袋模型(https://blog.csdn.net/u012328159/article/details/84719494),需要预先训练一个词袋数据文件。即判断某种特征的有无,目前有深度学习方案来处理闭环,相似性这点深度学习应该还是可以做一做的。

2.高斯牛顿和LM方法

你可能感兴趣的:(SLAM面试题)