sample_proposal.m

来自「FastSLAM1.0/2.0的仿真」· M 代码 · 共 25 行

M
25
字号
function particle= sample_proposal(particle, z,idf, R, sampleproposal)
% Compute proposal distribution and then sample from it

xv= particle.xv;
Pv= particle.Pv;

% process each feature, incrementally refine proposal distribution
for i=1:length(idf)
    j= idf(i);
    
    [zpi,Hvi,Hfi,Qfi]= compute_jacobians(particle, j, R);
    Qfi= inv(Qfi); % only need inverse below
    vi= z(:,i)-zpi; vi(2)= pi_to_pi(vi(2));

    Pv= inv(Hvi' * Qfi * Hvi + inv(Pv)); % proposal covariance
    xv= xv + Pv * Hvi' * Qfi * vi; % proposal mean
    
    particle.xv= xv;
    particle.Pv= Pv;
end
    
% sample from proposal distribution
if sampleproposal==1, particle.xv= multivariate_gauss(xv,Pv,1); end
particle.Pv= zeros(3);

⌨️ 快捷键说明

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