00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __FIREVISION_MODELS_RELATIVE_POSITION_OMNI_RELATIVE_H_
00028 #define __FIREVISION_MODELS_RELATIVE_POSITION_OMNI_RELATIVE_H_
00029
00030 #include <models/relative_position/relativepositionmodel.h>
00031 #include <models/mirror/mirrormodel.h>
00032
00033
00034
00035 namespace firevision {
00036 #if 0
00037 }
00038 #endif
00039
00040 class OmniRelative : public RelativePositionModel
00041 {
00042 public:
00043
00044 OmniRelative(MirrorModel *mirror_model);
00045
00046 virtual const char * get_name() const;
00047 virtual void set_radius(float r);
00048 virtual void set_center(float x, float y);
00049 virtual void set_center(const center_in_roi_t& c);
00050
00051 virtual void set_pan_tilt(float pan = 0.0f, float tilt = 0.0f);
00052 virtual void get_pan_tilt(float *pan, float *tilt) const;
00053
00054 virtual float get_distance() const;
00055 virtual float get_x() const;
00056 virtual float get_y() const;
00057 virtual float get_bearing() const;
00058 virtual float get_slope() const;
00059 virtual float get_radius() const;
00060
00061 virtual void calc();
00062 virtual void calc_unfiltered();
00063 virtual void reset();
00064
00065 virtual bool is_pos_valid() const;
00066
00067 private:
00068 float DEFAULT_X_VARIANCE;
00069 float DEFAULT_Y_VARIANCE;
00070
00071 MirrorModel *mirror_model;
00072
00073 unsigned int image_width;
00074 unsigned int image_height;
00075
00076 unsigned int image_x;
00077 unsigned int image_y;
00078
00079 float last_x;
00080 float last_y;
00081 bool last_available;
00082 float ball_x;
00083 float ball_y;
00084 float bearing;
00085 float slope;
00086 float distance_ball_motor;
00087 float distance_ball_cam;
00088
00089 float avg_x;
00090 float avg_y;
00091 float avg_x_sum;
00092 float avg_y_sum;
00093 unsigned int avg_x_num;
00094 unsigned int avg_y_num;
00095 float rx;
00096 float ry;
00097
00098
00099
00100
00101 };
00102
00103 }
00104
00105 #endif