0
点赞
收藏
分享

微信扫一扫

RedHat8配置本地YUM源

闲云困兽 2023-04-26 阅读 70

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

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

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

  • 智能指针

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

  • STL容器的底层实现原理

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

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

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

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

GIT

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

cmake

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

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

    1. CMAKE_PREFIX_PATH这个变量包含一系列目录,cmake会在这些目录中搜索软件包。我们可以通过设置这个变量来指定搜索路径。例如:
    set(CMAKE_PREFIX_PATH /usr/local/lib/cmake)
    find_package(PackageName)
    
    1. _DIR如果定义了_DIR变量,cmake会直接在该变量指定的路径下搜索软件包。例如:
    set(PackageName_DIR /path/to/package)
    find_package(PackageName)
    
    1. 环境变量cmake会检查相关环境变量,如DIR,看其是否定义了软件包路径。如果定义了,就在该路径下搜索软件包。
    2. 默认目录如果以上方式都未指定路径,那么cmake会在一系列默认路径下搜索软件包,通常在/usr/ 和 /usr/local/ 下搜索。
    3. _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下搜索软件包。
    4. 根目录如果以上方式均未找到,那么就在根目录/下搜索软件包。

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

举报

相关推荐

0 条评论