dmamylin / vector-field-histogram

A C implementation of the Vector Field Histogram algorithm for local path planning.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Vector Field Histogram

Build Status

This is an implementation of the Vector Field Histogram algorithm, developed by J. Borenstein and Y. Koren in 1990.

I used this in a project for my real-time systems class at Embry-Riddle Aeronautical University.

Eventually, I'll add support to the VFH+ and VFH-star algorithms.

To do

  • Complete the parameter list with descriptions.
  • Include drawings showing the referentials used for the sensors and the robot.
  • Introduce some examples and test data.
  • UNIT TESTS. The cmockery library appears to be good.
  • Create libvfh to make reusability easier.

How to install

Wait.

It should be as easy as:

git clone <url for this repo>
cd vector-field-histogram
make

How to use

Basically, this algorithm receives as inputs a lot of rangefinder sensor readings and generates control signals - the "best" direction and a damping factor for the max velocity.

The rangefinder readings are passed to the certainty grid as an array of rangefinder_data_t (a struct with fields distance and direction) via the function grid_update().

Also, there are a lot of necessary parameters:

  • Certainty grid dimension (if it's even, it'll be incremented by 1)
  • Certainty grid resolution [cm]
  • Moving window dimension (same as certainty grid dimension)
  • Histogram alpha (must be a divisor of 360) [degrees]
  • Density_A (experimental)
  • Density_B (experimental)
  • Obstacle density threshold (experimental)
  • Objective position X (per-project)
  • Objective position Y (per-project)

License

Copyright (c) 2012 Carlos Agarie. See LICENSE for details.

About

A C implementation of the Vector Field Histogram algorithm for local path planning.

License:MIT License


Languages

Language:C 93.6%Language:Ruby 3.5%Language:Makefile 3.0%