43 ROS_INFO(
"Multi Robot Controller: goal reached");
73 float d_theta_comp = M_PI / 2 + d_theta;
76 float turn_radius_to_goal =
absolute(distance_to_goal / 2 / cos(d_theta_comp));
95 else if (turn_radius_to_goal <
96 10 * distance_to_goal)
98 float v_h = turn_radius_to_goal *
absolute(
w_);
123 while (_angle > M_PI)
127 while (_angle < -M_PI)
struct velocity_controller::Point_t PathPoint
void setPath(std::shared_ptr< std::vector< PathPoint >> _path)
Set the path the contorler has to follow.
bool checkGoal(PathPoint _odom)
void setState(state s)
Set the State (run stop step wait_step)
void setPID(float _Kp, float _Ki, float _Kd)
sets the control parameters
void getSpeed(float *_v, float *_w)
Returns the current speed values.
std::vector< PathPoint >::iterator path_iterator_
void setSpeedParams(float _max_v, float _max_w)
Set the Speed Params of the controller.
float normalizeAngle(float _angle)
Controller()
Construct a new Controller object.
enum velocity_controller::state_t state
void setGoalRadius(float _r)
Set the Goal Radius.
void update(PathPoint _odom, float _delta_t)
updates the controller with the current robot position
std::shared_ptr< std::vector< PathPoint > > path_
float absolute(float _val)