Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

The device actually sends something akin to a disparity image over USB. Both OpenNI and libfreenect are capable of converting that to a depth image using parameters reported by the device (baseline, focal length, and distance to reference plane, IIRC).

The kinect_calibration package dates from the early days of Kinect hacking, when libfreenect could only return the disparity image and OpenNI was not yet released. So calculating the disparity->depth conversion was a crucial part of calibration.

These days we can trust the driver to return an accurate depth image and work from there. openni_launch is our stable driver package. It allows you to calibrate both the IR and RGB cameras as described at http://www.ros.org/wiki/openni_camera/calibration; otherwise a default calibration is used. The lens on the IR camera is low-distortion, so modeling the distortion only slightly improves accuracy.