roboforum.ru

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

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

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

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

Сообщение galex1981 » 10 апр 2009, 12:12

Насколькоя понимаю аналогия такая, что пазл по кусочкам человек не знает куда какой приложить также как и робот не знает куда приложить какой кусок карты. Аналог того что крупные карты разбиты на мелкие части - карты месности
if(!Operate) Read(pDatasheet);
Аватара пользователя
galex1981
 
Сообщения: 4363
Зарегистрирован: 04 дек 2008, 22:44
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович

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

Сообщение VinsentAoki » 10 апр 2009, 13:25

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

Вы правы. Попробую. Вечером сделаю фоток 50 отдельных элементов пазла так, как их будет видить робот. Напишу программку создания таблицы и сравнения, а там будет видно...
Ну и выложу пяток фоток.
VinsentAoki
 
Сообщения: 29
Зарегистрирован: 04 апр 2009, 19:33
Откуда: Москва
прог. языки: C++, 1С , C#.
ФИО: Алексей

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 раз.
Аватара пользователя
Snable
 
Сообщения: 395
Зарегистрирован: 21 мар 2009, 20:06
Откуда: Город на Неве
прог. языки: GNU C++ with Qt / C# via .NET
ФИО: Александр

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

Сообщение =DeaD= » 10 апр 2009, 16:07

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

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

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

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

Сообщение Digit » 10 апр 2009, 16:27

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

уже в этом пункте проблемы, ИМХО ) Не лабораторные условия съемки, к сожалению
злой полицейский
Аватара пользователя
Digit
 
Сообщения: 3339
Зарегистрирован: 27 ноя 2004, 00:42
Откуда: совсем Москва
ФИО: Григорий

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

Сообщение =DeaD= » 10 апр 2009, 16:33

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

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

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

Сообщение Snable » 10 апр 2009, 16:42

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

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

А насчет пункта 2... Конечно условия не лабораторные, но никто не машает их улучшить - поставить освещение около камеры, может даже "крышку", закрывающую это место от другого освещения для равномерности... Честно говоря его механику я себе представляю очченнь смутно.
Аватара пользователя
Snable
 
Сообщения: 395
Зарегистрирован: 21 мар 2009, 20:06
Откуда: Город на Неве
прог. языки: GNU C++ with Qt / C# via .NET
ФИО: Александр

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

Сообщение =DeaD= » 10 апр 2009, 16:49

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

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

Сообщение demon333 » 10 апр 2009, 17:06

А разве для определения стыкуемости пазлов не нужно их снимать строго по вертикальной оси симметрии самого пазла?А какая погрешность допускается?Или это просто вторичный тест и точность не высока?
Аватара пользователя
demon333
 
Сообщения: 581
Зарегистрирован: 15 авг 2007, 16:54
Откуда: Москва

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

Сообщение =DeaD= » 10 апр 2009, 17:11

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

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

Сообщение demon333 » 10 апр 2009, 17:18

Тогда как насчет линий "уходящих в перспективу"?А есть разница между "помочь девушке собрать" и "собрать самим роботом"?Чей то мне показалось он замахнулся на второе.
Аватара пользователя
demon333
 
Сообщения: 581
Зарегистрирован: 15 авг 2007, 16:54
Откуда: Москва

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

Сообщение =DeaD= » 10 апр 2009, 17:20

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

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

Сообщение demon333 » 10 апр 2009, 17:24

Так я о том и толкую,мало того что они кривые,так при съемке со стороны или под углом их линии вообще исказяться до неузнаваемого.На той фотке с пазлами видно же что сторона пазла бижайшая к фотику шире чем дальняя.
Потому и спрашиваю,это просто добавочный тест на стыковку по общим очертанием выступов и впадин?
Аватара пользователя
demon333
 
Сообщения: 581
Зарегистрирован: 15 авг 2007, 16:54
Откуда: Москва

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

Сообщение =DeaD= » 10 апр 2009, 17:34

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

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

Сообщение TrashVigor » 10 апр 2009, 18:05

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

Добавлено спустя 29 минут 31 секунду:
В принципе если сделать на его борту что то типо канавки, чтобы пазлы можно было как диафильмы укладывать, т.е. берет пазл ложет на сканер) сканирует вкладывает в эту горизонтальную стопочку записывает номер пазлпа где находится. На компе собрать прогу чтобы эти фоты распознавала, а потом по UARTу обратно пазлароботу.
GIRUGAMESH!
Аватара пользователя
TrashVigor
 
Сообщения: 134
Зарегистрирован: 11 июл 2008, 22:43
Откуда: Воронежск
прог. языки: С, Delphi, Asm

Пред.След.

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

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

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