Fawkes API  Fawkes Development Version
omni_relative.h
1 
2 /***************************************************************************
3  * omni_ball_relative.h - A simple implementation of a relative omni
4  * relative position model using a MirrorModel
5  *
6  * Created: Fri Jun 03 22:56:22 2005
7  * Copyright 2005 Hu Yuxiao <Yuxiao.Hu@rwth-aachen.de>
8  * Tim Niemueller [www.niemueller.de]
9  * Martin Heracles <Martin.Heracles@rwth-aachen.de>
10  *
11  ****************************************************************************/
12 
13 /* This program is free software; you can redistribute it and/or modify
14  * it under the terms of the GNU General Public License as published by
15  * the Free Software Foundation; either version 2 of the License, or
16  * (at your option) any later version. A runtime exception applies to
17  * this software (see LICENSE.GPL_WRE file mentioned below for details).
18  *
19  * This program is distributed in the hope that it will be useful,
20  * but WITHOUT ANY WARRANTY; without even the implied warranty of
21  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22  * GNU Library General Public License for more details.
23  *
24  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
25  */
26 
27 #ifndef _FIREVISION_MODELS_RELATIVE_POSITION_OMNI_RELATIVE_H_
28 #define _FIREVISION_MODELS_RELATIVE_POSITION_OMNI_RELATIVE_H_
29 
30 #include <fvmodels/mirror/mirrormodel.h>
31 #include <fvmodels/relative_position/relativepositionmodel.h>
32 
33 // include <utils/kalman_filter/ckalman_filter_2dim.h>
34 
35 namespace firevision {
36 
38 {
39 public:
40  // constructor
41  OmniRelative(MirrorModel *mirror_model);
42 
43  virtual const char *get_name() const;
44  virtual void set_radius(float r);
45  virtual void set_center(float x, float y);
46  virtual void set_center(const center_in_roi_t &c);
47 
48  virtual void set_pan_tilt(float pan = 0.0f, float tilt = 0.0f);
49  virtual void get_pan_tilt(float *pan, float *tilt) const;
50 
51  virtual float get_distance() const;
52  virtual float get_x() const;
53  virtual float get_y() const;
54  virtual float get_bearing() const;
55  virtual float get_slope() const;
56  virtual float get_radius() const;
57 
58  virtual void calc();
59  virtual void calc_unfiltered();
60  virtual void reset();
61 
62  virtual bool is_pos_valid() const;
63 
64 private:
65  float DEFAULT_X_VARIANCE;
66  float DEFAULT_Y_VARIANCE;
67 
68  MirrorModel *mirror_model;
69 
70  unsigned int image_x;
71  unsigned int image_y;
72 
73  bool last_available;
74  float ball_x;
75  float ball_y;
76  float bearing;
77  float slope;
78  float distance_ball_motor;
79  float distance_ball_cam;
80 
81  float avg_x;
82  float avg_y;
83  float avg_x_sum;
84  float avg_y_sum;
85  unsigned int avg_x_num;
86  unsigned int avg_y_num;
87 
88  //kalmanFilter2Dim *kalman_filter;
89 
90  //void applyKalmanFilter();
91 };
92 
93 } // end namespace firevision
94 
95 #endif
firevision::OmniRelative
Omni vision relative position model.
Definition: omni_relative.h:38
firevision::RelativePositionModel
Relative Position Model Interface.
Definition: relativepositionmodel.h:33
firevision::OmniRelative::reset
virtual void reset()
Reset all data.
Definition: omni_relative.cpp:143
firevision::OmniRelative::calc
virtual void calc()
Calculate position data.
Definition: omni_relative.cpp:150
firevision::OmniRelative::OmniRelative
OmniRelative(MirrorModel *mirror_model)
Constructor.
Definition: omni_relative.cpp:39
firevision::OmniRelative::get_slope
virtual float get_slope() const
Get slope (vertical angle) to object.
Definition: omni_relative.cpp:83
firevision::OmniRelative::get_pan_tilt
virtual void get_pan_tilt(float *pan, float *tilt) const
Get camera pan tilt.
Definition: omni_relative.cpp:132
firevision::OmniRelative::set_center
virtual void set_center(float x, float y)
Set center of a found circle.
Definition: omni_relative.cpp:101
firevision::MirrorModel
Mirror model interface.
Definition: mirrormodel.h:32
firevision::OmniRelative::get_y
virtual float get_y() const
Get relative Y coordinate of object.
Definition: omni_relative.cpp:89
firevision::OmniRelative::set_pan_tilt
virtual void set_pan_tilt(float pan=0.0f, float tilt=0.0f)
Set camera pan and tilt.
Definition: omni_relative.cpp:127
firevision::OmniRelative::get_bearing
virtual float get_bearing() const
Get bearing (horizontal angle) to object.
Definition: omni_relative.cpp:77
firevision::OmniRelative::is_pos_valid
virtual bool is_pos_valid() const
Check if position is valid.
Definition: omni_relative.cpp:169
firevision::OmniRelative::get_distance
virtual float get_distance() const
Get distance to object.
Definition: omni_relative.cpp:71
firevision::OmniRelative::get_name
virtual const char * get_name() const
Get name of relative position model.
Definition: omni_relative.cpp:137
firevision::OmniRelative::get_radius
virtual float get_radius() const
Get radius.
Definition: omni_relative.cpp:121
firevision::center_in_roi_t
Center in ROI.
Definition: types.h:38
firevision::OmniRelative::calc_unfiltered
virtual void calc_unfiltered()
Calculate data unfiltered.
Definition: omni_relative.cpp:175
firevision::OmniRelative::set_radius
virtual void set_radius(float r)
Set radius of a found circle.
Definition: omni_relative.cpp:113
firevision::OmniRelative::get_x
virtual float get_x() const
Get relative X coordinate of object.
Definition: omni_relative.cpp:95