00001 ////////////////////////////////////////////////////////////////////////////////////////////////// 00002 /*! \file atterrbiasObserver.h 00003 * \brief The atterrbiasObserver class inherits the functionality of the Observer class. This should be the default observer for the MotionPak-only sensor configuration. 00004 * \author $Author: cakinli $ 00005 * \version $Revision: 1.2 $ 00006 * \date $Date: 2005/03/16 18:08:15 $ 00007 *////////////////////////////////////////////////////////////////////////////////////////////////// 00008 00009 00010 #ifndef __SSSL_ATTERRBIAS_OBSERVER_H__ 00011 #define __SSSL_ATTERRBIAS_OBSERVER_H__ 00012 00013 #include <Filtering/ExtendedKalmanFilter.h> 00014 #include <Observer/Observer.h> 00015 #include <Utils/Measurement.h> 00016 #include <Base/Whorl.h> 00017 #include <vector> 00018 00019 using namespace std; 00020 using namespace O_SESSAME; 00021 00022 class atterrbiasObserver : public Observer { 00023 00024 public: 00025 00026 /*! default constructor */ 00027 atterrbiasObserver() { }; 00028 00029 /*! this is the constructor that actually gets called*/ 00030 atterrbiasObserver(Whorl* ptr_whorl) { 00031 m_whorl = ptr_whorl; 00032 int retcode = Initialize(); 00033 retcode = 0; 00034 }; 00035 00036 /*! default destructor */ 00037 ~atterrbiasObserver() { }; 00038 00039 /*! this function sets up filter constants and initial conditions */ 00040 int Initialize(); 00041 00042 /*! this is the function that gets called when you command myObserver.Observe() */ 00043 int Run(); 00044 00045 protected: 00046 00047 private: 00048 00049 ExtendedKalmanFilter ekf; 00050 Whorl* m_whorl; 00051 Measurement m_measurements[6]; 00052 Vector m_abstate; 00053 Vector m_qomstate; 00054 Vector m_newq; 00055 Vector m_control; 00056 }; 00057 00058 #endif 00059 00060 // Do not change the comments below - they will be added automatically by CVS 00061 /***************************************************************************** 00062 * $Log: atterrbiasObserver.h,v $ 00063 * Revision 1.2 2005/03/16 18:08:15 cakinli 00064 * *** empty log message *** 00065 * 00066 * Revision 1.1 2004/07/29 18:22:57 simpliciter 00067 * The good news: this file is well commented and should be easy to work with! 00068 * The bad news: it needs a matrix exponential function. :-( Sorry! 00069 * Any questions, check out Jana's dissertation or send an email! 00070 * 00071 * 00072 * 00073 * 00074 ******************************************************************************/ 00075 00076 00077