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

device open failed error when trying to start multiple camera1394 nodes

asked 2011-11-07 20:23:15 -0600

Kai Bublitz gravatar image

Hi,

I am trying to get images from three firewire cameras. I can open each camera when running a single camera1394 node.

Launch file:

<launch>
    <node pkg="camera1394" type="camera1394_node" name="fisheye_camera" cwd="node" respawn="false" output="screen" >
        <param name="guid" type="string" value="000a470104069253" />
        <param name="video_mode" type="string" value="format7_mode0" />
        <param name="format7_color_coding" type="string" value="rgb8" />
        <remap from="/camera" to="/fisheye_camera" />
    </node>
</launch>

I get the following output as expected:

process[fisheye_camera-1]: started with pid [7560]
[ INFO] [1320745534.175589661]: Found camera with GUID a470104069253
[ INFO] [1320745534.175965999]: camera model: AVT Marlin F046C
[ INFO] [1320745534.182929881]: Format7 unit size: (4x2), position: (2x2)
[ INFO] [1320745534.183078333]: Format7 region size: (780x580), offset: (0, 0)
[ INFO] [1320745534.204670708]: [000a470104069253] opened: format7_mode0, 15 fps, 400 Mb/s
[ WARN] [1320745534.292570577]: Calibrated image size (0x0) matches neither full Format7 size (780x580)) nor ROI size (780x580)
[ WARN] [1320745534.292964530]: [000a470104069253] calibration does not match video mode (publishing uncalibrated data)

When I now try to open a second camera with a similar launch file (different guid), while the first node is still running:

<launch>
    <node pkg="camera1394" type="camera1394_node" name="pantilt_camera" cwd="node" respawn="false" output="screen" >
        <param name="guid" type="string" value="000a47011109a214" />
        <param name="video_mode" type="string" value="format7_mode0" />
        <param name="format7_color_coding" type="string" value="rgb8" />
        <remap from="/camera" to="/pantilt_camera" />
    </node>
</launch>

I get the following output with error device open failed:

process[pantilt_camera-1]: started with pid [8145]
[ INFO] [1320746488.817020075]: Found camera with GUID a470104069253
[ INFO] [1320746488.825803202]: Found camera with GUID a47010f0771b0
[ INFO] [1320746488.835166689]: Found camera with GUID a47011109a214
[ INFO] [1320746488.835387890]: camera model: AVT Stingray F125C
[ INFO] [1320746488.846285059]: Format7 unit size: (4x2), position: (2x2)
[ INFO] [1320746488.846411706]: Format7 region size: (1292x964), offset: (0, 0)
libdc1394 error: juju: Failed to allocate iso resources
[ WARN] [1320746488.859773482]: [camera] exception opening device (retrying): [Camera1394::open]: Failed to open device!
[ INFO] [1320746488.870530423]: Found camera with GUID a470104069253
[ INFO] [1320746488.878520477]: Found camera with GUID a47010f0771b0
[ INFO] [1320746488.887673071]: Found camera with GUID a47011109a214
[ INFO] [1320746488.887826032]: camera model: AVT Stingray F125C
[ INFO] [1320746488.898584632]: Format7 unit size: (4x2), position: (2x2)
[ INFO] [1320746488.898770278]: Format7 region size: (1292x964), offset: (0, 0)
libdc1394 error: juju: Failed to allocate iso resources
[ WARN] [1320746488.912427925]: [camera] exception opening device (retrying): [Camera1394::open]: Failed to open device!
[ INFO] [1320746488.923146609]: Found camera with GUID a470104069253
[ INFO] [1320746488.931056190]: Found camera with GUID a47010f0771b0
[ INFO] [1320746488.940165987]: Found camera with GUID a47011109a214
[ INFO] [1320746488.940331928]: camera model: AVT Stingray F125C
[ INFO] [1320746488.953041566]: Format7 unit size: (4x2), position: (2x2)
[ INFO] [1320746488.953164625]: Format7 region size: (1292x964), offset: (0, 0)
libdc1394 error: juju: Failed to allocate iso resources
[ERROR] [1320746488.966902795]: [camera] device open failed: [Camera1394::open]: Failed to open device!

I allways get the same result no matter which camera I open first.

I am using ROS diamondback on Ubuntu 11.04 (kernel 2.6.38-11-generic), camera_drivers stack is version 1.4.2. The three cameras are connected via a firewire hub.

Can anybody tell me ... (more)

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
2

answered 2011-11-08 05:56:56 -0600

joq gravatar image

The "failed to allocate iso resources" messages suggests that your bus is not providing enough bandwidth for both cameras in the chosen video mode.

If you have a 1394b bus, try setting the iso_speed parameter to 800 (Mb/s). The default is 400, which would be correct for the older 1394 bus standard.

edit flag offensive delete link more

Comments

I can not change the iso_speed, 400 seems to be correct, however I can use different video modes with smaller resolution and it works, thanks.
Kai Bublitz gravatar image Kai Bublitz  ( 2011-11-08 22:59:35 -0600 )edit
0

answered 2011-11-08 00:52:51 -0600

DimitriProsser gravatar image

After doing some research, I came across this statement in the libdc1394 library documentation:

dc1394error_t dc1394_capture_set_dma_device_filename (dc1394camera_t* camera, char *filename) - used to set the DMA device filename in case you have strange device files. Currently the following names are probed automatically: /dev/video1394 and /dev/video1394/x. If you don't use that you have to call this function before a DMA setup function. LINUX only (not for juju!)

This leads me to believe that it's a device name error. I could be way off, but this is just something that I came across.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-11-07 20:23:15 -0600

Seen: 2,277 times

Last updated: Nov 08 '11