What type of barcode is most reliable when used with a mobile machine's vision and a tool like OpenCV?

I want to use barcodes to help the robot move around the house. I looked at QR codes and several other types, but I don’t know enough about barcode recognition to know the front option, which will give me the highest chance of success when viewing from different angles and, possibly, even when the robot is in motion. Does anyone know what type of barcode stands out in applications like this? I will most likely be using OpenCV together with one of the open source barcode libraries to do my job. My users will print barcodes on their printer and mount them on a hard surface to create navigation posters located in strategic places around the house.

+4
source share
4 answers

I will continue to offer a QR code

Remember that there should be as little blur as possible, and the image should be clear. I suggest you scale QR codes, so resolution will not be a problem (maybe 50 cm x 50 cm?) And does not contain a lot of data.

+4
source

zbar: http://zbar.sourceforge.net/download.html

zxing: http://code.google.com/p/zxing/

I used zbar for ios for a very simple application, it worked very well.

+2
source

Have you looked at the existing ar_pose library (this is the ROS package) or the base library used by ar_pose , ARToolKit ?

+2
source

Both QR codes and data matrices are a good choice. QRCode is more commonly used for end-user applications, and the data matrix is ​​more common in robotic and industrial applications. If you needed maximum flexibility, I would recommend Data Matrix, and a few years ago it was even more robust code. But since the QR Code is so popular these days, and since there are so many implementations available, you can use the QR code.

Both QR Code and Data Matrix are reliable codes. They can withstand certain damage, and good decoders will work even if the code is viewed at an angle, uneven lighting, or even if the code is located on a curved surface. One of the advantages of codes with built-in error correction is that they have only two read results: success, which gives the correct data or decoding failure and lack of data. You will not be mistaken.

Open source implementations are likely to work fine for high contrast codes (like black ink on white paper), but if you run into problems, you might consider buying a cheap commercial smart camera from an industrial machine design company. A few years ago, I cut a data matrix into a piece of light pink rubber with a hand knife, and, looking at the light, the code was available for an industrial-quality decoder.

+2
source

Source: https://habr.com/ru/post/1385623/


All Articles