openni_camera fixing timeout when shutting down
- Support for ASUS Xtion Pro devices. These have the depth sensor but no RGB camera.
- Driver nodelet publishes the IR image stream. Due to hardware limitations, it is not possible to stream IR and RGB simultaneously.
RGB and IR cameras can both optionally be calibrated with camera_calibration to get accurate focal lengths, image centers and distortion models.
- Depth camera info is computed from the IR calibration by slightly offsetting the principal point.
- The depth camera can be registered with an external RGB camera.
- The monolithic driver nodelet has been refactored into several smaller nodelets, providing valuable flexibility when working from bag files or using the depth sensor with an external RGB camera. The nodelets are:
openni_camera/driver: Publishes raw depth, RGB and IR image streams with calibration info.
openni_camera/rectify: Temporary fork of image_proc/rectify that supports nearest neighbor interpolation (for rectifying depth images).
openni_camera/convert_metric: Converts a raw uint16 depth image to a metric float depth image.
openni_camera/disparity: Converts the raw depth image to a disparity image.
openni_camera/register: Given a raw depth image, its camera info, and the camera info for a target RGB camera, computes a depth image registered to the RGB camera frame. The relative transform between the cameras is queried through tf.
openni_camera/point_cloud_xyz: Creates an XYZ point cloud from a depth image.
openni_camera/point_cloud_xyzrgb: Combines a registered depth image and RGB image into an XYZRGB point cloud.
- Separation of registered and unregistered depth topics
- Unregistered depth images, disparity images and point clouds are published in namespace "camera/depth_unregistered".
Registered depth images, disparity images and point clouds are published in namespace "camera/depth". Previously these topics could be either registered or unregistered depending on the depth_registration setting.
If OpenNI registration is enabled at the driver level, the driver nodelet directly publishes to "camera/depth". Otherwise, the openni_camera/register nodelet attempts to compute the registered depth image using the camera calibration.
- Optional "watchdog" to check that the device is still streaming.
YUV to RGB conversion (for PrimeSense devices) sped up 2-3x.
- Can remap subnamespaces, like "camera/rgb" or "camera/depth".
- Fixed a couple of deadlocks in the OpenNI wrapper.
- Makefile cleanup - removed hard-coded SSE flags.
- Compilation bug fixes for Windows.
Added rgb/image_raw (raw Bayer or YUV data) and depth/image_raw (uint16 depths) for recording smaller bags.
Can listen for a set of indices to construct a PointCloud from, rather than using the whole image.
Added nite meta package.
- Fixed principal point calculation in SXGA mode.
- Driver nodelet waits at startup until the requested device is connected.
- First experimental release for Diamondback!