Автоматизация стенда Робот-Художник
Компоненты системы управления стендом "Робот – художник". Математическое описание программного обеспечения. Конфигурирование центрального контроллера Siemens. Работа с цветным изображением. Применение системы технического зрения. Работа с камерой.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.02.2016 |
Размер файла | 4,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Автоматизация стенда Робот-Художник
Аннотация
Дипломная работа «Автоматизация стенда Робот-Художник». В данной работе приводятся все необходимые для реализации данного проекта на практике схемы, чертежи, тексты программы для программирования стенда.
В рамках данной работы был разработан код программы в среде математического моделирования MATLAB для обработки цветного изображения, получаемого с веб-камеры.
Также на базе ПЛК Siemens был разработан код позволяющий обрабатывать координаты изображения и передавать сигналы на исполнительную часть проекта, то есть команду на рисование объекта.
Введение
Стенд Робот - Художник невероятный прорыв в области робототехники. Человечество стремилось создать механическое подобие себя задолго до того, как были начаты первые работы в этом направлении, которые в конце концов, привели в начале 60-х годов к успешному применению промышленных роботов.
С каждым годом становится все больше роботов, оснащенных сложной электронной высокотехнологичной аппаратурой, и довольно простых по конструкции роботов-манипуляторов. В движении манипулятора обычно участвует вся цепочка управляемых шарниров, что позволяет таким роботам устанавливать свои исполнительные механизмы в любую позицию в пределах своего рабочего пространства. Манипуляторы относятся к типу наиболее распространенных промышленных роботов, поскольку во всем мире установлено свыше миллиона таких устройств. Окружающие видят их железные «руки» у литейных машин, прессов и металлообрабатывающих станков, на участках сборки и т.д.
В последнее время механические помощники все настойчивее вторгаются и в другие сферы деятельности, а именно туда где, казалось бы с работой может справиться только человек с его творческим мышлением.
Шокирующая реальность науки и невероятные открытия будущего стали сегодня возможными, благодаря тому, что нашли свое воплощение в интеллектуальных информационных системах ориентированных на искусство, в том числе литературу, черчение, живопись, портретистку. Объектом пристального внимания художников - ученых стали проекты с использованием передовых технологий в области робототехники, генной и биоинженерии.
Художники, работающие в сфере технобиологического искусства, в качестве художественного средства используют новейшие технологии и исследовательские методики в области робототехники, человеко-машинных интерфейсов, нанотехнологий и т.д. А главное - это очень актуальная область. Сейчас на территории технобиологического искусства большое внимание уделяется объединению цифровых компьютерных средств и живых систем. На наших глазах возникает и оформляется новый класс «полуживых» произведений искусств. Это настоящая революция как в инженерии, так и в искусстве.
Цель дипломной работы состоит в автоматизации стенда для рисования автопортретов, в создании программы, которая наглядно покажет поэтапное создание автопортрета. При этом программа предоставляет пользователю следующий алгоритм использования:
· Захват изображения и его анализ
· Определение координат полученных контуров изображения
· Передача координат через ОРС сервер на ПЛК
· Подача управляющего сигнала на штриховку рисунка
Для управления технологическим процессом использован контроллер Siemens S7-300. Выбор автоматизации процесса с помощью контроллера обусловлен его преимуществами перед электрической схемой: относительно малое занимаемое пространство, удобство использования, легкость автоматизации процесса и переналадка оборудования, скорость и оперативность работы.
Разработка любых систем управления представляет собой достаточно трудоемкий и многоэтапный процесс. На первом этапе от разработчика требуется изучить объект управления. Для этого зачастую приходится проводить исследования объекта. После этого осуществляется разработка программно-аппаратных средств управления.
1. Обзор стенда «Робот - художник»
1.1 Принцип работы
Стенд робот-художник представляет собой двухкоординатный портальный манипулятор, в котором по оси х перемещается зажимающее приспособление с рисующим элементом (карандашом), а по оси у планшета с закрепленным листом бумаги. Управлять перемещениями можно по средствам ПЛК Siemens. В свою очередь программируемый логический контроллер соединяется с компьютером по средствам ОРС - сервера. К компьютеру присоединена веб-камера, для получения и в дальнейшем обработки изображения.
По нажатию кнопки на стенде, программа в среде МАТLAB производит захват изображения и проводит его анализ, а точнее разложение на контурное изображение и бинарные изображения диапазонов теней. Далее программа определяет координаты контуров полученных изображений и вычисляет уравнения контуров. Эти уравнения контуров через ОРС - сервис пересылаются на ПЛК, где выдается управляющий сигнал на штриховку теневых областей на бумаге, а также на рисование контуров. Штриховка выполняется по правилу - чем больше области тени, тем меньше штриховка. Таким образом, светлые участки на рисунке будут светлее, а темные - темнее за счет визуального восприятия плотности штриховки.
1.2 Конструкция стенда
На рисунке, приведенном ниже подробно описаны все элементы, находящиеся на стенде «Робот - художник».
Рис.1.1. 1- Линейный привод, отвечающий за перемещение платформы с листом бумаги условно «вперед-назад» (координата У). Под ним сбоку расположены два датчика - отвечающие за ограничения в перемещении каретки привода. 2 - Линейный привод, отвечающий за перемещение фломастера условно «влево-вправо» (координата Х). Для него справедливо все то, что для первого линейного привода. 3,4 - контроллеры двигателей CMMS-ST. По одному контроллеру на каждый двигатель. 5 - датчик закрытия фиксирующей рамки для бумаги (датчик аварийной остановки двигателя). 6 - минисупорт - пневматический цилиндр, который должен обеспечить прижатие направляющей с фломастером.
Рис.1.2. 7 - 5/2 распределитель управляющий минисупортом. 8 - дросель позволяющий настраивать скорость опускания минисуппорта, а следовательно и фломастера, 9 - стандартный блок подготовки воздуха.
Рис.1.3. 10 - блок питания на 48 В для питания двигателей. 11 - блок питания 24В для питания контроллеров и датчиков. 12 - 3 шины. Раздача 0, 24, 48 В. 13,14 - монтажные платы обеспечивающие связь с контроллером Siemens.
ПЛК Siemens S7-300 выполняет функцию центрального контроллера.
Рис.1.4 Промышленный контроллер Siemens S7-300 и дополнительные модули.
Siemens S7-300 - это модульный программируемый контроллер универсального назначения. Он является идеальным изделием для работы в промышленных условиях благодаря высокой степени электромагнитной совместимости, высокой стойкости к вибрационным нагрузкам. Быстрое выполнение команд, поддержка математики с плавающей запятой, удобный интерфейс настройки параметров, человеко-машинный интерфейс, диагностические функции, парольная защита.
2. Описание принципа работы программной части
На рис. 2.1 схематически изображена взаимосвязь исполнительной части стенда, контроллера и ПК.
Рис.2.1 Взаимосвязь всех частей стенда
На персональном компьютере, на котором был установлен ОРС SERVER, программное обеспечение, осуществляющее связь контроллера с программным приложением, которое так же установлено на ПК. Программное обеспечение разработано в среде MATLAB, и включает в себя функции по осуществлению подключения к ОРС Server. Помимо этого программное обеспечение включает в себя алгоритм захвата изображения и его дальнейший анализ. В качестве контроллера взят Siemens S7-300 с дополнительным модулем вх/вых и модулем Ethernet.
3. ОРС Server
OPC Server (OLE for Process Control) - семейство программных технологий, предоставляющих единый интерфейс для управления объектами автоматизации и технологическими процессами.
Стандарт OPC разрабатывался с целью сократить затраты на создание и сопровождение приложений промышленной автоматизации. В начале 90-х у разработчиков промышленного ПО возникла потребность в универсальном инструменте обмена данными с устройствами разных производителей или по разным протоколам обмена данными.
Суть OPC проста -- предоставить разработчикам промышленных программ универсальный фиксированный интерфейс (то есть набор функций) обмена данными с любыми устройствами. В то же время разработчики устройств предоставляют программу, реализующую этот интерфейс (набор функций).
Исходя из области применения OPC серверов в АСУ предприятия различают несколько уровней управления:
· нижний уровень -- полевые шины (fieldbus) и отдельные контроллеры;
· средний уровень -- цеховые сети;
· уровень АСУ ТП -- уровень работы систем типа SCADA;
· уровень АСУП -- уровень приложений управления ресурсами.
Каждый из этих уровней может обслуживаться OPC сервером, поставляя данные OPC клиенту на более высоком уровне или даже «соседу».
В данной дипломной работе была использована программа KEPServerEX V5.0
KepserverEX - это ОРС сервер, который обеспечивает связь с более чем сотней разных контроллеров, а также других технологических устройств. Он может использоваться любым ОРС - клиентом, который поддерживает технологию ОРС: системой визуализации и контроля, системами MES, ERP, и любой другой системой этого класса. Используя универсальность технологии ОРС, KepserverEX максимально расширяет горизонты применения ОРС - серверов и позволяет создавать сложные системы управления технологической системой через один интерфейс, вне зависимости от ее сложности.
Рис.3.1 Выбор интерфейсного драйвера
Для того чтобы настроить соединение первым делом необходимо в окне программы KepserverEX создать новую рабочую область, а затем и канал соединения. Далее был выбран интерфейсный драйвер, через который осуществляется доступ к контроллеру Siemens (рис 3.1).
Это необходимо для того, чтобы была возможность обмена данными с контроллером. Был выбран драйвер Siemens TCP/IP Ethernet. После выбора видеоадаптера был осуществлен выбор и настройка центрального модуля контроллера. В окне Tag Properties задаются имя тега и адрес сигнала, который будет связан с тегом. Используется адресация, присущая типу выбранного контроллера.
После того как было задано необходимое для работы число тегов, и для каждого из них определена верная адресация, другие программные приложения получили возможность работать через ОРС сервер с контроллером, запрашивать значения сигналов и данных контроллера и записывать значения сигналов и данных в контроллер.
Если значения сигнала определено ОРС сервером как Unknown, это означает, что ОРС серверу не удалось произвести подключение к контроллеру или адресация, используемая в тегах, не определена в контроллере.
3.1 Применение Ethernet
Ethernet - семейство технологий пакетной передачи данных для компьютерных сетей.
Стандарты Ethernet определяют проводные соединения и электрические сигналы на физическом уровне, формат кадров и протоколы управления доступом к среде - на канальном уровне модели OSI. Ethernet в основном описывается стандартами IEEE группы 802.3. Ethernet стал самой распространенной технологией ЛВС в середине 90-х годов, вытеснив такие устаревшие технологии, как Arcenet и Token ring.
В стандарте первых версий (Ethernet v.1 и Ethernet v.2) указано, что в качестве передающей среды используется коаксиальный кабель, в дальнейшем появилась возможность использовать витую пару и оптический кабель.
· Коаксиальный кабель - электрический кабель, состоящий из расположенных соосно центрального проводника и экрана. Обычно служит для передачи высокочастотных сигналов (рис.3.2)
Рис.3.2. Устройство коаксиального кабеля. 1 - внутренний проводник, 2 - изоляция (сплошной полиэтилен), 3 - внешний проводник, 4 - оболочка (светостабилизированный полиэтилен)
Благодаря совпадению осей обоих проводников у идеального коаксиального кабеля оба компонента электромагнитного поля полностью сосредоточены в пространстве между проводниками (в диэлектрической изоляции) и не выходит за пределы кабеля, что исключает потери электромагнитной энергии на излучение и защищает кабель от внешних электромагнитных наводок. В реальных кабелях ограниченные излучения наружу и чувствительность к наводкам обусловлены отклонениями геометрии от идеальности.
· Оптический кабель - основное применение находят в качестве среды передачи на волокно-оптических телекоммуникационных сетях различных уровней: от межконтинентальных магистралей до домашних компьютерных сетей. Применение оптических волокон для линий связей обусловлено тем, что оптическое волокно обеспечивает высокую защищенность от несанкционированного доступа, низкое затухание сигнала при передачи информации на большие расстояния и возможности оперировать с чрезвычайно высокими скоростями передачи (рис.3.3).
Рис.3.3 - оптический кабель
· Витая пара - вид кабеля связи, представляет собой одну или несколько пар изолированных проводников, скрученных между собой, покрытых пластиковой оболочкой (рис.3.4).
Рис.3.4. - витая пара категории 6
3.2 MAC - адреса
При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта должна иметь уникальный шестибайтный номер (MAC- адрес), прошитый в ней при изготовлении. Этот номер используется для идентификации отправителя и получателя кадра, и предполагается, что при появлении в сети нового компьютера (или другого устройства, способного работать в сети) сетевому администратору не придется настраивать MAC - адрес.
Уникальность МАС адресов достигается тем, что каждый производитель получает в координирующем комитете диапазон из шестнадцати миллионов адресов, и по мере исчерпания выделенных адресов может запросить новый диапазон. Поэтому по трем старшим байтам MAC - адреса можно определить производителя.
MAC - адрес считывается один раз из ПЗУ по инициализации сетевой карты, в дальнейшем все пакеты генерируются операционной системой. Все современные операционные системы позволяют поменять его. Некоторые драйвера сетевых карт давали возможность изменить его в настройках, но смена работает абсолютно для любых карт.
3.3 Разновидности Ethernet
В зависимости от скорости передачи данных, и передающей среды существует несколько вариантов технологии. Независимо от способа передачи стек сетевого протокола программы работают одинаково практически во всех нижеперечисленных вариантах.
Большинство Ethernet карт и других устройств имеет поддержку нескольких скоростей передачи данных, используя автоопределение скорости и дуплексности, для достижения наилучшего соединения между двумя устройствами. Если автоопределение не срабатывает, скорость подстраивается под партнера, и включается режим полудуплексной передачи.
Ранние модификации Ethernet:
· Xerox Ethernet - оригинальная технология, скорость 3 Мбит/сек, существовала в двух вариантах Version 1 и Version 2, формат кадра последней версии до сих пор имеет широкое применение.
· 1BROAD36 - широкого распространения не получил. Один из первых стандартов, позволяющий работать на больших расстояниях. Использовал технологию широкополосной модуляции, похожей на ту,что используется в кабельных модемах. В качестве среды передачи данных использовался коаксиальный кабель.
· 1BASE5 - тоже известный, как StarLan, стал первой модификацией Ethernet - технологии, использующий витую пару. Работал на скорости 1 Мбит/с, но не нашел коммерческого применения.
4. Математическое описание программного обеспечения
4.1 Работа с цветным изображением
Для того чтобы реализовать штриховку рисунка Роботом- художником необходимо решить вопросы, связанные с техническим (машинным) зрением. В программе математического моделирования MATLAB цветные изображения представляются в виде индексированных изображений или в виде RGB изображений.
Системы технического зрения (СТЗ) призваны и во многих случаях уже решают задачи по дополнению или даже замене человека в областях деятельности, связанных со сбором и анализом зрительной информации. Уровень их использования в прикладных областях является одним из наиболее ярких и наглядных интегральных показателей уровня развития высоких технологий в самых различных отраслях промышленности.
Несмотря на значительные успехи, достигнутые в области машинного зрения, эффективное его использование в качестве средства автоматизации приходится, прежде всего, на наиболее развитые производства с общей высокой культурой и технологией. Следует констатировать тот факт, что не существует универсального математического аппарата, который позволил бы сформировать общий формализованный подход к построению систем технического зрения. Поэтому, с точки зрения подготовки специалистов в области машинного зрения, очень важны публикации, в которых отдельные математические средства и модели рассматриваются в контексте системного подхода к решению той или иной практической задачи.
Были разработаны специальные языки программирования, в которых операции по обработке изображений были оформлены в виде элементов языка. Иногда эти языки содержали также операции для управления промышленными роботами. Сегодня стало очевидно, что хорошие системы обработки изображения можно и нужно писать на языке программирования общего назначения, например, на языке MATLAB.
Хотя машинное зрение - процесс применения компьютерного зрения для промышленного применения, полезно перечислить часто использованные аппаратные и программные компоненты. Типовое решение системы машинного зрения включают в себя несколько следующих компонентов:
· Одна или несколько аналоговых или цифровых камер (черно-белые или цветные) с подходящей оптикой для получения изображений
· Программное обеспечение для изготовления изображений для обработки. Для аналоговых камер это оцифровщик изображений
· Процессор (современный ПК с многоядерным процессором или строенный процессор, например - ЦСП)
· Программное обеспечение машинного зрения, которое представляет инструмент для разработки отдельных приложений программного обеспечения.
· Оборудование вывода-ввода или каналы связи для доклада о полученных результатов
· Умная камера: одно устройство, которое включает в себя все вышеперечисленные пункты.
· Очень специализированные источники света (светодиоды, люминесцентные и галогенные лампы и т.д.)
· Специфичные приложения программного обеспечения для обработки изображений и обнаружения соответствующих свойств.
· Датчик для синхронизации частей обнаружения (часто оптичесикй или магнитный датчик) для захвата и обработки изображений.
· Приводы определенной формы используемые для сортировки и отбрасывания бракованных деталей.
Датчик синхронизации определяет, когда деталь, которая часто движется по конвейеру, находится в положении, подлежащем инспекции. Датчик запускает камеру, чтобы сделать снимок детали, когда она проходит под камерой и часто синхронизируется с импульсом освещения, чтобы сделать четкое изображение. Освещение, используемое для подсветки деталей предназначено для выделения особенностей, представляющих интерес, и скрытия или сведения к минимуму появление особенностей, которые не представляют интереса (например, тени или отражения). Для этой цели часто используются светодиодные панели подходящих размеров и расположения.
Изображение с камеры попадает в захватчик кадров или в память компьютера в системах, где захватчик кадров не используется. Захватчик кадров - это устройство оцифровки (как часть умной камеры или в виде отдельной платы в компьютере), которое преобразует выходные данные с камеры в цифровой формат (как правило, это двумерный массив чисел, соответствующий уровню интенсивности цвета отдельной точки в области зрения, называемых пикселями) и размещает изображения в памяти компьютера, так чтобы оно могло быть обработано с помощью программного обеспечения для машинного зрения.
Программное обеспечение, как правило, совершает несколько шагов для обработки изображений. Часто изображение для начала обрабатывается с целью уменьшения шума или конвертации множества оттенков серого в простое сочетание черного и белого (бинаризации). После первоначальной обработки программа будет считать, производить измерения и/или определять объекты, размеры, дефекты и другие характеристики изображения. В качестве последнего шага, программа пропускает или забраковывает деталь в соответствии с заданными критериями. Если деталь идет с браком, программное обеспечение подает сигнал механическому устройству для отклонения детали; другой вариант развития событий, система может остановить производственную линию и предупредить работника для решения этой проблемы и сообщить, что привело к неудаче.
Хотя большинство систем машинного зрения полагаются на «черно-белые» камеры, использование цветных камер становится все более распространенным явлением. Кроме того, все чаще системы машинного зрения используют цифровые камеры прямого подключения, а не камеры с отдельным захватчиком кадров, что сокращает расходы и упрощает систему.
«Умные» камеры со встроенными процессорами, захватывают все большую долю рынка машинного зрения. Использование встроенных (и часто оптимизированных) процессоров устраняет необходимость в карте захватчика кадров и во внешнем компьютере, что позволяет снизить стоимость и сложность системы, обеспечивая вычислительную мощность для каждой камеры. «Умные камеры, как правило дешевле, чем системы, состоящих из камеры, питания и/или внешнего компьютера, в то время как повышение мощности встроенного процессора и ЦСП часто позволяет достигнуть сопоставимой или более высокой производительности и больших возможностей, чем обычные ПК - системы.
Коммерческие пакеты программ для машинного зрения и пакеты программ с открытым исходным кодом обычно включают в себя ряд методов обработки изображений, таких как:
· Счетчик пикселей: подсчитывает количество светлых или темных пикселей
· Бинаризация: преобразует изображение в серых тонах в бинарное (белые и черные пиксели)
· Сегментация: используется для поиска и/или подсчета деталей
· Поиск и анализ блобов: проверка изображения на отдельные блобы связанных пикселей (например, чёрной дыры на сером объекте) в виде опорных точек изображения. Эти блобы часто представляют цели для обработки, захвата или производственного брака.
· Надежное распознавание по шаблонам: поиск по шаблону объекта, который может быть повернут, частично скрыт другим объектом, или отличным по размеру.
· Чтение штрих - кодов: декорирование 1D и 2D кодов, разработанных для считывания или сканирования машинами
· Оптическое распознавание символов: автоматизированное чтение текста, например, серийных номеров
· Измерение: измерение размеров объектов в дюймах или миллиметрах
· Обнаружение краев: поиск краев объектов
· Сопоставление шаблонов: поиск, подбор, и/или подсчет конкретных моделей
В большинстве случаев, системы машинного зрения используют последовательное сочетание этих методов обработки для выполнения полного инспектирования. Например, система, которая считывает штрих-код может также проверить поверхность на наличие царапин или повреждения и измерить длину и ширину обрабатываемых компонентов.
Применение машинного зрения разнообразно, оно охватывает различные области деятельности, включая, но не ограничиваясь следующими:
· Крупное промышленное производство
· Ускоренное производство уникальных продуктов
· Системы безопасности в промышленных условиях
· Контроль предварительного изготовления объектов (например, контроль качества, исследование допущенных ошибок)
· Системы визуального контроля и управления (учет, считывание штрих-кодов)
· Контроль автоматизированных транспортных средств
· Контроль качества и инспекция продуктов питания
В автомобильной промышленности системы машинного зрения используются в качестве руководства для промышленных роботов, а также для проверки поверхности окрашенного автомобиля, сварных швов, блоков цлиндров и многих других компонентов на наличие дефектов.
Машинное зрение (техническое зрение) относится к инженерным автоматизированным системам визуализации в промышленности и на производстве, и в этом качестве машинное зрение связано с самыми разными областями компьютерных наук: компьютерное зрение является более общей областью исследований, тогда как машинное зрение является инженерной дисциплиной, связанной с производственными задачами. Цветное изображение состоит из трех цветов: синего, зеленого и красного. Это, так называемая система RGB (от английского Red, Green, Blue). Она принята во всем мире и все устройства - компьютеры, телефоны, мониторы и т.д. ее поддерживают. Белый цвет, как известно, состоит из всех трех цветов, однако стоит нам уменьшить уровень одного из них, как получим совершенно другой результирующий цвет. Уровни принято изменять в пределах от 0 до 1. Таким образом, цветное изображение состоит из трех матриц: красного, зеленого и синего цветов. Каждое число в матрице указывает уровень соответствующего цвета в соответствующем пикселе. Рисунок более наглядно это поясняет. На рисунке 4.1 выделенный фрагмент изображения содержит пиксель (его значения в матрицах помечены черным), имеющий результирующий цвет, состоящий из 0,5176 красного, 0,1608 зеленого и 0,0627 синего.
В поставленной задаче работа ведется с черно-белым изображением, так как манипулятор рисует карандашом. Значит нет необходимости обрабатывать «тяжелые» цветные изображения, поэтому производится перевод цветного изображения в черно - белое. В MATLAB есть встроенная функция rgb2gray. Она позволяет перевести любое цветное изображение в черно-белое в оттенках серого.
Рис. 4.1 - принцип работы RGB системы.
Черно - белые изображения представлены в виде матрицы, каждый элемент которой описывает величину яркости. Величины изменяются от 0 до 255, 0 - это полностью черный пиксель, 255 - полностью белый пиксель.
Теперь необходимо, чтобы программа нашла линии на изображении. Для этого есть функция edge, которая находит на изображении грани. Работает она, в общем виде, следующим образом: если в матрице изображения встречаются области с резким перепадом уровня света, то функция распознает это как грань какого-либо объекта или линии на изображении.
Например, если фон приблизительно одинаков по уровню и колеблется где-то от 16 до 30, то объект на изображении более яркий и уровни света колеблются в районе 150. Соответственно, функция распознает край объекта как линию. Результатом работы функции будет двоичное изображение. Двоичное изображение - это изображение, пиксели которого принимают только два значения: 0 - (черный цвет) и 1 - (белый цвет). На нашем двоичном изображении после работы функции edge будет видна белая линия границы всех контрастных объектов (рис. 4.2).
Таким образом, результирующая матрица содержит единицы в тех пикселях где найдены линии на изображении, и нули где их, соответственно нет.
Рис.4.2 - линии, найденные на изображении.
Следующая задача, которая возникает: последовательный вывод координат линий. Т.е. нужно, чтобы карандаш прорисовывал линию не отрываясь, от начала до конца. Единственно верное решение в таком случае - последовательное следование по пикселям линии до ее конца. Для этого в программе введена еще одна двоичная матрица, такого же размера, как и наше двоичное изображение с линиями, только заполнена она нулями полностью. Называется она mask - это видно в коде программы.
Нужно будет последовательно просматривать матрицу с линиями. Почленно. По-порядку, пиксель за пикселем. При этом в матрице mask будем ставить единицы на тех местах, на которых в матрице с линиями уже пробовали. Таким образом, сверяясь с матрицей mask, исключим повторное просматривание тех пикселей, где уже побывали. Так мы идем постепенно, пока не наткнемся на линию. После этого начинает работать функция прорисовки линии DrawLine.
Функция DrawLine начинает просмотр всех 8 рядом находящихся пикселей начала линии. Начинается осмотр справа по часовой стрелке. Если функция натыкается на соседний пиксель линии, то она передает свои текущие координаты в командное окно и перескакивает на новый пиксель, далее процесс повторяется, таким образом мы последовательно выводим в командное окно координаты линии. При этом также заполняется матрица mask, и точно так же все перемещения сверяются по ней и программа не передаст одни и те же координаты дважды. Как только функция доходит до конца линии (нет больше рядом находящихся пикселей), то процесс выполнения программы возвращается к построчному просмотру изображения и поиску следующей линии. При этом все пиксели в которых побывали обе эти функции помечены в матрице mask. Т.е. те линии координаты которых уже выведены не принимаются в дальнейший поиск.
Все. Вывод линий закончен. Теперь необходимо вывести линии областей штриховки. Все процессы вывода координат точно такие же, единственно что отличается - это поиск самых кривых границ штриховки.
Принцип таков: градируем все изображение в строго определенные уровни. Так как каждый пиксель черно-белого изображения может принимать значение от 0 до 255, мы берем эту разницу и делим на пример на 10 промежутков. От 0 до 25, от 26 до 50 и т.д. В коде программы это переменная NOGrades, которая определяет количество таких интервалов. Далее просматриваем каждый пиксель черно-белого изображения и смотрим в какой интервал он попадает. После того как определили интервал, приравниваем его (пиксель) значение к середине интервала. Таким образом, пиксели в нашем изображении принимают строго определенные значения.
В коде программе есть функция edge, которая находит резкие перепады уровней на изображении, а полученное изображение сейчас именно с резкими перепадами, то результатом будет набор замкнутых (именно замкнутых) линий областей штриховки (рис. 4.3).
Рис.4.3 - линии областей штриховки
Процесс вывода координат линий точно такой же как и вывода координат обычных линий изображения. Таким образом нет необходимости выводить координаты тех пикселей у которых расстояние меньше трех пикселей. Все координаты и так выводятся правильно.
Цветное индексированное изображение - изображение, цвет каждого элемента которого задается в специальной таблице - палитре.
Таким образом, каждый элемент изображения имеет в качестве цвета некий условный индекс, который расшифровывается по таблице цветов (палитре) в реальные компоненты цвета, что позволяет для каждого такого элемента построить «истинный» цвет в заданной цветной модели.
Такая организация изображения делает размер его файла небольшим, ведь теперь не надо описывать цветовые значения каждого пикселя.
Наряду с высокой скоростью обработки, небольшими размерами файлов и удобными средствами для управления цветом,индексированные изображения имеют серьезный недостаток, связанный с ограниченными возможностями цветной таблицы, не позволяющей создать реалистические изображения. Из-за определенного ограничения этот формат становится неэффективным, когда изображение содержит более чем 256 уникальным цветов.
Индексированное изображение имеет две компоненты: числовую матрицу данных и матрицу цветной карты. Матрица цветовой карты представляет собой массив размером mx3, где m - длина цветовой карты, которая равна числу различных цветов на данном изображении. Каждая строка матрицы цветовой карты обозначает красную, зеленую и синие компоненту одного цвета. Индексированное изображение использует «прямое отображение» величин яркости (насыщенности, цветного тона) пикселов и значения цветовой карты. Цвет каждого пикселя определяется с помощью соответствующего числа, стоящего в матрице данных, которое используется в виде указателя на матрицу цветовой карты.
Медианный фильтр - один из видов цифровых фильтров, широко используемый в цифровой обработке сигналов и изображений для уменьшения уровня шума. Медианный фильтр является нелинейным КИХ (конечная импульсная характеристика) - фильтром.
Значения отсчетов внутри окна фильтра сортируются в порядке возрастания (убывания); и значение, находящееся в середине упорядоченного списка, поступает на выход фильтра. В случае четного числа отсчетов в окне выходное значение фильтра равно среднему значению двух отсчетов в середине упорядоченного списка. Окно перемещается вдоль фильтруемого сигнала и вычисления повторяются (рис.4.4).
Рис.4.4 - медианный фильтр
Медианная фильтрация - эффективная процедура обработки сигналов, подверженных действию импульсных помех.
Монохромное изображение - исходя из определения монохромного излучения, изображения, содержащее свет одного цвета (длины волны), воспринимаемый как один оттенок (в отличие от цветного изображения, содержащего различные цвета) (рис.4.5).
Рис.4.5 - монохромное изображение
Монохромными изображениями, например, являются рисунки тушью, карандашом или углем, черно-белые фотоснимки, изображения на экране черно - белых телевизоров или компьютерных мониторов (независимо от истинного цвета их свечения).
Бинарное (двоичное) изображение иногда могут называть «монохромным» и «черно-белым», что в общем случае верно и ведет иногда к путанице.
Бинарное растровое изображение может являться монохромным в случаях, когда:
· Один вид пикселов (не важно «0» или «1») отображается абсолютно черным цветом, а другой любым произвольным ( например, «черное-белый! растр, «черно - зеленый» и т.д.);
· Оба вида (и «0», «1») отображаются одним оттенком, но с разной яркостью (например, «темно - и светло - серый», «ярко - зеленый», «синий и серый» и т.д.).
Бинарное изображение не будет являться монохромным, если разные виды пикселов отображаются разными оттенками цвета (например, «желто - зеленое», «красно - синее» растровое изображение и пр.).
5. Работа с камерой
Формирование высококачественных исходных видеоданных является одним из необходимых условий для их эффективной обработки с целью получения достоверной информации. Эта информация в дальнейшем служит основной для принятия решений. Таким образом, от качества исходных данных зависит достоверность принятых решений. Поэтому задача формирования исходных данных является актуальной и для ее решения может использоваться Image Acquisition Toolbox. Это приложение позволяет непосредственно подключать, настраивать и управлять средствами формирования изображений и потоков видео. Image Acquisition Toolbox существенно расширяет среду технических вычислений MATLAB, также обеспечивает высокий уровень проведения анализа и обработки данных. Приложение Image Acquisition Toolbox работает со следующим аппаратным обеспечением - платы Matrox, платы Data Translation, платы видеозахвата в форматах WDM (Windows Driver Model) и VFW (Video for Windiws), web - камеры, видеокамеры и интерфейсом USB, цифровые видеокамеры.
Приложение Image Acquisition Toolbox служит для решения проблемно - ореинтированных задач захвата изображений. Используя функции приложения, можно связать в единую систему возможности MATLAB и устройства захвата изображений. Устанавливая различные свойства объектов, существует возможность проведения контроля разнообразных аспектов процесса захвата, таких как, например, количество захваченных данных.
После установки устройства захвата изображений, ее можно использовать как триггерную систему. В приложении все функции захвата изображений реализованы по так называемой триггерной системе или пусковой схеме. Приложение поддерживает некоторые типы запуска, при которых существует возможность контроля некоторых параметров захвата. Например, использование устройства для синхронизации захвата с внешними устройствами. Для обработки захваченных данных их необходимо перенести в рабочее пространство MATLAB. Когда фрейм захватывается, то приложение запоминает его в буфер памяти.
Для подсоединения устройств захвата изображений к системе MATLAB необходимо создать исходные видеообъекты. Эти объекты обеспечивают связь между системой MATLAB и устройством. Свойства этих объектов можно использовать для контроля различных параметров захвата. Перед созданием объекта, пользователь должен иметь некоторую информацию об устройстве и способе его подсоединения.
Для корректной работы устройства захвата изображений с приложением необходимо знать следующую информацию:
· Название адаптера для подключения устройств захвата изображений;
· ID устройства для организации доступа;
· Формат видеопотока;
Адаптер представляет собой программное обеспечение, которое используется для связи с устройствами захвата изображений через их драйвера. Приложение включает адаптеры нескольких производителей оборудования захвата. Адаптер устанавливает персональный номер каждому устройству, с которым он связан. Адаптер устанавливает для первого устройства номер ID 1, для второго устройства - соответственно ID 2 и т.д.
В данной дипломной работе была использована камера Logestic QuickCam for Notebooks c USB - подключением. Для камер с USB - подключением, из списка включенных в приложение Image Acquisition Toolbox используется только адаптер “winvideo”. В работе используется только одно устройство захвата изображения, поэтому номер ID везде задается «1», формат видеопотока был выбран в соответствии с техническими характеристиками видеоустройства.
6. Компоненты системы управления стендом «Робот - художник»
6.1 Обзор привода движения системы
В компоненты системы работы стенда, входят следующие компоненты. Она построена на базе шаговых преобразователей движения, вращательного в поступательное. В нее входят:
1) 2 контроллера для шаговых двигателей CMMS - ST;
2) 2 шаговых двигателя EMMS - ST - 42 - S - S;
3) 2 линейных преобразователя движения EGSK-33-300-6P;
4) 4 датчика крайних положений
5) Блок питания 24 В постоянного тока для контроллера
6) Блок питания 48 В постоянного тока для шаговых двигателей
Внешний вид шагового двигателя, используемого в системе, представлен на (рис.6.1).
Рис. 6.1. Внешний вид шагового двигателя EMMS - ST - 57 - S - SE
Преобразователь движения применяется для преобразования вращательного движения ротора двигателя в поступательное движение каретки привода. Данное преобразование осуществляется с помощью шарико -винтовой передачи (рис.6.2).
Рис.6.2. Преобразователь движения с шарико-винтовой передачей. 1 - крепежные резьбовые отверстия для установки корпуса муфты; 2 - Приводной вал; 3 - Шарико-винтовая передача; 4-Крепежное отверстие для прямого монтажа; 5 - крепежные отверстия и центрирующие элементы для монтажа нагрузки; 6 - каретка; 7 - базовый профиль со встроенной направляющей качения; 8 - крепежные резьбовые отверстия для крышки; 9 - крепежные резьбовые отверстия для рейки для датчиков; 10 - крепежная резьба для установки флага датчиков; 11 - место смазки шарико - винтовой передачи
Шарико-винтовая передача преобразует вращательное движение двигателя в линейное движение. Таким образом каретка перемещается вперед и назад. Каретка перемещается на подшипниках качения. Точка начала отсчета определяется с помощью индуктивных датчиков.
Привод шарико -винтовой передачи данной маркировки предназначен для точного позиционирования полезной нагрузки
Таблица 1. Технические данные линейного привода
Рис.6.3 Допустимые моменты и усилия линейного привода.
В данной работе используются два контроллера двигателя разных маркировок, для более точного позиционирования каждого из двигателей.
Для работы контроллера необходимы два блока питания, один из которых питает силовой каскад контроллера, а другой - его управляющие контуры.
Настройка параметров контроллера (коэффиценты регуляторов момента и скорости, выбор режимов позиционирования) и снятие характеристик шагового электропривода осуществляется с использованием программы FCT, поставляемой вместе с контроллером.
Рис. 6.4. Внешний вид контроллера CMMS - ST
6.2 Конфигурация контроллера двигателя
Контроллер шагового двигателя CMMS - ST представляет собой полностью цифровой регулятор позиционирования для управления двухфазными гибридными шаговыми двигателями.
Устройство CMMS-ST предназначено для управления гибридными шаговыми двигателями с максимальным током до 8А.
Устройство может работать с цифровыми и аналоговыми управляющими сигналами, а также может подключаться к сети с помощью интегрированной шины CAN. Кроме того, существует возможность развертывать другие системы магистральных шин с помощью разъема для модульного технологического расширения.
Интерфейс настройки параметров FCT (Festo Configuration Tool) обеспечивает простое обслуживание и ввод в эксплуатацию контроллера шагового двигателя. Графическое представление и использование пиктограмм обеспечивают интуитивно понятную настройку параметров.
Компактность
· Минимальные размеры
· Полная интеграция всех компонентов контроллера с силового блока
· RS232/485 и интерфейса CANopen
· Интегрированный тормозной прерыватель
· Интегрированный фильтр ЭМС
· Автоматическая активация интегрированного в двигатель стопорного тормоза
· Соблюдение действующих стандартов CE и EN без необходимости в дополнительных внешних мерах (длина кабеля двигателя до 25 метров)
Ввод - вывод
· Свободно программируемые сигналы ввода-вывода
· 12 - битный аналоговый сигнал ввода с высокой разрешающей способностью
· Режим шаговой работы /обучения
· Простое подключение к вышестоящей системе управления вводы-выводы
· Режим синхронной работы
· Рабочий режим «главный модуль/исполнительное устройство»
Интегрированный интерфейс CANopen
· Открытый интерфейс по стандарту CANopen
· Профиль Festo для манипулирования и позиционирования
· Протокол по стандарту CANopen CIA DS 301 и CIA DSP 402
· Содержит режим интерполяционного позиционирования для многоосевого применения
Функция «Motion Control» (Управление перемещениями)
· Рабочие режимы: регулятор крутящего момента, частоты вращения или положения.
· Интегрированное управление позиционированием
· Оптимизированное по времени (трапециевидное) или плавное ( S - образное) позиционирование
· Абсолютные и относительные перемещения
· Позиционирование между точками
· Синхронизация положений
· Электронный редуктор
· 64 набора данных положения
· 8 траекторий движения
· разнообразные методы перемещения в исходное положение
Интегрированное цикловое программное управление
· Автоматическая отработка набора данных положения без участия вышестоящей системы управления
· Линейные и цикличные последовательности позиционирования
· Настраиваемое время задержки
· Позиция покоя и обусловленные места перехода
· Определяемые положения останова для некритических точек останова
Многоосевые перемещения с возможностью интерполяции
С помощью подходящей системы управления и протокола CANopen контроллер CCMS - ST может выполнять перемещения с интерполяцией.
Для этого система управления задает необходимые значения положений фиксированной тактовой сетке. Регулятор положения самостоятельно определяет значения данных между двумя опорными точками по методу интерполяции.
Программа настройки конфигурации Festo Configuration Tool (FCT)
· Максимальное упрощение ввода в эксплуатацию и диагностики
· Конфигурирование контроллера двигателя, двигателя и оси
· Автоматическая настройка всех параметров регулирования при использовании механических компонентов Festo
Для начала работы с приводами стенда необходимо сконфигурировать их индивидуальный контроллер. Сначала создаем проект и назначаем имя.
На первом этапе во вкладке “Components” вводим оборудование с которым будем работать, для этого открываем список и выбираем нужные:
1) Контроллер для шаговых двигателей CMMS-ST-C8-7-G2
2) Двигатель типа EMMS-ST-57-S-SE
3) Линейный преобразователь типа EGSK-33-300-6P
После ввода оборудования окно будет иметь следующий вид (рис.6.1)
Рис.6.5
Далее выбираем во вкладке application data в списке control interface что линейный преобразователь подключен к дискретным входам/выходам показано на (рис. 6.5).
Рис.6.6.
Далее во вкладке Digital I/O выбираем входы и выходы, которые используем как на (рис.6.6).
Рис.6.7
Во вкладке Position Set Table вводим в таблицу начальные и конечные значения для реперных точек. Значения показаны на (рис.6.8).
Рис.6.8.
В данной работе будет использоваться еще один контроллер двигателя с маркировкой: CMMS-ST-C8-7. Его конфигурация происходит аналогично с предыдущим контроллером.
7. Конфигурирование центрального контроллера SIEMENS
Используемый в работе контроллер Siemens предназначен для реализации связи с пакетом MATLAB для обработки изображений, сигналов и управления работой стенда.
Перед тем, как приступить к программированию контроллера, необходимо указать в проекте реальное оборудование, которое используется для работы на стенде. Первоначально нужно выбрать тип используемой станции Simatik 300 Station. Серия контроллера CPU 312 C с модулем Ethernet для привязки с MATLAB.
Вставка компонентов Simatic.
Simatic Step7 является средой для программирования контроллеров Siemens S7 200/300/400. Предполагается, что Step уже установлен на рабочий компьютер. Для начала работы в среде Step 7 необходимо открыть Simatic Manager.
Для того чтобы создать новый проект необходимо на панели инструментов окна Simatic Manager выбрать File -> New. В появившемся окне в поле Name ввести имя создаваемого проекта (рис.7.1).
Рис.7.1 - конфигурация проекта
После ввода имени для проекта и нажатия кнопки ОК появляется окно пустого проекта. Необходимо выбрать тип станции, с которой предстоит работать.
Выберите Insert ->Station-> 2 simatic 300 Station, как это показано на (рис.7.2)
Рис.7.2 - конфигурация проекта
Необходимая для работы контроллера конфигурация показана на рис. 7.3.
Прежде всего, необходимо вытащить в пустое пространство слева Rail (используйте поиск по каталогу справа).
В конфигурации проекта участвуют следующие позиции:
- CPU 312C (модуль ЦПУ, всегда вторая позиция)
- D16/DQ16 (модуль дискретных входов/выходов, четвертая позиция)
- SM334 (модуль аналоговых входов/выходов)
Затем сохраняем конфигурацию и закрываем окно. Проект сконфигурирован, теперь можно приступать к написанию программы
Рис.7.3 - конфигурация проекта
8. Реализация программной части с использованием контроллера Siemens
По нажатию кнопки «старт» на стенде, сигнал от нее приходит на ПЛК Siemens, откуда при помощи OPC -сервера транслируется в МАТLAB, в котором в непрерывном цикле работает программа обработки изображения.
После того, как MATLAB получил этот сигнал, он делает снимок с веб-камеры и, анализируя его, получает таблицу из двух столбцов и N строк, где 1 - это Х координата точки на изображении, а столбец 2 - Y координата. N - это количество точек контура. В зависимости от размера обрабатываемого изображения контуров может быть много, для того чтобы их разделить можно ввести дополнительную строку «виртуальной точки» с координатами, допустим [-255, -255].
В течение всего этого времени с Siemens на Matlab также проходит разрешающий сигнал. Он равен 1, если стенд готов рисовать и 0 - если это невозможно (есть ошибка на контроллерах двигателя, произошло столкновение с рамкой, рамка поднята - в общем, любое отклонение от нормальной работы).
Если программа выдает разрешающий сигнал =1, то Matlab выбрасывает через OPC Server в Siemens координату первой точки изображения.
В Siemens координаты точки пересчитываются в физические координаты точки на листе (масштабируются), а затем преобразуются в значения напряжений (от 0 до 10 В).
Для каждой из составляющих координаты точки организуется ПИД-регулятор (один для Х и один для Y). У ПИД - регулятора в качестве уставки передается преобразованная как описано выше составляющая координаты, а в качестве текущей составляющей используется текущее значение положения привода, которое приходит с контроллера привода (аналоговый выход 17). Разность установленного и текущего значения передается на соответствующий ПИД-регулятор, а выходом регулятора служит скорость движения привода, которая посылается на контроллер привода как аналоговый вход 2).
Затем карандаш опускается и приводы отрабатывают координату, причем решающий сигнал при этом в Siemens выставляется в 0 значение. После того когда они отработают, то выдадут сигнал Ready for operation (дискретный выход 24).
Далее все повторяется сначала со следующей точкой из матрицы. Если же следующий набор координат является «виртуальным» ([-255, -255]), то есть контур заканчивается, то в коде запускается команда, поднимающая карандаш.
9. ПИД-регулятор
Пропорционально-интегрально-дифференциальный (ПИД) регулятор - устройство в управляющем контуре с обратной связью. Используется в системах автоматического управления для формирования управляющего сигнала с целью получения необходимой точности и качества переходного процесса. ПИД - регулятор формирует управляющий сигнал, являющийся суммой трех слагаемых, первое из которых пропорционально разности входного сигнала и сигнала обратной связи (сигнал рассогласования), второе - интеграл сигнала рассогласования, третье - произвольная сигнала рассогласования.
Если какие-то из составляющих не используются, то регулятор называют пропорционально-интегральным, пропорционально -дифференциальным, пропорциональным. Схема работы ПИД - регулятора приведена ниже (рис.9.1).
Рис. 9.1 ПИД - регулятор
Пропорциональная составляющая вырабатывает выходной сигнал, противодействующий отклонению регулируемой величины от заданного значения, наблюдаемому в данный момент времени. Он тем больше, чем больше это отклонение. Если выходной сигнал равен заданному значению, то выходной равен нулю.
Однако при использовании только пропорционального регулятора значение регулируемой величины никогда не стабилизируется на заданном значении. Существует так называемая статическая ошибка, которая равна такому отклонению регулируемой величины, которое обеспечивает выходной сигнал, стабилизирующий выходную величину именно на этом значении. Например, в регуляторе температуры выходной сигнал (мощность нагревателя) постепенно уменьшается при приближении температуры к заданной, и система стабилизируется при мощности равной тепловым потерям. Температура не может достичь заданного значения, так как в этом случае мощность нагревателя станет равной нулю, и он начнет остывать.
Чем больше коэффициент пропорциональности между входным и выходным сигналом (коэффициентом усиления), тем меньше статическая ошибка, однако при слишком большем коэффициенте усиления, при наличии задержек в системе, могут начаться автоколебания, а при дальнейшем увеличении коэффициента система может потерять устойчивость.
Интегральная составляющая пропорциональна интегралу от отклонения регулируемой величины. Ее используют для устранения статической ошибки. Она позволяет регулятору со временем учесть статическую ошибку.
Если система не испытывала внешних возмущений, то через некоторое время регулируемая величина стабилизируется на заданном значении, сигнал пропорциональной составляющей будет равен нулю, а выходной сигнал будет полностью обеспечивать интегральная составляющая. Тем не менее, интегральная составляющая также может приводить к автоколебаниям.
Подобные документы
Информационно-измерительные системы мобильных роботов. Системы технического зрения; дескриптивный подход к обработке, анализу и распознаванию изображений. Разработка программного обеспечения для создания СТЗ мобильного робота для ориентации в комнате.
дипломная работа [5,5 M], добавлен 10.05.2014Соревнования VEX Skyrise. Требования к роботам. Принцип действия программного триггера. Режим ручного управления. Комплект на базе привода и системы управления. Автономный режим работы робота. Тестирование работоспособности кода методом "черного" ящика.
дипломная работа [4,6 M], добавлен 13.10.2015Мобильные роботы и их применение. Главные особенности разработки шарового робота типа "колобок". Робот с шаровым движителем. Разработка и исследование системы прямого компьютерного управления роботом. Программное оборудование системного управления.
дипломная работа [1,6 M], добавлен 28.05.2012Понятие программного обеспечения, вопросы его разработки и использования. Общая характеристика системного программного обеспечения и работа операционной системы. Специфика процесса управления разработкой программного обеспечения и его особенности.
курсовая работа [636,2 K], добавлен 23.08.2011Основные методы и уровни дистанционного управления манипуляционными роботами. Разработка программного обеспечения системы терминального управления техническим объектом. Численное моделирование и анализ исполнительной системы робота манипулятора.
дипломная работа [1,2 M], добавлен 09.06.2009Разработка и обоснование функциональной схемы системы автоматического управления технологическим процессом. Расчет мощности электродвигателей. Выбор и компоновка шкафа электроавтоматики. Моделирование программного обеспечения в Logo Soft Comfort v6.0.
курсовая работа [4,1 M], добавлен 02.04.2013Обзор существующих мобильных роботов и их виды: на гусеничном ходу, на колёсном ходу, стационарные. Разработка проекта совершенного мобильного робота для обезвреживания взрывоопасных объектов. Описание информационной системы для управления механизмом.
курсовая работа [2,6 M], добавлен 25.06.2013Назначение и область применения набора MicroCamp, расположение элементов на его плате. Обобщенная структурная схема и технические характеристики мобильного робота. Обзор микроконтроллера Atmega 8. Разработка программного обеспечения для набора MicrоCamp.
курсовая работа [7,1 M], добавлен 15.07.2012Классификация и назначение промышленных роботов. Применение робототехнических комплексов в промышленности. Описание основных узлов пневматического робота, его структурная схема и процессорный модуль. Промышленное программное обеспечение фирмы Siemens.
дипломная работа [3,6 M], добавлен 17.09.2012Разработка программного обеспечения автоматизированного рабочего места (АРМ) оператора вертикального стенда нагрева промковшей. Определение задач подлежащих автоматизации. Основные принципы построения АРМ. Состав пульта управления вертикальным стендом.
курсовая работа [1,6 M], добавлен 03.07.2012