Автономная навигация робота

Здесь расположены обсуждения и проекты, которые с точки зрения администрации форума представляют наибольший интерес.
Правила форума
В этом форуме новые темы не создаются, однако обсуждение допустимо.

Re: Автономная навигация робота

Сообщение EDV » 08 июн 2009, 16:20

Виталий писал(а):Это проблема вашего робота, а не разрешения. У него просто плохое управление.

Поставьте более широкоугольный объектив вот и все дела.

Ну хорошо, с поворотами согласен, а с маяками как быть? Ведь на разрешении 320x240 маяков может и вовсе не оказаться (изображения слишком мелкие и их окошком 80x80 не распознать), а вот на 640x480 напротив пригодных фрагментов для распознавания, размером от 80 пикселей может оказаться в достаточном количестве.

=DeaD= писал(а):То ли я туплю сегодня, то ли что, а как 320х240 влияет на маневренность и т.п.?
Ну если взять и растянуть изображение до 640х480 с размытием - что поменяется принципиально?

Добавлено спустя 42 секунды:
Виталий писал(а):Это проблема вашего робота, а не разрешения. У него просто плохое управление.
Поставьте более широкоугольный объектив вот и все дела.

Да тут даже не ширик нужен, а логика :) Как-то же 640х480 нужного угла снимается? Просто не надо 320х240 из середины кадра 640х480 вырезать, а надо сплюснуть 640х480 в 2 раза по обоим измерениям.


А текстуры от увеличения c 320x240 -> 640x480, не пострадают что ли? Распознавание маяков за уникальные текстуры цепляется. Так что изображение должно быть достаточно детальным.
Последний раз редактировалось EDV 08 июн 2009, 16:27, всего редактировалось 1 раз.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 08 июн 2009, 16:24

А откуда окошко именно 80х80 пикселей взялось? Почему нельзя 40х40 пикселей смотреть?

Добавлено спустя 49 секунд:
Принципиально вряд ли что-то поменяется, к тому же по опыту с этой радиокамеры как раз реальное изображение 320х240 идёт, всё остальное - примерно того же качества, что 320х240 развернуть в 2 раза :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 08 июн 2009, 16:32

> А откуда окошко именно 80х80 пикселей взялось? Почему нельзя 40х40 пикселей смотреть?

Это самый оптимальный ключевой размер изображения для алгоритма AVM. Размер 40x40 ещё возможен, но будут ощутимые потери по быстродействию.

Ладно, уговорили, попытаюсь ещё раз поискать маяки на разрешении 320x240.
Посмотрим, что получится.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 08 июн 2009, 16:49

как это при 40х40 возникнут потери по быстродействию? Вроде качество распознавания может ухудшиться, а быстродействие наоборот может только увеличится?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 08 июн 2009, 17:42

Ну а если изображение одной и той же площади на фрагменты разбить, где фрагментов больше окажется там, где размер одного фрагмента 80x80 или там где 40x40?

А если сканировать окошком с фиксированным шагом (к примеру 16 пикселей) где окошек больше поместится (естественно там, где размер окошка 40x40)?

Поэтому размер наименьшего (ключевого) изображения, которое может быть распознано, значительно влияет на время поиска.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 08 июн 2009, 18:02

EDV писал(а):Ну а если изображение одной и той же площади на фрагменты разбить, где фрагментов больше окажется там, где размер одного фрагмента 80x80 или там где 40x40?

Откуда ж оно "одной и той же площади", если у нас вместо картинки 640х480 будет 320х240? ;)

EDV писал(а):А если сканировать окошком с фиксированным шагом (к примеру 16 пикселей) где окошек больше поместится (естественно там, где размер окошка 40x40)?

Если фиксирован шаг 16 пикселей - на изображении 320х240 как раз меньше поместится фрагментов 40х40, чем на 640х480 фрагментов 80х80 ;)

EDV писал(а):Поэтому размер наименьшего (ключевого) изображения, которое может быть распознано, значительно влияет на время поиска.

Если не менять кадр и оставить 640х480 - конечно, а если менять? ;)


то будет быстрее! отвечаю! 8)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 10 июн 2009, 10:00

Ну что же, AVM SDK v0.5 доступны, можно попробовать поменять значения ключевого размера изображения в примере с 80x80 на 40x40 и посмотреть что получится (по быстродействию).

AVM_SDK\samples\src\RcgExample\RcgExample.cpp
Код: Выделить всё
   CvRect InterestArea;
   InterestArea.x = 84;
   InterestArea.y = 38;
   InterestArea.width  = 80;
   InterestArea.height = 80;
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 10 июн 2009, 17:04

Собирать под чем?
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 10 июн 2009, 18:08

Возможна сборка одним из двух компиляторов, проекты:
AVM_SDK\samples\vc6.prj\AVM_prj.dsw для Microsoft Visual C++ 6.0
AVM_SDK\samples\vc9.prj\AVM_prj.sln для Microsoft Visual Studio 2008
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 10 июн 2009, 20:17

Понял, будем ставить :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение =DeaD= » 28 июн 2009, 09:12

Я тут пока в теорию для этой задачи погрузился, практику пока за кадром чуток оставил.

В общем нам нужны SLAM-алгоритмы и фильтр Калмана. Сейчас читаю что и как. Фильтр Калмана вообще в задачах навигации безумно крутая штука - используется везде где только можно - и в определении своих координат по спутникам (а у нас будет - по визуальным маякам) и в фильтрации показателей гироскопа+акселерометра и еще в куче мест. И главное - ему не надо накапливать информацию при стоящем роботе, ему достаточно на ходу видеть маяки с какой-то там точностью.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 29 июн 2009, 10:20

Для прослеживания (tracking) распознанных объектов в AVM я использую «Condensation Algorithm» в его документации пишут, что он работает более эффективно, чем фильтр Кальмана.

У нас сейчас на работе аврал (подходят сроки сдачи проекта), так что как попустит, я продолжу активно работать над темой навигации.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 29 июн 2009, 11:20

Дык трекинг объекта на кадре - это одно, а задача отслеживания состояния системы в общем виде по наблюдениям в общем виде - совсем другое :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Автономная навигация робота

Сообщение EDV » 21 авг 2009, 08:52

На работе немного попустило, так что можно продолжить тему навигации.
И так, вот что у меня получилось с маяками:



Только быстродействие пока что слабоватое.
Демонстрационную версию вместе с исходными текстами программы я разместил здесь:
http://edv-detail.narod.ru/Navigator_Tool_Kit.zip

Алгоритм выделения маяков описан здесь:
Navigator_Tool_Kit\include\PatternRecognition.h

Метод класса iPatternRecognition:
Код: Выделить всё
// Поиск маяков
iPatternFound* GetBeacons(IplImage* apImage);


Для сборки проекта можно воспользоваться одним из компиляторов:
Navigator_Tool_Kit\samples\vc6.prj\Samples.dsw - для Microsoft Visual C++ 6.0;
Navigator_Tool_Kit\samples\vc9.prj\Samples.sln – для Microsoft Visual Studio 2008.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

Re: Автономная навигация робота

Сообщение =DeaD= » 21 авг 2009, 11:16

Как-то очень странно маяки выделяются, а они проверяются на смещения? Выложи плиз фотку качественную где номера выделенных маяков нормально читаются, я тогда смогу сказать о чем я.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Пред.След.

Вернуться в Золотой фонд

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и гости: 0