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.
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.
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.
- Barcode positions drawn as boundaries on the original Image.
- 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.
- Maximal number of reported barcodes per image.
- Transport hints which image (compressed) format should be used.
- e.g. ICBarcode_Param::IC_BARCODEPARAMS_ORIENTATION becomes ~orientation