热门标签 | 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


推荐阅读
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战
    OpenAI首席执行官Sam Altman展望:人工智能的未来发展方向与挑战 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 当前物联网领域十大核心技术解析:涵盖哪些关键技术?
    经过近十年的技术革新,物联网已悄然渗透到日常生活中,对社会产生了深远影响。本文将详细解析当前物联网领域的十大核心关键技术,包括但不限于:1. 军事物联网技术,该技术通过先进的感知设备实现战场环境的实时监测与数据传输,提升作战效能和决策效率。其他关键技术还包括传感器网络、边缘计算、大数据分析等,这些技术共同推动了物联网的快速发展和广泛应用。 ... [详细]
  • 最详尽的4K技术科普
    什么是4K?4K是一个分辨率的范畴,即40962160的像素分辨率,一般用于专业设备居多,目前家庭用的设备,如 ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 题目《BZOJ2654: Tree》的时间限制为30秒,内存限制为512MB。该问题通过结合二分查找和Kruskal算法,提供了一种高效的优化解决方案。具体而言,利用二分查找缩小解的范围,再通过Kruskal算法构建最小生成树,从而在复杂度上实现了显著的优化。此方法不仅提高了算法的效率,还确保了在大规模数据集上的稳定性能。 ... [详细]
  • 在《Cocos2d-x学习笔记:基础概念解析与内存管理机制深入探讨》中,详细介绍了Cocos2d-x的基础概念,并深入分析了其内存管理机制。特别是针对Boost库引入的智能指针管理方法进行了详细的讲解,例如在处理鱼的运动过程中,可以通过编写自定义函数来动态计算角度变化,利用CallFunc回调机制实现高效的游戏逻辑控制。此外,文章还探讨了如何通过智能指针优化资源管理和避免内存泄漏,为开发者提供了实用的编程技巧和最佳实践。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 2018 HDU 多校联合第五场 G题:Glad You Game(线段树优化解法)
    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6356在《Glad You Game》中,Steve 面临一个复杂的区间操作问题。该题可以通过线段树进行高效优化。具体来说,线段树能够快速处理区间更新和查询操作,从而大大提高了算法的效率。本文详细介绍了线段树的构建和维护方法,并给出了具体的代码实现,帮助读者更好地理解和应用这一数据结构。 ... [详细]
  • 清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期)
    清华大学出版社 | 杨丹:基于MATLAB机器视觉的黑色素瘤皮肤癌检测技术及源代码分析(第1689期) ... [详细]
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社区 版权所有