基于Beacon技术的三点共线定位方法与流程

文档序号:12917729阅读:351来源:国知局
基于Beacon技术的三点共线定位方法与流程

本发明涉及一种三点定位方法,更具体地说,涉及一种基于beacon技术的三点共线定位方法。



背景技术:

beacon就是一种通过低功率蓝牙技术(bluetoothlowenergy)实现精确定位的设备,如今,beacon技术应用得越来越广泛,根据用户所处位置提供相关服务的需求也越来越强烈,同时这里面也蕴含着巨大的商机,而如何比较准确地定位用户所处位置是其中的关键,也是难点。

如图1和图2所示,目前基于beacon技术的定位系统及方法是在用户逛商场的时候,先定位出用户的位置,然后使用手机/平板的摄像头拍摄出用户行进路线前方的照片,然后经由网络将定位信息和拍摄的前方照片发往ar服务器(增强现实),经由ar服务器经过一系列运算,确定用户当前走到商场的哪家门店,最后将商场门店信息发给手机/平板做进一步处理。

具体地说,基于beacon技术的定位系统包含移动端和beacon硬件设备,如图1和图2所示,其中beacon硬件设备和移动端app都采用ibeacon(低功率蓝牙技术)协议。移动端利用其内部安装的beacon搜索模块1搜索用户附近的beacon设备,得到最原始的数据(beaconrawdata),该得到的最原始数据包括beacon设备号(uuid)、组号(major)、组内编号(minor)、信号强度(rssi)、功率(txpower,距离beacon1米时的信号强度),然后将原始数据(rawdata)传递给beacon数据转换模块2。由beacon数据转换模块2将beacon搜索模块1输出的beaconrawdata转换成经度、纬度、用户到beacon的距离等信息,然后将转换后的数据传给定位模块3。由定位模块3接收beacon数据转换模块2的输出数据,调用定位方法,测出用户当前位置,并将结果传输给数据处理/集成模块4。

数据处理/集成模块4接收定位模块3和照相(camera)模块5传送的数据,打包成特定的数据结构,然后传给第一网络处理模块6。

第一网络处理模块6接收数据处理/集成模块4的数据后通过网络接口将数据发送到ar服务器。

ar服务器中的第二网络处理模块7接收移动端发来的用户位置和camera图像,并将收到的数据转码、返解成服务端能够识别的数据结构,然后将处理结果传给图像识别及图像转换模块8。

图像识别及图像转换模块8识别移动端发来的camera照片,调用图像识别算法和后台数据知识库,将识别结果封装为特定的数据结构给数据处理/存储模块9做进一步处理。

数据处理/存储模块9接收图像识别及转换模块8传来的数据结构,同时查询存储有图像识别及处理算法的算法/数据知识库10,并结合用户位置,分析图像信息,最终得到用户当前在哪些店面附近。

数据处理/存储模块9将最终得到用户当前在哪些店面附近的信息通过第二网络处理模块7传送回网络处理模块6和数据处理/集成模块4,由数据处理/集成模块4根据ar服务器传回的处理数据和营销信息,通过营销模块11以一种友好的形式告知用户。

在上述beacon技术中用于对用户所在位置进行定位的方法一般采用三边测量法、质心算法、最小二乘法以及中国专利号为200610148023.2中公开的基于非电子地图上的三点定位方法等等,但是这些方法存在参考基点间形成一条直线时,计算结果误差大的问题。



技术实现要素:

本发明的目的在于提供一种用于减小上述方法中误差的基于beacon技术的三点共线定位方法。也就是说利用本发明中的方法当参考beacon基点间形成一条直线时,可以有效解决上述各方法中存在的问题。

本发明中基于beacon技术的三点共线定位方法,该方法用以参考的 beacon基点间形成一条直线时对未知点进行定位,该方法包括以下步骤:

1)由移动端的beacon数据转换模块获得三个呈直线l分布的三个beacon基点,分别为第一beacon基点、第二beacon基点和第三beacon基点,同时获得三个beacon基点的坐标及每个基点到用户所在位置的距离;

2)判断用户所在位置是否在直线l上,若不是,则执行以下步骤,若是则返回第1)步骤,重定获得三个呈直线分布的beacon基点;

3)根据三个基点的坐标获得直线l的斜率k,穿过位于中间的第二beacon基点设置一条与水平x轴线平行的平行线j;

4)根据同一个三角形面积相等原则,利用海伦公式和三角形底×高/2的求面积原理,获得用户所在位置到直线l的垂直距离h,进一步获得用户所在位置与第二beacon基点、第一beacon基点形成的三角形一个顶点,即第二beacon基点为顶点处的内角角度α;

5)根据三个基点所在的直线l的斜率k获得第一beacon基点、第二beacon基点及平行线j之间的角度β;

6)判断用户所在位置与直线l的位置,若用户所在位置位于直线左侧,用户所在位置、第二beacon基点及平行线j之间的角度γ为角度β加上内角角度α;若用户所在位置位于直线右侧,用户所在位置、第二beacon基点及平行线j之间的角度γ为角度β减去内角角度α;

7)根据用户所在位置、第二beacon基点及平行线j之间的角度γ,用户所在位置至第二beacon基点的距离及第二beacon基点的坐标可以获得用户所在位置的坐标,从而定位出用户所在位置的具体位置。

步骤2)中,判断用户所在位置是否在直线l上,若是,则设置一条与水平x轴线平行的平行线j,并根据三个基点的坐标获得直线l的斜率k,再根据用户所在位置、直线l及平行线j之间的角度γ,计算用户所在位置的坐标,获得用户所在位置的具体位置。

在获得直线l的斜率k后,增加判断斜率k是否等于0或1的步骤。

所述定位方法集成于定位模块,所述定位模块安装于移动端或ar服务器内。

本发明中基于beacon技术的三点共线定位方法,该方法用以参考的beacon基点间形成一条直线时对未知点进行定位,该方法包括以下步骤:

1)由移动端的beacon数据转换模块获得三个呈直线l分布的三个beacon基点,分别为第一beacon基点、第二beacon基点和第三beacon基点,同时获得三个beacon基点的坐标及每个基点到用户所在位置的距离;

2)判断用户所在位置是否在直线l上,若不是,则执行以下步骤,若是则返回第1)步骤,重定获得三个呈直线分布的beacon基点;

3)根据三个基点的坐标获得直线l的斜率k,穿过位于中间的第二beacon基点设置一条与水平x轴线平行的平行线j;

4)根据同一个三角形面积相等原则,利用海伦公式和三角形底×高/2的求面积原理,获得用户所在位置到直线l的垂直距离h,进一步获得用户所在位置与第二beacon基点、第一beacon基点形成的三角形一个顶点,即第二beacon基点为顶点处的内角角度α;

5)根据三个基点所在的直线l的斜率k获得第一beacon基点、第二beacon基点及平行线j之间的角度β;

6)假设用户所在位置位于直线l的右侧,则通过角度β减去内角角度α获得用户所在位置、第二beacon基点及平行线j之间的角度γ;

7)根据用户所在位置、第二beacon基点及平行线j之间的角度γ,用户所在位置至第二beacon基点的距离及第二beacon基点的坐标可以获得用户所在位置的坐标,由于用户所在位置的坐标有两种不同取值,进一步引入与第一beacon基点、第二beacon基点和第三beacon基点不共线的第四beacon基点,并计算用户所在位置到第四beacon基点的距离,判断距离近者为最终的用户所在位置,从而定位出用户所在位置的具体位置。

步骤2)中,判断用户所在位置是否在直线l上,若是,则设置一条与 水平x轴线平行的平行线j,并根据三个基点的坐标获得直线l的斜率k,再根据用户所在位置、直线l及平行线j之间的角度γ,计算用户所在位置的坐标,获得用户所在位置的具体位置。

在获得直线l的斜率k后,增加判断斜率k是否等于0或1的步骤。

所述定位方法集成于定位模块,所述定位模块安装于移动端或ar服务器内。

本发明的中基于beacon技术的三点共线定位方法有效改进了三边测量法/三角形质心算法在beacon基站三点共线时定位误差较大的问题。

附图说明

图1是目前基于beacon技术的定位系统的功能模块图。

图2是目前基于beacon技术的定位系统的功能流程图。

图3是本发明实施例一中三点共线定位方法的示意图。

图4是本发明实施例二中三点共线定位方法的原理模块图。

图5是本发明中基于beacon技术的定位系统的功能模块图。

图6是本发明中基于beacon技术的定位系统的功能流程图。

图7是本发明中用户所在位置与三个beacon基点共线时的定位方法示意图一。

图8是本发明中用户所在位置与三个beacon基点共线时的定位方法示意图二。

图9是本发明中用户所在位置与三个beacon基点共线时的定位方法示意图三。

具体实施方式

下面将结合附图对本发明中的三点共线定位方法进行详细说明。

如图5和图6所示,本发明中基于beacon技术的定位系统包括有移动端和ar服务器(augmentedreality),其中移动端为智能手机或平板电脑等等。

在移动端内设置有beacon搜索模块1、beacon数据转换模块2、照相 (camera)模块5、数据处理/集成模块4、第一网络处理模块6和营销模块11。在ar服务器内设置有第二网络处理模块7、定位模块3、图像识别及图像转换模块8、数据处理/存储模块9和算法/数据知识库10。

在用户进入商场时,利用移动端内部安装的beacon搜索模块1搜索用户附近的beacon设备,得到最原始的数据(beaconrawdata),同时使用手机/平板的摄像头即camera模块5拍摄出用户行进路线前方的照片,由beacon数据转换模块2将beacon搜索模块1输出的beaconrawdata转换成经度、纬度、用户到beacon基点的距离等信息后连同camera模块5拍摄的照片一起经由第一网络处理模块6发往ar服务器,在ar服务器内,由第二网络处理模块7接收传送的信息及照片,并将接收的信息及照片分别传送到定位模块3和图像识别及图像转换模块8,由定位模块3根据传送的信息对用户所在位置进行定位,并由图像识别及图像转换模块8作进一步定位处理找出相应的门店,定位后的信息及找出的相应门店的信息经数据处理/存储模块9存储处理后经由第二网络处理模块7将需要推送的信息传送给移动端,由移动端中的营销模块11向用户推送营销内容,即将商场门店信息发给手机/平板做进一步处理。

其中定位模块3内部对用户所在位置进行定位时具有以下多不同的实施方例,下面对各个实施例进行一一描述。

实施例一

定位模块3中对用户所在位置进行具体定位的方法包括以下步骤:

1)由移动端的beacon数据转换模块1获得三个呈直线l分布的三个beacon基点,分别为第一beacon基点b1、第二beacon基点b2和第三beacon基点b3,同时获得三个beacon基点b1、b2、b3的坐标(x1,y1)、(x2,y2)、(x3,y3)及每个基点到用户所在位置u的距离,分别为a、b、c;

2)判断用户所在位置是否在直线l上,若不是,则执行以下步骤,若是则返回第1)步骤,重定获得三个呈直线分布的beacon基点;

3)根据三个基点b1、b2、b3的坐标(x1,y1)、(x2,y2)、(x3,y3)获得直线l的斜率k,

k=(y1-y2)/(x1-x2)

穿过位于中间的第二beacon基点b2设置一条与水平x轴线平行的平行线j,如图3所示;

3)根据同一个三角形面积相等原则,利用海伦公式和三角形底×高/2的求面积原理,获得用户所在位置到直线l的垂直距离h,进一步获得用户所在位置u与第二beacon基点b2、第一beacon基点b1形成三角形一个顶点,即第二beacon基点b2为顶点处的内角角度α;具体过程如下:

用户所在位置u与第二beacon基点b2、第一beacon基点b1形成一个三角形,通过

海伦公式:

其中s为三角形面积,p为三角形周长的地半,a、b、c分别为三角形的边长。

以及三角形面各s=三角形底×高/2

获得用户所在位置u到三个beacon基点b1、b2、b3所在直线l的垂直距离为h,如图4所示。

sδub1b2=b1b2*h/2

从而获得

在三角形ub2b1的第二beacon基点b2为顶点处的内角角度α通过正弦值方法sin(∠ub2b1)=h/ub2可以获得角α=sin-1(h/ub2)。

4)根据三个基点所在的直线l的斜率k获得第一beacon基点b1、第二beacon基点b2及平行线j之间的角度β;

β=tan-1((y1-y2)/(x1-x2))

5)判断用户所在位置u与直线l的位置,若用户所在位置位于直线左侧,用户所在位置u、第二beacon基点b2及平行线j之间的角度γ等于角度β加上内角角度α,如图3中的(3)和(4)所示;若用户所在位置位于直线右侧,用户所在位置u、第二beacon基点b2及平行线j之间的角度γ等于角度β减去内角角度α,如图3中的(1)、(2)所示。

6)根据用户所在位置u、第二beacon基点b2及平行线j之间的角度γ,用户所在位置u至第二beacon基点b2的距离及第二beacon基点b2的坐标可以获得用户所在位置的坐标,

xu=x2+ub2*cos(γ)

yu=y2+ub2*sin(γ)

从而定位出用户所在位置的具体位置。

上述步骤1)已知三个beacon基点b1、b2、b3的坐标(x1,y1)、(x2,y2)、(x3,y3)及其到用户所在位置u的距离ub1、ub2、ub3是在移动端的beacon数据转换模块1中获得,从搜索到的beacon信息根据预先设定的beacon坐标和信号强度rssi换算获得,这属于现有成熟技术,不再详细描述。

实施例二

本实施例是上述实施例一中的基本相同,不同之处在于实施例一的步骤5)中前判断用户所在位置位于直线l的左侧还是右侧,本实施例则不作判断,而是直接假设用户所在位置位于直线l的右侧,如图3中(1)和(2)所示,用户所在位置、第二beacon基点及平行线j之间的角度γ则等于角度β减去内角角度α,根据该角度γ,用户所在位置至第二beacon基点的距离及第二beacon基点的坐标可以获得用户所在位置的坐标,由于角度的不确定,导致用户所在位置的坐标有两种不同取值。本实施例为了进一步明确用户所在的位置,引入与第一beacon基点b1、第二beacon基点b2和第三beacon基点b3不共线的第四beacon基点,如图4所示,并计算用户所在位置u到第四beacon基点的距离,判断距离近者为最终的用户所在位置,从而定位出用户所在位置的具体位置。

实施例三

本实施例是在上述实施例一步骤2)中判断用户所在位置是否在直线l上时,若判断结果是是时不直接返回第1)步骤,而是直接执行以下步骤:

1)进一步判断用户所处位置u在直线l上的具体位置,而用户所在位置在直线l上可以有4种情况,分别为u1、u2、u3、u4,如图7所示。

2)根据三个基点b1、b2、b3的坐标(x1,y1)、(x2,y2)、(x3,y3)获得直线l的斜率k,

k=(y1-y2)/(x1-x2)

3)穿过三个beacon基点中任意一点设置一条与水平x轴线平行的水平线j,本实施例以穿过第三beacon基点b3为例。

4)根据步骤1)中判断的情况选择一种角b1b3j=tan-1k

5)计算u1、u2、u3、u4的坐标

u1坐标

xu1=x3-u1b3*cos角b1b3j

yu1=y3-u1b3*sin角b1b3j

u2坐标

xu2=x2–u2b2*cos角b1b3j

yu2=y2–u2b2*sin角b1b3j

u3坐标

xu3=x1–u3b1*cos角b1b3j

yu3=y1–u3b1*sin角b1b3j

u4坐标

xu4=x1+u4b1*cos角b1b3j

yu4=y1+u4b1*sin角b1b3j

其中b1、b2、b3坐标为(x1,y1)、(x2,y2)、(x3,y3)。

当然,当直线l的斜率为1或0时,直线l呈与水平x轴线垂直或水平 状态,从而可以将上述对用户所在位置的计算定位则更加简单,如图8和图9所示,在此不再详细说明。

综上所述,本发明中的三点共线定位方法主要针对三边测量法/三角形质心算法在beacon基站三点共线时定位误差较大做了相应的改进,在使用时,定位模块3先使用三个beacon基站的坐标,判断三个beacon基站是否共线,如果共线则采用发明中的定位方法,如果未共线,则使用三边测量法/三角形质心算法。

由于beacon实际应用中,所选择的基点坐标大多数时候不会完全在一条直线上,此时可对本发明中的定位方法做近似处理,即在一定误差范围内认为三个beacon基点b1、b2、b3共线,并在后续的各步骤中仍在一定误差范围内做近似处理,最终得到用户的位置。

在本发明中,采用了通用的计算机技术,因此具体原理在此不再赘述,以上是本发明的较佳实例,并非对本发明作任何形式上的限制。凡是依据本发明的技术是指对以上的实例所做的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

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