稀疏 landmark 与稠密 landmark 下 EKF SLAM 性能对比实验,预测更新同时进行与非同时进行对比 EKF SLAM 性能对比实验,EKF SLAM 在有色噪声下性能实验

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

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

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

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

目录

 ⛳️赠与读者

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、数据、文档讲解


 ⛳️赠与读者

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

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

💥1 概述

本篇报告全面说明了 KF,EKF,IEKF 算法的基本原理;构建推导出四轮前驱自主移动机器人的运动学模型和观测模型;详尽全面的解释推导了实验所中使用的 EKF SLAM 算法的系统模型、预测过程、过修正程、已知知 ID 和未知 ID 数据关联算法及状态向量增广的详细过程,实验内容包括数据生成实验,EKF SLAM 预测与单纯模型预测对比实验,稀疏 landmark 与稠密 landmark 下 EKF SLAM 性能对比实验,预测更新同时进行与非同时进行对比 EKF SLAM 性能对比实验,EKF SLAM 在有色噪声下性能实验,IEKFSLAM 与 EKF SLAM 在高斯噪声和有色噪声下性能对比。

EKF 全称 Extended Kalman Filter,即扩展卡尔曼滤波器,一种高效率的递归滤波器 (自

回归滤波器)。基本的卡尔曼滤波器在线性系统中有着良好的性能,但在非线性系统中效果不

理想,一般适用于线性系统。扩展卡尔曼滤波器通过对非线性系统进行线性化使得卡尔曼滤

波器在非线性系统中也可以有良好的性能。

基本的 EKF 算法假设噪声形式为高斯噪声,但实际情况下噪声形式往往为有色噪声形

式,并且 EKF 算法的线性化工作点往往不是输入状态真实的均值,而是一个估计的均值,这

样的偏差会导致计算出的雅可比矩阵也不是最好的,且线性化过程丢弃了许多高阶项,这会

导致 EKF 算法的性能下降,甚至导致滤波器发散。迭代扩展卡尔曼滤波算法 IEKF 能有效

的改善这一问题,个人理解其基本的思想与残差逼近类似。IEKF 会将上一步修正后的输出

作为下一次迭代修正误差的输入值,通过不断迭代来修正误差减小误差,具体的 IEKF 算法

的步骤可表达如下

本次实验所使用的移动机器人模型如图3所示,为 2 维平面上的自主移动车,其前轮可

以进行转向操作,后轮为固定的驱动轮,假设车身中心装有传感器(如激光、声纳、里程计

等),传感器固联坐标系与自主移动车辆的本体系一致,可对路标进行观测获得传感数据。车

辆状态根据运动学模型定义为 xv = [x, y, φ] T,控制输入量为舵角 γ 和速度 V ,相当于实际车

辆的方向盘转角和油门。此模型符合实际的汽车模型,因而具有一定的实用性。

 

详细文档见第4部分。

📚2 运行结果

运行视频:

链接:https://pan.baidu.com/s/1b99NJSsJyKaGJgcA8GH0vg 
提取码:feun 
--来自百度网盘超级会员V5的分享

部分代码:

% 获取控制量
    Vn = states(k).Vn;
    Gn = states(k).Gn;
     
    if ASYNCHRONOUS == 0
        % EKF更新状态预测值和协方差
        [x,P] = EKF_predict (x,P, Vn,Gn,QE, WHEELBASE,dt);
        % 获取仅通过模型预测的位姿
        x_model_pre = vehicle_model(x_model_pre, Vn,Gn, WHEELBASE,dt);
    end
    
    if states(k).observation_update == 1
        
        if ASYNCHRONOUS == 1
            % EKF更新状态预测值和协方差
            [x,P] = EKF_predict (x,P, Vn,Gn,QE, WHEELBASE,dt);
            % 获取仅通过模型预测的位姿
            x_model_pre = vehicle_model(x_model_pre, Vn,Gn, WHEELBASE,dt);
        end
        % 获取观测值
        z = states(k).zn;
        ftag_visible = states(k).ftag_visible;
        
        if REDUCE_OB_FEATURES == 1
            % 削减观测到的landmark数目
            if size(z,2) > 1
                z = z(:,1);
                ftag_visible = ftag_visible(1);
            end
        end
        
        % 数据关联
        if SWITCH_ASSOCIATION_KNOWN == 1
            [zf,idf,zn, da_table]= data_associate_known(x,z,ftag_visible, da_table);
        else
            [zf,idf, zn]= data_associate(x,P,z,RE, GATE_REJECT, GATE_AUGMENT); 
        end
        
        % 更新状态向量
        if SWITCH_USE_IEKF == 1
            [x,P]= update_iekf(x,P,zf,RE,idf, 5);
        else
            [x,P]= EKF_update(x,P,zf,RE,idf, 1); 
        end
        
        % 添加新的landmark到状态向量中
        [x,P]= augment(x,P, zn,RE); 
    end
    
    xtrue = states(k).xtrue;
    iwp = states(k).next_keypoint;
    
    % 清除图像
    cla;
    axis equal
   
    ture_trajectory(:,k) = xtrue(1:3);
    model_pre_trajectory(:,k) = x_model_pre(1:3);
    EKF_pre_trajectory(:,k) = x(1:3);
    
    % 画出历史轨迹
     plot( ture_trajectory(1, 1:k), ture_trajectory(2, 1:k), 'k--','linewidth',3);
    
    % 画出历史EKF预测轨迹
    plot( EKF_pre_trajectory(1, 1:k), EKF_pre_trajectory(2, 1:k), 'r','linewidth',3 );
    
    % 画出历史model预测轨迹
    plot( model_pre_trajectory(1, 1:k), model_pre_trajectory(2, 1:k), 'b-.','linewidth',3);
    
     % 画出landmarks
    scatter( landmarks(1, :), landmarks(2, :), 'b*' );
    
    % 画出路径关键点
    plot( wp(1,:), wp(2, :), 'r.','markersize',26 );
    
    % 画出目标点的位置
    if iwp~=0
       plot(wp(1,iwp),wp(2,iwp),'bo','markersize',13,'linewidth',1);
    end
    
    % 画出车的位姿
    draw_car(xtrue,5,'k');

🎉3 参考文献

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

[1] 强敏利,张万绪. IEKF 滤波在移动机器人定位中的应用. 39(2), page 74-77 2012.

[2] Thrun S. Probabilistic robotics[M]. 2006.

[3] 李久胜, 李永强, 周荻, et al. 基于 EKF 的 SLAM 算法的一致性分析 [J]. 计算机仿真,

2008, 25(6):155-160.

[4] Tim Bailey EKF SLAM CODE 2004

🌈4 Matlab代码、数据、文档讲解

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

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值