Fawkes API  Fawkes Development Version
front_ball.h
1 
2 /***************************************************************************
3  * front_ball.h - A simple implementation of the relative position model
4  * for the ball in the front vision
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_FRONT_BALL_H_
28 #define _FIREVISION_MODELS_RELATIVE_FRONT_BALL_H_
29 
30 #include <fvmodels/relative_position/relativepositionmodel.h>
31 
32 // include <utils/kalman_filter/ckalman_filter_2dim.h>
33 
34 namespace firevision {
35 
36 class FrontBallRelativePos : public RelativePositionModel
37 {
38 public:
39  FrontBallRelativePos(unsigned int image_width,
40  unsigned int image_height,
41  float camera_height,
42  float camera_offset_x,
43  float camera_offset_y,
44  float camera_ori,
45  float horizontal_angle,
46  float vertical_angle,
47  float ball_circumference);
48 
49  virtual const char *get_name() const;
50  virtual void set_radius(float r);
51  virtual void set_center(float x, float y);
52  virtual void set_center(const center_in_roi_t &c);
53 
54  virtual void set_pan_tilt(float pan = 0.0f, float tilt = 0.0f);
55  virtual void get_pan_tilt(float *pan, float *tilt) const;
56 
57  virtual void set_horizontal_angle(float angle_deg);
58  virtual void set_vertical_angle(float angle_deg);
59 
60  virtual float get_distance() const;
61  virtual float get_x() const;
62  virtual float get_y() const;
63  virtual float get_bearing() const;
64  virtual float get_slope() const;
65  virtual float get_radius() const;
66 
67  virtual void calc();
68  virtual void calc_unfiltered();
69  virtual void reset();
70 
71  virtual bool is_pos_valid() const;
72 
73 private:
74  float DEFAULT_X_VARIANCE;
75  float DEFAULT_Y_VARIANCE;
76 
77  float m_fPanRadPerPixel;
78  float m_fTiltRadPerPixel;
79  float m_fBallRadius; // in meter
80 
81  float m_fRadius;
82  center_in_roi_t m_cirtCenter;
83  float m_fPan;
84  float m_fTilt;
85 
86  float horizontal_angle;
87  float vertical_angle;
88 
89  unsigned int image_width;
90  unsigned int image_height;
91 
92  float camera_height;
93  float camera_offset_x;
94  float camera_offset_y;
95  float camera_orientation;
96 
97  float ball_circumference;
98 
99  bool last_available;
100  float ball_x;
101  float ball_y;
102  float bearing;
103  float slope;
104  float distance_ball_motor;
105  float distance_ball_cam;
106 
107  float avg_x;
108  float avg_y;
109  float avg_x_sum;
110  float avg_y_sum;
111  unsigned int avg_x_num;
112  unsigned int avg_y_num;
113 
114  float var_proc_x;
115  float var_proc_y;
116  float var_meas_x;
117  float var_meas_y;
118  // kalmanFilter2Dim *kalman_filter;
119 
120  // void applyKalmanFilter();
121 };
122 
123 } // end namespace firevision
124 
125 #endif // FIREVISION_MODELS_RELPOS_BALL_H__
firevision::FrontBallRelativePos::reset
virtual void reset()
Definition: front_ball.cpp:210
firevision::FrontBallRelativePos::is_pos_valid
virtual bool is_pos_valid() const
Definition: front_ball.cpp:262
firevision::FrontBallRelativePos::calc_unfiltered
virtual void calc_unfiltered()
Definition: front_ball.cpp:268
firevision::FrontBallRelativePos::calc
virtual void calc()
Definition: front_ball.cpp:217
firevision::FrontBallRelativePos::set_center
virtual void set_center(float x, float y)
Definition: front_ball.cpp:143
firevision::FrontBallRelativePos::set_radius
virtual void set_radius(float r)
Definition: front_ball.cpp:157
firevision::FrontBallRelativePos::get_y
virtual float get_y() const
Definition: front_ball.cpp:131
firevision::FrontBallRelativePos::get_x
virtual float get_x() const
Definition: front_ball.cpp:137
firevision::FrontBallRelativePos::set_pan_tilt
virtual void set_pan_tilt(float pan=0.0f, float tilt=0.0f)
Definition: front_ball.cpp:172
firevision::FrontBallRelativePos::get_radius
virtual float get_radius() const
Get the ball radius.
Definition: front_ball.cpp:166
firevision::FrontBallRelativePos::set_vertical_angle
virtual void set_vertical_angle(float angle_deg)
Set vertical viewing angle.
Definition: front_ball.cpp:204
firevision::FrontBallRelativePos::get_name
virtual const char * get_name() const
Definition: front_ball.cpp:186
firevision::FrontBallRelativePos::get_pan_tilt
virtual void get_pan_tilt(float *pan, float *tilt) const
Definition: front_ball.cpp:179
firevision::FrontBallRelativePos::get_bearing
virtual float get_bearing() const
Definition: front_ball.cpp:119
firevision::center_in_roi_t
Center in ROI.
Definition: types.h:44
firevision::FrontBallRelativePos::get_slope
virtual float get_slope() const
Definition: front_ball.cpp:125
firevision::FrontBallRelativePos::get_distance
virtual float get_distance() const
Definition: front_ball.cpp:113
firevision::FrontBallRelativePos::set_horizontal_angle
virtual void set_horizontal_angle(float angle_deg)
Set horizontal viewing angle.
Definition: front_ball.cpp:195
firevision::FrontBallRelativePos::FrontBallRelativePos
FrontBallRelativePos(unsigned int image_width, unsigned int image_height, float camera_height, float camera_offset_x, float camera_offset_y, float camera_ori, float horizontal_angle, float vertical_angle, float ball_circumference)
Constructor.
Definition: front_ball.cpp:53