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

Stereo Calibration freezes

asked 2017-11-27 22:39:57 -0500

SamanthaTraynor65 gravatar image

updated 2017-11-28 11:45:35 -0500

lucasw gravatar image

Greetings.

I'm trying to use 2 iDS ucam USB cameras for stereo vision, but when I'm trying to use both of them with camera_calibration cameracalibrator.py it shows a little window with "display" captition and freezes:

$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 right:=/stereo/right/image_raw left:=/stereo/left/image_raw right_camera:=/stereo/right left_camera:=/stereo/left
('Waiting for service', '/stereo/left/set_camera_info', '...')
OK
('Waiting for service', '/stereo/right/set_camera_info', '...')
OK
init done

rostopic shows that I still do have cameras ready to transmit images

$ rostopic list
/image /rosout /rosout_agg
/stereo/left/camera_info
/stereo/left/image_raw
/stereo/left/image_raw/compressed
/stereo/left/image_raw/compressed/parameter_descriptions
/stereo/left/image_raw/compressed/parameter_updates
/stereo/left/image_raw/compressedDepth
/stereo/left/image_raw/compressedDepth/parameter_descriptions
/stereo/left/image_raw/compressedDepth/parameter_updates
/stereo/left/image_raw/theora
/stereo/left/image_raw/theora/parameter_descriptions
/stereo/left/image_raw/theora/parameter_updates
/stereo/left/timeout_count
/stereo/nodelet_manager1/bond
/stereo/nodelet_manager2/bond
/stereo/right/camera_info
/stereo/right/image_raw
/stereo/right/image_raw/compressed
/stereo/right/image_raw/compressed/parameter_descriptions
/stereo/right/image_raw/compressed/parameter_updates
/stereo/right/image_raw/compressedDepth
/stereo/right/image_raw/compressedDepth/parameter_descriptions
/stereo/right/image_raw/compressedDepth/parameter_updates
/stereo/right/image_raw/theora
/stereo/right/image_raw/theora/parameter_descriptions
/stereo/right/image_raw/theora/parameter_updates
/stereo/right/timeout_count
/stereo/ueye_cam_nodelet1/parameter_descriptions
/stereo/ueye_cam_nodelet1/parameter_updates
/stereo/ueye_cam_nodelet2/parameter_descriptions
/stereo/ueye_cam_nodelet2/parameter_updates

rqt_graph shows that cameras are connected to cameracalibrator
rqt_graph screesnsot

To use ucam cameras I'm using ueye_cam node, installed as described here: http://wiki.ros.org/ueye_cam
To initialize cameras I'm using modified rgb8.launch script from ueye_cam distribution:

<launch>
    <group ns="stereo">
        <node name="check_ueye_api" pkg="ueye_cam" type="check_ueye_api" required="true" />
        <node name="nodelet_manager1" pkg="nodelet" type="nodelet"  args="manager" output="screen" />
        <node name="nodelet_manager2" pkg="nodelet" type="nodelet"  args="manager" output="screen" />

        <node pkg="nodelet" type="nodelet" name="ueye_cam_nodelet1"
                args="load ueye_cam/ueye_cam_nodelet nodelet_manager1" output="screen">

            <param name="camera_name" type="str" value="right" /> <!-- == namespace for topics and services -->
            <param name="camera_topic" type="str" value="image_raw" />
            <param name="camera_id" type="int" value="0" /> <!-- 0 = any camera; 1+: camera ID -->
            <param name="camera_intrinsics_file" type="string" value="" /> <!-- default: ~/.ros/camera_info/<camera_name>.yaml -->
            <param name="camera_parameters_file" type="string" value="" /> <!-- default: ~/.ros/camera_conf/<camera_name>.ini -->
            <param name="ext_trigger_mode" type="bool" value="False" /> <!-- if False, then camera will operate in free-run mode; otherwise, frames need to be triggered by hardware signal (falling-edge) on digital input pin of camera -->

            <!-- the following are optional camera configuration parameters:
                 they will be loaded on the camera after the .ini configuration
                 file, and before dynamic_reconfigure. That means that any
                 (lingering) dynamic parameters from dynamic_reconfigure will
                 override these values, and that these will override parameters
                 from the .ini file.
                 See http://www.ros.org/wiki/ueye_cam for more details. -->

            <param name="color_mode" type="str" value="rgb8" /> <!-- valid options: 'rgb8', 'mono8', 'bayer_rggb8' -->

            <!-- WARNING: the following 4 parameters specify dimensions for camera's area of interest. Values for image_width and image_height that are smaller than your camera's maximum values will result in cropped field of view. For typical cases, one should modify values for sensor_scaling / binning / subsampling ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-12-03 22:47:29 -0500

SamanthaTraynor65 gravatar image

Sorry for late response, wasn't sure if my question was published.
I found the reason and now it works. Turned out that all of it was happening because cameras were not synchronized. Adding --approximate key fixed that.
So now I use this command: rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 --approximate=0.01 right:=/stereo/right/image_raw left:=/stereo/left/image_raw right_camera:=/stereo/right left_camera:=/stereo/left

edit flag offensive delete link more

Question Tools

Stats

Asked: 2017-11-27 22:39:57 -0500

Seen: 455 times

Last updated: Dec 03 '17