Сергей Мальцев писал(а):Но я предлагаю сразу замахнуться на ориентирование в произвольной обстановке без специальных маяков, так как задача с известными маяками не составляет особого труда.
Ну если бы у меня в портфолио лежала работа по распознаванию автономеров, то пожалуй я бы тоже сразу замахнулся на это
А так чтобы не стукнуться о непонимание простых вещей - решил сразу заняться более-менее реалистичной задачей, по ходу знакомясь со всеми техническими подробностями и технологиями.
Сергей Мальцев писал(а):Задача состоит в том, чтобы научиться выделять в естественном окружении стабильные особенности, способные выступить маяками. Ими могут быть, например, выявленные с помощью детектора углов - углы, как с каждой световой компоненты, так и с карты глубины. Так же следует рассмотреть возможность выявления маяков из областей однородной закраски, или однородной текстуры. С помощью карты глубины можно выявить расстояние до маяка. В дальнейшем на сайте проекта, я планирую более подробно изложить все рассматриваемые мною подходы с иллюстрациями, это относится и ко всему ниже.
Это у меня тоже есть в планах
Сергей Мальцев писал(а):Что касается навигации по выявленным маякам, и локализации робота в пространстве, то тут уже все есть, за основу достаточно взять технологию как в GPS (Global Position System), т.е. искать точку пересечения сфер, построенных из маяка, радиусом равным расстоянию до соответствующего маяка.
Спору нет, а если еще и маяки обладают направлением, то может быть и одного хватит.
Сергей Мальцев писал(а):В свете вышесказанного, я считаю что на первом этапе следует сосредоточить внимание на 3D реконструкции сцены и научиться выявлять естественные маяки с изображения.
Все в "+".
Сергей Мальцев писал(а):Это хорошая работа, но я считаю, что она несколько рановата. Для отработки алгоритмов зрения робота достаточно двух камер, закрепленных должным образом. А для начального этапа 3D реконструкции вообще достаточно ролика созданного с помощью, например, 3D Max.
В какой-то степени согласен, именно поэтому я и не стремлюсь в том проекте заниматься самой платформой, разве что помогаю в меру сил, но так как проект коллективный - кто-то занимается платформой, кто-то электроникой, кто-то еще чем-то. В результате я планирую иметь возможность получить платформу по разумной цене, на которой можно будет все обкатывать, а взамен дать какие-то свои наработки в системе технического зрения, чтобы платформа не была мертвой.
Сергей Мальцев писал(а):Для выявления маяков, достаточно отдельных кадров снятых одной камерой. Платформа робота для этих задач вещь избыточная, ведь на нее понадобиться потратить довольно много времени, но на решение поставленной первоначальной задачи это никак не повлияет. Я считаю, что всему должно быть свое время. Иначе мы можем потратить много времени на создание платформы, а главная задача так и не будет решена.
В общем я предлагаю, сначала сделать систему навигации на системе тестов, причем вполне реальных, с реальных камер. И только затем создавать платформу. А на следующем этапе перейти к созданию системы распознавания объектов, хотя и для нее нет необходимости создавать платформу, а достаточно тех же тестов.
В какой-то мере я именно так и начал по стереозрению, реально я еще не запускал пару камер на своем ПК.
Сергей Мальцев писал(а):А я все-таки настаиваю, что зрение это единственная проблема. Покажу свое видение платформы и решения остальных задач.
Если в части навигации, то да, почти единственная проблема, но кроме неё есть следующие серьезные проблемы:
1. Картография (составление эффективной карты пространства вокруг);
2. Прокладка маршрутов по этим картам;
3. Учет во всем этом особенностей поверхностей (в снег и воду мы проваливаемся быстро, в болото медленно, по песку ездим медленней, в грязи можем застрять, кусты можем подмять под себя и т.п.);
Сергей Мальцев писал(а):Механическая платформой может быть трехколесная схема, в которой два передних колеса имеют по своему двигателю, а заднее является опорой. Механических проблем для ее реализации не вижу.
В какой-то мере оно есть готовое, но разовое и с непонятными перспективами развития, но в том крупном коллективном проекте я надеюсь в качестве одного из выходов будет тиражируемое решение по разумной цене.
Сергей Мальцев писал(а):Алгоритмическую задачу управления этой механической системой я решал в рамках проекта робота футболиста ? проблем не вижу.
А какие там задачи? Регулирование скорости для движения по нужной траектории?
Сергей Мальцев писал(а):Так же должно быть два манипулятора, тут тоже уже давно все разработано и известно.
Ну не то чтобы сильно все просто, но согласен.
Сергей Мальцев писал(а):Электронная платформа это PC ? самое универсальное и доступное на данный момент решение. Главная причина выбора это возможность расширения различными специализированными PCI картами, такими как DSP карточки или цифро-аналоговые и аналого-цифровые преобразователи, в добавок, можно будет использовать многопроцессорные конфигурации. И еще один бонус, это развивающаяся сейчас многоядерность, пользу которой, думаю, не нужно доказывать. В общем, здесь тоже нет особых проблем.
Полностью в "+".
Сергей Мальцев писал(а):Восприятие речевых команд можно решить с помощью недавно анонсированной IBM библиотеки.
А есть особая нужда? Отрасль развивается довольно стремительно и без нас, пока все сделаем - думаю там будет куча готовых решений.
Сергей Мальцев писал(а):Поведение робота тоже не нужно усложнять. Что должен делать робот? Перемещаться в пространстве и перемещать объекты, по заданным для него задачам.
А вот тут масса проблем. И они местами вылетают в существенные элементы ИИ. Если хотите - накидаю список в несколько важных и непростых проблем.
Сергей Мальцев писал(а):Это все решено в играх. Посмотрите на стратегии, там юниты занимаются именно тем же. Имея опыт в этой области, могу Вас заверить, что решение проблемы не составляет особого труда. Более развернутый ответ могу дать по необходимости.
В играх вы работаете в предопределенном мире, где ничего "нового" случиться не может, а в жизни все не так...
Сергей Мальцев писал(а):Единственное, что я пока не до конца представляю ? это манипулирование объектами. Т.е. я пока толком не представлю, как робот должен решить за какую часть объекта он должен взяться, чтобы переместить его. Но первоначально можно считать, что правильные способы схвата объекта будет показывать человек.
Одна из важных проблем, только немножко не так, вопрос в том - какие элементы являются целым, а какие просто лежат рядом или друг на друге.
Сергей Мальцев писал(а):Полагаю, что на начальном этапе нужно ограничиться только зрением без взаимодействия с другими элементами, так как начинать нужно с малого, а не замахиваться сразу на все. Также в процессе решения задачи станет ясно, нужно ли привлекать другие элементы.
В "+".
Сергей Мальцев писал(а):Еще у меня есть пока интуитивное представление, что задача может быть решена независимо от других элементов.
Смотря какая задача, если определение "где мы" по местным предметам и "3Д-реконструкция", то пожалуй да.
Сергей Мальцев писал(а):Может Вы меня недопоняли, но я тоже предлагаю начать именно с этого, а затем перейти, на следующие задачи.
Понял, но зачем это написал не знаю
Сергей Мальцев писал(а):Как я уже написал выше, я считаю это преждевременным. Тем более что тесты будут вполне реальные, с реальных камер, поэтому решение задачи не имеет отношения к чистой теории. А вот платформа для первоначального решения задачи избыточна.
Первоначальная отработка алгоритмов - можно и на снимках, но как только отработали - запускать в реальную среду, потому как с теми же маяками на 10 снимках все было отлично, запустил в комнату и он начал терять маяки иногда. Или вообще путать. Потому что в реальной работе он сделал больше тысячи снимков с разными освещениями, под разным углом и т.п. Да и просто всех вариантов снимков не предусмотришь.
Сергей Мальцев писал(а):Честно говоря, по крайней мере, для целей навигации в помещениях с ровными полами, не вижу особых проблем в картографировании. Нужно взять регулярную решетку, или просто битовую маску, с определенным шагом. В этой маске значение 1 соответствует непроходимому участку, 0 проходимому. При первоначальной инициализации вся маска заполнена 0. По мере выявления препятствий с помощью стереозрения, и других датчиков, в маску заносятся 1 в местах препятсвий. Таким образом получаем маску проходимости. Для поиска пути по маске нужно использовать алгоритм A*. Все
Не самый эффективный подход, для ровных полов проходит на больших размерах помещений, но любые усложнения.(а вы ведь хотите универсальное зрение?), мне кажется, быстро сведут эффективность метода в ноль.
Простой пример - чтобы сетка была эффективна, я считаю, нужно, чтобы она позволяла проходить роботам размера с человека в естественные проходы - межкомнатные двери
В таком случае при ширине человека 60см, а дверного проема 80см получаем максимальный шаг сетки (впритык) - 10см. При площади помещения порядка 2000кв.м. (какой-нибудь торговый комплекс) имеем размер массива 200'000 элементов.
Кроме того на открытых пространствах (а ведь хотим универсальности) все становится значительно хуже. Картографировать лес таким способом занятие особенно веселое
Сергей Мальцев писал(а):Надеюсь, что у нас сможет получиться плодотворное сотрудничество.
Думаю да