API review
Proposer: Jack O'Quin
Present at review:
- Eric Perko
- Ken Tossell
- Patrick Mihelich
Agenda
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.
Conclusion
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.