Wiki

Overview

This package provides a ROS interface for digital cameras meeting the IEEE 1394 IIDC standard using libdc1394, which supports many camera makes and models. Of the thousands of IIDC models, we are accumulating a list of cameras tested with this driver.

It works with the ROS image_pipeline like other streaming camera_drivers.

This is a purely monocular driver, stereo applications need a separate driver node for each camera of the pair.

No C++ API is provided. There are no utility commands or launch files.

Road Map

The camera1394_node driver was first released with ROS C-Turtle. A number of API changes were made during the pre-release review process. That API is now stable.

C-turtle Limitations

The current driver has several significant limitations, some are removed in later releases.

IIDC Options

Several IIDC options are not supported in the current release:

Stereo Image Synchronization

It is possible to combine two monocular 1394 cameras to produce a stereo image if they are configured to trigger at the same time. Some IIDC cameras provide hardware trigger synchronization for this purpose.

Unfortunately, the C-turtle stereo_image_proc requires message timestamps for both images to match exactly, which the camera1394 driver does not do. Later releases of stereo_image_proc provide a cleaner solution for this problem (enhancement #4217). For C-turtle, the timestamps would need to be matched by an additional node, not provided in that release.

Box Turtle Prototype

The Box Turtle prototype was an experimental version of this driver developed using the ROS Box Turtle release. It provided a slightly different API than the supported C-Turtle driver. That version is no longer supported.

Features

The IIDC specification lists a number of optional features that may be provided by conforming camera implementations. Many are supported by the driver as parameters. While the spec mentions the names of these features, it does not define what they do. Consult the technical specifications of the camera: manufacturers have great latitude in determining which features to support, what values they can take, and the meanings of those values.

For each supported feature there is a corresponding auto_ parameter providing user control. Different cameras handle these controls in various ways.

The control states are:

When setting an IIDC feature to a specific value, it is necessary to set the corresponding control state to Manual (3), otherwise the corresponding value will be ignored unless the device is already in the Manual state when the driver starts.

For example, to set brightness to 256 on the command line:

$ rosrun camera1394 camera1394_node _auto_brightness:=3 _brightness:=256.0

Bayer filtering

Many IIDC cameras use Bayer filtering to provide color information. For cameras of this type, set video_mode to an appropriate mono8 value, and select the correct bayer_pattern. If the bayer_pattern is "", all mono8 images are monochrome.

Note: Bayer decoding of mono16 video modes is not supported in this release.

This driver provides two alternate mechanisms for decoding Bayer color information:

In both cases the camera/image_raw image stream is compatible with the ROS image_pipeline.

ROS API

camera1394_node

IEEE 1394 digital camera driver.

Published Topics

camera/image_raw (sensor_msgs/Image) camera/camera_info (sensor_msgs/CameraInfo)

Services

camera/set_camera_info (sensor_msgs/SetCameraInfo)

Parameters

Additional Reconfigurable Parameters
New in camera_drivers 1.2.5 ~reset_on_open (bool, default: True)
Dynamically Reconfigurable Parameters
See the dynamic_reconfigure package for details on dynamically reconfigurable parameters. ~guid (str, default: ) ~video_mode (str, default: 640x480_mono8) ~frame_id (str, default: camera) ~frame_rate (double, default: 15.0) ~iso_speed (int, default: 400) ~camera_info_url (str, default: ) ~bayer_pattern (str, default: ) ~bayer_method (str, default: ) ~auto_brightness (int, default: 1) ~brightness (double, default: 0.0) ~auto_exposure (int, default: 1) ~exposure (double, default: 0.0) ~auto_gain (int, default: 1) ~gain (double, default: 0.0) ~auto_gamma (int, default: 1) ~gamma (double, default: 2.2) ~auto_hue (int, default: 1) ~hue (double, default: 0.0) ~auto_iris (int, default: 1) ~iris (double, default: 8.0) ~auto_saturation (int, default: 1) ~saturation (double, default: 1.0) ~auto_sharpness (int, default: 1) ~sharpness (double, default: 1.0) ~auto_shutter (int, default: 1) ~shutter (double, default: 1.0) ~auto_white_balance (int, default: 1) ~white_balance_BU (double, default: 0.0) ~white_balance_RV (double, default: 0.0)

Wiki: camera1394/Cturtle (last edited 2012-03-15 15:01:59 by JackOQuin)