roboforum.ru

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

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

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

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

EDV » 24 апр 2011, 17:01

Duhas писал(а):оно заглючивает алгоритм как я понимаю )у меня оно на стене пестрйо распознавало с пару десятков предварительно обученных лиц.. ну в смысле 1 лицо, но находило его сразу в куче мест.. на сколько я помню

Возможно, речь шла о более ранних версиях алгоритма, но начиная с AVM v0.5 алгоритм работает стабильно на любых видах изображений:

Протестировано на 64-рёх объектах ("Amsterdam Library of Object Images" (ALOI)), каждый из которых имел 72 снимка с поворотом на 5 градусов.

На рисунке изображена диаграмма:
Special kind of ROC graph called Decision Error Tradeoff (DET) graph:
On X axis we have False Acceptance Rate (FAR) or False Positive Rate (FPR)
On Y axis we have False Recjection Rate (FRR) or False Negative Rate (FNR)

По оси X (в процентах) не должно было сработать, но сработало;
по оси Y должно было сработать (распознать) но не сработало.

Ложных срабатываний (призраков) меньше 0.1 %.

Кстати, обратите внимание на AVM v0.4 (зелёный график), там ложных срабатываний 42%. В последующих же версиях эта проблема устранена с помощью специальных детекторов частот, контраста, и вертикальных/горизонтальных линий (эти факторы оказывают существенное влияние на ложные распознавания).

Проблема не в ложных срабатываниях, а именно в том что AVM не возможно обучить на высокочастотную текстуру или белый лист/стену. Такие изображения просто не будут распознаваться после обучения.
Вложения
AVM_v0-5_ROC_curves_obj_64.png

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

EDV » 25 апр 2011, 22:09

Робот прошел поворот в автономном режиме "Navigation by map".


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

EDV » 29 апр 2011, 23:09

Автономная навигация робота (по визуальным маркерам) от спальни до залы.


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

EDV » 03 май 2011, 13:24

Небольшой анонс.
В скором времени планируется «выход в свет» новой версии AVM Navigator v0.7 plugin.
В новой версии будут добавлены два режима: "Marker mode" и "Navigate by map".

Marker mode

Изображение

Режим «Marker mode» обеспечивает формирование навигационной карты в автоматическом режиме путём разметки окружающего пространства «маркерами». Вам всего лишь необходимо будет вручную провести робота, вдоль какого либо маршрута. Эту процедуру желательно будет повторить несколько раз подряд для хорошей детализации навигационной карты.

Navigation by map

Изображение

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

Изображение

Для внешнего управления режимом "Navigate by map" будут добавлены новые переменные:

NV_LOCATION_X – текущее местоположение, X координата;
NV_LOCATION_Y - текущее местоположение, Y координата;
NV_LOCATION_ANGLE – горизонтальный угол робота (азимут, в радианах);

Целевая позиция на карте навигации
NV_IN_TRG_POS_X – целевая позиция, X координата;
NV_IN_TRG_POS_Y - целевая позиция, Y координата;

NV_IN_SUBMIT_POS – подтверждение целевой позиции (значение должно быть установлено из 0 в 1 для активизации).

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

Scorpio » 03 май 2011, 16:50

Маркеры ставятся автоматически в местах поворотов? Карта расширяется автоматически по мере прокладки новых маршрутов? В каких единицах измеряются координаты X,Y и как вычисляются расстояния?

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

EDV » 03 май 2011, 22:28

Маркеры ставятся автоматически в местах поворотов?

Постараюсь вкратце объяснить, как работает локализация.
Робот устанавливает «пространственные» маркеры (происходит запись центральной части изображения с ассоциированными данными в дерево поиска AVM). Данные маркеров (которые хранятся в AVM) содержат горизонтальный угол (азимут), длину пути от начала координат и X, Y координаты местоположения (относительно исходной позиции, откуда робот начал построение карты). Информация маркерных данных основана на прослеживании перемещений маркеров в кадре (горизонтальное смещение даёт азимут, а изменение размеров/масштаба используется для измерения пройденного пути). Обобщение всех данных, принадлежащих распознанным маркерам во входном (текущем) изображении, даёт текущее значение азимута и длинны пройденного пути. Если мы располагаем информацией о направлении движения и длине пройденного пути от предыдущей позиции, а так же знаем X, Y координаты предыдущей позиции, тогда мы можем рассчитать следующие координаты текущей позиции. Эта информация будет записана в новый маркер (хранимый в AVM) который будет создаваться для неизвестного (нового) изображения, полученного из видеокамеры и т.д.

Множество маркеров внутри AVM даёт карту местоположений (робот видит маркеры и определяет своё местоположение).

Таким образом помечаются не только «повороты», а все картинки/изображения которые робот видел по маршруту. Алгоритма AVM буквально «зохавывает» пространство.

Карта расширяется автоматически по мере прокладки новых маршрутов?

В карте нет такого понятия как «новые» и «старые» маршруты. Маршрут прокладывается по предварительно сформированной навигационной карте от текущего местоположения робота до целевой позиции, выбранной пользователем. Для этого программа вначале «решает» лабиринт, затем аппроксимирует точки маршрута к маркерам, записанным в карте, после чего начинает управлять роботам, направляя его на первую промежуточную точку маршрута (большой красный круг). Как только промежуточная точка достигнута, выбирается направление на следующую точку маршрута, и т.д. пока не доедем до целевой позиции (большой зелёный круг). Чем дальше будем проезжать в режиме “Marker mode” от исходной (стартовой) позиции, тем больше (в геометрическом отношении) будет становиться карта навигации. Для повышения детализации карты (в особенности поворотов), необходимо проходить маршрут (или части маршрута) несколько раз, а затем сохранять карту на диск (желательно под разными именами, что бы можно было корректировать обучение). Так же хочу обратить внимание, что запись в карту навигации происходит так же и в режиме «Navigate by map». Так что если по ходу следования встретятся «новые виды» из камеры, то они так же будут занесены в память AVM (так как вся навигация/локализация построена именно на «зрительной» памяти, режим навигации не может ограничиваться только картинками, полученными в режиме «Marker mode»).

В каких единицах измеряются координаты X,Y и как вычисляются расстояния?

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

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

boez » 03 май 2011, 22:58

Хм. Задумался о том, как бы эти коэффициенты перевода не подобрать, а вычислить. И как-то не получается - и вообще пришел к интересному выводу, что движение робота по коридору шириной 2 м со скоростью 1 м/с неотличимо от движения по геометрически подобному коридору шириной 4 м с скоростью 2 м/с. Вроде как нету у камеры способности определять линейные размеры, только угловые... К чему же привязаны эти относительные единицы при навигации?

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

RootAdmin » 03 май 2011, 23:21

Энкодеры?

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

EDV » 03 май 2011, 23:28

Хм. Задумался о том, как бы эти коэффициенты перевода не подобрать, а вычислить...

Вполне вероятно, как уже правильно было отмечено: чем ближе к камере находятся предметы – тем быстрее они движутся в кадре. Так что геометрически карта навигации не обязательно будет совпадать с фактической топологической картой (естественно будут погрешности). Так что все эти координаты очень приблизительные. Ну так задача была не сверх точную кату получить, а разработать способ автономной навигации робота по карте визуальных привязок. И как не странно, всё получилось :oops:
Последний раз редактировалось EDV 03 май 2011, 23:29, всего редактировалось 1 раз.

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

=DeaD= » 03 май 2011, 23:29

Зачем энкодеры? Достаточно показать калибровочную таблицу фиксированного размера роботу на расстоянии 1 метр.

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

boez » 03 май 2011, 23:44

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

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

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

=DeaD= » 03 май 2011, 23:52

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

И много народу знает, какая у их вебкамеры матрица размером и какое фокусное? ;)
Надо опираться на то, что про камеру вообще ничего не известно, кроме того что она есть :D

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

boez » 04 май 2011, 00:16

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

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

RootAdmin » 04 май 2011, 01:34

Вращение камеры относительно шасси не предусмотрено? Алгоритм "остановился - осмотрелся"? Потолок (пол) - тоже может быть ориентиром.

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

=DeaD= » 04 май 2011, 07:26

Вращение камеры сейчас вроде только при старте.


cron
Rambler\'s Top100 Mail.ru counter