roboforum.ru

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

Робот DemoVisionRobot с техническим зрением

Re: Робот DemoVisionRobot с техническим зрением

Levsha128 » 06 июн 2010, 13:31

Я тут немного не в теме, но хочу сказать, смотря на видео, что с одной камерой ничего путного не получится.
Я бы заюзал две камеры и сделал управление по такому алгоритму:
1) Находим объект на обоих камерах
2)С помощью датчиков на манипуляторе определяем текущие сгибы суставов
3)На основе данных о суставах (длина и угол поворота) делаем микромодель мира относительно некой центральной точки(например, центра основания робо-руки)
4)Вычисляем положение объекта относительно камер
5)Привязываем положение камер к микромодели
6)Вычисляем абсолютное положение объекта относительнео центральной точки
7)Инверсной кинематикой высчитываем конечное состояние суставов
8)Делаем проверочку на предмет отсутсвия на "пути" преград и если все ок, то включаем серваки и поехали!


Кстати, по поводу трекинга шара если известно что он не будет слишком быстро двигаться, то советую применить боле "интелектуальный" алгоритм поиска- сначала искать ближе к тому месту, где он был раньше. Вот мысля пришла :D

P.S. Все, начинаю свою систему зрения делать как раз и опробую новую структуру нейронных сетей, основанную на биологическом зрении. Только соотношения амакриновых/горизонтальных/ганглиозных нужно продумать.

Re: Робот DemoVisionRobot с техническим зрением

Angel71 » 06 июн 2010, 14:13

что с одной камерой ничего путного не получится

"ты просто не умееш их готовить" :crazy: 8) пораскинь сам знаешь чем, над тем, что размер шара можно знать заранее.
нейронки это круто, ну раз уж бионикой интересуешься, то может уже сразу замахнёшся на реализацию тысячь слоёв для предобработки и всех микродвижений камерой? а если серьёзно - оооочень громадное количество вычислений в сети с отношениями многиеи ко многим. даже новые soho`вские 6ти ядерные phenom`ы (кста оч даже недорогие) легко загнутся, пытаясь столько обрабатывать. полезно уже задуматься над использованием opencl. у ати нормально с ним работать можно уже начиная с бюджетной 5000й серии (50-60$)

Re: Робот DemoVisionRobot с техническим зрением

galex1981 » 06 июн 2010, 15:05

У меня такое ощущение что распознает шарик оно замечательно - неверно определяет расстояние до него

Re: Робот DemoVisionRobot с техническим зрением

Levsha128 » 06 июн 2010, 19:49

пораскинь сам знаешь чем, над тем, что размер шара можно знать заранее.

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

Да, интересуюсь. Активно изучаю биологические нейронные сети. +Реализовывал несколько коммерческих проектов(распознавание обозначений на железнодорожных вагонах(цифры), антикапча). Сети работают довольно таки быстро и в некоторых случаях существенно обыгрывают традиционные алгоритмы. Самое сложное(что обычно отпугивает новичков)- это обучение можно потратить много времени и не добиться никаких результатов- тут уже как повезет.
замахнёшся на реализацию тысячь слоёв

Это слишком.

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


Кстати, скоро я в в журнале программист http://www.procoder.info/ (я являюсь его создателем(совместно с друзьями- программистами) и главным редактором) хочу опубликовать серию статей касающегося зрению и ИНС.
Последний раз редактировалось Levsha128 06 июн 2010, 20:14, всего редактировалось 2 раз(а).

Re: Робот DemoVisionRobot с техническим зрением

artymen » 06 июн 2010, 19:51

Ну вот мою задачу вполне рационально было бы реализовывать на нейронной сети, но для меня это было слишком черезчур :)

Re: Робот DemoVisionRobot с техническим зрением

Angel71 » 06 июн 2010, 21:22

Levsha128, я не про "слои" как таковые писал. :pardon: просто хз, как назвать всё это разнообразие из различных типов нейронов, групп, путей, полей, ...
Levsha128 писал(а):Кстати, интересный факт: Разрешение глаза человек- 125 МПикселей, но из самого глаза нервных волокон выходит намного меньше - около миллиона, то есть сетчатка "сжимает" информацию в 125 раз.

:oops: а накука больше? в этом же весь смысл предобработки (для подобного вычислительные шейдеры имхо в самый раз). +микродвижения глаз, вообще много инфы добавляется

Re: Робот DemoVisionRobot с техническим зрением

artymen » 07 июн 2010, 11:52

Что твориться в голове у моего киборга, когда он творит продемонстрированное на видео ?
А вот что. Привожу часть кода с интеллектуального уровня управления:
Код: Выделить всёРазвернуть
/* Распознаем объект */
      ct_recognize();
      if (ct_object.found) {
/* Следим за объектом */
         /* Кинематика... */
         determine_object_coords(-(((float)(ct_object.centerX-2))-((float)(IMG_WIDTH))/2.0), -(((float)(ct_object.centerY))-((float)(IMG_HEIGHT))/2.0), ct_object.size);
         bool try_catch = object_in_capture_zone();
         update_servo_pos();
         determine_grip_position(distA, q1a, q2a, q3a, Xn, Yn, Zn);
         next_position(Xn, Yn, Zn, q1a, q2a, q3a, try_catch);

         uint8_t result = reverse_objective(distA, Xn, Yn, Zn, q1, q2, q3);
         switch (result) {
            case RO_OK:      // если объект достижим
               if (try_catch) {   // и если он находится в зоне захвата, то
                  if (grip_catch()) {   // дико кидаемся на него, цапаем, и если сцапали, то
                     reverse_objective(a3, X_BASKET, Y_BASKET, Z_BASKET+35.0, q1, q2, q3);   // вычисляем кинематику для движения на корзину
                     disable_movement_shaper();   // отключаем шейпер (ну а че медлить)
                     move_grip();   // молнией мчимся в корзину
                     init_ms_timer();   // заново инициализируем таймер, т.к. он юзался раньше шейпером
                     wait_ms(1000);      // путь до корзины большой, подождем :)
                     grip_release();      // отпускаем шарик... или палец бедолаги-оператора :D
                     return;         // ну вот и все, the end ;)
                  } else {      // ну а если не удалось сцапать, то
                     grip_release();      // разжимаем наши смертельные челюсти
                     disable_movement_shaper();   // отключаем шейпер
                     init_ms_timer();
                     wait_ms(400);      // ждем, пока массивные зубы вытащатся из окровавленной плоти пальца оператора
                     q2 = q2a;      // возвращаемся в засаду, откуда накинулись
                     q3 = q3a;
                     enable_movement_shaper();   // включаем шейпер, торопитсья некуда, продолжаем охоту....
                  }
               }
               break;
            case RO_TOOFAR:   // если объект далеко, то
               target_orientation(Xn, Yn, Zn, q1, q2, q3);   // тянемся, тянемся до него, авось удастся порвать цепи и вырваться %)
               break;
         }

         move_grip();   // че-то там выше навычисляли, двигаемся туды...
      }

:D
Последний раз редактировалось Vooon 07 июн 2010, 13:43, всего редактировалось 1 раз.
Причина: [code=cpp]!!!

Re: Робот DemoVisionRobot с техническим зрением

=DeaD= » 07 июн 2010, 12:06

А отдельно отлаживал "где мячик?", "хватание" и "тянемся"?
Я так понимаю самое проблемное - это "где мячик"?

Re: Робот DemoVisionRobot с техническим зрением

artymen » 07 июн 2010, 12:25

Да, все верно. "хватание" и "тянемся" я сделал за несколько часов. "где мячик" я отдельно отлаживал последние два месяца, решение этой задачи представлено в самой первой функции приведенного кода :) Этот участок кода я написал за 10 мин., когда все низкоуровневые операции были отлажены по-отдельности.
Последний раз редактировалось artymen 07 июн 2010, 12:36, всего редактировалось 1 раз.

Re: Робот DemoVisionRobot с техническим зрением

=DeaD= » 07 июн 2010, 12:33

Был ли проведен анализ причин погрешностей вычисления координат? Только неправильное выделение контура мячика на картинке?

Re: Робот DemoVisionRobot с техническим зрением

artymen » 07 июн 2010, 12:37

Никакого анализа не было проведено :D Могу лишь сказать, что причин погрешностей дохрена, оттого все так плохо и работает.

Re: Робот DemoVisionRobot с техническим зрением

=DeaD= » 07 июн 2010, 12:49

Вот ничего себе :)

А как же Divide-et-Empera?

Re: Робот DemoVisionRobot с техническим зрением

artymen » 08 июн 2010, 16:27

ну от разделения я бы не получил большой власти ни над одной из них в отдельности

Re: Робот DemoVisionRobot с техническим зрением

=DeaD= » 08 июн 2010, 16:54

Наверное мне уже нет смысла детально описывать как можно было производить отладку и доводку? :)

Re: Робот DemoVisionRobot с техническим зрением

artymen » 08 июн 2010, 17:36

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


cron
Rambler\'s Top100 Mail.ru counter