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
34namespace firevision {
35
37{
38public:
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
73private:
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__
Relative ball position model for front vision.
Definition: front_ball.h:37
virtual void set_pan_tilt(float pan=0.0f, float tilt=0.0f)
Set camera pan and tilt.
Definition: front_ball.cpp:172
virtual float get_distance() const
Get distance to object.
Definition: front_ball.cpp:113
virtual float get_x() const
Get relative X coordinate of object.
Definition: front_ball.cpp:137
virtual void set_vertical_angle(float angle_deg)
Set vertical viewing angle.
Definition: front_ball.cpp:204
virtual void reset()
Reset all data.
Definition: front_ball.cpp:210
virtual const char * get_name() const
Get name of relative position model.
Definition: front_ball.cpp:186
virtual void set_radius(float r)
Set radius of a found circle.
Definition: front_ball.cpp:157
virtual void calc()
Calculate position data.
Definition: front_ball.cpp:217
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
virtual void set_horizontal_angle(float angle_deg)
Set horizontal viewing angle.
Definition: front_ball.cpp:195
virtual float get_bearing() const
Get bearing (horizontal angle) to object.
Definition: front_ball.cpp:119
virtual float get_radius() const
Get the ball radius.
Definition: front_ball.cpp:166
virtual bool is_pos_valid() const
Check if position is valid.
Definition: front_ball.cpp:262
virtual void calc_unfiltered()
Calculate data unfiltered.
Definition: front_ball.cpp:268
virtual void set_center(float x, float y)
Set center of a found circle.
Definition: front_ball.cpp:143
virtual float get_y() const
Get relative Y coordinate of object.
Definition: front_ball.cpp:131
virtual void get_pan_tilt(float *pan, float *tilt) const
Get camera pan tilt.
Definition: front_ball.cpp:179
virtual float get_slope() const
Get slope (vertical angle) to object.
Definition: front_ball.cpp:125
Relative Position Model Interface.
Center in ROI.
Definition: types.h:38