roboforum.ru

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

 

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

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

Сообщение avr123.nm.ru » 09 апр 2011, 20:36

А вот уже на обычном Си (мне понятное) программирование задания на внешнее устройство по положению Ц.Т. рамки фокусной - http://www.roborealm.com/help/CScript_Program.php
Читайте !
Аватара пользователя
avr123.nm.ru
отсылающий читать курс
 
Сообщения: 14200
Зарегистрирован: 06 ноя 2005, 04:18
Откуда: Москва
Предупреждения: -8

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

Сообщение Eruman » 09 апр 2011, 22:35

Scorpio писал(а):Что за безобразие и произвол!? Почему Эруману и ЛандСталкеру запретили создавать темы!? Я буду жаловаться в ООН! :P

Да-да-да, тока не в ООН, а прямо Обаме, он поглавнее. :D
Соединяй и здравствуй.
Аватара пользователя
Eruman
 
Сообщения: 762
Зарегистрирован: 12 авг 2010, 15:10
Откуда: Астраханская обл.

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

Сообщение Scorpio » 15 апр 2011, 20:30

Попробую вернуться ближе к теме, т.е. к «Навигатору».
Сразу оговорюсь, что будем разбираться с версией 6 модуля, поставляемой в настоящий момент с RR. Насколько я знаю, в скором времени готовиться выход 7-й версии, претерпевшей существенные изменения.
Итак, запустим RR, убедимся, что пришла картинка с камеры и с помощью меню OPTIONS-VIDEO-VIDEO FORMAT,выберем размер картинки 320х240. Этого вполне достаточно. Т.е. «Навигатор» будет работать и с большей разрешающей способностью, но особой разницы в работе я не заметил, а вот загрузка процессора при увеличении размера 320х240 на 640х480 возросла с 35% до 65% в режиме «распознавания».
Теперь в Plugins выберем Navigator, вставим его в проект. Также вставим Variables – Watch_Variables, чтобы отслеживать изменение значений доступных переменных в реальном времени. Надо сказать, что модуль навигатора вполне самодостаточен, т.е. никакой предварительной обработки изображения не требуется.
Откроем панель «Навигатора», а ниже окошко переменных, причем подберем его размеры, чтобы все переменные «Навигатора» (т.е. начинающиеся с NV_) были видны.
Далее постараюсь быть краток и говорить только о вещах не очевидных или не слишком понятных из реалмовского описания модуля.
RECOGNITION MODE:
Режим распознования объектов. Лично мне очень понравился простотой использования и надежностью работы.
Для обучения на объект нажмем кнопочку «Learn Object». Программа предложит выбрать расположение рамочки распознавания и ее размер. Причем размер м.б. только пропорционален стандартному размеру и не меньше его. По умолчанию размер 80х80 пикселей, что для нашего разрешения экрана вполне оптимально. При желании, можно изменить размер стандартной рамочки с помощью кнопки с длинным названием «Set Key Image Size (New)”. Слово «New» заранее дает понять, что все старые объекты из базы данных будут стерты. Впрочем, программа об этом предупредит.
Короче, выполняем тренировку на морду лица. Время тренировки определяется заданной частотой кадров камеры. Первые 50 кадров, программа дает нам устаканить физиономию в рамочке (рамка зеленая). Покраснение рамки свидетельствует о том, что пошла запись образов в течении следующих 100 кадров. Тут надо не сидеть пнем, а стараться показать себя со всех сторон, т.к. программа не сохраняет в базе одинаковые образы (т.е. одинаковые снимки) в понятных целях оптимизации базы данных. Резких движений лучше не делать, чтобы избежать смазанных кадров. После завершения обучения, модуль присвоит объекту порядковый индекс и предложит его как-то осмысленно назвать. Имя объекта сохраняется в базе и модуль сразу переходит в режим распознавания.
Recogn1.jpg

Если, результат вас не удовлетворил (например, при легком наклоне головы, рамочка распознавания теряется) есть смысл дообучиться. Делаем все тоже самое, только при задании имени выбираем уже существующее из списка. Дообучать можно сколько угодно раз, при этом, как я уже говорил, одинаковые образы не будут засорять базу. Удаление отдельных объектов из базы, насколько я понимаю, не предусмотрено.
Обучим модуль еще на какой-нибудь объект. Мне попался под руку калькулятор.
Теперь посмотрим, что происходит с переменными.
Названия переменных заслуживают отдельной похвалы. По приставке NV_ сразу понятно, к какому модулю они относятся, IN_ говорит о том, что значение этой переменной м.б. изменено пользователем, ARR_ что переменная является массивом. В других модулях я такой организованности в названиях не заметил.

NV_OBJECTS_TOTAL - общее число распознанных объектов;
Массив NV_ARR_OBJ_IDX – порядковые индексы обнаруженных объектов в базе (первым по порядку будет индетефикатор объекта, распознанного первым);
Массивы геометрических размеров рамки распознавания:
NV_ARR_OBJ_CORNER - X,Y координаты левого верхнего угла;
NV_ARR_OBJ_RECT_X – координата по X левого верхнего угла;
NV_ARR_OBJ_RECT_Y – координата Y левого верхнего угла;
NV_ARR_OBJ_RECT_W – ширина в пикселях;
NV_ARR_OBJ_RECT_H – высота в пикселях.
И наконец
NV_ARR_OBJ_RECT- X,Y координаты всех углов

Такое обилие переменных , описывающих расположение объекта, мне кажется излишним, с другой стороны не удобным в использовании.
Мне бы хватило масштабного коэффициента (относительно оригинала) и координат центра объекта, опять же относительно оригинала. Раз при обучении рамка может иметь и отличный от 80х80 размер и находиться не обязательно в центре экрана, значит, чтобы воспользоваться текущими координатами и размерами рамки распознавания, мне надо знать, с чем их сравнивать.
И последняя весьма важная переменная, массив NV_ARR_OBJ_SIM - весовой коэффициент 0....1, отображающий степень схожести объекта с оригиналом.

При тестировании распознавания, обнаружил программный глюк. Икогда на один и тотже объект выскакивают сразу 2 рамочки распознавания. При этом модуль сообщает, что обнаружено 2 объекта с одинаковыми индексами, но весовой коэффициент у одного из них мизерный. Надеюсь, что автор это легко исправит в следующей версии модуля.
Er1.jpg

Да, ещё один важный момент забыл упомянуть – у режима распознавания есть дополнительное самообучение на объекты в процессе прослеживания (tracking). То есть, когда в процессе слежение за объектом, его схожесть (NV_ARR_OBJ_SIM ) упала < 0.5 , но все еще превышает 0.45, то происходит автоматическое дообучение на этот объект. Индицируется этот процесс подмигиванием рамкой голубого цвета. . Т.е. распознавание будет со временем все лучше. (сведения подсказаны автором «навигатора», сам бы я не догадался)
Аватара пользователя
Scorpio
 
Сообщения: 1552
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Scorpio » 28 апр 2011, 17:47

Продолжим...

Режим NAVIGATE MODE.
Распознавание объектов нам пригодится и для движения по маякам. Причем, как мы уже говорили, не обязательно развешивать по углам красные кружочки. Картина на стене или лампа на тумбочке могут служить прекрасным маяком. В режиме «навигации», модуль старается приблизить найденный объект к его оригинальным размерам и положению , путем подачи роботу комманд «вперед», «назад», «вправо», «влево»
Соответствующие переменные:
NV_FORWARD и NV_BACKWARDS принимают значения от 0 до значения «Body inertia»+1(сделано для возможности плавного разгона).
NV_LEFT, NV_RIGHT принимают только значения 0 или 1 и всегда появляются в сочетании с NV_FORWARD и NV_BACKWARDS.
При этом предполагается, что робот должен крутится на месте, а не ехать по дуге, т.е. сочетания NV_LEFT + NV_FORWARD и NV_RIGHT+ NV_BACKWARDS должны поворачивать робота на месте против часовой стрелки.

В левой нижней части экрана мы видим индикаторы комманд движения . 4 нижних соответствуют вышеперечисленным переменным. Квадратик закрашен, если переменная не равна 0.
Расположение индикаторов управления соответствует расположению клавиш управления курсором (стрелка вверх, вниз, влево вправо)
Кроме того, мы видим чуть выше еще 3 индикатора. Соответствующие им переменные:
NV_TURRET_RIGHT, NV_TURRET_LEFT - принимают значения от 0 до значения «Turret inertia»+1. И предназначены для вращения «башни», т.е. поворота камеры в горизонтальной плоскости. Это крайние квадратики индикатора.
Средний оттображает состояние переменной NV_FIRE, которая пока не используется.

Индикаторы меняют свой цвет в зависимости от режима работы:
зелёный – режим навигации, автоматическое управление моторами;
зелёный в желтой рамочке – индикация «инерции» (Turret/Body Inertia не равны нулю).
красный – режим записи «пути по воротам» в память ;
сиреневый – режим управления пользователем ;

Для отслеживания поворота башни имеется также NV_TURRET_BALANCE – целочисленная переменная , диапазон от –100 до 100. Значение – 100 соответствует повороту камеры относительно корпуса робота на 70 градусов против часовой стрелки, а +100 на 70 градусов по часовой стрелке (ноль – смотрит прямо). Значение NV_TURRET_BALANCE нарастает/убавляется плавно – при каждом импульсе NV_TURRET_RIGHT, NV_TURRET_LEFT.

Почему именно такой набор комманд, станет понятно, если посмотреть на платформу-танк, которую автор «навигатора» использовал для его отладки. Также станет понятно, почему индикаторы управления движением перемигиваются с такой бешенной частотой. Легкому танчику достаточно короткого импульса, чтобы слегка повернуться. Чего нельзя сказать о моем 10-ти килограммовом роботе. Короче, такое управление мне явно не годится. Хорошо, что в следующей версии «навигатора» уже не будет никаких перемигиваний, а будет нормальное задание мощности ходовым двигателям , что обеспечивается двумя новыми целочисленными переменными: NV_L_MOTOR, NV_R_MOTOR , с диапазоном от –100 до 100 (соответственно: –100 для движение назад, +100 для движения вперёд, и 0 – двигатель выключен).

Режим навигации имеет 2 функции «в одном флаконе»: движение по маякам и проезд в «ворота». Переключение между режимами происходит автоматически. В режиме навигации робот ищет либо ворота, либо маяк-образ. Чему будет отдан приоритет, в случае обнаружения маяка и ворот одновременно, я пока не разобрался.
По задумке автора алгоритма слежения, башня-камера является более подвижной и плавной в движении, чем сам робот. Поэтому на нее возлагается функция быстрого отслеживания объекта или ворот в горизонтальной плоскости. А, корпус робота при этом, старается выровняться по отношению к башне. Если из поля зрения исчезают и «знакомые объекты» и «ворота», то робот начинает вращаться на месте, из стороны в сторону, пытаясь найти либо ворота, либо объект-маяк. Башня при этом стоит неподвижно.

В режиме движения по воротам задействуется еще одна переменная NV_GATE_HORIZON . Это переменная с плавающей запятой и диапазоном -1...1, отображает степень отклонения от центра ворот по горизонтали.
NV_GATE_HORIZON=0, если не были распознаны не одни ворота, либо ворота находятся строго по центру (чего во время движения практически не бывает). В алгоритме управления роботом заложена зона нечувствительности: если отклонение от центра ворот не превышает 0.09 по абсолютному значению, то едем прямо.
Индикатор «горизонта» добавлен в нижней части экрана навигатора.

Окраска индикаторов самих «ворот» тоже имеет значение. Область ворот окрашена в синий цвет, если эти ворота не участвуют в данном маршруте (весовой коэффициент= 0) и более тёплые цвета, заканчивая желтым цветом, показывают градацию «важности» ворот в текущем маршруте.
Кроме того, в области данных отражаются значения весовых коэффициентов для семи маршрутов, которые указывают, насколько важны данные ворота для каждого конкретного маршрута. Поскольку эти коэффициенты недоступны пользователю в виде переменных, ценность их демонстрации на экране сомнительна. Как и других статистических данных, выводимых на экран. Они интересны скорее разработчику, чем пользователю.

Если, в подрежиме навигации «на маяк» у нас есть вся информация о маяке, благодаря переменным, описанным в предыдущем разделе, то в «движении по воротам», в нашем распоряжении только «линия горизонта» текущих ворот. Этого явно недостаточно, чтобы организовать свой алгоритм «движения по воротам». Т.е прийдется доверится авторскому алгоритму, призванному максимально облегчить жизнь пользователю. Однако, как я уже говорил, алгоритм пока сильно «заточен» под авторскую модель. И поворотная камера в нем является важным элементом. Без нее я попробовал – не идет. Пришлось задействовать комманды поворота камеры и соорудить виртуальную башню программно. Но, думаю всеже сделать поворот камеры в горизонтальной плоскости. Чем крутить зря тяжелого робота и тратить на это драгоценную энергию, всяко лучше сначала осмотреться. А к автору пожелание давать пользователю больше свободы в выборе алгоритма: хочешь с башней, хочешь без нее, а если нравится самому управлять движением – получи полную информацию о воротах.

Чтобы программно начать «движения по воротам», надо произвести следующие действия с переменными:
- Устанавливаем номер маршрута, для чего записываем номер в переменную NV_IN_WAY_NUMBER;
- Подтверждаем номер маршрута, записывая в переменную NV_IN_SUBMIT_WAY единицу;
- Включаем режим навигации, NV_IN_SET_MODE = 1 - Navigate mode.
При этом робот будет находиться в движении до тех пор, пока не найдет контрольную точку, соответствующую данному маршруту. Впрочем, пользователь может догадаться о том, что «миссия выполнена» только взглянув на экранчик навигатора. Т.к. никаких прорграммных сигналов для этого не предусмотрено.

Режим NOVA GATE MODE

Используется для прокладки маршрутов. Всего можно запомнить до 7-ми маршрутов, что не так уж мало. Проложить маршрут несложно: выбрали № маршрута, установили робота в начало пути, нажали «Walking by way», провели робота по маршруту с помощью ДУ пульта, стараясь не маячить у него перед глазами, а повороты выполнять плавненько, затем нажали «Set Checkpoint», чтобы зафиксировать точку назначения. После этого робот начинает крутиться на месте, как бы оглядываясь и запоминая получше точку прибытия (индикаторы движения красного цвета). Потом сообщает, что маршрут запомнен, о чем свидетельствует фиолетовый цвет индикаторов. Во время прокладки маршрута, робот запоминает множество «ворот». При последующем воспроизведении маршрута, робот будет либо идти на «ворота», которые относятся к данному маршруту, либо искать их. И так, пока не увидит, что очередные ворота являются конечной точкой маршрута. Таким образом, робот может направиться к цели не обязательно с начала пути, а из любой точки маршрута.

Уффф аж сам замучался читать свою писанину....
Аватара пользователя
Scorpio
 
Сообщения: 1552
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение SkyStorm » 28 апр 2011, 17:55

Что то с текстом ... повтаряется.
Никто кроме нас!!!
4Robots.ru - Все для роботов!
Аватара пользователя
SkyStorm
 
Сообщения: 2596
Зарегистрирован: 05 фев 2008, 15:33
Откуда: St. Petersburg - Moscow
Skype: SkyStorm77
ФИО: Костюк Константин Вячеславович

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

Сообщение Scorpio » 28 апр 2011, 18:46

Сразу вроде исправил
Аватара пользователя
Scorpio
 
Сообщения: 1552
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение Scorpio » 02 май 2011, 19:34

Так, с интерфейсом текущей версии разобрались, приступим, собственно, к экспериментам.

Для начала попробуем припарковаться на зарядную базу, используя только режим распознавания образов.
Т.к. база прижата к стене, понятно, что картинка перед «глазами» робота, когда он стоит на базе, врядли будет распознаваться с большого расстояния. Поэтому обучим модуль на несколько картинок, находясь на разных расстояниях от базы. В нашем примере 4 картинки (Base0...Base3), хотя хватило бы и трех. Обучение происходило так: робот ставился точно напротив базы, рамка области для распознавания центрировалась по горизонтали, а по вертикали наводилась на смайлик на стене. Изображение запоминалось, соответственно, статическое. В процессе обучения сразу возник вопрос к автору. Когда мы только что обучились на картинку и сразу же начинаем ее распознавать не сдвигая робота с места, степень достоверности почему-то 0.7 ... 0.8. Т.е. выше 0.8 вообще не бывает?
Понятно, что в процессе продвижения к базе, робор может «увидеть» и пару- тройку картинок одновременно. Мы их, собственно, специально сделали с наложением, чтобы робот никогда не терял ориентир. Однако, оказалось, что по этой причине я не смогу воспользоваться «штатным» режимом «движения на маяк». В алгоритме модуля заложено, что робот дойдет до ближайшего видимого маяка и остановится, наплевав на другие маяки. Выбор маяка – цели не предусмотрен. Нам то как раз надо, чтобы робот пилил на маяки, пока не упрется в зарядную базу.
Так что прийдется управлять роботом самим, благо, что это не сложно, т.к. вся информация о маяках- картинках у нас имеется. Введем новую глобальную переменную NV_COURS, которая будет передавать пользовательской программе степень смешения от центра по горизонтали в пикселях, маяка, имеющего на данный момент максимальную достоверность. Для ее подсчета напишем небольшой макрос прямо в RR:
Код: Выделить всёРазвернуть
nvObjectsTotal = GetVariable("NV_OBJECTS_TOTAL") 
if nvObjectsTotal>0 then     ‘если обнаружен хотя бы один маяк    
    nvArrObjRectX = GetArrayVariable("NV_ARR_OBJ_RECT_X")    
    nvArrObjRectW = GetArrayVariable("NV_ARR_OBJ_RECT_W")    
    nvArrObjSim = GetArrayVariable("NV_ARR_OBJ_SIM")    
    'nvArrObjIdx = GetArrayVariable("NV_ARR_OBJ_IDX")    
    imageWidth = GetVariable("IMAGE_WIDTH")
    SimMax=0:ObjIndex=0
    for i=0 to nvObjectsTotal-1   ‘ выделим маяк с максимальной достоверностью
       if nvArrObjSim(i)>SimMax then
          SimMax=nvArrObjSim(i)
          ObjIndex=i
       end if
    next
    ObjCentre=nvArrObjRectX(ObjIndex)+nvArrObjRectW(ObjIndex)/2
    ObjCourse=CInt(ObjCentre- imageWidth/2)
    SetVariable "NV_COURS", ObjCourse
else    
    SetVariable "NV_COURS", 999    ‘если ни один маяк не обнаружен    
end if

Переменная nvArrObjIdx никак не задейсвована, но в будущем она пригодится. Дело в том, что ставить исходную картинку строго по центру экрана не удобно. Проще запомнить в отдельном массиве центры картинок при обучении, и отклонение курса считать от них, а не от центра экранчика. Также, эта переменная будет нужна для выделения картинок, относящихся к парковке на базу из кучи образов, которые со временем появятся.
Переменную NV_COURS выведем на экран для наглядности.
Вот, что из этого получилось:

Видно, что робот, довольно уверенно и точно пришел на базу.
Понятно, что черная направляющая линия, видимая на видео, в этом эксперименте не использовалась :)
Я ее пока оставлю, т.к. по линии робот может забраться в свой чуланчик и в полной темноте :wink:
Аватара пользователя
Scorpio
 
Сообщения: 1552
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение EDV » 03 май 2011, 20:30

Ой, ну что же его так качает? Так у робота и «морская» болезнь может начаться :)

Я бы попробовал вылечить робота с помощью гистерезиса (небольшой зоной нечувствительности к отклонению от центра экрана, где-то пикселей на ±20).

Когда мы только что обучились на картинку и сразу же начинаем ее распознавать не сдвигая робота с места, степень достоверности почему-то 0.7 ... 0.8. Т.е. выше 0.8 вообще не бывает?

Бывает конечно и 1.0, но область интереса (на которую обучали) в данном конкретном случае не совпала в точности с координатами области окошка, которым было просканировано изображение, так как сканирование идёт с определённым шагом. Так что окошко, в котором был найден объект, немного по координатам отличается (сдвинуто) от координат исходной области, на которую обучали.

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

Нет, это не так. На самом деле среди всех распознанных выбирается объект с максимальным индексом/идентификатором (NV_ARR_OBJ_IDX). Это хорошо проиллюстрировано вот в этом ролике:



Чтобы программно начать «движения по воротам», надо произвести следующие действия с переменными:
- Устанавливаем номер маршрута, для чего записываем номер в переменную NV_IN_WAY_NUMBER;
- Подтверждаем номер маршрута, записывая в переменную NV_IN_SUBMIT_WAY единицу;
- Включаем режим навигации, NV_IN_SET_MODE = 1 - Navigate mode.
При этом робот будет находиться в движении до тех пор, пока не найдет контрольную точку, соответствующую данному маршруту. Впрочем, пользователь может догадаться о том, что «миссия выполнена» только взглянув на экранчик навигатора. Т.к. никаких прорграммных сигналов для этого не предусмотрено.

Номер контрольной точки, по прибытию можно узнать из переменной NV_CHECKPOINT_NOW.

Из описания AVM Navigator:
NV_CHECKPOINT_NOW - indicates the checkpoint number when the robot arrives at the end of the current route (1-7). This variable is 0 if the checkpoint has not yet been recognized.
Аватара пользователя
EDV
 
Сообщения: 1009
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина (Донбасс), Лисичанск
ФИО: Дмитрий Еремеев

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

Сообщение EDV » 04 май 2011, 01:25

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

This materials was shared by user aka Scorpio (original article in Russian)

First let’s try to make some sketch of navigation to the charging dock station with using only “Object recognition” mode...
Аватара пользователя
EDV
 
Сообщения: 1009
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина (Донбасс), Лисичанск
ФИО: Дмитрий Еремеев

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

Сообщение Scorpio » 04 май 2011, 01:30

EDV писал(а):Я бы попробовал вылечить робота с помощью гистерезиса (небольшой зоной нечувствительности к отклонению от центра экрана, где-то пикселей на ±20).

Я потом снизил "коэффициент усиления", так что вихляет не так рьяно. И скорость снижает при приближении к базе. По хорошему надо ПИД-регулятор настраивать. А с зоной нечувствительности наверное не будет точно контактами в базу попадать.
EDV писал(а):Бывает конечно и 1.0, но область интереса (на которую обучали) в данном конкретном случае не совпала в точности с координатами области окошка...

Как же не совпало, если я к роботу ни во время, ни после обучения не прикасался, а он сразу сказал 0.8 на только что обученную картинку (На видео этого нет). Впрочем это мелочь.
EDV писал(а):На самом деле среди всех распознанных выбирается объект с максимальным индексом/идентификатором...

Ну дык все равно останавливается, когда приблизится к выбранному объекту, хотя другие на горизонте маячат. А ролик чего-то не работает

EDV писал(а):Номер контрольной точки, по прибытию можно узнать из переменной NV_CHECKPOINT_NOW..

Спасибо за поправку. Я почему-то подумал, что это для фиксации точки. Весьма важный момент.

Попробовал парковку при разном освещении. Распознавание действительно впечатляет. Сейчас приделываю серву к камере, потом продолжим...
Аватара пользователя
Scorpio
 
Сообщения: 1552
Зарегистрирован: 30 сен 2008, 18:49
Откуда: Где-то в Латинской Америке

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

Сообщение EDV » 23 ноя 2011, 18:41

А у меня праздник, пользователю Romeo удалось проехаться своим домашним роботом из пункта «А» в пункт «Б», пускай и с «болтанкой», но удалось :Yahoo!:



Это первый пользователь, у кого получилось повторить эксперимент с навигацией.

Эх, удивляюсь, как только робота не стошнило от такой «болтанки», а ещё поражает тот факт, что даже при таких неблагоприятных условиях (экстремально высокая скорость поворота) программа справилась с управлением!

Ну, кто следующий?
Вложения
nav_poster.jpg
Аватара пользователя
EDV
 
Сообщения: 1009
Зарегистрирован: 06 июн 2007, 15:19
Откуда: Украина (Донбасс), Лисичанск
ФИО: Дмитрий Еремеев

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

Сообщение Myp » 23 ноя 2011, 19:44

Scorpio писал(а):Вот еще статья с примерами на русском (не помню где качнул):
roborealm_rus_doc.rar

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

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

Сообщение =DeaD= » 27 ноя 2011, 12:18

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



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

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

Сообщение dccharacter » 27 ноя 2011, 12:26

Нифигаська. А видео насколько ускорено?
Мой волшебник это я сам. Всю архитектуру программы придумал лично, а ребята помогли воплотить её. Я бы и сам мог написать, но лень учить язык и его конструкции.
Аватара пользователя
dccharacter
 
Сообщения: 4873
Зарегистрирован: 10 дек 2010, 13:16
Откуда: Красногорск МО
прог. языки: C, Python, wiring/processing
ФИО: Андрей

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

Сообщение =DeaD= » 27 ноя 2011, 12:31

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

Пред.След.

Вернуться в Компьютерное зрение

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

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

Mail.ru counter