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


推荐阅读
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • 本文讨论了在shiro java配置中加入Shiro listener后启动失败的问题。作者引入了一系列jar包,并在web.xml中配置了相关内容,但启动后却无法正常运行。文章提供了具体引入的jar包和web.xml的配置内容,并指出可能的错误原因。该问题可能与jar包版本不兼容、web.xml配置错误等有关。 ... [详细]
  • 本文讨论了如何使用GStreamer来删除H264格式视频文件中的中间部分,而不需要进行重编码。作者提出了使用gst_element_seek(...)函数来实现这个目标的思路,并提到遇到了一个解决不了的BUG。文章还列举了8个解决方案,希望能够得到更好的思路。 ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 老牌医药收割AI红利:先投个15亿美元抢中国人才
    萧箫发自凹非寺量子位报道|公众号QbitAI没想到,一场大会把我的“刻板印象”攻破了。2021世界人工智能大会现场,能看见不少熟悉的身影, ... [详细]
  • 3年半巨亏242亿!商汤高估了深度学习,下错了棋?
    转自:新智元三年半研发开支近70亿,累计亏损242亿。AI这门生意好像越来越不好做了。近日,商汤科技已向港交所递交IPO申请。招股书显示& ... [详细]
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社区 版权所有