💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
⛳️赠与读者
👨💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。
或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎
💥1 概述
一、引言
在现代定位系统中,单一传感器往往难以满足高精度、高可靠性的定位需求。因此,传感器融合技术应运而生,通过整合多种传感器的优势,提高定位系统的性能。本研究旨在探索UWB(超宽带)、IMU(惯性测量单元)和超声波传感器的融合方案,利用卡尔曼滤波器以及三种不同的多点定位算法(最小二乘法、递归最小二乘法、梯度下降法)进行目标定位,以实现高精度、鲁棒性强的定位系统。
二、传感器介绍
(一)UWB(超宽带)
UWB技术具有高精度测距的特点,能够在短距离内实现厘米级的定位精度。其测距原理是通过发射超宽带脉冲信号,接收端根据信号的飞行时间(TOF)来计算距离。
(二)IMU(惯性测量单元)
IMU包括加速计和陀螺仪,能够测量物体的加速度和角速度。通过积分运算,可以得到物体的速度和位置信息。然而,IMU存在累积误差,需要通过其他传感器进行校正。
(三)超声波传感器
超声波传感器通过发射和接收超声波信号,根据信号的反射时间来测量距离。其优点是成本低、易于实现,但精度相对较低,且受环境影响较大。
三、定位算法
(一)卡尔曼滤波器
卡尔曼滤波器是一种递归滤波器,适用于线性动态系统。它通过预测和更新两个步骤,结合系统的动态模型和测量模型,对状态进行估计。在本研究中,卡尔曼滤波器用于融合IMU和UWB的数据,提高定位精度。
(二)多点定位算法
1. 最小二乘法
最小二乘法是一种常用的参数估计方法,通过最小化测量值与估计值之间的误差平方和来求解最优参数。在多点定位中,最小二乘法可以用于根据多个参考点的距离测量值,估计目标位置。
2. 递归最小二乘法
递归最小二乘法是最小二乘法的一种递归形式,适用于实时数据处理。它通过不断更新估计值,减少计算量,提高计算效率。在多点定位中,递归最小二乘法可以实时更新目标位置估计,适应动态环境。
3. 梯度下降法
梯度下降法是一种优化算法,通过迭代搜索最小化目标函数的参数。在多点定位中,梯度下降法可以用于优化目标位置,使其与测量值之间的误差最小化。梯度下降法可以设置不同的边界条件,如将边界视为整个工作空间,或通过前一步骤缩小边界来最小化搜索范围。
四、系统架构
本研究的系统架构如下:
-
数据采集:
-
从IMU读取加速度和角速度数据,计算线性加速度作为卡尔曼滤波器的输入。
-
读取UWB距离数据,并将其输入到多点定位算法中,以获得第一个估计位置作为卡尔曼滤波器的输入。
-
读取超声波距离数据,作为卡尔曼滤波器的辅助输入。
-
-
数据处理:
-
根据指定的路径和多点定位算法,处理UWB数据。如果选择梯度下降法,需要指定边界条件。
-
使用卡尔曼滤波器融合IMU、UWB和超声波数据,输出最终的定位结果。
-
-
结果分析:
-
对不同算法和条件下的定位结果进行分析,评估系统的性能和鲁棒性。
-
五、实验设计
为了验证系统的性能,设计了以下实验:
-
静态实验:
-
在固定位置放置目标,分别使用三种多点定位算法进行定位,记录定位误差和收敛速度。
-
分析不同边界条件对梯度下降法的影响。
-
-
动态实验:
-
让目标在预设路径上运动,记录定位轨迹和误差。
-
比较不同算法在动态环境下的性能差异。
-
-
环境干扰实验:
-
在不同环境条件下(如不同光照、不同噪声水平)进行实验,评估系统的鲁棒性。
-
特别研究超声波在水平运动中的表现,分析其对定位精度的影响。
-
六、结果与讨论
通过实验数据的分析,得出以下结论:
-
定位精度:
-
UWB和IMU融合的卡尔曼滤波器能够显著提高定位精度,尤其是在动态环境中。
-
三种多点定位算法中,递归最小二乘法在实时性和精度上表现最佳,梯度下降法在适当边界条件下也能取得较好的结果。
-
-
鲁棒性:
-
系统在不同环境条件下表现出良好的鲁棒性,超声波在水平运动中的辅助作用明显,能够有效减少环境干扰对定位精度的影响。
-
梯度下降法的边界条件对定位结果有较大影响,适当缩小边界可以提高定位精度和收敛速度。
-
-
算法选择:
-
对于实时性要求较高的应用,推荐使用递归最小二乘法;对于需要高精度且计算资源充足的应用,可以考虑使用梯度下降法。
-
在复杂环境中,超声波传感器的辅助作用不可忽视,应合理配置传感器以提高系统的整体性能。
-
七、结论
本研究通过融合UWB、IMU和超声波传感器,利用卡尔曼滤波器和三种多点定位算法,实现了一种高精度、鲁棒性强的定位系统。实验结果表明,该系统在不同环境条件下均能取得良好的定位效果,具有广泛的应用前景。未来的研究可以进一步优化算法,提高系统的实时性和适应性,以满足更多复杂场景下的定位需求。
📚2 运行结果
部分代码:
addpath('Rotation');
addpath('ErrorCalculation');
%% choosen path
%options are the following:
% 1: reads of 5 anchors with different heights using update firmware with 4Hz update rate of UWB
% raw data system and have the following path (Experiment 3)
% ---------------------
% | |
% | |
% ---------------------
% 2: reads of 4 anchors with the same heights using original firmware with 10Hz update rate of
% UWB raw data system and have the following path (Experiment1)
% ---------------------
% | |
% | |
% ---------------------
% 3: reads of 4 anchors with the same heights using original firmware with 10Hz update rate of
% UWB raw data system and have the following path (Extra1)
% |
% ---------------------
% |
% ---------------------
% |
% ---------------------
% 4: reads of 4 anchors with different heights using original firmware with 10Hz update rate of
% UWB raw data system and have the following path (Experiment 2)
% ---------------------
% | |
% | |
%
% 5: reads of 4 anchors with different heights using original firmware with 10Hz update rate of
% UWB raw data system and have the following path (Extra 2)
% ----------
% | \ / |
% | \ / |
% | \/ |
% | /\ |
% | / \ |
% | / \ |
% ----------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
path = 'pathOption1.mat'; %Exp3
% path = 'pathOption2.mat'; %Exp1
% path = 'pathOption3.mat'; %Extra1
% path = 'pathOption4.mat'; %Exp2
% path = 'pathOption5.mat'; %Extra2
load(path);
%% calculating positions using mlat (3 algorithms)
% Algorithms are four: 1- Gradient Descent
% 2- Recursive Least Square
% 3- Least Square
% we need to choose algorithm:
Algorithm = 'Gradient_Descent';
% Algorithm = 'Recursive_Least_square';
% Algorithm = 'Least_square';
%% Options by running the code
% yes = 1
% No = 0
without_IMU = 0;
Object_surround_by_point = 0;
Collision_detection = 0;
printout_video_of_simulation = 0;
%% Beginning of the Code
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Code Start %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Variable definitions
% positionEstimate: estimated postion usig an algorithm of multilateration
% filtered_angles: the angles that will be using in rotation matrix
% dt: Time interval the system in case 4 anchros and for only
% sensors in case 5 anchors
% bounds: when using gradient decent to define bounds that
% estimated postion should be in
% iteration: loop iteration of Kalman filter
% anchorsNumber: number of anchors used in the system
positionEstimate=[];
filtered_angles = [];
earth = [0 0 9.8]';
iteration = length(acc);
anchorsNumber = size(dis,2);
%% Synchornization procedure for reads from UWB system and sensors
%defining timeStamp for distances in matrix dtDis
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。(文章内容仅供参考,具体效果以运行结果为准)
[1]高茹晗.基于UWB/IMU组合的室内定位技术研究[D].上海师范大学,2019.
[2]刘超.基于UWB与IMU组合的多机器人协同定位方法研究[D].哈尔滨工业大学,2022.
[3]胡文龙,周宇飞,宋全军,曹平国.基于UWB和IMU信息融合的室内定位算法研究[J].制造业自动化, 2023, 45(2):193-197.
🌈4 Matlab代码实现
资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取