2024年自动驾驶SLAM面试题及答案(更新中)

自动驾驶中的SLAM(Simultaneous Localization and Mapping,即同步定位与地图构建)是关键技术,它能够让车辆在未知环境中进行自主定位和地图建构。秋招来临之际,相信大家都已经在忙碌的准备当中了,尤其是应届毕业生。面试题对大家来说是很重要的,面试时第一轮基本上都是理论考察,给大家准备了 2024年自动驾驶SLAM面试题及答案(持续更新……),这边会持续收集和更新,希望能给大家带来帮助。
1、简述卡尔曼滤波

卡尔曼滤波(Kalman filter)是一种高效的自回归滤波器,它能在存在诸多不确定性情况的组合信息中估计动态系统的状态,是一种强大的、通用性极强的工具。它的提出者,鲁道夫.E.卡尔曼,在一次访问NASA埃姆斯研究中心时,发现这种方法能帮助解决阿波罗计划的轨道预测问题,后来NASA在阿波罗飞船的导航系统中确实也用到了这个滤波器。最终,飞船正确驶向月球,完成了人类历史上的第一次登月。

2、你认为ORB-SLAM3和VINS-Fusion的几个不同点?

(1)在IMU的偏差方面:ORB-SLAM3同时考虑了加速度计和陀螺仪的偏差,并且将其放在目标函数中与重力方向,尺度因子等待优化变量共同优化,在inertialoptimization函数中;VINS只估计了陀螺仪的偏差,并且是将其考虑成非线性的,将其独立出来单独优化,没有采用g2o求解器,而是直接一次高斯牛顿迭代解决,在initial_alignment.cpp中的solverGyroscopeBias中。

(2)在速度,重力,尺度因子方面:ORB-SLAM3与IMU偏差共同估计,通过最大后验估计并取负对数将其转换成包含IMU先验残差的非线性最小二乘问题,利用g2o去求解inertial-only map下的因子图,速度,尺度与重力方向都是顶点;initia_alignment.cpp中的linearalignment(),首先根据预积分量的约束,将世界坐标系转换成相机在t0时刻的坐标系,转换成线性最小二乘问题ceres求解。

(3)在IMU的优化内容方面:ORB-SLAM3的inertialoptimization中默认各个关键帧对应的IMU的pose是一致的,只优化了IMU的速度,在初始化成功后的5秒和15秒又再次初始化;VINS状态估计器中的Estimator::visualInitialAlign(),计算陀螺仪的偏置校准(加速度偏置没有处理),同时更新了Bgs后,IMU repropagate;得到尺度s和重力g的方向后,转换到第一帧坐标系,然后转换到世界坐标系。

(4)在重力g的优化方面:ORB-SLAM3代码中在g与速度等待优化变量的目标函数求解后直接对齐,得出结果,没有看到更多的判断;VINS在linearalignment中RefineGravity进一步细化了重力,在其切线空间上用两个变量重新参数化重力,迭代四次,对状态向量重新优化。

(5)在惯性系的对齐方面:ORB-SLAM3在IMU的优化过程中目标函数求解过程同时解算除了优化后的rotation matrix;VINS计算出重力在第一个关键帧的测量值后对重力进行参数化,限制模长,判断误差是否大于百分之五,然后重力细化,进行坐标系的对齐。

(6)在scale的优化方面:ORB-SLAM3在初始化及其之后的100秒之内不断优化尺度和重力方向;VINS只在初始化的过程进行优化。

(7)在求解形式方面:ORB-SLAM3使用SO(3)求解;VINS使用四元数求解。

3、粒子滤波器设计时,重采样的作用及如何实现?

重采样主要是为了解决经典蒙特卡洛方法中出现的粒子匮乏现象。其主要思想是对粒子和其相应的权值表示的概率密度函数重新进行采样。通过增加权值较大粒子和减少权值较小粒子来实现。重采样虽然可以改善粒子匮乏现象,但也降低了粒子的多样性。因此,重采样过程中一般选取一些准则来判断有效粒子的个数,通过这个个数来判断是否进行重采样。

4、IMU相对车体安装角度误差如何标定?

如果条件允许(具有通视条件等),可以通过光学标定安装基准面。如果不具备光学标定条件,可以将IMU安装到位 ,让载体运动起来,接入外部速度和位置等基准信息,将安装误差引入状态方程,通过迭代让其收敛。如果载体可以整体放到转台上,也可以利用重力加速度矢量和转台参考信息对其标定。

5、如何应对gnss缓慢漂移的问题

1、静态漂移。当GPS终端静止的时候,其定位坐标在某个范围不停地变化,甚至还会显示出速度,这便是静态漂移。

2、定位点漂移。定位点漂移指两点之间的漂移距离超过100米或芯片软件设置的门限距离,且无速度数据,过一段时间后又以同样的距离回到原点。这种情况常反映在星历气候,模块干扰,2D定位和3D定位瞬间变化的过程中。此漂移方向没规律性,较难处理。

3、定位精度漂移。常反映在运动过程中,突然在某一点漂移出去,然后又瞬间漂移回来,有时带有速度,有时不带速度数据。多为信号折射干扰引起,突然有一个很强的折射信号参与定位所致。折射信号一丢失,又恢复正常定位精度。

4、叠加漂移。多反映在2D定位时,定位点沿着一定的方向连续漂移,每个点之间的距离不大,并带有速度,当漂移到一定距离后,又慢慢地漂移回原点。此漂移一般是由于GSP模块长时间处于弱信号,或设备受到干扰引起。

——————————————————————

更多内容(看第一段标蓝部分),持续更新中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/874806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle星型查询转换解析

目录 一、星型查询转换原理二、配置星型查询转换三、性能考虑四、案例1、数据模型2、创建表和数据3、创建位图索引4、查询优化前5、查询优化后6、检查执行计划 Oracle的星型查询转换(Star Query Transformation)是Oracle数据库优化器的一个重要特性&…

Go语言入门之错误处理

Go语言入门之错误处理 错误处理是开发中必不可少的一个部分,go中的错误一般有两种,一种为error,一种为panic go语言通常返回一个错误值,然后检查错误值是否为nil,以此判断函数是否执行 1.Error Go使用error接口来表示一…

鸿蒙OpenHarmony Native API【drawing_pen.h】 头文件

drawing_pen.h Overview Related Modules: [Drawing] Description: 文件中定义了与画笔相关的功能函数 Since: 8 Version: 1.0 Summary Enumerations Enumeration NameDescription[OH_Drawing_PenLineCapStyle] { [LINE_FLAT_CAP], [LINE_SQUARE_CAP], [LINE_ROUND_…

Exchange Server 中 Exchange 虚拟目录的默认设置

Exchange Server 2016 和 Exchange Server 2019 在服务器安装过程中自动配置多个 Internet Information Services (IIS) 虚拟目录。 以下部分中的表显示了邮箱服务器上客户端访问 (前端) 服务的设置,以及默认的 IIS 身份验证和安全套接字层 (SSL) 设置。 有时为了调…

聚焦智慧出行,TDengine 与路特斯科技再度携手

在全球汽车行业向电动化和智能化转型的过程中,智能驾驶技术正迅速成为行业的焦点。随着消费者对出行效率、安全性和便利性的需求不断提升,汽车制造商们需要在全球范围内实现低延迟、高质量的数据传输和处理,以提升用户体验。在此背景下&#…

从零开始:神经网络(1)——什么是人工神经网络

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 人工神经网络(Artificial Neural Network,简称ANN)是一种模仿生物神经网络结构和功…

Android SurfaceFlinger——GraphicBuffer初始化(二十九)

在 SurfaceFlinger 中,GraphicBuffer 是一个关键的数据结构,用于封装和管理图形数据的内存缓冲区。它不仅在 SurfaceFlinger 内部使用,也被其他组件如 GPU 驱动、摄像头服务、视频解码器等广泛利用,以实现高效的数据交换和图形渲染。 一、概述 GraphicBuffer 对象封装了一…

从dev分支合并到master分支

git命令从dev分支合并到master分支 1、拉取dev分支的代码 git checkout dev //切换成本地分支 git pull origin dev //拉取远程开发分支 git add . //暂存到本地仓库 git commit -m //增加备注信息 git push origin dev //推送到远程仓库 git checkout master // 切换到maste…

《500 Lines or Less》(5)异步爬虫

https://aosabook.org/en/500L/a-web-crawler-with-asyncio-coroutines.html ——A. Jesse Jiryu Davis and Guido van Rossum 介绍 网络程序消耗的不是计算资源,而是打开许多缓慢的连接,解决此问题的现代方法是异步IO。 本章介绍一个简单的网络爬虫&a…

STM32F0-标准库时钟配置指南

启动 从startup_stm32f0xx.s内的开头的Description可以看到 ;* Description : STM32F051 devices vector table for EWARM toolchain. ;* This module performs: ;* - Set the initial SP ;* - Set t…

使用sqlalchemy查询mysql的JSON字段

使用sqlalchemy查询mysql的JSON字段 在使用SQLAlchemy查询MySQL的JSON字段时,你可以按照以下步骤操作: 假设你有一个包含JSON字段的表格 假设你有一个名为 items 的表格,其中有一个名为 data 的JSON字段。我们来查询这个字段。 1. 定义模型类 首先,你需要定义一个与表…

【Leetcode】十八、动态规划:不同路径 + 最大正方形

文章目录 1、动态规划2、leetcode509:斐波那契数列3、leetcode62:不同路径4、leetcode121:买卖股票的最佳时机5、leetcode70:爬楼梯6、leetcode279:完全平方数7、leetcode221:最大正方形 1、动态规划 只能…

【Java语法基础】4.字符串

4.字符串 字符char无需多言&#xff0c;单引号。 String类 基本操作 String类的访问不能通过数组访问&#xff0c;只能通过API&#xff0c;并且只能访问不能修改&#xff0c;如&#xff1a; String a "hello"; for(int i 0; i < a.length(); i ) {//注意&…

C#开源、简单易用的Dapper扩展类库 - Dommel

项目特性 Dommel 使用 IDbConnection 接口上的扩展方法为 CRUD 操作提供了便捷的 API。 Dommel 能够根据你的 POCO 实体自动生成相应的 SQL 查询语句。这大大减少了手动编写 SQL 代码的工作量&#xff0c;并提高了代码的可读性和可维护性。 Dommel 支持 LINQ 表达式&#xff…

记一次因敏感信息泄露而导致的越权+存储型XSS

1、寻找测试目标 可能各位师傅会有苦于不知道如何寻找测试目标的烦恼&#xff0c;这里我惯用的就是寻找可进站的思路。这个思路分为两种&#xff0c;一是弱口令进站测试&#xff0c;二是可注册进站测试。依照这个思路&#xff0c;我依旧是用鹰图进行了一波资产的搜集&#xff…

SSIS_SQLITE

1.安装 SQLite ODBC 驱动程序 2.添加SQLite数据源 在“用户DSN”或“系统DSN”选项卡中&#xff0c;点击“添加”。选择“SQLite3 ODBC Driver”&#xff0c;然后点击“完成”。在弹出的配置窗口中&#xff0c;设置数据源名称&#xff08;DSN&#xff09;&#xff0c;并指定S…

英迈中国与 Splashtop 正式达成战略合作协议

2024年7月23日&#xff0c;英迈中国与 Splashtop 正式达成战略合作协议&#xff0c;英迈中国正式成为其在中国区的战略合作伙伴。此次合作将结合 Splashtop 先进的远程桌面控制技术和英迈在技术服务与供应链管理领域的专业优势&#xff0c;为中国地区的用户带来更加安全的远程访…

Docker 部署的 GitLab备份和恢复

Docker 部署的 GitLab备份和恢复数据 使用 Docker 部署的 GitLab 可以通过 Docker 命令来进行备份和恢复。以下是具体步骤&#xff1a; 1. 停止 GitLab 容器 在进行备份之前&#xff0c;最好先停止 GitLab 容器以确保数据一致性&#xff1a; docker stop <gitlab_contai…

联想教育电脑硬盘保护同传EDU系统使用简明教程

目录 一、原理概述 二、简明使用方法 1、软件下载 2、开机引导 3、开始安装 4、使用 &#xff08;1&#xff09;进入底层 &#xff08;2&#xff09;进行分区设置 &#xff08;3&#xff09;系统设置 &#xff08;4&#xff09;安装硬盘保护驱动 &#xff08;5&…

前端模块化CommonJS、AMD、CMD、ES6

在前端开发中&#xff0c;模块化是一种重要的代码组织方式&#xff0c;它有助于将复杂的代码拆分成可管理的小块&#xff0c;提高代码的可维护性和可重用性。CommonJS、AMD&#xff08;异步模块定义&#xff09;和CMD&#xff08;通用模块定义&#xff09;是三种不同的模块规范…