写在前面

我们小组从策划ibeacon定位开始到现在进行到了最为关键的阶段,我们了解了现在流行的三点定位法和指纹法并进行了大量的讨论,我们得出了很多有用的结论也考虑到了很多可能存在的会影响到探测精度的问题,在此列出希望能有所帮助。

指纹法VS三点定位法

三点定位法是目前最为主流的探测方法,即是将三个ibeacon的RSSI的值与距离进行拟合得到一个合适的函数,并在测量时根据测得的RSSI的值得到大致的距离,最后从三个已经定位好的ibeacon作为圆心出发做三个圆求他们相交的公共点,最后得到的点即为被定位的目标。这种方法思路清晰简单但是也有明显的缺点,因为必然存在的误差可能会导致三个圆各个相交但却并不交于一点,这还是好解决的,如果只是两个圆有交点而另一个圆与这两个圆并无焦点那如何解决?如果三个圆都没有相交呢?三点定位就要考虑到好几种情况,而我们计划的是使用四个点进行定位,相比于三点,这将会有更多的可能等待着我们去考虑,那么对于我们这些不善于数学的人来说,使用指纹法就会方便得多。
指纹法是先将ibeacon进行固定并提前设置坐标,在各个设置好的坐标点上测量该点的RSSI的值并进行保存,最后做成一个庞大的数据库,当我们需要定位时,将测好的RSSI的值与数据库进行比较,最接近的即是我们想要的点。但这种方法的缺点也很明显,就是这种方法更赖于硬件(比起三点定位法来说),他更需要一个示数稳定的蓝牙设备并且需要ibeacon对于地理位置的变化足够敏感,但是很可惜我们的ibeacon设备不是很符合这种要求。综上考虑我们貌似只能使用指纹法,毕竟数学不好是硬伤。

在测量时应该考虑的误差

因为硬件原因,我们测量已经不是很精确了,所以为了尽可能的减小误差我们要考虑到所有产生误差的可能并进行一一排除,我们现在已经发现的会对测量产生影响的误差有如下几点:

  • 在拿着手机进行定位时蓝牙信号穿过人体所产生的误差(重要)
    我们可以进行一个简单的测试看看在人体遮挡蓝牙信号后会对所测得数据有多么大的影响
    正对着ibeacon所测得的数据
    背对着ibeacon所测得的数据
    为了控制变量我们只旋转了人并没有改变手机的位置,但是我们看到了RSSI的值变化了16点,这对于一个ibeacon来说是致命的,所以我们在测量数据时不能背对任何一个ibeacon。
    那么该怎么办呢?我们如果设置了一个7mX7m的正方形,将ibeacon摆放在四个角,我们会意识到无论在正方形的哪里测量因为人在里面都会影响到个别ibeacon的数值显示。所以我们小组进行了大量讨论与实践,发现根本没有完美的解决问题的方法,我们只能用如下方法减小一部分误差:
    测量7mX7m的正方形任务目标不变,我们将四个ibeacon放置在正方形中心位置并相互之间有些距离(为了能够明显比较出差异至少需要ibeacon摆成2mX2m的正方形,然后构成的两个正方形中心相同)我们就能够在ibeacon构成的正方形外部正对着正方形的中心进行测量,这样就不会出现人体遮挡的情况了。大概形式如此图所示
    此图中的红色为放置的4个ibeacon,棕色为我们在外侧的探测者,他始终面对着正方形的中心,可以看到信号来源的角度中是不会穿过他的身体的。
    但是问题仍然存在,我们在测量ibeacon正方形内部的数据是仍然不可避免的遮挡蓝牙信号,而如果ibeacon的距离太近又无法进行精准定位(原因马上说),所以这个问题仍无法得到真正解决,希望有想法的人能够私戳我并一起讨论解决。
    接下来我将列出使用此方法进行测量的优点与缺点,先说缺点,我们从上图可以看到在临近正方形外沿的时候,两个绿色的点虽然位置不同但是只对4号ibeacon敏感,其他三个ibeacon与他的距离变化是不明显的,所以我们为了改善这个问题,准备新加入一个权重比的变量,在测得数据与数据库的数据进行比对之前先将测得的四个数据进行比对,如果有一个值明显低于其他的值或是测得的距离值明显低于其他数据测得的距离值,那么把他在对比时所影响结果的比例调高,把距离最远的那个点在对比时所影响结果的比例调低,这样则使测量外沿点的位置更为精确。再说这种方法的优点,这种方法显然将能够定位的有效范围加大了,如果在进行ibeacon定位时的距离极限是10米,那么这种方法可以将原来定位的7X7正方形(10除根号2)扩展为10X10的正方形,但也使得大多数测得的数据都在2M的范围之外,RSSI的值的变化并不明显,误差加大,所以适当控制中间正方形的边长显得十分重要。我们在讨论后觉得如果要用此法进行测量,最好使用极坐标系而不是直角坐标系,在取点时也可以放心向远处取点最后把过远而难以区别的距离切掉,这是我们简单做的圆坐标图。应该做到距离越远取点越密,距离越近取点越疏,角度可以以30度为标准。

  • 拿着手机时高度不同所产生的误差
    这是需要考虑到的,虽然在正常使用手机过程中我们的身高不同所以这是不能避免的。我们组是使用一根扫帚把来控制高度的(笑)。

  • ibeacon放置在地上所产生的误差(重要)
    这个问题长时间的困扰着我们,我们在测试时发现信号在3M之外几乎就探测不到了,并且在有效距离内信号衰减得十分厉害,信号跳动极为鬼畜,严重打击了我们的心态消磨我们的心性。后来在讨论时我们为了排除是我们ibeacon本身的问题决定将ibeacon抬高(之前一直是放在地上的),发现竟然信号能够传到10M之远,所以意识到在进行定位时绝对不能把他放在地上的我们赶快写出了这篇博客,可以放在砖头上进行测量但也要将其放在两个砖头之间保证底部悬空这样信号更好,最好做几个同样高度的支架用来摆放ibeacon。

  • 因环境变化等原因导致的拟合函数发生变化
    这点不要忘记了,很多时候我们都会忽略这条问题,我们最好进行拟合曲线(即使我们使用的是指纹法)并在测量时更新环境变量

  • ibeacon在放置时放置方向混乱所导致的误差
    真实的故事:本来测量的值是-56转过去之后(180度)变成了-61并都保持稳定,所以在放置ibeacon时要当心。

  • ibeacon相互影响所导致的误差
    这是对拟合曲线时取点的建议,在对单个ibeacon进行取点拟合时仍应将其余的ibeacon以测量时的形式摆放,误差当然是能少一点少一点。

在数据处理和统计时应该注意的事项

  • 在读取RSSI的值时可以多取几组数据去掉过高的几个值(或者直接取较低的几个值)进行计算(可以取平均数也可以按方差动态取值)
  • 在处理时动态分配数据权重使得数值更为精确。
  • 可以加个按钮进行人为控制误差,比如说当他的数值稳定的时候进行取值测试,当他数值不稳定时就等他稳定下来。(我们组就是这样做的)
  • 你以何种方式创建的数据库就应该以何种方式进行定位,比如在创建数据库时是取4个值求平均值,那么在测量时也要取4个值求平均值,这是在控制减小误差。

写在最后

只有在了解之后才会发现实现一个简单的定位要考虑的事情是多么的多,这篇博客可以说是我们小组共同讨论出的“干货”,希望能够帮助到遇到这方面问题的大家。如果这个博客切实的帮助到了你请给个顶让我知道。我们会陆陆续续将我们小组所做的东西以同样的形式上传出来,希望能对大家有帮助。如果有问题请指出让我知道,我会及时更改或者干脆不改了直接删除(笑)。

在进行IBEACON定位时所应考虑到的误差与建议相关推荐

  1. 在进行IBEACON定位时的可视化处理

    在进行IBEACON定位时的可视化处理 写在前面 准备工作 布局设置 代码设置 写在最后 写在前面 以我们所使用的例程来说,我们为了在实现蓝牙定位的基础上而不影响其他功能的使用在原有功能的基础上新建了 ...

  2. 在绘制USB2.O设备接口差分线时,应注意以下几点要求:

    在绘制USB2.O设备接口差分线时,应注意以下几点要求: ①在元件布局(PCB Layout)时,应将USB2.O芯片放置在离地层最近的信号层,并尽量靠近USB插座,缩短差分线走线距离. ②差分线上不 ...

  3. 使用scrollIntoView方法解决抛锚定位时网页往上跳的问题

    一直都是使用抛锚location.href = "page.htm#anchor";在页面定位位置,但是经常会出现在抛锚定位时页面整体往上跳的问题,每一次都是怀疑页面div+css ...

  4. android 百度地图闪退,Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法...

    使用百度地图出现闪退 一般情况下出现闪退是在AndroidManifest.xml文件中未在application标签中配置 android:name="com.baidu.lbsapi.A ...

  5. let 连续复制_要在Word中使用“格式刷”对同一个格式进行多次复制时,应先用鼠标()。...

    要在Word中使用"格式刷"对同一个格式进行多次复制时,应先用鼠标(). 答:左键双击"格式刷"按钮 闽菜由福州,闽南和 三路不同风味的地方菜组合而成 答:闽西 ...

  6. 蓝牙定位方案之Ibeacon定位技术解决方案-新导智能

    低功耗蓝牙定位方案以及寻向的一些使用计划,在一些博物馆.大型的超市.机场.购物中心现已完成,现在人员定位基本上要用手机,蓝牙在手机傍边的普及率几乎是100%,一起蓝牙又是一个全产业链的一个供应方法.如 ...

  7. 蓝牙Ibeacon定位技术之室内定位--室内定位系统--新导智能

    随着蓝牙定位技术的发展,蓝牙定位应用场景越来越广泛,商场,停车场,化工厂,养老院等等.蓝牙定位还分好多种,蓝牙网关,蓝牙iBeacon定位技术,目前蓝牙iBeacon定位技术应用最广泛,我们一起来了解 ...

  8. GNSS说第(七)讲---自适应动态导航定位(六)---导航解算中的误差探测、诊断与修复

    GNSS说第(七)讲-自适应动态导航定位(六)-导航解算中的误差探测.诊断与修复 概述 一般性描述 动态导航定位误差的探测.诊断与调整是高精度导航定位必须解决的问题.它要求实时监测导航系统中的动力学( ...

  9. 三友硅业基于Lora+IBeacon定位技术下的化工厂人员定位解决方案-化工厂定位-新导智能

    三友硅业因为厂区的发展,目前的安全管理系统存在着整体上的漏洞,达不到上级主管单位以及安全生产监管部门的需要,在员工进出厂区记录与追溯,生产区人员分布与统计,危险区域人员进出控制,外来人员与车辆进出管理 ...

最新文章

  1. Java报错解决:org.apache.http.ConnectionClosedException: Premature end of chunk coded message body: closi
  2. [BZOJ1068/Luogu2470][SCOI2007]压缩
  3. 三栏布局(两边固定,中间自适应)
  4. 转专业入门NLP,这样学就对了
  5. SpringSecurity使用自定义认证页面
  6. 面向对象设计思想-C语言
  7. 解决:Error response from daemon: Get https://index.docker.io/v1/search?q=openjdkn=25: dial tcp: looku
  8. Android Sqite数据库 6
  9. 【视频教程】JeeWx 微信开发入门视频
  10. mysql row 格式binlog 恢复_为什么要把MySQL的binlog格式修改为row
  11. java 代码走查_Java代码走查具体考察点
  12. docker搭建sftp服务器
  13. 冷眼旁观Cocos3D发布
  14. 三星集团继承人李在镕将接受韩国检方质询
  15. stata半个小时入门篇
  16. 最常见的20道jQuery经典面试题
  17. springboot依赖lombok插件、lombok常用注解
  18. ipqc的工作流程图_过程质量控制IPQC的介绍及流程
  19. nexus配置阿里云仓库
  20. 甲骨文CEO拉里-埃里森生平与故事

热门文章

  1. 计算机用户账户类型,计算机系统帐户的分类
  2. iOS之ffmpeg开发音视频编解码概要、SDL
  3. python画聚类树状图_影像组学学习笔记(36)-聚类树状图Dendrogram的python实现
  4. 聚类分析树状图的初探
  5. 并非都完美,笔记本8大致命缺陷曝光
  6. JavaScript网页购物车
  7. 任务调度+资源调度整合(学习笔记)
  8. 个人理解之内网ip与外网ip
  9. 怎样查看ie浏览器的版本号
  10. c语言设计思路和有点不足,C语言总结报告