简介: 本文将简要介绍卫星定位的原理和应用状况,方便你们对北斗、卫星定位有更多的了解。前端
5G和北斗,是国之重器。北斗做为卫星定位系统,目前在国际上已处于领先地位,并且已经渗透到咱们工做和生活的方方面面。本文将简要介绍卫星定位的原理和应用状况,方便你们对北斗、卫星定位有更多的了解。算法
卫星定位的原理网络
卫星定位系统的英文是Global Navigation Satellite System(GNSS),虽然直接翻译过来是导航卫星系统,但它真正提供的能力是定位,能定位后,导航就变得相对简单了。卫星定位的原理,是利用卫星播发时间信号,当设备接收到后,能够根据信号发射时间和本地时间,计算出信号传输时间,再结合光速得到卫星-设备距离。性能
有了多颗卫星的信号,能够列出一组方程,求解4个未知数:设备的三维坐标x/y/z,以及本地时间与GNSS系统的时间差。优化
式中的表明卫星j的三维坐标,这个坐标能够经过卫星星历计算得到。阿里云
星历是描述卫星运行轨道的一组参数,卫星轨道是一个椭圆,经过几个参数和时间,能够惟一肯定卫星的准确位置。spa
星历的获取有两种方式,一种是卫星直接播发,这种方式的好处是定位过程不依赖卫星信号之外的任何输入,即便没有网络也能够定位成功,但问题是卫星链路带宽很小,要下载完整星历,须要30秒左右的时间,早期的手机和一些车载设备定位过程很慢,就是因为这个缘由。操作系统
另外一种方式,是经过互联网播发,这种方式叫A-GNSS,具体的传输协议叫SUPL(Secure User Plane Location),这种数据通常不对应用层透出,在手机上,操做系统会在底层定时请求SUPL数据,而后将得到的星历注入GNSS芯片。有了A-GNSS,设备就能够在秒级得到定位,不须要任何等待过程,目前全部的手机都支持这种方式。A-GNSS的服务提供商,主要是通讯运营商,以及一些定位服务商,好比谷歌、千寻等。翻译
卫星不间断的向地面广播信号,这个信号主要包括如下信息:3d
-
卫星编号。用于从星历中查找卫星轨道,再结合时间戳得到当前卫星位置
-
当前时间戳。用于得到卫星位置,另外一方面计算伪距。伪距是(本地时间-信号发射时间)*光速,之因此叫伪距,是由于本地时间与卫星时间不一样步,因此这个距离并非真正的设备-卫星距离。
-
星历数据。用于计算卫星位置。
像其余全部的通讯技术同样,这些信息也是以报文的形式发送的,以GPS为例,卫星会每隔6秒发出一个包,而这个包会分解为数据位-CA码序列-载波波形,经过天线发射到地面。地面设备持续锁定卫星,在解算时,计算每颗卫星当前时刻的时间戳(用最近一次收到的时间戳加上报文偏移量),而后进行位置解算。
载波的频率是1.5G左右,波长20厘米左右,比移动通讯的波长稍长一些,因此信号的穿透性仍是比较好的(波长越长,越容易绕开障碍物),能够穿透比较薄的墙壁或屋顶,因此在一些状况下即便没法直接看到天空,也是能定位的。可是卫星信号是从上往下,在室内很难穿越多层建筑。
卫星定位的另外一个特色是能够解算出速度,其依据是多普勒频移原理(与交警用的测速仪原理同样)。当信号源与接收设备存在相对运动时,接收到的信号频率会发生变化。
频率变化量与相对速度存在以下公式:
其中,公式左边是频差和波长,v是设备运动速度(矢量),vj是卫星运动速度(矢量),1j是卫星的投影方向,dt'是本地设备的频漂速度。只要测量了4颗星的频差,就能够解出本地设备的运动速度(与设备姿态无关)。
除了定位和测速,定位卫星还能够完成全球授时(解算过程当中得到本地钟差),这也是目前成本最低的高精度授时方法,比绝大部分设备自带的时钟都要准确。
通常而言,伪距测量值精度不如频率测量精度高(伪距定位精度在10米左右,而多普勒定速精度能够达到0.2米/秒之内,授时精度在20ns),缘由是伪距测量容易受到多种路径偏差影响(后面会介绍),而频率测量的干扰因素少不少。
卫星定位发展历程
最先的卫星定位系统,是美国在1960年代开发的子午仪系统,后续在70年代开发出了GPS定位系统,目前的GPS系统由24颗卫星构成。除了GPS,世界多国也开发出了本身的卫星定位系统,主要的有中国的北斗系统、欧盟的伽利略系统、俄罗斯的格洛纳兹系统,此外日本和印度在开发区域定位系统。
除了天上的卫星,各定位系统还须要地面站对卫星的运行进行监测,包括健康度、轨道参数(计算完成后要注入卫星实现全球播发)、信号质量等,另外还须要对卫星进行控制。
各类卫星定位系统使用的技术相似,大多采用中轨道卫星(MEO,卫星高度2万千米),少数采用了地球同步轨道(GEO,卫星高度4万千米)和地球倾斜同步轨道(IGSO)。同时,信号播发大多采用CDMA技术,实如今同一个频率上传输多颗卫星的信号。为了让地面设备可以较好的接收来自几万千米外的信号,信号的数据速率都比较低,好比GPS L1频段的数据传输速率只有50字节/s,根据香农定理,C=B*log2(1+S/N), 在频率带宽B固定的状况下,随着传输速率C的下降,接收端在信噪比(S/N)比较低的时候也能够解出正确的信号,有利于持续的锁定卫星信号。
与其余定位系统相比,北斗的特色主要有:
-
亚太地区覆盖好。北斗系统由3颗地球同步卫星、3颗地球倾斜轨道同步卫星和24颗中轨道卫星构成,与GPS相比,北斗有6颗星持续覆盖亚太地区,极大提高了亚太地区可见卫星的颗数,一方面提升定位成功率,另外一方面也能提高精度(改善了GDOP,减小了偏差)。
-
北斗的同步卫星可用来进行通讯,地面设备能够将短报文发送到卫星(只用GEO卫星支持短报文)上,而后转发给目标终端,这种通讯是免费的,可是须要专门的天线和设备(须要将信号发射到4万千米远的地方,普通手机确定是不行的)。
多个卫星定位系统的信号同时被收到时,全部的卫星能够一同参与解算(每增长一个系统,只需增长一个新的参数,即这个系统相对于GPS系统的时间差),使得定位精度能够得到提高。目前手机上没法选择参与定位的星座或者卫星,因此咱们没法指定只用北斗或者不用GPS定位。
咱们对比了手机端GNSS定位时,使用不一样系统的占比,能够看出GPS和格洛纳兹因为发展的比较早,在手机芯片侧的渗透率比较高,所以被使用的比例也最高,其次就是北斗。
按参与定位的卫星颗数统计,北斗排在第二位,仅次于GPS。
由于各系统技术相似,其定位精度也是相似的,北斗也不例外,水平定位偏差通常在10米之内。垂直定位精度通常会差一些,主要是因为卫星都分布在设备的一侧,垂直方向上的偏差难以修正。
卫星定位接收机构成
卫星定位接收机的原理图如上图所示,主要的模块包括:
- 天线
用于接收卫星信号。因为卫星信号微弱,天线固然是越大越好,可是因为接收机须要移动,天线尺寸受到制约。天线的主要做用是放大信号和抑制多径,主要的类型有如下几种
左边的是比较常见的天线,内部是陶瓷天线,外部带磁铁,能够吸附在车顶;中间的是专业天线,旁边带扼流圈,能够抑制来自四周和地面反射的信号,只接收从天顶方向来的信号,这种天线的效果最好,通常用于专业研究和高精测绘;右侧是手机天线,长度只有几厘米,效果最差。
卫星信号的电磁波是圆极化的(传播时在垂直于传播方向的一个平面上波动),所以,采用圆极化天线(如平面的陶瓷天线)接收效果最好。但手机上天线尺寸过小,只能采用线极化天线,信号捕获能力大幅降低,再加上缺少信号屏蔽(扼流圈),极易受到多径效应以及其余信号干扰。
- 射频前端
这个模块主要是将原始信号进行下变频、功率放大以及滤波,提取真正有用的信号,便于解码处理。
- 基带处理
这个模块是对卫星信号进行解码,得到卫星报文。每颗卫星的信号须要一个单独的通道进行处理,若是有100颗卫星,2个频段,那可能须要200个通道才能有效处理这些信息。通道数越多,能够得到的卫星观测值也就越丰富,定位精度也就越高。
解码的过程,分为搜索-锁定-分析三步,首先生成每颗卫星的伪码,而后与信号进行自相关操做,相关度达到必定程度就能够锁定卫星,而后进行码锁定、位同步、帧同步,最终提取出报文。这个过程要持续进行,由于多普勒效应,信号的频率会不断变化,因此本地生成的伪码也要不断变换频率去适配卫星的变化。一旦失去锁定,就会丢失信号,也就没法定位了。
- PVT解算
PVT包括Position,Velocity和Time。这一步是真正进行定位的步骤,是利用基带解码得到的报文,提取出时间戳、星历等信息,代入公式进行计算,而后将计算结果输出给应用程序。
定位偏差来源与精度提高
卫星定位虽然已经很准确了,可是在某些场景下,仍是没法知足需求,好比,打车的时候定位点离车辆有必定距离、步导的时候难以区分方向甚至会定位到马路对面、静止的时候定位点总数飘来飘去、室内的时候定位点乱飘。这须要从卫星信号的发射、传输、接收过程来解释。
卫星信号从发射到被设备接收,须要通过大气层,其中,大气电离层有数千千米厚,这部分大气很是稀薄,可是存在大量被电离的电子,这部分电子会让电磁波变慢一点,从而产生延迟。在对流层,也会产生必定的延迟。在地表附近,因为各类建筑、山体、水面的影响,卫星信号可能被反射或折射(多径效应),产生延迟。
在卫星信号发射侧和接收侧,也有不少系统相关的偏差,好比时钟误差、处理延迟等,这些延迟加上传输延迟,使得卫星信号的传输时间,并非准确的等于物理距离/光速,另外一方面,卫星的星历也有偏差,卫星位置和真实位置存在误差,最终形成了定位结果产生误差。
要提高定位精度,须要想办法消除这些偏差,主要有如下几种方案。
双频GNSS
不一样频率的电磁波经过电离层时会有不一样的延迟,人们发现,对两个或多个频率的观测值进行线性组合,能够消除电离层偏差,从而能提高精度。这就是双频GNSS定位的原理。小米8是业界第一款支持双频GNSS定位的手机,后续各大厂商均进行了跟进,一些高端手机均采用双频定位。消除电离层偏差后,定位精度能够提高到5米之内。
地基/星基加强
星历偏差、卫星时钟偏差、甚至是电离层和对流层偏差都是能够观测或建模的,一旦计算出了实时的偏差值,就能够经过一个单独的通道进行播发,接收设备在定位过程当中使用这些修正项,就能够提高定位精度。播发的通道通常有两种,一种是直接经过卫星播发,称为SBAS(Satellite-Based Augmentation System),好处是覆盖广,但设备须要增长额外的信号接收通道;另外一种是地基加强,好比经过互联网,这须要设备具有联网能力。
这些加强方式对于精度提高是有限的,仍是有不少偏差项没法消除,好比电离层偏差。
高精定位-差分定位(RTK)
RTK是Real - time kinematic的缩写,是一种差分定位。其原理是利用一个参考站提供基准观测值,而后用设备的观测值与基准站的观测值进行差分,差分后能够消掉星历偏差、卫星钟差、电离层偏差,再进行星间差分后能够进一步消除掉设备的钟差,最终能够算出设备相对基准站的相对坐标,若是基准站位置已知,就能够完成准确的绝对坐标,精度能够达到厘米级甚至毫米级。
RTK能提高精度的另外一个缘由是引入了载波相位观测,相比伪距观测值,载波相位观测值的偏差更小。
使用RTK,须要在附近20km内有参考站(距离太远,电离层偏差不同,作差分没法彻底消除偏差),同时须要持续不断的得到参考站的观测数据(通常经过互联网传输,使用RTCM协议),所以相对普通的定位,RTK定位成本较高,但对于一些对精度要求很高的场景,好比车道级定位、自动驾驶等,是必不可少的。
RTK服务通常由专业服务商提供,如千寻、六分,这些服务商在全国范围内部署了数千个基准站,持续对订阅用户播发数据。
高精定位-精密单点定位(PPP)
RTK须要布设密集的参考站,有没有办法不依赖参考站?PPP(precise point positioning)就是一种方法,它的原理是对每一种偏差进行准确建模,最终求解出卫星和设备之间的准确距离。为了肯定准确的偏差,PPP定位时须要不断的迭代内部参数,并且,一些卫星的偏差只有当卫星位置变化后才能体现出来,因此PPP须要比较长的收敛时间,通常须要30分钟才能收敛到理想的精度,如何更快的收敛是目前学术界的一个研究热点。
组合定位
卫星定位的一个最大问题,就是丢失卫星信号后如何定位,这就须要其余定位方式来补充。组合定位是利用卫星信号和其余定位技术,好比惯性导航,来完成定位,两者相互配合。最简单的一个例子,就是卫星定位是有一个最高频率的,通常最可能是10Hz,在两次定位之间,可用惯导来进行位置推算,得到更高频率的位置输出。而组合导航最重要的做用,是提高精度,好比,利用卡尔曼滤波方法,用惯导计算推算位置,用卫星定位提供观测量,对推算位置进行修正,这可让定位结果更加平滑,并且能够对异常的卫星观测量进行过滤或降权。
手机上的卫星定位
在移动互联网出现之前,卫星定位终端是一个很专业的领域,只有测绘、军事等领域会应用这种技术,定位须要使用专用的接收机,好比Trimble、ublox等。随着智能手机将卫星定位芯片集成,卫星定位的应用获得爆发式增加,终端数量一会儿提高到几十亿量级,也产生了海量的位置数据。
手机上的卫星定位与专业接收机,仍是存在比较大的差别,主要体如今:
-
手机受限于尺寸,天线比较小,对原始信号的捕获、锁定、去噪能力都比较差,形成接收到的信号质量自然不如专业接收机。
-
手机上芯片成本比较低,支持的通道数比较有限,一次定位可以解码的卫星数量和系统数量都比较少,主要是单频,少数是双频,没有三频。
-
手机上对功耗、性能开销的要求比较高,不能花费大量资源在定位上,解算算法的复杂度比较低,效果也比较有限,精度比较差。
苹果手机
苹果手机的定位能力是彻底封闭的,对外只透出定位结果,外部基本没法拿到任何定位相关的原始观测量,好比卫星数量、类型等。好消息是,iPhone12终于开始支持北斗了。从苹果的API上,外界甚至没法区分定位结果究竟是来自卫星定位仍是网络定位(目前仅能经过速度的符号来判断,但苹果对此没有任何承诺)。因此,基于苹果手机,咱们基本没法作出优化,苹果手机上高德地图的定位点都是iOS底层直接提供的。
安卓手机
安卓手机比苹果手机开放的多,在定位能力方面提供了一系列API:
-
能够单独获取卫星定位结果或网络定位结果,也能够同时进行两种定位。
-
提供了NMEA格式(一种卫星定位结果的规范化表达)的结果数据,能够获取每颗卫星的ID、类型、信号强度,以及xDOP等细粒度的偏差描述。
-
提供了GnssStatus来描述每颗卫星的状态,内容比NMEA更全面。
-
提供了GnssMeasurement来描述原始观测量,包括伪距测量值、载波相位测量值、卫星锁定状态等。
-
提供了GnssClock描述本地时钟的状态。
-
提供了GnssNavigation透出最原始的未解码报文。
有了这些信息,经过一些App就能够实时看到当前的卫星状态,例如Androits gps test, GPStest等
另外,咱们还能够进行卫星定位的软解算,对卫星定位结果进行修正,甚至替代。咱们主要尝试解决两类问题:
-
定位不许:对卫星定位结果进行质量判断,识别其中的大偏差点,优化精度,或者优化精度半径,使下游使用定位点的时候,可以差别化的处理。
定位不许的缘由,主要是来自卫星信号中含有偏差,而影响最严重,也是最难抑制的,就是多径形成的影响。
另外一类定位不许的问题,是系统将其余定位结果伪造为卫星定位结果。好比,将网络点冒充为卫星定位点。
-
没法定位:系统不输出定位结果时,尝试进行软件解算。
没法定位最主要的缘由,是信号接收条件很差,好比室内遮挡、高架遮挡、高楼遮挡。在开阔地带没法定位,通常是设备Bug,重启设备后通常都能解决。
卫星定位将来展望
随着移动用户量持续增加,以及物联网的大范围普及,卫星定位技术还会持续快速发展。
在卫星侧,将出现低轨定位卫星(距地面几百千米)。传统上的定位卫星因为要覆盖较大的地理范围,高度通常都比较高,运行在中轨轨道上。随着火箭发射技术的革命,卫星发射成本急剧降低,向太空发射大批量低成本卫星的方案成为可能。好比spacex已经发射了上千颗“星链”卫星。
低轨卫星进行定位有几个好处:
-
距离近,信号更强,设备侧接收到的卫星信号更好。
-
能够传输更多的数据,好比各类修正数据。
-
位于电离层底部,电离层偏差小。
-
卫星仰角变化快,PPP定位能够更快收敛。
在设备侧,高精定位将大范围普及,华为P40是首个支持RTK的智能手机,能够作到0.5米的精度。高通也即将发布支持RTK的移动芯片,在2021年上半年,更多支持RTK的智能手机将会上市。
在应用侧,高精定位的应用场景会不断涌现,如今的一些典型应用场景包括:
-
传统测绘
-
精准农业,机械化自动化种植和收割
-
车道级导航和自动驾驶
-
共享单车的精准停放
-
无人机导航
原文连接 本文为阿里云原创内容,未经容许不得转载。