Institut de Robòtica i Informàtica Industrial

Update

PURPOSE ^

Belief evolution under an observation model.

SYNOPSIS ^

function bOut=Update(b,po,Sp)

DESCRIPTION ^

   Belief evolution under an observation model.
  
   Corrects a belief with the information given by the observation model,
   'po'.
   'po' is derived with GetObservationModelFixedO for the
   corresponding obs model.

   Note that we use the backed up samples possibly created in a
   Predicition step before. If no prediction step was exectued before,  
   the backup and the samples point to the same data.

CROSS-REFERENCE INFORMATION ^

This function calls:
  • rand Random state from a discrete belief.
  • PBelief Particle-based belief constructor.
  • rand Random state from a belief.
  • Crop Limits all means to be inside the given space.
  • Value Evaluates a GMixture.
  • rand Generates random points on a GMixture.
  • Crop Forces the Gaussian mean to be in a given space.
  • Gaussian Gaussian construtor.
  • Value Evaluation of a Gaussian.
  • rand Generates random ponts on a Gaussian.
  • RandVector Selects and element from a discrete probability distribution.
  • Crop Forces a state to be in a given continuous sub-space.
  • rand Random state from a continuous space.
  • Crop Forces a state to be in a given discrete space.
  • rand Random state from a discrete space.
This function is called by:

SOURCE CODE ^

0001 function bOut=Update(b,po,Sp)
0002 %   Belief evolution under an observation model.
0003 %
0004 %   Corrects a belief with the information given by the observation model,
0005 %   'po'.
0006 %   'po' is derived with GetObservationModelFixedO for the
0007 %   corresponding obs model.
0008 %
0009 %   Note that we use the backed up samples possibly created in a
0010 %   Predicition step before. If no prediction step was exectued before,
0011 %   the backup and the samples point to the same data.
0012 
0013   c=arrayfun(@(s)(Value(po,s)),b.noiselessMovedSamples);
0014   w=b.w.*c;
0015   g=cell(1,b.np);
0016   for i=1:b.np
0017     g{i}=Gaussian(b.samples(:,i),b.noise);
0018   end
0019   
0020   ns=zeros(b.ss,b.np);
0021   nw=zeros(1,b.np);
0022   for i=1:b.np
0023     j=RandVector(w);
0024     ns(:,i)=Crop(Sp,rand(g{j}));
0025     nw(i)=Value(po,ns(:,i))/c(j);
0026   end
0027   
0028   bOut=PBelief(nw,ns);
0029


Institut de Robòtica i Informàtica Industrial

Generated on Wed 05-Aug-2009 15:05:21 by m2html © 2003