Overview

The ic_barcode_scanner provides a ROS wrapper nodelet/node to the IC-Barcode library of The Imaging Source (TIS).

See https://www.theimagingsource.com/support/documentation/ic-barcode for the API documentation of IC-Barcode and https://www.theimagingsource.com/support/downloads-for-linux/install/tisicbarcode for the download.

Please note that IC-Barcode is proprietary and only runs with a TIS camera connected to your computer (however it then accepts images from any source).

Also note that you could run all modern cameras of TIS inside ROS using camera_aravis.

Usage

Getting started

First, download and install IC-Barcode from the link above. It is provided as a DEB package compatible with Ubuntu LTS. Then, download and compile this ROS wrapper from https://github.com/fkie/ic_barcode_scanner.

To use the wrapper, either run the IcBarcodeScannerNodelet or IcBarcodeScannerNode, which both provide the same interface/functionality.

rosrun ic_barcode_scanner IcBarcodeScannerNode

The nodelet/node only subscribes to the image input on demand, i.e. if somebody listens to a barcode topic.

Interface

Subscribed Topics

~image (sensor_msgs/Image)
  • A stream of images where barcodes should be detected.

Published Topics

~barcodes (ic_barcode_scanner/IcBarcodeResults)
  • Detections of barcodes. It contains positions as well as the carried information. A vector of IcBarcodeResult with a Header corresponding to the original Image.
~image_barcodes (sensor_msgs/Image)
  • Barcode positions drawn as boundaries on the original Image.

Services

~find_barcodes (ic_barcode_scanner/find_barcodes)
  • To look for barcodes in a single image use this service.

Parameters

~barcode_formats (integer, default: ICBarcode_Format::IC_BARCODEFORMAT_ALL)
  • A bitmask which defines what barcode formats we are looking for. See enum ICBarcode_Format of IC-Barcode for available options. For convenience, one could also (de-)select formats using dynamic_reconfigure.
~max_barcodes (integer, default: 10)
  • Maximal number of reported barcodes per image.
~image_transport (string, default: raw)
  • Transport hints which image (compressed) format should be used.
all options of enum ICBarcode_Param from IC-Barcode (integer, default: -1)
  • e.g. ICBarcode_Param::IC_BARCODEPARAMS_ORIENTATION becomes ~orientation

Wiki: ic_barcode_scanner (last edited 2019-12-03 09:45:16 by DominikAKlein)