00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file DefaultObserver.h 00003 * \brief The default observer class inherits the functionality of the observer class and provides 00004 * the space for the the actual filter code. 00005 * \author $Author: cakinli $ 00006 * \version $Revision: 1.9 $ 00007 * \date $Date: 2005/03/16 18:08:15 $ 00008 *////////////////////////////////////////////////////////////////////////////////////////////////// 00009 /* 00010 */ 00011 ////////////////////////////////////////////////////////////////////////////////////////////////// 00012 00013 #ifndef __SSSL_DEFAULT_OBSERVER_H__ 00014 #define __SSSL_DEFAULT_OBSERVER_H__ 00015 00016 #include <Filtering/ExtendedKalmanFilter.h> 00017 #include <Observer/Observer.h> 00018 #include <Utils/Measurement.h> 00019 #include <Base/Whorl.h> 00020 #include <vector> 00021 00022 using namespace std; 00023 using namespace O_SESSAME; 00024 00025 class DefaultObserver : public Observer { 00026 00027 public: 00028 00029 /*! Constructor */ 00030 DefaultObserver() { }; 00031 DefaultObserver(Whorl* ptr_whorl) { 00032 m_whorl = ptr_whorl; 00033 int retcode = Initialize(); 00034 retcode = 0; 00035 }; 00036 00037 /*! Destructor */ 00038 ~DefaultObserver() { }; 00039 00040 // Facilitators 00041 00042 // Mutators 00043 00044 /*! Initialize the filter */ 00045 int Initialize(); 00046 00047 /*! Run is the funtion that implements the estimator in the derived class Filter */ 00048 int Run(); 00049 00050 protected: 00051 00052 private: 00053 00054 ExtendedKalmanFilter ekf; 00055 Whorl* m_whorl; 00056 map<string, RateGyro*> m_rateGyros; 00057 string m_rateGyroNames[3]; 00058 Measurement m_measurements[3]; 00059 }; 00060 00061 #endif 00062 00063 // Do not change the comments below - they will be added automatically by CVS 00064 /***************************************************************************** 00065 * $Log: DefaultObserver.h,v $ 00066 * Revision 1.9 2005/03/16 18:08:15 cakinli 00067 * *** empty log message *** 00068 * 00069 * Revision 1.8 2003/08/13 23:18:22 mavandyk 00070 * Altered structure as outline in meeting. 00071 * 00072 * Revision 1.7 2003/08/06 21:49:27 mavandyk 00073 * Added comments fixed class structure and runs with config parsig. 00074 * 00075 * Revision 1.6 2003/08/01 11:21:52 mavandyk 00076 * Changed class structure. 00077 * 00078 * Revision 1.5 2003/07/21 21:53:59 mavandyk 00079 * Fixed some syntax errors. 00080 * 00081 * Revision 1.4 2003/07/14 20:06:41 mavandyk 00082 * Fixed calls to Whorl class, and handling of time and measurements. 00083 * 00084 * Revision 1.3 2003/07/10 19:50:53 mavandyk 00085 * Fixed time handling. 00086 * 00087 * Revision 1.1 2003/07/04 14:12:29 simpliciter 00088 * Moved from src directory. 00089 * 00090 * Revision 1.1 2003/07/02 21:33:08 mavandyk 00091 * The observer for the demo. 00092 * 00093 * Revision 1.1 2003/06/30 16:06:00 nicmcp 00094 * replaced the controller files with the Controller files 00095 * 00096 * Revision 1.3 2003/06/30 15:51:57 nicmcp 00097 * made some changes to the controller files 00098 * 00099 * Revision 1.2 2003/06/30 14:13:35 simpliciter 00100 * Modified comments, added log blocks. 00101 * 00102 * 00103 * 00104 ******************************************************************************/