И снова здравствуйте!
У меня возникло огромное желание прояснить вот какой вопрос:
Возможно ли что бы робот, использующий в качестве сенсорной информации только изображение с видеокамеры, был способен самостоятельно проехать из одной комнаты (пункт А) в другую (пункт Б)?
Вот мы и попытаемся ответить на этот вопрос в рамках этой темы.
В качестве робоплатформы я буду использовать радиоуправляемую модель танка с прикреплённой на корпусе видеокамерой, передающей сигнал по радиоканалу.
Если кто-то не знает, как подключить радиоуправление моделью к компьютеру, тогда вот подробное описание:
Как из дешевого китайского танчика (радиоуправляемая модель) сделать робоплатформу для проекта "Автономная навигация робота"
Я подготовил первый вариант исходных текстов программы «Навигатор». Проект состоит из трех частей: драйвер управления роботом, приложение распознавания образов (GUI), и динамической библиотеки «Навигатор». Для компиляции приложения распознавания образов понадобится wxWidgets-2.8.x и OpenCV_1.0. Если у кого-то нет желания разбираться с GUI, то в проекте уже есть скомпилированный EXE-шник распознавателя и вам будет достаточно скомпилировать Navigator.dll, которая содержит алгоритм навигации. Для компиляции Navigator.dll необходима только библиотека OpenCV_1.0. Сборка проекта возможна компилятором Microsoft Visual C++ 6.0 (папка vc6.prj) и компилятором Microsoft Visual Studio 2008 (папка vc9.prj).
Исходные тексты «Навигатора» можно скачать здесь:
http://edv-detail.narod.ru/Navigator_src.zip
Тема по использованию библиотек навигации «Использование Navigator Tool Kit»
А вот что эти «исходные тексты» могут делать на практике:
В двух словах, алгоритм управления пытается выровнять положение башни и корпуса робота на центр самого первого распознанного объекта в списке трекинга и если объект находится далеко, то приблизится, а если слишком близко, то откатится назад.
Вот такие вот у нас с вами стартовые условия.
Дальнейшее развитие алгоритма навигации теперь зависит только от нас