传感器融合(UWB+IMU+超声波),使用卡尔曼滤波器和3种不同的多点定位算法(最小二乘、递归最小二乘和梯度下降)研究(Matlab代码实现)

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

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

 ⛳️赠与读者

💥1 概述

一、引言

二、传感器介绍

(一)UWB(超宽带)

(二)IMU(惯性测量单元)

(三)超声波传感器

三、定位算法

(一)卡尔曼滤波器

(二)多点定位算法

1. 最小二乘法

2. 递归最小二乘法

3. 梯度下降法

四、系统架构

五、实验设计

六、结果与讨论

七、结论

📚2 运行结果

🎉3 参考文献 

🌈4 Matlab代码实现


 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能解答你胸中升起的一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

一、引言

在现代定位系统中,单一传感器往往难以满足高精度、高可靠性的定位需求。因此,传感器融合技术应运而生,通过整合多种传感器的优势,提高定位系统的性能。本研究旨在探索UWB(超宽带)、IMU(惯性测量单元)和超声波传感器的融合方案,利用卡尔曼滤波器以及三种不同的多点定位算法(最小二乘法、递归最小二乘法、梯度下降法)进行目标定位,以实现高精度、鲁棒性强的定位系统。

二、传感器介绍

(一)UWB(超宽带)

UWB技术具有高精度测距的特点,能够在短距离内实现厘米级的定位精度。其测距原理是通过发射超宽带脉冲信号,接收端根据信号的飞行时间(TOF)来计算距离。

(二)IMU(惯性测量单元)

IMU包括加速计和陀螺仪,能够测量物体的加速度和角速度。通过积分运算,可以得到物体的速度和位置信息。然而,IMU存在累积误差,需要通过其他传感器进行校正。

(三)超声波传感器

超声波传感器通过发射和接收超声波信号,根据信号的反射时间来测量距离。其优点是成本低、易于实现,但精度相对较低,且受环境影响较大。

三、定位算法

(一)卡尔曼滤波器

卡尔曼滤波器是一种递归滤波器,适用于线性动态系统。它通过预测和更新两个步骤,结合系统的动态模型和测量模型,对状态进行估计。在本研究中,卡尔曼滤波器用于融合IMU和UWB的数据,提高定位精度。

(二)多点定位算法

1. 最小二乘法

最小二乘法是一种常用的参数估计方法,通过最小化测量值与估计值之间的误差平方和来求解最优参数。在多点定位中,最小二乘法可以用于根据多个参考点的距离测量值,估计目标位置。

2. 递归最小二乘法

递归最小二乘法是最小二乘法的一种递归形式,适用于实时数据处理。它通过不断更新估计值,减少计算量,提高计算效率。在多点定位中,递归最小二乘法可以实时更新目标位置估计,适应动态环境。

3. 梯度下降法

梯度下降法是一种优化算法,通过迭代搜索最小化目标函数的参数。在多点定位中,梯度下降法可以用于优化目标位置,使其与测量值之间的误差最小化。梯度下降法可以设置不同的边界条件,如将边界视为整个工作空间,或通过前一步骤缩小边界来最小化搜索范围。

四、系统架构

本研究的系统架构如下:

  1. 数据采集

    • 从IMU读取加速度和角速度数据,计算线性加速度作为卡尔曼滤波器的输入。

    • 读取UWB距离数据,并将其输入到多点定位算法中,以获得第一个估计位置作为卡尔曼滤波器的输入。

    • 读取超声波距离数据,作为卡尔曼滤波器的辅助输入。

  2. 数据处理

    • 根据指定的路径和多点定位算法,处理UWB数据。如果选择梯度下降法,需要指定边界条件。

    • 使用卡尔曼滤波器融合IMU、UWB和超声波数据,输出最终的定位结果。

  3. 结果分析

    • 对不同算法和条件下的定位结果进行分析,评估系统的性能和鲁棒性。

五、实验设计

为了验证系统的性能,设计了以下实验:

  1. 静态实验

    • 在固定位置放置目标,分别使用三种多点定位算法进行定位,记录定位误差和收敛速度。

    • 分析不同边界条件对梯度下降法的影响。

  2. 动态实验

    • 让目标在预设路径上运动,记录定位轨迹和误差。

    • 比较不同算法在动态环境下的性能差异。

  3. 环境干扰实验

    • 在不同环境条件下(如不同光照、不同噪声水平)进行实验,评估系统的鲁棒性。

    • 特别研究超声波在水平运动中的表现,分析其对定位精度的影响。

六、结果与讨论

通过实验数据的分析,得出以下结论:

  1. 定位精度

    • UWB和IMU融合的卡尔曼滤波器能够显著提高定位精度,尤其是在动态环境中。

    • 三种多点定位算法中,递归最小二乘法在实时性和精度上表现最佳,梯度下降法在适当边界条件下也能取得较好的结果。

  2. 鲁棒性

    • 系统在不同环境条件下表现出良好的鲁棒性,超声波在水平运动中的辅助作用明显,能够有效减少环境干扰对定位精度的影响。

    • 梯度下降法的边界条件对定位结果有较大影响,适当缩小边界可以提高定位精度和收敛速度。

  3. 算法选择

    • 对于实时性要求较高的应用,推荐使用递归最小二乘法;对于需要高精度且计算资源充足的应用,可以考虑使用梯度下降法。

    • 在复杂环境中,超声波传感器的辅助作用不可忽视,应合理配置传感器以提高系统的整体性能。

七、结论

本研究通过融合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.

🌈Matlab代码实现

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值