当前位置:   article > 正文

EKF-SLAM matlab仿真(2)_水下slam仿真系统

水下slam仿真系统
EKF-SLAM中机器人的运动轨迹为:X={x1,...xk},其中每个x表示机器人在第i时刻的位姿,其中机器人在平面运动,故使用2D的参数:xi=[x,y,θ],路标的集合为L={l1,...ln},需要建立运动方程和观测方程,由于上述两个方式是非线性的,根据EKF理论,需要将他们线性化,进而求得几个重要的雅可比矩阵,然后对EKF的预测部分两个方程和更新部分三个方程进行求解。
EKF-SLAM有两个重要的假设:误差为高斯分布,以及工作点附近可以用导数线性化。当这两个假设成立时,EKF-SLAM可以实时的更新机器人的当前位姿与路标。
EKF-SLAM程序如下:
  1. %-------------------------------------------------------------------------
  2. % FILE: slam.m
  3. % DESC: Implements the SLAM algorithm based on a robot model and sensor
  4. % data from Nebot.
  5. %landmarks(真实路标)
  6. %estbeac=estimation(估计)+beacon(路标),将estbeac的值赋给landmarks然后将estbeac清除。
  7. %xest 状态矩阵
  8. %Pest 协方差矩阵
  9. %A W Jh 雅可比矩阵
  10. %Q 过程激励噪声协方差矩阵
  11. %k 迭代次数
  12. %K 卡尔曼增益
  13. %numStates 状态的数量 初始化时候就三个,即位置(x,y)和姿态(phi)
  14. %phi 姿态,即与x轴的夹角
  15. %Steering 转向角
  16. %alpha 转向角
  17. %Ve = Velocity 后轮的转速
  18. %Vc 车水平平移速度
  19. %zlaser=[rangeArray; bearingArray]; 机器人与路标的距离和方位
  20. %--------------------------------------------------------------------------
  21. clear all; clc;
  22. load('data_set');
  23. load('beac_juan3.mat'); %beac_juan3.mat中内容为路标,命令whos –file查看该文件中的内容
  24. landmarks=estbeac; clear estbeac; % true landmark positions (measured w/GPS sensor)
  25. %--------------------- DATA INITIALIZATION -----------------------------
  26. % Vehicle constants
  27. L=2.83; % distance between front and rear axles(前后轮轴之间的距离)
  28. h=0.76; % distance between center of rear axle and encoder(后轮轴中心与编码器的距离)
  29. b=0.5; % vertical distance from rear axle to laser(后轮轴中心到激光传感器的垂直距离)
  30. a=3.78; % horizontal distance fro
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/378998
推荐阅读
相关标签
  

闽ICP备14008679号