特高压输电线路(±800kV 直流与 1000kV 交流)周边的空间电磁场环境极其极端。导线附近的工频磁场强度经常超过数十微特拉,伴随强烈的电晕放电和高频电磁脉冲。传统依靠机载磁力计(三轴磁罗盘)进行航向解算的多旋翼,只要靠近塔头或者导线 10 米以内,EKF 几乎百分之百报磁场异常,轻则姿态狂抖,重则直接发散漂移蹭塔。
结合我们团队去年在某 ±800kV 特高压直流输电线路上的自主巡检项目,聊聊如何通过双天线 RTK 移动基线(Moving Baseline)定向彻底废弃磁力计,以及飞控端的 EKF 融合工程实践。
一、 先聊一次炸机复盘:传统磁罗盘在特高压下的致命缺陷
前年在做某 500kV 交流线路紧凑型耐张塔巡检时,我们用了一台基于 PX4 的六旋翼,导航方案是单天线 RTK 加内置双磁力计。
飞机在距离边相导线约 6 米处悬停准备拍销钉,地面站瞬间报 EKF yaw divergence 和 Mag toxic。从飞控落地的 ULog 来看,进入电磁扰动区后:
- 磁力计 0 与磁力计 1 的模值突变,两者差值直接飙到 280 mGauss 以上。
- 飞控 EKF2 尝试通过合速度方向去校正航向,但悬停状态下水平速度接近 0,速度辅助航向(Velocity Yaw fusion)无法介入。
- EKF 估计的航向在 2 秒内漂了 47 度,飞控为了修正所谓“姿态偏差”,自主偏航产生附加水平分量,飞机直接切入了 AltHold 模式漂移,最终碳纤桨尖扫到了绝缘子串均压环,双桨爆裂炸机。
结论很明确:在特高压巡检场景下,任何基于地磁矢量的传感器(内部或外置罗盘)都不可信,必须从硬件和滤波源头上将其剥离。
二、 硬件拓扑与抗干扰布局
要让双天线 RTK 在强电磁场下稳定工作,射频前端和结构设计是第一道防线。
- 天线基线长度(Baseline Length): 双天线测向依靠载波相位差分解算航向。主天线(Master)与从天线(Slave)的距离直接决定定向精度。理论上基线越长精度越高。在我们的 1200mm 轴距巡检机上,基线长度固定在 65cm。经验公式下,该长度能保证优于 0.15 度的航向定向精度。
- 天线安装位置与同轴电缆: 两根螺旋天线必须严格水平安装在机臂对称轴线上,且要高出碳纤维机臂和电机平面至少 10cm,避开电机电调的大电流交变电磁场。馈线采用双层屏蔽同轴电缆,外加编织铜网接地,防止电晕放电引入的高频杂波串入射频接收端。
- 电磁屏蔽隔离舱: 飞控核心单元、伴随计算板(NVIDIA Orin NX)和双 F9P 接收机模组全部安装于由 0.2mm 坡莫合金加铜箔构成的屏蔽盒内,供电端加入两级差模与共模滤波器。
三、 ArduPilot 平台双天线 RTK 移动基线配置
以目前工业巡检用得比较多的 ArduPilot 固件(Copter 4.3+)为例,搭配两颗 u-blox ZED-F9P。配置主天线用于定位+定向基准,从天线仅用于解算相对矢量的定向。
1. 核心参数设置
# 关闭内部所有磁力计的航向融合
COMPASS_ENABLE = 0
COMPASS_USE = 0
COMPASS_USE2 = 0
COMPASS_USE3 = 0
# 配置串口协议(假设 GPS1 接主 F9P,GPS2 接从 F9P)
SERIAL3_PROTOCOL = 5 # GPS
SERIAL4_PROTOCOL = 5 # GPS
# 启用双天线移动基线定向
GPS_TYPE = 23 # DroneCAN 或 u-blox Moving Baseline Base
GPS_TYPE2 = 24 # DroneCAN 或 u-blox Moving Baseline Rover
GPS_AUTO_CONFIG = 1
# 天线相对机体中心(CG)偏移配置(单位:米,直接影响位置与航向杠杆臂补偿)
GPS_POS1_X = -0.325 # 主天线位置
GPS_POS1_Y = 0.0
GPS_POS1_Z = -0.15
GPS_POS2_X = 0.325 # 从天线位置
GPS_POS2_Y = 0.0
GPS_POS2_Z = -0.15
# EKF3 航向融合数据源指定
EKF3_SRC_OPTIONS = 0
EKF3_SRC1_YAW = 2 # 2 代表 GPS / 双天线航向
EKF3_SRC1_POSXY = 3 # 3 代表 GPS
EKF3_SRC1_VELXY = 3 # 3 代表 GPS
EKF3_SRC1_POSZ = 1 # 气压计,特高压建议辅以毫米波/激光雷达定高
2. PX4 平台的配置对照
如果是 PX4(v1.13+),EKF2 的改动逻辑类似,需要把磁力计融合模式切换为双天线辅助:
EKF2_MAG_TYPE = 5 # 设为 None(彻底不使用磁力计)
EKF2_GPS_CTRL = 7 # 启用 GPS 位置、速度及双天线航向融合 (Bit 3 激活 GPS Yaw)
SYS_HAS_MAG = 0 # 告知飞控系统无硬件磁罗盘,屏蔽传感器缺失报警
四、 飞控端状态监控与容错解耦逻辑
双天线虽然不受电磁场干扰,但易受到导线和铁塔多路径效应(Multipath)遮挡的影响。一旦从天线载波相位周跳(Cycle Slip)频发,定向解算可能从 Fixed 掉到 Float 甚至无效。
在 Companion Computer(伴随计算机)的 ROS2 节点中,我们通过 MAVLink 监听 GPS_RAW_INT 和底层基准定向状态。必须设计降级保护逻辑,避免定向失效时飞控姿态瞬态阶跃。
示例:航向状态监控逻辑(Python / rclpy)
import rclpy
from rclpy.node import Node
from mavros_msgs.msg import GPSRAW
from std_msgs.msg import Float32
class HeadingHealthMonitor(Node):
def __init__(self):
super().__init__('heading_health_monitor')
self.sub_gps = self.create_subscription(
GPSRAW,
'/mavros/gpsstatus/gps1/raw',
self.gps_callback,
10
)
self.last_healthy_heading = 0.0
def gps_callback(self, msg: GPSRAW):
# 提取 u-blox 扩展标志,判断双天线 RTK 定向状态
# fix_type 6 为 RTK Fixed
is_rtk_fixed = (msg.fix_type == 6)
# 航向有效性与精度检验(dgps_numch 视具体驱动映射可能存放基线载波状态)
satellites_visible = msg.satellites_visible
h_acc_mm = msg.h_acc
if is_rtk_fixed and satellites_visible >= 16 and h_acc_mm < 50:
# 数据可信,航向角以度为单位
current_yaw = msg.yaw / 100.0
self.last_healthy_heading = current_yaw
else:
self.get_logger().warn(
f"RTK Heading degraded! Satellites: {satellites_visible}, FixType: {msg.fix_type}. Holding last known yaw.",
throttle_duration_sec=1.0
)
# 在此触发飞控 EKF 回退逻辑:依赖高性能陀螺仪短时间积分,
# 若降级超过 3 秒,强制下发 MAVLink 指令悬停或按航线原路倒退。
五、 真实工况测试数据与踩坑点
在 ±800kV 特高压换流站出线段的实飞对比测试中,记录了关键性能指标:
- 载波信噪比(C/N0)表现:
在离高压导线 5 米悬停时,L1/L2 频段各星平均信噪比相较于净空区下降了约 3 到 5 dB-Hz。这是由于电晕放电带来的宽带高频脉冲底噪,但依靠带有带通滤波的有源螺旋天线,依然能锁定 20 颗以上的双频卫星,双天线解算状态始终维持在
RTK Fixed。 - 航向估计对比:
- 磁罗盘:在进入塔身 15 米范围内,航向估计跳变最大达到了 34.6 度。
- 双天线 RTK:全程航向角标准差维持在 0.18 度以内,与机载高精度光纤陀螺(FOG)基准相比,无静态累积漂移。
踩坑提醒:
- 冷启动定向死锁:开机时如果飞机处于铁塔正下方等严重遮挡区域,双天线可能迟迟无法固定偏航。必须在塔外 30 米以上的开阔地带完成 RTK 航向初始化,锁定后再切入自主作业航线。
- 杠杆臂补偿不可偷懒:双天线相对机体质心(Center of Gravity)的偏置距离(
GPS_POS_X/Y/Z)测量误差必须小于 1cm。否则在多旋翼快速偏航(Yaw Rotate)时,主从天线产生的切向线速度会被 EKF 误判为整机线运动,导致平动与转动耦合发散。
在特高压强磁场巡检这种容错率极低的场景下,做减法往往比做加法更管用。彻底剔除脆弱的地磁罗盘,利用双天线 RTK 的刚性空间几何矢量提供绝对应急航向,是目前工程上最稳妥的解决方案。
License: CC BY-NC 4.0
Updated 13 hours ago
Was this article helpful? Give it a like.
0 comments


