Пора и к зрению с навигацией приступать!

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

Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 25 сен 2009, 22:34

Вставка для удержания темы в рамках конструктивного русла первого этапа проекта (чего не обсуждаем в этой теме):
1. Не рассматриваем стереозрение;
2. Не рассматриваем лазерную линию;
3. Не рассматриваем обработку видео на платформах отличных от ПК;


Итак - вроде на первое время с механикой и электроникой разделались, пора браться за более развесистые задачи :)

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

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

Предварительный этап предлагается делать под виндой, все кто под линухом - ставят виртуалбоксы, падение производительности порядка 2 раз постараемся компенсировать эффективными алгоритмами.

Первичные простейшие задачи, которые надо будет решить:
1. Построение модели камер и функций преобразования координат (для калибровки);
2. Определялка расстояния на базе камеры + лазерной указки;

Сложная задача А: Глобальная навигация - SLAM в базовом варианте с уникальными маяками (с объявленным интерфейсом по распознаванию маяков - для ориентации в подготовленном и неподготовленном пространстве);

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

Re: Пора и к зрению с навигацией приступать!

Сообщение galex1981 » 25 сен 2009, 22:40

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

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 25 сен 2009, 22:43

Платформу свою по частям подготовил уже в разных вариантах даже, но умудрился при ночных экспериментах сжечь себе импульсный стабилизатор на 6В, 8А :( так что пока жду поступления его по почте - в течение недели должно прийти.

Предварительно платформу буду гонять в трёх вариантах:
1. на гусеничной базе [[OR-MRBT-v2]];
2. на колёсной базе - тамиевский редуктор или модифицированные сервы - см. проекты лайнтрейсера (wiki/%D0%A4%D0%B0%D0%B9%D0%BB:OR-LT-TAMIYA-v1.jpg, wiki/%D0%A4%D0%B0%D0%B9%D0%BB:OR-LT-v2.jpg );

Питание: липоль на 11.1В (3 банки) + импульсный стабилизатор на 6В, 3А для питания контроллеров OR и двигателей\серв + линейный стабилизатор до 9-10В для питания камеры.

Добавлено спустя 2 минуты 29 секунд:
galex1981 писал(а):Антон, где нибудь есть статьи о том как измерять расстояние с помощью камеры и лазерной указки? :oops: Мне действительно эта тема интересна...

Дык это, диана на робоклубе еще описана, ща ссылку дам. Вот:
http://club.roboclub.ru/pmwiki.php?n=Diana.Intro
Там пункт 4 - лазерный дальномер смотри :)

galex1981 писал(а):По поводу участия в проекте: Сейчас прикручиваю модуль TCM8240 к своему LPC2368 и буду с вами...

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

Re: Пора и к зрению с навигацией приступать!

Сообщение galex1981 » 25 сен 2009, 22:45

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

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 25 сен 2009, 22:48

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

Re: Пора и к зрению с навигацией приступать!

Сообщение galex1981 » 25 сен 2009, 22:53

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

Re: Пора и к зрению с навигацией приступать!

Сообщение D1mcon » 26 сен 2009, 00:07

Дособеру робота и присоединюсь к вам. :)
Язык Ада - официально был признан министерством обороны США для создания ПО военной техники
Аватара пользователя
D1mcon
 
Сообщения: 700
Зарегистрирован: 08 фев 2009, 10:13
Откуда: Воротынск
прог. языки: C,C++,C#,Java
ФИО: Дмитрий

Re: Пора и к зрению с навигацией приступать!

Сообщение Ворон » 26 сен 2009, 12:30

к вам вопросы...
1 чем не устраивает луч от лазерной указки, если с нее оптику убрать там уже линейное излучение из кристалла идет,?
2 модулированый сигнал исправит проблемы засветки?..
3 зачем большая мощность??!как я понял, надо же чтоб робот не сшибал препятствия и сообразил как их обойти.. а не снайперов вычислял за пол километра по форме оружия..
4 алгоритм на определене координат точки разве не проще, чем алгоритм определения конца отрезка?
5 ИМХО не демпфированый от движения платформы подвес подобного сканера убьет в принципе идею понять куда светит лазер...
Ворон
 
Сообщения: 1054
Зарегистрирован: 24 ноя 2008, 19:43
Откуда: Казань

Re: Пора и к зрению с навигацией приступать!

Сообщение EdGull » 26 сен 2009, 13:04

1. нет, расфокусрованное.
2. нет, солнце круче.
3. чтобы попытасться пересветить крутое солнце.
4. нет.
Аватара пользователя
EdGull
 
Сообщения: 10211
Зарегистрирован: 28 дек 2004, 20:33
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 26 сен 2009, 14:28

2Антон:
Если ты хочешь начать с использования одной камеры и лазера, опишу быстрый и эффективный способ выделения определённого светового спектра. Для этого понадобится дополнительная переменная, а именно трёхмерная матрица [0..16][0..16][0..16](каждое значение нужно обнулить). Кол-во элементов в матрице, зависит от того, на какую переменную мы будем делить(без остатка). Пример: 256 значений каждой цветовой составляющей(R,G,B), здесь за "рамку" я принял число 16 256/16=16. Теперь проходя всю матрицу изображения, например 320х240, делим(отбрасывая остаток) значения каждого пикселя на 16, т.е. встретили например 24,5,4(RGB) получится 1,0,0. Заходим в в трёхмерную матрицу именно по этим значениям RGB[1][0][0], если там 0(мы в самом начале должны были обнулить всю матрицу), то увеличиваем глобальную переменную X(в начале цикла должна равняться 0) на 1, и выставляем это значение в трёхмерную матрицу, т.е. RGB[1][0][0]:=inc(X), и так же заносим это значение в пустую матрицу 320x240. Делим следующий пиксель,если например он равен 28,3,10(RGB), то при заходе в трёхмерную матрицу RGB[1][0][0], мы уже обнаружим, что там не 0. Берём это значение(пускай будет X1) и выставляем его в матрицу 320x240. В конце можно занести в базу нахождение всех пикселей которые должны войти в спектр лазера(например X1=RGB[16][0][0] в идеале :) ) и все обозначаются единой переменной, типа X1. Так я выделяю фигуры на текущий момент, так что схема рабочая.
Последний раз редактировалось Vorral 26 сен 2009, 14:43, всего редактировалось 2 раз(а).
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение Ворон » 26 сен 2009, 14:40

EdGull писал(а):1. нет, расфокусрованное.
2. нет, солнце круче.
3. чтобы попытасться пересветить крутое солнце.
4. нет.

это про фокус у линии не я отжег)а мне ответили так))излучение коротких кристалов полупроводниковых лазеров(указки)идет по плоскости..
Ворон
 
Сообщения: 1054
Зарегистрирован: 24 ноя 2008, 19:43
Откуда: Казань

Re: Пора и к зрению с навигацией приступать!

Сообщение =DeaD= » 26 сен 2009, 19:21

1. Господа лазерно-линейщики, а не пойти ли вам в другую тему? ;) Мой проект. Сказал сначала указка, значит указка 8) продолжать с линиями потом как два пальца.

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

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 26 сен 2009, 20:39

Это может пригодится почти в любом алгоритме, связанным со зрением :) . Выделить пучок или лазерную линию, таким подходом, можно чрезвычайно быстро, сам проверял.

Добавлено спустя 3 минуты 38 секунд:
Мне лично лазер/лазерная линия не импонируют. Излучение лазера(пускай даже не видимого человеческим глазом) делает робота, крайне заметным, плюс даже лазерная сетка даёт слишком мало(лично для моих нужд) информации о дальности.
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

Re: Пора и к зрению с навигацией приступать!

Сообщение galex1981 » 26 сен 2009, 20:41

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

Re: Пора и к зрению с навигацией приступать!

Сообщение Vorral » 26 сен 2009, 21:04

Сверху же написано - стереозрение. Дёшево и сердито, матрица в 320х240(можно сделать хоть четыре квадрата, чтобы было легче людям с Шарпа переключится :) ) значений расстояния. А дальше наращивать разрешение камер и играться со стереобазой и тем самым увеличивать дальность и получать более точные значения .
Vorral
 
Сообщения: 873
Зарегистрирован: 11 сен 2008, 17:18
Откуда: Москва
прог. языки: Delphi
ФИО: Владислав

След.

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

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

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