25#include <core/exception.h>
26#include <fvmodels/velocity/globfromrel.h>
27#include <utils/time/time.h>
50 this->relative_velocity = rel_velo_model;
51 this->relative_position = rel_pos_model;
60 "Given velocity model does not return robot-centric cartesian coordinates. WILL NOT WORK!");
63 robot_ori = robot_poseage = 0.f;
65 velocity_x = velocity_y = 0.f;
103 gettimeofday(&now, 0);
156 relative_velocity->
getVelocity(&rel_vel_x, &rel_vel_y);
157 sin_ori = sin(robot_ori);
158 cos_ori = cos(robot_ori);
161 velocity_x = rel_vel_x * cos_ori - rel_vel_y * sin_ori;
162 velocity_y = rel_vel_x * sin_ori + rel_vel_y * cos_ori;
182 return "VelocityModel::VelocityGlobalFromRelative";
188 return COORDSYS_WORLD_CART;
Base class for exceptions in Fawkes.
Relative Position Model Interface.
virtual float get_distance() const =0
Get distance to object.
virtual void setTime(timeval t)
Set current time.
virtual coordsys_type_t getCoordinateSystem()
Returns the used coordinate system, must be either COORDSYS_ROBOT_CART or COORDSYS_ROBOT_WORLD.
virtual void setPanTilt(float pan, float tilt)
Set pan and tilt.
virtual void getVelocity(float *vel_x, float *vel_y)
Method to retrieve velocity information.
virtual float getVelocityY()
Get velocity of tracked object in X direction.
virtual float getVelocityX()
Get velocity of tracked object in X direction.
virtual const char * getName() const
Get name of velocity model.
virtual void setRobotPosition(float x, float y, float ori, timeval t)
Set robot position.
virtual ~VelocityGlobalFromRelative()
Destructor.
VelocityGlobalFromRelative(VelocityModel *rel_velo_model, RelativePositionModel *rel_pos_model)
Destructor.
virtual void reset()
Reset velocity model Must be called if ball is not visible at any time.
virtual void getTime(long int *sec, long int *usec)
Get time from velocity.
virtual void calc()
Calculate velocity values from given data This method must be called after all relevent data (set*) h...
virtual void setRobotVelocity(float vel_x, float vel_y, timeval t)
Set robot velocity.
virtual void setTimeNow()
Get current time from system.
Velocity model interface.
virtual coordsys_type_t getCoordinateSystem()=0
Returns the used coordinate system, must be either COORDSYS_ROBOT_CART or COORDSYS_ROBOT_WORLD.
virtual void getVelocity(float *vel_x, float *vel_y)=0
Method to retrieve velocity information.
Fawkes library namespace.
double time_diff_sec(const timeval &a, const timeval &b)
Calculate time difference of two time structs.