roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 04:14

Часовой пояс: UTC + 4 часа


Правила форума


В этом форуме новые темы не создаются, однако обсуждение допустимо.



Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Автор Сообщение
 Заголовок сообщения: Как оцифровать видео AVR-кой. Схема макетика и исходники.
СообщениеДобавлено: 19 окт 2009, 23:43 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
По просьбе EdGull выкладываю для желающих поизгаляться...

Исходники и хекс для AVR на GCC (пользуюсь версией 20080512) - тупая хваталка с камеры 80х60 пикселей.
Посылает данные через FTDI на комп.
Исходники и экзешник для компа на VB - ловит данные и показывает.

Картинка:
Вложение:
6f377835e4a8.jpg
6f377835e4a8.jpg [ 20.29 КиБ | Просмотров: 108203 ]

Схема:
Вложение:
sch.GIF
sch.GIF [ 15.91 КиБ | Просмотров: 119988 ]


Питание 5 вольт.
Кварцы: на меге - 20Мгц, на FTDI - 6МГц.
Все конденсаторы - 0.1мкф
Резисторы слева направо 1.5к, 470, 470...
два делителя справа - у меня стоят подстроечники на 4к7

ОФФТОПИКОМ в этой теме будет считаться:
- зачем это надо автору,
- на чем и как это сделать будет лучше,
- обсуждение кривизны схемотехники и кода.
( Это я и так знаю :) - делал быстрый макет. )


Частота проца 20МГц, предделитель АЦП - 4.
Получаем оцифровку с периодом 2.6 микросекунды.
Строка видеосигнала - 64 микросекунды (видеоданных меньше)
Строк 252.
Получается порядка 20 точек на строку растра.
То есть, если подходить тупо, то можно получить разрешение
20(ширина кадра)x280(высота) - это неудобно.

Поэтому я делаю выборки по принципу "шахматной доски":
Выборки из строк выбираются со смещением относительно строба.

Вложение:
images.jpg
images.jpg [ 12.03 КиБ | Просмотров: 120891 ]


AVR-ка может выделить на обработку порядка пятидесяти тактов на каждый пиксель.

А вот узнать хотелось бы следующее:
- Что в эти 50 тактов хочется поместить и что туда удастся поместить?


На вопросы по схеме и исходникам отвечу.




Вложения:
Комментарий к файлу: Исходники
Send_to_comp_80x60.zip [72.68 КиБ]
Скачиваний: 323


Последний раз редактировалось Michael_K 13 янв 2010, 16:31, всего редактировалось 2 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 13:06 
Не в сети
Аватара пользователя

Зарегистрирован: 28 дек 2004, 20:33
Сообщения: 10211
Откуда: Тольятти
Skype: Ed_Gull
прог. языки: Bascom AVR Basic
ФИО: Гуль Эдуард Викторович
=DeaD= писал(а):
Ээээ.... в чем? там был поиск мусора, а тут сканирование местности на тему препятствий

вообще-то мусор который мы не можем переехать является препятствием.

Michael_K а что если вместо ИК-подстведки вспышкой от фотоаппарта пыхать? Тогда ближайшие препядствия в независимости от цвета будут белыми пятнами на картинке


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 13:17 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2EdGull: Читер ты :) и нафига вспышку? Она будет как ИК-бампер только (т.е. в зависимости от отражающей способности препятствия работать) + ослеплять будет и кошку и детей. Я бы офигел, если бы у меня фотик по полу гонял и пыхал :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 13:34 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Для ленивых результаты опытов:
Камера телефона 640х480 на высоте 180мм от пола
(и это,по моему, многовато - зависит от размеров робота).
Расстояние до медведя 350мм (что при высоте робота 200, имхо, маловато)
Лазерная указка с новыми батарейками развернута в линию стеклянной палочкой.
(угол небольшой, поэтому на все поле не раворачивает - зато яркость больше)
Лазер - под камерой на высоте 10-15мм от пола. Смотрит чуть вверх.
(прижат к полу и чуть приподнят).
Высота медведя - 150мм, мячика - 70мм, книжки - 100мм

Задания:
1. Найти алгоритмически (не глазами - так и я могу :) ) на картинках лазерную линию.
2. Определить расстояние до объектов.
3. Повторить пункты 1 и 2, переведя картинки в грейскейл.

Картинки приложены:
Изображение
Изображение


Последний раз редактировалось Michael_K 20 окт 2009, 13:42, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 13:41 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Michael_K: Предлагаю забить в этой теме на лазерную линию, раз она всё равно теряется за помехами, а в другой теме можно обсудить алгоритмы для поиска этой линии в кадре.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 14:22 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
Предлагаю забить в этой теме на лазерную линию, раз она всё равно теряется за помехами

Согласен.

Вообще, тема про то, как наиболее эффективно (и для чего)
использовать несколько десятков команд на пиксель для реал-тайм обработки.

Я предлагаю не ограничиваться пылесосами, а рассмотреть и другие задачи.
Например, позиционирование по краю ринга в минисумо, поиск движения (например для того же сумо),
позиционирование относительно маяков или заведомо удаленных объектов, та же линия или команды
закодированные рисунками на полу... - что угодно.
Да хоть градиентно колеса покрасить и заменить энкодеры :)

=Dead= в начале ветки предложил неплохую мысль, только смущает, что камера нацеленная в потолок
уже больше ничего, кроме потолка, не увидит. А все же хотелось бы использовать ее по максимуму.
Если не будет хватать производительности на все одновременно (а ее всегда будет не хватать :)),
можно разбить кадр на зоны: например, в верхней половине кадра ищем движение и маяки,
в нижней - препятствия и линию и т.д.

Интересуют именно легкие налетушные алгоритмы.

Добавлено спустя 22 минуты 58 секунд:
=DeaD= писал(а):
2EdGull: Читер ты :) и нафига вспышку?

Согласен - это перебор. Светодиодного фонарика хватит за глаза.
(результаты опытов приводил).

=DeaD= писал(а):
Она будет как ИК-бампер только (т.е. в зависимости от отражающей способности препятствия работать)

Даже если так - направление на препятствие она определит точнее ИК-бампера.
А если еще и расстояние грубо оценит (не знаю как) пусть даже с точностью десять сантиметров
в "ближней зоне" - это уже будет кое-что.

У нас робот с какой точностью поворачивать может? Пять-десять градусов?
А тормозить? Два сантиметра? Ну вот вам реальное механическое разрешение...


Последний раз редактировалось Michael_K 20 окт 2009, 14:59, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 14:27 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
=DeaD= писал(а):
Myp писал(а):
каждый непрерывный отрезок лазерной линии(белая линия на чёрном фоне) окружаем виртуальным зелёным прямоугольником

Очень хочется увидеть быстрый алгоритм для этой задачи :oops:
Не использующий мой подход с набором чисел :oops:

незнаю про подход с набором чисел (((
наверно там чото скучное и я пропустил))

имеем набор точек на картинке
методом перебора устанавливаем смежные точки, если 2 точки имеют соседние координаты по какой либо оси значит они смежные
типа точка а1 и точка в3 не смежные
а точки а1 и а2 смежные
равно как и а1 и б1 смежные
тогда пусть эти смежные точки образуют виртуальный массив

Вложение:
.JPG
.JPG [ 38.13 КиБ | Просмотров: 13067 ]


массив:
б1
б2
б3
б4
в5
г6
в7

нам надо найти крайнюю левую границу "препятствия"
она будет очевидно столбец 1(мин цифра из правого столбика в массиве)
теперь надо найти крайнюю нижнюю границу "препятствия"
она будет очевидно буква Б(мин буква из левого столбика в массиве)
теперь надо найти длину "препятствия"
она будет очевидно 7 (максимальная цифра из 2 столбика в массиве)
итого первый массив точек от лазера это препятствие Б-1-7

в паузе(или прямо в процессе..?? между АЦП и усреднением строки есть свободные такты? хватит на сравнение 3х чисел и сохранение результата?) сканирования строки сравниваем прошлую строку с текущей
и так далее до конца кадра сравниваем полученную строку с предыдущей
к концу кадра получим массивы смежных точек на картинке
время между кадрами тратим на сортировку точек в массиве чтобы найти координаты начала препятствия и его длину

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

Добавлено спустя 22 секунды:
Michael_K писал(а):
Цитата:
моя цветная минирадиокамера в разрешении 640х480 отлично видит пятно лазера по всей квартире

Подозреваю, что это не камера, а ВЫ видите его на картинке.
Вы свои мозги с процом не сравнивайте - не нужно прибедняться :)

софтинка оч приятная, робореалм называется
с лёгкостью справлялась с отслеживанием лазерной точки по всей квартире
камера дефолтная миникамера видеонаблюдения самая дешовая.
отсюда я делаю вывод что яркость точки достаточна чтобы её увидеть.
однако это говорит только о том что на АВР такое нереально.

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 14:43 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
Цитата:
софтинка оч приятная, робореалм называется

Хм...
А можете попробовать скормить ей картинки "с медведем"?
(в моем сообщении чуть выше) Интересно.

Добавлено спустя 6 минут 17 секунд:
Myp писал(а):
между АЦП и усреднением строки есть свободные такты?

Не очень понял про что...

В конце строки есть свободные такты. Порядка двухсот или трехсот - что-то в таком духе.
Я там из прерывания выхожу в этом примере и кручусь в основном цикле,
но конечно можно (и нужно!) занять проц чем-то полезным.

В конце кадра - много. Там бланки всякие, синхры идут.
Это время хорошо (имхо) использовать для окончательных расчетов,
апдейтов всяких ШИМов, обмена, собственно верхнеуровневого алгоритма
управления роботом и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 15:00 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
вот засунул картинку туда
Вложение:
.jpg
.jpg [ 181.01 КиБ | Просмотров: 12520 ]

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

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

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 15:13 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
=DeaD= писал(а):
В естественном окружении нету полновесной ИК-засветки (иначе бы телевизор от пульта фигово работал ;))


Вы бы еще сказали, что в естествееном окружении нет ЭМ полей,
иначе бы вайфай не работал...
А лампочка накаливания - это что, по вашему?
Мне казалось, что у телевизора фишка в модуляции, разве нет? :)

Добавлено спустя 4 минуты 34 секунды:
Myp писал(а):
вот засунул картинку туда
распознанная линия отрисовалась чёрнобелой полоской

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 15:52 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Модуляция это чтобы не сработал левый сигнал, она не гарантирует передачу сигнала при сильной засветке.
Это всё равно что показывать условный знак человеку, которого только что ослепили "дальним светом" ;)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 16:17 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
Michael_K писал(а):
А что - неплохо. Я думал хуже будет.
Даже на мячике точка поймалась. А вот на табуретке непонятно, почему разрыв...
Ну да ладно.

табуретка под углом потому что
там отражённый сигнал ещё более слабый.



поиск движения тож интересно
было бы интересно узнать вектор движения группы пикселей в кадре.
есть ли быстрый алгоритм для этого???

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 16:22 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Мур: быстрого нет, в целом семейство алгоритмов, решающих эту задачу называется оптикал-флоу.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 16:35 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

Зарегистрирован: 18 сен 2006, 12:26
Сообщения: 18018
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич
оптикал флоу знаю

но мб есть чтонить более дружелюбное к АВР?

_________________
<telepathmode>На вопросы отвечает Бригадир Телепатов!</telepathmode>
Всё уже придумано до нас!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 17:08 
Не в сети
Аватара пользователя

Зарегистрирован: 07 окт 2009, 00:29
Сообщения: 6028
Откуда: СПб
=DeaD= писал(а):
Модуляция это чтобы не сработал левый сигнал, она не гарантирует передачу сигнала при сильной засветке.


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

(Так же и радиоприемник - несмотря на то, что кругом много разных каналов "засветки" выделяет только свою частоту.)

По даташиту у тсопа чувствительность падает всего в восемь раз при изменении уровня общей засветки от нуля до 100 ватт на квадратный метр. (100 ватт _ИЗЛУЧЕНИЯ_ на кв. метр - это, я вам скажу, до фига)
При этом он видит свои 38килогерц с мощностью 4 МИЛЛИватта на кв. метр.

=DeaD= писал(а):
Это всё равно что показывать условный знак человеку, которого только что ослепили "дальним светом" ;)
Некорректное сравнение.


К сожалению, динамический диапазон обычных камер - сильно ограничен, но и в этом случае модуляция сигнала
(моргание подсветкой через кадр) может помочь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как поймать видео на AVR-ке. Схема макетика и исходники.
СообщениеДобавлено: 20 окт 2009, 17:09 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Мур: То что ты просишь - это по определению оптикал-флоу :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 93 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO