泛在无线信号定位辅助信息的标准化研究
2018-05-21夏敬潮张彦祥汪善根
夏敬潮,张彦祥,汪善根,曾 秋
(1.广州大学 土木工程学院,广州 510006;2.东莞市测绘院,东莞 523660)
0 引言
定位是位置服务、万物互联、人工智能和未来超智能(机器人+人类)应用的核心技术之一[1]。以北斗、全球定位系统(Global Positioning System,GPS)为代表的全球导航卫星系统,已经成为人们获取定位信息的主要技术手段。现在人类80%~90%的时间是在室内环境中度过的[2],然而在室外复杂和室内封闭环境下,导航卫星信号容易被遮挡或屏蔽,使得其定位服务的可用性大大降低。如何实现高精度、全覆盖的定位,是一个亟需解决的问题。
泛在无线信号/机会信号(Signals of Opportunity,SoOP)指的是非专门用于导航定位的无线电信号[3],较常见的有移动蜂窝信号、无线上网信号(Wireless Fidelity,Wi-Fi)等。随着无线通信技术的发展,以及无线城市、数字城市的建设,周围环境中的泛在无线信号日益丰富,已经成为实现室内和室外复杂环境下定位的一种有效途径。
泛在无线信号通常自身不具备导航定位功能,在利用这类信号进行定位时,用户需要额外的辅助信息,如Wi-Fi热点坐标、手机基站位置等。虽然市面上已经出现了不少基于泛在无线信号与全球导航卫星系统的商用室内外定位解决方案,例如Skyhook公司推出的XPS系统、百度地图、高德地图等,但是它们之间是相互独立的,对于泛在无线信号定位所需要的辅助信息,还没有建立相关的数据格式标准,缺少合作开放式的平台。针对这一问题,本文对泛在无线信号定位所需辅助信息的标准化进行了研究,主要分为2个方面内容:首先是辅助信息数据格式的标准化;其次是数据传输方式的标准化。
1 辅助信息数据格式的标准化
前文已经提到,目前用于泛在无线信号定位的辅助信息还没有标准的数据格式,市面上支持泛在无线信号定位的服务商(例如,Skyhook公司)大多采用自定义的数据传输格式,并且格式详细内容是不公开的。相应的解决方法有两种:1)建立新的数据格式标准;2)将已有的相关标准进行修订或者扩展,使其含盖辅助信息。本文采取第二种方案,将卫星导航定位领域广泛使用的数据格式标准(RTCM SC-104标准)进行扩展,以满足定位用户和位置服务供应商的相关需求。
1.1 RTCM SC-104标准
国际海运事业无线电技术委员会(Radio Technical Commission for Maritime services,RTCM)是一个国际标准组织。RTCM特别委员会(Special Commission)104专门致力于卫星导航定位差分数据格式标准的制订,其发布的RTCM SC-104标准已成为卫星导航定位产业界内广泛使用的数据传输标准。
RTCM SC-104标准的版本会随着卫星导航定位技术的发展和用户需求的变化而不断地更新,目前最新的版本是3.X。数据从服务器传输到用户端的过程中,电文内容以帧为单位进行播发,3.X版本中的电文帧结构如图1所示[4]。
图1 RTCM SC-104标准3.X版本的电文帧结构Fig.1 Frame structure in version 3 of RTCM SC-104 standard
每一帧电文由4个部分组成:电文头、保留字节、信息长度、信息内容和CRC校验码。电文头用于电文的识别,内容固定不变,是一组长度为8bits的二进制数,相应的值为11010011。保留字节的内容目前也是固定不变的,其长度为6bits,相应的值为000000,该值没有实际意义,在以后的版本中,保留字节可能会包含数据格式标准的版本信息。信息长度指的是其后面数据块信息内容所占的字节(byte)数,其内容占10bits,数据类型为无符号整数,取值范围为0~1023bytes。信息内容为定位用户所需要的数据内容,其大小由前面的信息长度给出,不同的信息通过信息类型号来加以区分,该值在信息内容数据块的开头给出,是一个12bits的无符号整数。定位用户可以根据所需的定位服务来决定所接收的信息组合,例如,在进行GPS单频L1的RTK测量时,需要接收以下几组信息:基准站观测值(信息类型为1002)、基准站坐标(信息类型为1005或1006)、基准站接收机和天线信息(信息类型号为1033)、辅助操作信息(信息类型号为1013)。CRC校验码用于检验电文在传输的过程中是否发生错误,是一组24bits二进制数。3.X版本采用高通公司的循环冗余校验(Cyclic Redundancy Check,CRC)算法,服务器端将准备发送的电文通过该算法得到24bits的校验码,并附加在电文后。当用户收到电文信息时,将计算出的校验码与电文中校验码进行比对,以决定是否使用该电文中的信息。
1.2 扩展的RTCM SC-104标准
由于RTCM SC-104标准不支持泛在无线信号定位相关的数据,因此必须对已有的电文类型进行扩展。RTCM SC-104标准规定:类型号从4001~4095的信息支持私人定制。截止到3.2版本,类型号从4077~4095的信息已经被相关的公司或者科研机构所申请,例如,类型号为4095的信息包含的是Ashtech公司的数据,类型号为4077的信息包含的是Hemisphere公司的数据。本文以城市环境下典型的泛在无线信号(移动蜂窝信号和Wi-Fi信号)为例,使用类型号为4060的信息来包含手机基站坐标;类型号为4059的信息包含Wi-Fi热点坐标;类型号为4058的信息包含室外泛在无线信号指纹;类型号为4057的信息包含室内泛在无线信号指纹。需要指出的是,这里所说的扩展只增加自定义的信息内容,对于信息内容之外的其他部分,如每一帧电文中的电文头、保留字节、信息长度和CRC校验码仍然按照RTCM SC-104标准来进行编码。
1.2.1 手机基站坐标
手机基站坐标信息包含了6个参数:信息类型号、基站识别号、坐标参考历元、协议地球坐标系(Earth Centered Earth Fixed,ECEF)下的X坐标、Y坐标和Z坐标,相关的定义如表1所示。
表1 手机基站信息中各参数的定义
注:UINT表示无符号整型;INT表示有符号整型。
信息类型号沿用了RTCM SC-104标准中的信息分类方法,采用12bits无符号整数来表示。基站识别号采用64bits的无符号整数来识别不同的基站,每个基站的识别号在全球范围内应该是唯一的。坐标参考历元为基站坐标值所对应的参考历元,同一基站的坐标值随着时间的流逝可能会发生变化,因此不同的空间位置信息还应该与时间相对应,此处使用约化儒略日(Modified Julian Date,MJD)来区分不同的时间历元,采用32bits的无符号整数来表示。基站的位置信息以三维空间直角坐标的形式给出,在中国范围内采用2000中国大地坐标系[5],X、Y和Z值分别用3个38bits的有符号整数来表示,单位为m,在使用该值时,还需要乘上相应的比例因子0.0001。
1.2.2 Wi-Fi热点坐标
Wi-Fi热点坐标信息包含6个参数:信息类型号、Wi-Fi热点物理地址、坐标参考历元、协议地球坐标系下的X坐标、Y坐标和Z坐标,相关的定义如表2所示。
表2 Wi-Fi热点坐标信息中各参数的定义
注:UINT表示无符号整型;INT表示有符号整型。
Wi-Fi热点坐标信息十进制的类型号为4059,除了Wi-Fi热点物理地址是采用48bits的无符号整数表示之外,其他参数的含义和手机基站坐标信息中对应的同名参数相同,这里不再赘述。
1.2.3 室外指纹
每条指纹信息的内容分为两部分,第一部分称为数据头,相关参数的定义如表3所示。
表3 室外指纹信息中数据头各参数的定义
注:UINT表示无符号整型;INT表示有符号整型。
室外指纹信息十进制的类型号为4058。无线信号类型用来区分不同类型的无线电信号,它是一个16bits的无符号类型整数,1表示Wi-Fi信号,其他无线信号的类型值可以在此基础上依次增加。指纹采集日期指的是采集指纹记录的时间,一般来说,受周围环境变化的影响,指纹库每隔一段时间要进行更新,更新时间离用户请求数据的时间越接近,定位效果越好。信号强度观测值个数N指的是数据头后面的数据块中所包含的信号强度观测值个数,该值是一个6bits的无符号整数,最大值为63。
第二部分为信号强度观测值记录,记录总数为N,每条记录中包含一个信号强度观测值和相应的识别号,各参数的定义如表4所示。
表4 每条室外信号强度观测值记录中各参数的定义
无线信号源的识别号用来区分不同的信号发射源,是一个48bits无符号整数,对于Wi-Fi信号,该值对应于Wi-Fi热点的物理(Media Access Control,MAC)地址。信号强度观测值是用户所观测到的无线信号的强度值,是一个32bits有符号整数,单位为dBm。
1.2.4 室内指纹
和室外指纹信息类似,每条室内指纹信息也分为数据头和信息强度观测值记录2个部分,数据头中各参数的定义如表5所示。
表5 室内指纹信息中数据头各参数的定义
室内指纹信息十进制的类型号为4057,与室外指纹信息中的数据头相比,室内指纹信息数据头新增加了室内指纹库的总记录数和当前指纹记录号这2个参数。室内指纹库的总记录数指的是用户所在室内区域指纹库中总的指纹记录数,是一个32bits无符号整数。当前指纹记录号是一个32bits无符号整数,指的是当前播发的电文中指纹记录的编号,例如第一条记录的编号为1,最后一条记录的编号应该等于室内指纹库的总记录数。由于室内指纹库带有明显的区域性,因此新增加的2个参数可以帮助用户确定所接收的指纹记录的总数是否完整。另外需要指出的是,数据头中的坐标值为独立平面直角系下的坐标,而不是协议地球坐标系下的坐标,其他参数的定义和室外指纹库中同名参数相同。
第二部分为信号强度观测值记录,总记录数为N,每条记录中各参数的定义如表6所示。
表6 每条室内信号强度观测值记录中各参数的定义
2 辅助信息传输方式的标准化
在制定好了辅助信息的数据格式后,接下来的问题便是如何将数据发送给用户。考虑到定位中所使用的泛在无线信号大都支持网络通信,而且基于互联网的网络通信技术已经很成熟,所以本文使用基于互联网的网络通信来进行辅助信息的发送和接收。
2.1 NTRIP协议
通过互联网进行RTCM网络传输的协议(Networked Transport of RTCM via Internet Protocol,NTRIP)是一个基于HTTP的应用层协议,隶属于TCP/IP协议簇,主要用于在互联网上传输RTCM格式的数据流,由德国联邦测绘局发起并制定,目前已经成为互联网上进行卫星导航定位相关数据传输的标准协议。
基于NTRIP协议的数据传输主要由NtripClient、NtripServer和NtripCaster这3个程序模块来实现,其中NtripCaster作为HTTP服务器端应用程序,NtripServer作为数据传输程序,负责将NtripSource中的数据传输到NtripCaster,NtripClient则作为HTTP客户端应用程序。在NtripClient与NtripCaster之间进行通信时,采用非持久连接模式,所使用的消息格式和状态码都是基于HTTP 1.1协议,例如使用消息格式中的“GET”来向服务器获取信息,状态码“200”则表示服务器已经成功处理了请求。NtripServer与NtripCaster之间进行通信时,则在HTTP 1.1通信协议的基础上定义出了一个新的消息格式“SOURCE”和一个新的状态码“ERROR Bad Password”。
一个完整的NTRIP数据流传输系统由NtripSource、NtripServer、NtripCaster和NtripClient这4个部分组成,它们之间的关系如图2所示。
图2 NTRIP数据流传输系统示意图Fig.2 Schematic diagram of NTRIP data stream transmission system
NTRIP中各组成部分的功能和工作流程可以参考文献[6-8],这里不再赘述。第1节已经提到,通过将消息类型进行扩展,就可以将泛在无线定位辅助信息纳入到RTCM SC-104标准之中,由于NTRIP支持RTCM格式数据的网络传输,因此利用NTRIP就可以直接支持泛在无线定位辅助信息的网络传输。
2.2 扩展的NMEA 0183格式
用户在通过互联网向NTRIP服务器请求数据时,对于资源列表中NMEA标志位为1的数据流,需要向服务器发送自己的概略位置信息。该信息通过NMEA 0183格式(详细说明可考看文献[9-10])中的$GPGGA语句发送,概略位置一般通过GNSS伪距单点定位获得。然而,对于泛在无线信号定位用户而言,通常是在GNSS定位功能失效的情况下才会向服务器发送数据请求,以获得辅助定位信息,然后通过相关的运算获得定位结果,此时用户向服务器发送的信息只能是基站ID、Wi-Fi的MAC地址、上网所使用的IP地址等相关内容,因此现有NMEA 0183格式中的语句不能满足我们的需要,必需对其进行扩展。
为了使NMEA 0183包含泛在无线信号相关的信息,本文在原有标准的基础上新增了4条语句,相应的标识符为:$NTIP4、$NTIP6、$CLLID、$WLNID。$NTIP4和$NTIP6语句包含了用户上网所用的IP地址,其中$NTIP4表示IPv4地址,即IP协议第四版;$NTIP6表示IPv6地址,即IP协议第六版。$CLLID语句包含了手机基站的ID,即Cell-ID。$WLNID语句包含了Wi-Fi热点MAC地址信息。
NTIP4语句的基本格式为:
$NTIP4,<1>*hh
字段<1>表示用户上网使用的IPv4地址,例如IP地址为202.103.24.68的$NTIP4语句内容为:
$NTIP4,202.103.24.68*3F
$NTIP6语句的基本格式和$NTIP4类似:
$NTIP6,<1>*hh
字段<1>表示用户上网使用的IPv6地址,例如IP地址为2000∶0000∶0000∶0000∶0001∶2345∶6789∶abcd的$NTIP6语句内容为:
$NTIP6,2000∶0000∶0000∶0000∶0001∶2345∶6789∶abcd*24
$CLLID语句的基本格式为:
$CLLID,<1>*hh
字段<1>表示正在为手机提供通信服务的基站ID号,该值是一个十进制的整数,例如ID号为00860270010001537的$CLLID语句内容为:
$CLLID,00860270010001537*58
需要指出的是,$CLLID语句所发送的ID号码不是基站的原始ID号,而是在原有ID号基础上加上区域信息重新编码而成。
$WLNID语句的基本格式为:
$WLNID,<1>,<2>,<3>,<4>,…<4>*
hh
各字段的含义如下:
1)为WLNID语句的总数。
2)为当前WLNID语句的编号。
3)为探测到的Wi-Fi热点总的个数,取值范围为00~99,前面的0也将被传输。
4)为Wi-Fi热点的MAC地址,由12个十六进制的ASCII字符组成。每条语句中最多包含5个热点的MAC地址,当Wi-Fi热点总数大于5时,多余的信息将在下一序列的WLNID语句中输出。
例如当前有2个Wi-Fi热点,MAC地址分别为02∶E1∶40∶00∶01∶E0和28∶2C∶B2∶B0∶9F∶5C,则对应的$WLNID语句为:
$WLNID,1,1,02,02E1400001E0,
282CB2B09F5C*00
3 结论
本文对于泛在无线信号定位辅助信息的标准化研究只是一个开始,无线信号类型只涵盖了城市环境下典型的移动蜂窝信号和无线上网Wi-Fi信号;鉴于指纹定位法是目前主流的Wi-Fi定位方法[11-12],Wi-Fi相关的辅助信息标准的内容也以指纹消息为主。随着泛在无线信号的日益丰富,以及定位技术的不断发展,本文的研究内容显然不能满足未来的用户需求。当有新类型的无线信号加入到定位系统中时,可以根据需要继续补充和完善扩展的RTCM SC-104标准和扩展的NMEA 0183语句,使其更好地支持泛在无线信号相关数据的编码和传输。另外,在标准草案提出后,如何作进一步的调整和优化,使其通过官方认证,并且成为学术界和工业界广泛认同和使用的标准,也是一个需要考虑的问题。
参考文献
[1] 陈锐志,陈亮.基于智能手机的室内定位技术的发展现状和挑战[J].测绘学报,2017,46(10):1316-1326.
[2] 朱欣焰,周成虎,呙维,等.全息位置地图概念内涵及其关键技术初探[J].武汉大学学报(信息科学版),2015,40(3):285-295.
[3] 田辉,夏林元,莫志明,等.泛在无线信号辅助的室内外无缝定位方法与关键技术[J].武汉大学学报(信息科学版),2009,34(11):1372-1376.
[4] RTCM special committee No. 104.RTCM standard 10403.1 for differential GNSS services-version 3[R].Arlington:Radio Technical Commission for Maritime Services,2006.
[5] 魏子卿.2000中国大地坐标系及其与WGS84的比较[J].大地测量与地球动力学,2008, 28(5):1-5.
[6] 杨汀.网络RTK定位精度影响因子与GNSS数据网络传输研究[D].北京:中国矿业大学,2010.
[7] 刘科,聂桂根,范叹奇,等.基于Ntrip协议的差分数据实时传输平台及定位研究[J].测绘信息与工程,2009,34(1):7-9.
[8] 李成钢.网络GPS/VRS系统高精度差分改正信息生成与发布研究[D].成都:西南交通大学,2007.
[9] National Marine Electronics Association.NMEA 0183 standard for interfacing marine electronic devices version 3.01[R].Maryland:National Marine Electronics Association,2002.
[10] 刘赋山,郭承军,贾振东.一种新的NMEA0183协议解析方法实现[J].全球定位系统,2017,42(1):70-73.
[11] Yuan Y,Pei L,Xu C,et al.Efficient WiFi fingerprint training using semi-supervised learning[C]// Ubiquitous Positioning Indoor Navigation and Location Based Service (UPINLBS).IEEE,2014:148-155.
[12] 裴凌,刘东辉,钱久超.室内定位技术与应用综述[J].导航定位与授时,2017,4(3):1-10.