基于toa定位的方法、装置、计算机设备及存储介质
技术领域
1.本发明涉及室内定位技术领域,尤其涉及一种基于toa定位的方法、装置、计算机设备及存储介质。
背景技术:2.目前室内定位中常用的基于toa定位的定位方法包括非线性最小二乘估计算法和极大似然估计,但两者的计算速度都慢,难以满足实时性定位要求。室内定位还常用声学定位方法,但声学定位同样存在声波易反射,多径效应nlos严重,定位不精准的问题。总之,目前常用的室内定位方法速度较慢响应频率较低,或受多径效应影响较为严重,存在无法同时满足对响应频率和定位精度都要求较高的终端应用的问题。
技术实现要素:3.本发明实施例提供一种基于toa定位的方法、装置、计算机设备及存储介质,以解决同时满足对响应频率和定位精度都要求较高的终端应用的问题。
4.一种基于toa定位的方法,包括:
5.在室内角落布置至少三个已知坐标的信号基站,通过同步装置控制每一信号基站发送同步信号;
6.通过待定位设备接收所有同步信号,采用toa算法获取第i个信号基站和每一信号基站发送的相同的同步信号到达待定位设备的时间差转换成的距离di,其中,i=1,2,
…
,n,n是信号基站的个数;
7.基于当前测试信号基站对应的所有di,形成每一信号基站和当前测试信号基站对应的圆方程组;
8.联立每一信号基站对应的圆方程组,形成联立圆方程组;
9.基于di,采用梯度下降算法迭代联立圆方程组,获取迭代结果,迭代结果包括当前迭代步长和基于当前迭代步长对应的联立圆方程组的函数当前解;
10.若函数当前解小于迭代退出阈值,则停止迭代联立圆方程组,将函数当前解作为待定位设备的定位位置。
11.一种基于toa定位的装置,包括:
12.发送同步信号模块,用于在室内角落布置至少三个已知坐标的信号基站,通过同步装置控制每一信号基站发送同步信号;
13.获取转换距离模块,用于通过待定位设备接收所有同步信号,采用toa算法获取第i个信号基站和每一信号基站发送的相同的同步信号到达待定位设备的时间差转换成的距离di,其中,i=1,2,
…
,n,n是信号基站的个数;
14.形成圆方程组模块,用于基于当前测试信号基站对应的所有di,形成每一信号基站和当前测试信号基站对应的圆方程组;
15.形成联立方程组模块,用于联立每一信号基站对应的圆方程组,形成联立圆方程
组;
16.获取迭代结果模块,用于基于di,采用梯度下降算法迭代联立圆方程组,获取迭代结果,迭代结果包括当前迭代步长和基于当前迭代步长对应的联立圆方程组的函数当前解;
17.作为定位位置模块,用于若函数当前解小于迭代退出阈值,则停止迭代联立圆方程组,将函数当前解作为待定位设备的定位位置。
18.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于toa定位的方法。
19.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于toa定位的方法。
20.上述基于toa定位的方法、装置、计算机设备及存储介质,通过在室内设置至少三个已知坐标的信号基站,并通过采用toa定位法结合采用梯度下降算法可对toa定位法对应的传统圆方程组进行迭代,并可快速在有限迭代次数内获取联立圆方程组对应的函数当前解作为待定位设备的定位位置,在无需限制定位区域数量的前提下,实现亚米级定位,可有效同时满足运算性能有限的设备的室内定位的精确性和实效性,降低定位算法中的计算量,同时提升可容纳定位区域的数量和范围。
附图说明
21.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
22.图1是本发明一实施例中基于toa的定位方法的应用环境示意图;
23.图2是本发明一实施例中基于toa的定位方法的流程图;
24.图3是本发明一实施例中基于toa的定位方法的室内设备布置示意图;
25.图4是本发明一实施例中基于toa的定位方法的另一流程图;
26.图5是本发明一实施例中基于toa的定位方法的另一流程图;
27.图6是本发明一实施例中基于toa的定位方法的另一流程图;
28.图7是本发明一实施例中基于toa的定位方法的另一流程图;
29.图8是本发明一实施例中基于toa的定位方法的整体流程示意图;
30.图9是本发明一实施例中基于toa的定位装置的示意图;
31.图10是本发明一实施例中计算机设备的示意图。
具体实施方式
32.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
33.本发明实施例提供的基于toa定位的方法,可应用在如图1的应用环境中,该基于
toa定位的方法应用在基于toa定位的系统中,该基于toa定位的系统包括客户端和服务器,其中,客户端通过网络与服务器进行通信。客户端又称为用户端,是指与服务器相对应,为客户端提供本地服务的程序。该客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等计算机设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
34.定位方法是基于已知位置的参考节点的距离估计和节点间的测量,节点协作增强了位置估计,当传统的定位技术不能产生准确的估计时,这是最有利的。线性最小二乘法是一种简单的位置估计方法。理想情况下,未知节点应该位于至少三个圆的交汇处,中心在锚节点上,半径等于到每个锚节点的距离。然而,由于不太可能得到一个相交点,因此使用最小二乘优化来最小化残差平方和。
35.toa方法计算信号从待定位设备到参考节点所需要的时间,待定位设备在一个以参考节点为中心的圆周上,通过toa测量的到达时间可以计算出圆半径d。因此,为了检测待定位设备的确切位置,至少需要3个参考节点。待定位设备的估计位置仅在三个圆的相交区域(如果存在的话)内。若定位使用了n个参考节点,待定位设备的估计位置应当在参考节点对应的n个圆的相交区域内。然后,通过加权最小二乘法等任何滤波技术都可以很容易地得到实际的估计位置。
36.在收到一组基站信号后,需要在下次收到同一组基站信号前计算出当前位置。两次时间差即为定位周期,其倒数为定位频率。在两次定位周期之间要完成以下计算。toa定位法,主要包括三个步骤:
37.1.n个基站发出n个信号,测出接收到的各信号到达时间。
38.2.将该时间转为距离,并代入圆方程,形成联立圆方程组。
39.3.利用有效算法求解该联立方程组的解,即完成定位本技术正是对toa定位法中的第三步进行了提升,但因为测量误差,该联立方程组本身无精确解,只能求出最可靠的近似估计。本方法定义的可靠即残差最小,具体实施方法如下:
40.在一实施例中,如图2所示,提供一种基于toa的定位方法,以该方法应用在图1中的服务器为例进行说明,具体包括如下步骤:
41.s10.在室内角落布置至少三个已知坐标的信号基站,通过同步装置控制每一信号基站发送同步信号。
42.其中,信号基站为发送与待定位设备可接收信号相同信号的信号发送基站,可发送音频信号、电磁波信号(也即本实施例中的同步信号)等。于本实施例中,可采用发送声音信号的声学基站等,可以理解地,与声学基站对应的待定位设备为可接受声信号的终端设备。
43.同步装置为激发每一信号基站发送同步信号的装置。
44.具体地,本实施例中可将信号基站、同步装置以及待定位设备如图3所示布置在室内:房间有四个已知坐标的声学基站(beacon)布置在四个角落,通过同步装置控制基站发出声信号,用待定位设备接收声信号,计算各信号到达时间差(di),然后采用本实施例提供的方法可获取待定位设备的坐标。
45.s20.通过待定位设备接收所有同步信号,采用toa算法获取第i个信号基站和每一信号基站发送的相同的同步信号到达待定位设备的时间差转换成的距离di,其中,i=1,
2,
…
,n,n是信号基站的个数。
46.s30.基于当前测试信号基站对应的所有di,形成每一信号基站和当前测试信号基站对应的圆方程组。
47.s40.联立每一信号基站对应的圆方程组,形成联立圆方程组。
48.其中,当前测试信号基站就是当前的参考信号基站。比如,以1号信号基站作为当前测试信号基站,获取其它每一信号基站相对1号信号基站的di。
49.采用待定位设备接收任一同步信号ta,并同时获得该信号准确的发射时间t0,即可计算待定位设备到和基站之间的距离d=v*(t
a-t0),其中v表示声速。对每个基站采用相同操作,即可获取待定位设备到所有基站距离测量值di。
50.具体地,以参考基站为1号信号基站(后续为了表达简便,将信号基站简称为基站)为例的圆方程为:
[0051][0052]
其中,(xi,yi)表示第i个基站坐标,εi表示第i个和第1信号基站到达时间差转换成的距离的距离误差。基于该圆方程,可获取第1信号基站对应的圆方程组。
[0053]
以任一基站作为参考基站可获取上述圆方程组,组合所有信号基站对应的圆方程组即得到联立圆方程组。
[0054]
s50.基于di,采用梯度下降算法迭代联立圆方程组,获取迭代结果,迭代结果包括当前迭代步长和基于当前迭代步长对应的联立圆方程组的函数当前解。
[0055]
其中,梯度下降算法是将任意坐标(x,y)定义定位残差的平方和为
[0056]
并采用当前迭代步长对函数f(x,y)进行迭代的算法。
[0057]
当前迭代步长是根据初始迭代步长进行迭代变化得到的。初始迭代步长是根据实际应用进行初始设定的参数。可以理解地,当前迭代步长可为固定参数,也可为变化参数。
[0058]
s60.若函数当前解小于迭代退出阈值,则停止迭代联立圆方程组,将函数当前解作为待定位设备的定位位置。
[0059]
其中,迭代退出阈值是根据实际应用进行初始设定的参数。本实施例中,可将迭代退出阈值设置为ε,则使函数f(x,y)达到小于ε的(x,y),即为待定位设备的定位位置。
[0060]
本实施例提供的基于toa的定位方法,通过在室内设置至少三个已知坐标的信号基站,并通过采用toa定位法结合采用梯度下降算法可对toa定位法对应的传统圆方程组进行迭代,并可快速在有限迭代次数内获取联立圆方程组对应的函数当前解作为待定位设备的定位位置,在无需限制定位区域数量的前提下,实现亚米级定位,可有效同时满足运算性能有限的设备的室内定位的精确性和实效性,降低定位算法中的计算量,同时提升可容纳定位区域的数量和范围。
[0061]
在一具体实施例中,如图4所示,在步骤s30中,即在基于当前测试信号基站对应的所有di,形成每一信号基站和当前测试信号基站对应的圆方程组中,具体包括如下步骤:
[0062]
s31.基于每一所述di,生成每一信号基站和当前测试信号基站对应的圆方程为:
[0063]
其中,(xi,yi)表示第i个信号基站的坐标,εi是距离
误差。
[0064]
s32.集合当前测试信号基站对应的所有所述圆方程,形成当前测试信号基站对应的圆方程组为:
[0065][0066]
具体地,形成联立圆方程组的过程已在前序部分进行说明,此处不再赘述。
[0067]
在一具体实施例中,如图5所示,在步骤s50中,即在采用梯度下降算法迭代联立圆方程组,获取迭代结果中,具体包括如下步骤:
[0068]
s51.获取第i个信号基站和第1信号基站发送的相同的同步信号到达所述待定位设备的时间差转换成的距离di,其中,i=1,2,
…
,n,n是所述信号基站的个数。
[0069]
s52.定义室内任一位置的坐标(x,y)的定位残差的平方和为:
[0070]
其中,(xi,yi)表示第i个信号基站的坐标。
[0071]
s53.采用梯度下降算法对函数f(x,y)进行迭代,直至f(x,y)对应的函数当前解小于迭代退出阈值,则将函数当前解作为待定位设备的定位位置。
[0072]
具体地,梯度下降算法是将任意坐标(x,y)定义定位残差的平方和为
[0073]
并采用当前迭代步长对函数f(x,y)进行迭代的算法。
[0074]
当前迭代步长是根据初始迭代步长进行迭代变化得到的。初始迭代步长是根据实际应用进行初始设定的参数。可以理解地,当前迭代步长可为固定参数,也可为变化参数。
[0075]
在一具体实施例中,如图6所示,在步骤s53中,即在采用梯度下降算法对函数f(x,y)进行迭代,直至f(x,y)对应的函数当前解小于迭代退出阈值,则将函数当前解作为待定位设备的定位位置中,具体包括如下步骤:
[0076]
s531.选定任一信号基站作为第j个参考基站,并基于应用需求设定初始迭代步长和迭代退出阈值。
[0077]
s532.设定将ri带入函数f(x,y),得到f(x,y)的梯度公式为:
[0078][0079]
其中,i=1,2,
…
,n。n是信号基站的个数。
[0080]
具体地,步骤s331至s332是实现梯度计算的步骤。
[0081]
s533.设定室内任一搜索起始点作为(x0,y0),从k=0开始,迭代执行如下公式:
[0082]
其中,α为初始迭代步长。
[0083]
s534.若执行第k次迭代时获取的迭代结果中的函数当前解小于迭代退出阈值,则将函数当前解作为待定位设备的定位位置。
[0084]
具体地,步骤s333至是步骤s334实现梯度下降的步骤。
[0085]
在一具体实施例中,如图7所示,在步骤s50之后,即在在基于di,采用梯度下降算法迭代联立圆方程组,获取迭代结果之后,还具体包括如下步骤:
[0086]
s.501.若第k+1次对应的方程当前解不小于迭代退出阈值,则取消执行本次迭代。
[0087]
s.502.对第k+1次对应的方程当前解和对第k次对应的方程历史解进行对比,并根据对比结果调整当前迭代步长。
[0088]
优选地,若f
k+1
(x,y)》fk(x,y),则执行s5021,即将当前迭代步长减小;若f
k+1
(x,y)《pfk(x,y),其中随机数p》=1,则执行s5022,即将当前迭代步长增大。
[0089]
具体地,每次执行梯度下降步骤时都需要评估下降效果以改善计算性能,具体为:每新执行一次下降(第k+1次),如果f
k+1
(x,y)》fk(x,y),则取消此次下降,且将α减小;如果f
k+1
(x,y)《pfk(x,y),其中p》=1,则将α增大,如图8所示。
[0090]
p控制迭代过程中步长α的改变,即当此次迭代计算结果f(x,y)相对上一次下降不多时,增大α以达到更高的下降速度。因此增大p会使迭代过程中α变化变慢,则迭代后期会因步长过小而导致需要迭代更多次数才能找到结果;反之如果减小p,α变化会变会更加剧烈,前期迭代速度加快,但后期会因难以达到迭代退出条件f(x,y)《ε,而导致迭代次数增加。因此选择合理的参数p可以大幅降低该算法迭代次数,从而降低计算量。
[0091]
本实施例提供的基于toa的定位方法,通过在室内设置至少三个已知坐标的信号基站,并通过采用toa定位法结合采用梯度下降算法可对toa定位法对应的传统圆方程组进行迭代,并可快速在有限迭代次数内获取联立圆方程组对应的函数当前解作为待定位设备的定位位置,在无需限制定位区域数量的前提下,实现亚米级定位,可有效同时满足运算性能有限的设备的室内定位的精确性和实效性,降低定位算法中的计算量,同时提升可容纳定位区域的数量和范围。
[0092]
进一步地,传统的室内定位算法在终端设备的小程序上无法做到1hz亚米级定位,本实施例提供的方法可以不牺牲精度而提升定位频率至1hz以上,定位实时性提高。当定位区域很多时,每个区域都需要独立进行toa方法计算,在指定定位频率下,toa计算速度会限制定位区域数量,本实施例提供的方法可以提升容纳定位区域的数量。
[0093]
传统的极大似然法网格搜索分辨率严重受限于网格和区域大小,而本实施例提供的方法计算量很小,基本可实现20次以内的迭代的情况下分辨率就达到厘米量级,且定位精度高于极大似然法网格搜索法。
[0094]
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0095]
在一实施例中,提供一种基于toa的定位装置,该基于toa的定位装置与上述实施例中基于toa的定位方法一一对应。如图9所示,该基于toa的定位装置包括发送同步信号模块10、获取转换距离模块20、形成圆方程组模块30、形成联立方程组模块40、获取迭代结果
模块50以及作为定位位置模块60。各功能模块详细说明如下:
[0096]
发送同步信号模块10,用于在室内角落布置至少三个已知坐标的信号基站,通过同步装置控制每一信号基站发送同步信号。
[0097]
获取转换距离模块20,用于通过待定位设备接收所有同步信号,采用toa算法获取第i个信号基站和每一信号基站发送的相同的同步信号到达待定位设备的时间差转换成的距离di,其中,i=1,2,
…
,n,n是信号基站的个数。
[0098]
形成圆方程组模块30,用于基于当前测试信号基站对应的所有di,形成每一信号基站和当前测试信号基站对应的圆方程组。
[0099]
形成联立方程组模块40,用于联立每一信号基站对应的圆方程组,形成联立圆方程组。
[0100]
获取迭代结果模块50,用于基于di,采用梯度下降算法迭代联立圆方程组,获取迭代结果,迭代结果包括当前迭代步长和基于当前迭代步长对应的联立圆方程组的函数当前解。
[0101]
作为定位位置模块60,用于若函数当前解小于迭代退出阈值,则停止迭代联立圆方程组,将函数当前解作为待定位设备的定位位置。
[0102]
优选地,形成圆方程组模块包括:
[0103]
生成圆方程子模块,用于基于每一所述di,生成每一信号基站和当前测试信号基站对应的圆方程为:
[0104]
其中,(xi,yi)表示第i个信号基站的坐标,εi是距离误差。
[0105]
形成圆方程组子模块,用于集合当前测试信号基站对应的所有所述圆方程,形成当前测试信号基站对应的圆方程组为:
[0106][0107]
优选地,获取迭代结果模块30包括:
[0108]
获取距离子模块,用于获取第i个信号基站和第1信号基站发送的相同的同步信号到达所述待定位设备的时间差转换成的距离di,其中,i=1,2,
…
,n,n是所述信号基站的个数。
[0109]
定义平方和子模块,用于定义室内任一位置的坐标(x,y)的定位残差的平方和为:
[0110]
其中,(xi,yi)表示第i个信号基站的坐标。
[0111]
采用梯度下降算法子模块,用于采用梯度下降算法对函数f(x,y)进行迭代,直至f(x,y)对应的函数当前解小于迭代退出阈值,则将函数当前解作为待定位设备的定位位置。
[0112]
优选地,采用梯度下降算法子模块包括:
[0113]
设定迭代步长单元,用于选定任一信号基站作为第j个参考基站,并基于应用需求
设定初始迭代步长和迭代退出阈值。
[0114]
得到梯度公式单元,用于设定将ri带入函数f(x,y),得到f(x,y)的梯度公式为:
[0115][0116]
其中,i=1,2,
…
,n。j=1,2,
…
,n,n是信号基站的个数。
[0117]
设定起始点单元,用于设定室内任一搜索起始点作为(x0,y0),从k=0开始,迭代执行如下公式:
[0118]
其中,α为初始迭代步长。
[0119]
作为定位位置单元,用于若执行第k次迭代时获取的迭代结果中的函数当前解小于迭代退出阈值,则将函数当前解作为待定位设备的定位位置。
[0120]
优选地,该基于toa的定位装置还包括:
[0121]
取消执行本次迭代模块,用于若第k+1次对应的方程当前解不小于迭代退出阈值,则取消执行本次迭代。
[0122]
调整迭代步长模块,用于对第k+1次对应的方程当前解和对第k次对应的方程历史解进行对比,并根据对比结果调整当前迭代步长。
[0123]
优选地,调整迭代步长模块包括:
[0124]
步长减小子模块,用于若f
k+1
(x,y)》fk(x,y),则将当前迭代步长减小。
[0125]
优选地,调整迭代步长模块包括:
[0126]
步长增大子模块,用于若f
k+1
(x,y)《pfk(x,y),其中p》=1,则将当前迭代步长增大。
[0127]
关于基于toa定位的装置的具体限定可以参见上文中对于基于toa定位的方法的限定,在此不再赘述。上述基于toa定位的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0128]
在一实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于基于toa定位的方法相关的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于toa定位的方法。
[0129]
在一实施例中,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例基于toa定位的
方法,例如图2所示s10至步骤s40。或者,处理器执行计算机程序时实现上述实施例中基于toa定位的装置的各模块/单元的功能,例如图9所示模块10至模块40的功能。为避免重复,此处不再赘述。
[0130]
在一实施例中,提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例基于toa定位的方法,例如图2所示s10至步骤s40。或者,该计算机程序被处理器执行时实现上述装置实施例中基于toa定位的装置中各模块/单元的功能,例如图9所示模块10至模块40的功能。为避免重复,此处不再赘述。
[0131]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0132]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0133]
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。