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

camera calibration service not available (specific driver for VRMagic)

asked 2016-07-04 08:47:12 -0500

altella gravatar image

Hello all;

I am using "camera calibration" node to calibrate a stereo system based on a VRMagic D3 stereo camera. The driver I am using to obtain the images from the camera is "vrmagic_ros_bridge_server". My launch file is:

<launch>

    <node  pkg="vrmagic_ros_bridge_server" name="vrmagic_ros_bridge_server_node" type="vrmagic_ros_bridge_server_node" respawn="false" output="screen">
        <param name="pub_name" type="str" value="/img_pub" />
        <param name="ip_smartcam" type="str" value="172.16.205.100" />
        <param name="port_smartcam" type="int" value="1234" />
    </node>

    <node  pkg="tekniker_image_proc" name="publish_image_and_info_to_common_ws_node_1" type="publish_image_and_info_to_common_ws_node" respawn="false" output="screen">
        <param name="image_input_topic" type="str" value="/img_pub1" />
        <param name="camera_info_input_topic" type="str" value="/img_pub1_camera_info" />
        <param name="image_output_topic" type="str" value="/left" />
        <param name="camera_info_output_topic" type="str" value="/camera_info" />
        <param name="frame_id" type="str" value="camera_d3_0" />
        <param name="workspace" type="str" value="stereo" />
    </node>

  <node  pkg="tekniker_image_proc" name="publish_image_and_info_to_common_ws_node_2" type="publish_image_and_info_to_common_ws_node" respawn="false" output="screen">
        <param name="image_input_topic" type="str" value="/img_pub2" />
        <param name="camera_info_input_topic" type="str" value="/img_pub2_camera_info" />
        <param name="image_output_topic" type="str" value="/right" />
        <param name="camera_info_output_topic" type="str" value="/camera_info" />
        <param name="frame_id" type="str" value="camera_d3_0" />
        <param name="workspace" type="str" value="stereo" />
    </node>
</launch>

I have remapped the images to a common workspace, and the following topics:

/img_pub1
/img_pub1_camera_info
/img_pub2
/img_pub2_camera_info
/rosout
/rosout_agg
/stereo/camera_info
/stereo/left
/stereo/left/compressed
/stereo/left/compressed/parameter_descriptions
/stereo/left/compressed/parameter_updates
/stereo/left/compressedDepth
/stereo/left/compressedDepth/parameter_descriptions
/stereo/left/compressedDepth/parameter_updates
/stereo/left/theora
/stereo/left/theora/parameter_descriptions
/stereo/left/theora/parameter_updates
/stereo/right
/stereo/right/compressed
/stereo/right/compressed/parameter_descriptions
/stereo/right/compressed/parameter_updates
/stereo/right/compressedDepth
/stereo/right/compressedDepth/parameter_descriptions
/stereo/right/compressedDepth/parameter_updates
/stereo/right/theora
/stereo/right/theora/parameter_descriptions
/stereo/right/theora/parameter_updates

The services that I have available are:

/publish_image_and_info_to_common_ws_node_1/get_loggers
/publish_image_and_info_to_common_ws_node_1/set_logger_level
/publish_image_and_info_to_common_ws_node_2/get_loggers
/publish_image_and_info_to_common_ws_node_2/set_logger_level
/rosout/get_loggers
/rosout/set_logger_level
/stereo/left/compressed/set_parameters
/stereo/left/compressedDepth/set_parameters
/stereo/left/theora/set_parameters
/stereo/right/compressed/set_parameters
/stereo/right/compressedDepth/set_parameters
/stereo/right/theora/set_parameters
/vrmagic_ros_bridge_server_node/get_loggers
/vrmagic_ros_bridge_server_node/set_logger_level

Unfortunately, when I use the "camera_calibration" node, I have the following error:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 right:=/stereo/right left:=/stereo/left right_camera:=/right left_camera:=/left
('Waiting for service', '/left/set_camera_info', '...')
Service not found
('Waiting for service', '/right/set_camera_info', '...')
Service not found

Which is obvious, because my vrmagic camera driver is not providing that services. If I use "--no-service-check" flag, the terminal get blocked and I obtain no results.

I know this issue has appeared more times on the forums, and all the answers where related to solutions changing or modifying the camera driver to obtain results, but, what if the driver that we are using does NOT provide that services in anyway? It is not possible to calibrate cameras without using stardard camera drivers?

I would appreciate any king of help a lot...

Thank you,

Alberto

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2016-07-06 16:41:02 -0500

moates gravatar image

set_camera_info is the service that "talks" between ROS and the camera driver to set calibration params. No, I don't think it is possible to use a nonstandard driver.

It's not terribly difficult to modify a camera driver, especially an open source one. See camera_info_manager (especially the example at the bottom) for help on that.

If you're not up to changing the driver, you might be able to use another calibration setup (through OpenCV, for example) and then convert that output to a ROS-compatible yaml file

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2016-07-04 08:47:12 -0500

Seen: 337 times

Last updated: Jul 06 '16