roboforum.ru

Технический форум по робототехнике.
Текущее время: 02 дек 2024, 16:25

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




Начать новую тему Ответить на тему  [ Сообщений: 177 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7, 8 ... 12  След.
Автор Сообщение
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 14 мар 2012, 23:22 
Не в сети
Аватара пользователя

Зарегистрирован: 04 дек 2008, 22:44
Сообщения: 4363
Откуда: Камышин
Skype: galk-aleksandr1
прог. языки: Kotlin, Java, C, C++, Assm, BasCom, VB, php
ФИО: Галкин Александр Владимирович
C RoboRealm пока не пробовал на DIR-320 роботе, пока обкатывал Web интерфейс. Планирую завтра заняться. Судя по ошибке - значения какой то переменной выходят за разрешенные границы

_________________
if(!Operate) Read(pDatasheet);


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 14 мар 2012, 23:49 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
=DeaD= писал(а):
Пробую использовать навигатор на роботе с DIR-320.

Периодически ловлю такую ошибку. Такое ощущение, что при работе через WiFi пропускается кадр. Без включенного навигатора такое не вылетает. Можно сделать так, чтобы пропуск кадра не ронял RoboRealm? :oops: Причем такое ощущение, что с новой версией навигатора ошибка стала появляться в 3-5 раз чаще :) вчера на старой версии криво, но секунд по 60 работало, а сейчас вылетает в первые 10 секунд, еще когда башней робот крутит, осматриваясь.

Похоже это не пропущенные кадры, а некорректное разрешение входного видео. Из картинки видно, что было установлено разрешение 1x1 пиксель, скорее всего это и есть причина сбоя. Я, конечно, могу попробовать вмонтировать защиту от такого разрешения, но может, есть смысл поискать ошибку на стороне прошивки DIR-320?


Вложения:
nav_er.png
nav_er.png [ 186.32 КиБ | Просмотров: 3195 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 15 мар 2012, 07:56 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Если можно - сделай плиз защиту от таких кадров, потому как другие модули там спокойно переварили такие кадры и не вылетели, есть ощущение, что 1х1 кадр выдаёт не DIR-320, а получалка видео по HTTP, которая встроена в RoboRealm, если у неё что-то не вышло, потому как более нигде я не видел такого разрешения пока.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 20 мар 2012, 21:32 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Порядок подключения робота на DIR-320 и контроллере OR-AVR-M128-DS к RoboRealm и AVM Navigator:

Шаг 0. Подключить робота (его IP-адрес на вашей машине с RoboRealm планируем 192.168.1.120 - если другой - поменяйте соотв. образом все настройки ниже);

Шаг 1. Пробрасываем COM-порт с помощью HW Virtual SerialPort 2.5.10:
Вложение:
ser2net-comport.jpg
ser2net-comport.jpg [ 52.77 КиБ | Просмотров: 3058 ]


Шаг 2. Запускаем RoboRealm и подключаем проброску видео (Компоненты - Loading/Saving - Read HTTP, после настройки нажмите Start):
Вложение:
read-http.jpg
read-http.jpg [ 25.7 КиБ | Просмотров: 3076 ]


Шаг 3. Добавляем недостающие компоненты в стек:
Вложение:
roborealm-stack.jpg
roborealm-stack.jpg [ 24.04 КиБ | Просмотров: 3084 ]


Шаг 4. Настраиваем WinkyRover драйвер (пропишите ваши номера сервоприводов Pan&Tilt, ваш номер СОМ-порта):
Вложение:
winky-driver.jpg
winky-driver.jpg [ 50.14 КиБ | Просмотров: 3074 ]

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 25 мар 2012, 19:16 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Видео использования навигатора на платформе с DIR-320:

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 02 апр 2012, 22:46 
Не в сети
Аватара пользователя

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

Navigate mode (гонять за маркером):


Watching mode (гонять за движущимися объектами, правда видимо я тут чуть переборщил с размером движения :)):

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 03 апр 2012, 00:32 
Не в сети
Аватара пользователя

Зарегистрирован: 13 янв 2011, 15:25
Сообщения: 8033
Откуда: Санкт-Петербург
Ахренеть :good:
Похоже AVM Navigator начал завоевывать сердца соотечественников, до этого были только буржуи. Вот ведь какой мы народ, нас не победить ни кому :)
Надо с AVM Navigator побаловаться на нашей карте. Забить в память образы противоборствующих роботов и затовариться попкорном.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 03 апр 2012, 08:13 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Dmitry__ писал(а):
Надо с AVM Navigator побаловаться на нашей карте. Забить в память образы противоборствующих роботов и затовариться попкорном.

У вас надо как минимум туррели сделать на его основе :) чтобы своих от чужих отличал по распознавалке :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 21 апр 2012, 03:12 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
Слегка подкорректировал алгоритм прослеживания объекта,
теперь программа может управлять скоростью вращения сервомоторов :)



Код:
' Get turret control variables
flt_base = 10000

rate_v  = GetVariable("RATE_V")/flt_base
turret_v  = GetVariable("TURRET_V")/flt_base
turret_Sv = GetVariable("TURRET_V_SPEED")

rate_h  = GetVariable("RATE_H")/flt_base
turret_h  = GetVariable("TURRET_H")/flt_base
turret_Sh = GetVariable("TURRET_H_SPEED")
turret_f  = GetVariable("TURRET_FIRE")
step_counter = GetVariable("STEP_COUNTER")

dX = 0
dY = 0

status = ""
turret_v_initial = -80

nvObjectsTotal = GetVariable("NV_OBJECTS_TOTAL")

if nvObjectsTotal>0 then   ' If any object was found

   ' Get image size
   img_w = GetVariable("IMAGE_WIDTH")
   img_h = GetVariable("IMAGE_HEIGHT")
   
   ' Get array variables of recognized objects
   nvArrObjRectX = GetArrayVariable("NV_ARR_OBJ_RECT_X")
   nvArrObjRectY = GetArrayVariable("NV_ARR_OBJ_RECT_Y")
   nvArrObjRectW = GetArrayVariable("NV_ARR_OBJ_RECT_W")
   nvArrObjRectH = GetArrayVariable("NV_ARR_OBJ_RECT_H")

   ' Get center coordinates of first object from array
   obj_x = nvArrObjRectX(0) + nvArrObjRectW(0)/2
   obj_y = nvArrObjRectY(0) - nvArrObjRectH(0)/2
   
   ' Get difference between object and screen centers
   dX = img_w/2 - obj_x
   dY = img_h/2 - obj_y
   
   dXr = 1 - abs(dX*4/img_w)
   if dXr < 0 then dXr = 0
   
   dYr = 1 - abs(dY*4/img_h)
   if dYr < 0 then dYr = 0
   
   turret_min = -100
   turret_max = 100
   reaction   = 7
   speed_min  = 1
   speed_max  = 100
   filtering  = 0.7
   decay      = 0.1
   threshold  = round(img_w*0.03)

   sRateH = exp(-dXr*reaction)
   sRateV = exp(-dYr*reaction)
   
   rate_h = rate_h + (sRateH - rate_h)*filtering
   rate_v = rate_v + (sRateV - rate_v)*filtering
   
   turret_Sh = round(speed_min + rate_h*(speed_max - speed_min))
   turret_Sv = round(speed_min + rate_v*(speed_max - speed_min))
   
   delta_h = (img_w/8)*rate_h
   delta_v = (img_h/8)*rate_v

  if step_counter =< 0 then
      step_counter = round(exp(-(dXr*dYr)*reaction*0.7)*15)
      
      if dX > threshold then
         ' The object is at left side
         turret_h = turret_h - delta_h
      
         if turret_h < turret_min then turret_h = turret_min
      end if

      if dX < -threshold then
         ' The object is at right side
         turret_h = turret_h + delta_h
      
         if turret_h > turret_max then turret_h = turret_max
      end if
   
      if dY > threshold then
         ' The object is at the bottom
         turret_v = turret_v - delta_v
      
         if turret_v < turret_min then turret_v = turret_min
      end if
   
      if dY < -threshold then
         ' The object is at the top
         turret_v = turret_v + delta_v
      
         if turret_v > turret_max then turret_v = turret_max
      end if
   else
      step_counter = step_counter - 1
   end if
      
   ' Is the target locked?
   if dX < threshold and dX > -threshold and dY < threshold and dY > -threshold then
      status = "Target is locked"
      turret_f = 1
   else
      status = "Tracking"
      turret_f = 0
   end if
else
   ' Back to the center if object is lost
   if turret_h > 0 then turret_h = turret_h - 1
   if turret_h < 0 then turret_h = turret_h + 1
   if turret_v > turret_v_initial then turret_v = turret_v - 1
   if turret_v < turret_v_initial then turret_v = turret_v + 1
   
   turret_Sh = speed_min
   turret_Sv = speed_min
   
   rate_h = rate_h - rate_h*decay
   rate_v = rate_v - rate_v*decay
   
   turret_f = 0
end if

' Set turret control variables
SetVariable "RATE_V", rate_v*flt_base
SetVariable "TURRET_V", turret_v*flt_base
SetVariable "TURRET_V_CONTROL", round(turret_v)
SetVariable "TURRET_V_SPEED", turret_Sv
SetVariable "RATE_H", rate_h*flt_base
SetVariable "TURRET_H", turret_h*flt_base
SetVariable "TURRET_H_CONTROL", round(turret_h)
SetVariable "TURRET_H_SPEED", turret_Sh
SetVariable "TURRET_FIRE", turret_f
SetVariable "STEP_COUNTER", step_counter
SetVariable "DELTA_X", dX
SetVariable "DELTA_Y", dY
SetVariable "TURRET_STATUS", status


Вложения:
trc_dgr.png
trc_dgr.png [ 296.43 КиБ | Просмотров: 2850 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 21 апр 2012, 03:23 
Не в сети
Аватара пользователя

Зарегистрирован: 10 дек 2010, 13:16
Сообщения: 4995
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей
Turret fire! Пиу пиу! круть

_________________
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 24 апр 2012, 15:13 
Не в сети
Аватара пользователя

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

Suicidesoldier#1 писал(а):
Why does this equal Skynet, again? O_o

[Ссылка на оригинальное сообщение]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 01 май 2012, 08:50 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
EDV писал(а):
Слегка подкорректировал алгоритм прослеживания объекта,
Наверно ПИД надо подстроить - перерегулирование лошадиное.

_________________
Читайте !


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 04 май 2012, 12:13 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
Добавил новый режим обучения «Learn from motion» на вкладку «Object recognition» диалогового окна Навигатора:



В этом режиме программа определяет габариты объекта по границам движения в кадре и добавляет фрагмент изображения, в котором было отмечено движение в поисковое дерево AVM.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 04 май 2012, 15:20 
Не в сети
скрытый хозяин вселенной :)
Аватара пользователя

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

а как обучить видеть например футбольный мяч?
без рук :)

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: AVM Navigator для RoboRealm практическое применение
СообщениеДобавлено: 04 май 2012, 16:46 
Не в сети
Аватара пользователя

Зарегистрирован: 06 июн 2007, 15:19
Сообщения: 1016
Откуда: Украина, Лисичанск
ФИО: Дмитрий Еремеев
Myp писал(а):
фича работает только на белом фоне в белой футолке?

Думаю, будет работать на любом фоне, лишь бы на переднем плане двигался какой-нибудь контрастный объект (который с фоном не сливается).

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

Насчёт мяча, так что бы «без рук», наверное, не получится, так как руки то тоже двигаться будут, а вот если мяч поместить в «красную рамку» для обычного режима обучения, то AVM вполне может научиться его распознавать :wink:


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

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


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

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


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

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