Skip to content
Surf Wiki
Save to docs
general/robot-control

From Surf Wiki (app.surf) — the open knowledge base

Vector Field Histogram


In robotics, Vector Field Histogram (VFH) is a real time motion planning algorithm proposed by Johann Borenstein and Yoram Koren in 1991.{{cite journal

The original VFH algorithm was based on previous work on Virtual Force Field, a local path-planning algorithm. VFH was updated in 1998 by Iwan Ulrich and Johann Borenstein, and renamed VFH+ (unofficially "Enhanced VFH").{{cite conference | book-title = Robotics and Automation, 1998. Proceedings. 1998 IEEE International Conference on | book-title = Robotics and Automation, 2000. Proceedings. ICRA'00. IEEE International Conference on

VFH

The Vector Field Histogram was developed with aims of being computationally efficient, robust, and insensitive to misreadings. In practice, the VFH algorithm has proven to be fast and reliable, especially when traversing densely populated obstacle courses.

At the center of the VFH algorithm is the use of statistical representation of obstacles, through histogram grids (see also occupancy grid). Such representation is well suited for inaccurate sensor data, and accommodates fusion of multiple sensor readings.

The VFH algorithm contains three major components:

  1. Cartesian histogram grid: a two-dimensional Cartesian histogram grid is constructed with the robot's range sensors, such as a sonar or a laser rangefinder. The grid is continuously updated in real time.
  2. Polar histogram: a one-dimensional polar histogram is constructed by reducing the Cartesian histogram around the momentary location of the robot.
  3. Candidate valley: consecutive sectors with a polar obstacle density below threshold, known as candidate valleys, is selected based on the proximity to the target direction.

Once the center of the selected candidate direction is determined, orientation of the robot is steered to match. The speed of the robot is reduced when approaching obstacles head-on.

VFH+

The VFH+ algorithm improvements include:

  1. Threshold hysteresis: a hysteresis increases the smoothness of the planned trajectory.
  2. Robot body size: robots of different sizes are taken into account, eliminating the need to manually adjust parameters via low-pass filters.
  3. Obstacle look-ahead: sectors that are blocked by obstacles are masked in VFH+, so that the steer angle is not directed into an obstacle.
  4. Cost function: a cost function was added to better characterize the performance of the algorithm, and also gives the possibility of switching between behaviours by changing the cost function or its parameters.

VFH*

In August 2000, Iwan Ulrich and Johann Borenstein published a paper describing VFH*, claiming improvement upon the original VFH algorithms by explicitly dealing with the shortcomings of a local planning algorithm, in that global optimality is not ensured. In VFH*, the algorithm verifies the steering command produced by using the A* search algorithm to minimize the cost and heuristic functions. While simple in practice, it has been shown in experimental results that this look-ahead verification can successfully deal with problematic situations that the original VFH and VFH+ cannot handle (the resulting trajectory is fast and smooth, with no significant slow down in presence of obstacles).

References

References

  1. "VFH+ in Player/Stage/Gazebo".
  2. (August 2000). "VFH*: Local Obstacle Avoidance with Look-Ahead Verification".
Wikipedia Source

This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.

Want to explore this topic further?

Ask Mako anything about Vector Field Histogram — get instant answers, deeper analysis, and related topics.

Research with Mako

Free with your Surf account

Content sourced from Wikipedia, available under CC BY-SA 4.0.

This content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.

Report