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


推荐阅读
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 马尔可夫决策过程Markov Decision Process,MDPKintoki
    Originalurl:http:www.tuicool.comarticlesb6BjAva1.马尔可夫模型的几类子模型我想大家一定听说过马尔科夫链(MarkovChain)& ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Java的集合及其实现类,包括数据结构、抽象类和具体实现类的关系,详细介绍了List接口及其实现类ArrayList的基本操作和特点。文章通过提供相关参考文档和链接,帮助读者更好地理解和使用Java的集合类。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • ICRA2019最佳论文  Making Sense of Vision and Touch: SelfSupervised Learning of Multimodal Representatio
    文章目录摘要模型架构模态编码器自监督预测控制器设计策略学习控制器设计实验结论和展望会议:ICRA2019标题:《MakingSenseofVision ... [详细]
  • Ansem 最新雄文:软着陆后,加密市场下阶段趋势与核心叙事
    市场最糟糕的时候已经过去,以太坊合并前不太会看到新的低点;但仍需来自关注宏观市场的不确定风险。撰文:Ansem ... [详细]
  • Ubuntu18.04 安装ROS Melodic && Ros2 Dashing
    https:blog.csdn.netqq_44717317articledetails104547474一、Ubuntu18.04的安装ubuntu2go的制作关于Ubuntu2 ... [详细]
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社区 版权所有