Android 原生Wi-Fi室内定位探究

本文详细介绍Android设备上的室内定位技术,包括传统GPS与Network定位的优缺点对比,以及Android P引入的802.11mc协议与RTT技术,实现亚米级室内定位精度。

一.关于室内定位的一些技术包括:RFID、蓝牙、红外、UWB、 ZigBee、WiFi和行人航迹推算PDR(Pedestrian Dead Reckoning)

       参考资料:http://wap.cnki.net/lunwen-1014235696.html

二.Android内置的定位服务,目前Android内置的定位方式有以下几种:

  1. GPS定位

优点:速度快、精度高、可在无网络情况下使用

缺点:首次连接时间长、只能在户外已经开阔地使用,设备上方有遮挡物就不行了、比较耗电

  1. Network(Wi-Fi和移动网络)定位

优点:和基站定位一样,它的优势在于收环境影响较小,只要有Wifi的地方可以使用(支持室内定位)。

缺点:需要有wifi、精度不准,大约几十米。

参考资料:https://blog.youkuaiyun.com/qq_24531461/article/details/72972389

所以在Android P之前也是支持Wi-Fi室内定位的,只是由于以下原因,所以国内大部分应用都是选择的第三方定位服务(如:高德,百度,腾讯)

    1. 没有安装GMS服务

    2. GPS不支持室内定位

    3. Network(Wi-Fi和移动网络)支持室内定位,但需要连接谷歌服务器,而且定位不精准

三.在Android P上利用802.11mc协议以及RTT实现Wi-Fi室内定位:(精度可到1到2米)

Android 9 添加了对 IEEE 802.11mc Wi-Fi 协议(也称为 Wi-Fi Round-Trip-Time (RTT))的平台支持,从而让您的应用可以利用室内定位功能。

在运行 Android 9 且具有硬件支持(所谓硬件支持指的是支持位置服务,支持Wi-Fi)的设备上,应用可以使用 RTT API 来测量与附近支持 RTT 的 Wi-Fi 接入点 (AP) 的距离。 设备必须已启用位置

服务并开启 Wi-Fi 扫描(在 Settings > Location 下),同时您的应用必须具有 ACCESS_FINE_LOCATION 权限。设备无需连接到接入点即可使用 RTT。

为了保护隐私,只有手机可以确定与接入点的距离;接入点无此信息。如果您的设备测量与 3 个或更多接入点的距离,您可以使用一个多点定位算法

来预估与这些测量值最相符的设备位置。 结果通常精准至 1 至 2 米。

实现步骤:

  • 框架:
    • AOSP 代码
    • 启用 WLAN RTT:需要功能标记
  • WLAN RTT (IEEE 802.11mc) HAL 支持(意味着固件支持)

要实现此功能,请采用 WLAN HIDL,另外还要启用功能标记:

  • 在位于 device/<oem>/<device> 的 device.mk 中,修改 PRODUCT_COPY_FILES 环境变量,以便支持 WLAN RTT 功能:

PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml

最终上层调用WifiRttManager实现

参考资料:

https://www.metaltoad.com/comment/6070#comment-6070

https://developer.android.com/about/versions/pie/android-9.0

https://developer.android.com/reference/android/net/wifi/rtt/package-summary

http://www.cnblogs.com/huangguanyuan/p/9990828.html

https://blog.youkuaiyun.com/yi_master/article/details/80083365

随着人们对基于位置的服务(Location Based Service,LBS)需求日益增大,以及无线通信技术的快速发展,无线定位技术成为了一个研究热点。人们在室外广泛使用目前较成熟的GPS,A-GPS等定位系统进行定位,但是在复杂的室内环境中,这些技术的定位精度不高,不能满足室内定位的需求。WIFI网络具有通信快速、部署方便的特点,它在室内场所广受欢迎.Android系统从几年前发布以来在智能手机操作系统市场占有率不断升高,成为目前使用最为广泛的智能手机操作系统,同时Android移动终端自身具备WIFI无线连接功能。指纹定位算法以其独特的优势减小了对室内难以精确定义的信号传播模型的依赖性,成为定位技术中的一个研究热点。基于此,本课题重点研究并改进指纹定位算法,设计实现基于AndroidWIFI室内定位系统。 首先,通过阅读大量相关的文献资料,对比分析了当前国内外WIFI室内指纹定位技术的研究现状对其中涉及到的相关技术的原理和特点进行介绍分析,包括WIF1无线通信技术,室内无线定位技术以及位置指纹定位技术,并根据室内WIFI指纹定位技术的特征对定位过程中的影响因素进行分析。 其次,根据前面提到的定位过程中的关键影响因素,介绍了对应的解决方案。分析与研究了几种典型的指纹定位算法,包括最近邻法(NN).K近邻法(KNN)、K加权近邻法(WKNN),并提出算法的改进方案,使用MATLAB软件进行算法的仿真分析,寻求其中的最佳参数值以及定位性能差异。通过分析几种算法的性能仿真结果,拟定了基于最强AP法的改进算法作为定位系统采纳的算法。 然后,通过对基于AndroidWIFI室内定位系统的需求分析,提出了一种基于AndroidWIF1室内定位系统设计方案。接着介绍了定位系统软件开发环境,并设计了定位系统总体架构,以及定位系统的各个功能模块。在各项设计确定以后,采用JAVA语言编程实现定位系统的各项功能。 最后,搭建了WIFI室内定位实验环境,使用完成的室内定位系统结合硬件资源,在实验环境下,进行离线阶段创建数据库以及在线阶段的定位测试,并记录呈现在定位客户端上定位结果,分析对应的定位性能.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值