💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

摘要:本文针对存在离群传感器时的目标定位问题进行了研究。该问题在实际中具有重要意义,因为在许多实际应用中,传感器可能会无意或有意地报告不相关的数据。本文采用鲁棒统计技术对平方距离测量进行建模,并提出两种不同的解决方案。第一种方法具有计算效率,然而仅在理论上保证目标收敛。另一种方法则确立了整个序列的收敛性。为了兼顾两种方法的优点,我们将它们结合起来,开发出了一种混合算法,可提供计算效率和理论保证。该算法在不同的模拟和实际场景中进行了评估。数值结果表明,所提出的方法在足够数量的测量下能满足 Cramer-Rao 下限 (CRLB)。当测量数量较小时,所提出的位置解算方法比现有算法有更好的精度和鲁棒性。

在这篇论文中,我们考虑了鲁棒目标定位的问题。在传感器网络中,一些节点可能会无意或恶意地向处理节点报告错误数据。这可能是由于网络故障、电池电量不足、场景物理障碍和攻击者引起的。因此,处理节点不应简单地聚合所有传感器的测量值。更有效的做法是忽略异常值的测量结果,并基于可靠的测量值定位目标。

对于鲁棒定位有不同的方法。在文献[4]中,通过将到达时间(ToA)估计误差建模为柯西-洛伦兹分布来获得了一种方法。在文献[8]中,利用鲁棒统计学,特别是Huber范数,以分布方式定位网络中的传感器,利用节点子集的位置。文献[6]中的作者试图最小化最坏情况下的似然函数,并利用半定松弛方法通过TW-ToF测量获得估计。文献[9]中的作者通过估计测量误差的概率密度函数(PDF)作为高斯核的总和,开发了一种鲁棒地理定位方法。当测量误差来自高斯混合PDF时,这种方法效果最好。

在这篇论文中,我们的目标是在集中式方式下,在存在异常范围测量的情况下定位单个目标。我们的目标是实现异常值分布鲁棒性,这意味着估计器在不同异常值概率分布下表现良好。我们对平方范围测量应用了最小二乘方法。尽管这种表述在机器学习意义上并不是最优的,但它为我们提供了有效找到估计的机会。

这项工作的贡献可以总结如下。首先,我们提出了一个鲁棒优化问题,通过平方范围表述来忽略不可靠的测量值。接下来,我们提出了两种不同的算法来找到优化问题的解决方案。第一种算法基于迭代加权最小二乘法(IRLS),将提出的优化问题转化为一类特殊的优化问题,即广义信任域子问题(GTRS)。数值模拟表明,这种算法具有快速的目标收敛性。详细文章见第4部分。

一、鲁棒目标定位的核心挑战与IRLS的引入

在复杂环境中(如光照变化、遮挡、噪声干扰),目标定位的鲁棒性面临以下挑战:

  1. 异常值干扰:传感器测量数据中存在非高斯噪声或离群点,导致传统最小二乘法(LS)失效。
  2. 多传感器不一致性:不同传感器(如视觉、LiDAR、UWB)的数据存在时空异步和精度差异。

  3. 动态环境适应性:目标运动状态变化(如姿态、尺度)要求算法具备实时更新能力。

平方距离迭代重新加权最小二乘法(IRLS) 通过动态调整权重函数,抑制异常值影响,成为提升鲁棒性的有效手段。


二、IRLS的数学原理与算法步骤

1. 核心思想

IRLS通过迭代修正权重,使残差较大的测量值在后续计算中权重降低,从而逼近鲁棒估计解。其优化目标为:

其中,x为目标位置,si为传感器位置,di​为测量距离,wi为动态权重。

2. 算法流程
  • 初始化:采用标准LS或加权最小二乘(WLS)初步估计目标位置。
  • 残差计算:计算每个传感器的平方距离残差δi=∥x(k)−si∥2−di2δi​=∥x(k)−si​∥2−di2​。
  • 权重更新:使用Huber或Tukey函数调整权重:

其中τ为鲁棒性阈值,控制对异常值的敏感度。

  • 迭代求解:更新权重矩阵W(k)W(k),重新求解加权最小二乘问题,直至位置估计收敛。
3. 收敛性分析
  • 局部收敛:基于GTRS(广义信任区域子问题)的IRLS算法收敛速度快,但缺乏全局收敛保证。
  • 全局收敛:梯度下降法可保证全局收敛,但计算效率较低。
  • 混合策略:结合GTRS与梯度下降,实现快速且全局收敛的混合算法。

三、IRLS在传感器数据融合中的实现案例

1. 多传感器融合定位系统(自动驾驶场景)
  • 传感器配置:LiDAR、视觉相机、IMU、UWB。
  • IRLS应用
    • 通过IRLS动态分配传感器权重,抑制GNSS失效时的定位漂移。
    • 实验显示,全局定位误差<0.5米,在非结构化山地场景中RMSE为0.67米。
2. 四足机器人SLAM(A1 SLAM)
  • 传感器配置:LiDAR、IMU、关节编码器。
  • IRLS作用:在因子图优化中,利用IRLS对LiDAR点云匹配残差进行加权,提升运动估计鲁棒性。
3. 室内移动机器人定位
  • 传感器配置:里程计、UWB。
  • 结果对比:IRLS融合轨迹(红色)较原始里程计(蓝色)更接近参考轨迹(白色),验证了鲁棒性提升。

四、IRLS与传统最小二乘法的性能对比

指标 传统LS IRLS
异常值鲁棒性 对离群点敏感,拟合偏差大 通过权重抑制异常值,拟合更稳定
收敛速度 单次求解,速度快 需多次迭代,速度较慢但可优化
适用场景 高斯噪声环境 非高斯噪声、复杂干扰环境
计算复杂度 O(n) O(kn)(k为迭代次数)


实验数据示例

  • 在电力系统状态估计中,IRLS处理20%异常值时,定位误差较LS降低60%。
  • 人脸修复任务中,IRLS恢复的图像PSNR比LS高8dB,且视觉质量更优。

五、未来研究方向

  1. 深度学习结合:利用神经网络自适应学习权重函数,替代人工设计的Huber/Tukey函数。
  2. 分布式IRLS:面向多智能体协同定位,设计分布式迭代框架。
  3. 实时性优化:通过GPU加速和稀疏矩阵运算提升计算效率。

六、结论

基于IRLS的鲁棒目标定位方法,通过动态权重调整和迭代优化,显著提升了复杂环境下的定位精度与稳定性。其在自动驾驶、机器人导航等领域的成功应用,验证了其理论优势与实践价值。未来结合深度学习与分布式计算,有望进一步突破复杂场景的极限性能。

📚2 运行结果

部分代码:

%% SR-LS 
        tic
        TargetSRLS = PUpositionSRLS(SensorPosition(:,1),SensorPosition(:,2),RangeMeas);
        time1(seed) = toc;
        error1(seed) = rms(TargetSRLS-TargetPosition');
        bias1(:,seed) = TargetSRLS-TargetPosition';
        

        %% SR-IRLS 
        tic
        [TargetSRL0,iters] = PUpositionSRL0(SensorPosition(:,1),SensorPosition(:,2),RangeMeas,MeasNoiseSTD);
        time3(seed) = toc;
        error3(seed) = rms(TargetSRL0-TargetPosition');
        bias3(:,seed) = TargetSRL0-TargetPosition';    
        iters3(seed) = iters;    
        %% SR-GD
        tic
        [TargetSRBCD,iters] = PUpositionSRBCD(SensorPosition(:,1),SensorPosition(:,2),RangeMeas,MeasNoiseSTD,[0;0]);
        time6(seed) = toc;
          error6(seed) = rms(TargetSRBCD-TargetPosition');
        bias6(:,seed) = TargetSRBCD-TargetPosition';        
        iters6(seed) = iters;
        %% SR-Hybrid
        tic
        [TargetHybrid,iters] = PUpositionSRHybrid(SensorPosition(:,1),SensorPosition(:,2),RangeMeas,MeasNoiseSTD);
        time7(seed) = toc;
         error7(seed) = rms(TargetHybrid-TargetPosition');
        bias7(:,seed) = TargetHybrid-TargetPosition';       
        iters7(seed) = iters; 
         %% CRLB
         CRLB(seed) = CRLBpos(TargetPosition,SensorPosition(:,1),SensorPosition(:,2),Iv);
    
    end
    ErrorSRLS(p) = mean(error1(isfinite(error1)));
    ErrorSRL0(p) = mean(error3(isfinite(error3)));
    ErrorSRBCD(p) = mean(error6(isfinite(error6)));
    ErrorSRHybrid(p) = mean(error7(isfinite(error7)));
    ErrorLowerBound(p) = mean(CRLB(isfinite(CRLB)));

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

Alireza Zaeemzadeh, Mohsen Joneidi, Behzad Shahrasbi, Nazanin Rahnavard

🌈4 Matlab代码、文章下载

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐