API review

Proposer: Jack O'Quin

Present at review:

  • Eric Perko
  • Ken Tossell
  • Patrick Mihelich


This is a review of the camera1394 changes for Diamondback. The new API is defined in the camera1394/Diamondback sub-page, selected from the main page via the unstable button.

Question / concerns / comments

Enter your thoughts on the API and any questions / concerns you have here. Please sign your name. Anything you want to address in the API review should be marked down here before the start of the meeting.

  • (Jack) I am changing reset_on_open default to False. For C-turtle, it was True, but only after being released as an update; I did not want to risk changing that behavior as a bug fix. This is the only known incompatibility. Any objections?

  • (Jack) other new features:

    • There is now a nodelet version of the driver.

    • Format7 support (thanks to Ken Tossell)
    • Focus and Zoom features (thanks to José Antonio Álvarez Ruiz)
  • (Ken) The driver doesn't fully support communication of the ROI to downstream nodes. There are currently two options presented to the user: 1) publish the partial image as if it were a full-sensor scan or 2) set ~pad_image and publish the partial image with a big border that pads it out to full sensor size. There should also (or, possibly, instead) be an option to make use of CameraInfo.{roi,binning} so that partial scans can be packaged together with CameraInfos that use distortion matrices from full-scan calibration runs. This would also improve the handling of binning modes [see REP 104 and the new sensor_msgs/CameraInfo].

    • (Ken) If we do choose to support the remaining fields in CameraInfo, we'll need to decide whether ROI parameters (~roi_?) are interpreted by camera1394 as being in binned or unbinned coordinates. We may also need to require the user to specify whether the chosen mode is binned -- is there any way to get the camera to provide binning information? Can we assume that F7 mode 0 is unbinned?

  • (Patrick) For compliance with REP 104, the driver should use the CameraInfo roi and binning fields to describe the Format7 ROI. The ROI must be specified in unbinned coordinates, which I believe (?) is also libdc1394's interpretation. For getting the binning info, I think dc1394_format7_get_unit_size() gives you those values.

  • (Jack) Seems right, the IIDC spec says they're in units of "pixels".

Meeting agenda

This review will be conducted on-line using this wiki page.

Final comments and approval will be handled via e-mail at 3:30PM CST (1:30 PST) on 2010-12-22.


  • /!\ Change ~reset_on_open default to False. For C-turtle, it was True. This is the only known API incompatibility.

  • /!\ Support new Diamondback CameraInfo for Format7 ROI as suggested by Patrick.

  • /!\ Add ~binning_x and ~binning_y parameters to explicitly set Format7 binning modes. Try to deduce these values from the device, if zero (default).

  • /!\ Rename ~roi_x and ~roi_y parameters to ~x_offset and ~y_offset so they agree with the CameraInfo message subfields.

  • /!\ Fix the tooltips for those two parameters, removing the "full resolution if zero" copy and paste error.

  • /!\ Rename ~roi_w and ~roi_h parameters to ~roi_width and ~roi_height.

  • /!\ The Region Of Interest is specified in unbinned coordinates.

Wiki: camera1394/Reviews/2010-12-17_API_Review (last edited 2011-01-12 03:23:36 by JackOQuin)