ModelEntry.h
Go to the documentation of this file.
00001 
00009 #ifndef _MODEL_ENTRY_H_
00010 #define _MODEL_ENTRY_H_
00011 
00012 #include <blort/TomGine/tgMathlib.h>
00013 #include <blort/Tracker/TrackerModel.h>
00014 #include <blort/Tracker/Distribution.h>
00015 #include <blort/Tracker/Predictor.h>
00016 #include <blort/Tracker/Filter.h>
00017 
00018 namespace Tracking{
00019 
00020 enum quality_state{
00021         ST_OK,
00022         ST_OCCLUDED,
00023         ST_LOST,
00024         ST_LOCKED,
00025 };
00026 
00027 enum confidence_state{
00028         ST_GOOD,
00029         ST_FAIR,
00030         ST_BAD,
00031 };
00032 
00033 enum movement_state{
00034         ST_FAST,
00035         ST_SLOW,
00036         ST_STILL,
00037 };
00038 
00040 class ModelEntry
00041 {
00042 private:
00043         void poseDiff(float &t, float &a);
00044         void speed();
00045 
00046         float max(float a, float b){ return (((a) > (b)) ? (a) : (b)); }
00047         float abs(float a){ return ((a>=0.0f) ? a : (-a)); }
00048         
00049         
00050         
00051 public:
00052         ModelEntry();
00053         ModelEntry(const TomGine::tgModel& m);
00054         ~ModelEntry();
00055         
00056         void setInitialPose(const TomGine::tgPose &p, float lpf_delay=0.0f, float lpf_delay_z=0.0f);
00057         void filter_pose();
00058         void evaluate_states(   const Particle &variation, unsigned rec,
00059                                                         float c_th_base=0.6f, float c_th_min=0.3f, float c_th_fair=0.5f,
00060                                                         float c_mv_not=0.01f, float c_mv_slow=0.05f, float c_th_lost=0.1f);
00061         
00062         std::string label;
00063         
00064         float t, a, t_max, a_max, c_edge, c_th, c_lost, abs_a, abs_t;
00065         
00066         movement_state st_movement;                             
00067         confidence_state st_confidence;                 
00068         quality_state st_quality;                               
00069         
00070         TrackerModel            model;                          
00071         Distribution            distribution;           
00072         Predictor*                      predictor;                      
00073         Texture*                        mask;                           
00074         Particle                        pose;                           
00075         Particle                        pose_prev;                      
00076         Particle                        lpf_pose;               
00077         Particle                        initial_pose;           
00078         
00079         float   speed_angular;                                  
00080         float   speed_translational;                    
00081 
00082         float   confidence_color;                               
00083         float   confidence_edge;                                
00084         
00085         int     id;                                                     
00086         unsigned        num_convergence;                        
00087         unsigned        hypothesis_id;                          
00088         std::vector<float> past_confidences;    
00089         unsigned        num_particles;                          
00090         unsigned        num_recursions;                         
00091         
00092         bool            bfc;                                            
00093         bool            lock;                                           
00094         bool            mask_geometry_edges;            
00095         
00096         mat4 modelviewprojection;                               
00097         TomGine::tgVector3 vCam2Model;                  
00098         
00099 private:
00100         Predictor* del_predictor;
00101         SmoothFilter m_lpf_pose_tx;
00102         SmoothFilter m_lpf_pose_ty;
00103         SmoothFilter m_lpf_pose_tz;
00104         SmoothFilter m_lpf_pose_qx;
00105         SmoothFilter m_lpf_pose_qy;
00106         SmoothFilter m_lpf_pose_qz;
00107         SmoothFilter m_lpf_pose_qw;
00108 
00109 public:
00110         SmoothFilter m_lpf_a;
00111         SmoothFilter m_lpf_t;
00112         SmoothFilter m_lpf_cs;
00113         SmoothFilter m_lpf_cl;
00114 
00115 };
00116 
00117 } // namespace Tracking
00118 
00119 #endif


blort
Author(s): Michael Zillich, Thomas Mörwald, Johann Prankl, Andreas Richtsfeld, Bence Magyar (ROS version)
autogenerated on Thu Jan 2 2014 11:38:25