Добавлено спустя 11 минут 33 секунды: Что будем считать уже имеется (построение этих компонент обсуждается в указанной выше теме): 1. Детектор хороших естественных маяков на исходном изображении; 2. Проверялка на то что маяк не рассыпался при перемещении и запоминалка его в банке памяти маяков. 3. Распознавалка имеющихся в банке памяти маяков на изображении полученном с камеры.
Что мы будем получать исходя из имеющихся модулей на вход нашего алгоритма:
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 секунды: Так, жду первых комментов, отличных от "нифига ты тут наворотил"