经典文献阅读之--WiROS(用于机器人的WiFi感知工具箱)

0. 简介

近期的许多研究探索了使用基于WiFi的感知技术来改善SLAM(同时定位与地图构建)、机器人操控或探索。此外,WiFi的广泛可用性使其成为最具优势的射频信号。但WiFi传感器缺乏一个准确、易处理、多功能的工具箱,这限制了它们与机器人感应器堆栈的广泛应用。我们开发了WiROS来满足这一迫切需求,为许多与WiFi相关的测量提供了易于消费的ROS主题。具体而言,WiROS是一个即插即用的WiFi感知工具箱,提供了粗粒度的WiFi信号强度(RSSI)、细粒度的WiFi信道状态信息(CSI)和其他MAC层信息(设备地址、数据包ID或频道信息)。此外,WiROS开源了最先进的算法,以校准和处理WiFi测量,为接收到的WiFi信号提供准确的方位信息。代码已经在Github上开源了。

在这里插入图片描述

图1:传感器硬件,如摄像头和激光雷达,已广泛支持ROS节点。本工作发布了WiROS,一个与WiFi传感器兼容的类似ROS节点。

1. 主要贡献

为了在机器人传感器堆栈中提供可访问的WiFi感知信息的广泛目标,我们遵循三项设计原则。WiFi传感器包装应该是:

  1. 准确的:准确提供WiFi感知测量,

  2. 可操作的:快速启动和易于校准,

  3. 多功能的:在配备WiFi的空间中广泛可用

    相反,WiROS利用广泛使用的802.11ac WiFi协议,提供了2倍的感知带宽(提高了准确性)。我们在先前的工作[11]基础上构建了一个WiFi感知框架,做出了以下贡献并克服了先前工作的局限:

    在这里插入图片描述

    图2: CSI可测得的信号参数。可以在接入点的本地坐标系中测量直射路径(实线)和多径(虚线)的到达和离开角度。还可以测量机器人的速

  4. 可扩展的WiFi感知框架:我们提供了一个ROS节点(“CSI-Node”),作为对用于收集CSI的硬件的简单抽象,以便简单集成和利用基于ROS的时间同步。随后,WiROS提取各种物理参数(信号到达和离开的角度,环境中反射的角度位置),以帮助机器人操作。例如,WiROS可以测量单个接收到的WiFi数据包中其他机器人或任意发射器(WiFi AP、笔记本电脑、手机或物联网设备)的方位,而无需与现有网络进行关联或认证。这可以避免网络拥塞,无需与网络基础设施合作,并允许在多个室内空间广泛部署我们的系统。显然,WiROS实现了多功能的WiFi感知,更多细节可在第3节中找到。

  5. 易于校准和设置:商用AP带有独特的硬件偏差,可能会使信号测量产生偏差[17]。这些偏差需要事先测量,并且需要校准测量以估计各种物理参数,包括传输信号的方位。过去的工作[18],[19],[16]需要拆卸设备并手动测量这些偏差,严重降低了传感器平台的可操作性。相反,我们提供了一种自动校准机器人上的相位偏移的解决方案,扩展了[17]中的工作。这允许无忧、实时的无线校准,第4节提供了更多细节。

  6. 感知算法:最后,我们提供了一个ROS节点(“特征提取节点”),使用最先进的技术[20],[21]来估计WiFi信号的到达和离开角度。此外,我们提供了接收到的WiFi信号的直观可视化,以帮助调试。提供此节点有两个关键目的。首先,它允许直接使用WiFi测量进行SLAM和其他导航目的。其次,它为使用WiFi CSI执行更广泛任务(如多普勒估计或飞行时间测量)提供了一个蓝图[22]。这些概念在第5节中进一步阐述。

2. 使用WiROS

首先,我们将演示如何使用Asus RTAC86U [23]与WiROS,然而,其他芯片组也可以轻松使用,并且我们将提供更多关于如何将其他芯片组集成到WiROS框架中的细节。要设置硬件,我们需要按照以下三个简单的步骤进行操作:

  1. 使用catkin编译开源ROS软件包。
  2. 通过刷写提供的固件设置接入点。
  3. 配置提供的ROS参数并将WiFi测量数据作为ROS主题进行传输。

为了详细说明这些步骤,我们将使用这个Asus现成的接入点作为WiFi接收器或发射器来设置WiROS的CSI节点。如图3所示,CSI节点接收蓝色的ROS参数作为输入,稍后将对其进行简要讨论。

在这里插入图片描述

图3:WiROS的模块图:从图1中可看到WiROS中的两个主要模块——CSI节点和特征提取节点,用于提取原始WiFi测量值,并对这些测量值进行校准和处理。蓝色文字表示控制平面参数,红色文字表示公开的测量值。WiROS扩展了底层黑盒‘CSI提取工具包’的功能。

2.1 设置接收器

首先通过“channel”参数配置特定的WiFi频率通道和带宽。还可以通过“packet”参数包括特定MAC地址的过滤器。如果使用全通滤波器,WiROS将监视并提供指定WiFi频道和带宽上所有WiFi设备发出的接收信号的WiFi测量数据。配置完成后,可以通过rosrun wiros csi node csi node命令启动接收器。另外,我们还提供了简单的启动文件以进一步提高可操作性。

然而,如前所述,从特定频道和带宽接收WiFi信号可能会降低在野外环境中的可用性。大多数企业WiFi网络部署多个接入点(AP),为建筑物内的用户提供服务。这些网络中的相邻AP通常部署在不同的频道上,以减少干扰。因此,WiROS将无法获取配置在其他频道上的AP的CSI测量数据。为了确保系统的多功能性,我们实现了一个ROS服务,允许用户切换WiFi传感器的频道。此外,WiROS还自动执行这种频道切换,以定期扫描所有WiFi频道来监视最近AP的频道。可以通过“setup”参数启用这种自动行为。

2.2 设置发射器

此外,研究人员经常需要稳定的WiFi传输源,需要配置WiFi频率通道、带宽或MAC地址。例如,稍后在第4节中,我们将需要配置WiFi接入点以连续发送数据包以计算硬件校准参数。可以使用“channel”和“setup”参数来配置发射器。配置完成后,可以通过与之前相同的rosrun命令启动接入点。接下来,我们将讨论通过以太网连接可用的ROS主题中的测量数据的概述。

2.3 公开的测量数据

一旦接收器设置好,它将捕获配置频率通道和带宽中的环境WiFi信号的测量数据。这些测量数据将通过ROS主题以自定义的WiFi传感ROS消息rf_msgs/Wifi公开,如图3所示。在各种公开信息中,信号强度(RSSI)和信道状态信息(CSI)是两种常用的测量数据。以分贝为单位的RSSI提供了发射器距离的粗略估计,并被广泛用作衡量通信吞吐量的代理,用于改善SLAM性能的特征,或者粗略地绘制发射器的特征。相反,CSI提供了更精细的信息。它是一个复数矩阵,指示了在一组发射频率和接收天线上接收信号的幅度和相位。传输频率的数量由带宽(20、40或80 MHz)控制,其中80 MHz带宽仅在802.11ac协议中支持。默认情况下,对于Asus硬件,有4个接收天线,而其他系统通常只有3个接收天线。更大的带宽和天线数量提供了更准确的感知能力。此外,如果发射器配置了多个天线,则还存在一个用于传输天线数量的附加维度。然而,这些CSI测量数据很难可视化。为了提高WiFi传感器的可操作性,我们将在接下来提供WiROS中包含的实时可视化的更多细节。

2.4 测量数据的可视化和处理

通过部署特征提取节点2,可以处理和可视化通过ROS主题可用的CSI测量数据。该节点提供了两种重要的可视化方式——幅度-相位剖面和方位-距离似然剖面。幅度-相位剖面(见图4(a))提供了CSI测量数据的可视化,分别提供了接收信号的幅度(顶部图像的y轴)和相位(底部图像的y轴)的分贝和度数,以及各种子载波频率(x轴)和四个接收天线(作为不同线条)。方位-距离剖面(见图4©)指示了WiFi信号通过直线直接路径和多个反射路径到达的情况。剖面的峰值指示了发射器的方位(在垂直轴上)以及直接路径信号及其反射路径回波的相对距离。此外,这些剖面的可视化也在补充视频中提供。如图3所示,这两种可视化方式以sensor_msgs/Image的形式导出,可用于调试无线信道,检查所有接收天线是否表现一致,或者调整处理参数,如要使用的算法、平均时间窗口或RSSI阈值。此外,图4(b)中还显示了在接入点的本地坐标系中接收信号的方位(白色箭头)的简单可视化。

在这里插入图片描述

图4:(a) 幅度-相位剖面,顶部图显示了4个接收器和234个子载波频率上的幅度,底部图显示了相位。(b) 信号在接入点本地坐标系中预测方向的简化可视化(白色箭头)。© 方位-距离似然剖面,红线表示最强的接收路径,因此也表示了信号的方向。这些图像通过ROS RViz软件实时可视化。

此外,特征提取节点开源了最先进的方位估计算法[20],[1],[21],以测量接收信号的到达和离开角度。这些测量值实时处理,并通过自定义的WiFi方位消息rf msgs/Bearing暴露为ROS主题。这简要描述展示了WiROS的WiFi传感器在实时数据采集、处理和调试方面的易用性,改进了需要繁琐数据文件后处理的最新系统。除了这一描述,代码存储库中还提供了详尽的设置和使用文档。接下来的部分将提供有关实施细节的进一步具体信息,并讨论图3中的特定流程块。

3. CSI节点:与ROS集成的中间件

“CSI节点”以模块化的C++编写,允许其与多个CSI提取工具包(图3中的黑匣子)进行接口。目前已经在Nexmon-CSI的[11] Asus RT-AC86U [23]平台上进行了测试,因为它是目前最适合商用CSI提取的解决方案。CSI节点已在ROS Kinetic、Melodic和Noetic上进行了测试。它可以直接在树莓派上运行,或者通过专用以太网连接到中央服务器上运行。

3.1 数据路径

WiROS从黑匣子(红色箭头所示)通过以太网连接配置的UDP套接字接收原始CSI数据包。 “解码数据”块将这些原始WiFi数据包解码,以便以易于消费的rf_msgs/WiFi格式呈现测量结果。

3.2 控制路径

CSI节点还通过API调用提供不同的无线电配置。这为最终用户抽象出了特定的硬件实现。专用的“传感器配置”子模块配置底层WiFi无线电。它需要“登录”参数以访问WiFi AP,“通道”参数以配置WiFi频率通道和带宽,“数据包”参数以配置发射机的信标速率或过滤WiFi数据包。
同时运行的两个子模块(如果通过“设置”参数启用)负责跟踪和调整AP使用的频率通道。 “AP扫描器”定期扫描不同的通道,并确定最接近的WiFi AP,以通过rf_msgs/AccessPoints消息呈现信息来重新配置WiFi无线电。 “通道切换”子模块处理最小感知停机时间(小于500毫秒)的通道切换。

4. 快速简便的校准

校准传感器是必要的第一步,必须易于执行。通常,校准可能因不同的频率通道而异,并且对于每个硬件都是独特的。这需要一个易于部署且准确的校准框架,以便跟踪WiFi传感器的可行性。本节将详细介绍通过“特征提取”节点中的Python3脚本提供的一次性无线校准系统。

4.1 用法

为了校准我们在上一节中收集的原始WiFi消息,我们必须在每个天线和频率测量上应用独立的相位校正。为了计算这个校准,首先,按照第2节中讨论的内容,将接收器和发射器配置到特定的WiFi频率通道。接下来,通过将WiFi传感器“接收器”放置在机器人上,将WiFi传感器“发射器”放置在空间中的静态预定义位置,收集原始CSI测量。在这个设置中,我们试图校准WiFi传感器接收器。在相对自由的空间中以任何模式运行机器人,在距离发射器5米半径范围内收集机器人的航迹测量( r t → \overrightarrow{r_t} rt ))作为nav_msgs/Odometry和来自CSI节点的WiFi测量( W t W_t Wt)作为rf_msgs/Wifi。注意发射器( t → \overrightarrow{t} t ))在机器人生成的地图中的位置(通常在使用LiDAR时可见),并测量接收器上的相对天线位置( a → i \overrightarrow{a}_i a i))。这些数据可以输入到校准框架中,以生成无线校准矩阵,该矩阵由“特征提取”节点2提供。

4.2 幕后

…详情请参照古月居

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/887399.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VUE2常见问题以及解决方案汇总(不断更新中)

解决vue项目中 el-table 的 row-click 事件与行内点击事件冲突,点击事件不生效(表格行点击事件和行内元素点击事件冲突)需要阻止事件冒泡 问题描述 1.点击列的编辑按钮,会触发按钮本身事件,同时会触发行点击事件 2.点…

SaaS 应用如何助长网络犯罪

过去十年,软件即服务 (SaaS)的采用呈爆炸式增长,彻底改变了我们的工作方式。 从电子邮件平台到通信和协作应用程序,再到文件存储和共享服务,这些工具有望为我们的日常工作生活带来更大的灵活性和效率,尤其是在当今的远…

Linux环境基础开发工具使用(2)

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux环境基础开发工具使用(2) 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. Li…

VS开发 - 静态编译和动态编译的基础实践与混用

目录 1. 基础概念 2. 直观感受一下静态编译和动态编译的体积与依赖项目 3. VS运行时库包含哪些主要文件(从VS2015起) 4. 动态库和静态库混用的情况 5. 感谢清单 1. 基础概念 所谓的运行时库(Runtime Library)就是WINDOWS系统…

防反接电路设计

方案1 串联二极管, 优点:成本低、设计简单 缺点:损耗大,P ui 方案2 串联自恢复保险丝 当电源反接的时候,D4导通,F2超过跳闸带你留,就会断开,从而保护了后级电路 方案3 H桥电路…

解决DHCP服务异常导致设备无法获取IP地址的方法

DHCP在网络环境中会自动为网络中的设备分配IP地址和其他关键网络参数,可以简化网络配置过程。但是,如果DHCP服务出现异常时,设备可能无法正常获取IP地址,会影响到网络通信。 本文讲述一些办法可以有效解决DHCP服务异常导致设备无法…

No.2 笔记 | 网络安全攻防:PC、CS工具与移动应用分析

引言 在当今数字化时代,网络安全已成为每个人都应该关注的重要话题。本文将总结一次关于网络安全攻防技术的学习内容,涵盖PC端和移动端的恶意程序利用,以及强大的渗透测试工具Cobalt Strike的使用。通过学习这些内容,我们不仅能够了解攻击者的手法,更能提高自身的安全意识和防…

Java编码方式:Base64编码与解码

1、Base64 算法介绍 Base64 是一种基于 64 个可打印字符来表示二进制数据的表示方法。它主要用于在不支持二进制数据的场合(如电子邮件、URL、文件系统名等)传输二进制数据。严格来说 Base64 并不是一种加密/解密算法,而是一种编码方式。Bas…

基于Springboot+Android的的电子书阅读器系统的设计与实现(含源码+数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统…

二分查找一>山脉数组的峰顶索引

1.题目&#xff1a; 2.解析&#xff1a; 代码&#xff1a; public int peakIndexInMountainArray(int[] arr) {int left 1, right arr.length-2;while(left < right) {int mid left (right-left1) / 2;if(arr[mid] > arr[mid-1]) left mid;else right mid-1;}ret…

openpnp - 视觉原点的位置要离设备的软限制点远一点

文章目录 openpnp - 视觉原点的位置要离设备的软限制点远一点笔记备注END openpnp - 视觉原点的位置要离设备的软限制点远一点 笔记 最开始的视觉原点&#xff0c;是在设备X 0, Y 0的附近位置&#xff0c;粘了一块20x20x20的铝块&#xff0c;铝块上面贴着用黑塑料皮打印的1…

esp8266 at指令链接wifi时一直connect disconnest

那是你的连接wifi的名字密码有误或者热点有问题&#xff0c;看看热点是不是把设备拉入黑名单或者设置为5G或者连了校园网或者设置了最多链接设备

IntelliJ IDEA 2024.2 新特性概览

文章目录 1、重点特性:1.1 改进的 Spring Data JPA 支持1.2 改进的 cron 表达式支持1.3 使用 GraalJS 作为 HTTP 客户端的执行引擎1.4 更快的编码时间1.5 K2 模式下的 Kotlin 性能和稳定性改进 2、用户体验2.1 改进的全行代码补全2.2 新 UI 成为所有用户的默认界面2.3 Search E…

C++模拟实现vector容器【万字模拟✨】

更多精彩内容..... &#x1f389;❤️播主の主页✨&#x1f618; Stark、-CSDN博客 本文所在专栏&#xff1a; 学习专栏C语言_Stark、的博客-CSDN博客 项目实战C系列_Stark、的博客-CSDN博客 数据结构与算法_Stark、的博客-CSDN博客 座右铭&#xff1a;梦想是一盏明灯&#xff…

设计模式之原型模式(通俗易懂--代码辅助理解【Java版】)

文章目录 设计模式概述1、原型模式2、原型模式的使用场景3、优点4、缺点5、主要角色6、代码示例7、总结题外话关于使用序列化实现深拷贝 设计模式概述 创建型模式&#xff1a;工厂方法、抽象方法、建造者、原型、单例。 结构型模式有&#xff1a;适配器、桥接、组合、装饰器、…

深度学习中的结构化概率模型 - 结构化概率模型的深度学习方法篇

序言 在深度学习的广阔领域中&#xff0c;结构化概率模型&#xff08; Structured Probabilistic Model \text{Structured Probabilistic Model} Structured Probabilistic Model&#xff09;扮演着至关重要的角色。这类模型利用图论中的图结构来表示概率分布中随机变量之间的…

Spring Boot ⽇志

目录 1.⽇志使⽤ 2.⽇志级别 3.⽇志配置 3.1配置⽇志级别 3.2⽇志持久化 3.3配置⽇志⽂件分割 4.更简单的⽇志输出 1.⽇志使⽤ 在使用之前我们先来了解一下为什么要使用&#xff1f; ⽇志的⽤途 1.系统监控 我们可以通过⽇志记录这个系统的运⾏状态&#xff0c;对数…

20款奔驰CLS300升级原厂抬头显示HUD 23P智能辅助驾驶 触摸屏人机交互系统

以下是为您生成的一份关于 18 款奔驰 CLS 老款改新款的改装文案&#xff1a; 18 款奔驰 CLS 老款改新款&#xff1a;科技升级&#xff0c;畅享极致驾驶体验 在汽车改装的世界里&#xff0c;每一次的升级都是对卓越的追求。今天&#xff0c;让我们一同探索 18 款奔驰 CLS 老款改…

在登陆功能中添加Redis缓存

目录 基于Redis实现短信登录 实现流程图 实现代码 解决登录状态刷新问题 初始方案思路&#xff1a; 实现代码 发送验证码 登陆实现 如果是新用户则自动创建 运行测试 基于Redis实现短信登录 实现流程图 实现代码 Overridepublic Result login(LoginFormDTO loginForm…

Thinkphp/Laravel旅游景区预约系统的设计与实现

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点&#xff1a;框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发&#xff0c;开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…