使用单毫米波反射的6D无人机自定位
6D_Self-Localization_of_Drones_Using_a_Single_Millimeter-Wave_Backscatter_Anchor
IEEE INFOCOM 2025 - IEEE Conference on Computer Communications
摘要
使用低功耗毫米波(mmWave)反向散射锚点(Anchor),实现无人机高精度六自由度(6DoF)自主定位。

Dual-Polarization Dual-Modulation. MiFly leverages dual-polarization dual-modulation to enable 3D localization.
主要解决的问题
- 传统定位传感器的局限: 常用的GPS定位在室内或建筑遮挡时定位效果差,视觉惯性和激光雷达在特殊环境下(纯色环境等)性能表现差。
- 现有的射频方案的成本: 现在使用的室内定位方式(WiFi、UWB)受光线等环境因素影响较小,但需要在环境中密集部署多个有源锚点才能进行三边测量,这带来了极大的基础设施部署成本和维护问题 。
核心技术创新
- 双极化与双调制架构(Dual-Polarization Dual-Modulation): 重点 商用的现成 24 GHz 毫米波雷达通常由于天线分集限制,只能进行 2D 定位(距离和方位角) 。若简单地在无人机上正交安装两个雷达来获取 3D 信息,会产生严重的信号干扰或极化不匹配问题。作者设计了一种新型无源/低功耗锚点。该锚点包含两组独立的天线,分别用于接收和反射水平极化与垂直极化的雷达信号。同时,锚点对这两种极化信号应用不同的调制频率(双频调制),从而在频域上将它们完美隔离,避免了无人机飞行倾斜带来的泄漏干扰 。这使得无人机能够实现无干扰的“单次(Single-Shot)” 3D 定位。

Dual-Polarization Design. a) Current commercial 24 GHz radars can only measure 2D localization. b) If one were to leverage two perpendicularly mounted radars with a vertically polarized anchor, one radar would experience high polarization loss. c) Instead, if one were to leverage a 45° anchor, there would be radar interference. d) Finally, we introduce a new dual-polarization anchor design which can reflect both polarizations without interference.
- RF-IMU 传感器融合(RF-IMU Fusion): 仅仅获得锚点相对于无人机的 3D 位置是不够的,因为无人机在飞行中的 6DoF 旋转(偏航、俯仰、横滚)会导致基于到达角(AoA)的位置解算产生严重歧义。系统将雷达获取的 3D 测量数据与无人机内置的 IMU(惯性测量单元,主要是陀螺仪)数据进行融合,利用 IMU 来解算无人机的旋转姿态,消除位置歧义,从而精确推导出无人机在世界坐标系中的真实 6DoF 轨迹。
硬件设计解析
信标设计

Anchor Design. Two RX antennas are connected to RF switches, amps, & TX antennas.
锚点是这篇文章最大的硬件创新,主要功能为在极低功耗下的极化分离、频率调制和信号放大。
- PCB基板设计: 为了保证 24 GHz 高频信号的传输性能,锚点是定制生产的,采用了高频电路设计中非常经典的 Rogers RO4350 基板材。
- 双极化天线阵列: 锚点上设计了两组独立的接收(RX)天线,一组是水平极化(HP),另一组是垂直极化(VP) 。这种物理隔离是消除两块雷达相互干扰的第一道防线。
- 射频开关与调制机制: 天线接收到的信号会馈入 HMC547ALC3 单刀双掷(SPDT)射频开关 。这些开关负责将信号路由到匹配负载或直接馈入下一级的放大器 。这里的开关动作,实际上就是在对反射的雷达信号进行特定频率的调制。
- 信号放大与回传: 经过开关调制的信号,会通过 HMC342LC4 射频放大器进行增益补偿 。放大后的信号被输送到与接收端完全对称的一组发射(TX)天线中,将信号背向散射(回传)给无人机。
- 功耗表现: 作为一个有源放大反向散射节点,它的整体功耗控制得极低,仅约为 260 mW。
无人机(Drone)雷达设计
无人机端主要负责主动发射 FMCW 信号、接收背向散射信号,并进行高速的数据采集与运算。
- 飞行平台: DJI Mavic 3 Classic.
- 正交雷达阵列: 核心传感模块是两块 Infineon Position2Go 24 GHz 毫米波雷达 。为了弥补单块商用雷达只能测 2D(距离+单个角度)的缺陷,这两块雷达通过定制的 3D 打印件被正交安装(一块垂直放置测方位角,一块水平放置测俯仰角)。
- 计算与供电: 雷达获取的数据通过 USB 接口实时传给机载的 Raspberry Pi 4 Model B(树莓派 4B)进行解算 。树莓派由一个独立的 UPS 电源模块供电,避免过度消耗无人机原有的电池。
- 总体负载: 包括雷达、树莓派、电源和 3D 打印支架在内,这套机载设备的总体有效载荷(Payload)大约是 385 克。
算法解析
双频调制算法消除正交雷达的交叉极化泄露
仅靠极化隔离的缺陷:
- 物理隔离的极限: 理论上正交极化是完美隔离的,但在实际中,水平极化(HP)雷达发射的信号,依然会被锚点上的垂直极化(VP)天线反射一小部分,并被 HP 雷达接收到。
- 无人机姿态的恶化: 更为致命的是,无人机在飞行过程中会发生不可避免的倾斜和旋转。机身的自然倾斜(例如 Roll 轴旋转)会导致雷达与锚点的极化方向发生物理错位,从而使各个雷达接收到更多来自正交极化天线的干扰信号。

Impact of Heading a) Drone directly facing anchor. b) Drone rotated about the Z axis.
- 实验验证: 作者做了一个测试,将雷达放在距离锚点约 1 米处,给无人机施加了 $4^{\circ}$ 的倾斜角,并且仅激活锚点的 VP 天线(以 350 kHz 调制)。结果发现,HP 雷达在做 FFT(快速傅里叶变换)后,依然在 350 kHz 处接收到了一个高出底噪 17 dB 的泄漏干扰信号 。

Dual-Frequency Modulation. a) When transmitting a single frequency, there is 17 dB of interference. b) Our dual-frequency modulation shifts the leakage signal away from the desired signal in the frequency domain.
频率调制目的
1.区分锚点与背景噪声环境
- 防止杂波淹没: 在室内环境中,墙壁、家具等庞大静止物体反射的雷达信号非常强烈。如果锚点只是一个普通的无源金属反射面,它那极其微弱的反射信号会完全淹没在这些海量的低频环境杂波中。
- 人造频移: 锚点不产生自己的信号,而是通过内部的射频开关对反射回去的雷达信号进行调制。这种调制(比如以 350 kHz 的频率快速开关)实际上是给信号加上了一个极大的人造频移(类似于极高速的多普勒频移)。
- 提取目标: 雷达接收到的最终响应峰值频率变为:$f_{backscatter} = f_{mod} + f_{range}$ 。这样一来,锚点的微弱回波就被“搬移”到了 350 kHz 的高频干净频段 。雷达只需要在这个特定的高频窗口内搜索峰值,就能完美滤除所有低频的静态环境反射,精准锁定锚点。
2.为两部雷达分配专属“标签/信道”
这是这篇论文独创的“双频调制(Dual-Frequency Modulation)”的核心目的,也是为了解决 3D 定位中最大的痛点
- 避免分时等待: 为了实现无延迟的单次(Single-Shot)3D 定位,无人机上的水平(HP)和垂直(VP)两部雷达必须同时发射信号。
- 物理极化失效: 在实际飞行中,无人机的轻微旋转或倾斜会导致极化方向不再完美正交,从而产生严重的交叉极化泄漏(Leakage),使得一台雷达会接收到另一台雷达的信号。锚点对 VP 天线应用了 300 kHz 的调制频率,对 HP 天线应用了 350 kHz 的调制频率 。这相当于给两路反射信号贴上了不同的频率“标签”。
- 频域隔离: HP 雷达的期望信号出现在 350 kHz 处 。而那些泄漏过来、试图干扰 HP 雷达的 VP 信号,被强制平移到了 300 kHz 的位置 。这样,两者在频域上被彻底分离开来,实现了互不干扰。
雷达探测解算过程
1.距离测算 在 FMCW(调频连续波)雷达体制下,由于已经通过 FFT(快速傅里叶变换)在指定的调制频率窗口内锁定了锚点的真实反射峰值频率 $\hat{f}_{backscatter}$ ,锚点的距离可以直接通过线性调频的物理属性推导出来。但特别值得注意的点是,由于作者的信标中进行了特定频率信号的调制,也就是MiFly 系统为了避开环境杂波并实现双雷达隔离,锚点通过射频开关对反射信号进行了频率为 $f_{mod}$ 的高速调制 。在无线电物理中,对信号进行这种开关调制,等效于在频域上做了一次混频(平移)。也就是说,锚点强行把原本代表真实距离的纯净频率 $f_{range}$,加上了一个巨大的人为常数$f_{mod}$ 。因此,雷达在 FFT 频谱上实际观测到的那个高耸的峰值频率(也就是 $f_{backscatter}$),其实是一个混合频率,它由两部分叠加而成:
$$f_{backscatter} = f_{mod} + f_{range}$$- $f_{mod}$:锚点人为加上的调制频率(比如 350 kHz) 。
- $f_{range}$:真正由无人机到锚点的物理飞行距离引起的极小频移 。
频率叠加的底层解释
为什么不是两个独立的峰值?(加法 vs 乘法)如果是“线性叠加”(加法):假设锚点不仅反射雷达信号,还自己内置了一个扬声器或者天线,独立发射一个 $350\text{ kHz}$ 的信号。那么在频域上,这确实是 $A + B$,你在频谱上会看到一个雷达回波的峰值,和一个 $350\text{ kHz}$ 的独立峰值。实际发生的“非线性调制”(乘法):MiFly 的锚点是一个“反向散射(Backscatter)”设备。它不主动生成对外发射的独立射频信号,而是利用射频开关(RF Switch)以 $f_{mod}$(比如 $350\text{ kHz}$)的频率,快速地“打开”和“关闭”天线的反射通路 。在时域物理世界中,这种“快速开关反射”的行为,等效于将入射的雷达电磁波信号与一个高频的开关信号相乘。
相乘的数学原理:积化和差。当两个信号在时域上相乘时,频域上会“积化和差”。假设雷达打到锚点上的高频电磁波是 $\cos(2\pi f_{RF}t)$($f_{RF}$ 在 $24\text{ GHz}$ 左右),锚点内部的射频开关控制信号是 $\cos(2\pi f_{mod}t)$。两者在天线上物理相乘:
$$\cos(2\pi f_{RF}t) \times \cos(2\pi f_{mod}t) = \frac{1}{2}[\cos(2\pi(f_{RF} + f_{mod})t) + \cos(2\pi(f_{RF} - f_{mod})t)]$$
数学公式清晰地表明:原来的两个频率 $f_{RF}$ 和 $f_{mod}$ 都消失,取而代之的是,反射回空中的电磁波变成了两个全新的频率:一个变高了($f_{RF} + f_{mod}$),一个变低了($f_{RF} - f_{mod}$)。这在射频工程中被称为产生了边带(Sidebands)。实际上,论文中也明确提到,锚点的调制会在 FFT 中产生两个峰值 。
- 雷达内部的“二次混频”:拍频的诞生现在,这个频率被“搬移”过的电磁波(以 $f_{RF} + f_{mod}$ 为例)飞回了雷达接收端。FMCW 雷达在接收到信号后,会进行它自己的“混频”(De-chirping)操作——把接收到的信号和当前正在发射的信号再次相乘,提取出它们之间的频率差(这就是拍频 Beat Frequency)。因为电磁波在空中飞行了一段距离,产生了时间延迟,这个延迟在 FMCW 雷达中表现为一个基础的频率差 $f_{range}$。同时,锚点又在物理上把信号的频率硬生生抬高了 $f_{mod}$。因此,当雷达把发射信号和接收信号相减求差时,得到的最终基带拍频(也就是我们在频谱仪或代码里看到的那个峰值)自然就是这两者之和 : $$f_{backscatter} = f_{mod} + f_{range}$$
因为锚点的工作机制是时域相乘(调制),而不是时域相加(叠加)。相乘在频域上表现为频率的平移(加减),这就使得原来代表距离的频移 $f_{range}$,被直接搭载到了调制频率 $f_{mod}$ 的肩膀上,融合成了一个单一的、被平移过的峰值 $f_{backscatter}$。
实际工程情况的区别: 在实际的工程情况中,并不是两个正弦波做相乘,而是一个正弦波和一个方波相乘。使用正弦波是一个理想的数学简化。从实际的工程角度入手进行分析:
在真实的物理硬件中,射频开关(比如论文中锚点使用的 HMC547ALC3 SPDT 开关 )只有“开(ON)”和“关(OFF)”两种状态。因此,锚点内部真正的控制信号绝对是一个方波(Square Wave),而不是正弦波。
- 方波:无数个正弦波的叠加在数学上,一个频率为 $f_{mod}$ 的理想方波,并不是一个单一的频率分量。根据傅里叶级数展开,它可以等效为一个基频正弦波加上无数个奇次谐波(高频正弦波)的线性叠加:
这个方波的能量最大的部分正是基频为 $f_{mod}$ 的正弦波。
真实的物理相乘:产生了一串“糖葫芦”。当 $24\text{ GHz}$ 的雷达射频信号 $\cos(2\pi f_{RF}t)$ 打到锚点天线上,被这个“方波开关”调制时,实际上是雷达信号与括号里的每一个正弦波都发生了相乘(混频)。根据“积化和差”,这不仅会产生我们想要的基频平移 $f_{RF} \pm f_{mod}$,还会附带产生一连串的高阶谐波平移:$f_{RF} \pm 3f_{mod}$、$f_{RF} \pm 5f_{mod}$ 等等。当这些信号弹回雷达,被雷达内部解调(De-chirp)后,在雷达基带的 FFT 频谱上,你看到的就不止是一个峰值了,而是一串像糖葫芦一样的峰值:主峰出现在 $f_{mod}$ 处(比如 $350\text{ kHz}$,能量最强)。谐波次峰出现在 $3f_{mod}$ 处($1050\text{ kHz}$,能量弱很多,大约是主峰的 $1/3$)。甚至还有 $5f_{mod}$ 处($1750\text{ kHz}$)。
雷达是怎么处理这个“烂摊子”的?(滤波与截取)既然方波制造了这么多额外的谐波峰值,雷达为什么不被干扰呢?硬件带宽限制:雷达内部的模数转换器(ADC)采样率和基带低通滤波器是有截止频率的。那些 $1050\text{ kHz}$、$1750\text{ kHz}$ 的高次谐波,通常已经超出了雷达的处理带宽,直接在硬件层面上被过滤掉了。算法定向搜索:即使有谐波漏了进来,论文中的定位算法也是极其“专一”的。算法在寻找锚点回波时,并不会全局盲搜,而是在一个紧贴着 $f_{mod}$ 的特定窗口大小 $W$ 内进行最大值搜索 。用论文的公式原话来说就是:
$$\hat{f}_{backscatter} = \arg\max_{f \in (f_{mod}, f_{mod}+W)} |FFT_{RX}(f)|$$这意味着,算法预先就知道我们要找的垂直极化在 $300\text{ kHz}$ 附近,水平极化在 $350\text{ kHz}$ 附近 。它只盯着这个极窄的频段看,直接无视了方波带来的那些高次谐波“杂质”。
为了知道锚点到底多远,必须在数学上把那个“人为加上去的频率标签”给剥掉:
$$f_{range} = f_{backscatter} - f_{mod}$$拿到这个代表真实物理距离的纯净拍频 $f_{range}$ 之后,再把它代入到传统 FMCW 的斜率测距公式中,就自然得到了论文中的核心测距公式 :
$$\hat{r}_{anchor} = \frac{c(f_{backscatter} - f_{mod})}{2k}$$$$A=X$$
Comments