一种基于WiFiAware的辅助定位方法和系统与流程

文档序号:12658962阅读:250来源:国知局
一种基于WiFiAware的辅助定位方法和系统与流程

本发明涉及智能定位领域,尤其涉及一种基于WiFiAware的辅助定位方法和系统。



背景技术:

随着智能终端技术的发展,其具有的功能不断丰富,给用户的生活带来了很多便利,尤其是导航功能。用户通过开启导航功能就能在陌生的环境中快速找到目标位置,不仅方便快捷,而且准确性高。然而现有智能终端的导航服务中,或是采用网络定位,或是采用卫星定位,这就要求用户在使用相应功能的时候,必须保证网络的顺畅,卫星定位功能可用。但在实际应用的过程中,常常会因为网络信号差、智能终端电量不足等原因导致网络信号不佳,卫星定位功能不可用,此时,用户就无法使用导航功能,无法获得导航服务。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于上述现有技术的不足,本发明的目的在于提供一种基于WiFiAware的辅助定位方法和系统,旨在解决现有的智能终端在网络信号不佳,卫星定位功能不可用时,无法提供准确的定位服务和导航服务的问题。

本发明的技术方案如下:

一种基于WiFiAware的辅助定位方法,其中,包括:

步骤A、当前智能终端接收用户指令开启WiFiAware,并与周围开启WiFiAware的其它智能终端建立连接;

步骤B、获取其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离;

步骤C、通过其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息。

所述的基于WiFiAware的辅助定位方法,其中,所述步骤A具体包括:

步骤A1、当前智能终端接收用户指令开启WiFiAware;

步骤A2、当前智能终端探测周围是否存在开启WiFiAware的其他智能终端;

步骤A3、当探测到周围存在开启WiFiAware的其他智能终端时,则与周围开启WiFiAware的其它智能终端建立网络连接。

所述的基于WiFiAware的辅助定位方法,其中,所述步骤B具体包括:

步骤B1、当前智能终端通过WiFiAware的服务接口向支持辅助定位服务的其它智能终端发出获取其位置的请求;

步骤B2、当前智能终端获取其它智能终端对所述位置请求的反馈信息,并对所述反馈信息进行解析;

步骤B3、通过解析得到的内容确定其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离并存储。

所述的基于WiFiAware的辅助定位方法,其中,所述步骤B2中,所述反馈信息的类型为卫星位置信息、网络位置信息和无信息数据中的一种。

所述的基于WiFiAware的辅助定位方法,其中,所述步骤C中,当计算出的相对距离小于预设的相对距离阈值时,则判定当前智能终端与其它智能终端在同一位置。

所述的基于WiFiAware的辅助定位方法,其中,所述步骤C具体包括:

步骤C1、将已知量和未知量代入开放的地球表面距离计算公式,得到关于当前智能终端经纬度信息的方程,其中,其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离为已知量,当前智能终端的经纬度信息为未知量;

步骤C2、采用牛顿迭代法计算出所述方程的最优解。

一种基于WiFiAware的辅助定位系统,其中,包括:

连接模块,用于当前智能终端接收用户指令开启WiFiAware,并与周围开启WiFiAware的其它智能终端建立连接;

获取解析模块,用于获取其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离;

计算模块,用于通过其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息。

所述的基于WiFiAware的辅助定位系统,其中,所述连接模块包括:

指令接收单元,用于当前智能终端接收用户指令开启WiFiAware;

探测单元,用于当前智能终端探测周围是否存在开启WiFiAware的其他智能终端;

连接单元,用于当探测到周围存在开启WiFiAware的其他智能终端时,则与周围开启WiFiAware的其它智能终端建立网络连接。

所述的基于WiFiAware的辅助定位系统,其中,所述获取解析模块包括:

位置请求单元,用于当前智能终端通过WiFiAware的服务接口向支持辅助定位服务的其它智能终端发出获取其位置的请求;

信息反馈单元,用于当前智能终端获取其它智能终端对所述位置请求的反馈信息,并对所述反馈信息进行解析;

计算存储单元,用于通过解析得到的内容确定其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离并存储。

所述的基于WiFiAware的辅助定位系统,其中,所述计算模块包括:

方程建立单元,用于将已知量和未知量代入开放的地球表面距离计算公式,得到关于当前智能终端经纬度信息的方程,其中,其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离为已知量,当前智能终端的经纬度信息为未知量;

求解单元,用于采用牛顿迭代法计算出所述方程的最优解。

有益效果:本发明通过WiFiAware获取的其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息,能够使当前智能终端在没有网络信号或卫星信号的条件下,通过WiFiAware获取较为准确的当前智能终端的定位信息,方便进一步获得有效的定位信息和导航信息。

附图说明

图1为本发明基于WiFiAware的辅助定位方法较佳实施例的流程图。

图2为图1所述方法中步骤S1的具体流程图。

图3为图1所述方法中步骤S2的具体流程图。

图4为图1所述方法中步骤S3的具体流程图。

图5为本发明基于WiFiAware的辅助定位系统较佳实施例的结构框图。

图6为图5所述方法中步骤100的具体结构框图。

图7为图5所述方法中步骤200的具体结构框图。

图8为图5所述方法中步骤300的具体结构框图。

具体实施方式

本发明提供一种基于WiFiAware的辅助定位方法和系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1为本发明基于WiFiAware的辅助定位方法较佳实施例的流程图,如图所示,其包括步骤:

S1、当前智能终端接收用户指令开启WiFiAware,并与周围开启WiFiAware的其它智能终端建立连接;

S2、获取其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离;

S3、通过其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息。

在本实施例中,智能终端在自身网络信号不佳或卫星定位功能不可用时,通过WiFiAware获周围取它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离,进而确定当前智能终端准确的定位,进而获得准确的导航,有利于智能终端在自身无法准确定位时,也能通过其它智能终端的协助,获得准确的定位。

作为优选的实施例,图2为图1所述方法中步骤S1的具体流程图,如图所示,其包括步骤:

S11、当前智能终端接收用户指令开启WiFiAware;

S12、当前智能终端探测周围是否存在开启WiFiAware的其他智能终端;

S13、当探测到周围存在开启WiFiAware的其他智能终端时,则与周围开启WiFiAware的其它智能终端建立网络连接。

在步骤S11中,用户预先下载应用软件(即实现本发明的方法的应用软件,当然还可将本发明的功能应用在其他软件中使用)至移动终端,当用户或是电量不足,或是网络不佳,无法获取准确定位和导航时,当前智能终端接收用户指令开启WiFiAware;在步骤S12中,智能终端通过WiFiAware底层探测功能对周围开启WiFiAware的其他智能终端进行探测;在步骤S13中,当智能终端探测到周围存在开启WiFiAware的其他智能终端时,则与周围开启WiFiAware的其它智能终端建立网络连接。所述指令可以为触摸指令,也可为用户预设的快捷指令,包括按下某个功能按键,如音量键;在预设的时长内,连续摇动手机两次以上,预设时长可以为3s,5s,10s,优选的,预设时长为5s。所述周围是指,以当前智能终端所在位置为中心,半径为40~60m的圆形范围内,或是边长为70~100m的正方形范围内。所述周围开启WiFiAware的其它智能终端的个数可以是一个也可以是多个。

作为较佳的实施例,图3为图1所述方法中步骤S2的具体流程图,如图所示,其包括步骤:

S21、当前智能终端通过WiFiAware的服务接口向支持辅助定位服务的其它智能终端发出获取其位置的请求;

S22、当前智能终端获取其它智能终端对所述位置请求的反馈信息,并对所述反馈信息进行解析;

S23、通过解析得到的内容确定其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离并存储。

在步骤S21中,当前智能终端通过WiFiAware的服务接口订阅辅助定位服务,监听附近是否有支持所述助定位服务的其它智能终端,如果监听到支持所述辅助定位服务的其它智能终端,则向其发送请求来获取其位置信息。支持所述辅助定位服务的其它智能终端通过广播接口(Publish接口),广播自身的服务内容,所述服务内容中并不包含任何与智能终端用户身份、年龄、性别等有关的私人信息,仅仅是通过所述服务内容表达该智能终端可以提供自身的位置信息,这样能够有效的保护提供位置信息的智能终端用户的隐私安全和信息安全,便于更多的智能终端用户将自身的位置信息进行广播,有利于当前智能终端进行更准确的定位和导航。当然,当前智能终端和其它智能终端都可以进行位置信息的发送和接收。

在步骤S22中,当前智能终端获取其它智能终端对所述位置请求的反馈信息,并对所述反馈信息进行解析;所述反馈信息包括提供反馈信息的其它智能终端的经纬度信息、协议信息和WiFi传输模型等。提供反馈信息的其它智能终端首先获取自身的经纬度信息,获取所述经纬度信息的过程为,所述提供反馈信息的其它智能终端首先读取自身的位置信息,并判断所述位置信息是否为较新的位置信息,当是时,则直接通过WiFiAware将所述位置信息及所诉位置信息的获取方式(卫星信息类型或是网络信息类型)发送给当前智能终端;当否时,则提供反馈信息的其它智能终端首先申请卫星定位来获取自身位置信息,如果获取成功,则首先标记为卫星数据类型,然后将所述位置信息及位置信息的获取方式通过WiFiAware发送给当前智能终端;如果卫星定位无法请求成功,则重新请求网络位置信息,如果获取成功,则首先把位置信息标记为网络信息类型,打包后将所述位置信息及位置信息的获取方式通过WiFiAware发送给当前智能终端。如果网络位置信息和卫星位置信息都无法获取,则直接回复无信息数据给当前智能终端。所述较新的位置信息是指,读取位置信息时刻之前一定时长内提供反馈信息的其它智能终端获取的自身位置信息,所述一定时长可以为12h、24h、48h。

在步骤S23中,当前智能终端通过解析得到的内容确定其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离并存储。此时,所述其它智能终端即为提供反馈信息的其它智能终端。根据其他智能终端反馈的信息中是否存在协议时间,采用不同的方法计算当前智能终端与其它智能终端的相对距离。如果其它智能终端反馈的信息携带了802.11mc协议时间信息,则根据协议的RTT时间来计算当前智能终端与其它智能终端之间的距离。其中,RTT时间 = 当前时间 - 数据包中时间戳选项的回显时间,所述时间戳回显时间是某个数据包发出去的时间,已知数据包的接收时间(当前时间)和发送时间(回显时间),就可以得到RTT时间的一个测量值。通过RTT时间计算距离的方式需要移动终端的芯片厂商来实现,并通过应用调用相应接口获得。如果其它智能终端反馈的信息未携带上述RTT时间信息,则通过读取其它智能终端的Rssi信号强度值的方式,根据所述Rssi信号强度值计算出当前智能终端与它智能终端之间的相对距离。该过程主要采用WiFi传输的公开模型公式d=10^((ABS(RSSI)-A)/(10*n))进行距离计算,其中A和n参数需要根据采样计算得知。智能终端的应用会在手机等智能终端中存储不同平台芯片的经验值,如高通、博通、MTK等芯片,同时读取终端本身的芯片类型,不同平台芯片取不同的参数值。如果无法在应用存储中找出和其它智能终端设备类型匹配的参数值,则使用默认经验参数值。在计算对应的参数值时,会根据实际情况多次取值,该取值次数可以用户自行设置(如5、6、10等),也可以为写默认值(如设置为5次),首先去除该模型得到的最高值和最低值,然后再进行平均求出对应值。针对其他移动终端的情况采用不同点的算法获取距离信息的针对性更强,数据可信度跟高,避免了采用单一方法计算带来的误差。此外,采用多次测量,去掉最大值和最小值,并对其余数据取平均值的方法能够有效避免计算误差,提高计算结果的可靠性。

此外,按照其它智能终端获取位置信息的不同方式,将所述位置信息进行分类存储,并将其按照卫星位置信息、网络位置信息和无信息数据进行标记;而出当前智能终端与其它智能终端的相对距离只需对结果进行储存,不需标记获取该距离的具体方法。

作为较佳的实施例,图4为图1所述方法中步骤S3的具体流程图,具体包括步骤:

S31、将已知量和未知量代入开放的地球表面距离计算公式,得到关于当前智能终端经纬度信息的方程,其中,其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离为已知量,当前智能终端的经纬度信息为未知量;

S32、采用牛顿迭代法计算出所述方程的最优解。

在步骤S31中,首先对当前智能终端与其它智能终端的相对距离的大小进行判断,此时,所述其它智能终端即为提供反馈信息的其它智能终端。。考虑到其它智能终端在当前智能终端周围,其与当前智能终端的距离不远,当当前智能终端与其它智能终端的相对距离小于预设的相对距离阈值时,则判定当前智能终端与其它智能终端在同一位置。所述相对距离阈值可以是智能终端默认值,如10m、20 m、40 m等,也可以是用户根据自身所在位置的情况设定的,如在周围环境复杂难找的情况下,则将所述相对距离阈值设置为较小值,如5 m、8 m等;如在较为周围环境较为开阔的情况下,则将所述相对距离阈值设置为较大值,如25 m、50 m等。这样能够方便用户以最快的方式确定自己的位置。

而当当前智能终端与其它智能终端的相对距离不小于预设的相对距离阈值时,则判定当前智能终端与其它智能终端不在同一位置,则需通过进一步计算确定当前智能终端的位置。此时,首先确定反馈位置信息的其它智能终端的个数。当反馈位置信息的其它智能终端的个数为1个时,则只能以其反馈的经纬度信息,作为当前智能终端位置的粗略估计。当反馈位置信息的智能终端的个数为多个时,则需对反馈位置信息的智能终端获取经纬度信息的方式进行判断。如果当前智能终端获取的经纬度信息中,只有一个卫星位置信息,则需要使用取得的网络位置信息作为已知参数来进行计算。如果当前智能终端获取的经纬度信息中,包含1个卫星位置信息,和1个以上网络位置信息时,则在1个以上网络位置信息中选择1个网络位置信息,并剔除掉其它的网络位置信息,采用获取的1个卫星位置信息和1个网络位置信息为已知参数来进行计算。如果当前智能终端获取的经纬度信息中,包含2个以上的卫星位置信息,则剔除掉已获取的网络位置信息,并采用获取的所有卫星位置信息为已知参数来进行计算。

在计算过程中,已知量为其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离,未知量为当前智能终端的经纬度信息为未知量,将已知量和未知量带入开放的地球表面距离计算公式。其中,当前智能终端的经纬度坐标为(x, y), 其它智能终端的经纬度信息的经纬度坐标为(LonB,LatB),d为计算出的当前智能终端与其它智能终端的相对距离,R为地球半径,C为弧度,且

将其它智能终端的经纬度信息及当前智能终端与其它智能终端的相对距离带入上述两个方程,可列出以下方程组,

在步骤S32中,采用牛顿迭代法计算出所述方程的最优解。在求解的过程中,首先取出一个方程组,给定一组初始值x0,y0使方程组可以为0。设定自定义迭代次数N,自定义误差为σ然后根据牛顿迭代法公式列出方程组的雅克比矩阵,求出雅克比矩阵的逆矩阵,最后利用牛顿迭代法计算出求出最优解。所述迭代次数可以是智能终端自身默认的N=15,也可以是用户设置的N=13,自定义误差以是智能终端自身默认的σ=10-4,也可以是用户设置的σ=10-6。最后,获得较为合适的经纬度的逼近值,足以帮助当前智能终端进行准确定位和导航。

基于上述方法,本发明还提供一种基于WiFiAware的辅助定位系统,如图5所示,其包括:

连接模块100,用于当前智能终端接收用户指令开启WiFiAware,并与周围开启WiFiAware的其它智能终端建立连接;

获取解析模块200,用于获取其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离;

计算模块300,用于通过其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息。

进一步的,如图6所示,所述连接模块100包括:

指令接收单元110,用于当前智能终端接收用户指令开启WiFiAware;

探测单元120,用于当前智能终端探测周围是否存在开启WiFiAware的其他智能终端;

连接单元130,用于当探测到周围存在开启WiFiAware的其他智能终端时,则与周围开启WiFiAware的其它智能终端建立网络连接。

进一步的,如图7所示,所述获取解析模块200包括:

位置请求单元210,用于当前智能终端通过WiFiAware的服务接口向支持辅助定位服务的其它智能终端发出获取其位置的请求;

信息反馈单元220,用于当前智能终端获取其它智能终端对所述位置请求的反馈信息,并对所述反馈信息进行解析;

计算存储单元230,用于通过解析得到的内容确定其它智能终端的经纬度信息,并计算出当前智能终端与其它智能终端的相对距离并存储。

更进一步的,如图8所示,所述计算模块300包括:

方程建立单元310,用于将已知量和未知量代入开放的地球表面距离计算公式,得到关于当前智能终端经纬度信息的方程,其中,其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离为已知量,当前智能终端的经纬度信息为未知量;

求解单元320,用于采用牛顿迭代法计算出所述方程的最优解。

综上所述,本发明通过WiFiAware获取的其它智能终端的经纬度信息和当前智能终端与其它智能终端的相对距离计算出当前智能终端的经纬度信息,能够使当前智能终端在没有网络信号或卫星信号的条件下,通过WiFiAware获取较为准确的当前智能终端的定位信息,方便进一步获得有效的导航信息。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1