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

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

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

Сообщение Michael_K » 10 июн 2010, 19:42

Я ж неск страниц уже назад писал - резюк в параллель напаиваешь и все.
В аналоговой серве ПД регулятор, резюками настраивается вполне.
Она будет медленнее к нужной позиции подъезжать и "мягче" станет.

По поводу железки... и диплома...
Сам защищал диплом с реальным проектом (для завода какой-то счетчик делал)...
Так там комиссия все больше потрогать норовила и единственный вопрос был -
"а от батареек будет работать" :)

Просто потому что основная масса принесла "чертежи-расчеты", естественно, по ним погонять можно,
да и не въедешь с ходу чего там да как... А в железке-то все на виду...
(Это я уже из аспирантского опыта заседаний в комиссиях...)

И даже если видишь косяки, то все равно понимаешь, что чел старался, руками делал, отлаживал...
А не тупо распечатал из двух с половиной книжек...
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение artymen » 10 июн 2010, 20:29

Michael_K, я тоже несколько страниц сказал, что потрошить комплектующие я не буду, во всяком случае пока не защищусь, потом риск все запороть к чертовой матери уже не будет столь важен :) А комиссия меня не особо волнует :)


Расчеты.
1) если говорить о точности вычислений в программе, то она определяется только операциями с плавающей точкой, типы операндов - float, представляемые 32 битами. я толком не разобрался в представлении таких чисел, но примерно представляю, что точность плавает в сторону уменьшения в зависисимости от дальности числа от его нормализованного представления. сильно маленькие и сильно большие числа у меня нигде в расчетах не фигурируют (стараюсь учитывать промежуточные расчеты, формируемые компилятором). еще плюс сама реализация математики тоже влияет, но в целом, давайте полагать, что погрешности пренебрежимо малы. расчета не вышло, попробую в следующем пункте :D

2) неточность распознавания объекта: положение центра и размера при разрешении картинки 160х120
это выясняется путем проведения экспериментов, расчет методом прямых вычислений. Благо, на первом курсе я написал прогу (для лаб по физике), поэтому я мне не составило труда провести 25 измерений. Коффициент надежности я принял 0.9 (так я оценил свое распознавание) Расхождение в пикселях между моим распознаванием и распознаванием робота я делю на диагональ разрешения (200 пикселей), чтобы получить относительную погрешность. результаты:
средняя отн. погрешность положения - 0,0086 (погрешность измерения 29,07%)
средняя отн. погрешность размера - 0,006 (погрешность измерения 41,67%)

3) неточности определения координат объекта в системе координат камеры-схвата
проекция изображения перспективная, поэтому с увеличением расстояния до объекта его размер уменьшается медленнее, а разрешение картинки неизменное, а значит погрешность размера быстро растет, что приводит к такому же быстрому увеличению вычисляемого расстояния до объекта. когда объект очень далеко, погрешность крайне большая, однако это не имеет большого значения, так как стоит задача тянуться к объекту, по мере приближения точность растет, поэтому рассмотрим погрешность, когда объект находится в плоскости, параллельной камере и пересекающей точку захвата (это такая точка перед схватом, где должен оказаться объект, после чего робот на него кидается :) ), т.е. когда точность имеет большую важность.
рис. 1.jpg
внизу показан схват, О3 - центр схвата, А - точка захвата, сверху упрощенная оптическая система камеры
<здесь мне что-то не хочется считать>

4) неточность определения положения сервы по сигналу с потенциометра
1. погрешность значения при пересчете в обобщенные координаты по модели маниплятора
значение измеряется 10-битным АЦП, но ввиду того, что АЦП встроенный, отбрасываем 2 бита мусора, тем более в них колебания сильные от дергания серв (движение не блещет плавностью), получаем 8-битное значение с дрожанием примерно в 1 бит, пускай. но диапазон фактических значений с потенциометра выходит в весьма узком пределе, обобщенные координаты имеют больший диапазон. я эту погрешность, кстати считал. заново лень, скажу сразу результат, который запомнил: ~1.5 градуса.
2. актуальность значения (запаздывание)
сигналы проходят через RC-цепочку (фильтр помех), запаздывание составляет примерно 1мс, во всяком случае по расчетам постоянной времени :)

5) результирующая неточность определения положения объекта
в этом расчете участвуют значения текущих положений серв, погрешности которых, указанных ранее, составляют 1.5 градуса.
это большой расчет, а мне это уже порядком надоело, поэтому быстренько грубо прикинем линейную погрешность: если в плоскости поворота всей платформы, то на расстоянии от начала координат до объекта в 10см, получаем 10*tg(1.5)=0,5см, а если в вертикальной плоскости, то берем 2 угла (2-е и 3-е звено вращаются) и складываем их, получаем 3 градуса...

6) реакция системы управления (ее динамика)
1. слежение
получение кадра с камеры длится 100мс, вычисления вплоть до выдачи управления - 400-600мс, итого около полсекунды. чтобы обхект, движущийся со скоростью не более 1 см/с, не покинул за это время кадр, он должен находиться в определенной центральной зоне обзора, относительный размер которой (по отношению к полной зоне обзора, в процентах) может дать представление о маневренности системы. посчитаем:
полный обзор камеры +-60 градусов
возьмем наихудшее направление движения объекта - параллельное плоскости камеры. тогда можно считать, что объект вращается вокруг, нас интересует случай, когда он на расстоянии точки схвата от камеры, т.е. 10см, это будет радиус вращения, посчитаем угловую скорость: 0,01 м/с / 0,1 м = 0,1 рад/с = 6 градусов/с. значит за полсекунды объект уйдет на 3 градуса, значит он должен находиться в рамках 60-3=57 градусов
57/60 = 95% - в такой зоне обзора он должен находиться, чтобы не потеряться. демократично :)
2. захват
захват происходит примерно за 50мс

7) динамика манипулятора
ну ее нафик... все, надоело. :)))

В-общем, я привел основные косяки, но самый влиятельный из них - динамику манипулятора - я не расчитал. Если все по полной считать, то жутко сложно, теперь я сам в этом убедился, когда попробовал :) Ну, по крайней мере, я основные цифры привел, можно ориентироваться :)
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение Michael_K » 10 июн 2010, 20:35

Да все у вас круто, не парьтесь.
(вообще не очень понятно к чему этот разговор)
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

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

Сообщение artymen » 10 июн 2010, 20:49

Да просто обсуждаем альтернативные концовки этого сериала :)
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение North » 10 июн 2010, 22:59

artymen писал(а): Например ? О поведении объекта роботу ничего неизвестно, например, с какой скоростью он должен двигаться и в каких направлениях, перекрывает ли его частично или полностью посторонние предметы.


Стоп-стоп-стоп, я не понял, колебания сервы просто от того что серва сама по себе такая нервная (дрожит/колбасится под нагрузкой) или это автоколебания всей системы, т. е. объект в верхней половине кадра -> серва поехала вверх, проехала центр -> теперь объект в нижней половине кадра -> серва поехала вниз, проехала центр?
Если первый случай и сервы менять не хочешь, то можно просто вырубать им программно питание на время снятия кадра. Если второй случай, то тут много вариантов. Например не просто менять импульс сервы пропорционально положению объекта в кадре, а подводить постепенно, с каждым кадром уменьшая шаг приращения импульса. Можно запоминать координаты центра объекта, скажем, последних десяти кадров и усреднять их. Да кучу всякой всячины человечество придумало :)
И нафига роботу что-то знать о поведении объекта? имхо ему плевать куда и зачем объект собрался, задача навестись и зохавать :crazy:
P.S. А ещё я дарю тебе замечательную аватарку!!! Изображение
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

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

Сообщение Angel71 » 10 июн 2010, 23:39

у br0x http://roboforum.ru/member11457/ на аве этот вечно деприсивный (по фильму) робот
Аватара пользователя
Angel71
 
Сообщения: 10668
Зарегистрирован: 18 апр 2009, 22:18

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

Сообщение North » 11 июн 2010, 00:01

Блин, точно. :(
Тогда такой Изображение Хотя марвин лучше.
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

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

Сообщение artymen » 11 июн 2010, 14:21

Спасибо, но я предпочел сам себе сделать :)
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение North » 11 июн 2010, 16:32

Тоже ничего :Bravo:
А колор-трекинг у тебя на компе или в арме, я что-то не понял?
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

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

Сообщение artymen » 11 июн 2010, 17:27

и там, и там :) при выполнении программы DVR_robot робот автономен и колор-трекинг в арме выполняется, при DVR_cam_monitor - выводится видео на комп, а на компе DVR Monitor, используя тот же модуль колор-трекинга, что и МК, визуализирует результат колор-трекинга
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение North » 11 июн 2010, 17:30

Но во время активной охоты на зелёный шарик проц полностью в автономном режиме?
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

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

Сообщение artymen » 11 июн 2010, 17:38

да.
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение North » 11 июн 2010, 17:40

Скока фпсов в автономном режиме получается? тридцатник?
Аватара пользователя
North
 
Сообщения: 197
Зарегистрирован: 27 июл 2005, 14:12
Откуда: Дмитров, Москва
прог. языки: С, asm

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

Сообщение artymen » 11 июн 2010, 17:43

столько же, сколько и в режиме вещания видео на комп - от 1.5 до 2. один фиг - что в слабом арме вычислять, что через медленный UART-USB на комп посылать :)
Аватара пользователя
artymen
 
Сообщения: 353
Зарегистрирован: 06 окт 2009, 10:44
Откуда: Омск
Skype: artymen1
ФИО: Артем Константинович

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

Сообщение =DeaD= » 11 июн 2010, 18:06

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

Пред.След.

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

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

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