- Main Page
- Namespaces
- Classes
- Files
- Related Pages

# /Users/fpy/titan-1-5-MBARI/Mers/Estimation/Discrete/ModeEstimationPerformance/Monitor/ModeEstimatorDebug.h

    00001 //=============================================================================
    00002 // ModeEstimatorDebug.h: Debug interface for the ModeEstimator class.
    00003 //
    00004 // Copyright (c) 2005           Model-based Embedded and Robotic Systems Group
    00005 // All Rights Reserved          Massachusetts Institute of Technology
    00006 //
    00007 // This software is provided as is. Model-based Embedded and Robotic Systems
    00008 // (MERS) group does not assume any responsibility.
    00009 //
    00010 // Author:                      Oliver B. Martin
    00011 // Organization:        Model-based Embedded and Robotic Systems Group
    00012 //                                      Massachusetts Institute of Technology
    00013 //
    00014 // The ModeEstimatorDebug is an HHM estimation engine that generates
    00015 // estimates that are consistent with the CCA model, commands, and
    00016 // observations. Estimates are generated in best-first order (highest
    00017 // posterior probability first) by using Opsat to find the most likely
    00018 // diagnoses. This implimentation of ModeEstimatorDebug tracks the k most
    00019 // likely trajectories over time. Debug hooks are placed into the ModeEstimator
    00020 // base class and information is collected in MEPerformanceMonitor.
    00021 //
    00022 //=============================================================================
    00023
    00024
    00025 #if !defined(_MODEESTIMATORDEBUG_H_)
    00026 #define _MODEESTIMATORDEBUG_H_
    00027
    00028 #if _MSC_VER > 1000
    00029 #pragma once
    00030 #endif // _MSC_VER > 1000
    00031
    00032 #include <Mers/Estimation/Discrete/ModeEstimation/ModeEstimator.h>
    00033 #include <Mers/Estimation/Discrete/ModeEstimationPerformance/Monitor/MEPerformanceMonitor.h>
    00034
    00035 #include <vector>
    00036
    00037 namespace Mers {
    00038         namespace Models {
    00039                 namespace CCA {
    00040                         class CCAModel;
    00041                 }
    00042         }
    00043         namespace Estimation {
    00044                 namespace Discrete {
    00045                         namespace ModeEstimationPerformance {
    00046
    00057                                 class ModeEstimatorDebug : public Mers::Estimation::Discrete::ModeEstimation::ModeEstimator,
    00058                                         public Mers::Estimation::Discrete::ModeEstimationPerformance::MEPerformanceMonitor
    00059                                 {
    00060
    00061                                 public:
    00062                                         //-----------------------------------------
    00063                                         // Constructors
    00064                                         //-----------------------------------------
    00065
    00074                                         ModeEstimatorDebug(const Mers::Models::CCA::CCAModel &cca,
    00075                                                 Mers::Estimation::Discrete::Trajectories * initialTrajectories = NULL);
    00076
    00077                                         //-----------------------------------------
    00078                                         // Destructors
    00079                                         //-----------------------------------------
    00080
    00084                                         virtual ~ModeEstimatorDebug();
    00085
    00086
    00087                                         //-----------------------------------------
    00088                                         // Functions
    00089                                         //-----------------------------------------
    00090
    00098                                         virtual const Estimate *        findModeEstimate(void);
    00099
    00110                                         virtual const Estimate *        progressToEstimate(void);
    00111
    00117                                         virtual unsigned int            getNumberFaultTransitions(void);
    00118
    00125                                         virtual unsigned int            getEstimateFaultTransitions(unsigned int estIndex);
    00126
    00131                                         double                                          getAccumulatedUncertainty(void) const;
    00132
    00133
    00134                                 protected:
    00135
    00143                                         virtual bool                            generateTrajectories(void);
    00144
    00160                                         virtual bool            findNextBestStateAndPutInHeap(unsigned int opsatNum, const std::vector<double> & allProbs,
    00161                                                                                                                 Mers::Estimation::Discrete::EstimateHeap * nextTrajsEstHeap,
    00162                                                                                                                 bool willWarn = false);
    00163
    00175                                         virtual bool            releaseMemoryAndNormalize(Mers::Models::Base::BaseModelClauseArray * currentObservationAssignments,
    00176                                                                                                                 Mers::Estimation::Discrete::EstimateHeap * nextTrajsEstHeap = NULL);
    00177
    00189                                         virtual bool            addEstimateToCurrentTrajectories(Mers::Estimation::Discrete::Estimate * anEst,
    00190                                                                                                                                                 bool createNewCurrentTrajectories = false);
    00191
    00192                                         //-----------------------------------------
    00193                                         // Data Members
    00194                                         //-----------------------------------------
    00195
    00196
    00197                                 };
    00198                         }
    00199                 }
    00200         }
    00201 }
    00202
    00203 #endif // !defined(_MODEESTIMATOR_H_)