Homepage Demos Overview Downloads Tutorials Reference
Credits
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages | Search

afsMeasurementUpdate.h

Go to the documentation of this file.
00001 /*
00002  * Measurement update code for the AIBO FastSLAM.
00003  *
00004  * The routines here are used to update the particles' ideas of where
00005  * landmarks are after new sensor information is collected. One of two
00006  * things can occur here:
00007  *
00008  * 1. The particle already has an estimate of where the landmark is
00009  *    located. New measurement information is integrated with the
00010  *    existing estimate using standard extended Kalman filter techniques
00011  *    (thanks, Mike!).
00012  *
00013  * 2. There is no estimate yet. To create an estimate, good old fashioned
00014  *    triangulation is used to create a Gaussian that roughly matches the
00015  *    location of the landmark. This requires multiple sightings, though,
00016  *    and in some cases the routine will just cache information about the
00017  *    particle location without doing anything, waiting until the next
00018  *    measurement to create the estimate.
00019  *
00020  * The measurement update routines will also compute a weight for the
00021  * subsequent particle resampling step IF this is possible. It may not be
00022  * possible if this particle has not been able to triangulate a landmark's
00023  * location yet, or if it has just completed a triangulation. If a weight
00024  * is computed, the particle's gotweight member will be set to true and
00025  * its weight member will be filled with the weight. If not, gotweight will
00026  * be false.
00027  */
00028 
00029 #include "afsParticle.h"
00030 
00031 #ifndef _AFS_MEASUREMENT_UPDATE_H_
00032 #define _AFS_MEASUREMENT_UPDATE_H_
00033 
00034 #ifdef __cplusplus
00035 extern "C" {
00036 #endif
00037 
00038 /* Perform the measurement update detailed above. */
00039 void afsMeasurementUpdate(afsParticle *p, int landmark, double theta);
00040 
00041 #ifdef __cplusplus
00042 }
00043 #endif
00044 
00045 #endif

Tekkotsu v1.4
Generated Sat Jul 19 00:06:29 2003 by Doxygen 1.3.2