经典文献阅读之--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 幕后

...详情请参照古月居

相关推荐
拓端研究室1 小时前
专题:2025人形机器人、工业机器人、智能焊接机器人、扫地机器人产业洞察报告 | 附158+份报告PDF、数据仪表盘汇总下载
microsoft·机器人·pdf
星马梦缘3 小时前
Matlab机器人工具箱7 搬运动画展示
matlab·机器人·仿真·逆解
星马梦缘18 小时前
Matlab机器人工具箱使用2 DH建模与加载模型
人工智能·matlab·机器人·仿真·dh参数法·改进dh参数法
星马梦缘1 天前
Matlab机器人工具箱使用1 简单的描述类函数
matlab·矩阵·机器人·位姿·欧拉角·rpy角
神仙别闹1 天前
基于单片机的六足机器人控制系统设计
单片机·嵌入式硬件·机器人
南山二毛2 天前
机器人控制器开发(传感器层——奥比大白相机适配)
数码相机·机器人
房开民3 天前
使用海康机器人相机SDK实现基本参数配置(C语言示例)
c语言·数码相机·机器人
南山二毛3 天前
机器人控制器开发(导航算法——导航栈关联坐标系)
人工智能·架构·机器人
猫头虎3 天前
2025最新超详细FreeRTOS入门教程:第一章 FreeRTOS移植到STM32
stm32·单片机·嵌入式硬件·机器人·硬件架构·freertos·嵌入式实时数据库
xwz小王子3 天前
Nature Machine Intelligence 基于强化学习的磁性微型机器人自主三维位置控制
机器人·微型机器人