💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
基于扩展卡尔曼滤波器EKF、无迹卡尔曼滤波器UKF、泰勒级数位置估计三边测量和多点测量方法超宽带UWB定位研究文档
本文讲解了关于UWB定位系统的五种定位算法。这五种算法是扩展卡尔曼滤波器(EKF)、无迹卡尔曼滤波器(UKF)、基于泰勒级数的位置估计技术、三边测量法和多边测量法。所研究的超宽带系统被假设为状态空间模型。恒速(CV)运动模型和恒加速度(CA)运动模型可用作该repo中实现上述UWB定位和导航系统的状态模型。与文献中用于比较分析的典型模拟方法相反,我们直接使用Qorvo(Decawave)制造的UWB硬件模块TREK1000/EVK1000评估板获得的实验数据。
摘要——在本文中,我们分析了五种真程定位基于超宽带定位系统的算法。被评估算法是:(i)使用几何方法的三边测量法,(ii)使用最小二乘法的闭式多点定位解决方案,(iii)
使用一阶泰勒级数的迭代方法,递归基于(iv)扩展卡尔曼滤波器(EKF)和(v)无味卡尔曼滤波器(UKF)。与现有的相比在文学比较研究中,我们的分析是基于实验评估,而不仅仅是基于模拟结果。评估的算法是针对一个场景严格选择的,其中真程多边测量方法适用。真实范围指测量范围的准确性不受以下因素影响时钟漂移误差。五家公司的业绩比较本文对算法进行了检验和讨论。
关键字——比较研究、比较综述、真实范围、定位算法、性能比较、超宽带、三边测量、多边测量、泰勒级数、EKF、UKF、卡尔曼
详细文章见底第4部分。
一、引言
随着无线定位技术的不断发展,超宽带(UWB)定位技术因其高精度、低功耗和抗干扰能力强等优点,在室内定位、无人驾驶、智能仓储等领域得到了广泛应用。本文旨在研究基于UWB定位系统的五种定位算法,包括扩展卡尔曼滤波器(EKF)、无迹卡尔曼滤波器(UKF)、基于泰勒级数的位置估计技术、三边测量法和多边测量法。通过对比分析,探讨各算法在UWB定位系统中的应用效果和性能表现。
二、系统模型与假设
本研究假设UWB定位系统为状态空间模型,采用恒速(CV)运动模型和恒加速度(CA)运动模型作为状态模型。实验数据来源于Qorvo(Decawave)制造的UWB硬件模块TREK1000/EVK1000评估板,确保了数据的真实性和可靠性。
三、定位算法分析
- 三边测量法
三边测量法是一种基于几何原理的定位方法,通过测量目标点与三个已知位置点之间的距离,利用三角形内角和等于180度的性质,求解目标点的位置。该方法简单直观,但要求测量精度较高,且对测量误差敏感。
- 多点定位法
多点定位法利用最小二乘法求解目标点的位置,通过测量目标点与多个已知位置点之间的距离,构建方程组,求解得到目标点的最优估计位置。该方法适用于测量点较多且分布均匀的场景,能够较好地抑制单个测量点的误差影响。
- 基于泰勒级数的位置估计
基于泰勒级数的位置估计方法通过迭代的方式求解目标点的位置。首先根据初始估计位置计算测量误差,然后利用泰勒级数展开式对误差进行修正,逐步逼近真实位置。该方法收敛速度快,但对初始估计位置的准确性要求较高。
- 扩展卡尔曼滤波器(EKF)
扩展卡尔曼滤波器是一种递归贝叶斯滤波器,适用于非线性系统的状态估计。它通过线性化非线性函数,利用卡尔曼滤波器的递推公式进行状态估计和预测。EKF能够较好地处理系统噪声和测量噪声,但对非线性函数的线性化过程可能引入误差。
- 无迹卡尔曼滤波器(UKF)
无迹卡尔曼滤波器是一种基于无迹变换的卡尔曼滤波器,适用于非线性系统的状态估计。它通过无迹变换保持非线性函数的概率分布特性,避免了线性化过程带来的误差。UKF在非线性系统状态估计中具有更高的精度和鲁棒性。
四、实验评估与结果分析
本研究利用Qorvo(Decawave)制造的UWB硬件模块TREK1000/EVK1000评估板获取的实验数据,对五种定位算法进行了实验评估。评估结果表明,UKF在非线性系统状态估计中表现最优,具有最高的定位精度和鲁棒性;EKF次之,但在处理系统噪声和测量噪声方面表现出色;基于泰勒级数的位置估计方法收敛速度快,但在初始估计位置不准确时可能陷入局部最优解;多点定位法和三边测量法虽然简单直观,但对测量精度和测量点分布要求较高。
五、结论与展望
本文研究了基于UWB定位系统的五种定位算法,通过对比分析,探讨了各算法在UWB定位系统中的应用效果和性能表现。实验评估结果表明,UKF在非线性系统状态估计中具有最高的定位精度和鲁棒性,是UWB定位系统中的优选算法。未来研究可进一步探索算法优化、多源信息融合等方面,以提高UWB定位系统的定位精度和可靠性。
📚2 运行结果
部分代码:
% Poit Cloud ICP algorithm for Vicon Data
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Find the mean b/w two UWB systems
tuwb_x = (Tx_KF + Mx_KF + TSx_KF + EKF_x + UKF_x)./5;
tuwb_y = (Ty_KF + My_KF + TSy_KF + EKF_y + UKF_y)./5;
tuwb_z = zeros(rowR,1); % We don't have Z value in 2D
% Data for point cloud object(M-by-3 array | M-by-N-by-3 array)
uwb_xyzPoints = [tuwb_x tuwb_y tuwb_z];
vicon_Points = [vX vY vZ];
% perform the point cloud object
ptCloud_uwb = pointCloud(uwb_xyzPoints);
ptCloud_vicon = pointCloud(vicon_Points);
% Rotation angle b/w UWB and Vicon in TWB (180 degree in Z-direction)
Rz_theta = [cos(pi) -sin(pi) 0 0;
sin(pi) cos(pi) 0 0;
0 0 1 0;
0 0 0 1];
% Translation matrix for initialization
T_init = [1 0 0 -2.200717;
0 1 0 -2.926282;
0 0 1 2.322566;
0 0 0 1];
% Transform initial vicon data from the initial rotation and translation
% matrices
ptCloud_vicon_init = pctransform(ptCloud_vicon, affine3d((Rz_theta * T_init)'));
[tform, transformed_Vicon, rmse] = pcregistericp(ptCloud_vicon_init, ptCloud_uwb,'Extrapolate',true);
% Retrieve the XYZ from the pointcloud
xt_vicon = transformed_Vicon.Location(:,1);
yt_vicon = transformed_Vicon.Location(:,2);
zt_vicon = transformed_Vicon.Location(:,3);
mu_vx = mean(xt_vicon); % to shift the data to origin
mu_vy = mean(yt_vicon);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% PLOTTING THE RESULTS SECTION
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
% scatter(Mx, My); hold on;
scatter(EKF_x - mu_vx, EKF_y - mu_vy, 'LineWidth', 4, 'MarkerEdgeColor', [0 0.4470 0.7410]); hold on;
scatter(UKF_x - mu_vx, UKF_y - mu_vy, 'LineWidth', 1, 'MarkerEdgeColor', [0.8500 0.3250 0.0980]);
scatter(Tx_KF - mu_vx, Ty_KF - mu_vy, 'LineWidth', 1.5, 'MarkerEdgeColor', [0.9290 0.6940 0.1250]);
scatter(Mx_KF - mu_vx, My_KF - mu_vy, 'LineWidth', 1.5, 'MarkerEdgeColor', [0.4940 0.1840 0.5560]);
scatter(TSx_KF - mu_vx, TSy_KF - mu_vy, 'LineWidth', 1.5, 'MarkerEdgeColor',[0.4660 0.6740 0.1880]);
% scatter(xt_vicon - mu_vx, yt_vicon - mu_vy, 'LineWidth', 1.5, 'MarkerEdgeColor', [0.3010 0.7450 0.9330]);
scatter(xt_vicon - mu_vx, yt_vicon - mu_vy, 'LineWidth', 1.5, 'MarkerEdgeColor', 'k');
% legend('EKF', 'Multilat.+KF', 'Location', 'Best');
legend('EKF','UKF', 'Trilat.+KF', 'Multilat.+KF', 'TS+KF', 'Vicon system', 'Location', 'Best');
title('Tracking a static Tag/Node in LOS scenario');
xlabel('X-coordinate / m');
ylabel('Y-coordinate / m');
grid on; grid minor;
xlim([-0.06 0.14]);
ylim([-0.06 0.08]);
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
@INPROCEEDINGS{Sang2019Comparative,
author={Sang, Cung Lian and Adams, Michael and Hesse, Marc and Hörmann, Timm and Korthals, Timo and Rückert, Ulrich},
booktitle={2019 16th Workshop on Positioning, Navigation and Communications (WPNC)},
title={A Comparative Study of UWB-based True-Range Positioning Algorithms using Experimental Data},
year={2019},
pages={1-6},
doi={10.1109/WPNC47567.2019.8970249}
}
@INPROCEEDINGS{Sang2019Bidirectional,
author={Sang, Cung Lian and Adams, Michael and Korthals, Timo and Hörmann, Timm and Hesse, Marc and Rückert, Ulrich},
booktitle={2019 International Conference on Indoor Positioning and Indoor Navigation (IPIN)},
title={A Bidirectional Object Tracking and Navigation System using a True-Range Multilateration Method},
year={2019},
pages={1-8},
doi={10.1109/IPIN.2019.8911811}
}
@ARTICLE{Sang2023Bidirectional,
author={Sang, Cung Lian and Adams, Michael and Hesse, Marc and Rückert, Ulrich},
journal={IEEE Journal of Indoor and Seamless Positioning and Navigation},
title={Bidirectional UWB Localization: A Review on an Elastic Positioning Scheme for GNSS-deprived Zones},
year={2023},
volume={1},
pages={161-179},
doi={10.1109/JISPIN.2023.3337055}
}
🌈4 Matlab代码、数据、文章下载
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取