澎湃Logo
下载客户端

登录

  • +1

学术交流 | Android 智能手机实时精密单点定位软件实现及精度分析

2021-08-23 15:03
来源:澎湃新闻·澎湃号·政务
字号

以下文章来源于经纬石旁话遥测 ,作者郭 斐 吴维旺等

经纬石旁话遥测

武汉大学学报信息科学版编辑部

↑ 点击上方「中国测绘学会」

可快速关注我们

摘要:

随着智能手机的普及和卫星导航定位技术发展,导航定位已成为智能手机必不可少的功能之一。

对华为(Huawei)和小米(Xiaomi)双频智能手机Huawei Mate 20/30、Xiaomi 8观测数据进行质量分析,提出了一套适用于手机精密单点定位(precise point positioning, PPP)的质量控制方案,开发了一款基于安卓(Android)平台的实时PPP应用程序。

通过实验对比分析了单频与双频、实时与事后手机PPP的定位性能。结果表明,Xiaomi 8和Huawei Mate 20/30手机单频PPP平面方向的定位精度均可达到0.5~0.6 m,高程方向的定位精度为1.0~2.0 m。

相比于单频PPP,双频PPP收敛后,其平面与高程方向的定位精度均有提高,且高程方向提升显著。实时与事后PPP在平面方向的定位精度相当,但在高程方向上,事后PPP较实时PPP的定位精度提升20%~40%。

随着智能手机的普及和全球导航卫星系统(global navigation satellite system,GNSS)的发展,导航定位已经成为智能手机必不可少的功能,超过一半的手机应用程序需要访问位置信息。

2016年起,谷歌公司在安卓(Android)N操作系统上开放了访问GNSS原始观测值的应用程序接口(application programming interface,API),这为开发者从智能手机中实时获取GNSS伪距、载波相位、多普勒等观测值提供了可能,从而进行高精度导航定位与授时。

考虑到低成本和低功耗,大众智能手机普遍集成的是单频GNSS芯片。2018年5月,全球首款双频智能手机Xiaomi 8发布,其搭载了支持L1/L5波段的双频GNSS定位芯片,并取消了占空比(duty cycle)机制,引起了学界广泛关注。随后,众多手机厂商也争相发布了具备双频定位功能的手机,如华为公司发布的Huawei Mate系列手机(Mate 20/30)、联想公司发布的Lenovo Z6手机等。双频GNSS芯片的搭载为智能手机进行精密单点定位(precise point positioning,PPP)创造了条件,也增加了手机在复杂环境下的适应性。

国内外众多学者对智能手机的数据质量和定位性能进行了评估。文献[8]指出,手机中存在的duty cycle机制导致相位观测数据不连续。

文献[9]使用Huawei P10手机的相位变化量评估手机的相位观测值噪声,在duty cycle关闭的情况下,手机的测速精度可以达到厘米级。

文献[10]对Samsung 8、Huawei P10、Nexus 9等智能手机的信噪比、伪距残差进行了分析,建立了相应的信噪比定权模型,同时分析了duty cycle机制下相位跟踪状态和设备运动状态的相关性,提出了一种考虑duty cycle的连续平滑定位算法。

文献[11]对Xiaomi 8手机在郊区开阔和高楼林立场景下的信噪比和多路径进行了分析,与测地型接收机相比,手机信噪比值平均降低5~12 dB; 在多路径效应方面,欧盟伽利略(Galileo)系统较GPS卫星的多路径更小,且L5频率的多路径误差明显小于L1频率。

在定位性能评估方面,文献[12]使用Xiaomi 8手机进行双频PPP和实时动态定位(real time kinematic,RTK)测试,其精度仅为米级。

文献[13]在静态开阔的环境下使用Xiaomi 8手机进行静态PPP,东、北、天方向定位误差的均方根(root mean square,RMS)分别为0.50 m、0.47 m、0.56 m,静态模拟动态PPP 3个方向定位误差的RMS分别为2.20 m、2.32 m、2.03 m。

文献[14]评估了Xiaomi 8手机分别在静态和动态场景下双频PPP的定位性能,结果表明,静态PPP收敛后的位置误差在东、北、天3个方向上的RMS分别为4.1 cm、21.8 cm和11.0 cm,但收敛到亚米级的时间长达3 h; 对于动态PPP,由于卫星数较少,定位误差达到几米甚至几十米。

现有研究主要聚集于单一的某款智能手机,且大多数采用后处理算法,得到的定位性能差异较大。因此,本文拟对常见的双频智能手机Huawei Mate 20/30、Xiaomi 8,对比分析其数据质量,提出一套适用于手机PPP的质量控制方案,开发一款基于Android平台的实时PPP软件,并评估其定位性能。

智能手机实时PPP数学模型

1

函数模型

通过调用Android API的GNSS Clock类、GNSS Measurement类,可以获取智能手机的原始GNSS观测值,包括伪距、载波相位和多普勒观测值。

目前,大部分智能手机的GNSS接收芯片仅提供GPS的L1单频点信号,少数智能手机如Huawei Mate 20/30、Xiaomi 8/9支持GPS、Galileo和日本准天顶卫星系统(quasi-zenith satellite system,QZSS)的L1/E1、L5/E5双频定位。对于单频PPP,常用的定位模型有半和模型和非差非组合模型。

半和模型通过构造伪距和相位的组合观测值,虽然可以消除电离层延迟影响,但组合后相位观测值的噪声被放大。特别是对于智能手机,GNSS伪距观测值的噪声达到数米甚至数十米,严重影响半和模型的精度。为此,对于手机单频PPP,本文采用非差非组合模型,其观测方程为:

对于L1/E1、L5/E5a双频PPP,采用双频无电离层组合模型,其观测方程为:

在误差处理方面,通过国际GNSS服务组织(International GNSS Service,IGS)实时播发的状态空间表达(state space representation,SSR)信息修正广播星历轨道和钟差。

对于单频PPP中的电离层延迟误差,采用预报的全球电离层格网模型进行改正,其精度约为0.3 m。对流层延迟干分量采用萨斯塔莫宁(Saastamoinen)模型改正,湿分量附加参数进行估计。接收机端的硬件延迟偏差可被接收机钟差吸收,而卫星端的硬件延迟偏差可被模糊度参数吸收,故在PPP浮点解时可不顾及硬件延迟偏差。

2

随机模型

在GNSS数据处理中,常用的随机模型有卫星高度角模型、信噪比模型、方差分量估计模型。基于方差分量估计的随机模型,其实时性较差、无法满足实时PPP的要求。

信噪比是反映信号接收质量的重要指标之一,其定义为接收信号的功率与接收机噪声的功率谱密度的比值。文献[3]证实了智能手机的伪距单差残差与卫星高度角弱相关,但与信噪比强相关。因此,使用信噪比模型更能反映手机GNSS观测值的特征[3, 7]。信噪比随机模型可表示为:

3

质量控制

由于智能手机通常采用体积小、低成本、低功耗、高灵敏度的线性极化天线,而GNSS信号衰减、非视距传播和多路径干扰更易产生粗差和周跳,严重影响手机定位的精度。

本文采用数据探测与抗差估计结合的质量控制方案,从卫星高度角、信噪比、验前与验后残差等方面剔除伪距观测值中的粗差[15-17]。

利用Android API中提供的载波相位跟踪状态指示参数(accumulated delta range state,ADRS)和相位历元差分法(time difference carrier phase,TDCP)探测相位周跳,其流程如图 1所示。具体步骤如下:

图1 联合ADRS和TDCP的周跳探测流程

1) 采用ADRS和多普勒较差法(相位导出的多普勒与实际多普勒值之差)对当前历元的相位观测值进行周跳初步探测。当ADRS被标识为4时,表示相位跟踪失锁; 当多普勒较差小于给定阈值0.75 m时,认为未发生周跳,否则将其标记为周跳。

2) 选取未被标定为周跳的n个相位观测值,构造历元差分模型:

λ⋅Δφ=Δρ−c⋅Δdts+c⋅Δdtr+ΔT+ΔI+εΔL (5)

式中,Δ为历元间单差算子。当历元间隔较短时,ΔI和ΔT可近似为零,采用最小二乘方法估计载体位置变化量及钟差变化量。

3) 计算各卫星相位观测值的验后残差及单位权中误差。若最大验后残差或单位权中误差超过设定阈值,则认为最大验后残差的观测值发生周跳; 将其剔除后重新进行最小二乘解算,直到所有的验后残差都小于设定阈值。

4) 保留当前历元无周跳的相位观测值,进入下一历元的周跳探测,重复步骤2)和步骤3),直至结束。

需要说明的是,最小二乘抵抗多粗差的能力较弱,当周跳观测值超过全部观测值的1/3时,相位历元差分法探测周跳的成功率较低。因此,对于n个有效的相位历元差分方程,当连续n/3次剔除最大残差时,则认为周跳探测失败。

基于Android的实时PPP架构

1

开发环境搭建

本文所用实验数据集图像大小为 416×416 像素。改进 Yolo ⁃v3 模型的架构、训练及测试都 是在 TensorFlow 的深度学习框架 Keras 上进行 的 ,在 带 有 Win10 系 统 NVIDIA GeForce GTX 1080 with Max⁃Q Design 8 GB 的 GPU 上实现。

Android是一款主要面向移动终端的开源操作系统,其底层基于Linux操作系统,支持丰富的硬件驱动开发,涵盖多元化的硬件配置和无线通信功能,广泛用于各类交互平台。

Android系统的经典架构分为4层,从下往上分别为Linux内核层、C/C++本地系统库和Android运行时环境、应用程序框架层、应用程序层。在底层的Linux内核层中,Android以虚拟机(Android run time,ART)的形式最终调用底层的Linux内核以执行命令。当设备具有特定的硬件设备支持时,其内核层还涵盖有硬件抽象层。

当上层请求访问设备硬件层时,系统会为该硬件加载相应的库模块。第2层为系统库和Android运行时,系统库主要负责提供连接应用框架层和内核层的方法库,Android运行时则包括核心库和ART,应用在运行时都拥有自己的ART实例,ART的主要功能包括预编译和及时编译、优化的资源回收、调试支持等。第3层为应用程序框架层,其提供了各种基本的API,例如Activity、Service、Notification等组件,方便开发人员实现一些基本功能,封装成接口给上层调用。

最上层为Android应用程序层,其主要包括Android原生应用以及第三方应用,为开发的应用所在层级。

Android系统的用户接口(user interface,UI)层是通过Java语言进行封装的,而底层则是基于C/C++语言。软件开发设计可以充分结合Java语言库丰富、开发效率高以及C/C++语言开源算法丰富、运行效率高的优点,交互操作部分使用Java语言编写,嵌入的PPP算法则使用C/C++语言编写。

通过Java本地开发接口,使Java和C/C++编写的程序可以相互调用。因此,开发前需要配置Android Java和C的开发环境,具体如下:

1) Java开发工具集配置

Java开发工具包(Java development kit,JDK)是Java开发的核心,由Java运行环境、Java工具集、Java基础类库构成,为应用开发者提供了基本的开发环境和开发工具。在Windows系统上进行开发,需要配置JDK的系统环境变量,其配置如表 2所示。在完成JDK配置后,继续安装Android集成开发环境(integrated development environment,IDE),软件开发使用的IDE为Android Studio 3.3版本。

表 2 Windows平台中JDK的系统环境变量配置

2) Android开发工具集配置

Android软件开发工具包(software development kit,SDK)是开发Android应用必备的工具集,其为开发者提供了在对应平台上的开发组件。Android SDK包括Android ART和Android开发工具插件(Android development tools,ADT)以及一些开发调试、应用程序包(Android application package,APK)打包、ART管理的工具。

Android Studio的设置选项包含有Android SDK的下载页面,根据应用开发所需要适配的API等级选择配置对应的SDK平台,例如本文采用的是Android 9(API 28)的SDK版本。

由于软件涉及到C/C++与Java程序的交互,还需要进一步配置Android本地开发工具集(native development kit,NDK),NDK包含快速开发C/C++动态链接库和将其合并打包到APK的工具。NDK可以通过Android Studio自带的Android SDK Manager进行自动下载和配置。

2

实时PPP架构与工作原理

开发的智能手机实时PPP软件整体架构与工作原理如图 2所示,主要分为3个部分——用户交互UI界面、外部数据的传输、软件后台服务。交互UI包括用户配置、结果显示、数据记录、地图显示,其主要负责定位的参数配置以及数据的可视化。

外部数据流的传输部分包括NTRIP(networked transport of RTCM via internet protocol)传输的RTCM(radio technical commission for maritime services)格式的广播星历和SSR改正数据以及调用Android应用框架API获得的GNSS观测数据,对于单频PPP定位,可事先下载预报的全球电离层格网模型。

图2 智能手机实时PPP软件的架构及工作原理

图 2为智能手机实时PPP软件的架构及工作原理,红色虚线框表示的是嵌入PPP算法的后台服务部分,其主要负责对RTCM格式的数据流进行解码,对获得的观测数据加工生成原始观测值,并将数据处理核心解算的位置反馈给UI界面,调用百度地图API实现定位结果的地图可视化。

手机定位实验与结果分析

1

实验数据描述

本文采用3款双频智能手机Xiaomi 8、Huawei Mate 20、Huawei Mate 30进行实验分析。表 3给出了这3款手机所搭载的GNSS芯片型号类型及相关配置。其中,Xiaomi 8搭载的是博通公司生产的BCM47755芯片组,而Huawei Mate 20/30搭载的是厂商自主研发的海思芯片组。

3款手机均能跟踪全GNSS星座,并且能在GPS、Galileo、QZSS星座上提供L1/L5频率的双频观测值。此外,3款手机的内置系统已经取消了duty cycle机制,允许输出连续跟踪的相位观测值。

表3 智能手机内置的GNSS芯片型号及配置

采用静态模拟动态的方式验证算法的正确性,两次静态实验的GNSS数据采集场景如图 3所示。实验A采集于湖北省武汉市某实验大楼楼顶,实验手机为Xiaomi 8和Huawei Mate 20,测量时手机正面朝上固定于观测台上。在手机旁架设有NovAtel-704-WB天线,其连接的是Septentrio PolaRx 5S测地型接收机,用于计算手机的坐标参考真值。两台手机至NovAtel天线的距离已事先量取,并进行了相应的距离改正。

此外,在手机附近的观测墩上设有观测站,其采用的是Trimble Zephyr 3天线,接收机类型为Septentrio PolaRx 5,将其作为基站,基站的位置精确已知。实验B采集于海南省海口市某居民区楼顶,实验手机为Xiaomi 8和Huawei Mate 30,两台手机正面朝上放置。两次实验的观测时长均为4 h,采样率为1 Hz。

图3 两次静态实验的手机布局及观测环境

2

卫星可视性分析

图 4和图 5分别给出了两次实验中不同手机在L1和L5波段所观测到的卫星总数。实验A中Xiaomi 8和Huawei Mate 20对L1波段的平均可见星数分别为33颗和27颗,明显少于同时段测地型接收机Septentrio观测的卫星数。

对于L5波段的卫星观测情况,由于播发L5信号的卫星本身数量较少,因此Huawei Mate 20和Xiaomi 8在L5波段所跟踪的平均卫星数分别仅为14颗和8颗。实验A和实验B均表明,在L1波段,Huawei Mate系列手机比Xiaomi 8的平均观测卫星数多5~8颗,而在L5波段的平均卫星数多4~5颗。

图 4 实验A中手机跟踪的L1波段和L5波段的可视卫星数

图 5 实验B中手机跟踪的L1波段和L5波段的可视卫星数

3

单频与双频PPP结果

图 6~8给出了3组双频和单频PPP算例,包括可用卫星数(Sat)、定位精度因子(position dilution of precision,PDOP)和定位误差时序,对应的定位精度统计如表 4所示。从图 6~8中不难发现,单频PPP可用的卫星数明显多于双频PPP,且对应的PDOP值也相对更小; PPP定位误差整体上呈现随时间累积而减小并趋于平稳的趋势

图6 实验A中Xiaomi 8双频和单频PPP的定位误差、可用卫星数及PDOP

图7 实验B中Xiaomi 8双频和单频PPP的定位误差、可用卫星数及PDOP

图 8 实验B中Huawei Mate 30双频和单频PPP的定位误差、可用卫星数及PDOP

表4 双频和单频PPP精度统计/m

由于同时跟踪L1、L5双频信号的卫星数较少,因此双频PPP的收敛速度要慢于单频PPP。以实验A中的Xiaomi 8手机为例,其单频和双频PPP平面方向收敛到1 m以内的时间分别为1 700 s和3 000 s左右。而在定位精度方面,双频PPP的结果则略优于单频PPP,收敛后双频和单频PPP在东、北、天方向上的定位误差RMS分别为0.36 m、0.28 m、0.16 m和0.46 m、0.56 m、2.04 m。

对于重复性分析,实验B中Xiaomi 8双频PPP收敛后,其东、北、天3个方向的标准差(standard deviation,STD)在0.2 m左右,单频和双频PPP的坐标重复性相当,收敛时间均在1 500 s左右。

对于Huawei Mate 30,尽管其观测到的卫星数要明显多于Xiaomi 8,但其用于解算的可用卫星数相当,主要原因是Huawei Mate 30在质量控制中剔除了较多发生粗差和周跳的卫星。因此,Huawei Mate 30单频和双频PPP的重复性精度比较差,其收敛的时间也比较长。

4

实时与事后PPP结果

为了满足时效性要求,实时PPP一般采用预报的轨道与钟差改正数以及预报的电离层模型或产品。后处理PPP(事后PPP)则可以采用最终的精密星历和精密钟差以及实测电离层模型,以提高PPP定位精度。

本节以单频PPP为例,对比分析了实时与事后PPP的精度。图 9给出了Xiaomi 8和Huawei Mate 20实时和事后PPP的定位结果,相应的定位误差RMS统计结果列于表 5。

图9 Xiaomi 8和Huawei Mate 20实时和事后单频PPP的定位误差、可用卫星数及PDOP

表5 实时和事后单频PPP精度统计(RMS)/m

从图 9中可以看出,由实时PPP和事后PPP获得的定位结果在平面方向上基本一致,即使用实时或事后精密轨道、钟差及电离层产品对平面方向上的定位精度影响较小,其差值仅在0.1 m左右; 但在高程方向上,两者的坐标差值达到0.3~0.7 m,这主要是因为采用的预报电离层格网模型相对事后的精度较差,而电离层延迟对定位的影响主要反映在天顶方向上。

结 语

随着智能手机的普及和全球导航卫星系统的发展,导航定位已成为智能手机不可或缺的功能之一,大众对智能手机的高精度定位需求也越来越高。从2016年起,开发者可通过谷歌Android应用程序接口获得GNSS原始观测数据。Android 9.0及以上版本提供了关闭占空比的选项,这为智能手机的精密单点定位创造了有利条件。

本文基于Huawei Mate 20/30和Xiaomi 8三款双频智能手机的实测GNSS观测数据,建立了单、双频PPP函数模型和随机模型,提出了一种适用于智能手机的PPP质量控制方案。在此基础上,开发了一款实时PPP应用软件。该软件实现了输入数据源接收和转换、实时定位、数据记录、结果可视化等功能,具备实时和事后处理与分析能力。

设计实验对比分析了单频与双频、实时与事后PPP的定位性能。结果表明,Xiaomi 8和Huawei Mate 20/30手机单频PPP的定位精度在平面和高程方向上分别约为0.5~0.6 m和1.0~2.0 m; 相较于单频PPP,双频PPP精度在高程方向上虽有显著改善,但受限于可用的双频卫星数较少,收敛时间明显更长。

相比于实时PPP,后处理PPP的定位精度在高程方向改善幅度达到20%~40%。智能手机普遍使用低成本的线性极化天线,在城市复杂环境下更容易受到粗差、周跳和多路径影响,联合GNSS、MEMS等多传感器提升手机定位性能是未来的研究重点。

END

引用格式:郭斐, 吴维旺, 张小红, 刘万科. Android智能手机实时精密单点定位软件实现及精度分析[J]. 武汉大学学报 · 信息科学版, 2021, 46(7): 1053-1062. doi: 10.13203/j.whugis20200527

作者简介:郭斐,博士,教授,主要从事 GNSS 精密定位技术及其应用研究。fguo@sgg.whu.edu.cn

原标题:《学术交流 | Android 智能手机实时精密单点定位软件实现及精度分析》

阅读原文

    本文为澎湃号作者或机构在澎湃新闻上传并发布,仅代表该作者或机构观点,不代表澎湃新闻的观点或立场,澎湃新闻仅提供信息发布平台。申请澎湃号请用电脑访问http://renzheng.thepaper.cn。

    +1
    收藏
    我要举报

            扫码下载澎湃新闻客户端

            沪ICP备14003370号

            沪公网安备31010602000299号

            互联网新闻信息服务许可证:31120170006

            增值电信业务经营许可证:沪B2-2017116

            © 2014-2024 上海东方报业有限公司

            反馈