Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages | Examples

IteratedExtendedKalmanFilter.h

Go to the documentation of this file.
00001 /************************************************************************************************/
00002 /*! \file IteratedExtendedKalmanFilter.h
00003 *  \brief The IteratedExtendedKalmanFilter class provides functionality beyond the ExtendedKalmanFilter class for advanced calculation of the measurement update of the state.
00004 *  \author $Author: cakinli $
00005 *  \version $Revision: 1.9 $
00006 *  \date    $Date: 2005/02/25 18:40:53 $
00007 ************************************************************************************************/
00008 /*! 
00009 *
00010 ************************************************************************************************/
00011 
00012 #ifndef __SSSL_ITERATEDEXTENDEDKALMANFILTER_H__
00013 #define __SSSL_ITERATEDEXTENDEDKALMANFILTER_H__
00014 
00015 #include <Filtering/ExtendedKalmanFilter.h>
00016 
00017 #define DEFAULT_ITERATION_LIMIT 10
00018 #define DEFAULT_TOLERANCE 0.001
00019 
00020 class IteratedExtendedKalmanFilter : public ExtendedKalmanFilter {
00021 
00022 public:
00023         /*! Default Constructor */      
00024         IteratedExtendedKalmanFilter();
00025         
00026         /*! Constructor */
00027         IteratedExtendedKalmanFilter(double propStepSize, int IterLimit, double tol);
00028                 
00029         /*! Destructor */
00030         virtual ~IteratedExtendedKalmanFilter() { };
00031 
00032         // Facilitators
00033         
00034                 // Mutators
00035                 
00036                         /*! Sets the limit on the number of iterations */
00037                         inline void SetIterationLimit(int iteratLimit) { m_iterationLimit = iteratLimit; };
00038         
00039                         /*! Sets the tolerance */
00040                         inline void SetTolerance(double tol) { m_tolerance = tol; };
00041         
00042                         /*! Estimates the states at the time of the measurements */
00043                         void EstimateState();
00044                         
00045                 // Inspectors
00046                 
00047                         /*! Gets the iteration limit */
00048                         inline int GetIterationLimit() { return m_iterationLimit; };
00049                         
00050                         /*! Gets the tolerance */
00051                         inline double GetTolerance() { return m_tolerance; };
00052 
00053                         /*! Gets the number of iterations */
00054                         inline int GetNumIterations() { return m_numIterations; };
00055                         
00056 protected:
00057         
00058         int m_iterationLimit; /*!< The maximum number of iterations allowed. */
00059         double m_tolerance;       /*!< The convergence tolerance. */
00060         int m_numIterations;  /*!< The number of iterations used. */
00061 
00062 private:
00063 
00064 };
00065 
00066 #endif 
00067 // Do not change the comments below - they will be added automatically by CVS
00068 /*****************************************************************************
00069 * $Log: IteratedExtendedKalmanFilter.h,v $
00070 * Revision 1.9  2005/02/25 18:40:53  cakinli
00071 * Created Makefiles and organized include directives to reduce the number of
00072 * include paths.  Reorganized libraries so that there is now one per source
00073 * directory.  Each directory is self-contained in terms of its Makefile.
00074 * The local Makefile in each directory includes src/config.mk, which has all
00075 * the definitions and general and pattern rules.  So at most, to see what
00076 * goes into building a target, a person needs to examine the Makefile in
00077 * that directory, and ../config.mk.
00078 *
00079 * Revision 1.8  2003/07/12 17:57:52  simpliciter
00080 * Added IEKF and EKF Histories.
00081 *
00082 * Revision 1.7  2003/07/01 21:04:45  mavandyk
00083 * Edited default constructor, and added another constructor to set iteration and step size values.
00084 *
00085 * Revision 1.6  2003/07/01 20:23:53  mavandyk
00086 * Corrected syntax errors.
00087 *
00088 * Revision 1.5  2003/06/30 21:47:32  mavandyk
00089 * Added comments and pulled out structs and replaced with multiple data members.
00090 *
00091 * Revision 1.4  2003/06/12 16:16:00  mavandyk
00092 * Changed all references to iterative filter to sequential filter for greater clarity.  Removed improper lines of code involving iterated filter references.
00093 *
00094 * Revision 1.3  2003/06/11 15:46:42  simpliciter
00095 * Added include line for IterativeFilter.h.
00096 *
00097 * Revision 1.2  2003/06/11 13:08:27  simpliciter
00098 * Minor changes.
00099 *
00100 * Revision 1.1  2003/06/11 03:04:43  simpliciter
00101 * Initial submission.
00102 *
00103 ******************************************************************************/

Generated on Wed Sep 5 12:54:21 2007 for DSACSS Operational Code by  doxygen 1.3.9.1