vfh

Vector Field Histogram local navigation algorithm. More...

Vector Field Histogram local navigation algorithm.

Note:
This driver may take several seconds to start up, especially on slower machines. You may want to set the 'alwayson' option for vfh to '1' in your configuration file in order to front-load this delay. Otherwise, your client may experience a timeout in trying to subscribe to this device.

The vfh driver implements the Vector Field Histogram Plus local navigation method by Ulrich and Borenstein. VFH+ provides real-time obstacle avoidance and path following capabilities for mobile robots. Layered on top of a laser-equipped robot, vfh works great as a local navigation system (for global navigation, you can layer the wavefront driver on top of vfh).

The primary parameters to tweak to get reliable performance are safety_dist and free_space_cutoff. In general, safety_dist determines how close the robot will come to an obstacle while turning (around a corner for instance) and free_space_cutoff determines how close a robot will get to an obstacle in the direction of motion before turning to avoid. From experience, it is recommeded that max_turnrate should be at least 15% of max_speed.

To get initiated to VFH, I recommend starting with the default values for all parameters and experimentally adjusting safety_dist and free_space_cutoff to get a feeling for how the parameters affect performance. Once comfortable, increase max_speed and max_turnrate. Unless you are familiar with the VFH algorithm, I don't recommend deviating from the default values for cell_size, window_diameter, or sector_angle.

Compile-time dependencies
Provides
Requires

-

Todo:
: add support for getting the robot's true global pose via the simulation interface
Configuration requests
Supported commands
Configuration file options
Example
driver
(
  name "p2os"
  provides ["odometry::position:1"]
  port "/dev/ttyS0"
)
driver
(
  name "sicklms200"
  provides ["laser:0"]
  port "/dev/ttyS1"
)
driver
(
  name "vfh"
  requires ["position:1" "laser:0"]
  provides ["position:0"]
  safety_dist 0.10
  distance_epsilon 0.3
  angle_epsilon 5
)
Author:
Chris Jones, Brian Gerkey, Alex Brooks, Richard Vaughan

Last updated 25 May 2011 21:17:00