plusone-robotics / realsense

Intel(R) RealSense(TM) ROS Wrapper for D400 series and SR300 Camera
http://wiki.ros.org/RealSense
Apache License 2.0
0 stars 5 forks source link

Driver should support IR-RGB and RGB colorization #13

Open shaun-edwards opened 5 years ago

shaun-edwards commented 5 years ago

A recent change was made to support IR-RGB publishing/pointcloud colorization (https://github.com/plusone-robotics/realsense/pull/12). This change inadvertently broke other usage (https://github.com/plusone-robotics/realsense/pull/12#issuecomment-455730071).

The change was introduced to address synchronization issues between the realsense RGB camera and the pointcloud. In the prior version, the pointcloud and RGB were generated by different cameras. Synchronization was performed by timestamp syncing, which sometimes meant frames were mismatched by as much as 1/2 the frame rate. This is problematic when dealing with moving captures. Because the IR-RGB image is directly used in generating the pointcloud, the two are exactly synchronized. An additional side benefit is that the image and pointcloud are represented in the same frame, making pixel to pixel mapping very efficient. The only downside, is that the IR-RGB image has some small IR artifacts that cause the image to look slightly different from the RGB image. Mainly, the IR-RGB image is less sensitive to red color.

I recommend that all applications switch to the IR-RGB image from the RGB image for the improvements stated above. However, to support older usage, we should consider modifying the driver to support both. Allowing both RGB and IR-RGB image streams and some kind of switch to control which is used for colorized pointcloud mapping.

130s commented 5 years ago

ir-rgb branch is created to keep the work for this WIP.