这有可能是一篇关于GPS定位写得最详实清

本文来源:Luat

本文作者:Delectate

介绍篇

过去,如果你的女友是个路痴,大概会有这样的对话……

——你在哪儿呢?

——啊?我在马路上啊。

——有什么特征?

——头顶有个月亮。

——你旁边有什么啊?

——有个路灯。

——有没有路牌啊?路牌上写的什么?

——我看看啊。还真的有,上边写着“禁止停车违者罚款”。

——姑奶奶,我真是服了你了……

——哼,你是不是不爱我了,你肯定是不爱我了,你是不是喜欢上了新来的那个前台?

——。。。

——我跟你说那个前台绝对是个伪娘!(开启八卦模式)还有还有,小王买了个新口红真好看,你也给我买好不好……

——(一脸崩溃的表情)

(路人甲:你是不可能有女友的!)

现在,如果你的女友是个路痴……

——你在哪儿啊?

——我发定位给你!乖乖的来接老娘。

——遵命。。。

作为一个标准路痴,曾经有N次陷入绝境黑历史。正所谓:手持一纸地图,双眼紧盯道路,环顾四周茫然,我现身在何处?

后来随着智能手机的普及,我以为情况能有所改善,后来才发现是我想多了——为嘛xx地图、xx导航还是总让我往死胡同里跑,非让我开车过湖?

再后来,随着手机操作系统的迭代,芯片的升级,定位才慢慢变得精准、可靠。我再也不用湖里游泳了……当然,这都是后话了。

(哥开的不是车,是!寂!寞!)

慢慢的随着了解的深入,才明白原来定位有这么多区别,里边的学问可大着呢。

定位给方式有很多种,室外定位有基站定位,卫星定位等方式;室内定位有BLE、RFID、Wi-Fi等方式;还有其他IP定位,惯性导航等等方式。

定位方式

定位原理

定位方案

应用场景

成本

设备要求

精度

基站定位

上报设备周边基站信息,服务器查表、解析并返回定位结果

单基站定位

多基站定位

室外

极低

设备成本低

需后端支持*

m

卫星定位

使用天线搜索卫星向地表发射的电波,解算后输出定位结果

多星定位

室外

较低

设备成本低

5m

差分定位

卫星+结合基准站的数据进行定位

多星定位

室外

很高

设备成本高

需专有后端支持*

5mm

BLEiBeacon

使用设备接收蓝牙信号,根据信号强弱计算距离,输出定位结果

单点定位

多点定位

室内

较高

设备成本较高

0cm

RFID

使用设备接收射频信号,根据信号强弱计算距离,输出定位结果

单点定位

多点定位

室内

很高

设备成本较高

10cm

Wi-Fi

上报设备周边路由器MAC信息,服务器查表、解析并返回定位结果

单机定位

多机定位

室内

较低

设备成本低

需后端支持*

10m

IP定位

上报目标设备公网IP地址,服务器查表并返回定位结果

-

不限

极低

设备成本低

需后端支持*

10km

佛系

手持佛珠

念念有词

-

不限

0成本

无需设备

随缘

“需后端支持”指需要连接到服务器进行数据解析,才能获得定位结果;

“需专有后端支持”指可能需要付费才能获得相关数据,终端设备才可以进行定位。

本文咱们就说说和物联网关系最密切的卫星定位那些事儿。

众多卫星定位系统中,最广为人知的就是GPS(GlobalPositioningSystem)了。它是美国在年开始研发,年投入使用,年实现全球覆盖的全球卫星定位系统。

GPS由4颗工作星和4颗备用星组成。卫星工作在互成55度的6条高度为.0万KM的非同步轨道上。如此一来,在全球的任何地方、任何时间都可观测到4颗以上的GPS卫星。GPS卫星向地球发射导航电文(系统时间、星历、历书、卫星时钟修正参数、导航卫星健康状况、电离层延时参数等内容),GPS终端收到卫星发送的数据,经解算即可确定当前位置,并以NMEA格式,WGS-84坐标系输出数据。

也许有的读者会问,万一卫星坏了怎么办,GPS岂不是要失准了?其实这个担心是多余的啦,轨道上不仅有备用卫星,每年NASA也会委托SpaceX补发和替换寿终的卫星。

当然,卫星定位系统不是GPS一家独大的。只是因为GPS的先驱地位,所以很多人也都习惯性的把所有卫星定位系统都称之为“GPS”。

毕竟,使用GPS卫星之时,就是被美国钳制之日。GPS卫星是被美国军方控制的,他们可以随意调节某地区的定位精度(如中东地区),甚至让终端设备解算结果南辕北辙。而且GPS卫星是单向广播的,不具备双向通信能力,功能略显单一。

有鉴于此,很多国家也都在建设或已建成卫星定位系统。如中国的北斗(BeiDou)、欧洲的伽利略(Galileo)、俄罗斯的格洛纳斯(GLONASS)、印度的IRNSS等。

目前,中国的BeiDou北斗已经具备商用能力。配合基准站,甚至能给客户提供精确到毫米的定位服务。同时,BeiDou北斗也弥补了GPS的不足,具备短报文能力(驴友、海航必备。绝非手机的基站可比拟,只是资费超超超感人)。

既然太空中有那么多卫星,又有那么多种不同的卫星定位系统,那么如何知道某一片区域是否有定位卫星覆盖,以及有哪些卫星覆盖呢?Android手机请在应用商店搜索“GPSData+”并安装,打开后即可看到当前正在使用的定位卫星:

由于智能手机操作系统、定位芯片、天线、算法的差异,所以并不能搜索到所有用于定位的卫星系统。通常来说,智能手机只能搜到并使用部分(如图)。

即GPS+Beidou+GLONASS+QZSS,没有Galileo、IRNSS。

各导航系统不同频段的工作频率

导航系统

国家

频段

工作频率

GPS

美国

L1

.4MHZ±1.0MHZ

L

17.60MHZ±1.0MHZ

L5

.45MHZ±1.0MHZ

GLONASS

俄罗斯

L1

.MHZ±4MHZ

L

.MHZ±4MHZ

BD1

中国

S

.75MHZ±4.08MHZ

L

.68MHZ±4.08MHZ

(左旋圆极化)

BD

B1

.MHZ±.MHZ

B

.50MHZ±.MHZ

B

.50MHZ±10.MHZ

Galileo

欧洲

L1

.40MHZ±1.0MHZ

E5b

.MHZ±1.0MHZ

E5a

.MHZ±1.0MHZ

E6

.MHz±1.0MHZ

QZSS

日本

L1C

L1CD

.4MHz

L1CP

L1-C/A

LC

17.6MHz

L5

L5I

.45MHz

L5Q

L1-SAIF

.4MHz

LEX

.75MHz

IRNSS

印度

L5

.45MHz

S

49.08MHz

观察一下表格,我们可以发现,日本简直是太“鸡贼”了——L1C/A、L1C、LC、L5信号跟GPS卫星信号是完全兼容的,同时L1-SAIF还可以给日本地区提供高精度定位服务;LEX信号频点和欧洲Galileo系统的E6频点重合。也就是说,日本的QZSS当前可以作为GPS的补充,日后等到Galileo系统正式提供服务,QZSS也能实现Galileo系统的补充。

接下来进入喜闻乐见的“你问我答”环节:

Q:为什么有的时候手机定位还是很慢?

A:信号问题、基带问题等,一切皆有可能。如果想要提高定位精度,最简单方式就是——买!个!新!手!机!

Q:我想试试伽利略,有没有支持的手机呢?

A:华为有部分机型支持。

Q:小米8刘海屏不好看啊,你看VIVONEX多美。对了,小米8说是全球第一个支持GPS双频定位(L1、L5)的手机,好像很牛逼,能做到厘米级定位吗?

A:不能。没有基准站的支持,双频顶多是减小误差,对高精度定位无助。所以,还是洗洗睡吧。

Q:北斗的短报文资费究竟有多感人?

A:十几块一条吧。你可以去某猫、某宝查看一下报价。

至于说语音通信,也有海事卫星电话可用,不同国家资费不同,从十几块到几十块一分钟;什么?你想用卫星上网?按量计费$10/1M,怎么样,用的起吗?

Q:既然已有GPS,为什么还要重造轮子?

A:因为GPS的L1、L5是民码,大众可用,但是美军曾经在战时关闭过某些战区的数据覆盖,为了避免这种被人卡住喉舌的尴尬,所有必要发展自己的卫星定位系统。

Q:卫星定位系统只在地表有用吗?

A:非也。负海拔地区(只要有信号)、空中、甚至大气层外都可以。需要注意的是,水体、岩石等密度高的物体内无法使用。

大气层外使用,还要注意广义相对论对时钟造成的影响。

Q:《明日帝国》中,大反派使用了某种很牛逼的设备,通过某些手段改变了卫星参数,劫持了一艘船,这种事情可能发生吗?

A:这种事情,世界上已经发生过了。

因为GPS信号没有认证方式,且信号极弱,非常容易被劫持。例如HackRFOne就可以模拟并发射GPS信号;甚至让大疆无人机在禁飞区起飞。

伊朗也是用过类似的技术,成功捕获美国的无人机。

Q:最少搜到多少颗卫星才能定位成功呢?

A:因为采用三角定位的原理,所以至少颗卫星才能实现精准定位;具体要求如下:

使用卫星数

能否定位

备注

0

无法定位

1

无法定位

可以更新UTC时间和日期;

无法定位

可实现DFix,输出经纬度

不可输出海拔信息

4

可实现DFix

可输出正确海拔信息

4(多频)

可实现DFix

可输出伪距

Q:你为什么懂得那么多啊?

A:大概是因为我比高吧。

定位篇

有的人会问,既然天上多卫星,为什么我看输出结果只是用了其中有限的几个呢?这是因为单片机使用的小尺寸的陶瓷天线,一般只能做到兼容个频段(一般软件上也是多选),无法做到同时兼容个频段。所以通常是单选GPS或北斗;或者是GPS+北斗、GPS+GLONASS等两两组合的方式。

有的开发者实测时发现,为什么代码无误,但是定位模块就是搜不到卫星,无法定位呢?

实际上排查这种问题既简单,又复杂。之所以说简单的,是因为搜不到卫星唯一的原因就是信号问题。复杂是因为即便知道了病因,开发者也可能会觉得束手无策。

信号问题,那就是“卫星→天线→模块→代码→输出”的某个环节出现异常了。在这里,结合“望闻问切”的方法,针对可能出现的问题逐项击破。

首先,开发者应谨记,任何时候都应该避免空间上存在异物遮蔽天线(如树木、建筑、高架桥),物理上存在金属外壳等遮挡天线等情况(如铝壳、铁壳)。应确保测试环境是空旷的,无遮挡的,信号良好的。

之所以一直在强调天线、信号、无遮挡,是因为卫星的发射功率并不大,信号到达地面时已经很弱。这种信号强度相当于1.6万公里外一个5瓦的灯泡发出的光。再做个比喻,它比电视机天线所接收到的功率还要低10亿倍。

信号弱、无信号,都会表现为无法定位,或者定位慢。那么,如何判断究竟是信号问题导致的定位慢,还是真·无信号呢?观察模块输出的GGA、RMC和GSA:

GGA:

格式:

$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxx*hh

示例:

$GPGGA,.,.,N,10.,E,1,9,0.85,18.1,M,8.0,M,,*5E

名称

样例

单位

描述

消息ID

$GPGGA

GGA协议头

UTC时间

.

hhmmss.sss

纬度

.

ddmm.mmmm

N/S

N

N=北,S=南

经度

10.

dddmm.mmmm

E/W

E

W=西,E=东

定位指示

1

0:未定位

1:SPS模式,定位有效

:差分,SPS模式,定位有效

:PPS模式,定位有效

卫星数目

9

范围0到1

HDOP

0.85

水平精度

MSL幅度

18.1

单位

M

大地

-.

单位

M

-

差分时间

当没有DGPS时,无效

差分站ID

校验和

*5E

CRLF

消息结束

RMC:

格式:

$--RMC,hhmmss.ss,A,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxx,x.x,a*hh

例句:

$GPRMC,.,A,.,N,11.,E,0.57,5.6,,,,A*59

名称

样例

单位

描述

消息ID

$GPRMC

RMC协议头

UTC时间

.

hhmmss.sss

状态

A

A=数据有效;V=数据无效

纬度

.

ddmm.mmmm

N/S

N

N=北,S=南

经度

.

dddmm.mmmm

E/W

E

W=西,E=东

地面速度

0.57

Knot(节)

方位

5.6

日期

ddmmyy

磁变量

-

校验和

*59

CRLF

消息结束

GSA:

格式:

$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.x*hh

例句:

$GPGSA,A,,10,4,1,,5,1,15,0,1,,,,1.5,0.85,0.91*04

名称

样例

单位

描述

消息ID

$GPGSA

GSA协议头

模式1

A

M=手动(强制在D或D模式)

A=自动

模式

1:定位无效

:D定位

:D定位

卫星使用

10

通道1

卫星使用

4

通道

卫星使用

1

通道

卫星使用

通道4

卫星使用

5

通道5

卫星使用

1

通道6

卫星使用

15

通道7

卫星使用

0

通道8

,,,

,,,

,,,

卫星使用

通道1

PDOP

1.5

位置精度

HDOP

0.85

水平精度

VDOP

0.91

垂直精度

校验和

*04

CRLF

消息结束

如果GGA中的UTC时间错误,定位指示为0,卫星数目不为0;或者RMC的UTC时间错误,日期错误;GSA中卫星数目不为0,但是载噪比都很低,则可能是搜星慢,定位慢,信号差;

如果GGA中的UTC时间错误,定位指示为0,卫星数目始终为0;或者RMC的UTC时间错误,日期错误;GSA完全没有任何有效输出,则可能是完全无信号。

对于搜星慢,定位慢,信号差的情况,应改善天线设计,保证天线面朝上的安装使用状态;并且天线周边没有金属物件遮挡,无射频干扰;在空间容许的情况下尽量选择大尺寸的陶瓷天线,必要时应使用有源天线。

对于完全无信号的情况,大概率是天线设计错误。譬如,没有给有源天线开启供电,错误使用天线型号(如芯片仅支持GPS,天线仅支持北斗;错误的使用GSM天线接收信号)等。

扩展阅读:《Luat模块GPS天线设计建议》

还有一种常见情况是开发者在室内(含窗口、窗台)进行测试,这是不行的。因为室内没有卫星信号,并不能实现定位。

如果开发者不便于去户外进行测试,可以在某宝搜索“GPS转发”并购买相关设备。这样一来,开发者就不用“风吹日晒,饱经风雨”的,“不辞辛劳”的在户外调试啦。

接下来进入大快人心的“你问我答”环节:

Q:有没有体积小、信号好强的天线?

A:鱼和熊掌不可兼得。只有最适合的,没有最好的。

Q:NMEA-哪里格式说明呢?

A:请到


转载请注明:http://www.180woai.com/afhzp/255.html


冀ICP备2021022604号-10

当前时间: