GNSS/INS组合导航实习面试

文章详细介绍了GNSS/INS组合导航面试中的核心问题,包括模糊度固定方法、多普勒和载波的精度差异、电离层误差的影响、观测方程以及周跳探测方法。同时,涵盖了惯性导航、滤波理论(如卡尔曼滤波)以及C++、Git和CMake在开发中的应用知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GNSS/INS组合导航面试

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

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测量而言,电离层误差是一个很难补偿的误差源,需要采用对应的算法模型进行建模与补偿,或者使用实测的电离层数据进行校正

载波和伪距的观测方程

image-20230425232051764

​ 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,systs+αrsTz+f240.3γrsIrsbs,f+br,f+εpΦr,fs=ρrs+tr,systs+αrsTzf240.3γrsIrs+λfNr,fs+εΦ
式中, P 、 Φ P 、 \Phi PΦ 分别为伪距和相位观测值, ρ = ∥ p S − p r ∥ \rho=\sqrt{\left\|p^S-p_r\right\|} ρ=pSpr , 其中 p S 、 p r p^S 、 p_r pSpr 分别为卫星与接收机位置, t r , s y s 、 t s t_{r, s y s} 、 t^s tr,systs 分别为接收机和卫星钟差, 在进行单点定位解算时, 通 常忽略精密星历给出的卫星位置与卫星钟差误差; T Z 、 I T_Z 、 I TZI 分别为天顶对流层误差 和电离层误差, α 、 γ \alpha 、 \gamma αγ 则分别为对应的投影函数, b r , f 、 b s , f b_{r, f} 、 b^{s, f} br,fbs,f 分别为接收机端和卫星 端硬件延迟误差, N 、 λ N 、 \lambda Nλ 为模糊度和波长, ε p 、 ε Φ \varepsilon_p 、 \varepsilon_{\Phi} εpεΦ 为观测噪声。角标 f 、 s 、 r f 、 s 、 r fsr 分别 表示对应的频率和卫星号及接收机。

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

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

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

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

周跳探测有哪些方法

周跳探测的常用方法

周跳产生的原因

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

image-20230425221719247

image-20230425220724965

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. (αi1/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=f12f22f12Φ1f22Φ2,RC=f12f22f12R1f22R2

  • 几何无关(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=R2R1

  • 宽巷组合:这些组合用于创建一个具有显着宽波长的测量。这种较长波长对于检测载波相位的周跳和固定模糊度非常有用:
    Φ 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=f1f2f1Φ1f2Φ2,RW=f1f2f1R1f2R2

  • 窄巷组合:这些组合创建具有窄波长的测量。此组合中的测量噪声低于每个独立分量:
    Φ 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+f2f1Φ1+f2Φ2,RN=f1+f2f1R1+f2R2

    Φ 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++八股文相关内容

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>ROOT/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
  • 二叉树遍历
  • 爬楼梯
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值