roboforum.ru

Технический форум по робототехнике.

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

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

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

Vorral » 07 дек 2009, 16:55

Я сейчас именно этим и занимаюсь. Обрабатывать же видео начал ещё раньше, так как для этого нужны только вебкамеры(до них я обрабатывал стереокартинки из интернета, тут не нужны даже вебкамеры :) ), само шасси поначалу не важно. И всё что я говорил было основано на собственном опыте работы с видео. ИМЕННО по этому я сразу указал на то что название темы никогда не будет выполнено. ИМХО: Более того с каждым месяцем, а в будущем и годами, проходя через серии не удачных опытов вы не сможете реализовать тему топика(я имею ввиду построить реальную автономную навигацию, без заранее определёных маяков/меток, и с неотъемлимыми частями такой навигации, как определения координат робота и наличия карты). Если наконец не последуете моему совету и не будете использовать дальномеры. Хотя бы на основе лазерной указки.

При этом мне наоборот хотелось бы, чтобы я был не прав(так как и мне было бы от этого лучше). Но к сожалению то, с чем столкнулся я, в процессе работы, указывает что моё ИМХО всё так сбудется.

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

Michael_K » 07 дек 2009, 17:01

Ну не знаю, как кто, а я умею передвигаться и без карты в голове и без знания о своих координатах :)

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

=DeaD= » 07 дек 2009, 17:18

2Vorral: Принципиальных проблем нет, путь я уже указал, надо просто дофига всего сделать. Начинать скорее всего будем с ИК-дальномеров.

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

Vorral » 07 дек 2009, 17:33

>Ну не знаю, как кто, а я умею передвигаться и без карты в голове и без знания о своих координатах
Я тоже и что(точнее всё это есть, но на каком то подсознательном уровне)? В железе сможешь повторить? И ещё пробовал играть в трёхмерную стрелялку сначала в 2D(на обычном мониторе, как играют миллионы геймеров по всему миру), а потом и в 3D(на специальном мониторе или проекторе, ну или шлеме)? Если бы пробовал многое понял бы об ориентировании человека в пространстве(пускай на примере виртуального пространства) и где мозгу проще ориентироваться(и при этом на несколько порядков!).
А я хочу реализовать навигацию именно в железе, и при этом возникло много проблем, которые я уже описывал. Предлагаю сфокусироваться на этих/других проблемах. Есть какое то третье решение, давайте возмём его, кто против. Ведь главное результат и как его достичь с помощью данных о расстояниях + Optical Flow я знаю. Есть другие идеи? Я например с удовольствием выслушаю. И хватит постоянно отвлекаться к теме человека, ведь НИКТО из нас не может утверждать(даже на своём примере) как и что происходит в нашем мозге, мы лишь косвенно судим об этом, при чём очень часто как выясняют наши учёные ошибочно. :)

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

EDV » 17 дек 2009, 12:19

Решил я тут на днях «двойников» этой темы в англоязычной части Интернета понаделать:

Trossen Robotics, Robot-Forum.com, Society Of Robots ...

Хочется мнений всяких разных побольше услышать :)

Вот только с японскими форумами по робототехнике (которые на английском), пока что-то туговато. Нашел тут один, но там, похоже, просто игрушки обсуждают: Robot-japan.

Может, кто из вас знает больше о японских форумах робототехники, хотелось бы ссылки на них получить.

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

EDV » 05 янв 2010, 11:20

Новогодние выходные не прошли напрасно и вот результаты:



Итак, что показано в ролике
Устанавливаем робота в контрольной точке №1 и даём указание следовать в точку №0. Робот начинает осматриваться по сторонам, и когда видит ворота, которые соответствуют маршруту №0, начинает двигаться по коридору из «ворот» до контрольной точки №0. В контрольной точке №0 робот останавливается. Тогда роботу даётся указание следовать в контрольную точку №1, робот опять начинает осматриваться, находит ворота соответствующие маршруту №1 и возвращается обратно в точку №1.

Изменения
В новой версии алгоритма навигации, область данных ворот содержит весовые коэффициенты для семи маршрутов, которые указывают, насколько важны данные ворота для каждого конкретного маршрута. В нижней части экрана добавлен индикатор «горизонта», который показывает, в каком направлении необходимо скорректировать движение робота для дальнейшего движения по маршруту. Область ворот окрашена в синий цвет, если эти ворота не участвую в данном маршруте (весовой коэффициент 0) и более тёплые цвета (заканчивая желтым цветом) показывают градацию «важности» ворот в текущем маршруте.

Процедура обучения на маршрут
Для обучения необходимо в режиме установки ворот выбрать маршрут, на который будет обучаться робот и медленно (местами катаясь назад - вперёд), управляя роботом вручную, показать маршрут (ворота устанавливаются автоматически). В конце маршрута необходимо нажать на кнопку «контрольная точка» и робот, вращаясь несколько раз на одном месте, пометит текущее местоположение как контрольную точку.

Обновил программный пакет «Навигатор», так что если кому интересно, можете сами попробовать:
http://edv-detail.narod.ru/Navigator_src.zip

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

=DeaD= » 05 янв 2010, 12:10

А повысить точность AVM в плане определения координат и масштаба образа пока не планируется? :oops:

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

=DeaD= » 05 янв 2010, 19:32

А насколько тяжело будет для памяти хранить еще и исходные изображения?

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

EDV » 05 янв 2010, 19:51

Повысить точность в плане определения координат и масштаба образа используя алгоритм AVM навряд ли получится в виду специфики алгоритма, для этого придется разработать специальный «особо точный» в отношении координат местоположения и размера объекта метод. Такой метод будет удобно использовать в производстве видеоэффектов (монтаж реальность + виртуальное видео), местоположение отслеживаемых объектов будет определяться с высокой точностью, никаких рывком и подёргиваний, но такой метод уж точно не сможет работать в реальном масштабе времени.

В следующей версии алгоритма AVM я планирую увеличить количество хранимых образов, которое алгоритм AVM сможет обрабатывать в реальном масштабе времени. К слову, для того, что бы в ролике робот смог съездить туда и обратно AVM запомнил 14 тысяч образов.

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

Michael_K » 05 янв 2010, 20:01

=DeaD= писал(а):А повысить точность AVM в плане определения координат и масштаба образа пока не планируется? :oops:

EDV писал(а):Повысить точность в плане определения координат и масштаба образа используя алгоритм AVM навряд ли получится

Понимаю, что не вполне в рамках вашей задачи, но все же:
А нельзя ли выдумать (сгенерировать, изобрести) такие специфические образы (искусственные маяки),
на которых ваш алгоритм покажет более высокие скорости и/или точности?

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

EDV » 05 янв 2010, 20:09

Нет, не получится. Алгоритм AVM (в плане определения координат объекта) создан не для того чтобы быть точным, а для того чтобы быть быстрым и распознавать как можно большее количество образов.

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

=DeaD= » 05 янв 2010, 20:19

2EDV: Не понимаю, как он может сильно тормозить? Если мы распознали образ - можно же быстро уточнить его координаты и масштаб?

Добавлено спустя 48 секунд:
Можно выдать из AVM исходную картинку распознанного образа, чтобы я попробовал имея картинку и примерные координаты и масштаб вычислить точные координаты и масштаб?

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

Vorral » 05 янв 2010, 20:22

>Если мы распознали образ - можно же быстро уточнить его координаты и масштаб?
ИМХО: В матрицах AVM уже потерянна(сокращенна) точная информация, придётся проходится по картинке повторно.

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

=DeaD= » 05 янв 2010, 20:45

Что значит проходиться повторно? А что с чем сверять то? Давай дождёмся ответа автора :)

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

EDV » 05 янв 2010, 21:15

Можно попробовать сканировать область изображения в окрестности распознанного объекта методом Read и выбрать ту область, у которой максимальное значение схожести (Similarity).

Код: Выделить всёРазвернуть
// Associative memory class for integer 32-bit data
class CvAssociativeMemory32S {
         ...

   // Reading from associative memory cell (associative base)
   //
   // Notes: aInterestArea - interest area for object searching;
   //        apObjRect     - rectangle where object found;
   //        appData       - pointer to the data of associative cell;
   //        apIndex       - unique index of associative base;
   //        apHitCounter  - number of hitting to associative base;
   //        apSimilarity  - similarity of the interest area to an object (0 ... 1);
   //        aTotalSearch  - flag of the total search until end level of associative memory.
   bool Read(CvRect aInterestArea, CvRect* apObjRect, long** appData,
            uint64* apIndex = NULL, uint64* apHitCounter = NULL,
           double* apSimilarity = NULL, bool aTotalSearch = false);
        ...
}


Если есть желание, можете поэкспериментировать, после того как метод ObjectRecognition или ObjectTracking вернёт вам координаты объекта, дополнительно поискать более точные координаты объекта, сканируя окошком (областью интереса) в окрестности с разным масштабом методом Read.

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


Rambler\'s Top100 Mail.ru counter