文章目录

  • 说一说室内定位中的一些黑幕
    • 前言
    • 行业情况
    • 室内定位算法
      • 惯性导航(PDR)
        • 起点未知
        • 误差累积
        • 评价
      • 蓝牙、WI-FI
        • 三点定位法
        • 指纹法
        • 算法的难点
        • 评价
      • 地磁
        • 地磁不稳定
        • 磁场变化缓慢
        • 评价
      • 光定位
        • 信号不能重叠
        • 编解码算法
        • 评价
    • 行车定位
    • 总结

说一说室内定位中的一些黑幕

前言

首先自我介绍下,本人接触室内定位这个行业三年多,主要从事定位算法的研究。

虽然我入行时间不长,但是还是接触过不少的定位算法,其中主要包括蓝牙、WI-FI、地磁、惯性、灯光定位算法,据我所知这几种方式基本覆盖了市面上90%的室内定位公司。

黑幕其实也说不上,主要是说说我这几年踩到的一些有意思的坑,顺便对有志入行的朋友提个醒,不要去尝试一些看似有可能但是实际上是死路一条的方法。

如果我下面的任何观点有误,欢迎指正。

行业情况

这个行业可谓是鱼龙混杂,有非常有技术实力的公司,也有纯属圈钱的公司。公司规模一般不大,所以还没有哪一家能够一统天下的。

这个行业本身利润还是挺高的,毕竟主要靠算法。这几年也正好赶上国家政策,一是智慧停车,二是智慧医院,前者一般对应大型商场的地下停车场,商场和医院一样是不差钱的主。这样一来也就吸引了大量的室内定位公司如雨后春笋一般“崛起”。当然,并不是你的技术实力强就能拿到大订单的,这点想必各位都心知肚明,技术、营销、人脉缺一不可。

室内定位算法

定位算法真的是五花八门,我就主要从我熟悉的几种算法来一一介绍。

惯性导航(PDR)

惯性导航主要是通过用户的运动数据(一般包括行走步数、行走步长和行走方向)来推算出用户当前到达的位置,以达到定位的效果。

起点未知

想要对用户进行定位,首先必须要先知道用户在哪。不管你是用GPS、蓝牙还是其他任何定位手段都好,首先要知道用户在哪儿,然后才能利用惯性导航算法来一步步推算出用户下一步的运动位置。

这点就证明了,这个算法是没法单独使用的。

误差累积

惯性导航是有误差累积的,而且是越积越多。

计步器的误差我们暂且忽略不计,但是运动步长的误差就很难忽视了,假设一开始每一步只是偏差3-5厘米,到了一百步以后就是3-5米了,走的越远误差越大。

另一个重要的影响因素便是方向了,即使方向偏差仅仅只有10°10\degree10°,一百米以后也就相当可观了。根据我个人的经验来说,手机的方向偏差在10°10\degree10°到30°30\degree30°都是非常正常的,可想而知最终的定位误差。

但是咱们反过来想,如果只要求在10米范围内的定位,上面的这些问题就不是什么问题了。所以说,小范围内,用惯性导航的效果还是挺好的。

评价

惯性导航只适用于辅助定位,而且是小范围的。

蓝牙、WI-FI

由于我本人只研究过蓝牙的定位算法,而蓝牙、WI-FI据我了解两种算法原理是比较接近的,所以我这里只提下蓝牙的定位算法。

蓝牙或者说类似蓝牙的定位方式用的算法一般有两大类:三点定位法、指纹法。

三点定位法

三点定位法的原理由下面这一张图就可以说明白。

只要知道A、B、C三个点的坐标和三点分别到图中O点的距离,就可以通过下面的数学公式将O的坐标给计算出来。
{(xO−xA)2+(yO−yA)2=OA2(xO−xB)2+(yO−yB)2=OB2(xO−xC)2+(yO−yC)2=OC2\begin{cases} \quad (x_O-x_A)^2+(y_O-y_A)^2=OA^2\\ \quad (x_O-x_B)^2+(y_O-y_B)^2=OB^2 \\ \quad (x_O-x_C)^2+(y_O-y_C)^2=OC^2 \end{cases} ⎩⎪⎨⎪⎧​(xO​−xA​)2+(yO​−yA​)2=OA2(xO​−xB​)2+(yO​−yB​)2=OB2(xO​−xC​)2+(yO​−yC​)2=OC2​
我这里没有将公式展开,不过这相信是难不倒各位看官的,这个公式非常完美,但这前提是我们能够准确的计算出OA、OB、OCOA、OB、OCOA、OB、OC,这才是难点。如果没有这个难点的话,室内定位就大结局了,具体难在哪里,我会在后面说明。

介于距离的计算精度问题,上面的公式未必能适应多变的环境,因此产生了非常多的变种算法,这里我就不多说,各位可以自行去查找一些资料。

指纹法

跟三点定位法不同的是,指纹法不需要知道蓝牙等设备的位置。指纹法通过事先将某个位置采集的信号的特征储存在数据库中,每次对用户所在位置采集的信号与数据库里的数据进行匹配(匹配算法有很多,这里不提),利用算法找到最佳的匹配点,然后确定用户位置。

举个例子吧,还是这张图:

假设我提前在O点采集信号,采集到信号S=[SA,SB,SC]S=[S_A,S_B,S_C]S=[SA​,SB​,SC​],将这三个数据存到数据库中。当用户走到相同的位置时,他的收信设备收到信号为S′=[SA′,SB′,SC′]S'=[S_A',S_B',S_C']S′=[SA′​,SB′​,SC′​],此时我在数据库中去查找与S′S'S′最相似的数据,匹配发现最相似的数据是SSS,反过来就能确定用户此时在O点。

算法的难点

三点定位法和指纹法主要的难点基本相同。首先,不论是蓝牙还是WI-FI,发送的都是电磁波,电磁波在传播过程中容易受到环境噪声的干扰(例如多径效应)。其次,发送信号和接收信号的设备硬件本身的品质参差不齐,获取到的信号特征也就天差地别。

简而言之,如何降低环境干扰、降低不同品质收发信装置的差异,这些是做算法需要研究的重点。

评价

个人观点,蓝牙和WI-FI应该还是未来室内定位研究的重点。

地磁

地磁的核心算法与上面提到指纹法一致,只不过采集的数据由电磁波信号换成了地磁场信号。

地磁作为定位方式的依据就在于建筑内部混泥土材料中钢筋的不同分布,使得建筑物内部磁场产生了稳定的变化,因此我们就利用建筑内部不同位置的磁场来用作指纹法匹配的数据来源。

地磁不稳定

我们都知道磁场会受到铁制品的干扰,首先汽车就是一个大型的铁制品了,其次人体血液是含铁成分的,那么这样一来,车来车往的室内停车场和人来人往的医院以及商场就很难保持磁场的稳定性,定位效果也将大打折扣。

磁场变化缓慢

虽然我前面说过,磁场定位的依据是由于建筑物内部的钢材,但是实际上部分区域的差异可能并没有那么的明显,打个比方就是5米远和10米远的磁场特征几乎一致,这个时候匹配算法就不一定能够很好的进行区分,定位精度就会稍打折扣。

评价

这是我不太看好的一种定位方式,费时费力且定位精度差。

光定位

实话说,光定位我没有真正去实现过,国内几乎很少有听说哪家公司用到这项技术的。

光定位如同字面意思,就是利用灯光来传递信号,跟前几年有点火的Li-Fi差不多。原理就是利用灯光的闪烁来发送数据,各位可以想象成摩斯密码,利用调节灯光的闪烁间隔来发送信号。当然灯光闪烁速度达到一定的频率后,人眼是无法识别的,因此并不会影响用户的感官。光定位需要通过相机来捕捉信号,再利用对应的解码算法来读取数据。

信号不能重叠

毕竟是类似摩斯密码的形式,两个不同的摩斯密码同时播报,别人也就无法识别了。这样的特性就限制了每盏灯之间的距离不能太近,太近了彼此之间就会产生干扰,这么一来灯与灯之间会有盲区。另外,在一盏灯的辐射范围内,是无法确定用户的具体方位(只能知道在距离某盏灯X米的距离,不知道在灯的前后还是左右),这样一来就限制了光定位的定位精度。

编解码算法

为了防止被别人利用,编解码算法一般需要自行设计,实现难度较高,不是一般公司玩得起的。

评价

是一种有趣的方法,但是实现难度大,效果却并不比蓝牙更好。和惯性导航结合倒是可以一试。

行车定位

上面说的其实都是针对人在步行的时候如何进行定位,那么如何对室内停车场中的行驶车辆进行定位呢?这其实是业内的一个难点,据我所知目前暂时没有任何公司能做到这一点。

车上定位又是一种完全不一样的场景,我在上面说的的方法几乎都将失效:

  1. 惯性导航完全失效,不再有步态信息和方向信息(磁场干扰)
  2. 蓝牙、WI-FI连接速度慢,无法跟上车辆的速度(即使行驶速度只有10km/h)
  3. 磁场就更不用说,在车辆中就相当于在一个大型铁块的内部
  4. 光定位是唯一有可能性的,毕竟光速30km/s,然而汽车的车窗一般都有遮光功能,光信号衰弱快,可能难以识别。

车行中唯一有可能性的就是光定位,或者说现在比较火的视觉定位(手机就暂时别想了)。

总结

室内定位其实入门门槛并不高,然而其中还是有不少学问的,本人毕竟接触时间也并不长,上面提出些难点也就当抛砖引玉了,若各位有什么新思路,也望不吝赐教。

话外多提一点,若是嫌算法麻烦,贴个二维码小字条也还是能快速定位的,当然美不美观就是另外一回事了,哈哈。

说一说室内定位中的一些黑幕相关推荐

  1. 好好说一说室内定位技术

    室内定位技术进过了几十年的发展,从未像今天这样引起大家的关注,这无疑得益于VR技术在这几年的蓬勃发展,52VR的编辑们今天就梳理下已有的定位技术和手段,有哪些点值得我们参考和注意呢? 那么传统的室内定 ...

  2. 机器人学习--室内定位的通信学科背景方法

    移动机器人室内定位方法有很多种, 不同学科背景的人可以使用不同的技术. 不局限于目前的激光SLAM构建栅格地图,之后用AMCL来进行定位: 以下引用通信领域的多个定位方法和思想 思想: 三边定位,已知 ...

  3. 室内定位系列 ——WiFi位置指纹(译)

    摘要 GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法.然而WiFi并不是专门为定位而设计的,传统的基于时 ...

  4. 基于Wi-Fi的室内定位在美团总部的实践和应用(上)

    室内定位技术的商业化必将带来一波创新高潮,尤其是在O2O领域,各种基于此技术的应用将出现在我们的面前.我们可以想象一些比较常见的应用场景,比如在大型商场里面借助室内导航快速找到目标商铺,商店根据用户的 ...

  5. rssi室内定位算法原理_室内定位方案常用的4种定位算法

    目前常见的室内定位技术有超宽带UWB室内定位技术,蓝牙室内定位技术,RFID(无线射频识别)定位,超声波定位,Wi-Fi定位等.室内定位依赖于定位算法,定位算法决定了室内定位的模式.室内定位种类虽然比 ...

  6. 室内定位中非视距的识别和抑制算法研究综述(部分)

    源自:控制与决策   作者:齐小刚  陈谌   李芷楠 针对存在非视距(non-line-of-sight, NLOS)的室内定位算法进行研究. 首先描述室内定位中的常用技术和算法(航迹推算.指纹识别 ...

  7. 领航跟随型编队(十四)室内定位技术概述

    室外定位技术提出早.发展快且成果显著.室内定位技术相比而言起步较晚,该领域还有很多空白,但人们对室内定位技术的关注从未中断.美国联邦通信委员会FCC(Federal Communications Co ...

  8. 基于WiFi的室内定位

    摘要 GPS难以解决室内环境下的一些定位问题,大部分室内环境下都存在WiFi,因此利用WiFi进行定位无需额外部署硬件设备,是一个非常节省成本的方法.然而WiFi并不是专门为定位而设计的,传统的基于时 ...

  9. 室内定位技术:分类、方法与应用综述

    [摘要]近年来,面向需求越来越迫切的室内位置服务,室内定位技术发展迅速,是移动互联时代的研究热点,逐步在各行各业发挥作用,给人们的日常生活带来了一定的影响.本文对国内外室内定位技术的研究现状进行了分析 ...

最新文章

  1. NSPredicate
  2. Part1_4 python函数、文件操作、异常处理
  3. 《转载》POI导出excel日期格式
  4. mac 更换默认蓝牙适配器_蓝牙防丢器实现安卓的BLE接口编程
  5. 真机x86 android分辨率,Android-x86入门之--启动参数设置
  6. 施一公院士关于科研、读博的精彩演讲
  7. 菜鸟学IT之python3关于列表,元组,字典,集合浅认识!
  8. 七牛云上传截图后的base64位遇到的问题总结
  9. Hadoop大数据生态组件环境安装
  10. java题目青蛙跳杯子_历届试题 青蛙跳杯子
  11. android snackbar 底部,Android KitKat:Snackbar不在屏幕的底部
  12. Android UsageStatsService(应用使用统计服务)的学习与调研
  13. 华为服务器培训文档,华为机架服务器渠道培训.ppt
  14. 辽宁省全国计算机 考点 社会,辽宁2018年9月全国计算机二级考试报考地点
  15. 【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)
  16. eclipse工程图标上有个红色感叹号
  17. Sublime Text2 好用技巧备忘
  18. Visual Studio .Net团队开发(Visual SourceSave6.0 在C#中的应用)
  19. 安装Ceres Solver
  20. 老照片瞬间修复神器!快帮你家的长辈恢复照片去吧

热门文章

  1. 高数课后习题讲解下册 pdf(免费)
  2. iOS- 本地文本容错搜索引擎2--如何实现英文(英文首字母,汉语拼音)对中文的搜索?...
  3. 手写数字识别实现课设cnsd博客_使用Tesseract轻松实现OCR字体识别
  4. java 中date类常用方法
  5. 系统分析师论文4:论需求分析方法及应用
  6. 针孔相机标定-基于张正友标定法
  7. 南京邮电大学网络攻防训练平台writeup
  8. 《Python 黑帽子》学习笔记 - proxy - Day 10
  9. 远程批量自动安装中标麒麟操作系统的方法
  10. 对于RE文件管理器打开安卓手机的Sqlite文件速度很慢的解决办法