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

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

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

Сообщение =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: Пора и к зрению с навигацией приступать!

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

2Vorral: Не понял, т.е. если у меня в кадре два одинаковых красных мячика - они оба будут помечены одной циферкой?

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

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

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

Подписал.

Добавлено спустя 20 минут 15 секунд:
Теперь самое интересное - в какой среде разработку можно вести.

2Vorral: Ты под чем сидишь?

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

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

Сообщение AndreiSk » 26 сен 2009, 21:51

Насчет определения расстояния с помощью лазера. В surveyor роботе это сделано так:
==========
1. It can be difficult to locate the reflected laser light because the color and brightness varies greatly with the nature of the reflecting surface. The most certain way we have found to locate the light is to use the frame differencing function with the robot stopped, then turn on the lasers, and the reflections in the differenced frame are easily located. The code in the above mentioned thread works this way.

2. The two laser pointers should generate parallel beams. You can tweak the orientation of the beams somewhat by adjusting the pointer position - you need a 0.050" hex wrench for the set screws. You actually only need a single laser to measure range, as you can just use the offset of the reflected light from the center point of the camera's field-of-view to estimate distance - distance is inversely proportional to the number of pixels the reflecting beam light is offset from the camera center point. You can also use the height of the beam offset from the bottom of the camera view to similarly calculate a distance. Two beams actually give you 2 measurements, so if the beams are not striking at the same distance, you may be able to detect this.
==========
Переведу вкратце.
1. Спектр отражения от лазера меняется в зависимости от поверхности, поэтому решено сделать сравнение изображений. а) остановиться; b) взять изображение; c) включить лазеры; d) взять изображение и вычислить куда светит лазер
2. Чтобы установить расстояние, достаточно одного лазера (у surveryor их два, прим. AndreiSk). Расстояние пропорционально точке куда светит лазер от центра изображения. С двумя лазера будет точнее.
Лично я не использую лазеры, мне шарпы нравятся больше, просто помню что есть возможность вычислить и по лазеру.
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

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

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

Вкл-выкл это банально :) но всё равно спасибо!

Шарпы невозможно точно сопоставить - расстояние до чего мы только что смерили.
Вот скажем видит робот яблоко и хочет померять расстояние до него - камера+лазер проблему решают (нет, колибровка тут тоже нужна, но её ясно как делать), а как быть с шарпом? Хитро калибровать его?

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

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

Сообщение AndreiSk » 26 сен 2009, 22:19

1. Вкл-выкл это банально но всё равно спасибо!

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

2. Шарпы невозможно точно сопоставить - расстояние до чего мы только что смерили.
Вот скажем видит робот яблоко и хочет померять расстояние до него - камера+лазер проблему решают (нет, колибровка тут тоже нужна, но её ясно как делать), а как быть с шарпом? Хитро калибровать его?

Я видел график, можно по V->ADC вычислить расстояние, ну может +/- 1 см. В даташите на шарпы видел.
А что даст информация о расстоянии до конкретной точки на яблоке? Оно же круглое, расстояние плавает.

3. А еще шарп имеет по моему всё равно больший угол зрения, чем лазер?

Конечно больше, я только что померял шарп 10-80см, он видит плоскую деревянную линейку толщиной 25мм в на расстоянии 50 см интервале 45мм, с центром в середине интервала. То есть линейка частично заслонила 45 мм интервал и он частично ее увидел ;)

А еще пытался сделать трехмерное сканирование с помощью сонара и ик-шарпа своего принтера, с расстояния ~30 см. На картинке от сонара было просто видно нечто плоское вблизи и все. А на картинке от шарпа был виден принтер (схематично конечно), и открытая крышка ноутбука, стоящего на принтере. Жаль, картинку не сохранил. С тех пор сонары не люблю :(
Аватара пользователя
AndreiSk
 
Сообщения: 2639
Зарегистрирован: 23 апр 2009, 17:03
Откуда: Москва, Самара
прог. языки: C#

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

Сообщение =DeaD= » 27 сен 2009, 09:27

AndreiSk писал(а):2. Шарпы невозможно точно сопоставить - расстояние до чего мы только что смерили.
Вот скажем видит робот яблоко и хочет померять расстояние до него - камера+лазер проблему решают (нет, колибровка тут тоже нужна, но её ясно как делать), а как быть с шарпом? Хитро калибровать его?

Я видел график, можно по V->ADC вычислить расстояние, ну может +/- 1 см. В даташите на шарпы видел.
А что даст информация о расстоянии до конкретной точки на яблоке? Оно же круглое, расстояние плавает.

Вопрос не в этом был, а в том, как ты убедишься, что смерил расстояние до яблока, а не до стены в 0.5м за яблоком? :)

AndreiSk писал(а):А еще пытался сделать трехмерное сканирование с помощью сонара и ик-шарпа своего принтера, с расстояния ~30 см. На картинке от сонара было просто видно нечто плоское вблизи и все. А на картинке от шарпа был виден принтер (схематично конечно), и открытая крышка ноутбука, стоящего на принтере. Жаль, картинку не сохранил. С тех пор сонары не люблю :(

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

Добавлено спустя 1 минуту 5 секунд:
flyroman писал(а):"2. Не рассматриваем лазерную линию;"

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

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

Сообщение loox » 27 сен 2009, 09:36

Коллеги
Не сочтете ли возможным уточнить задание:
- среда обитания
- возможен ли маяк (контрольный размер)
- разрешена ли комбинация применения информации от других датчиков для выполненя задания
- точнгсти
- есть ли ограничения на использование в.камер, например с328?
loox
loox
 
Сообщения: 326
Зарегистрирован: 26 мар 2008, 12:45

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

Сообщение =DeaD= » 27 сен 2009, 09:42

loox писал(а):- среда обитания

Квартира.

loox писал(а):- возможен ли маяк (контрольный размер)

В каком смысл? В постановке задачи я вроде объявил, что будет работа как по подготовленным маякам (например, [[Q-Code]]), так и по привязке к увиденным объектам.

loox писал(а):- разрешена ли комбинация применения информации от других датчиков для выполненя задания

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

loox писал(а):- точнгсти

Чем точнее научимся ориентироваться, тем лучше.

loox писал(а):- есть ли ограничения на использование в.камер, например с328?

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

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

Сообщение loox » 27 сен 2009, 09:48

Уточните:
- С веб камерами????, разве это не автономные обънеты...
loox
loox
 
Сообщения: 326
Зарегистрирован: 26 мар 2008, 12:45

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

Сообщение =DeaD= » 27 сен 2009, 09:54

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

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

Сообщение frig » 27 сен 2009, 12:51

никто не смотрел в сторону измерения расстояния по типа работы фазового автофокуса? работает быстро, судя по картинкам устроен не сложно, со светосильной оптикой позволит мерять расстояния. к камерам это, правда, особого отношения не имеет :oops: а контрастным методом пускай и дольше но можно даже карту глубины вымерять
frig
 
Сообщения: 1640
Зарегистрирован: 12 фев 2007, 12:25
Откуда: Днепр

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

Сообщение repository » 27 сен 2009, 14:16

А как оно работает?
repository
 
Сообщения: 260
Зарегистрирован: 29 окт 2008, 18:14
Откуда: Химки МО
прог. языки: Java

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

Сообщение =DeaD= » 27 сен 2009, 15:32

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

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

Сообщение EDV » 28 сен 2009, 09:06

Задача навигации по визуальным маякам – ну очень интересная тема. И чем дальше, тем интереснее!

А насчёт закрытости технологии AVM, думаю можно не переживать. Все исходные тексты программ по навигации будут открытыми, закрыт только алгоритм AVM. Хотя, если опыты с навигацией будут удачными, я думаю, мы сможем найти способ взаимовыгодного использования AVM на коммерческой основе. Ну, или кто то из вас предложит ещё более передовой открытый алгоритм, который заменит AVM в открытых исходниках по навигации.

В любом случае я приветствую ваши начинания!

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


Нет вопросов, сделаю порт AVM под Linux.
Аватара пользователя
EDV
 
Сообщения: 1016
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев

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

Сообщение Myp » 28 сен 2009, 09:44

=DeaD= писал(а):Можно с фазовым автофокусом тоже куда-нибудь в другую тему? :)
Где это интересно есть недорогая светосильная оптика...

обязательно в будущем в другой теме.
ибо схема действительно достаточно простая.

широкоугольные объективы с дыркой 1.8, от видеокамер по 100 р. отдают
(а полтос никоновский 1.8 можно б/у за 3 т.р. взять, но это уже ваще супер теле получится)
угол правда не слишком широкий будет, но нам для определения расстояния больше и не надо.
самый простой автофокус сделан из 2х зеркал призмы и специальной микросхемы.
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Пред.След.

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

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

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