Робототехника и компьютерное зрение - PullRequest
7 голосов
/ 07 октября 2009

Пара друзей и я будем строить простого робота, чтобы отслеживать белую линию на черной поверхности, мы никогда раньше такого не делали, и у меня очень высокий план атаки,

Получите мини-аткс-доску для всех вычислительных нужд, веб-камеру для отслеживания дороги и 2 электромотора, один для движения, один для направления.

Моя главная проблема в том, есть ли лучший способ отследить дорогу? или вебкамера работает на работу?

EDIT:

Отслеживание ответов с использованием фоторезистора, кажется, является подходящим способом, но у меня есть еще один вопрос, будут сигналы, справа от дорожки, сообщающие роботу, в какую сторону повернуть. опять белое на черном. такой как я должен сделать налево на Т-образном перекрестке. есть ли способ справиться с этим без камеры?

Ответы [ 7 ]

13 голосов
/ 07 октября 2009

Лучше всего обходить сложное программное обеспечение для зрения и использовать простую электронику. Есть устройства, называемые фототранзисторами, которые чувствительны к свету. Направьте два вниз на каждую сторону робота, затеняя от света сверху. Если бот начнет идти направо, а не следовать за линией, будет активирован левый датчик. Если он уйдет влево, будет активирован правый. Используйте обратную связь этих сигналов, чтобы направлять робота (вы могли бы применить их почти непосредственно к двигателям, если у вас есть два двигателя).

5 голосов
/ 07 октября 2009

У веб-камеры не будет проблем с отслеживанием белой линии на черном фоне, и если вы обнаружите, что у вас есть проблемы с чувствительностью, это легко обновляемая часть системы. (вам нужно только подключить более дорогую камеру)

Возможно, вам будет интересно взглянуть на OpenCV ,

(Open Source Computer Vision) - библиотека функций программирования для компьютерного зрения в реальном времени.

Это может дать вам некоторые идеи для вашей реализации или даже быть полезным для вас, если вы в конечном итоге будете использовать C ++

edit: хотя использование LDR, таких как Andrew M , может оказаться более простым решением:)

2 голосов
/ 07 октября 2009

Предыдущие комментарии по использованию фотодатчика являются хорошими предложениями, хотя их может быть сложнее найти / сделать что-то, что подключится к USB-порту.

Если вы пойдете по пути камеры, я бы посоветовал вам эмулировать простой датчик; возможно, возьмите среднее значение для левой и правой половин входа как указание для движения прямо / влево / вправо.

Но, если вы хотите тратить меньше времени на создание нестандартных деталей, вы можете проверить комплект LEGO NXT . Они поставляются с оптическим датчиком и графической средой программирования. Даже если вы не купите один, вы можете извлечь уроки из дискуссий сообщества вокруг него.

2 голосов
/ 07 октября 2009

Я сделал похожего робота в школе и сделал два маленьких датчика, в основном просто LDR в светонепроницаемой трубке с цепью для контроля порога света, который включал и выключал свет. Это сделало логику очень простой - есть ли черная линия под этим датчиком? Да | Нет.

Использование веб-камеры может потребовать много визуальной обработки.

Тем временем вы можете работать с другими своими подсистемами, то есть управлять двигателями с компьютера, собирать саму вещь и выяснять, как все это питать.

0 голосов
/ 31 декабря 2013

Я сделал нечто подобное и записал это в модуль. http://letsmakerobots.com/node/38883#comments

0 голосов
/ 08 октября 2009

Если вы идете с камерой, вам, возможно, придется выполнить простую обработку изображения. Самым простым способом, вероятно, будет адаптивный порог - взять все пиксели из кадра камеры, преобразовать в оттенки серого (если он в цвете), рассчитать среднее значение и использовать его в качестве порога - у вас будет белая линия на черном фоне. Если вы по-прежнему получаете небольшие белые пятна (из-за неравномерного освещения), вы можете отфильтровать их, разделив изображение на подключенные компоненты (с заливкой) и удалив маленькие пятна. После этого вы надеетесь получить одну белую полосу на черном фоне.

0 голосов
/ 07 октября 2009

Предполагается, что вы будете использовать оба мотора для его привода, по одному с каждой стороны посередине шасси, а затем два колесика спереди и сзади (слегка приподняты над полом, чтобы он мог качаться на ведущих колесах). Затем вы можете вести его как танк, и он может включить шесть пенсов (или десять центов, если из США).

Найдите бывшего участника Войн Робота :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...