roboforum.ru

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

i-sobot: управление с компа

Re: i-sobot: управление с компа

galex1981 » 10 апр 2009, 12:12

Насколькоя понимаю аналогия такая, что пазл по кусочкам человек не знает куда какой приложить также как и робот не знает куда приложить какой кусок карты. Аналог того что крупные карты разбиты на мелкие части - карты месности

Re: i-sobot: управление с компа

VinsentAoki » 10 апр 2009, 13:25

=DeaD= писал(а):Очевидно, что информация с камеры будет нечеткая и даст кучу вариантов какие кусочки можно попробовать к каким пристыковать. Поэтому я и прошу - раскидайте паззл, сфоткайте и предложите на форуме кому-то сказать по фотке что к чему надо пристыковать попробовать.

Вы правы. Попробую. Вечером сделаю фоток 50 отдельных элементов пазла так, как их будет видить робот. Напишу программку создания таблицы и сравнения, а там будет видно...
Ну и выложу пяток фоток.

Re: i-sobot: управление с компа

Snable » 10 апр 2009, 16:04

Запрограммировать такое будет не легко... Но реально) Это задачка уровня всероссийской олимпиады для школьников. Как-то на подготовке решал подобную. Тут появилось пара идеек по алгоритму - может поможет)

1. В таблице надо хранить не кусочки паззлов, а их части - то есть 4 стороны, естественно не забывая вешать к ним id кусочков.
2. Снимать кусочки на контрастном монотонном, относительно паззла фоне, тогда будет легко отличить паззл.
3. Возможно хранить даже битовые маски паззлов, тогда:
4. Проверку паззлов на стыкуемость можно будет организовать простой и быстрой операцией AND, которая будет равна 0 (в идеале, а реально близкой к нулю) при возможности состыковать детали. Обязательно записывать уровень отличия.
5. Организовать "паззл" в виде "динамической сетки" (уже не помню как это правильно называется), где каждый элемент имеет соседей слева, справа, сверху, снизу, либо не имеет с 1-2 сторон.
6. При возникновении неоднозначностей в дереве, можно на месте неоднозначностей (на основе уже записанных уровней отличия) произвести проверку по цветам.
7. Ещё что-то
8. Profit! :good:

PS: Этот алгоритм впринципе можно оптимизировать донельзя... Например использовать сжатые битовые маски (чё-то типа mip-mapping'a) - тогда можно будет очень быстро отсекать заранее неверные варианты, или (при даже по суммам "1" или "0", что сложнее)
Последний раз редактировалось Snable 10 апр 2009, 16:09, всего редактировалось 1 раз.

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 16:07

Snable писал(а):Запрограммировать такое будет не легко... Но реально) Это задачка уровня всероссийской олимпиады для школьников.

Не надо путать чисто задачу программирования и задачу управления механической системой, которая в отличие от ПК при переборе в 100'000 итераций просто развалится, а потребитель решения уже забудет что когда-то недавно заказывал такое.

PS: Спортивное программирование - конечно рулит, но не везде :)

Re: i-sobot: управление с компа

Digit » 10 апр 2009, 16:27

Snable писал(а):2. Снимать кусочки на контрастном монотонном, относительно паззла фоне, тогда будет легко отличить паззл.

уже в этом пункте проблемы, ИМХО ) Не лабораторные условия съемки, к сожалению

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 16:33

Snable писал(а):...
PS: Этот алгоритм

А вообще это не алгоритм, это мысли вслух, до алгоритма ему еще пахать и пахать.

Re: i-sobot: управление с компа

Snable » 10 апр 2009, 16:42

Решил, блин, идеями поделиться... Уже загрузили :lol:
Тут появилось пара идеек по алгоритму - может поможет)

Имелось ввиду алгоритм, созданный на базе этих идей.

А насчет пункта 2... Конечно условия не лабораторные, но никто не машает их улучшить - поставить освещение около камеры, может даже "крышку", закрывающую это место от другого освещения для равномерности... Честно говоря его механику я себе представляю очченнь смутно.

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 16:49

2Snable: Самые грабли начинаются там, где мы не понимаем чего сюда конкретно может подойти, когда в этот фрагмент с разной вероятностью успеха может вписаться и тот и этот фрагмент. А тут еще и освещение играет - поймали блик и не понимаем что этот фрагмент сюда подходит, поймали кривое неравномерное по полю освещение и не видим что эти два фрагмента стыкуются и т.п. Короче будет пример фоток - можно будет о чем-то говорить :) а так теории можно много написать, но практика - она обычно имеет совершенно неожиданные грабельки :)

Re: i-sobot: управление с компа

demon333 » 10 апр 2009, 17:06

А разве для определения стыкуемости пазлов не нужно их снимать строго по вертикальной оси симметрии самого пазла?А какая погрешность допускается?Или это просто вторичный тест и точность не высока?

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 17:11

Что такое "ось симметрии самого паззла" - фрагмента или собранного пазла? Если фрагмента - то для съемки паззла из 300 кусочков надо их сначала разложить, а потом сделать 300 снимков? Нет, конечно это можно, только это называется тогда не "помогать собирать паззл", а собрать его роботу самому :)

Re: i-sobot: управление с компа

demon333 » 10 апр 2009, 17:18

Тогда как насчет линий "уходящих в перспективу"?А есть разница между "помочь девушке собрать" и "собрать самим роботом"?Чей то мне показалось он замахнулся на второе.

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 17:20

Чего-то я не помню в паззлах прямых линий вообще :)

Re: i-sobot: управление с компа

demon333 » 10 апр 2009, 17:24

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

Re: i-sobot: управление с компа

=DeaD= » 10 апр 2009, 17:34

Я бы пока тесты вообще не классифицировал, а попробовал на тестовых кадрах человеком разобрать что к чему :)

Re: i-sobot: управление с компа

TrashVigor » 10 апр 2009, 18:05

Ну эт задачка, похожая братьям Райт собрать боинг. Для начала бы сделал свои пазлы чернобелые, скажем на фотобумаге распечатай какое нибудь слово, или даже букву 76 шрифтом. Пореж на квадратики или прямоугольники. И вообще лучше алгоритм составить, разбить на этапы и каждый прорабатывать, так будет видно куда двигаться.

Добавлено спустя 29 минут 31 секунду:
В принципе если сделать на его борту что то типо канавки, чтобы пазлы можно было как диафильмы укладывать, т.е. берет пазл ложет на сканер) сканирует вкладывает в эту горизонтальную стопочку записывает номер пазлпа где находится. На компе собрать прогу чтобы эти фоты распознавала, а потом по UARTу обратно пазлароботу.


Rambler\'s Top100 Mail.ru counter