Global Navigation Satellite System
1、卫星导航简介
全球卫星导航系统(Global Navigation Satellite System, GNSS)是室外车辆定位的主要信息来源之一。传统的GNSS通过测量使用者与地球周围各卫星的距离确定使用者的位置,而距离的测定是通过测量时间间隔的方式进行的。一个卫星信号从卫星发出时,带有一个发送时间,GNSS接受器接受到它时,又有一个接收时间,比较接收时间与发送时间就能估算卫星离使用者的距离。
在世界范围内,可以接收到的卫星信号主要来自四个系统:美国的全球定位系统(Global Positioning System, GPS),中国的北斗卫星导航系统(Beidou Navigation Satellite System, BDS),俄罗斯的格洛纳斯系统(Global Navigation Satellite System,GLONASS),欧盟的伽利略系统(GALILEO)。每个系统都在空间中部署了 20 20 20至 30 30 30颗卫星。
卫星定位技术的最终精度受很多因素影响。从发射端的电磁信号,到中间的传输过程,再到接收端的时钟信号,每一种误差都可能引起最终卫星定位结果的偏差。因此,人们也提出了各种各样的校正技术来消除这些误差,其中广泛使用的技术是实时动态差分(Real-Time Kinematic,RTK),又称实时动态载波相位差分技术,RTK技术的原理较为复杂,此处暂不涉及。通过连RTK可以实现实时,高精度(厘米级)的定位。目前,已有多家企业为自动驾驶提供RTK服务。
简便起见,很多时候不严谨地将RTK技术,RTK信号,RTK信号接收器统称为RTK;将GNSS系统本身,GNSS信号接收器以及卫星导航这整件事都统称为GNSS。
2、UTM坐标系
得到全球任意点的UTM坐标的过程是,首先将地球视为一个椭球体,按经度分为 60 60 60个区,每区 6 ∘ {6}^{\circ} 6∘,编号 1 — 60 1—60 1—60,从西经 180 ∘ {180}^{\circ} 180∘开始向东递增到东经 180 ∘ {180}^{\circ} 180∘;同时按纬度分为 20 20 20个区,每区 8 ∘ {8}^{\circ} 8∘( X \mathrm{X} X区 12 ∘ {12}^{\circ} 12∘除外),编号 C — X \mathrm{C}—\mathrm{X} C—X(没有 I , O \mathrm{I},\mathrm{O} I,O),投影至横躺的椭圆柱体上,从南纬 80 ∘ {80}^{\circ} 80∘开始向北递增到北纬 84 ∘ {84}^{\circ} 84∘, N \mathrm{N} N区为第一个北纬区, N \mathrm{N} N区之前的为南纬区,之后的为北纬区。按经纬度分区完毕后,对每个经度区单独处理,将每个经度区调整至其中央经线所在地球剖面与椭圆柱底面平行,再按与椭圆柱底面平行的投影方向投影至与地球相割于南纬 80 ∘ {80}^{\circ} 80∘和北纬 84 ∘ {84}^{\circ} 84∘的横躺的椭圆柱体上(只投影经度区位于这两个纬度之间的部分),此时中央经线长度与其投影长度比为 1 : 0.9996 1:0.9996 1:0.9996。将每个经度区在椭圆柱上的投影展开铺平,即可得到一个二维的平面地图(高度不变,暂不考虑),即UTM坐标系(通用横轴墨卡托投影,Universal Transverse Mercator Grid System)。综上所述,UTM坐标可以标记地球南纬 80 ∘ {80}^{\circ} 80∘至北纬 84 ∘ {84}^{\circ} 84∘之间的所有位置。
在每个分区内,UTM坐标取米为单位,以东向坐标和北向坐标来表示车辆位置。由于赤道半径约为 6378 6378 6378千米,故可算得UTM一格在东西向最大宽度为 6378 × 10 3 × 2 π 60 × 10 4 ≈ 66.7 \frac{6378\times{10}^{3}\times{2\pi}}{60\times{10}^{4}}\approx66.7 60×1046378×103×2π≈66.7万米。于是,UTM东向坐标是指,将该区的中央经线投影取 x 0 = 500000 x_{0}=500000 x0=500000米( 50 50 50万米),然后取点投影的带正负的向东偏移量,这样做能保证东向坐标总为正数。对北向坐标,在北半球为点到赤道的投影距离,在南半球为( 10000 10000 10000千米 − - −点到赤道的投影距离),故北向坐标也为正数。若以东向,北向分别为 x , y x,y x,y轴,这样组成的右手系称为东北天坐标系(East-North-Up,ENU);若以北向,东向分别为 x , y x,y x,y轴,这样组成的右手系称为北东地坐标系(North-East-Down,NED),如下图所示
![](https://img-blog.csdnimg.cn/direct/9d96e447fbcb413db26a105d97d65fc5.png#pic_center,)
北东地坐标系下的方位角
θ
h
′
\theta_{h}^{\prime}
θh′转换得到东北天坐标系下的方位角的公式为
θ
h
=
π
2
−
θ
h
′
\theta_{h}=\frac{\pi}{2}-\theta_{h}^{\prime}
θh=2π−θh′
3、卫星导航应用于自动驾驶
RTK接收器的测量数据一般由时间戳,纬度,经度,海拔,方向角,方向角有效标志位等几个数值组成,如
在自动驾驶应用中,应首先将RTK接收器的经纬高坐标转换为UTM坐标系
{
W
}
\{W\}
{W}下的坐标,或称为从UTM坐标系原点到RTK坐标系
{
G
}
\{G\}
{G}原点的平移量,
t
W
G
\mathbf{t}_{WG}
tWG。假设车辆的俯仰和滚转为零,根据RTK接收器的方向角
θ
h
\theta_{h}
θh,由Rodrigues公式可求出RTK坐标系在UTM坐标系下的旋转矩阵
R
W
G
\mathbf{R}_{WG}
RWG
R
W
G
=
E
x
p
(
ϕ
)
=
E
x
p
(
θ
h
∗
(
0
,
0
,
1
)
)
=
E
x
p
(
θ
h
k
)
\mathbf{R}_{WG}=\mathrm{Exp}(\boldsymbol{\phi})=\mathrm{Exp}(\theta_{h}*(0,0,1))=\mathrm{Exp}(\theta_{h}\mathbf{k})\\
RWG=Exp(ϕ)=Exp(θh∗(0,0,1))=Exp(θhk)
上述平移量和旋转量共同组成了RTK坐标系在UTM坐标系下的位姿
T
W
G
\mathbf{T}_{WG}
TWG
再考虑由RTK坐标系到车体坐标系 { B } \{B\} {B}的转换,设安装偏移 t B G \mathbf{t}_{BG} tBG为从车体坐标系原点指向RTK坐标系原点的矢量,安装偏角 θ a \theta_{a} θa为车体坐标系的x轴到RTK坐标系x轴之间的转角,此时车体的俯视图如下图所示
![](https://img-blog.csdnimg.cn/direct/0ce792defb2448739a5d12f48d16bdb7.jpeg#pic_center,)
故从RTK坐标系在车体坐标系下的位姿为
T
B
G
=
[
E
x
p
(
θ
a
k
)
t
B
G
0
T
1
]
\mathbf{T}_{BG}= \begin{bmatrix} \mathrm{Exp}(\theta_{a}\mathbf{k})&\mathbf{t}_{BG}\\ \mathbf{0}^{T}&1 \end{bmatrix}
TBG=[Exp(θak)0TtBG1]
综上得到车体坐标系在UTM坐标系下的位姿为
T
W
B
=
T
W
G
T
G
B
\mathbf{T}_{WB}=\mathbf{T}_{WG}\mathbf{T}_{GB}
TWB=TWGTGB
将上式的旋转和平移部分展开,可得
R
W
B
=
R
W
G
R
G
B
,
t
W
B
=
R
W
G
t
G
B
+
t
W
G
\mathbf{R}_{WB}=\mathbf{R}_{WG}\mathbf{R}_{GB},\quad\mathbf{t}_{WB}=\mathbf{R}_{WG}\mathbf{t}_{GB}+\mathbf{t}_{WG}
RWB=RWGRGB,tWB=RWGtGB+tWG
当无法确定方位角,即无法确定
R
W
G
\mathbf{R}_{WG}
RWG时,通常令其为单位矩阵并代入求车辆在世界坐标系下的位姿
4、实验:通过RTK读数定位
依据上面的推导,结合RTK接收器的测量数据,得到二维和三维的车辆轨迹。可以看到得到了较好的水平车辆轨迹,但高度层面存在明显的抖动和误差,说明RTK的高度测量数据精度通常是不如水平坐标的,这可能是因为车辆的俯仰和滚转为零的假设不总成立,此外,从上面的推导知,RTK测量的方位角常失效时,也会有小幅度的抖动。