Fawkes API  Fawkes Development Version
firevision::BallTrigoRelativePos Class Reference

Relative ball position model for pan/tilt camera. More...

#include <>>

Inheritance diagram for firevision::BallTrigoRelativePos:

Public Member Functions

 BallTrigoRelativePos (unsigned int image_width, unsigned int image_height, float camera_height, float camera_offset_x, float camera_offset_y, float camera_base_pan, float camera_base_tilt, float horizontal_angle, float vertical_angle, float ball_circumference)
 Constructor. More...
 
virtual const char * get_name () const
 Get name of relative position model. More...
 
virtual void set_radius (float r)
 Set radius of a found circle. More...
 
virtual void set_center (float x, float y)
 Set center of a found circle. More...
 
virtual void set_center (const center_in_roi_t &c)
 Set center of a found circle. More...
 
virtual void set_pan_tilt (float pan=0.0f, float tilt=0.0f)
 Set camera pan and tilt. More...
 
virtual void get_pan_tilt (float *pan, float *tilt) const
 Get camera pan tilt. More...
 
virtual float get_distance () const
 Get distance to object. More...
 
virtual float get_x () const
 Get relative X coordinate of object. More...
 
virtual float get_y () const
 Get relative Y coordinate of object. More...
 
virtual float get_bearing () const
 Get bearing (horizontal angle) to object. More...
 
virtual float get_slope () const
 Get slope (vertical angle) to object. More...
 
virtual void calc ()
 Calculate position data. More...
 
virtual void calc_unfiltered ()
 Calculate data unfiltered. More...
 
virtual void reset ()
 Reset all data. More...
 
virtual bool is_pos_valid () const
 Check if position is valid. More...
 
- Public Member Functions inherited from firevision::RelativePositionModel
virtual ~RelativePositionModel ()
 Destructor. More...
 
virtual void set_cam_rotation (float pan, float tilt, float roll=0.f)
 Sets the camera orientation. More...
 
virtual void get_cam_rotation (float &pan, float &tilt, float &roll) const
 Returns the camera orientation. More...
 
virtual void set_cam_translation (float height, float rel_x=0.f, float rel_y=0.f)
 Sets the current translation of the camera. More...
 
virtual void get_cam_translation (float &height, float &rel_x, float &rel_y) const
 Returns the current translation of the camera. More...
 

Detailed Description

Relative ball position model for pan/tilt camera.

This uses basic trigonometry to calculate the position of the ball given only the center of the ball in the image as variable parameters, and the camera parameters as static parameters.

Author
Tim Niemueller

Definition at line 34 of file ball_trigo.h.

Constructor & Destructor Documentation

◆ BallTrigoRelativePos()

firevision::BallTrigoRelativePos::BallTrigoRelativePos ( unsigned int  image_width,
unsigned int  image_height,
float  camera_height,
float  camera_offset_x,
float  camera_offset_y,
float  camera_base_pan,
float  camera_base_tilt,
float  horizontal_angle,
float  vertical_angle,
float  ball_circumference 
)

Constructor.

Parameters
image_widthwidth of image in pixels
image_heightheight of image in pixels
camera_heightheight of camera in meters
camera_offset_xcamera offset of the motor axis in x direction
camera_offset_ycamera offset of the motor axis in y direction
camera_base_pancamera base pan in rad
camera_base_tiltcamera base tilt in rad
horizontal_anglehorizontal viewing angle (in degree)
vertical_anglevertical viewing angle (in degree)
ball_circumferenceball circumference

Definition at line 57 of file ball_trigo.cpp.

References fawkes::deg2rad().

Member Function Documentation

◆ calc()

void firevision::BallTrigoRelativePos::calc ( )
virtual

Calculate position data.

Call this method if all relevant data (set(Radius|Center|PanTilt)) has been set, after this valid data can be retrieved via get*

Implements firevision::RelativePositionModel.

Definition at line 180 of file ball_trigo.cpp.

Referenced by calc_unfiltered().

◆ calc_unfiltered()

virtual void firevision::BallTrigoRelativePos::calc_unfiltered ( )
inlinevirtual

Calculate data unfiltered.

Same as calc(), but without any filtering (i.e. no Kalman filter).

Implements firevision::RelativePositionModel.

Definition at line 63 of file ball_trigo.h.

References calc(), is_pos_valid(), and reset().

◆ get_bearing()

float firevision::BallTrigoRelativePos::get_bearing ( void  ) const
virtual

Get bearing (horizontal angle) to object.

Returns
bearing in rad

Implements firevision::RelativePositionModel.

Definition at line 102 of file ball_trigo.cpp.

◆ get_distance()

float firevision::BallTrigoRelativePos::get_distance ( ) const
virtual

Get distance to object.

Returns
distance to object in meters.

Implements firevision::RelativePositionModel.

Definition at line 95 of file ball_trigo.cpp.

◆ get_name()

const char * firevision::BallTrigoRelativePos::get_name ( void  ) const
virtual

Get name of relative position model.

Returns
name of relative position model

Implements firevision::RelativePositionModel.

Definition at line 168 of file ball_trigo.cpp.

◆ get_pan_tilt()

void firevision::BallTrigoRelativePos::get_pan_tilt ( float *  pan,
float *  tilt 
) const
virtual

Get camera pan tilt.

Parameters
pancontains pan value (rad) upon return
tiltcontains tilt value (rad) upon return

Implements firevision::RelativePositionModel.

Definition at line 160 of file ball_trigo.cpp.

◆ get_slope()

float firevision::BallTrigoRelativePos::get_slope ( ) const
virtual

Get slope (vertical angle) to object.

Returns
slope in rad

Implements firevision::RelativePositionModel.

Definition at line 109 of file ball_trigo.cpp.

◆ get_x()

float firevision::BallTrigoRelativePos::get_x ( void  ) const
virtual

Get relative X coordinate of object.

Returns
relative X coordinate in local metric cartesian coordinate system

Implements firevision::RelativePositionModel.

Definition at line 123 of file ball_trigo.cpp.

◆ get_y()

float firevision::BallTrigoRelativePos::get_y ( void  ) const
virtual

Get relative Y coordinate of object.

Returns
relative Y coordinate in local metric cartesian coordinate system

Implements firevision::RelativePositionModel.

Definition at line 116 of file ball_trigo.cpp.

◆ is_pos_valid()

bool firevision::BallTrigoRelativePos::is_pos_valid ( ) const
virtual

Check if position is valid.

Returns
true, if the calculated position is valid, false otherwise
Author
Tim Niemueller

Implements firevision::RelativePositionModel.

Definition at line 207 of file ball_trigo.cpp.

Referenced by calc_unfiltered().

◆ reset()

void firevision::BallTrigoRelativePos::reset ( )
virtual

Reset all data.

This must be called if the object is not visible.

Implements firevision::RelativePositionModel.

Definition at line 175 of file ball_trigo.cpp.

Referenced by calc_unfiltered().

◆ set_center() [1/2]

void firevision::BallTrigoRelativePos::set_center ( float  x,
float  y 
)
virtual

Set center of a found circle.

This is especially used for ball position implementations.

Parameters
xx position in image (pixels)
yy position in image (pixels)

Implements firevision::RelativePositionModel.

Definition at line 130 of file ball_trigo.cpp.

◆ set_center() [2/2]

void firevision::BallTrigoRelativePos::set_center ( const center_in_roi_t c)
virtual

Set center of a found circle.

This is especially used for ball position implementations.

Parameters
ccenter

Implements firevision::RelativePositionModel.

Definition at line 138 of file ball_trigo.cpp.

References firevision::center_in_roi_t::x, and firevision::center_in_roi_t::y.

◆ set_pan_tilt()

void firevision::BallTrigoRelativePos::set_pan_tilt ( float  pan = 0.0f,
float  tilt = 0.0f 
)
virtual

Set camera pan and tilt.

Parameters
panpan value (rad)
tilttilt value (rad)

Implements firevision::RelativePositionModel.

Definition at line 152 of file ball_trigo.cpp.

◆ set_radius()

void firevision::BallTrigoRelativePos::set_radius ( float  r)
virtual

Set radius of a found circle.

This is especially used for ball position implementations.

Parameters
rradius

Implements firevision::RelativePositionModel.

Definition at line 146 of file ball_trigo.cpp.


The documentation for this class was generated from the following files: