• 大小: 92KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: Matlab
  • 标签: slam  matlab  gui  

资源简介

基于卡尔曼滤波的机器人slam导航算法 matlab demo,有简洁的gui界面。方便开发和修改。。

资源截图

代码片段和文件信息

function [World rob] = configuration(rob sen_rf Lmks Wpts AxisDim)
global RunTime;

    % If you want to make any changes to the default robot/sensor settings
    % then do that here - the changes will be passed back into the main
    % SLAM function.
    
    % Set robot at first waypoint
    rob.R(1:2) = Wpts(:1);
    % Orient robot towards second waypoint
    rob.R(3) = bearingToPoint(rob.R Wpts(: 2)) + rob.R(3);
    % Initial pose estimate is perfect
    rob.r = rob.R;
    
    % These values are set by an engineer to match the system:
    World.Q = diag(rob.q .^ 2);     % System uncertainty
    World.M = diag(sen_rf.noise .^ 2); % Measurement uncertainty
    
    World.tend = RunTime;

    % Initialise landmarks and waypoints
    World.W = Lmks;
    World.Wpts = Wpts;
    
    % Initialise measurement vector
    World.y = zeros(2size(World.W2));

    % Initialise state and covariance vectors
    World.x = zeros(numel(rob.r)+numel(World.W) 1);    % State estimate
    World.P = zeros(numel(World.x)numel(World.x));     % Covariance matrix
    World.mapspace = 1:numel(World.x);                  % State map availability
    World.l = zeros(2 size(World.W2));                % Landmark positions

    % Find anad reserve mapspace for robot pose
    World.r = find(World.mapspacenumel(rob.r));
    World.mapspace(World.r) = 0;
    World.x(World.r) = rob.R;     % Set initial pose estimate equal to truth
    World.P(World.r World.r) = 0;  % Set initial pose covariance equal to 0
    
    % Initialise historical vectors
    World.R_hist = zeros(2 World.tend);
    World.r_hist = zeros(2 World.tend);
    World.Pr_hist = zeros(2 World.tend);
    World.error_hist = zeros(1 World.tend);
    World.scan_error_hist = zeros(2 World.tend);
    World.odo_error_hist = zeros(2 World.tend);
    World.turning_hist = zeros(1 World.tend);
    World.weight_scan_hist = zeros(1 World.tend);
    World.weight_odo_hist = zeros(1 World.tend);

    %%%%%%%%%%%%%%%%%%%%%%%%% MAPPING SETTINGS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
    % Map resolution (grid size)
    World.map_res = 0.5;
    % Scan correlation tolerance. This defines the minimum number of
    % correlations required for a scan match to be accepted
    World.scan_corr_tolerance = 20;
    % Descretised grid map values
    World.map_vals = -AxisDim+World.map_res:World.map_res:AxisDim-World.map_res;
    World.gridmap = zeros(AxisDim * 2 / World.map_res - 1);
    World.gridmap_counter = ones(size(World.gridmap)) * round(255/2);
    World.scan_data = [];
    World.scan_global = [];
    World.scan_true = [];
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件          9  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\.gitignore

     文件       2058  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\3rd-party\cov2elli.m

     文件      10205  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\3rd-party\ginputax.m

     文件       2660  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\configuration.m

     文件      15142  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\ekfSLAM.m

     文件       7190  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\gridmap.tiff

     文件      14892  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\mapMakerGUI.fig

     文件      23781  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\mapMakerGUI.m

     文件       5540  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\Obstacle.m

     文件       1674  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\README.md

     文件       6631  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\Robot.m

     文件        996  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\sample-maps\map_bedroom.mat

     文件        674  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\sample-maps\map_corridor.mat

     文件       1731  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\sample-maps\map_largefloor.mat

     文件       1016  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\sample-maps\map_movement.mat

     文件       1153  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\sample-maps\map_windycorridor.mat

     文件       1770  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\Sensor.m

     文件        710  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\setup.m

     文件        714  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\arbitrary.mat

     文件        904  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\circular.mat

     文件        646  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\corner.mat

     文件        674  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\corridor.mat

     文件       1590  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\getSaliency.asv

     文件       1598  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\getSaliency.m

     文件       1724  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\medFilterScan.m

     文件       1049  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\medFilterScan.mat

     文件        711  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\obstacles.mat

     文件       8171  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\scanTest.fig

     文件       2486  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tests\testICP.m

     文件         97  2013-12-16 07:25  卡尔曼滤波\ekf-slam-matlab-master\tools\bearingToPoint.m

............此处省略41个文件信息

评论

共有 条评论