自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)

本文主要是介绍自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这个博客系列会分为C++ STL-面经、常考公式推导和SLAM面经面试题等三个系列进行更新,基本涵盖了自己秋招历程被问过的面试内容(除了实习和学校项目相关的具体细节)。在知乎和牛客也会同步更新,全网同号(lonely-stone或者lonely_stone)。
关于高频面试题和C++ STL面经,每次我会更新10个问题左右,每次更新过多,害怕大家可能看了就只记住其中几个点。(在个人秋招面试过程中,面试到后面,发现除了个人项目和实习经历外,个人所记录的内容基本能涵盖面试官能问到的)
(另外个人才疏学浅,如果所分享知识中出现错误,请大家指出,避免误导其他人)

1. ceres solver之三种求导方式

  • 自动求导AutoDiffCostFunction:
    定义仿函数:仿函数必须是模板函数,因为在ceres内部要用到,
    构造CostFunction:
  • 数值求导NumericDiffCostFunction:
    有时,无法定义自动求导的模板仿函数,比如参数的估计调用了无法控制的库函数或外部函数。 这种情况无法使用自动求导了,数值求导便可以派上用场了。
    数值求导用法类似,先定义仿函数,然后传递给NumericDiffCostFunction,然后去构造问题求解
  • 解析求导:如果使用解析求导的方式,就要自行计算残差和雅克比。

2. 如何推导卡尔曼滤波的卡尔曼增益?状态预测过程中的协方差矩阵怎么计算?

我们要估计的是状态变量,希望估计值和真实值越接近越好。进一步,我们假设这个误差是个正态分布,将原问题转化为误差的协方差矩阵的迹最小。然后,将协方差矩阵表达式推导出来,令其对卡尔曼增益的导数为0,进而将卡尔曼增益求出来。

协方差矩阵的对角线是各个状态的方差,其余变量是状态之间的协方差。

3. 描述卡尔曼滤波(Kalman FIlter)的工作原理,并介绍自己曾经用Kalman Filter做状态估计的场景和遇到的困难

  • 卡尔曼滤波就是在测量结果和经验推测两个都不准确的结论下找到则中的,最有可能接近真实值的过程。卡尔曼滤波的优点不在于它的估计的偏差小多少,而在于它巧妙的融合了观测数据与估计数据,对误差进行闭环管理,将误差限定在一定范围
  • 卡尔曼滤波的流程:五大公式,预测和更新。
  • 场景:VIO与LIO位姿融合,困难主要是调试协方差

4. 哪些手段可以提升重复纹理环境的定位感知能力?

  • 调整SGBM的参数,增大平滑项的权重
  • VO后端增加robust norm,降低feature误匹配带来的误差
  • 对原图进行高斯滤波,降低重复纹理的梯度
  • 对depth增加时域的滤波,降低depth误匹配的影响

5. 如何存储稀疏矩阵?特征值和特征向量?

特征值和特征向量是线性代数中的概念,主要用于描述矩阵的性质。特征值是一个标量,表示矩阵在一定条件下的特殊值;特征向量是一个向量,表示矩阵在特征值处的方向。

稀疏矩阵是指矩阵中非零元素的数量远小于矩阵的总元素数的矩阵。在存储稀疏矩阵时,通常采用稀疏矩阵存储格式,以节省存储空间和提高存取效率。 常用的稀疏矩阵存储格式包括:
压缩行存储(Compressed Row Storage,CRS)格式
压缩列存储(Compressed Column Storage,CCS)格式
关于行(Row-Based)存储格式
关于列(Column-Based)存储格式
关于阶段(Level-Based)存储格式

6. 边缘化的意义

vins中,维护了一个窗口,要保证窗口大小就一定要滑窗,而任意划掉帧的话,就会丢失被划掉帧的约束,于是就通过边缘化的方式留下约束,作为下一次的一个先验约束。

另外,VINS中的边缘化和G2O计算过程中的边缘化意义不太相同(处理方法一致)。G2O中对路标点设置边缘化是为了在求解过程中,先消去路标点变量,实现先求相机位姿,然后利用求解出来的相机位姿去计算路标点的过程,目的是为了加速求解,并非真的将路标点给边缘化掉;而VINS中则真正需要边缘化掉窗口中的最老帧或者次新帧。

7. 剔除离散点有哪些方法

  • ORB slam里面采用卡方分布( 卡方=E( pow((O-E),2)/E ),其中O是实际频数,E是期望频数)来剔除离散点。

  • vins中前端采用F基础矩阵(rejectWithF,八点法)剔除;后端是计算重投影误差进行剔除,若大于三个像素就是外点。

8. ORBSLAM单目和双目初始化的区别?

  • 单目初始化:匹配初始帧(连续两帧匹配特征点数为100以上)、位姿计算(在匹配点中使用RANSAC方法抽样选出最佳F和H,得出最佳位姿)、三角测量和地图创建、BA优化。单目初始化是一个对极约束问题。
  • 双目初始化:当前帧的左右目匹配数超过一定量即可(因为本帧位姿为初始0,而双目可以直接测特征点深度)

9. LM算法的流程,以及与高斯牛顿的区别

在这里插入图片描述

这篇关于自动驾驶-机器人-slam-定位面经和面试知识系列10之高频面试题(04)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1107619

相关文章

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

sqlite3 相关知识

WAL 模式 VS 回滚模式 特性WAL 模式回滚模式(Rollback Journal)定义使用写前日志来记录变更。使用回滚日志来记录事务的所有修改。特点更高的并发性和性能;支持多读者和单写者。支持安全的事务回滚,但并发性较低。性能写入性能更好,尤其是读多写少的场景。写操作会造成较大的性能开销,尤其是在事务开始时。写入流程数据首先写入 WAL 文件,然后才从 WAL 刷新到主数据库。数据在开始

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的