Collaboration diagram for VFH_Algorithm:
Collaboration graph

Public Member Functions

 VFH_Algorithm (double cell_size, int window_diameter, int sector_angle, double safety_dist_0ms, double safety_dist_1ms, int max_speed, int max_speed_narrow_opening, int max_speed_wide_opening, int max_acceleration, int min_turnrate, int max_turnrate_0ms, int max_turnrate_1ms, double min_turn_radius_safety_factor, double free_space_cutoff_0ms, double obs_cutoff_0ms, double free_space_cutoff_1ms, double obs_cutoff_1ms, double weight_desired_dir, double weight_current_dir)
 
int Init ()
 
int Update_VFH (double laser_ranges[361][2], int current_speed, float goal_direction, float goal_distance, float goal_distance_tolerance, int &chosen_speed, int &chosen_turnrate)
 
int GetMinTurnrate ()
 
float GetDesiredAngle ()
 
float GetPickedAngle ()
 
int GetMaxTurnrate (int speed)
 
int GetCurrentMaxSpeed ()
 
void SetRobotRadius (float robot_radius)
 
void SetMinTurnrate (int min_turnrate)
 
void SetCurrentMaxSpeed (int Current_Max_Speed)
 

Public Attributes

float * Hist
 

Private Member Functions

int VFH_Allocate ()
 
float Delta_Angle (int a1, int a2)
 
float Delta_Angle (float a1, float a2)
 
int Bisect_Angle (int angle1, int angle2)
 
bool Cant_Turn_To_Goal ()
 
int Calculate_Cells_Mag (double laser_ranges[361][2], int speed)
 
int Build_Primary_Polar_Histogram (double laser_ranges[361][2], int speed)
 
int Build_Binary_Polar_Histogram (int speed)
 
int Build_Masked_Polar_Histogram (int speed)
 
int Select_Candidate_Angle ()
 
int Select_Direction ()
 
int Set_Motion (int &speed, int &turnrate, int current_speed)
 
void Print_Cells_Dir ()
 
void Print_Cells_Mag ()
 
void Print_Cells_Dist ()
 
void Print_Cells_Sector ()
 
void Print_Cells_Enlargement_Angle ()
 
void Print_Hist ()
 
int Get_Speed_Index (int speed)
 
int Get_Safety_Dist (int speed)
 
float Get_Binary_Hist_Low (int speed)
 
float Get_Binary_Hist_High (int speed)
 

Private Attributes

float ROBOT_RADIUS
 
int CENTER_X
 
int CENTER_Y
 
int HIST_SIZE
 
float CELL_WIDTH
 
int WINDOW_DIAMETER
 
int SECTOR_ANGLE
 
float SAFETY_DIST_0MS
 
float SAFETY_DIST_1MS
 
int Current_Max_Speed
 
int MAX_SPEED
 
int MAX_SPEED_NARROW_OPENING
 
int MAX_SPEED_WIDE_OPENING
 
int MAX_ACCELERATION
 
int MIN_TURNRATE
 
int NUM_CELL_SECTOR_TABLES
 
int MAX_TURNRATE_0MS
 
int MAX_TURNRATE_1MS
 
double MIN_TURN_RADIUS_SAFETY_FACTOR
 
float Binary_Hist_Low_0ms
 
float Binary_Hist_High_0ms
 
float Binary_Hist_Low_1ms
 
float Binary_Hist_High_1ms
 
float U1
 
float U2
 
float Desired_Angle
 
float Dist_To_Goal
 
float Goal_Distance_Tolerance
 
float Picked_Angle
 
float Last_Picked_Angle
 
int Max_Speed_For_Picked_Angle
 
float Blocked_Circle_Radius
 
std::vector< std::vector< float > > Cell_Direction
 
std::vector< std::vector< float > > Cell_Base_Mag
 
std::vector< std::vector< float > > Cell_Mag
 
std::vector< std::vector< float > > Cell_Dist
 
std::vector< std::vector< float > > Cell_Enlarge
 
std::vector< std::vector< std::vector< std::vector< int > > > > Cell_Sector
 
std::vector< float > Candidate_Angle
 
std::vector< int > Candidate_Speed
 
double dist_eps
 
double ang_eps
 
float * Last_Binary_Hist
 
std::vector< int > Min_Turning_Radius
 
timeval last_update_time
 
int last_chosen_speed
 

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