Алгоритм работы с картой привязок по обнаруженным маякам

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

Алгоритм работы с картой привязок по обнаруженным маякам

Сообщение =DeaD= » 28 май 2009, 13:31

Здесь вынес обсуждение этого алгоритма из темы: viewtopic.php?f=35&t=6021&start=75

Сейчас накидаю эскиз.

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

Re: Алгоритм построения и работы с картой привязок для навигации

Сообщение =DeaD= » 28 май 2009, 14:09

Что мы будем получать исходя из имеющихся модулей на вход нашего алгоритма:

1. На сколько ориентировочно мы сместились в пространстве относительно предыдущей итерации рассчета своих координат (по тому насколько и в какую сторону и какие включали двигатели или по энкодерам, или по компасу, если выдаём направление, или еще как).

2. Какие маяки видим сейчас вокруг себя (включая вновь принятые в этом качестве) - локальные координаты относительно робота + ID маяка.

Что должны получать на выходе:

1. В каком-то виде текущие координаты (либо относительно маяков, либо глобальные);

Добавлено спустя 1 минуту 31 секунду:
Digit писал(а):Вообще, что такое "детектор", "проверялка" и "распознавалка"? Второе и третье - не одно и то же?

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

Добавлено спустя 23 минуты 11 секунд:
Так, продолжим. Пока будем рассматривать вариант создания карты локаций со связями между ними, которые будем пытаться обсчитать как в игрушке World of Goo - http://www.gametech.ru/cgi-bin/show.pl? ... iew&id=439

Добавлено спустя 6 минут 2 секунды:
Т.е. у нас будет информация о том, какой маяк относительно какого в какой стороне находится, эту информацию мы будем хранить по возможности только для близких маяков.

Одна из самых сложных проблем, которая нас поджидает на этом пути - появление одинаковых маяков.

Пока считаю, что можно попробовать забить на эти грабли, но на будущее есть несколько идей, как с этим бороться:
1. Рассчет суммарной накопленной погрешности, чтобы понимать что это не может быть тот же маяк.
2. Проверка ближайшего окружения - совпадает ли с тем, что мы видели у предыдущего маяка, если да, то скорее всего это тот же маяк.
3. Можно при наличии возможности несовпадения маяка хранить информацию о том что это может быть тот же маяк так же в виде связи, а не отождествлять маяки в базе данных.

Добавлено спустя 2 минуты 32 секунды:
Теперь для черновой версии осталось написать структуру данных которая будет хранить связи между маяками, структуру данных для запоминания самого маяка и прописать математический аппарат (аналогичный использованному в World of Goo), который будет рассчитывать глобальные координаты робота или его относительные координаты от маяков и пути проезда по маякам назад.

+ надо механизм нанесения препятствий на такую карту, которые тоже надо будет хранить в относительных от маяков координатах.

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


Вернуться в Идеи

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20