ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

stereo image proc bypass

asked 2014-09-26 05:40:36 -0600

pmarinplaza gravatar image

updated 2014-09-27 01:29:17 -0600

Ubuntu 14.04
ROS Indigo Igloo


I am using a lookup table to rectify the images extracted with camera1394stereo generated outside ROS with triclops. Now I have the "perfect" rectification but I want to bypass the stereo image proc to avoid the process of rectification, normalization and rotation.

I just want to generate the disparity image and the PointCloud2 image to use it in viso2_ros. The problem is that I don't have the correct parameters to fill the camera_info msg left and right cameras. As long I understand, viso2_ros use image_proc to do all the process to generate rectified images.

Is there some way to use image_proc, stereo_image_proc or depth_image_proc to get the disparity image and the pointCloud without do the rectification?

Thanks in advance.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-09-26 13:47:52 -0600

paulbovbel gravatar image

I think even at a very high level, image_proc inherently deals with data from only one camera, thus can't produce the kind of information you're looking for. You NEED to process data from multiple information sources to obtain disparity and pointcloud data, which is what stereo_image_proc and depth_image_proc are designed to do.

edit flag offensive delete link more

answered 2018-04-16 17:54:37 -0600

david_kooi gravatar image

Yes you can 'bypass' the stereo proc. As explained in :

This package contains nodelets for creating disparity images and point clouds from stereo. This allows stereo_image_proc functions to be easily combined with other nodelets, for example camera drivers or higher-level vision processing. In fact, the stereo_image_proc node simply loads a combination of nodelets.

To get the individual functionalities from stereo proc you need to use it's nodelets. As of now it has three: Disparity, Pointcloud, and Pointcloud2.

Using nodelets allows you to compose your own image pipe line. See:

For example, this launch file connects a few nodelets together. Currently there are only pre-cooked nodelets. But we plan to add custom nodelets into this pipeline.

<node pkg="nodelet" type="nodelet" name="nodelet_manager" args="manager"/>

<node pkg="nodelet" type="nodelet" name="left_rectifier"
      args="load image_proc/rectify nodelet_manager">
<remap from="/image_mono" to="/camera/left/image_raw"/>
<remap from="/camera_info" to="/camera/left/camera_info"/>
<remap from="/image_rect" to="/camera/left/image_rect"/>

<node pkg="nodelet" type="nodelet" name="right_rectifier"
      args="load image_proc/rectify nodelet_manager">
<remap from="/image_mono" to="/camera/right/image_raw"/>
<remap from="/camera_info" to="/camera/right/camera_info"/>
<remap from="/image_rect" to="/camera/right/image_rect"/>

<node pkg="nodelet" type="nodelet" name="disparity_gen"
      args="load stereo_image_proc/disparity nodelet_manager">
<param name="approximate_sync" value="true"/>
<remap from="/left/image_rect" to="/camera/left/image_rect"/>
<remap from="/left/camera_info" to="/camera/left/camera_info"/>

<remap from="/right/image_rect" to="/camera/right/image_rect"/>
<remap from="/right/camera_info" to="/camera/right/camera_info"/>
<remap from="/disparity" to="/camera/disparity"/>
edit flag offensive delete link more

Question Tools



Asked: 2014-09-26 05:40:36 -0600

Seen: 1,024 times

Last updated: Sep 27 '14