定位方法、装置和计算机可读存储介质与流程

文档序号:16202922发布日期:2018-12-08 06:47阅读:153来源:国知局
定位方法、装置和计算机可读存储介质与流程

本发明涉及定位技术领域,特别是涉及一种定位方法、装置和计算机可读存储介质。

背景技术

室内定位技术的重要性在我们的生活中的方方面面都能体现,为人们的生活带来了巨大的改变,也带动了很多应用和服务的发展。目前,室内定位技术的更新需求也越来越大。

现有技术在进行室内定位时,一般是通过多个已知锚节点对未知节点进行坐标定位,根据未知节点与多个已知锚节点之间的估计距离,估算得到未知节点的坐标,对未知节点进行定位。

然而上述现有室内定位技术,对未知节点的定位存在较大的误差,定位精确度较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够准确地对未知节点进行定位的定位方法、装置和计算机可读存储介质。

一种定位方法,包括以下步骤:

计算未知节点的估计坐标;

在所述估计坐标的邻域范围内生成多个候选坐标;

计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述定位方法,在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

在一个实施例中,所述计算未知节点的估计坐标包括:

估算未知节点到多个锚节点的距离;

获取以各个所述锚节点为圆心,未知节点到所述锚节点的距离为半径生成的圆的外接正方形;

计算各个锚节点对应的所述外接正方形的相交区域;

计算所述相交区域的中心点坐标作为未知节点的估计坐标。

上述实施例的技术方案,通过计算用于未知节点定位的多个锚节点的以未知节点到该锚节点的距离为半径的圆的外接正方形的相交区域,取该相交区域的中心点为未知节点的估计坐标,由于圆的外接正方形的坐标易于计算,可以较为简便快速地计算获取相交区域的坐标,以确定估计坐标,提升计算效率。

在一个实施例中,所述候选坐标依照下式生成:

其中,

上式中,为未知节点的估计坐标,为估计坐标的邻域,r为区间[0,1]内均匀分布的随机数。

上述实施例的技术方案,利用区间[0,1]内均匀分布的随机数为系数,在未知节点的邻域范围随机生成多个候选坐标,这些候选坐标在估计坐标邻域范围,可能比估计坐标更接近未知节点的实际坐标,因此可以以这些候选坐标为依据,用于筛选得到最优坐标对未知节点进行定位。

在一个实施例中,所述计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标包括:

a、计算各个候选坐标的误差值;

b、根据所述误差值,将所述候选坐标划分入多个集合中;

c、标记各个集合中的误差值最小的候选坐标为最小误差坐标,标记各个集合中的误差值最大的候选坐标为最大误差坐标,标记所有集合中的误差值最小的候选坐标为最优坐标;

d、根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的局部搜索;其中,每次局部搜索时,计算该次局部搜索生成的随机坐标的误差值,若该随机坐标的误差值小于标记的最小误差坐标的误差值,则将该随机坐标标记为最小误差坐标,若该随机坐标的误差值大于或等于标记的最小误差坐标的误差值,则将最小误差坐标替换为最优坐标的值,并重复步骤d;

e、将所有集合中误差值最小的最小误差坐标,标记为最优坐标。

上述实施例的技术方案,将生成的候选坐标划分为多个集合,对每个集合分别进行多次局部搜索,在局部搜索时,依据该集合中最小误差坐标和最大误差坐标以设定的规则生成随机坐标,若该随机坐标的误差值小于当前标记的集合内最小误差,则将该随机坐标替换为新标记的最小误差,经过多次反复局部搜索,从而可以快速高效地搜索出各个集合中的最小误差坐标,进而快速得到所有候选坐标中的最优坐标,实现快速而精准地未知节点坐标定位。

在一个实施例中,所述根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的随机局部搜索之后,还包括步骤:

将局部搜索生成的随机坐标作为候选坐标存入对应的集合;

所述将所有集合中误差值最小的最小误差坐标,标记为最优坐标之后,还包括步骤:

f、将各个集合中的候选坐标重新混合;

g、重复所述步骤b~f直至达到设定重复次数或者最优坐标的误差值小于设定的阈值。

上述实施例的技术方案,在前述实施例对每个集合进行局部搜索确定最优坐标的基础上,进一步将所有集合中的坐标重新混合并重新划分集合,多次重复对每个集合进行局部搜索确定最优坐标,直至达到设定重复次数或者最优坐标的误差值小于设定的阈值,以进一步提升搜索得到的最优坐标的准确性。提高未知节点定位精准度。

在一个实施例中,所述误差值依照下式计算:

其中,q为系统中锚节点总数,i代表q个锚节点中的第i个锚节点,(xi,yi)为第i个锚节点的坐标。

在一个实施例中,所述每次局部搜索时,该次局部搜索的随机坐标依照下式生成:

d=r×(xb-xw)

x′=xw+d(dmin≤d≤dmax)

其中,d表示移动的距离,r表示[0,1]之间的随机数,dmin表示坐标所允许改变位置的最小值,dmax表示坐标所允许改变位置的最大值。

在一个实施例中,所述根据所述误差值,将所述候选坐标划分入多个集合中包括:

根据所述误差值,将候选坐标按照误差值大小降序排列;

将各个候选坐标按照所述降序分别分入设定个数的集合中,直到全部候选坐标划分完毕,其中,相邻次序的候选坐标分入不同的集合中。

上述实施例的技术方案,在对未知节点进行集合划分时,将候选坐标依照误差值均匀分散地划分入不同的集合中,使得各个集合分布的未知节点更加平均分散,避免未知节点分布集中导致局部搜索时易于疏漏对最优节点的搜索,提升最优节点的搜索效率。

一种定位装置,包括:

估计坐标计算模块,用于计算未知节点的估计坐标;

候选坐标生成模块,用于在所述估计坐标的邻域范围内生成多个候选坐标;

最优坐标搜索模块,用于计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

未知节点定位模块,用于将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述定位装置,在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

计算未知节点的估计坐标;

在所述估计坐标的邻域范围内生成多个候选坐标;

计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述计算机可读存储介质,其存储的计算机程序,通过实现如上步骤,从而可以在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

附图说明

图1为一个实施例中定位方法的应用环境图;

图2为一个实施例中定位方法的流程示意图;

图3为一个实施例中最优坐标搜索步骤的流程示意图;

图4为一个实施例中定位装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供的定位方法,可以应用于如图1所示的应用环境中。其中,包括布置于监测场景内预定位置的多个锚节点110,以及至少一个未知节点120;各个所述锚节点110和未知节点120向其通信半径r范围内的锚节点110和未知节点120广播信息,并接受通信半径r范围内其他锚节点110和未知节点120的信息;未知节点120根据接收的多个锚节点110的信息,确定该未知节点120的位置坐标,对该未知节点120进行定位。其中,监测场景可以是例如学校、商场、医院等等需要进行三维定位的场景,锚节点110和未知节点120可以但不限于是具有无线收发功能的各种终端设备或专用设备,例如未知节点120可以是手机、平板、穿戴式终端等终端设备。

在一个实施例中,如图2所示,提供了一种定位方法,以该方法应用于图1中的未知节点为例进行说明,包括以下步骤:

s210,计算未知节点的估计坐标;

s220,在所述估计坐标的邻域范围内生成多个候选坐标;

s230,计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

s240,将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述定位方法,在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

在一个实施例中,s210中所述计算未知节点的估计坐标包括:

s211,估算未知节点到多个锚节点的距离;

其中,s211中锚节点的个数可以依据实际情况选取,通常可以为三个以上,未知节点到锚节点之间的具体可以通过多种方式进行估算,例如可以利用rssi测距技术或根据平均每跳距离计算得到未知节点与选取的各个锚节点之间的距离。

s212,获取以各个所述锚节点为圆心,未知节点到所述锚节点的距离为半径生成的圆的外接正方形;

具体地,以锚节点i坐标为圆心,di为半径的圆的外接正方形可以如下式所示:

s′=[(xi-di),(yi-di)]×[(xi+di),(yi+di)]

上式中,s′表示外接正方形对应的区域范围,(xi,yi)为锚节点i的坐标,di为s211中估算得到的未知节点到锚节点i的距离。

s213,计算各个锚节点对应的所述外接正方形的相交区域;

多个锚节点所对应的外接正方形的相交区域如下式所示:

s=[max(xi-di),max(yi-di)]×[min(xi+di),min(yi+di)]

上式中,s表示多个锚节点所对应的外接正方形的相交区域。

s214,计算所述相交区域的中心点坐标作为未知节点的估计坐标。

未知节点的估计坐标可以计算如下:

上式中,为未知节点估计坐标。

上述实施例的技术方案,通过计算用于未知节点定位的多个锚节点的以未知节点到该锚节点的距离为半径的圆的外接正方形的相交区域,取该相交区域的中心点为未知节点的估计坐标,由于圆的外接正方形的坐标易于计算,可以较为简便快速地计算获取相交区域的坐标,以确定估计坐标,提升计算效率。

在一个实施例中,s220所述候选坐标依照下式生成:

其中,

上式中,为未知节点的估计坐标,为估计坐标的邻域,r为区间[0,1]内均匀分布的随机数。

上述实施例的技术方案,利用区间[0,1]内均匀分布的随机数为系数,在未知节点的邻域范围随机生成多个候选坐标,这些候选坐标在估计坐标邻域范围,可能比估计坐标更接近未知节点的实际坐标,因此可以以这些候选坐标为依据,用于筛选得到最优坐标对未知节点进行定位。

在一个实施例中,如图3所示,s230中所述计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标包括:

a、计算各个候选坐标的误差值;

在一个实施例中,所述误差值依照下式计算:

其中,q为系统中锚节点总数,i代表q个锚节点中的第i个锚节点,(xi,yi)为第i个锚节点的坐标。

b、根据所述误差值,将所述候选坐标划分入多个集合中;

c、标记各个集合中的误差值最小的候选坐标为最小误差坐标,标记各个集合中的误差值最大的候选坐标为最大误差坐标,标记所有集合中的误差值最小的候选坐标为最优坐标;

d、根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的局部搜索;其中,每次局部搜索时,计算该次局部搜索生成的随机坐标的误差值,若该随机坐标的误差值小于标记的最小误差坐标的误差值,则将该随机坐标标记为最小误差坐标,若该随机坐标的误差值大于或等于标记的最小误差坐标的误差值,则将最小误差坐标替换为最优坐标的值,并重复步骤d;

在一个实施例中,所述每次局部搜索时,该次局部搜索的随机坐标依照下式生成:

d=r×(xb-xw)

x′=xw+d(dmin≤d≤dmax)

其中,d表示移动的距离,r表示[0,1]之间的随机数,dmin表示坐标所允许改变位置的最小值,dmax表示坐标所允许改变位置的最大值。

e、将所有集合中误差值最小的最小误差坐标,标记为最优坐标。

上述实施例的技术方案,将生成的候选坐标划分为多个集合,对每个集合分别进行多次局部搜索,在局部搜索时,依据该集合中最小误差坐标和最大误差坐标以设定的规则生成随机坐标,若该随机坐标的误差值小于当前标记的集合内最小误差,则将该随机坐标替换为新标记的最小误差,经过多次反复局部搜索,从而可以快速高效地搜索出各个集合中的最小误差坐标,进而快速得到所有候选坐标中的最优坐标,实现快速而精准地未知节点坐标定位。

进一步地,为了提升未知节点定位的准确性,在一个实施例中,如图3所示,s230所述计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标包括:

a、计算各个候选坐标的误差值;

b、根据所述误差值,将所述候选坐标划分入多个集合中;

c、标记各个集合中的误差值最小的候选坐标为最小误差坐标,标记各个集合中的误差值最大的候选坐标为最大误差坐标,标记所有集合中的误差值最小的候选坐标为最优坐标;

d、根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的局部搜索;将局部搜索生成的随机坐标作为候选坐标存入对应的集合;

其中,每次局部搜索时,计算该次局部搜索生成的随机坐标的误差值,若该随机坐标的误差值小于标记的最小误差坐标的误差值,则将该随机坐标标记为最小误差坐标,若该随机坐标的误差值大于或等于标记的最小误差坐标的误差值,则将最小误差坐标替换为最优坐标的值,并重复步骤d;

e、将所有集合中误差值最小的最小误差坐标,标记为最优坐标;

f、将各个集合中的候选坐标重新混合;

g、重复所述步骤b~f直至达到设定重复次数或者最优坐标的误差值小于设定的阈值。

上述实施例的技术方案,在前述实施例对每个集合进行局部搜索确定最优坐标的基础上,进一步将所有集合中的坐标重新混合并重新划分集合,多次重复对每个集合进行局部搜索确定最优坐标,直至达到设定重复次数或者最优坐标的误差值小于设定的阈值,以进一步提升搜索得到的最优坐标的准确性。提高未知节点定位精准度。

在一个实施例中,步骤b中所述根据所述误差值,将所述候选坐标划分入多个集合中包括:

b1、根据所述误差值,将候选坐标按照误差值大小降序排列;

b2、将各个候选坐标按照所述降序分别分入设定个数的集合中,直到全部候选坐标划分完毕,其中,相邻次序的候选坐标分入不同的集合中。

具体地,在一个实施例中,例如若共计有n个候选坐标,则可以将降序排列的候选坐标分成m个集合,每个集合包含n个坐标,满足n=m×n。将第1个坐标分入第1集合,第2个坐标分入第2集合,…,第m个坐标分入第m集合,第m+1个坐标分入第1集合,…,依此类推,直到全部候选坐标划分完毕。

上述实施例的技术方案,在对未知节点进行集合划分时,将候选坐标依照误差值均匀分散地划分入不同的集合中,使得各个集合分布的未知节点更加平均分散,避免未知节点分布集中导致局部搜索时易于疏漏对最优节点的搜索,提升最优节点的搜索效率。

在一个实施例中,如图4所示,提供了一种定位装置,包括:

估计坐标计算模块410,用于计算未知节点的估计坐标;

候选坐标生成模块420,用于在所述估计坐标的邻域范围内生成多个候选坐标;

最优坐标搜索模块430,用于计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

未知节点定位模块440,用于将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述定位装置,在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

在一个实施例中,所述估计坐标计算模块410包括:

距离估算模块,用于估算未知节点到多个锚节点的距离;

外接正方形获取模块,用于获取以各个所述锚节点为圆心,未知节点到所述锚节点的距离为半径生成的圆的外接正方形;

相交区域计算模块,用于计算各个锚节点对应的所述外接正方形的相交区域;

估计坐标确定模块,用于计算所述相交区域的中心点坐标作为未知节点的估计坐标。

在一个实施例中,所述候选坐标生成模块420进一步用于依照下式生成候选坐标:

其中,

上式中,为未知节点的估计坐标,为估计坐标的邻域,r为区间[0,1]内均匀分布的随机数。

在一个实施例中,所述最优坐标搜索模块430进一步用于:

a、计算各个候选坐标的误差值;

b、根据所述误差值,将所述候选坐标划分入多个集合中;

c、标记各个集合中的误差值最小的候选坐标为最小误差坐标,标记各个集合中的误差值最大的候选坐标为最大误差坐标,标记所有集合中的误差值最小的候选坐标为最优坐标;

d、根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的局部搜索;其中,每次局部搜索时,计算该次局部搜索生成的随机坐标的误差值,若该随机坐标的误差值小于标记的最小误差坐标的误差值,则将该随机坐标标记为最小误差坐标,若该随机坐标的误差值大于或等于标记的最小误差坐标的误差值,则将最小误差坐标替换为最优坐标的值,并重复步骤d;

e、将所有集合中误差值最小的最小误差坐标,标记为最优坐标。

在一个实施例中,所述最优坐标搜索模块430进一步用于:

a、计算各个候选坐标的误差值;

b、根据所述误差值,将所述候选坐标划分入多个集合中;

c、标记各个集合中的误差值最小的候选坐标为最小误差坐标,标记各个集合中的误差值最大的候选坐标为最大误差坐标,标记所有集合中的误差值最小的候选坐标为最优坐标;

d、根据所述最小误差坐标和最大误差坐标,对每个集合进行设定次数的局部搜索;将局部搜索生成的随机坐标作为候选坐标存入对应的集合;

其中,每次局部搜索时,计算该次局部搜索生成的随机坐标的误差值,若该随机坐标的误差值小于标记的最小误差坐标的误差值,则将该随机坐标标记为最小误差坐标,若该随机坐标的误差值大于或等于标记的最小误差坐标的误差值,则将最小误差坐标替换为最优坐标的值,并重复步骤d;

e、将所有集合中误差值最小的最小误差坐标,标记为最优坐标;

f、将各个集合中的候选坐标重新混合;

g、重复所述步骤b~f直至达到设定重复次数或者最优坐标的误差值小于设定的阈值。

在一个实施例中,最优坐标搜索模块430在执行所述根据所述误差值,将所述候选坐标划分入多个集合中的步骤时,进一步用于:

根据所述误差值,将候选坐标按照误差值大小降序排列;

将各个候选坐标按照所述降序分别分入设定个数的集合中,直到全部候选坐标划分完毕,其中,相邻次序的候选坐标分入不同的集合中。

在一个实施例中,所述最优坐标搜索模块430进一步用于依照下式计算误差值:

其中,q为锚节点总数,i代表q个锚节点中的第i个锚节点,(xi,yi)为第i个锚节点的坐标。

在一个实施例中,所述最优坐标搜索模块430进一步用于在每次局部搜索时,依照下式生成该次局部搜索的随机坐标:

d=r×(xb-xw)

x′=xw+d(dmin≤d≤dmax)

其中,d表示移动的距离,r表示[0,1]之间的随机数,dmin表示坐标所允许改变位置的最小值,dmax表示坐标所允许改变位置的最大值。

关于定位装置的具体限定可以参见上文中对于定位方法的限定,在此不再赘述。上述定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

本发明的定位装置与本发明的定位方法一一对应,在上述定位方法的实施例阐述的技术特征及其有益效果均适用于定位装置的实施例中,特此声明。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

计算未知节点的估计坐标;

在所述估计坐标的邻域范围内生成多个候选坐标;

计算所述候选坐标的误差值,依照所述误差值,搜寻所述候选坐标中的误差值最小的坐标为最优坐标;

将所述最优坐标作为未知节点的坐标,对所述未知节点进行定位。

上述计算机可读存储介质,其存储的计算机程序,通过实现如上步骤,从而可以在计算得到未知节点估计坐标后,进一步在估计坐标邻域生成多个候选坐标,计算候选坐标的误差值,根据误差值进一步筛选得到误差值做小的坐标为最优坐标,对未知节点进行定位,从而可以减小最终用于未知节点定位的坐标的误差,提升未知节点的定位精准度。

在其他实施例中,计算机程序被处理器执行时还可实现如上任一实施例所述定位方法的步骤,并具有相应的有益效果。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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