首页 / 终端定位方法及终端

终端定位方法及终端有效专利 发明

技术领域

[0001] 本发明涉及通信领域,尤其涉及一种终端定位方法及终端。

相关背景技术

[0002] 目前的终端上一般都设置有卫星定位功能,但当终端处于无法获取到定位卫星的信息的应用场景时,其并不能使用卫星定位功能进行定位。例如,参见图1所示,在图1所示场景中,终端UE0处于室内,终端UE1…UEi处于室外。处于室外的终端UE1……UEi可以获取到卫星信号能对自身进行准确的定位,但处于室内的终端UE0由于建筑物的阻挡导致在室内无法获取到定位卫星的信息,就会导致定位失败。

具体实施方式

[0028] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 实施例一:
[0030] 本实施例中称需要对自身进行定位的终端为第一终端,称第一终端进行定位的各终端为第二终端。本实施例中的第一终端和第二终端可以是相同类型的终端,也可以是不同类型的终端。例如都为手机、pad等移动终端。本实施例中的第一终端还可以同时具有卫星定位功能和/或通过基站进行定位的功能。本实施例中的第一终端可以优先使用卫星定位功能和/或基站定位功能,在卫星定位失败和/或基站定位功能失败之后再使用本发明提供的定位方案,也可以直接使用本发明提供的方案。本发明中的第二终端也支持卫星定位功能和/或基站定位功能。本发明提供的第一终端定位的方案,尤其适用于第一终端自身处于获取不到定位卫星信息,又想获取自身精准的定位信息的场景。例如图1所示的应用场景。下面对本发明提供的定位方案进行示例性说明。
[0031] 参见图2所示,本实施例提供的终端定位方法,包括:
[0032] S201:第一终端向第二终端发送定位请求。
[0033] 本实施例中第一终端与第二终端之间可以通过D2D(Device to Device,终端到终端)通信实现信息的传输,具体可以通过各种无线通信方式实现通信,且其可以采用广播或单播的方式发送定位请求。例如二者之间的通信方式包括但不限于RTP(Real-time Transport Protocol,实时传输协议)协议、蓝牙、红外、NFC(Near Field Communication,近距离无线通信技术)、WIFI(WIreless-FIdelity)中的任意一种。下面通过RTP协议进行示例说明。当然应当理解的是,本实施例中的第一终端和第二终端之间也可以采用通过D2D通信外的其他通信方式。
[0034] 通过RTP协议发送定位请求时,第一终端具体可以通过在发送的下行序列 中定义一个发送位置请求信息的帧,该帧第二终端接收到之后可以识别出为定位请求帧,且该帧中还可以携带发送时间T1。假设第一终端为图1所示的终端UE0,终端UE0可以通过广播的方式向室外的各第二终端发送定位请求。
[0035] S202:第一终端接收第二终端反馈的定位请求响应。
[0036] 各第二终端接收到定位终端发送的定位请求之后,即可使用自身的定位功能获取自身当前的位置信息,并随定位请求响应反馈给第一终端。本实施例中的第二终端可以采用卫星定位、基站定位或其他任意能获取到自身位置信息的定位方式。当对定位精准度要求比较高时,可以要求第二终端采用卫星定位的方式进行定位,反馈的位置信息包含经度和纬度。
[0037] S203:第一终端基于第二终端的位置信息确定终端当前的位置信息。
[0038] 第一终端接收到各第二终端反馈的位置信息之后,即可采用对应的定位算法计算得到自身的位置信息。应当理解的是,本实施例中,采用的定位算法不同,对于要去获取到的位置信息的个数也可以灵活变化。且本实施例中可以采用任意能基于其他终端的位置信息计算得到自身位置信息的定位算法。例如包括但不限于Trilateration三边测量定位算法。
[0039] 本实施例中,位置信息还包括第二终端与第一终端之间的相对距离,相对距离等于定位请求或为定位请求响应在第一终端和第二终端之间的传输时间与传输速率的乘积。具体计算方式如下。
[0040] 第一终端向第二终端发送的定位请求中包含发送时间T1,第二终端接收到该定位请求之后,可以记录接收时间T2,(T2-T1)为定位请求传输时间;根据T1和T2以及第一终端发送该定位请求时采用的通信方式的传输速率C,就可以计算得到第一终端和第二终端之间的相对距离d:
[0041] 具体计算公式为:d=(T2-T1)*C。
[0042] 应当理解的是,本实施例中的相对距离d也可以由第一终端进行计算。例如第一终端可以记录自己发送定位请求的时间T1,第二终端可以在反馈的定位请求响应中包含接收到该定位请求的时间T2,第一终端即可采用上述公式计算得到相对距离d。又例如,第二终端可以在反馈的定位请求响应中增加发送该响应的时间T3,第一终端记录接收到定位请求响应的时间T4,(T4-T3)为定位请求响应传输时间,然后根据以下公式也可以计算得到相对距离d:
[0043] 具体计算公式为:d=(T4-T3)*C。
[0044] 本实施例中,第二终端反馈的位置信息中包含经度和纬度。当第二终端采用的不是卫星定位,而是其他定位方式时,可以将获取到的具体定位信息转换成经度和纬度。本实施例中,第一终端基于所述第二终端的位置信息计算自身当前的位置信息时,选用的位置信息个数可以根据当前采用的具体定位算法以及具体应用场景进行示例说明。下面分别以几种定位算法进行示例说明。
[0045] 采用三边测量定位算法的示例如下。
[0046] 第一终端从接收到的多个定位请求响应中选择至少三个定位请求响应中的位置信息作为目标位置信息,结合选择的至少三个定位请求响应中的经度、纬度、以及相对距离计算自身当前的位置信息。下面以选择三个定位请求响应为示例进行说明。
[0047] 当第一终端判断收到的定位请求响应不足三个,或收到的有效的位置信息不足三个时,可以重新发起定位请求,然后再重复上述过程。但重新发起N次定位请求都未接收到三个有效的位置信息时,表明当前周围可以获取到有效位置信息的第二终端数量不够,可以提示用户移动一定距离后重试或直接提示用户定位失败或提示采用其他定位功能进行定位。其中N取大于等于1的值,且其具体取值可以根据具体应用场景灵活设定。
[0048] 当第一终端接收到的有效的位置信息超过三个时,可以按照一定的选择原则(例如选择三个位置差异最大的位置信息等)从接收到的位置信息中选择三个,或者按照一定的选择原则从接收到的位置信息中选择多组的三个位置信息,然后计算得到第一终端的多组位置信息,取多组位置信息的平均值作为第一终端最终的位置信息。下面以计算一组三个位置信息的过程为示例进行说明。
[0049] 第一终端结合选择的三个目标位置信息和对应的三个相对距离计算自身当前的位置信息包括:
[0050] 第一终端分别以所述三个位置信息的经度和纬度确定的坐标为圆心,并分别以对应的三个相对距离为半径确定三个圆;
[0051] 第一终端计算三个圆之交点的坐标为作为自身当前的位置信息。
[0052] 参见图3所示,第一终端分别以三个位置信息包含的经度和纬度确定的坐标(x1,y1)、(x2,y2)、(x3,y3),并分别以对应的三个相对距离d1、d2、d3为半 径确定三个圆,三个圆的交点的坐标(x0,y0)为第一终端自身的位置信息。
[0053] 具体的,本实施例可以采用Trilateration(三边测量)定位算法进行示例说明。如上分析:
[0054] 已知三点位置(x1,y1),(x2,y2),(x3,y3)。
[0055] 已知未知点(x0,y0)到三点距离d1,d2,d3。
[0056] 以d1,d2,d3为半径作三个圆,根据毕达哥拉斯定理,得出交点即未知点的位置计算公式:
[0057] (x1-x0)2+(y1-y0)2=d12……………………(1)
[0058] (x2-x0)2+(y2-y0)2=d22……………………(2)
[0059] (x3-x0)2+(y3-y0)2=d32……………………(3)
[0060] 本实施例中,选择Trilateration三边测量定位算法时,所选择的三个目标位置信息不在同一直线上。也即横坐标x或纵坐标y不能相同。
[0061] 本实施例中的上述计算过程适用于直角坐标系,而经纬度属于球面坐标系,因此可以先将经度和纬度转换到直角坐标系中的坐标,然后代入公式进行计算。计算得到的位置信息也是直接坐标系中的坐标,如果需要经纬度位置信息,只需要进行对应的逆转换就可以得到对应的经纬度。
[0062] 结合方向角的定位算法示例如下。
[0063] 示例一:
[0064] 第一终端还通过接收天线确定反馈定位请求响应的各第二终端的方向角;
[0065] 然后第一终端选择至少一个第二终端反馈的定位请求响应,结合选择的定位请求响应中的经度、纬度和相对距离,以及反馈该定位请求响应的第二终端的方向角,确定自身当前的位置信息。下面以选择两个第二终端反馈的定位请求响应进行示例说明,但应当理解的是本实施例中此时选择的第二终端反馈的定位请求响应的个数可以灵活改变。
[0066] 第一终端选择两个第二终端反馈的定位请求响应时,以选择的定位请求响应中的经度和纬度确定的坐标为圆心,并分别以对应的两个相对距离为半径确定两个圆,然后计算所述两圆之交点的坐标,并从得到的各交点中,选择出所述两个圆心相对该交点的第二方向角与所述两个第二终端相对于自身的第二方 向角一致的交点,作为自身当前的位置信息。下面结合附图对上述算法进行示例说明。
[0067] 对于第一终端通过接收天线确定反馈定位请求响应的各第二终端的第二方向角,下面以第一终端为4*4天线的MIMO终端为例进行示例说明。参见图4所示,
[0068] 第一终端UE_0有4根接收天线,如图所示分别为ANT1、ANT2、ANT3、ANT4、θ1、θ2、θ3、θ4、分别为ANT1与ANT2天线的夹角,ANT2与ANT3天线的夹角,ANT3与ANT4天线的夹角,ANT4与ANT1天线的夹角,这些夹角可事先保存的UE_0的中。假设UE_0收到UE_i发送到的信息,并且可当得知这四根接收天线接收到的信息强度。当ANT2接收到的信号强时,则可判断UE_i处于第二象限,再比较相邻两个接收天线的信号,若ATNT1>ANT3则,UE_i在UE_0θ1的方向范围内;若ATNT1
[0069] 参见图5所示,下面假设两个反馈定位请求响应的第二终端UE_1和UE_2相对UE_0的第二方向角分别为西北方向和东北方向。UE_1和UE_2与UE_0的相对距离分别为d1、d2,UE_1和UE_2的经纬度信息分别表征为(x1,y1),(x2,y2),则可以得到以下公式:
[0070] (x1-x0)2+(y1-y0)2=d12……………………(4)
[0071] (x2-x0)2+(y2-y0)2=d22……………………(5)
[0072] 联合上述两个公式(4)和(5)得到述二元二次方程组,进行计算就可以得到两个圆的所有交点。假设得到图5中的交点A和交点B。其中交点A相对(x1,y1)为西南方向,相对(x2,y2)为东南方向,与上述通过接收天线确定的第二方向角不一致,被剔除。交点B相对(x1,y1)为西北方向,相对(x2,y2)为东北方向,与上述通过接收天线确定的第二方向角一致,因此确定交点B为第一终端当前的位置。
[0073] 示例二:
[0074] 方向角的确定也可以由第二终端来确定,具体的,第二终端可以根据自身 的接收天线按照上述方式确定出第一终端相对自身的第一方向角,并将第一方向角携带在位置信息中。然后第一终端从接收到的定位请求响应中选择至少一个第二终端反馈的定位请求响应,结合选择的定位请求响应中的经度、纬度、相对距离以及第一方向角,确定自身当前的位置信息,类似的,确定过程如下:
[0075] 第一终端以选择的两个定位请求响应中的经度、纬度确定的坐标为圆心,并分别以对应的两个相对距离为半径确定两个圆;
[0076] 第一终端计算所述两圆之交点的坐标,并从得到的各交点中,选择出两个圆心相对该交点的方向角与两个定位请求响应中的第一方向角匹配的交点,作为自身当前的位置信息。此处与第一方向角匹配是指该交点分别相对两个圆心的方向角与第一方向角相同。
[0077] 如上所述,本实施例中的第一终端向第二终端发送定位请求之前,还可以先通过自身的其他定位功能先进行定位,例如启动卫星定位功能对自身位置进行定位,在卫星定位失败时向第二终端发送定位请求。第一终端在启动卫星定位功能后可以开始计时,如果在设置时间内未获取到定位卫星信息,则判定卫星定位失败,启动本实施例提供的定位方式。
[0078] 本实施例中,第一终端向第二终端发送定位请求时,还包括生成该定位请求的方式。应当理解的是,根据不同的应用场景,生成定位请求的方式也可以不同。例如,本实施例可以在传输控制协议/互联网络协议数据包之包头的可选字段中设置定位请求信息生成定位请求,然后按照一定的规律发送给第二终端,发送时可以按照一定的时间间隔或其他发送原则进行发送。
[0079] 第一终端基于第二终端的位置信息确定自身当前的位置信息后,还包括停止向第二终端广播定位请求。
[0080] 下面以第一终端应用于LTE(Long Term Evolution,长期演进),采用LTE FDD(Frequency Division Duplexing,频分双工)类型的无线帧为示例进行说明。该无线帧的帧长为10ms,每帧含10个子帧、20个时隙,本实施例可以设置在第6个时隙上发送定位请求,在一定时间段内(例如每隔10ms)第一终端通过时隙#6向周围第二终端(也即辅助终端)发送定位请求信息,第二终端可在第8个时隙返回定位请求响应。
[0081] 本实施例中定位请求的数据格式可以采取传输控制协议/互联网络协议数据包之包头结构,如表1所示:
[0082] 表1
[0083]
[0084] 表1中:
[0085] (1)版本号占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。
[0086] (2)首部长度占4位,可表示的最大十进制数值是15。
[0087] (3)服务类型占8位,用来获得更好的服务。这个字段在旧标准中叫做服务类型,但实际上一直没有被使用过。1998年IETF把这个字段改名为区分服务DS(Differentiated Services)。只有在使用区分服务时,这个字段才起作用。
[0088] (4)总长度占16位,总长度指首部和数据之和的长度,单位为字节。总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
[0089] (5)标识符(identification)占16位。IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
[0090] (6)标志(flag)占3位,但目前只有2位有意义。
[0091] ●标志字段中的最低位记为MF(More Fragment)。MF=1即表示后面“还有分片”的数据报。MF=0表示这已是若干数据报片中的最后一个。
[0092] ●标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。只有当DF=0时才允许分片。
[0093] (7)片偏移占13位。片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
[0094] (8)生存时间占8位,生存时间字段常用的的英文缩写是TTL(Time To Live), 表明是数据报在网络中的寿命。
[0095] (9)协议占8位,协议字段指出此数据报携带的数据是使用何种协议,以便使目的主机的IP层知道应将数据部分上交给哪个处理过程。
[0096] (10)首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。
[0097] (11)源IP地址占32位。
[0098] (12)目的IP地址占32位。
[0099] (13)可选字段占32位,本实施例可以添加定位请求信息。
[0100] 本实施例通过第一终端和可以获取自身位置信息的第二终端之间通过D2D进行定位信息的交互获取第二终端的位置信息,并基于定位算法计算的得到第一终端的自身的位置信息,尤其适合于第一终端的卫星定位功能不能正常应用的场景。
[0101] 实施例二:
[0102] 本实施例提供了一种终端,该终端作为第一终端,参见图6所示,包括:
[0103] 定位发起模块41,用于向第二终端发送定位请求;
[0104] 本实施例中第一终端与第二终端之间可以通过各种无线通信方式实现通信,第一终端中设置有第一无线通讯收发模块44,其可以采用广播或单播的方式发送定位请求。例如第一无线通讯收发模块44的通信方式包括但不限于RTP(Real-time Transport Protocol,实时传输协议)协议、蓝牙、红外、NFC(Near Field Communication,近距离无线通信技术)、WIFI(WIreless-FIdelity)中的任意一种。
[0105] 通过RTP协议发送定位请求时,第一终端具体可以通过在发送的下行序列中定义一个发送位置请求信息的帧,该帧第二终端接收到之后可以识别出为定位请求帧,且该帧中还可以携带发送时间T1。假设第一终端为图1所示的终端UE0,终端UE0可以通过广播的方式向室外的各第二终端发送定位请求。
[0106] 信息获取模块42,用于接收第二终端反馈的定位请求响应,定位请求响应包含第二终端自身当前的位置信息。
[0107] 参见图7所示,第二终端包括第二无线通讯收发模块54、信息调度模块53、 控制模块52和第二定位模块51。
[0108] 第二无线通讯收发模块54接收到定位请求后,可以根据定位请求中包含的发送时间T1和接收到该定位请求的接收时间T2,以及接收该定位请求时采用的通信方式的传输速率C,计算得到第一终端和第二终端之间的相对距离d:具体计算公式为:d=(T2-T1)*C。然后将该定位请求和相对距离d发给信息调度模块53。
[0109] 信息调度模块53可以根据预先设置好的规则识别出收到的该消息为定位请求,缓存第二无线通讯收发模块54发送的相对距离d,并向控制模块52发送定位信息请求。
[0110] 第二控制模块52收到定位信息请求后,向第二定位模块51发送位置信息请求。
[0111] 第二定位模块51判断自身是否获取到位置信息(可以采用卫星定位、基站定位或其他任意能获取到自身位置信息的定位方式),如是,向第二控制模块52反馈包含位置信息的正确响应,否则返回拒绝或定位失败响应。
[0112] 第二控制模块52在收到包含位置信息的响应后,将位置信息发给所述信息调度模块53;
[0113] 信息调度模块53提取之前缓存的相对距离,并与添加到位置信息中一起生成定位请求响应,通过第二无线通讯收发模块54发送给第一终端。第一终端的第一无线通讯收发模块44收到后反馈给信息获取模块42。
[0114] 计算模块43,用于基于第二终端的位置信息确定终端当前的位置信息。
[0115] 本实施例中,第二终端反馈的位置信息中包含经度和纬度。当第二终端采用的不是卫星定位,而是其他定位方式时,可以将获取到的具体定位信息转换成经度和纬度。本实施例中,第一终端基于所述第二终端的位置信息计算自身当前的位置信息包括:
[0116] 计算模块43从接收到的多个定位请求响应中选择至少三个定位请求响应中的位置信息作为目标位置信息,结合选择的至少三个定位请求响应中的经度、纬度、以及相对距离计算自身当前的位置信息。下面以选择三个定位请求响应为示例进行说明。
[0117] 当第一终端判断收到的定位请求响应不足三个,或收到的有效的位置信息 不足三个时,定位发起模块41可以重新发起定位请求,然后再重复上述过程。但重新发起N次定位请求都未接收到三个有效的位置信息时,表明当前周围可以获取到有效位置信息的第二终端数量不够,可以提示用户移动一定距离后重试或直接提示用户定位失败或提示采用其他定位功能进行定位。其中N取大于等于1的值,且其具体取值可以根据具体应用场景灵活设定。
[0118] 当第一终端接收到的有效的位置信息超过三个时,计算模块43可以按照一定的选择原则(例如选择三个位置差异最大的位置信息等)从接收到的位置信息中选择三个,或者按照一定的选择原则从接收到的位置信息中选择多组的三个位置信息,然后计算得到第一终端的多组位置信息,取多组位置信息的平均值作为第一终端最终的位置信息。下面以计算一组三个位置信息的过程为示例进行说明。
[0119] 计算模块43结合选择的三个目标位置信息和对应的三个相对距离计算自身当前的位置信息包括:
[0120] 计算模块43分别以所述三个位置信息的经度和纬度确定的坐标为圆心,并分别以对应的三个相对距离为半径确定三个圆;
[0121] 计算模块43计算三个圆之交点的坐标为作为自身当前的位置信息。
[0122] 本实施例中,计算模块43选择Trilateration三边测量定位算法时,其所选择的三个目标位置信息不在同一直线上,也即横坐标X或纵坐标Y不能相同。
[0123] 参见图6所示,本实施例中的第一终端还可包括方向角获取模块48,用于通过接收天线确定反馈定位请求响应的各第二终端的方向角。
[0124] 所述计算模块43还可选择至少一个第二终端反馈的定位请求响应,结合选择的定位请求响应中的经度、纬度和相对距离,以及反馈该定位请求响应的第二终端的方向角,确定自身当前的位置信息。下面以选择两个第二终端反馈的定位请求响应进行示例说明,但应当理解的是本实施例中此时选择的第二终端反馈的定位请求响应的个数可以灵活改变。
[0125] 第一终端选择两个第二终端反馈的定位请求响应时,以选择的定位请求响应中的经度和纬度确定的坐标为圆心,并分别以对应的两个相对距离为半径确定两个圆,然后计算所述两圆之交点的坐标,并从得到的各交点中,选择出所述两个圆心相对该交点的方向角与所述两个第二终端相对于自身的方向角一致 的交点,作为第一终端当前的位置信息。
[0126] 如上所述,本实施例中的第一终端向第二终端发送定位请求之前,还可以先通过自身的其他定位功能先进行定位,例如启动卫星定位功能对自身位置进行定位,在卫星定位失败时向第二终端发送定位请求。第一终端在启动卫星定位功能后可以开始计时,如果在设置时间内未获取到定位卫星信息,则判定卫星定位失败,启动本实施例提供的定位方式。例如,参见图8所示,第一终端还可包括第一控制模块45、第一定位模块46以及计时模块47。初始时,第一控制模块45通过第一定位模块46进行定位,计时模块47启动计时,当计时时间值达到预设值时,第一控制模块45都未收到第一定位模块反馈的有效位置信息时,第一控制模块45将封装定位请求数据包,并发给定位发起模块41发送给第二终端。
[0127] 本实施例通过第一终端和可以获取自身位置信息的第二终端之间通过D2D(Device to Device,终端和终端之间的通信)进行定位信息的交互获取第二终端的位置信息,并基于定位算法计算的得到第一终端的自身的位置信息,尤其适合于第一终端的卫星定位功能不能正常应用的场景。显然,本领域的技术人员应该明白,上述本发明实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在计算机存储介质(ROM/RAM、磁碟、光盘)中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。所以,本发明不限制于任何特定的硬件和软件结合。
[0128] 为了更好的理解本发明,下面以图1所示的应用场景为例,第一终端为UE0,UE1、UE2……UEi为第二终端。UE0先启动卫星定位功能进行定位。该过程参见图9所示,包括:
[0129] S701:UE0启动卫星定位功能进行定位,并开始计时。
[0130] S702:判断在预设时间内是否获取到有效位置信息,如是,转至S709,否则,转至S703。
[0131] S703:UE0通过D2D方式向室外的各第二终端UE1、UE2……UEi发送定位请求。
[0132] S704:UE0接收第二终端反馈的定位请求响应。
[0133] S705:判断接收到的定位请求响应是否大于等于3个,如是,转至S708,否则,转至S706。
[0134] S706:计数值N加1。
[0135] S707:判断计数值N是否大于等于预设值,如否,转至S703;否则,转至S709。
[0136] S708:UE0基于接收到的定位请求响应中的位置信息和对应的相对距离,计算自身的位置信息。
[0137] S709:此次定位结束。
[0138] 以上内容是结合具体的实施方式对本发明实施例所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

当前第1页 第1页 第2页 第3页