GNSS/INS组合导航面试

美团无人机、云创智行、阿里达摩院、图森蔚来组合导航、来牟创新腾讯地图出行事业部百度地图
持续更新

文章目录

  • GNSS/INS组合导航面试
    • 1.GNSS方面的问题
      • 模糊度固定的方法,以及部分模糊度固定
      • 多普勒和载波为什么精度更高,对多径更不敏感
      • 电离层误差为什么对载波和伪距的影响相反(在观测方程中符号相反)
      • **载波和伪距的观测方程**
      • 电离层误差为啥对高程影响更严重
      • 周跳探测有哪些方法
      • GNSS观测值的组合
    • 2. 惯性导航方面
    • 3. 滤波
    • 4. c++ git cmake
    • 编程题

1.GNSS方面的问题

模糊度固定的方法,以及部分模糊度固定

http://t.csdn.cn/2LGQV
https://blog.csdn.net/dong20081991/article/details/129223718

多普勒和载波为什么精度更高,对多径更不敏感

  • 多普勒测量通过测量相位变化,可以彻底消除钟误差影响,而伪距测量仍受发射机和接收机钟误差影响。
  • 多普勒相位测量采用差分技术可以进一步提高精度,将大气误差和其他误差消除,而这些误差对伪距测量也有影响
  • 多普勒相位测量可以实现载波整周期伪距测量,避免码定时引入的余弦误差,而伪距测量会受余弦误差影响。
  • 多普勒测量使用相位测量技术,可以实现毫米级精度,而伪距测量受限于码定时精度,精度难以达到毫米级

综上,多普勒相位测量采用相位技术,可以对钟误差和大气误差实现更好补偿,从而达到更高的精度。它直接测量速度变化,避免了计算速度变化引入的额外误差。相位测量与差分技术的结合,使其精度优势更加明显。多普勒测量虽然精度高,但也面临相位失锁等问题,无法长期连续跟踪。而伪距测量虽精度稍差,但更稳定可靠,两者在GNSS中常结合使用,发挥各自优势。]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ALrjZpN-1682438050464)(…/…/AppData/Roaming/Typora/typora-user-images/image-20230425223751953.png)]

电离层误差为什么对载波和伪距的影响相反(在观测方程中符号相反)

电离层误差对载波相位测量和伪距测量的影响相反,主要原因是两者的测量机制不同:

  1. 载波相位测量依赖信号的相位,电离层误差会造成信号传播速度变化,从而导致相位产生跳变。
  2. 而伪距测量依赖信号的到达时间,电离层误差会减慢信号传播速度,信号需更长时间到达接收机,。
  3. 载波相位测量测量的是相位变化,而伪距测量测量的是码定时,两者受电离层影响的机制不同,因而误差方向相反。
  4. 载波相位测量的误差与信号频率成正比,频率越高误差越大。而伪距测量的误差与信号频率无关。

综上,电离层误差通过改变信号在电离层的传播速度,对载波相位测量和伪距测量产生相反影响**,前者增加距离,后者减小距离**。两者的测量机制不同,频率依赖性也不同,因而表现出相反的误差特征。对GNSS测量而言,电离层误差是一个很难补偿的误差源,需要采用对应的算法模型进行建模与补偿,或者使用实测的电离层数据进行校正

载波和伪距的观测方程

​ GNSS 接收机接收到的原始观测信息为伪距观测值和相位观测值, 伪距观测 值由伪随机噪声码计算获得卫星与接收机之间的距离, 相位观测值则是由接收机 复制载波与卫星播发载波之间的载波相位差, 在连续跟踪的情况下, 多历元相位 观测值与实际的卫地距之间差一个固定的整周数, 即整周模糊度。伪距和相位的 观测方程主要可描述如下:
{ P r , f s = ρ r S + t r , s y s − t s + α r s T z + 40.3 f 2 γ r s I r s − b s , f + b r , f + ε p Φ r , f s = ρ r s + t r , s y s − t s + α r s T z − 40.3 f 2 γ r s I r s + λ f N r , f s + ε Φ \left\{\begin{array}{l} P_{r, f}^s=\rho_r^S+t_{r, s y s}-t^s+\alpha_r^s T_z+\frac{40.3}{f^2} \gamma_r^s I_r^s-b^{s, f}+b_{r, f}+\varepsilon_p \\ \Phi_{r, f}^s=\rho_r^s+t_{r, s y s}-t^s+\alpha_r^s T_z-\frac{40.3}{f^2} \gamma_r^s I_r^s+\lambda_f N_{r, f}^s+\varepsilon_{\Phi} \end{array}\right. {Pr,fs​=ρrS​+tr,sys​−ts+αrs​Tz​+f240.3​γrs​Irs​−bs,f+br,f​+εp​Φr,fs​=ρrs​+tr,sys​−ts+αrs​Tz​−f240.3​γrs​Irs​+λf​Nr,fs​+εΦ​​
式中, P 、 Φ P 、 \Phi P、Φ 分别为伪距和相位观测值, ρ = ∥ p S − p r ∥ \rho=\sqrt{\left\|p^S-p_r\right\|} ρ=∥pS−pr​∥ ​, 其中 p S 、 p r p^S 、 p_r pS、pr​ 分别为卫星与接收机位置, t r , s y s 、 t s t_{r, s y s} 、 t^s tr,sys​、ts 分别为接收机和卫星钟差, 在进行单点定位解算时, 通 常忽略精密星历给出的卫星位置与卫星钟差误差; T Z 、 I T_Z 、 I TZ​、I 分别为天顶对流层误差 和电离层误差, α 、 γ \alpha 、 \gamma α、γ 则分别为对应的投影函数, b r , f 、 b s , f b_{r, f} 、 b^{s, f} br,f​、bs,f 分别为接收机端和卫星 端硬件延迟误差, N 、 λ N 、 \lambda N、λ 为模糊度和波长, ε p 、 ε Φ \varepsilon_p 、 \varepsilon_{\Phi} εp​、εΦ​ 为观测噪声。角标 f 、 s 、 r f 、 s 、 r f、s、r 分别 表示对应的频率和卫星号及接收机。

针对 式中的误差处理方式主要有三种:模型改正、组合/差分消除、 参数估计:

观测值的组合:GNSS观测方程及线性组合

电离层误差为啥对高程影响更严重

电离层误差在水平方向的投影可以互相消除,而在高程都是叠加

周跳探测有哪些方法

周跳探测的常用方法

周跳产生的原因

  • 第一,由于障碍物的短时间遮挡。
  • 第二,接收机的快速运动。
  • 第三,接收机接收到的卫星信号信噪比比较低。
  • 第四,接收机硬件的故障或者软件的不完善。
  • 第五,卫星的原因。

GNSS观测值的组合

(其中 R i R_i Ri​和 Φ i , i = 1 , 2 \Phi_i,i=1 , 2 Φi​,i=1,2表示在频率 f 1 f_1 f1​和 f 2 f_2 f2​的测量值,为简单起见省略了 P P P和 L L L):

  • 无电离层(IF)组合:这消除了取决于频率反比平方的一阶(高达 99.9 99.9 %) 99.9电离层效应 ( α i ∝ 1 / f i 2 \left(\alpha_i \propto 1 / f_i^2\right. (αi​∝1/fi2​,见第5.4.1节)
    Φ C = f 1 2 Φ 1 − f 2 2 Φ 2 f 1 2 − f 2 2 , R C = f 1 2 R 1 − f 2 2 R 2 f 1 2 − f 2 2 \Phi_C=\frac{f_1^2 \Phi_1-f_2^2 \Phi_2}{f_1^2-f_2^2}, \quad R_C=\frac{f_1^2 R_1-f_2^2 R_2}{f_1^2-f_2^2} ΦC​=f12​−f22​f12​Φ1​−f22​Φ2​​,RC​=f12​−f22​f12​R1​−f22​R2​​

  • 几何无关(GF)组合:这取消了测量中的几何部分,留下了所有频率相关的效应(即电离层折射,仪器延迟,回转)。它可以用于估计电离层电子含量或检测载波相位的周跳。请注意, Φ I \Phi_I ΦI​和 R I R_I RI​中项的顺序发生了变化:
    Φ I = Φ 1 − Φ 2 , R I = R 2 − R 1 \Phi_I=\Phi_1-\Phi_2, \quad R_I=R_2-R_1 ΦI​=Φ1​−Φ2​,RI​=R2​−R1​

  • 宽巷组合:这些组合用于创建一个具有显着宽波长的测量。这种较长波长对于检测载波相位的周跳和固定模糊度非常有用:
    Φ W = f 1 Φ 1 − f 2 Φ 2 f 1 − f 2 , R W = f 1 R 1 − f 2 R 2 f 1 − f 2 \Phi_W=\frac{f_1 \Phi_1-f_2 \Phi_2}{f_1-f_2}, \quad R_W=\frac{f_1 R_1-f_2 R_2}{f_1-f_2} ΦW​=f1​−f2​f1​Φ1​−f2​Φ2​​,RW​=f1​−f2​f1​R1​−f2​R2​​

  • 窄巷组合:这些组合创建具有窄波长的测量。此组合中的测量噪声低于每个独立分量:
    Φ N = f 1 Φ 1 + f 2 Φ 2 f 1 + f 2 , R N = f 1 R 1 + f 2 R 2 f 1 + f 2 \Phi_N=\frac{f_1 \Phi_1+f_2 \Phi_2}{f_1+f_2}, \quad R_N=\frac{f_1 R_1+f_2 R_2}{f_1+f_2} ΦN​=f1​+f2​f1​Φ1​+f2​Φ2​​,RN​=f1​+f2​f1​R1​+f2​R2​​

    Φ W \Phi_W ΦW​和 R N R_N RN​与电离层相关,可用于消除电离层误差。

2. 惯性导航方面

  • 零偏、零偏不稳定性、上电重复性
  • 零偏不稳定意味着什么,长时间零偏会不会发散

3. 滤波

图解kalman滤波

(27条消息) 滤波笔记一:卡尔曼滤波(Kalman Filtering)详解_scoutee的博客-CSDN博客

(27条消息) 滤波笔记二:运动模型(CV&CA&CTRV)_ctrv模型_scoutee的博客-CSDN博客

(27条消息) 滤波笔记三:无迹卡尔曼滤波(UKF)_scoutee的博客-CSDN博客

  • kalman滤波的使用条件以及为什么 线性 高斯白噪声

  • EKF和ESKF

4. c++ git cmake

c++八股文相关内容

  • 左值引用、右值引用
    (27条消息) C++ 移动构造函数详解_a只如初见的博客-CSDN博客

  • 子类和父类构造函数、析构函数的调用顺序

  • 智能指针

  • 类和它的成员类的构造函数和析构函数的调用顺序

  • map unordered_map 的区别, 增删查改的复杂度

  • vector 扩容机制 ,空vector push_back n个值的复杂度(2n,双倍增长内存时)

  • STL容器的底层实现原理

    (27条消息) STL容器详解_KuoGavin的博客-CSDN博客

    STL面试问题总结 (flowus.cn)

  • c++中的强制类型转换

    (27条消息) c++面试——强制类型转换_hyisoe的博客-CSDN博客

GIT

  • add commit push 的作用和区别
  • 如何解决冲突

cmake

  • find_package()是如何找到我所需的库的 .a .so .lib .dll

cmake中的find_package命令用于查找软件包并加载软件包的相关设置。它主要通过以下几种方式找到软件包:

  • CMAKE_PREFIX_PATH这个变量包含一系列目录,cmake会在这些目录中搜索软件包。我们可以通过设置这个变量来指定搜索路径。例如:
set(CMAKE_PREFIX_PATH /usr/local/lib/cmake)
find_package(PackageName)
  • _DIR如果定义了_DIR变量,cmake会直接在该变量指定的路径下搜索软件包。例如:
set(PackageName_DIR /path/to/package)
find_package(PackageName)
  • 环境变量cmake会检查相关环境变量,如DIR,看其是否定义了软件包路径。如果定义了,就在该路径下搜索软件包。
  • 默认目录如果以上方式都未指定路径,那么cmake会在一系列默认路径下搜索软件包,通常在/usr/ 和 /usr/local/ 下搜索。
  • _ROOT如果定义了_ROOT变量,cmake会在 < P A C K A G E > R O O T / s h a r e 和 {<PACKAGE>_ROOT}/share和 <PACKAGE>R​OOT/share和{ROOT}/lib下搜索软件包。
  • 根目录如果以上方式均未找到,那么就在根目录/下搜索软件包。

总之,cmake通过环境变量、用户定义变量和默认规则寻找软件包目录,并在这些路径下搜索find_package()要查找的软件包。
如果成功找到,就会定义一系列变量,如:_FOUND、_INCLUDE_DIRS、<PACKAGE_LIBRARIES等,我们可以在CMakeLists.txt中使用。

编程题

  • 手撕LRU
  • 滑动窗口内的求众数
  • 最大前x和后y个数的和 [1 -1 2 1 -6 1]-> ans = 1+1 =2
  • 二叉树遍历
  • 爬楼梯

GNSS/INS组合导航实习面试相关推荐

  1. 关于GNSS/INS组合导航开源软件GINav

    GINav 理论资料 参考<GNSS/INS组合导航软件开发> <组合导航从入门到精通>--1 绪论 <组合导航从入门到精通>--2 高精度GNSS定位模型 < ...

  2. GNSS/INS组合导航笔记

    文章目录 问题1:不可交换误差 问题2:划桨运动 问题3:关于卡尔曼滤波器效果判断(INS/GPS) 问题4:失准角理解 问题5:关于feedback反馈矫正 问题6:组合导航精度结果主要依赖于GNS ...

  3. GNSS/INS 组合导航(一):定位技术分类与介绍

    一.文档学习连接 https://download.csdn.net/download/yongjinfeiba/10761520 一. 定位技术分类 1.1 基于相对测量的定位(航位推算) (1)轮 ...

  4. GNSS/INS组合导航(八):INS/GPS组合导航

    INS/GPS组合导航 对比INS与GPS导航方法,二者都有其各自的优缺点. 惯性导航系统INS是一种全自主的导航系统,可以输出超过200Hz的高频信号,并且具有较高的短期测量精度.除了提供位置与速度 ...

  5. GNSS/INS组合导航学习-GINAV(一)

    从今天开始整理一下,最近半年学习的组合导航算法 目前开源程序 1.严老师PSINS工具箱 (MATLAB--卡尔曼滤波算法) 2.GINAV (MATLAB--卡尔曼滤波算法 ) 3.KF-GINS ...

  6. GNSS/INS组合导航(七):卡尔曼滤波

    Kalman滤波 导航系统的精度受到 惯性传感器初始化以及算法的误差影响.低成本MEMS传感器由于严重的随机误差,INS输出可能迅速漂移.因此低精度的IMU基本上不能作为导航独立传感器进行使用. 在之 ...

  7. GNSS/INS组合导航(1)-- 姿态矩阵

    对于开始接触惯性导航的人来说,姿态矩阵是必经之路.我在开始学习惯导的过程中,只是用姿态矩阵,但没具体去研究其对应欧拉角旋转方式,最近把自己绕晕了,所以推导完后记录一下自己对欧拉角与旋转矩阵理解,重点针 ...

  8. GNSS/INS组合导航(四):惯性导航系统

    可以结合下面连接看: https://blog.csdn.net/hltt3838/category_10500565.html 惯性导航理论依据: 牛顿第一定律(在不受外力作用下,物体将保持静止或匀 ...

  9. GNSS/INS组合导航(三):GPS全球定位系统

    全球定位系统(GPS)由美国国防部在20世纪70年代开发.GPS的定位基础是24颗卫星组成的网络.每颗卫星发送一个包含伪随机噪声(PRN)码与导航信息的无线电信号.接收机通过PRN码获得无线电信号的传 ...

最新文章

  1. mysql登录密码特殊字符_mysql密码中有特殊字符在命令行下登录的操作
  2. 2019,一线程序员该如何面对中年危机?
  3. 利用apache-commons-fileupload写jsp上传文件
  4. js小笔记 -- let const的理解
  5. MySql:从任何主机授予根用户登录权限
  6. JavaFX UI控件教程(二十)之HTML Editor
  7. 【ZOJ - 3872】Beauty of Array(思维,计算贡献,枚举)
  8. poj 1182 食物链 (并查集)
  9. Path(0)贝塞尔曲线
  10. Mac鼠标增强软件Bettertouchtool
  11. python下载后安装包在哪里找到_python安装包里idle在哪
  12. APUE---chap3文件I/O---3.11原子操作
  13. PL/SQL中导出整个表、表结构、部分数据、以及导入整个表
  14. 虚拟机安装linux输入密钥,远程连接虚拟机并做密钥认证
  15. android 触摸屏校准,android实现触摸屏校准
  16. MATLAB图像处理(包括图像类型转换)----转载
  17. flink集成springboot案例_集成-Apache Flink+Spring Boot
  18. 英语复数名词的变化规则
  19. 体力活动水平的计算机软件著作权查询,软件著作权被竞争对手抢先,著作权保护的客体对象是谁?...
  20. 深入理解Amazon Alexa Skill(三)

热门文章

  1. 【wepy】设置disabled的值 不生效 解决办法
  2. 微信公众号文章复制到服务器后台,微信个人公众号开发-打通后台服务器任督二脉...
  3. 双亲委派模型为什么要打破双亲委派模型
  4. SRS服务器搭建以及展现配置说明
  5. 中国金融市场对外开放,利大于弊
  6. day18_课堂笔记
  7. Nexus6p手机root和安装xposed
  8. [Scala]006-遇到的懵圈特殊符号组合-解释大全
  9. Android监听用户打开系统相机进行录像行为
  10. 学编程之前需要哪些掌握的基础知识