roboforum.ru

Технический форум по робототехнике.

AVM Navigator для RoboRealm практическое применение

Ответить

Re: AVM Navigator для RoboRealm практическое применение

EDV » 09 май 2012, 23:02

Товарищ из Бермудов имеет очень творческий подход к тестированию AVM Navigator,
ну просто молодец! Порадовал меня сегодня :D


Re: AVM Navigator для RoboRealm практическое применение

=DeaD= » 10 май 2012, 08:02

Карандаш вместо подкатки это креативно! :good:

Re: AVM Navigator для RoboRealm практическое применение

EDV » 10 май 2012, 10:25

Не, у него похоже там два подруливающих колеса, а разноцветные фломастеры он для фиксации и сравнения траекторий использовал :wink:


Re: AVM Navigator для RoboRealm практическое применение

ylvov » 20 июн 2012, 22:51

В робозрении я совсем новичок и если есть у кого возможность подсказать мне пару ступеней развития то буду очень признателен.
Мною поставлена задача с помощью имеющихся у меня элементов построить стационарную систему контроля за предметами и объектами по X и Y осям.
Что есть:
Roborealm + AVM Navigator
Arduino UNO
Два сервопривода
USB камера.
Все это установлено на комп соединено вместе и готово к заливке. AVM Navigator обучать научился.
А вопросы такие:
1. Что лучше залить в Arduino? Очень много накопал скетчей и просто методом поочередного заливания пытаюсь понять какой использовать.
( Например вот залил RoboRealm_Arduino http://www.roborealm.com/help/RoboRealm ... rduino.pde
и этот VBScript http://forums.trossenrobotics.com/showt ... #post48865 )
2. Что нужно выбрать и в какой последовательности в Roborealm меню для слежения?
3. Каким меню и Как автоматически управлять сервоприводами? ( я пытаюсь через http://www.roborealm.com/help/Sparkfun_Arduino.php управлять пока только вручную двигая ползунки через 3 и 5 пин)

Буду очень рад вашим подсказкам =)

Re: AVM Navigator для RoboRealm практическое применение

EDV » 21 июн 2012, 21:16

ylvov писал(а):Каким меню и Как автоматически управлять сервоприводами? (я пытаюсь через http://www.roborealm.com/help/Sparkfun_Arduino.php управлять пока только вручную двигая ползунки через 3 и 5 пин)

Если сервомоторами получается рулить вручную, значит прошивка для Arduino подошла, и тогда на пины 3 и 5 нужно выдать значения переменных управления, которые сформирует написанная нами программа на VBScript.

Возьмём за основу программу из вот этого примера:

Код: Выделить всёРазвернуть
' Get turret control variables
turret_v = GetVariable("TURRET_V_CONTROL")
turret_h = GetVariable("TURRET_H_CONTROL")
turret_f = GetVariable("TURRET_FIRE")


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
   
   threshold = 40
   
   if dX > threshold and turret_h > -128 then
      ' The object is at left side
      turret_h = turret_h - 1
   end if

   if dX < -threshold and turret_h < 127 then
      ' The object is at right side
      turret_h = turret_h + 1
   end if
   
   if dY > threshold and turret_v > -128 then
      ' The object is at the bottom
      turret_v = turret_v - 1
   end if
   
   if dY < -threshold and turret_v < 127 then
      ' The object is at the top
      turret_v = turret_v + 1
   end if

   ' Is the target locked?
   if dX < threshold and dX > -threshold and dY < threshold and dY > -threshold then
      turret_f = 1
   else
      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 > 0 then turret_v = turret_v - 1
   if turret_v < 0 then turret_v = turret_v + 1
   
   turret_f = 0
end if

' Set turret control variables
SetVariable "TURRET_V_CONTROL", turret_v
SetVariable "TURRET_H_CONTROL", turret_h
SetVariable "TURRET_FIRE", turret_f


Переменные управления сервомоторами по горизонтали и вертикали TURRET_H_CONTROL и TURRET_V_CONTROL имеют диапазон от –128 до 127. С помощью модуля «Scale Variable» преобразуем их диапазон к Sprkfun’овскому – от 500 до 2500 и полученные переменные SPF_TURRET_H и SPF_TURRET_V передадим в модуль «Sparkfun Arduino» на пины 3 и 5.

Я добавил переделанную программу в ZIP файле, там лежит “spf_tracking.robo”, который можно загрузить в RoboRealm.

ylvov писал(а):Что нужно выбрать и в какой последовательности в Roborealm меню для слежения?

Вначале нужно распечатать маркер, к примеру «Иди сюда», и вызвать из конвейера обработки Навигатор. Затем очистить дерево поиска AVM (нажать «Set key image size (New)» и ответить “Yes”). Обучить AVM на маркер, нажать на «Learn object» и расположить маркер в синей рамке для обучения. После обучения, желательно подольше «помаячить» маркером перед видеокамерой, что бы AVM выполнил дополнительное обучение на маркер (подмигивание голубой рамкой). Ну а затем можно загрузить программу в RoboRealm, включить сервомоторы перемещающие видеокамеру и посмотреть как это всё вместе будет работать.
Вложения
Иди сюда.doc
(30.5 КиБ) Скачиваний: 630
spf_tracking.zip
(1.87 КиБ) Скачиваний: 0

Re: AVM Navigator для RoboRealm практическое применение

ylvov » 22 июн 2012, 16:50

Большое спасибо за подсказку!
Прямо счастье когда все начинает работать!!! :Yahoo!:

Пришлось только поставить галки "invert destinetion" в обеих меню, а то камера уводилась кудато в космос.
Вот интересно... Когда еще купил сервоприводы и подключил то практически постоянно присутствовал звук гудящих трансформаторов в них. И довольно громкий, постоянный даже на холостых. Думал что просто что то с настройками не то.
Но вот все вроде включено настроено по подсказанному алгоритму а звук есть :o . Это я хреновые купил (DF ROBOT DF05BB)или не то что то делаю?

Еще правильно я понял что дообучить каскад можно в любой момент нажав "learn object" и выбрать то же название в графе "название объекта" обучить а потом "save"? Все не перезаписывается а добавится продолжение?

Как можно ускорить повороты сервоприводов при слежении?

Re: AVM Navigator для RoboRealm практическое применение

=DeaD= » 22 июн 2012, 17:13

ylvov писал(а):Когда еще купил сервоприводы и подключил то практически постоянно присутствовал звук гудящих трансформаторов в них.

Это без нагрузки, даже при отцепленных "качалках" ?

Re: AVM Navigator для RoboRealm практическое применение

ylvov » 22 июн 2012, 17:21

просто поставил 2 на стол сняв с них все. Включил их в ардуино . Они чуть дернулись и пошел гул. Он иногда пропадает если скажем в ручную двигаю ползунки и нахожу определенное положение где гул пропадает.

Re: AVM Navigator для RoboRealm практическое применение

=DeaD= » 22 июн 2012, 17:23

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

Re: AVM Navigator для RoboRealm практическое применение

EDV » 22 июн 2012, 19:37

ylvov писал(а):Прямо счастье когда все начинает работать!!! :Yahoo!:

А можно видеоролик снять и на Youtube выложить? Мы бы тоже порадовались :wink:

ylvov писал(а):Это я хреновые купил (DF ROBOT DF05BB)или не то что то делаю?

А я HXT12k сервы использую на своём роботе и они в состоянии покоя вообще не гудят:



ylvov писал(а):Еще правильно я понял что дообучить каскад можно в любой момент нажав "learn object" и выбрать то же название в графе "название объекта" обучить а потом "save"? Все не перезаписывается а добавится продолжение?

Да всё именно так, можно в любой момент вызвать на обучение тот же самый объект и показать перед камерой к примеру этот же объект но под другим углом, под которым алгоритм AVM его ещё не видел.

ylvov писал(а):Как можно ускорить повороты сервоприводов при слежении?

В настройках модуля «Sparkfun Arduino» я только увидел настройку “Trim”,
но я не знаю, что она означает. Можно попробовать её покрутить :oops:

Re: AVM Navigator для RoboRealm практическое применение

avr123.nm.ru » 22 июн 2012, 20:23

Серва может гудеть еще при крайнем положении и еще когда импульс управления скачет по ширине.

Re: AVM Navigator для RoboRealm практическое применение

ylvov » 23 июн 2012, 20:49

Добавлено спустя 55 секунд:
avr123.nm.ru писал(а):Серва может гудеть еще при крайнем положении и еще когда импульс управления скачет по ширине.

А эти скачки как то можно компенсировать ?

Добавлено спустя 2 часа 58 минут 44 секунды:
Вот заснял видео что и как работает.
Снимал по быстрому поэтому качество не очень.
Видно как камера следит за маркером.
Слышна та проблема с сервоприводами про которую я говорил. ( гудят, трещат)


Re: AVM Navigator для RoboRealm практическое применение

EDV » 23 июн 2012, 21:37

Можно ещё попробовать слежение за лицом, думаю, будет весело :wink:



Что-то вроде этого :)


Re: AVM Navigator для RoboRealm практическое применение

ylvov » 24 июн 2012, 00:24

Я распишу цель построения этого проекта.
Хочу построить турель которая будет автоматически наводится, подстреливать заложенные в нее цели.
Какие модули я планирую использовать:
2-сервопривода на поворот Х,У
1-Управление спусковым механизмом.
Хочу использовать за место USB камеры IP камеру т.к. меньше ресурсов системы должна жрать.
Всё это должно быть компактно и стационарно. Жаль что roborealm не засунуть в Линакс а то
можно было бы использовать arduino + Raspberry Pi http://habrahabr.ru/post/143817
за место компа. Поэтому придется искать битый ноутбук без матрицы.

Должно получится по такому примеру, но у человека наведение на все подвижные цели с небольшим ЦВЕТОвым обучением.
А мне нужен на 99.9% обученный каскад.
http://youtu.be/kMBojjc6sVg

Если есть какие нибудь советы как это все реализовать буду очень рад. :wink:
А именно приписывание автоматического спускового механизма в систему.

Re: AVM Navigator для RoboRealm практическое применение

Angel71 » 24 июн 2012, 01:20

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


Rambler\'s Top100 Mail.ru counter