prediction.m

来自「移动机器人同时定位与地图创建最前沿技术」· M 代码 · 共 32 行

M
32
字号
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% SLAM Summer School 2006, Oxford.
% Practical 3. SLAM using Monocular Vision.
% Practical exercise.
% J.M.M. Montiel, Javier Civera, Andrew J. Davison.
% {josemari, jcivera}@unizar.es, ajd@doc.ic.ac.uk
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function [ X_km1_k, P_km1_k ] = prediction( X_k, P_k, delta_t, SD_A_component_filter, SD_alpha_component_filter )
% Prediction step

% Camera motion prediction
Xv_km1_k = fv( X_k(1:13,:), delta_t );

% The prediction for the features is to stay at the same place
X_km1_k = [ Xv_km1_k; X_k( 14:end,:) ];

% Prediction for P
F = dfv_by_dxv( X_k(1:13,:),zeros(6,1),delta_t );

Pn=diag([(SD_A_component_filter*delta_t)^2 (SD_A_component_filter*delta_t)^2 (SD_A_component_filter*delta_t)^2 ...
        (SD_alpha_component_filter*delta_t)^2 (SD_alpha_component_filter*delta_t)^2 (SD_alpha_component_filter*delta_t)^2]);

[Q,G] = func_Q( X_k(1:13,:), zeros(6,1), Pn, delta_t );

nFeat=(size(X_k,1)-13)/3;

F_tot     = [F                 zeros(13,3*nFeat);
            zeros(13,3*nFeat)'      eye(3*nFeat)];
    
P_km1_k = F_tot*P_k*F_tot'      +    [ Q                       zeros(13,3*nFeat);
                                       zeros(13,3*nFeat)'       zeros(3*nFeat,3*nFeat)];

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?