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)]
电离层误差为什么对载波和伪距的影响相反(在观测方程中符号相反)
电离层误差对载波相位测量和伪距测量的影响相反,主要原因是两者的测量机制不同:
- 载波相位测量依赖信号的相位,电离层误差会造成信号传播速度变化,从而导致相位产生跳变。
- 而伪距测量依赖信号的到达时间,电离层误差会减慢信号传播速度,信号需更长时间到达接收机,。
- 载波相位测量测量的是相位变化,而伪距测量测量的是码定时,两者受电离层影响的机制不同,因而误差方向相反。
- 载波相位测量的误差与信号频率成正比,频率越高误差越大。而伪距测量的误差与信号频率无关。
综上,电离层误差通过改变信号在电离层的传播速度,对载波相位测量和伪距测量产生相反影响**,前者增加距离,后者减小距离**。两者的测量机制不同,频率依赖性也不同,因而表现出相反的误差特征。对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+αrsTz+f240.3γrsIrs−bs,f+br,f+εpΦr,fs=ρrs+tr,sys−ts+αrsTz−f240.3γrsIrs+λfNr,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−f22f12Φ1−f22Φ2,RC=f12−f22f12R1−f22R2 -
几何无关(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−f2f1Φ1−f2Φ2,RW=f1−f2f1R1−f2R2 -
窄巷组合:这些组合创建具有窄波长的测量。此组合中的测量噪声低于每个独立分量:
Φ 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博客
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>ROOT/share和{ROOT}/lib下搜索软件包。
- 根目录如果以上方式均未找到,那么就在根目录/下搜索软件包。
总之,cmake通过环境变量、用户定义变量和默认规则寻找软件包目录,并在这些路径下搜索find_package()要查找的软件包。
如果成功找到,就会定义一系列变量,如:_FOUND、_INCLUDE_DIRS、<PACKAGE_LIBRARIES等,我们可以在CMakeLists.txt中使用。