Всегда начинайте с самого простого решения, а затем go при необходимости более сложного. Если вы используете ROS / OpenCV, OpenCV имеет сканер QR-кода , ex . Другие варианты включают ZBar , quir c и другие, найденные при поиске на github или inte rnet.
Что касается камеры, если вы не Не нужна матрица intrinsi c, тогда вам нужно только выбрать разрешение: большее разрешение требует (нелинейно) больше времени для вычисления, но меньшее разрешение мешает хорошо видеть объекты.
Ваш комментарий о "распознавать на скорости 50 см / с" не имеет особого смысла. Я предполагаю, что вы имеете в виду, что хотите иметь возможность декодировать QR-код, находящийся на расстоянии до 50 см, и сделать это менее чем за секунду (чтобы успеть остановиться). Сначала вам нужно будет проверить, может ли алгоритм, работающий на вашем оборудовании, обнаруживать QR-код на разных желаемых расстояниях и как это меняется при масштабировании изображения вверх / вниз в OpenCV. Затем вам нужно будет рассчитать, сколько времени потребуется, чтобы обнаружить / декодировать его на этих расстояниях / разрешениях / масштабах. Если он не может быть достаточно хорошим, вы можете попробовать другой алгоритм, попробовать другие настройки компиляции, возможно, дать ему собственный поток, изменить масштаб изображения, принять ограничения или заменить оборудование.