热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

自动驾驶面试题汇总(2022秋招题库)——持续更新

这份面试题整理自12家大厂的2022年秋招面试题。题目基本涵盖了自动驾驶和机器人定位方向的主要知识点,包括惯性导航、点云、状态估计、CVVIO、C等部分。建议大家先

这份面试题整理自12家大厂的2022年秋招面试题。题目基本涵盖了自动驾驶和机器人定位方向的主要知识点,包括惯性导航、点云、状态估计、CV/VIO、C++等部分。

建议大家先自己答题,再对照参考答案~(参考答案是由5位行业算法专家整理并校对~),我们也专门建立了面试题交流群,进群方式见文末。


整理不易,点个赞再走吧!



一、惯性导航方向


  1. IMU测量方程是什么?噪声模型是什么?
  2. 惯导误差模型是怎么来的?比如15维的卡尔曼滤波模型。
  3. GPS双天线安装偏角是怎么标定的?
  4. 多传感器之间是怎么对时的?
  5. GPS到来时是有延时的,而IMU给出的加速度和角速度是实时的,这种情况下怎么处理延时?怎么做的融合?
  6. DR递推的原理是什么?大概怎么去做?
  7. 组合导航卡尔曼滤波过程噪声是如何调参的?

二、点云算法方向


  1. 最近邻问题有哪几种典型解法?
  2. 怎么对KdTree进行插入操作?怎么确定一个节点的分类面?
  3. 怎么对KdTree进行Search By Range和Search By KNN操作?
  4. 举出除了KdTree以外的近邻计算方法(栅格、B树、R树、四叉、八叉树等)。
  5. 给定一组点,如何计算其拟合平面?如何计算其拟合直线?解释其方法的意义。
  6. 举出常见的点云的registration方法。
  7. 说明ICP的详细过程,要求说明代数解法和匹配问题解法。
  8. 说明NDT的详细过程,Normal distribution的含义是什么。
  9. 匹配问题除了最近邻还有什么解法?说明匈牙利算法、最大流/最小割、谱方法等其中一种。
  10. 解释混合高斯模型含义。解释EM算法的原理。

三、状态估计方向


  1. 从贝叶斯滤波器角度推出卡尔曼滤波器方程。
  2. 从增益最优化角度推出卡尔曼滤波器方程。
  3. 从Cholesky方程推出卡尔曼滤波器方程。
  4. 解释KF中的噪声矩阵含义。运动方程中估计噪声是变大还是变小?修正方程中估计噪声是变大还是变小?
  5. RTS与KF之间的联系?
  6. 将卡尔曼滤波器推广至EKF。
  7. 解释数值矩阵求逆的几种做法(QR、Cholesky、SVD)。
  8. 什么是Moore-Penrose逆?如何计算Moore-Penrose逆?
  9. SVD是什么?SVD是如何求解的?
  10. 特征值是什么?如何计算矩阵的特征值与特征向量?什么样的矩阵必然能对角化?不能对角化的矩阵的标准形式是什么?什么是Jordan标准形?
  11. 如何求解线性最小二乘解?如何求解零空间解?说明特征值方法和奇异值方法之间的联系。
  12. 描述图优化和最小二乘之间联系。画出VIO中常用的图优化模型。
  13. 稀疏图优化的稀疏性体现在哪里?要求答出稀疏Schur和稀疏Cholesky之一。
  14. 描述滤波器与最小二乘之间的联系?说明为什么卡尔曼滤波器可以看成两个时刻间的最小二乘。
  15. 说明UKF、EKF和PF之间的关系。
  16. 解释UKF中的Sigma采样点关系。
  17. 解释PF中的重要性重采样的过程是如何做的。解释轮盘赌原理。
  18. 解释李群李代数在三维状态估计中的作用。
  19. 流形是怎么定义的?流形在局部与R3同胚是什么含义?为什么说SO3是一个流形?
  20. 解释SO3, SE3中的Exp和Log的原理。解释BCH的原理和作用。
  21. 分别使用左右扰动模型,求解几个常见的雅可比:

22.解释四元数的更新与SO3的更新方式有何异同。

23. 说明四元数运动模型与SO3运动模型之间的联系。

24. 解释高斯推断和概率学中边缘化之间的关系。解释边缘化与卡尔曼滤波器之间的关系。

25. 什么是M估计?说明M估计与核函数之间的关系?


四、计算机视觉/VIO方向


  1. 单应矩阵、基础矩阵、本质矩阵的定义?
  2. 相机内参和外参的含义?如果将图像放大两倍,内外参如何变化?
  3. 径向和切向畸变模型含义,鱼眼模型含义(回答等距投影模型即可)?
  4. 极线是什么?对极约束是什么?描述了什么几何关系?
  5. 八点法原理与过程。
  6. 预积分相比于传统积分的差异在哪里?
  7. 预积分的测量模型和噪声模型是什么?预积分对零偏是怎么处理的?为什么要这样处理?
  8. 说明预积分的图优化模型。
  9. 解释重投影模型和BA的原理。
  10. 说明PnP问题的解法。
  11. 说明RANSAC原理,讨论存在的问题。
  12. 解释单目VIO的初始化过程。需要估计哪些量?重力方向和尺度如何估计?
  13. 为什么单目VSLAM会有尺度漂移?如何解释这种尺度漂移?现实当中有没有解决办法?
  14. 举出几种光流方法(LK,HS等)。说明LK光流的建模方式。

五.C++方向


  1. C++函数指针有哪几类?函数指针、lambda、仿函数对象分别是什么?
  2. 如何利用谓词对给定容器进行自定义排序?
  3. 传递引用和传递值的区别?传递常引用和传递引用之间的区别?传递右值引用和传递引用之间的区别?
  4. 函数对象应该通过什么传递?
  5. 什么是万能引用?用途是什么?
  6. 什么是完美转发?用途是什么?
  7. std::unorded_map和std::map之间的差异是什么?
  8. 虚函数、虚表的原理
  9. 如何在c++中创建线程?如何在线程间同步?
  10. 互斥锁是什么?用途是什么?条件变量又是什么?为什么要用条件变量?
  11. 智能指针和祼指针之间的差异?为什么要用指针的引用计数?
  12. 智能指针分哪几种?std::unique_ptr, std::shared_ptr, std::weak_ptr各有何用途?
  13. 悬挂指针会导致什么问题?如何避免?
  14. traits是什么?什么时候用traits?



参考答案(部分)


一、惯性导航方向

1. IMU测量方程是什么?噪声模型是什么?

中值积分的情况下,IMU的测量方程为:

IMU的随机误差一般包括以下几类,各类误差项及其原理如下(以陀螺仪为例):
(1) 量化噪声
量化噪声是数字传感器必然出现的噪声,我们通过AD采集把连续时间信号采集成离散信号,在这个过程中,精度就会损失,损失的精度大小和AD采样的精度有关(这里具体指的是模数转换时,AD器件的位数,位数越高采样越精确),精度越高,量化噪声越小。
(2) 角度随机游走
陀螺敏感角速率并输出时是有噪声的,这个噪声里面的白噪声成分叫宽带角速率白噪声,我们计算姿态时,本质上是对角速率做积分,这必然会对噪声也做了积分。白噪声的积分并不是白噪声,而是一个马尔可夫过程,即这一次的误差是在上一次误差的基础上累加一个随机白噪声得到的。角度误差所包含的这种马尔可夫性质的误差就叫做角度随机游走。
(3) 角速率随机游走
从理解上和角度随机游走一样,角速率里面并不全是白噪声,它也有马尔可夫性质的误差成分,而这个误差是由宽带角加速率白噪声累积的结果。
(4) 零偏不稳定性噪声
这应该是大家再熟悉不过的一个误差项了,如果一个陀螺只让你用一个指标来体现精度,那必然就是它了。但是这个指标的理解上却不像前几个参数那样直白。
我们可以先把它理解为零偏随时间的缓慢变化,假设在刚开始时零偏大小是某个值,那么过一段时间之后,零偏便发生了变化,具体变化成了多少,无法预估,所以就要给他一个概率区间,来描述它有多大的可能性落在这个区间内,时间越长,区间越大。
实际上,如果你真的测的时间足够长,会发现它也不会无限制增长下去,所以,这个对概率区间的描述只是近似有效,或者一定时间内有效,由于这个有效时间比较长,所以我们一般仍然使用这种方式来描述,只是在理解上要知道这一点的存在。
(5) 速率斜坡
看到斜坡这种描述词,我们一般会想它是不是一种趋势项。实际上,它确实是趋势性误差,而不是随机误差。所谓随机误差,是指你无法用确定性模型去拟合并消除它,最多只能用概率模型去描述它,这样得到的预测结果也是概率性质的。而趋势性误差是可以直接拟合消除的,在陀螺里,这种误差最常见的原因是温度引起零位变化,可以通过温补来消除。
加速度计同样具有这5项误差,而且原理一致,因此不再重复

2. 惯导误差模型是怎么来的?比如15维的卡尔曼滤波模型。
可参考博客文章 < 多传感器融合定位理论基础&#xff08;六&#xff09;&#xff1a;惯性导航误差分析 - 知乎>
或参考英文文献

3. GPS双天线安装偏角是怎么标定的&#xff1f;
通过车辆前行得到航迹角&#xff0c;同时双天线自己可以计算出一个航向角&#xff0c;两者之差为安装偏角&#xff0c;具体拟合方法可以通过最小二乘或滤波算出。


4. 多传感器之间是怎么对时的&#xff1f;
激光雷达&#xff1a;大多数雷达如VLP-16等都提供基于pps脉冲和GPRMC信号的输入接口,PPS和GPRMC信号可以由GNSS或IMU提供&#xff0c;或者由外部时钟源提供。少数激光雷达还支持NTP/PTP同步&#xff0c;PTP的精度一般来说比NTP要高&#xff0c;这两个信号都需要由外部时钟源设备提供。
相机&#xff1a;需要支持外部触发曝光的型号&#xff0c;因为相机帧周期包括曝光时间和readout时间&#xff08;整帧像素点读出&#xff09;&#xff0c;一般来说readout时间是固定的&#xff0c;可以补偿这个时间&#xff0c;相机的时间戳选择为曝光的中间时间。
GNSS&#xff1a;GNSS可以从卫星获得高精度的时钟信号&#xff0c;而且通常的GNSS都支持PPS脉冲以及GPRMC信号。
&#xff08;1&#xff09;使用GNSS作为时钟源&#xff0c;将GNSS的PPS信号提供给LiDAR和一个开发板&#xff0c;开发板将给相机同时提供一个曝光的脉冲信号。CAMVOX采用这种方案。
&#xff08;2&#xff09;使用外部时钟源&#xff0c;这种时钟源通常支持PPS信号输入&#xff0c;将GNSS的PPS传给外部时钟源&#xff0c;同时外部时钟源可以使用PTP/NTP/PPS给LiDAR做时间同步&#xff0c;同时触发相机开始曝光。外部时钟源同时也可以使用PTP/NTP对主机进行时间同步。


5. GPS到来时是有延时的&#xff0c;而IMU给出的加速度和角速度是实时的&#xff0c;这种情况下怎么处理延时&#xff1f;怎么做的融合&#xff1f;
先通过imu积分计算实时的轨迹&#xff0c;同时把imu数据缓存下来&#xff0c;当GPS到来时&#xff0c;再根据GPS的时间戳去修正历史时刻的数据&#xff0c;然后重新积分该时刻后的imu。


6. DR递推的原理是什么&#xff1f;大概怎么去做&#xff1f;
DR&#xff0c;也叫航位推算&#xff0c;是在知道当前时刻位置的条件下&#xff0c;通过测量移动的距离和方位&#xff0c;推算下一时刻位置的方法。可以根据上一时刻位置速度角度&#xff0c;通过imu加速度二次积分得到平移量&#xff0c;角速度积分得到旋转量来进行DR&#xff0c;也可以通过轮速计和车辆运动模型来进行DR。

7. 组合导航卡尔曼滤波过程噪声是如何调参的&#xff1f;
先通过GPS和imu的性能参数和频率确定一个米级单位下的噪声。之后在该噪声参数下得到融合的轨迹&#xff0c;然后分别对两个噪声增大缩小分成几组进行调节&#xff0c;观察轨迹。最终选最平滑的一组轨迹的噪声参数&#xff0c;或者选跟真值比精度最高的一组的噪声参数。


同时&#xff0c;我们除了准备详细答案&#xff0c;还为大家提供自动驾驶面试交流群&#xff0c;目前已经开到4群了~点击这里就可以来啦&#xff01;

http://fss.mpay8.cn/article/dMGIR984adicon-default.png?t&#61;L9C2http://fss.mpay8.cn/article/dMGIR984ad


推荐阅读
  • 本文详细介绍了HashSet类,它是Set接口的一个实现,底层使用哈希表(实际上是HashMap实例)。HashSet不保证元素的迭代顺序,并且是非线程安全的。 ... [详细]
  • 本文详细介绍了MySQL故障排除工具及其使用方法,帮助开发者和数据库管理员高效地定位和解决数据库性能问题。 ... [详细]
  • 普通树(每个节点可以有任意数量的子节点)级序遍历 ... [详细]
  • 全面升级的中文PubMed——Medreading
    Medreading 是一款由科研者之家(HOME for Researchers)推出的中文版PubMed,提供强大的文献检索和分析功能,支持AI辅助全文下载。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 点云技术初探(三):PCL基础知识与学习路径指南本文首先介绍了点云库(PCL)的基本概念,PCL是一个在前人点云研究成果基础上发展而来的大型跨平台开源C++编程库,旨在为点云数据处理提供全面的支持。文章详细阐述了PCL的核心功能及其在三维数据处理、特征提取、分割与配准等方面的应用,并为初学者提供了系统的学习路径和资源推荐,帮助读者快速掌握PCL的使用方法。 ... [详细]
  • 视觉Transformer综述
    本文综述了视觉Transformer在计算机视觉领域的应用,从原始Transformer出发,详细介绍了其在图像分类、目标检测和图像分割等任务中的最新进展。文章不仅涵盖了基础的Transformer架构,还深入探讨了各类增强版Transformer模型的设计思路和技术细节。 ... [详细]
  • Hibernate全自动全映射ORM框架,旨在消除sql,是一个持久层的ORM框架1)、基础概念DAO(DataAccessorOb ... [详细]
  • 本文详细介绍了 Redis 中的主要数据类型,包括 String、Hash、List、Set、ZSet、Geo 和 HyperLogLog,并提供了每种类型的基本操作命令和应用场景。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 深入解析层次聚类算法
    本文详细介绍了层次聚类算法的基本原理,包括其通过构建层次结构来分类样本的特点,以及自底向上(凝聚)和自顶向下(分裂)两种主要的聚类策略。文章还探讨了不同距离度量方法对聚类效果的影响,并提供了具体的参数设置指导。 ... [详细]
  • 本教程介绍如何在C#中通过递归方法将具有父子关系的列表转换为树形结构。我们将详细探讨如何处理字符串类型的键值,并提供一个实用的示例。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 全新发布的自我修复与自我更新的Linux版本,专为云计算环境设计! ... [详细]
  • 蚂蚁安全天穹实验室在GeekPwn国际极客大赛中刷新历史纪录,荣登榜首
    蚂蚁安全天穹实验室在GeekPwn国际极客大赛中刷新历史纪录,荣登榜首 ... [详细]
author-avatar
wr人在峡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有