Ask Your Question

Revision history [back]

VFH has been designed to work with planar sensors, like a laser or a sonar. If you really want to use it with a Kinect, you need to project all the points on a plane which is parallel to the robot base (more or less where a laser would be) and then treat this points as laser readings. This could be as easy as removing the z component of the points if the robot does not tilt (most indoor robots don't). If you really want to mimic the laser input to the vfh you can calculate for each point:

range = sqrt(x^2 + y^2)

angle = atan2(y,x)

and that is the closest you can get to a laser. Beware that you might need to filter the Kinect pointcloud as it can be very noisy.