首页 > 其他分享 >基于粒子滤波的WiFi-PDR融合室内定位

基于粒子滤波的WiFi-PDR融合室内定位

时间:2024-03-22 20:33:41浏览次数:24  
标签:位置 粒子 WiFi 滤波 PDR 用户 particles

基于粒子滤波的WiFi-PDR(行人航位推算)融合室内定位技术结合了WiFi定位的优势和PDR系统的高精度,通过粒子滤波算法实现室内高精度定位。这种融合方法有效地克服了各自单独技术的限制,提高了室内定位的准确性和可靠性。下面是该技术的概述和实现方法。

技术背景

  • WiFi定位:利用室内WiFi热点的信号强度指示(RSSI)来估计用户的位置。其优势在于易于部署,成本较低,但由于室内环境的复杂性,其定位精度受到多路径效应和信号衰减的影响。
  • PDR系统:通过捕捉行人的步伐信息,如步长和航向变化,来估计行人的移动路径。PDR系统的优势在于能够提供相对精确的移动轨迹,但随着时间推移容易累积误差,尤其是在没有初始准确位置信息的情况下。

融合技术概述

基于粒子滤波的WiFi-PDR融合室内定位技术,通过结合两种技术的优点,使用粒子滤波算法作为核心融合机制,实现了更准确和可靠的室内定位。粒子滤波是一种序贯蒙特卡洛方法,通过一组随机样本(粒子)来表示概率分布,能够有效处理非线性和非高斯的动态系统。

实现方法

  1. 初始化:在室内环境中布置足够数量的WiFi接入点,并记录每个接入点的位置信息。同时,初始化一组粒子,每个粒子代表一个可能的用户位置。

  2. WiFi定位更新:使用WiFi RSSI值计算用户位置的初始估计,并更新粒子的权重。权重高的粒子更可能接近用户的真实位置。

  3. PDR更新:根据用户的步伐信息(如步长和方向)更新每个粒子的状态,这反映了用户的移动。

  4. 粒子滤波:结合WiFi定位和PDR更新后的粒子权重,使用粒子滤波算法对粒子集合进行重采样,淘汰权重低的粒子,复制权重高的粒子,以保持粒子数目不变。

  5. 位置估计:根据所有粒子的状态和权重,计算用户位置的估计值。这个位置估计会随着每一步的移动而更新。

优势

  • 高精度:融合了WiFi和PDR的优势,能够有效减少各自技术的误差,提供更准确的室内定位。
  • 动态适应:粒子滤波能够适应室内环境变化和用户移动状态的变化,实时更新定位信息。
  • 强鲁棒性:即使在信号弱或干扰强的环境下,也能保持较高的定位准确性。

应用场景

基于粒子滤波的WiFi-PDR融合室内定位技术,适用于商场、机场、博物馆等大型室内环境,为导航、定位服务和室内空间分析提供

要创建一个简化版的基于粒子滤波的WiFi-PDR融合室内定位的演示,我们需要模拟一个小型的室内环境,假设有几个WiFi接入点,并模拟一个用户在室内移动。为简化演示,我们将忽略WiFi信号强度的计算,而是使用预定义的接入点位置和用户的移动路径来更新粒子的位置。接下来,我将提供一个简化的Python脚本,用于演示基于粒子滤波的WiFi-PDR融合室内定位过程。

这个示例将包括以下步骤:

  1. 初始化环境(包括WiFi接入点的位置和初始粒子集合)。
  2. 用户移动模拟(PDR更新)。
  3. 粒子权重更新(基于与WiFi接入点的相对距离)。
  4. 粒子重采样。
  5. 位置估计。
import numpy as np
import matplotlib.pyplot as plt

# 环境设置
wifi_access_points = np.array([[2, 1], [8, 1], [5, 5]]) # WiFi接入点位置
n_particles = 100 # 粒子数量
environment_size = (10, 10) # 环境大小

# 初始化粒子集合
particles = np.random.rand(n_particles, 2) * environment_size # 随机初始化粒子位置
weights = np.ones(n_particles) / n_particles # 初始化粒子权重

# 用户移动模拟(PDR更新)
user_path = np.array([[1, 2], [3, 4], [5, 6], [7, 8]]) # 用户移动路径

def update_particle_weights(particles, weights, wifi_access_points, user_position):
    """更新粒子权重基于WiFi接入点和用户当前位置"""
    for i, particle in enumerate(particles):
        # 假设权重与用户到每个WiFi接入点距离的倒数成正比
        weight = sum(1.0 / np.linalg.norm(particle - ap) for ap in wifi_access_points)
        weights[i] *= weight
    weights /= np.sum(weights) # 归一化权重

def resample_particles(particles, weights):
    """基于权重重采样粒子"""
    indices = np.random.choice(range(n_particles), size=n_particles, p=weights)
    return particles[indices]

# 模拟用户移动并更新粒子
for user_position in user_path:
    update_particle_weights(particles, weights, wifi_access_points, user_position)
    particles = resample_particles(particles, weights)

    # 位置估计为所有粒子位置的加权平均
    estimated_position = np.average(particles, weights=weights, axis=0)
    
    # 绘制当前状态
    plt.scatter(wifi_access_points[:,0], wifi_access_points[:,1], color='red', label='WiFi AP')
    plt.scatter(particles[:,0], particles[:,1], color='blue', alpha=0.5, label='Particles')
    plt.scatter(user_position[0], user_position[1], color='green', label='User Position')
    plt.scatter(estimated_position[0], estimated_position[1], color='black', label='Estimated Position')
    plt.xlim(0, environment_size[0])
    plt.ylim(0, environment_size[1])
    plt.legend()
    plt.show()

请注意,这个演示简化了许多实际应用中的问题,如信号衰减模型、复杂环境下的多路径效应、以及PDR系统的步长和方向误差。在实际应用中,粒子滤波算法需要结合更复杂的模型和实时数据来实现高精度的室内定位。

在这里插入图片描述

结果含义

给出的四张图模拟了用户在室内环境中移动的过程,每一步都更新了粒子的位置、权重,并进行了重采样,最后估计了用户的位置。每张图代表用户移动到新位置后的一个瞬间,展示了以下信息:

  1. 红色点:表示WiFi接入点的位置。这些是固定的,用于通过与粒子的相对距离来更新粒子的权重。

  2. 蓝色点:表示粒子的位置。粒子是用来估计用户可能位置的一系列点,它们根据用户的移动(PDR更新)和与WiFi接入点的相对距离(粒子权重更新)进行调整。

  3. 绿色点:表示用户的实际位置。在这个演示中,用户按照预定的路径移动,路径由user_path数组给出。

  4. 黑色点:表示根据所有粒子的加权平均计算出的用户位置的估计。这是通过考虑所有粒子的当前位置和权重来计算的。

随着用户的移动(每一步),粒子根据PDR系统的更新和与WiFi接入点的相对距离进行调整。然后,基于粒子的新权重对粒子进行重采样,以反映用户的最新位置信息。通过这种方式,粒子集合随时间逐步收敛到用户的实际路径附近,提供对用户位置的准确估计。

这四张图展示了随着时间(用户移动)的推进,系统如何逐渐调整粒子分布,并通过粒子滤波算法逐步提高对用户位置的估计精度。

为什么蓝色点越来越少,绿色点会越来越接近黑色点吗

在提供的Python脚本示例中,蓝色点(粒子)的数量看起来似乎在减少,但实际上粒子的总数是保持不变的。出现这种现象的原因是重采样过程。在重采样步骤中,权重较低(即与用户估计位置相距较远)的粒子会被淘汰,而权重较高的粒子会被复制。这可能导致一部分粒子聚集在某些区域,从而在视觉上看起来像是粒子的总数在减少。实际上,这反映了算法逐渐集中粒子到用户的估计位置,提高了定位的准确性。

至于绿色点(用户的实际位置)与黑色点(根据所有粒子的加权平均计算出的用户位置的估计)之间的关系,随着时间的推移,绿色点确实会越来越接近黑色点。这是因为粒子滤波算法的目的是利用所有可用信息(在本例中是PDR更新和WiFi定位信息)来提高对用户位置的估计准确性。随着每一步的移动和相应的粒子权重更新与重采样,粒子分布会更好地反映用户的实际移动路径,使得估计位置(黑色点)逐步接近实际位置(绿色点)。

简而言之,蓝色点看起来越来越少是因为粒子重采样过程导致的视觉效果,实际粒子数量是不变的。而绿色点会越来越接近黑色点,是因为粒子滤波算法成功地利用了PDR和WiFi定位信息,随着时间推进,逐步提高了位置估计的准确性。

标签:位置,粒子,WiFi,滤波,PDR,用户,particles
From: https://blog.csdn.net/qq_44154915/article/details/136943736

相关文章

  • 【ai技术】(3):树莓派4,成功安装ollama软件,内存4G,推荐使用命令行界面安装,使用raspi-config
    1,关于raspberrypi4项目https://www.bilibili.com/video/BV1K2421P71h/【ai技术】(3):树莓派4,成功安装ollama软件,内存4G,安装命令行版本,使用raspi-config配置wifi,速度9t/s2,下载raspberrypi镜像项目地址:https://www.raspberrypi.com/software/operating-systems/#r......
  • ESP8266 + L298N实现WIFI遥控小车
    参考资料:https://blog.csdn.net/m0_60790717/article/details/126914314https://blog.csdn.net/weixin_52801934/article/details/126180831 ESP8266实物和引脚图(图像来源于百度图片): L298N实物和引脚图(图像来源于百度图片): 硬件连接:L298N连接两个电机,来控制小车的两......
  • 卡尔曼滤波公式推导(自用)
    自用笔记。(仅适用于线性系统)1.引入预测概念 2.引入数据融合概念  3.引入协方差矩阵  4.卡尔曼增益推导5.公式使用顺序  ......
  • OpenCV4中的图像滤波函数定义,原理,以及区别(Python)
    图像滤波1.方框滤波方框滤波的滤波器为矩形,滤波器中的所有元素值均相等。定义如下:dst=boxFilter(src,ddepth,ksize,dst=None,anchor=None,normalize=None,borderType=None)src:输入图像。ddepth:处理后的目标图像的深度,若为-1,则深度与原始图像的深度相同。ks......
  • 8款免费WiFi分析工具应对无线管理
      8款免费WiFi分析工具应对无线管理网络无线连接正在飞速发展,对企业也越来越重要。但如果你管理过无线局域网,就会知道,这是非常复杂的工作,所以我们需要很多工具来帮助分析和解决WiFi性能问题,本文中为大家介绍了8款免费的WiFi分析工具。无线连接正在飞速发展,对企业也越来......
  • 【姿态解算】基于扩展卡尔曼滤波EKF实现姿态解算附Matlab代码
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • 【滤波跟踪】基于Huber函数和最大相关熵的抗差滤波算法实现GNSS导航定位粗差处理结合
     ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • WiFi的WPA3安全技术
    WiFi安全加密的演进下图所示,当前最新的加密方式是WPA3。WPA3对现有网络提供了全方位的安全防护,增强了公共网络、家庭网络和802.1X企业网的安全性。 WPA3的核心为对等实体同时验证方式(SimultaneousAuthenticationofEquals,SAE),即通信双方利用本地私钥和对方传输的公钥......
  • 一个命令查看自己的WIFI密码
    一个命令查看自己的WIFI密码忘记wifi密码怎么办?一个命令查看自己的wifi密码。一、打开命令行使用快捷键“Win+R”,打开运行窗口,输入“cmd”后回车即可。二、输入命令networkshell命令输入命令networkshell,简称netsh;再输入wlan,也就是wifi;最后输入showprofile。......
  • 腔体滤波器原理解析
    从几十MHZ的低频段到几十GHZ的高频段都可以正常工作。因此,在无线通讯系统工作的频率范围内,就可以使用很多不同种类的滤波器。并且随着现在越来越复杂的电磁环境,则需要性能要求更高的微波滤波器。因此,对于-一个性能优越的滤波器的设计,就需要在设计时更加关心如何降低有用信号在......