measurementmodel.h
Go to the documentation of this file.
00001 // $Id: measurementmodel.h 29830 2009-01-14 15:10:41Z kgadeyne $
00002 // Copyright (C) 2002 Klaas Gadeyne <first dot last at gmail dot com>
00003 //
00004  /***************************************************************************
00005  *   This library is free software; you can redistribute it and/or         *
00006  *   modify it under the terms of the GNU General Public                   *
00007  *   License as published by the Free Software Foundation;                 *
00008  *   version 2 of the License.                                             *
00009  *                                                                         *
00010  *   As a special exception, you may use this file as part of a free       *
00011  *   software library without restriction.  Specifically, if other files   *
00012  *   instantiate templates or use macros or inline functions from this     *
00013  *   file, or you compile this file and link it with other files to        *
00014  *   produce an executable, this file does not by itself cause the         *
00015  *   resulting executable to be covered by the GNU General Public          *
00016  *   License.  This exception does not however invalidate any other        *
00017  *   reasons why the executable file might be covered by the GNU General   *
00018  *   Public License.                                                       *
00019  *                                                                         *
00020  *   This library is distributed in the hope that it will be useful,       *
00021  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00022  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
00023  *   Lesser General Public License for more details.                       *
00024  *                                                                         *
00025  *   You should have received a copy of the GNU General Public             *
00026  *   License along with this library; if not, write to the Free Software   *
00027  *   Foundation, Inc., 59 Temple Place,                                    *
00028  *   Suite 330, Boston, MA  02111-1307  USA                                *
00029  *                                                                         *
00030  ***************************************************************************/
00031 //
00032 #ifndef __MEASUREMENT_MODEL__
00033 #define __MEASUREMENT_MODEL__
00034 
00035 #include "../pdf/conditionalpdf.h"
00036 
00037 namespace BFL
00038 {
00039 
00040 #define NUMBER_OF_CONDITIONAL_ARGS 2
00041 
00053   template<typename MeasVar, typename StateVar> class MeasurementModel {
00054   protected:
00056     /* @bug Since, for now, the library only supports only conditional
00057        arguments of the same type, both X and U have to be of the same
00058        type (ie both continu or both discrete!).  I imagine there must
00059        be systems for which this approach is not general enough @see
00060        ConditionalPdf
00061     */
00062     ConditionalPdf<MeasVar,StateVar>* _MeasurementPdf;
00063 
00065     bool _systemWithoutSensorParams;
00066 
00067   public:
00069 
00073     MeasurementModel(ConditionalPdf<MeasVar,StateVar>* Measurementpdf=NULL);
00075     virtual ~MeasurementModel();
00076 
00078     int MeasurementSizeGet() const;
00079 
00081     bool SystemWithoutSensorParams() const;
00082 
00084     ConditionalPdf<MeasVar,StateVar> * MeasurementPdfGet();
00085 
00087 
00089     void MeasurementPdfSet(ConditionalPdf<MeasVar,StateVar> * pdf);
00090 
00092 
00103     MeasVar Simulate (const StateVar& x, const StateVar& s, int sampling_method = DEFAULT, void * sampling_args = NULL);
00104 
00106 
00116     MeasVar Simulate (const StateVar& x, int sampling_method = DEFAULT, void * sampling_args = NULL);
00117 
00119 
00125     Probability ProbabilityGet(const MeasVar& z, const StateVar& x, const StateVar& s );
00126 
00128 
00134     Probability ProbabilityGet(const MeasVar& z, const StateVar& x );
00135   };
00136 
00137 #include "measurementmodel.cpp"
00138 
00139 } // End namespace BFL
00140 
00141 #endif // __MEASUREMENT_MODEL__


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Sun Oct 5 2014 22:29:53