首页 » 通讯 » 【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子

【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子

萌界大人物 2024-10-02 05:12:18 0

扫一扫用手机浏览

文章目录 [+]

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

先容篇

【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子 【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子 通讯

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

【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子 【万字长文】做GPS定位产品开拓看这篇文章讲事理就够了_暗记_旗子 通讯
(图片来自网络侵删)

——你在哪儿呢?

——啊?我在马路上啊。

——有什么特色?

——头顶有个玉轮。

——你阁下有什么啊?

——有个路灯。

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

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

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

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

——。


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

——(一脸崩溃的表情)

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

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

——你在哪儿啊?

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

——遵命。


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

后来随着智好手机的遍及,我以为情形能有所改进,后来才创造是我想多了——为嘛xx舆图、xx导航还是总让我往去世胡同里跑,非让我开车过湖?

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

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

逐步的随着理解的深入,才明白原来定位有这么多差异,里边的学问可大着呢。

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

定位办法

定位事理

定位方案

运用处景

本钱

设备哀求

精度

基站定位

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

单基站定位

多基站定位

室外

极低

设备本钱低

需后端支持

500m

卫星定位

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

多星定位

室外

较低

设备本钱低

5m

差分定位

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

多星定位

室外

很高

设备本钱高

需专有后端支持

5mm

BLE iBeacon

利用设备吸收蓝牙旗子暗记,根据旗子暗记强弱打算间隔,输出定位结果

单点定位

多点定位

室内

较高

设备本钱较高

30cm

RFID

利用设备吸收射频旗子暗记,根据旗子暗记强弱打算间隔,输出定位结果

单点定位

多点定位

室内

很高

设备本钱较高

10cm

Wi-Fi

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

单机定位

多机定位

室内

较低

设备本钱低

需后端支持

10m

IP 定位

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

-

不限

极低

设备本钱低

需后端支持

10km

佛系

手持佛珠

念念有词

-

不限

0本钱

无需设备

随缘

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

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

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

浩瀚卫星定位系统中,最广为人知的便是GPS (Global Positioning System)了。
它是美国在1958年开始研发,1964年投入利用,1994年实现环球覆盖的环球卫星定位系统。

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

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

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

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

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

目前,中国的BeiDou北斗已经具备商用能力。
合营基准站,乃至能给客户供应精确到毫米的定位做事。
同时,BeiDou北斗也填补了GPS的不敷,具备短报文能力(驴友、海航必备。
绝非手机的基站可比拟,只是资费超超超动听)。

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

由于智好手机操作系统、定位芯片、天线、算法的差异,以是并不能搜索到所有用于定位的卫星系统。
常日来说,智好手机只能搜到并利用部分(如图,即GPS+Beidou+GLONASS+QZSS,没有Galileo、IRNSS)。

各导航系统不同频段的事情频率

导航系统

国家

频段

事情频率

GPS

美国

L1

1575.42MHZ ±1.023MHZ

L2

1227.60MHZ ±1.023MHZ

L5

1176.45MHZ ±1.023MHZ

GLONASS

俄罗斯

L1

1602.5625MHZ ±4MHZ

L2

1246.4375MHZ ±4MHZ

BD1

中国

S

2491.75MHZ ±4.08MHZ

L

1615.68MHZ ±4.08MHZ

(左旋圆极化)

BD2

B1

1561.098MHZ ±2.046MHZ

B2

1207.520MHZ ±2.046MHZ

B3

1268.520MHZ ±10.23MHZ

Galileo

欧洲

L1

1575.420MHZ ±1.023MHZ

E5b

1207.140MHZ ±1.023MHZ

E5a

1176.450MHZ ±1.023MHZ

E6

1278.750MHz ±1.023MHZ

QZSS

日本

L1C

L1CD

1575.42 MHz

L1CP

L1-C/A

L2C

1227.6 MHz

L5

L5I

1176.45 MHz

L5Q

L1-SAIF

1575.42 MHz

LEX

1278.75 MHz

IRNSS

印度

L5

1176.45 MHz

S

2492.028 MHz

不雅观察一下表格,我们可以创造,日本切实其实是太“鸡贼”了——L1 C/A、L1C、L2C、L5旗子暗记跟GPS卫星旗子暗记是完备兼容的,同时L1-SAIF还可以给日本地区供应高精度定位做事;LEX旗子暗记频点和欧洲Galileo系统的E6频点重合。
也便是说,日本的QZSS当前可以作为GPS的补充,日后等到Galileo系统正式供应做事,QZSS也能实现Galileo系统的补充。

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

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

A:旗子暗记问题、基带问题等,统统皆有可能。
如果想要提高定位精度,最大略办法便是——买!
个!
新!
手!
机!

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

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

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

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

Q:北斗的短报文资费究竟有多动听?

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

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

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

A:由于GPS的L1、L5是民码,大众可用。
中美科技战升级之际,芯片已被扼住咽喉,定位系统这一“隐私”岂可节制在他人之手?

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

A:非也。
负海拔地区(只要有旗子暗记)、空中、乃至大气层外都可以。
须要把稳的是,水体、岩石等密度高的物体内无法利用。

大气层外利用,还要把稳广义相对论对时钟造成的影响。

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

A:这种事情,天下上已经发生过了。

由于GPS旗子暗记没有认证办法,且旗子暗记极弱,非常随意马虎被挟制。
例如HackRF One就可以仿照并发射GPS旗子暗记;乃至让大疆无人机在禁飞区起飞。

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

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

A:由于采取三角定位的事理,以是至少3颗卫星才能实现精准定位;详细哀求如下:

利用卫星数

能否定位

备注

0

无法定位

1

无法定位

可以更新UTC韶光和日期;

2

无法定位

3

可实现2D Fix,输出经纬度

不可输出海拔信息

4

可实现3D Fix

可输出精确海拔信息

>4(多频)

可实现3D Fix

可输出伪距

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

A:大概是由于我比高吧。

定位篇

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

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

实际上排查这种问题既大略,又繁芜。
之以是说大略的,是由于搜不到卫星唯一的缘故原由便是旗子暗记问题。
繁芜是由于即便知道了病因,开拓者也可能会以为束手无策。

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

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

之以是一贯在强调天线、旗子暗记、无遮挡,是由于卫星的发射功率并不大,旗子暗记到达地面时已经很弱。
这种旗子暗记强度相称于1.6万公里外一个25瓦的灯泡发出的光。
再做个比喻,它比电视机天线所吸收到的功率还要低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,xxxxhh

示例:

$GPGGA,065545.789,2109.9551,N,12023.4047,E,1,9,0.85,18.1,M,8.0,M,,5E

名称

样例

单位

描述

ID

$GPGGA

GGA 协议头

UTC 韶光

065545.789

hhmmss.sss

纬度

2109.9551

ddmm.mmmm

N/S

N

N=北,S=南

经度

12023.4047

dddmm.mmmm

E/W

E

W=西,E=东

定位指示

1

0:未定位

1:SPS 模式,定位有效

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

3:PPS 模式,定位有效

卫星数目

9

范围 0 到 12

HDOP

0.85

水平精度

MSL 幅度

18.1

单位

M

大地

-2.2

单位

M

-

差分韶光

当没有 DGPS 时,无效

差分站ID

校验和

5E

<CR><LF>

结束

RMC:

格式:

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

例句:

$GPRMC,100646.000,A,3109.9704,N,12123.4219,E,0.257,335.62,291216,,,A59

名称

样例

单位

描述

ID

$GPRMC

RMC 协议头

UTC 韶光

100646.000

hhmmss.sss

状态

A

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

纬度

2109.9704

ddmm.mmmm

N/S

N

N=北,S=南

经度

11123.4219

dddmm.mmmm

E/W

E

W=西,E=东

地面速率

0.257

Knot(节)

方位

335.62

日期

291216

ddmmyy

磁变量

-

校验和

59

<CR><LF>

结束

GSA:

格式:

$--GSA,a,a,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x.x,x.x,x.xhh

例句:

$GPGSA,A,3,10,24,12,32,25,21,15,20,31,,,,1.25,0.85,0.9104

名称

样例

单位

描述

ID

$GPGSA

GSA 协议头

模式 1

A

M=手动(逼迫在2D或3D模式)

A=自动

模式 2

3

1:定位无效

2:2D 定位

3:3D 定位

卫星利用

10

通道1

卫星利用

24

通道2

卫星利用

12

通道3

卫星利用

32

通道4

卫星利用

25

通道5

卫星利用

21

通道6

卫星利用

15

通道7

卫星利用

20

通道8

,,,

,,,

,,,

卫星利用

通道12

PDOP

1.25

位置精度

HDOP

0.85

水平精度

VDOP

0.91

垂直精度

校验和

04

<CR><LF>

结束

如果GGA中的UTC韶光缺点,定位指示为0,卫星数目不为0;或者RMC的UTC韶光缺点,日期缺点;GSA中卫星数目不为0,但是载噪比都很低,则可能是搜星慢,定位慢,旗子暗记差;如果GGA中的UTC韶光缺点,定位指示为0,卫星数目始终为0;或者RMC的UTC韶光缺点,日期缺点;GSA完备没有任何有效输出,则可能是完备无旗子暗记。

对付搜星慢,定位慢,旗子暗记差的情形,应改进天线设计,担保天线面朝上的安装利用状态;并且天线周边没有金属物件遮挡,无射频滋扰;在空间容许的情形下只管即便选择大尺寸的陶瓷天线,必要时应利用有源天线。

对付完备无旗子暗记的情形,大概率是天线设计缺点。
譬如,没有给有源天线开启供电,缺点利用天线型号(如芯片仅支持GPS,天线仅支持北斗;缺点的利用GSM天线吸收旗子暗记)等。

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

http://blog.sina.com.cn/s/blog_5b0121350102xy8v.html

还有一种常见情形是开拓者在室内(含窗口、窗台)进行测试,这是弗成的。
由于室内没有卫星旗子暗记,并不能实现定位。

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

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

Q:有没有体积小、旗子暗记好强的天线?

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

Q:NMEA-0183哪里格式解释呢?

Q:GNSS和GPS什么关系啊?

A:严格来说,GPS∈GNSS。

所有的卫星定位系统都是可以称之为GNSS,GPS是GNSS的子集。

这一点在输出中也有表示,例如:GNGGA,GPGGA,BDGGA,即“稠浊定位”(多卫星系统)、“GPS定位”、“北斗定位”。

语句标识符:

标识符

含 义

BD

BDS,北斗二代卫星系统

GP

GPS

GL

GLONASS

GA

Galileo

GN

GNSS,环球导航卫星系统

Q:GGA、RMC、RSV有什么分别?

A:都是NMEA-0183标准的哀求。
他们的释义如下:

标识符

含 义

GGA

韶光、位置、卫星数量、定位办法

GSA

GPS 吸收机操作模式,定位利用的卫星,DOP值,定位状态

GSV

可见GPS卫星信息、仰角、方位角、信噪比

RMC

韶光、日期、位置、速率

VTG

地面速率信息

Q:UTC韶光有办法换算本钱地韶光吗?

A:陆地的话,由于很多国家可能超过非常多的时区,却利用统一韶光,以是只能查表啦(如北京韶光UTC+8)。
如果是海洋,则根据经度打算时区。

Q:有没有手性能用的,测试GPS的,比较牛逼的app?

A:Android:GPS Status;GPS Test+;GPS Data+

iOS:GPS Test+

Q:为什么手机定位那么快那么准,定位模块那么慢,偏差还很大?

A:由于手机是捐躯个人隐私为条件的多重定位(基站+WiFi+蓝牙+GPS+AGPS+历史数据),而模块只是用GPS天线,以是显得略慢一些。
但是利用“AGPS赞助定位”后,一样可以做到秒定位。

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

A:大概是由于我比较富吧。

PS: 那么,怎么利用“AGPS赞助定位”呢?请关注下文哦。

秒定位篇

为什么旗子暗记极好的情形下,定位速率也烦懑?有没有办法实现“秒定位”呢?答案当然是肯定的啦。

常规情形下,定位模块上电开机后,通过天线搜索卫星,解析卫星发射的数据(导航电文),然后内部天生星历,再经由繁芜的打算,从而得到当前精确的位置(3D Fix)。
这个过程称之为“冷启动”。
根据旗子暗记强度、芯片运算能力,常日耗时几十秒到几分钟不等。

这个过程中,搜星+天生星历文件耗时最久。

不过有的读者可能会问,为什么有的时候定位模块只用了几秒就成功定位了呢?缘故原由有二:1、非“冷启动”办法,即“温启动”或“热启动”;

2、利用了AGPS赞助定位。

那么,“冷启动”、“温启动”和“热启动”有什么差异呢?大概大家会以为,这里的“X启动”和电脑的开机、待机(就寝)、重启近似吧?实际上并非如此哦。
由于卫星所处空间位置、终端设备所处地表位置是不固定的,以是此处的“X启动”都因此末了一次定位韶光和位移间隔作为判断依据的:

启动办法

阐明

自主秒定位

赞助秒定位

冷启动

1、初次利用时;

2、电池耗尽导致星历信息丢失时;

3、关机状态下,移动1000公里以上间隔时。

×

温启动

间隔上次定位韶光超过2个小时,不敷4个小时;

没有较大间隔的位移发生。

热启动

间隔上次定位韶光不敷2个小时;

没有较大间隔的位移发生。

自主秒定位:根据模块内保存的星历,实现快速搜星、定位。

赞助秒定位:利用AGPS赞助,实现快速搜星、定位。

也便是说,“温启动”和“热启动”情形下,定位模块是可以实现自主秒定位的。

那么,什么又是“AGPS赞助定位”呢?在传统GPS定位办法中,定位模块须要全频段搜索以找到可用卫星,因而耗时较长。
而“AGPS赞助定位”办法,是通过网络直接下载当前地区的可用卫星星历数据,并将之发送给定位模块,定位模块只搜索特定的卫星,从而提高了搜星速率,减少设备耗电。

举个例子:冷启动像是多项选择题,要把所有选项打算一遍,才能找到精确答案;而“AGPS赞助定位”就像是作弊器,打消掉了很多缺点答案,只要打算少数几个即可。
从而提高效率和准确率。

不过,这个天下上没有圣杯,“AGPS赞助定位”不是万金油。
它的运用条件还是须要比较苛的:

·卫星旗子暗记吸收条件必须良好,至少可不雅观测到4颗卫星(如果有条件,推举利用有源天线);

定位芯片必须支持AGPS赞助定位;必须可以准确获取当前地区星历数据;如果是冷启动,须要等待通信芯片附着成功,吸收到星历数据后,传输给定位模块;如果是温启动/热启动,亦须要重新搜星;

由此可见,只有上述条件知足的时候,才能实现秒定位。
如果是冷启动 + GPRS附着传输星历数据,实际上须要等待的韶光也不短呢(乃至有可能定位模块已经3D Fix,GPRS才刚刚附着成功,把星历数据发过来)。

以上海合宙通信科技有限公司的Air8xx系列模块为例,它的AGPS赞助定位基本流程如下:

1、设备从蜂窝基站获取到当前位置的小区信息;

2、设备通过蜂窝网络,将当前蜂窝小区信息传送给网络中的AGPS位置做事器;

3、APGS位置做事器根据当前小区信息查询该区域当前可用的卫星信息(包括卫星的频段、方位、仰角等干系信息),天生对应星历文件,并返回给设备;

4、通信模块通过串口把收到的星历文件传输给定位模块;

5、定位模块根据星历文件,得到的可用卫星信息,快速找到当前可用的GPS卫星,针对性的搜星,大大提升定位韶光。

接下来进入普天同庆的“你问我答”环节:

Q:我的模块没有GPS芯片,能否利用“AGPS赞助定位”实现定位?

A:当然弗成。
这个问题就相称于“我有增压器,没有发动机,能跑100迈吗”一样。
“AGPS赞助定位”,只是赞助加速定位,而不是一项独立可用的定位做事。

Q:“AGPS赞助定位”能否提高定位精度?

A:不能,它只能加快定位速率。
无法提升定位精度。

Q:如何根据NMEA-0183判断AGPS是否成功写入了呢?

A:看GGA、RMC的UTC韶光是否被改动,看GSV数据是否天生;

GSV:

格式:

$--GSV,x,x,x,x,x,x,x,...hh

例句:

$GPGSV,3,1,12,14,75,001,31,32,67,111,38,31,57,331,33,26,47,221,2073

名称

样例

单位

描述

ID

$GPGSV

GSV 协议头

数目

3

1~3

编号

1

1~3

卫星数目

12

卫星ID

14

1~32

仰角

75

0~90

方位角

001

0~359

载噪比(C/No)

31

dBHz

0~99(无跟踪时为空)

卫星ID

32

1~32

仰角

67

0~90

方位角

111

0~359

载噪比(C/No)

38

dBHz

0~99(无跟踪时为空)

卫星ID

31

1~32

仰角

57

0~90

方位角

331

0~359

载噪比(C/No)

33

dBHz

0~99(无跟踪时为空)

卫星ID

26

1~32

仰角

47

0~90

方位角

221

0~359

载噪比(C/No)

20

dBHz

0~99(无跟踪时为空)

校验和

73

<CR><LF>

结束

Q:“AGPS赞助定位”的星历文件花费流量多吗?

A:很少,几k而已。

Q:星历文件是否须要定期更新?更新频率是多少?

A:须要根据自己的情形进行剖析。
如果是冷启动后,不关闭定位模块,下载一次“AGPS赞助定位”数据(星历文件)即可。
运行中,定位模块内会自动天生对应的星历文件,无需重复下载;

如果是禁绝时启动、关闭,那么关闭4小时内启动是没必要更新的(“温启动”范畴);如果大于4小时,模块内保存的星历已失落效,则必须更新星历文件(重新下载),否则和“冷启动”无异。

Q:能否自己搭建AGPS星历数据做事器?

A:可以。
不过较麻烦。
建议利用我司供应的接口(请参考例程中agps.lua的代码)。

简述一下如何搭建。
首先在NASA下载brdc当日的导航电文数据(以2018年2月1日为例):

ftp://cddis.gsfc.nasa.gov/pub/gps/data/daily/2018/brdc/brdc0320.18n.Z

(备用)ftp://igs.ensg.ign.fr/pub/igs/data/2018/032/brdc0320.18n.Z

GPS卫星的历书(Almanac)包含在导航电文的第四和第五子帧中,可以看作是卫星星历参数的简化子集。
做事端收到客户真个要求,从导航电文中提取当日的星历,然后发送给客户端。

扩展阅读:《GPS卫星星历与历书》

https://blog.csdn.net/Csdn_Darry/article/details/72052686

Q:以GK9501定位芯片为例,怎么把“AGPS赞助定位”的数据发送给它?

A:请参考厂商供应的干系文档,以规定格式将数据通过串口发送给定位芯片(请参考例程中agps.lua的代码)。

扩展阅读:《AIR系列GPS模块测试用例》

http://blog.sina.com.cn/s/blog_5b0121350102xy8w.html

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

A:大概是由于我比较帅吧。

火星坐标(纠偏)篇

历经磨难,终于成功定位,获取精确输出。
但是怎么看起来格式不太对呢,经度纬度都是4位、5位的,那岂不是要绕地球好几圈了?

实在这是NMEA-0183输出格式和我们日常利用的格式不同造成的误解。
我们再来看一下GGA格式:

格式:

$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxxhh

示例:

$GPGGA,065545.789,2109.9551,N,12023.4047,E,1,9,0.85,18.1,M,8.0,M,,5E

名称

样例

单位

描述

ID

$GPGGA

GGA 协议头

UTC 韶光

065545.789

hhmmss.sss

纬度

2109.9551

ddmm.mmmm

N/S

N

N=北,S=南

经度

12023.4047

dddmm.mmmm

E/W

E

W=西,E=东

(省略部分GGA)

有没有创造问题所在呢?

GGA输出格式:ddmm.mmmm(度-分)

日常利用格式:dd.dddddd(度)

那么如何把GGA输出的数据转换为我们日常利用的格式呢?学霸看一眼就会说,这个问题很大略嘛,balabala~~~作为学渣的我,一头雾水。

咳咳,还是直接套用公式吧。

公式如下:

ddmm.mmmm → 小数点前移两位 → dd.mmmm → dd + 0.(mmmm/60) = dd.dddddd

举例:

12023.4047 → 120.234047 → 120 + 0.(234047÷60) = 120.390078

经由如此换算,我们就可以把获取到的数值放到舆图软件里啦。

统统看似都很美好,但是……直到……你用了百度舆图……我靠,卧槽……为什么偏差那么大?偏差达几百米?

明明在楼里,为什么舆图显示我在河里?为什么!
是不是定位模块有问题?还是我的又写了个bug?还是天线存在故障?黑人问号脸。

之以是会产生“偏差”,这就涉及到一个有关坐标系转换的问题:GCJ-02 火星坐标系统纠偏。

前文提到,模块输出数据的格式为NMEA-0183,利用的坐标系是WGS-84。
常日,国际上其他国家的舆图软件也都是利用WGS-84,相安无事。
不过,中国国家测绘局哀求所有从事地理丈量、舆图绘制的公司、单位机构、个人必须利用GCJ-02坐标系(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)。

也便是说,海内的舆图软件大都是利用的GCJ-02坐标系。
以是开拓者/用户如果将WGS-84的经纬度填入海内的舆图软件,就会产生极大的偏差。

(所有的电子舆图、导航设备,都须要利用GCJ-02坐标系。
第一步,舆图公司测绘舆图,测绘完成后,送到国家测绘局,将真实坐标WGS-84的电子舆图,加密成“GCJ-02火星坐标”,这样的舆图才是可以出版和发布的。
第二步,所有的面向客户的设备厂商,要在软件中加入该转换算法,将定位模块输出的真实WGS-84坐标,转换成GCJ-02的坐标。
这样一来,“以偏治偏”,坐标系才可以完备匹配,也就没有“偏差”了)

那么,是不是所有的海内舆图都利用了GCJ-02坐标系呢?非也……百度、搜狗又自成体系,自主坐标了。

坐标系

舆图

WGS-84

Google Map

Bing Map

Here Map

etc.

CGJ-02

高德舆图

腾讯舆图

谷歌舆图(中国)

BD-09

百度舆图

其他

搜狗舆图

个中百度较为分外,须要 WGS-84 → GCJ-02 → BD-09 两次转换。

由于转换算法较为繁芜,本文不赘述。
转换算法涉及浮点运算,推举开拓者将运算任务交给做事端或者上位机。

为了方便测试,开拓者在此网址http://www.openluat.com/GPS-Offset.html测试纠偏效果。

开拓者根据数据格式填入对应的经纬度(支持ddmm.mmmm、dd.dddd和dd°mm′ss″),点击“坐标转换”按钮,即可看到纠偏后的效果。
同时该页面也供应了坐标转换、坐标轴纠偏算法的下载。

接下来进入奔忙相告的“你问我答”环节:

Q:为什么无中生有搞一个GCJ-02坐标系?用WGS-84不是挺好?

A:你哦,图样图森破了。
加偏收费一次,定位设备纠偏收费一次。
每年车机、定位终端出货量便是几亿台,能拉动多少GDP哟。

Q:如果我在外国的舆图软件上利用WGS-84可以吗?

A:没问题的,只是外国的舆图软件中,大陆数据更新滞后且不完全。

Q:如果我不涉及舆图加偏/纠偏,仅须要速率、方向角等数据是否受到这个的影响呢?

A:纠偏仅是坐标值的转换,和其他数据无关。

Q:为什么推举开拓者把纠偏算法放在上位机呢?

A:由于单片机真的——算不过来。

Q:为什么觉得GPS芯片上报的经纬度,在一个小范围内飘来飘去?

A:这个是须要软件静态抑漂的。
可以采取技能手段进行过滤,比如设置速率门限——在低于一定速率时,认为是静止不动的。
或者事先知道用户处于什么运动模式,是静止、步辇儿、还是开车。

Q:我创造纠偏后还是不足精准,定位偏差较大,能不能做到真·厘米级定位?

A:可以哦。
请看下文“细致入微的厘米级定位”。

细致入微的厘米级定位

常日情形下,GPS供应5m旁边的定位精度,可以知足大多数大多数情形下的定位需求。
不过,有一些场景,有更高精度的定位需求。
譬如测绘、滑坡监控、无人机、无人驾驶汽车等。

基于GPS的特性,很难供应亚米级的定位,那么如何是好呢?经由N次技能创新和持久的基准站培植,现在可以做到覆盖全国的厘米级定位技能。

实在大略来说,高精度定位的核心便是肃清偏差。
卫星定位精度不高,是由于偏差积累导致,只要把可控的偏差肃清到最低,就能得到更高精度的定位结果。

卫星定位的偏差来源常日有:

偏差来源

偏差项

偏差缘故原由

定位偏差影响

卫星

卫星星历偏差

星历中,卫星空间位置与卫星实际位置间的偏差

-

卫星钟差

指GPS卫星时钟与GPS标准韶光的差别

偏差和漂移和漂移总量仍在1ms~0.1ms以内,由此引起的等效偏差将达到300km~30km

SA滋扰偏差

SA偏差是美国军方为了限定非特许用户利用GPS进行高精度点定位而采取的降落系统精度的政策

-

相对论效应的影响

由于卫星钟和吸收机所处的状态(运动速率和重力位) 不同引起的卫星钟和吸收机钟之间的相对偏差

20~30km

传播路径

电离层折射

当GPS旗子暗记通过电离层时,与其他电磁波一样,旗子暗记的路径要发生波折,传播速率也会发生变革,从而使丈量的间隔发生偏差

-

对流层折射

GPS旗子暗记通过对流层时,也使传播的路径发生波折,从而使丈量间隔产生偏差

-

多路径效应

测站周围的反射物所反射的卫星旗子暗记(反射波)进入吸收机天线,将和直接来自卫星的旗子暗记(直接波) 产生干涉,从而使不雅观测值偏离

吸收机

吸收机钟差

GPS 吸收机一样平常采取高精度的晶振。
吸收机的钟面时与GPS标准时之间的差异称为吸收机钟差

吸收机的位置偏差

吸收机天线相位中央相对测站标石中央位置的偏差

吸收机天线相位中央偏差

不雅观测时,天线的相位中央随着旗子暗记输入的强度和方向不同而有所变革,这种差别叫天线相位中央的位置偏差

打算偏差

由于算法、硬件不稳定、辐射或热电效应等造成的打算缺点

那么,如何改动这些偏差偏差,使得定位结果更精准呢?须要基准站通过数据链,将其载波不雅观测值及基准站坐标信息一同传送给用户站,用户站吸收GPS卫星的载波相位与来自基准站的载波相位,并组成相位差分不雅观测值进行及时处理,能及时给出厘米级的定位结果。

常日,我们提到的DGPS指RTD,即Real Time Differential,伪距差分。
基准站上,不雅观测所有卫星,根据基准站已知坐标和各卫星的坐标,求出每颗卫星每一时候到基准站的真实间隔。
再与测得的伪距比较,得出差分改正数,将其传输至用户吸收机,提高定位精度。
从而实现亚米级定位。

厘米级定位,则须要用到RTK,即Real Time Kinematic,载波相位差分,实时处理两个测站载波相位不雅观丈量的差分方法。
即是将基准站采集的载波相位发给用户吸收机,进行求差解算坐标,从而实现厘米级定位。

笔墨太空洞,举例解释:BOSS见告人力,给你发人为¥8848.00。
人力听错了,发给你¥8844.00。
收到人为之后,以为不太对——数字的谐音,这不是变相骂人嘛。

你赶紧上岸ERP查询,提交实发人为金额¥8844,查询一下。
嚯,不得了,系统一阵卡机(查询后台中),然后duang的一声见告你——少发了¥4.00。
你去找人力,要回来了差额¥4.00,喜提锤子R1。

在这个故事中:

“BOSS”便是卫星——卖力传达指令,不处理详细事物;

“人力”便是传播路径——上情下达,产生偏差;

“ERP查询返值”便是基准站——根据“用户站”上传的数据,下发的“人为改正数”;

而你,便是用户站——将“吸收值”(¥8844.00)上传给“基准站”,得到“人为改正数”(-¥4.00),你就知道是少发了¥4.00。
经由打算(¥8844.00+¥4.00)即可求得精确解(¥8848.00)。

颇有点区块链的觉得了,不是吗?

扩展阅读:《DGPS与RTK的差异》

https://blog.csdn.net/foreverhuylee/article/details/25693893

目前,做事覆盖全国范围的,只有千寻位置®。

(千寻位置®是由中国兵器工业集团和阿里巴巴集团共同发起成立。
千寻位置基于北斗卫星系统(兼容GPS、GLONASS、Galileo)根本定位数据,利用遍及全国的超过2000个地基增强站及自主研发的定位算法,通过互联网技能进行大数据运算,为遍布全国的用户供应精准定位及延展做事)

用户在千寻位置®购买干系套餐后,可以利用千寻位置®供应的SDK或NTRIP协议吸收RTCM差分数据。

开拓办法

支持架构

账号认证

上传语句

挂载点

返回数据格式

SDK

Android

iOS

Windows

STM32

自动

GGA

-

RTCM

NTRIP

不限

Base64编码传输

GGA

RTD

RTCM32_GGB

RTCM3.2

RTCM23_GPS

RTCM2.3

RTK

RTCM32_GGB

RTCM3.2

RTCM30_GG

参考资料:https://www.qxwz.com/help-document-location-service.html

https://www.qxwz.com/help-document-common-find-config-service.html

由于NTRIP认证办法较繁琐,以是本文不再赘述,有兴趣的读者可以点击下方链接理解更多内容:

扩展阅读:《Ntrip通讯协议》

https://www.cnblogs.com/hanford/p/6028156.html

定位效果如此拔群,当然条件也相称苛刻啦:

定位芯片必须支持差分数据解算;园地净空条件良好,只管即便不要有任何遮挡(高楼、树木等);SNR应大于40;设备具有吸收数据的能力(网络接入);流量花费很高;丈量点在基准站覆盖范围内;

固定解耗时较久。

我们可以通过模块输出的GGA语句判断当前定位状态:

GGA:

格式:

$--GGA,hhmmss.ss,llll.ll,a,yyyyy.yy,a,x,xx,x.x,x.x,M,x.x,M,x.x,xxxxhh

示例:

$GPGGA,065545.789,2109.9551,N,12023.4047,E,5,9,0.85,18.1,M,8.0,M,1,0999,5E

名称

样例

单位

描述

ID

$GPGGA

GGA 协议头

UTC 韶光

065545.789

hhmmss.sss

纬度

2109.9551

ddmm.mmmm

N/S

N

N=北,S=南

经度

12023.4047

dddmm.mmmm

E/W

E

W=西,E=东

定位指示

1

0=未定位

1=GPS单点定位固定解

2=RTD差分定位

3=PPS模式

4=RTK固定解 (定位精度达厘米级)

5=RTK浮点解

6=惯导

7=手工输入模式

8=仿照模式

卫星数目

9

范围 0 到 12

HDOP

0.85

水平精度

MSL 幅度

18.1

单位

M

大地

8.0

单位

M

-

差分韶光

1

(从吸收到差分旗子暗记开始的秒数,如果不是差分定位将为空)

差分站ID

0999

差分站ID号0000 - 1023(前导位数不敷则补0,如果不是差分定位将为空)

校验和

5E

<CR><LF>

结束

如果是GPS芯片已经进行解算,并输出差分定位结果,那么GGA语句中“定位指示”应为2、4、或5;查分韶光应大于0(不为空);差分站ID应不为空。

只有同时知足上述条件,才能得到精确的丈量结果。
接下来,我们看一下实际测试结果。
测试环境,某小区内:

测试中,利用 上海合宙通信科技有限公司供应的Air202 GPRS通信模块,对GPS芯片进行掌握,连接千寻位置®平台。
将模块输出的GGA原始语句上报到千寻位置®平台,将平台下发的数据传输给GPS芯片,然后打印GPS芯片解算后输出的GGA。

(手机APP输出数据)

(差分定位结果)

(比拟)

通过比拟图可以看出,手机定位偏差较大(并没有在顶晒台测试嘛),RTK测试结果非常准确,符合测绘等需求。

接下来进入后会有期的“你问我答”环节:

Q:RTD、RTK做事贵吗?

A:可以到千寻位置®官网查询。
参考价:RTD ¥6/月/设备;RTK ¥400/月/设备。

Q:如何判断我的定位结果是否为差分运算后的结果呢?

A:不雅观察GGA语句中的定位指示输出值.

Q:流量花费多少?

A:RTCM数据每秒下发一次,每次大约0.5k,大约须要60m/天(按24小时计)。

Q:大约须要多久才能得到RTK固定解?

A:固定点丈量大约须要10分钟。

Q:有没有把办法减少流量花费?

A:可以根据gps状态修正代码,当定位模式为“rtk固定解”时,主动断开连接。
GPS定位状态改变再重连做事器。

Q:为什么设备一贯处于浮点解定位状态,无法固定。

A:请确保终端设备天线对空不雅观测环境良好,没有受到遮挡,或处于易产生多路径旗子暗记反射的物体附近,也请留神导航卫星旗子暗记吸收正常,CN0处于正惯例模内,未受到无线电滋扰。

低功耗篇

——21世纪,物联网最主要的差错有什么?

——电池。

从常见的的共享单车、车载定位器,到不常见的远程抄表、充电桩管理。
在各种和物联网干系的运用中,供电始终是一个绕不开的话题。

如果是有常电(如汽车、自动贩卖机)还好,如果是利用电池,那么每一毫安的电都要一个钱打二十四个结才行(哪怕是用太阳能板充电的共享单车,也常常面临“低电”困扰呢)。

MCU、GPS、通信模块等,都是众所周知的耗电大户。
个中,GPS芯片由于要承担搜星、打算,输出的任务,以是它的耗电量也是不容小觑的。
那么,有没有什么办法让GPS芯片“节能降耗”呢?

答案当然是肯定的。
前文提到过,GPS芯片搜星时耗电量最大了,如果能让模块只管即便减少搜星和追踪的耗电量,就可以达到目的啦。
如何做到这两点呢?接下来我们以物联网行业最常用的国科GK9501 GPS芯片为例,进行解释。

搜星

星历下载 和 星历预测

前文提到过,通过2G网络将星历文件传给GPS芯片,从而实现秒定位+省电,众人拍手欢呼。
那么,忽然又涌现了个“星历预测”,这是什么鬼呢?

Q:什么是“星历预测”?

A:GK9501的软件自带“星历预测”功能。
它是指在旗子暗记正常(CN值大于27)的情形下,硬件连续运行5~10分钟,即可在内部自动天生星历,并预测出未来2~3天的星历,此过程不须要耗费任何流量。
实现“通电5分钟,奔跑72小时”。

当然实现“星历预测”这个功能,是有条件的:

1、星历被下载过一次(外部输入给GPS芯片星历文件,或者GPS芯片自主3D Fix)

2、GPS旗子暗记CN值不低于27

3、正常定位过一次;

4、RTC不掉电(当主电源断开后,只有RTC电源不断,星历预测功能才可以利用,RTC断开后星历预测功能将不中兴浸染);

Q:“星历预测”和“星历下载”的差异是什么?对实际定位有什么帮助?

A:这个要从AGPS的发展史提及。

早期,做事器下发的星历文件是包含全部所有的可见卫星数据,将之发给GPS芯片,GPS芯片再根据星历文件去搜星。
缺陷是星历文件大,定位效果还差那么一丢丢;现在,首先是利用通信芯片进行基站定位,后台获取一个粗略的地理位置,查询导航电文后,再根据该地理位置精确下发当前可见卫星星历,GPS芯片再根据精确的星历文件去针对性地搜星。
星历文件体积更小,定位效果更好。

由此可见:“星历预测”是芯片自动天生的,仅包含可见卫星的星历;而“星历下载”是包含全部可见(但是不可用)卫星的星历。

办法

实现办法

有效韶光

优点

秒定位的限定

缺陷

星历下载

通过2G网络将星历文件下载到GPS芯片

4小时

可以实现秒定位

无限制

须要花费网络流量

星历预测

永劫光有效运行(3D Fix)后,GPS芯片自动天生

2~3天

可以实现较快速率定位

较小位移情形下

限定条件较多

无论在什么状态下,都是GPS旗子暗记CN值越好,定位越快;6小时内的 星历下载 保存可以将RTC电源断开。

Q:如果“星历预测”可以用,那为什么还通过2G网络“星历下载”呢 ?

A:由于“星历预测”的条件是在“旗子暗记正常(CN值大于27)的情形下,连续运行5-10分钟”,电流28mA,相比拟较耗电。
以是大多数运用会方向于每次都进行“星历下载”,而非利用“星历预测”——何况通过基站定位获取大概位置的动作,本身就须要2G联网做事器呢。

Q:为什么星历数据保存有效韶光最长是6小时?

A:星历保存有效的韶光和卫星的运行轨迹干系。

星历保存韶光越长,原来星历里的可见卫星就越少。
由于GPS卫星绕地一圈是12个小时,以是,星历数据有效期6小时已是极限值。
超过这一韶光后,原来的星历数据就没故意义了。

鉴于星历保存的韶光越短,其对应星历里的可见星就越多,以是2小时内的星历比保存6小时内的星历对定位的帮助更大。

追踪

动态追踪也是很耗电的,那么有没有办法让芯片“半睡半醒”的事情呢?嘿嘿,还真有办法,GK9501可是会“达芬奇就寝法”的哦。

模式

阐明

唤醒办法

低功耗模式

CPU就寝

通过串口唤醒

超低功耗模式

CPU掉电,只有RTC事情

须要force on唤醒

低功耗追踪模式

CPU就寝,可以通过串口唤醒或者周期性自动唤醒进行定位输出。
可以给出运行轨迹

超低功耗追踪模式

CPU掉电,只有RTC事情,须要force on唤醒或者周期性自动唤醒进行定位输出。
可以给出运行轨迹

省功耗追踪模式实际上便是周期性自动唤醒:是GK9501根据当前的运动状态自动设置就寝韶光和运行韶光。
例如在运动比较快的情形下,会自动就寝30秒,运行3秒;在运动比较慢的情形下,会自动就寝60秒,运行3秒;达到在有大致轨迹的情形下,降落功耗的目的。
如果主控也须要同步就寝,可以通过GPIO来关照主控。
当然也可以通过主控周期性割断GK9501电源的办法实现这一目的。

Q:彷佛其他友商的芯片也支持AGPS秒定位呢,和GK9501有什么差异呢?

A:uBlox、中科微、泰斗支持AGPS,MTK、国科GK9501支持秒定位。
差异是前者只下载星历,后者不但下载星历,还会结合基站定位加速找星定位的过程。
这个是AGPS和秒定位的实质差异。

Q:有没有推举的GPS物联网模块呢?

A:上海合宙通信科技有限公司的Air8xx系列。
利用RDA8955+GK9501平台,支持2G和GPS,稳定可靠。

标签:

相关文章