Робототехника и машинное зрение

WebRequest и более конкретно класс HttpWebRequest является хорошей начальной точкой для того, чего Вы хотите достигнуть. Для создания запроса, Вы будете использовать WebRequest. Создайте и бросьте созданный запрос в HttpWebRequest для фактического использования его. Вы тогда создадите свои данные сообщения и отправите их в поток как:

HttpWebRequest req = (HttpWebRequest)
WebRequest.Create("http://mysite.com/index.php");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
string postData = "var=value1&var2=value2";
req.ContentLength = postData.Length;

StreamWriter stOut = new
StreamWriter(req.GetRequestStream(),
System.Text.Encoding.ASCII);
stOut.Write(postData);
stOut.Close();

Так же можно считать ответ назад при помощи метода GetResponse, который позволит Вам читать результирующий ответный поток и делать независимо от того, что необходимо сделать. Можно найти больше информации о классе в:

http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx

7
задан Hamza Yerlikaya 7 October 2009 в 17:17
поделиться

6 ответов

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

13
ответ дан 6 December 2019 в 08:15
поделиться

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

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

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

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

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

5
ответ дан 6 December 2019 в 08:15
поделиться

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

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

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

2
ответ дан 6 December 2019 в 08:15
поделиться

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

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

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

2
ответ дан 6 December 2019 в 08:15
поделиться

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

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

0
ответ дан 6 December 2019 в 08:15
поделиться

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

0
ответ дан 6 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: