Public Member Functions | Private Attributes | List of all members
graceful_controller::GracefulController Class Reference

#include <graceful_controller.hpp>

Public Member Functions

bool approach (const double x, const double y, const double theta, double &vel_x, double &vel_th, bool backward_motion=false)
 Implements something loosely based on "A Smooth Control Law for Graceful Motion of Differential Wheeled Mobile Robots in 2D Environments" by Park and Kuipers, ICRA 2011. More...
 
 GracefulController (double k1, double k2, double min_abs_velocity, double max_abs_velocity, double max_decel, double max_abs_angular_velocity, double beta, double lambda)
 Constructor of the controller. More...
 
void setVelocityLimits (const double min_abs_velocity, const double max_abs_velocity, const double max_abs_angular_velocity)
 Update the velocity limits. More...
 

Private Attributes

double beta_
 
double dist_
 
double k1_
 
double k2_
 
double lambda_
 
double max_abs_angular_velocity_
 
double max_abs_velocity_
 
double max_decel_
 
double min_abs_velocity_
 

Detailed Description

Definition at line 29 of file graceful_controller.hpp.

Constructor & Destructor Documentation

◆ GracefulController()

graceful_controller::GracefulController::GracefulController ( double  k1,
double  k2,
double  min_abs_velocity,
double  max_abs_velocity,
double  max_decel,
double  max_abs_angular_velocity,
double  beta,
double  lambda 
)

Constructor of the controller.

Parameters
k1Ratio of rate of change of theta to rate of change of R.
k2How quickly we converge to the slow manifold.
min_abs_velocityThe minimum absolute velocity in the linear direction.
max_abs_velocityThe maximum absolute velocity in the linear direction.
max_decelThe maximum deceleration in the linear direction.
max_abs_angular_velocityThe maximum absolute velocity in the angular direction.

Definition at line 32 of file graceful_controller.cpp.

Member Function Documentation

◆ approach()

bool graceful_controller::GracefulController::approach ( const double  x,
const double  y,
const double  theta,
double &  vel_x,
double &  vel_th,
bool  backward_motion = false 
)

Implements something loosely based on "A Smooth Control Law for Graceful Motion of Differential Wheeled Mobile Robots in 2D Environments" by Park and Kuipers, ICRA 2011.

Parameters
xThe x coordinate of the goal, relative to robot base link.
yThe y coordinate of the goal, relative to robot base link.
thetaThe angular orientation of the goal, relative to robot base link.
vel_xThe computed command velocity in the linear direction.
vel_thThe computed command velocity in the angular direction.
backward_motionFlag to indicate that the robot should move backward. False by default.
Returns
true if there is a solution.

Definition at line 49 of file graceful_controller.cpp.

◆ setVelocityLimits()

void graceful_controller::GracefulController::setVelocityLimits ( const double  min_abs_velocity,
const double  max_abs_velocity,
const double  max_abs_angular_velocity 
)

Update the velocity limits.

Parameters
min_abs_velocityThe minimum absolute velocity in the linear direction.
max_abs_velocityThe maximum absolute velocity in the linear direction.
max_abs_angular_velocityThe maximum absolute velocity in the angular direction.

Definition at line 93 of file graceful_controller.cpp.

Member Data Documentation

◆ beta_

double graceful_controller::GracefulController::beta_
private

Definition at line 85 of file graceful_controller.hpp.

◆ dist_

double graceful_controller::GracefulController::dist_
private

Definition at line 87 of file graceful_controller.hpp.

◆ k1_

double graceful_controller::GracefulController::k1_
private

Definition at line 79 of file graceful_controller.hpp.

◆ k2_

double graceful_controller::GracefulController::k2_
private

Definition at line 80 of file graceful_controller.hpp.

◆ lambda_

double graceful_controller::GracefulController::lambda_
private

Definition at line 86 of file graceful_controller.hpp.

◆ max_abs_angular_velocity_

double graceful_controller::GracefulController::max_abs_angular_velocity_
private

Definition at line 84 of file graceful_controller.hpp.

◆ max_abs_velocity_

double graceful_controller::GracefulController::max_abs_velocity_
private

Definition at line 82 of file graceful_controller.hpp.

◆ max_decel_

double graceful_controller::GracefulController::max_decel_
private

Definition at line 83 of file graceful_controller.hpp.

◆ min_abs_velocity_

double graceful_controller::GracefulController::min_abs_velocity_
private

Definition at line 81 of file graceful_controller.hpp.


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


graceful_controller
Author(s): Michael Ferguson
autogenerated on Wed Oct 23 2024 02:43:01