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 |