Vector Field Histogram
title: "Vector Field Histogram" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["robot-control"] topic_path: "general/robot-control" source: "https://en.wikipedia.org/wiki/Vector_Field_Histogram" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
In robotics, Vector Field Histogram (VFH) is a real time motion planning algorithm proposed by Johann Borenstein and Yoram Koren in 1991.{{cite journal | author = Borenstein, J. |author2=Koren, Y. | year = 1991 | title = The vector field histogram-fast obstacle avoidance for mobile robots | journal = IEEE Transactions on Robotics and Automation | volume = 7 | issue = 3 | pages = 278–288 | doi = 10.1109/70.88137 |citeseerx=10.1.1.22.2796 |s2cid=757244
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 | author = Ulrich, I. |author2=Borenstein, J. | year = 1998 | title = VFH+: reliable obstacle avoidance for fast mobile robots | book-title = Robotics and Automation, 1998. Proceedings. 1998 IEEE International Conference on | volume = 2 |doi=10.1109/ROBOT.1998.677362 | citeseerx = 10.1.1.31.5081 | author = Ulrich, I. |author2=Borenstein, J. | year = 2000 | title = VFH: local obstacle avoidance with look-aheadverification | book-title = Robotics and Automation, 2000. Proceedings. ICRA'00. IEEE International Conference on | volume = 3 |doi=10.1109/ROBOT.2000.846405
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:
- 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.
- Polar histogram: a one-dimensional polar histogram is constructed by reducing the Cartesian histogram around the momentary location of the robot.
- 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:
- Threshold hysteresis: a hysteresis increases the smoothness of the planned trajectory.
- Robot body size: robots of different sizes are taken into account, eliminating the need to manually adjust parameters via low-pass filters.
- Obstacle look-ahead: sectors that are blocked by obstacles are masked in VFH+, so that the steer angle is not directed into an obstacle.
- 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
- "VFH+ in Player/Stage/Gazebo".
- (August 2000). "VFH*: Local Obstacle Avoidance with Look-Ahead Verification".
::callout[type=info title="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. ::