Компьютерное зрение в Fischertechnik ROBO Pro

Share Button

Компьютерное зрение — возможность обнаруживать и классифицировать объекты — важная составляющая современной робототехники. Благодаря использованию среды ROBO Pro роботы Fischertechnik могут определять цвета, размеры и распознавать образы.

В составе набора первооткрывателя Fischertechnik вместо множества датчиков — видеокамера. А в прилагаемом к конструктору программном обеспечении реализованы элементы машинного зрения.

Робот-разведчик fischertechnik

Fischertechnik ROBO Pro — визуальная среда программирования. Она используется для составления алгоритмов для роботов из конструкторов Fischertechnik. Сегодня мы рассмотрим функции компьютерного зрения, реализованные в ней.

Функции компьютерного зрения поддерживаются в ROBO Pro, начиная с версии 4.х. Видеокамера подключается к USB-разъему контроллера Fischertechnik Robotics TXT или USB-порту компьютера.

Камера используется как многофункциональный датчик для:

  • определения цвета,
  • определения движения,
  • распознавания линий,
  • распознавания геометрических фигур.

Изображения передаются из контроллера TXT на компьютер по USB или по беспроводной связи Wi-Fi. Функции компьютерного зрения работают и в режиме Онлайн, и в режиме Загрузка. Т.е. программа может выполняться на компьютере или в контроллере.

Обладателям контроллеров Fischertechnik прошлых версий ROBO TX и ROBO Interface, не поддерживающих подключение видеокамеры, функции машинного зрения ROBO Pro тоже доступны — для этого подключите камеру к USB-порту компьютера.

Настройка (окно Камера)

Для настройка камеры и функций компьютерного зрения в ROBO Pro используется специальное окно Камера, находящееся на соответствующей закладке.

Установите переключатель Подключение камеры. Варианты:

  • к контроллеру TXT,
  • к ПК.

При подключении к компьютеру выберете используемую камеру. Я подключил камеру Fischertechnik к контроллеру TXT. Для предварительного просмотра видео, поступающего с камеры, установите одноименный флажок.

Привет!

robopro1

Конечно, это окно не для приветствий. Здесь настаиваются функции машинного зрения, реализованные в ROBO Pro. Возвращаемые ими параметры используются в программе для управления роботом.

В ROBO Pro реализованы несколько функций компьютерного зрения. Чтобы добавить функцию к текущему проекту, необходимо перетянуть с помощью мыши значок этой функции в область видеокадра. При этом можно задать область определения функции (ту область кадра, где функция будет работать). Так, для функции Цвет область работы задается прямоугольником.

robopro-color

Для изменения размера и положения области определения функции используется меню Рисование – Правка.

Для настройки параметров функции используется контекстное меню (вызывается правой кнопкой мыши на области функции).

Каждой функции задайте уникальное имя, которое будете использовать в блок-схеме для доступа к результатам. Можно создать две функции одинакового назначения, но работающие в разных областях кадра. На скриншоте функциям определения цвета даны имена Color и Цвет.

RoboProCamera2

Создавать лишние функции, неиспользуемые в программе, не нужно.

Во время предварительного просмотра наблюдайте результаты работы сконфигурированных функций в реальном времени. Имитируйте перед камерой действия, смотрите на результаты. Это важно для отладки программ.

RoboProTest

Дисплей камеры

Изображение, поступающее с видеокамеры, можно добавить в пользовательский интерфейс или даже на блок-схему. Для этого используйте специальный элемент интерфейса – Дисплей камеры в группе Элементы интерфейса.

RoboProDisplay

Для изменения размеров элемента воспользуйтесь меню Рисование — Правка.

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

Дисплей камеры удобно использовать при конструировании дистанционно управляемых роботов.

Программирование функций компьютерного зрения

После настроек функций компьютерного зрения в окне Камера приступайте к созданию программы.

Для доступа к результатам работы функций компьютерного зрения на программном уровне используется специальный программный элемент Камера, находящийся в группе Ввод и вывод.

RoboProCamera

В настройках элемента Камера выберете имя функции и возвращаемое значение. Созданные функции автоматически появляются в списке. Я создал функцию определения цвета с именем Color и могу обратиться к четырем возвращаемым ей значениям (R,G,B, BW).

RoboProCameraRGB

Распознавание цвета

Распознавание цвета — функция компьютерного зрения, предназначенная для вычисления усредненного цвета графического поля, ограниченного прямоугольным контуром в видеокадре. Для вычисления цвета используются все пиксели расположенные внутри контура, ограничивающего поле.  Размеры и положение ограничивающего контура можно изменить с помощью меню Рисование – Правка.

Результаты, которые возвращает функция Распознавание цвета представлены в виде четырех параметров: R, G, B и BW, где R – яркость красного цвета, G – зеленого цвета, B – голубого цвета и BW – общая яркость соответственно. Все параметры измеряются в процентах в диапазоне от 0 до 100, где 0% – темный (черный) цвет, а 100% – яркий (белый) цвет.

Видимый цвет зависит от освещения, но в ROBO Pro реализована система автоматической коррекции цвета в зависимости от условий освещения. Лучше всего она работает при незначительном количестве белого цвета в поле зрения видеокамеры.

Для демонстрации работы функции распознавания цвета, я собрал простую модель.

robopro2

Решаем абстрактную задачу: включать светодиод, если в исследуемой области уровень красного более 55%.

Блок-схема в ROBO Pro:

ColorSortFt

Тестируем. Работает. Светодиод загорается, когда значение красного более 55 %, и гаснет в противном случае.

В ROBO Pro реализована автокоррекция по освещению, но результат варьируется в зависимости от освещения. Для уменьшения влияния внешней засветки можно использовать конструкцию, защищающую камеру и исследуемый объект от лишнего света, например как у робота-сортировщика Fischertechnik из набора «ЭлектроПневматика».

Детектор движения

Функция компьютерного зрения Детектор движения реагирует на движение в заданной области видеокадра. Эту функция используется для распознавания движущихся объектов и жестов.

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

RoboProMove1

Для настройки алгоритма детектирования движения, используются два параметра: Порог контрастности и Порог площади. Установите их.

Параметр Порог контрастности определяет значение мгновенного изменения уровня яркости отдельного пикселя после превышения которого он заносится в специальный список. Если вы установите значение для параметра Порог контрастности равное 100%, то движение зафиксируется только при изменении цвета пикселя от черного к белому или наоборот от белого к черному.

С помощью параметра Порог площади задается значение, с которым сравнивается относительная площадь, занимаемая пикселями с зафиксированным движение. Если эта площадь больше или равна значению, заданному параметром Порог площади, формируется результат, который функция возвращает в алгоритм пользовательской программы.

Установим параметры, предлагаемые по умолчанию: имя функции — Движение, порог площади — 10%, порог контрастности — 10%.

В блок-схему функция передает два параметра: С и A.

С – усредненное изменение контрастности. Для расчета этого значения используются только пиксели, изменение яркости которых превышает установленный Порог контрастности.

A – площадь, занимаемая пикселями, у которых изменение яркости превышает установленный Порог контрастности. Причем, если эта площадь меньше заданного Порога площади, то параметр С будет равен нулю.

Для определения движения в заданном участке кадра требуется сравнить возвращаемый параметр C с нулем.

Наблюдайте за изменением параметров C и A в режиме предварительного просмотра.

Не меняя модель, чуть-чуть видоизменим программу. Я создал функцию Движение. Установим для блока Камера обращение ее параметру C, а в блоке Ветвь зададим сравнение с нулем.

Move-FT-RoboPro

Запускаем программу. Камера работает в качестве датчика движения:  при обнаружении движения светодиод загорается, если движения нет — гаснет.

Движение по линии

Функция компьютерного зрения Обнаружение линии используется для вычисления геометрических параметров линии, которая пересекает символ функции, размещенный в видеокадре. Функция измеряет координаты, ширину и цвет линии. Символ функции выглядит как измерительная шкала с рисками делений.

Функция используется для обнаружения маршрутной линии, которая используется для навигации мобильного робота. Для этого разместим измерительную шкалу функции в видеокадре так, чтобы она занимала ширину кадра полностью – от края до края.

RoboProLine1

Размеры и положение измерительной шкалы изменяется с помощью меню Рисование – Правка.

Параметры Ширина минимальная и Ширина максимальная используются для ограничения допустимого размера ширины измеряемой линии.

Не рекомендуется устанавливать для параметра Ширина максимальная слишком большие значения, так как это потребует значительных вычислений. С другой стороны, не стоит указывать слишком маленькие значения минимальной ширины, т.к. при быстром движении робота маршрутные линии выглядят размытыми.

Единицы, в которых измеряются эти два параметра, соответствуют шкале, размещенной в видеокадре.

RoboProLine2

Для правильного выбора значений параметров Ширина минимальная и Ширина максимальная используется функцию предварительного просмотра. Включите камеру, определите точный размер маршрутной линии по шкале в видеокадре. Минимальную ширину установите на 20% меньше, а максимальную на 50% больше.

Параметр Контрастность минимальная определяет, насколько яркость линии должна отличаться от яркости фона. Черная линия на абсолютно белом фоне соответствует контрастности 100%. Не забывайте, что при движении мобильных роботов могут возникать ситуации, когда контрастность существенно снижается в результате появления бликов и отраженного света.

Параметр Количество сегментов определяет, сколько линий будет различать функция. Максимум – 5 линий, для каждой из которых будет создан собственный набор измеряемых параметров. Результаты измерений линий будут отсортированы в порядке появления линий на измерительной шкале в видеокадре слева-направо.

Переключатель Инвертировать позволяет переключить алгоритм на обнаружение светлых линий на черном фоне вместо темных линий на белом фоне.

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

Переключатель Точность измерения ширины и координаты позволяет указать, с какой точностью будет выполняться определение линии. Чем выше точность, тем больше вычислений и времени требуется для решения задачи.

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

Функция Обнаружение линии возвращает в пользовательскую программу от четырех до семи параметров с результатами для каждой обнаруженной линии в зависимости от выбранного режима. Наиболее важные возвращаемые параметры – Контрастность (Quality) и Координата (Pos).

Значение параметра Контрастность показывает, насколько измеренная яркость линии отличается от яркости фона. Если Контрастность ниже порога, заданного параметром Контрастность минимальная, то возвращаемый результат будет равен нулю. Параметр Контрастность используется как логический признак присутствия линии в анализируемой области видеокадра.

Параметр Координата (Pos) – это координата центра обнаруженной линии в единицах измерительной шкалы.

Ширину обнаруженной линии можно узнать, обратившись к параметру Ширина (Width), который содержит ширину линии, измеренную в единицах измерительной шкалы.

Дополнительно в зависимости от положения переключателя Распознавание цвета в пользовательской программе могут быть доступны следующие параметры: общая яркость B/W, и яркости трех основных цветов по отдельности R (красный), G (зеленый) и B (голубой).

Простой моделью для изучения функции компьютерного зрения Движение по линии может быть двухмоторная тележка со стационарно закрепленной камерой.

Robo-fischer-car

Простейший алгоритм движения по линии может выглядеть так:

Rpro-line-follow

Считываем положение линии, определенное функцией, если линия слева от центра кадра, направляем робота чуть левее, если справа — чуть правее. Такой алгоритм имеет много недостатков. Возможности функции компьютерного зрения Движение по линии позволяют сделать алгоритм более эффективным. В представленном алгоритме отсутствует поиск линии. Т.к. функция  делает это автоматически, достаточно будет просто составить алгоритм вращения робота до тех пор, пока возвращаемый функцией параметр Ширина (Width) не станет больше нуля.

Широкие возможности функции компьютерного зрения Движение по линии продемонстрированы в программе для робота-разведчика, которая есть на диске, входящем в комплект набора первооткрывателя Fischertechnik.

Обнаружение геометрической фигуры

Функция компьютерного зрения Обнаружение геометрической фигуры используется для обнаружения цветных кругов, шариков или других небольших цветных однотонных объектов на белом, сером или черном фоне, а также для измерения геометрических параметров этих объектов. Для надежной работы функции нужно убедитесь, что в анализируемой зоне видеокадра присутствует не более одного объекта.

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

roboPro-ball

Эта функция используется в стандартном алгоритме робота-футболиста Fischertechnik. Функция возвращает координаты обнаруженного объекта, что позволяет создать робота, который играет в футбол обычным мячиком, а не помеченным ИК-передатчиком.

Размеры и положение анализируемой зоны, задаются с помощью меню Рисование – Правка. Также в окне настроек укажите уникальное имя и параметры, влияющие на работу алгоритма.

robopro-ball-properties

С помощью параметра Контрастность цвета минимальная задается порог контрастности, при превышении которого формируется признак обнаружения фигуры. Значение 100% означает яркий цвет на бесцветном фоне.

Параметры Минимальный / Максимальный размер ограничивают допустимый размер фигуры, которую требуется обнаружить. Единицы измерения соответствуют сетке, размещенной в видеокадре. Рекомендации по установке этих параметров такие же, как и для функции Движение по линии. 

Для правильного выбора значений для параметров Минимальный / Максимальный размер используется предварительный просмотр. Как и в случае с функцией Движение по линии рекомендуется минимальное значение уменьшить на 20% от фактического, а максимальное — увеличить на 50%.

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

Функция Обнаружение геометрической фигуры возвращает в пользовательскую программу четыре параметра с результатами работы алгоритма функции для обнаруженной фигуры. Главные – Контрастность (Quality) и Координата (X и Y).

Контрастность показывает, насколько яркость фигуры отличается от яркости фона. Если измеренная контрастность ниже порога, заданного параметром Контрастность цвета минимальная, то возвращаемый результат будет равен нулю. Контрастность используется как логический признак присутствия фигуры в анализируемой зоне видеокадра.

Параметр Координата (Pos) – это координата центра обнаруженной фигуры в единицах измерительной сетки.

Параметр Размер (R) — это диаметр окружности, описывающей обнаруженную фигуру, измеренный в единицах измерительной сетки.

Зона для исключения из обработки

Функция компьютерного зрения Зона для исключения из обработки используется совместно с функцией Обнаружение геометрической фигуры в случае, если в кадр попадают посторонние предметы, вызывающие ложное срабатывание алгоритма. Например, ложные срабатывания могут вызывать яркие цветные части робота.

Размеры и положение зоны кадра для исключения из обработки можно настроить. Установите уникальное имя функции. Допускается использовать несколько зон для исключения совместно с одной функцией Обнаружение геометрической фигуры. Для этого у соответствующих зон должны быть одинаковые имена.

RoboPro-minus

Функция компьютерного зрения Зона для исключения из обработки является дополнительной настройкой работы функции Обнаружение геометрической фигуры.

Где купить программу ROBO Pro

Купить программное обеспечение ROBO Pro, конструктор Fischertechnik Robotics TXT Discovery set, а также другие наборы этой марки можно у официального дилера Fischertechnik в России — компании ПАКПАК. Магазин осуществляет доставку в регионы России, а также по странам СНГ и бывшего СССР.

Программа ROBO Pro стоит 1910 рублей, также она входит в комплект конструктора Fischertechnik Robotics 524328 TXT Discovery set, который стоит 28500 рублей.

Share Button

Один комментарий к статье “Компьютерное зрение в Fischertechnik ROBO Pro”

  1. reX

    24.11.2015

    Пока компьютерное зрение все-таки не включено в имеющиеся программы и методики, выходит «завышенная» технология, нецелесообразная для покупки

    Ответить на этот комментарий

Оставить комментарий

© 2014-2017 Занимательная робототехника, Гагарина Д.А., Гагарин А.С., Гагарин А.А. All rights reserved / Все права защищены. Копирование и воспроизведение в любой форме запрещено.
Наверх