Разработка системы технического зрения
Создание системы технического зрения для робота-манипулятора. Принцип иерархичности системы управления роботом. Вычисление характеристик объекта. Основные требования к алгоритмам управления. Разработка метода контурного анализа. Эквализация контуров.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 06.01.2013 |
Размер файла | 919,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
В современных условиях развития автоматизации производства особое место отводится использованию промышленных роботов. Промышленный робот - это механическая система, включающая манипуляционные устройства, систему управления, чувствительные элементы и средства передвижения. Принципиальными отличиями робототехники от традиционных средств автоматизации являются их широкая универсальность (многофункциональность) и гибкость (мобильность) при переходе на выполнение принципиально новых операций. Промышленные роботы находят применение во всех сферах производственно-хозяйственной деятельности. Они успешно заменяют тяжелый, утомительный и однообразный труд человека, особенно при работе в условиях вредной и опасной для здоровья производственной среды. Они способны воспроизводить некоторые двигательные и умственные функции человека при выполнении ими основных и вспомогательных производственных операций без непосредственного участия рабочих. Для этого их наделяют некоторыми способностями: слухом, зрением, осязанием, памятью и т.д., а также способностью к самоорганизации, самообучению и адаптации к внешней среде.
Робототехника, как, впрочем, и любая область техники, развивается, соблюдая закон «от простого к сложному». Характеризуя ее качественный прогресс, принято выделять три разных по сложности и по своим возможностям поколения роботов. Однако можно отметить: деление роботов на поколения, т.е. на их виды по степени сложности и «разумности», достаточно условно, и смысл понятия «поколение» в роботостроении несколько иной, чем в других областях техники. Если, скажем, вычислительные машины нового поколения полностью заменяют старые, поскольку они более совершенны по всем параметрам, то роботы следующего поколения не вытесняют предыдущие, а дополняют их, так как у всех у них, как мы увидим дальше, разные функции и области применения.
Для роботов первого поколения характерно то, что они имеют программное управление, т.е. действуют по жесткой, не меняющейся в процессе работы программе; поэтому их называют также «программными роботами». Предназначены они для автоматизации несложных операций при неизменном состоянии окружающей среды. Их система управления имеет только исполнительный уровень: поскольку окружающие условия не меняются, сенсорных устройств нет - никакой связи с внешним миром не требуется, и она отсутствует. К сожалению, функциональные возможности роботов первого поколения существенно ограничены несовершенством их системы управления, служащей для реализации лишь той жесткой программы, которая зафиксирована в памяти. При изменении параметров окружающей среды такой робот не может сам адаптироваться к новым условиям, и требуется вмешательство человека-оператора, чтобы корректировать заданную ему программу, приспосабливая ее к другим параметрам. Таким образом, можно сказать, что роботы первого поколения имеют только нижний уровень системы управления - исполнительный.
Роботы второго поколения - это очувствленные роботы, предназначенные для работы с неориентированными объектами произвольной формы. Они отличаются, во-первых, существенно большим набором и совершенством как внешних сенсорных датчиков (телевизионные, оптические, тактильные, локационные и т.п.), так и внутренних (датчики положений «руки» или «ноги» относительно «тела» робота, датчики усилий и моментов и т.п.) и, во-вторых, более сложной системой управления, требующей для своей реализации управляющей ЭВМ.
Возможности роботов второго поколения, оснащенных значительным числом датчиков внешней и развитым программным обеспечением, значительно превосходят возможности роботов первого поколения. Благодаря способности «распознавать» внешнюю обстановку, анализировать сенсорную информацию и приспосабливаться к изменяющимся условиям эксплуатации, очувствленные роботы могут взаимодействовать с неориентированными объектами в неупорядоченной обстановке, а значит, выполнять исследовательские работы, сборочные и монтажные операции, собирать информацию об окружающей обстановке и т.п.
Роботы третьего поколения - это так называемые интеллектуальные (ИР), или разумные, роботы, предназначенные не только и не столько для воспроизведения физических и двигательных функций человека, сколько для автоматизации его интеллектуальной деятельности, т.е. для решения интеллектуальных задач. Они принципиально отличаются от роботов второго поколения сложностью функций и совершенством управляющей системы, включающей в себя элементы искусственного интеллекта. Интеллектуальный робот - это робот, создающий в себе модель внешней среды (проблемной среды), для чего он производит активные и пассивные исследования, сам планирует свои действия, моделирует планы и реализует их.
Целью курсового проектирования является создание системы технического зрения для робота-манипулятора, достаточно простой в установке, настройке и эксплуатации.
1. Анализ состояния проблемы, обзор аналогов, выбор прототипов и постановка задачи
1.1 Анализ состояния проблемы
Высокая точность, отсутствие усталости, беспрерывность цикла работы, возможность применения во вредных и опасных зонах, робототехника становится наиболее важным технологическим этапом современного производства и зачастую определяет качественные характеристики продукта или системы. Основная сложность при автоматизации управления роботизированных систем - обеспечение точности позиционирования в пространстве.
Современные роботы функционируют на основе принципа иерархичности системы управления роботом. Иерархия системы управления роботом подразумевает деление системы управления на горизонтальные слои, управляющие общим поведением робота, расчётом необходимой траектории движения манипулятора, поведением отдельных его приводов, и слои, непосредственно осуществляющие управление двигателями приводов.
Управление бывает нескольких типов:
· программное управление - самый простой тип системы управления, используется для управления манипуляторами на промышленных объектах. В таких роботах отсутствует сенсорная часть, все действия жёстко фиксированы и регулярно повторяются;
· управление человеком (например, дистанционное управление).
· адаптивное управление - роботы с адаптивной системой управления оснащены сенсорной частью. Сигналы, передаваемые датчиками, анализируются и в зависимости от результатов принимается решение о дальнейших действиях, переходе к следующей стадии действий и т.д.;
Одним из примеров адаптивного управления является система технического зрения. Система технического зрения может обеспечивать систему управления манипулятором информацией для идентификации объекта, определения его ориентации и положения, а также препятствий вокруг.
В данной работе решается проблема адаптивного управления роботом-манипулятором посредством применения видеокамеры и распознавания образов (контуров объектов) методами контурного анализа.
1.2 Обзор аналогов
На сегодняшний день наиболее известные фирмы производители промышленных роботов и автоматизированных систем для различных отраслей промышленности:
· ABB (Швеция)
· Kawasaki (Япония)
· Cloos (Германия)
· KUKA (Германия)
· Fanuc (Япония)
· Motoman (Япония)
· IGM (Австрия)
· Panasoniс (Япония)
Ответить на вопрос какой робот лучше не получится. Мировые лидеры роботостроения, динамично развиваются, не уступая друг другу в конкурентной борьбе. Для повышения интереса к промышленным роботам, любой может заявить, что промышленные роботы, которые он предлагает лучшие, и это будет неприкрытый обман.
По сути, каждый производитель роботов имеет ассортимент, удовлетворяющий текущий мировой спрос на промышленную автоматизацию. Некоторые производители создают специализированные серии, «заточенные» под конкретную технологию. Но в целом, все роботы имеют схожую антропоморфную конструкцию, примерно одинаковый технический уровень и сопоставимое качество сборки.
Не зависимо от производителя манипуляторы включают в себя подвижные звенья двух типов: обеспечивающие поступательные движения и обеспечивающие угловые перемещения. Сочетание и взаимное расположение звеньев определяет степень подвижности, а также область действия манипуляционной системы робота. Для обеспечения движения в звеньях могут использоваться электрические, гидравлический или пневматический привод.
Частью манипуляторов (хотя и необязательной) являются захватные устройства. Наиболее универсальные захватные устройства аналогичны руке человека - захват осуществляется с помощью механических «пальцев». Для захвата плоских предметов используются захватные устройства с пневматической присоской. Для захвата же множества однотипных деталей (что обычно и происходит при применении роботов в промышленности) применяют специализированные конструкции.
Вместо захватных устройств манипулятор может быть оснащен рабочим инструментом. Это может быть пульверизатор, сварочные клещи, отвёртка и тому подобное.
Наиболее известные системы технического зрения приведены ниже.
Система технического зрения F250 фирмы Энергоснаб наряду с возможностями контроля, предоставленными в предыдущей системе фирмы F210, система F250, благодаря наличию в ней специальной быстродействующей схемы, обладает возможностью сверхбыстрой локализации объектов [9]. Наличие четырех портов для подключения камер позволяет организовать одновременный контроль по нескольким параметрам в пределах одной системы. Через интерфейс Ethernet система F250 может обмениваться данными практически с любой компьютерной системой предприятия.
Достоинства данной системы:
· специальная быстродействующая схема для ускорения инструментов контроля при решении задач, требующих повышенной скорости обработки;
· возможность подключения четырех камер; возможность локализации объекта в реальном времени;
· повышенная гибкость благодаря наличию операций ветвления и условных переходов;
· два гнезда для компактных карт флеш-памяти (CF) для хранения данных и ведения протокола;
· интерфейс Ethernet, 67 дискретных входов / выходов, RS232.
Характеристики системы:
· количество инструментов (режимов) контроля: Прибл. 70 инструментов обработки;
· количество камер: четыре высокоскоростные с построчной разверткой;
· количество сценариев / банков: 32, расширяется с помощью флэш-карты (CF);
· кол-во инструментов (режимов) на сценарий: Ограничено только памятью / зависит от инструмента;
· интерфейс: RS232, 67 дискр. вх/вых;
· сеть: Ethernet 10Base/T.
Разработки ИМИТ СПбГПУ
Учеными и инженерами ИМИТ СПбГПУ и ООО «Малленом» разработан универсальный математический аппарат и программные средства, обеспечивающие возможность калибровки и использования произвольного количество камер (два и более), работающих синхронно и наблюдающих одну и ту же сцену с различных позиций [8]. Разработанные методы и алгоритмы анализа стереоизображений позволяют решать широкий круг задач в области автоматизированного контроля формы, геометрии и параметров движения наблюдаемых объектов.
Расположение видеокамер относительно объекта и схема их взаимодействия схематично приведены на рисунках 1 и 2.
Рисунок 1 - Определение формы и положения объекта в пространстве
Рисунок 2 - Вычисление характеристик объекта
Системы технического зрения фирмы Omron - это система технического зрения серии F150-3 позволяет быстро и четко сравнить изображение предмета с заданным изображением для задач контроля качества, идентификации, определения размеров и положения объектов.
Подключение двух камер к контроллеру осуществляется через адаптер, это позволяет не только одновременно получать изображения с обоих камер, но и соединять их в одно (режим вертикально-горизонтального редактирования). Диапазон применений F150-3 расширился за счет использования встраиваемых источников света с изменяемыми параметрами. Уровень освещенности и направление излучения этих моделей могут быть изменены через контроллер. Достоинства данной модели:
· до 11 входов и 21 выходов;
· память на 23 дефектных изображения;
· модели со сменным или постоянным объективом;
· настраиваемая скорость затвора;
· 256 градаций серого цвета для точных измерений менее 1 пикселя.
Система технического зрения Omron F150-3 представлена на рисунке 3.
Рисунок 3 - СТЗ F150-3
Характеристики F150-3:
· дистанция срабатывания 61-71 мм, 66-76 мм - определяется объективом;
· разрешение в пикселях 659х494, 659х494, 659х494;
· площадь охвата изображения 20х20 мм 50х50 мм - определяется объективом;
· напряжение питания 24 VDC, 24 VDC.
Высокоскоростная система технического зрения F160.
Новая высокоскоростная система технического зрения, представленная на рисунке 4, также разработана фирмой Omron для решения наиболее сложных задач, касающихся контроля за производством продукции.
Система обладает быстродействием, достаточным для инспектирования высокоскоростных производственных линий, а использование карт памяти, способных хранить до 1024 изображений и возможность подключения нескольких камер позволяет применить F160 для линий, производящих много наименований одновременно. Система способна выполнять до 17 операций, что позволяет легко построить систему контроля качества нового поколения.
Достоинства данной модели:
· обработка до 32 участков одновременно;
· 13 дискретных входов и 22 дискретных выхода;
· автоматическое распознавание символов;
· работа с двумя камерами;
· упрощенная настройка;
· связь через RS232C;
Рисунок 4 - СТЗ F160
Характеристики F160:
· модификации: F160-S1 F160-SLC20 F160-SLC50;
· расстояние срабатывания - определяется объективом: 51-71 мм, 55-76 мм;
· площадь захвата рисунка - определяется объективом 20х20 мм, 50х50 мм;
· разрешение в пикселях 512x484, 512x484, 512x484;
· напряжение питания 24 VDC, 24 VDC.
Приведённые системы технического зрения, хотя и имеют множество достоинств, достаточно дороги для приобретения. Тем более, что существуют области применения таких систем, где не нужно трёхмерное распознавание и слишком большая чёткость изображения, несколько камер. Разрабатываемая в данном проекте система технического зрения будет включать в себя всего одну неспециализированную USB веб-камеру, что обеспечит низкую стоимость, а также достаточно простой интерфейс пользователя.
1.3 Постановка задачи на проектирование
Данный курсовой проект предусматривает разработку системы технического зрения управления манипулятором посредством ЭВМ. Технические характеристики разрабатываемого устройства, а также требования, касающиеся его работы, надёжности и других параметров рассмотрены ниже.
Система технического зрения состоит из USB веб-камеры, подключённой к ЭВМ, а также программы распознавания объектов и управления манипулятором. Манипулятор имеет шесть степеней свободы и имеет управляющий контроллер, подключаемый к ЭВМ посредством COM-интерфейса. Веб-камера закрепляется на штативе вертикально.
Система технического зрения должна обеспечивать поиск контрастных объектов относительно фона, идентификацию, вычисление их координат относительно робота и передачу преобразованных координат системе управления для корректировки положения манипулятора.
Управление параметрами системы технического зрения осуществляется через пользовательскую программу. Интерфейс должен быть понятным и интуитивным, чтобы программой мог воспользоваться любой пользователь, даже далекий от данной темы.
На программное обеспечение возлагаются ответственные функции:
· организация протокола связи с устройством;
· кроссплатформенность ПО;
· опрос подключенного устройства перед началом работы с целью немедленного обнаружения неисправности или отключения устройства, сигнализирование пользователю о неисправности на линии.
Основными требованиями к алгоритмам управления являются:
· адекватная реакция на управляющие команды;
· допущение возможности неадекватных или случайных действий пользователя;
· приспособленность к различному подключаемому оборудованию;
· гарантия отсутствия тупиковых ветвей в любых ситуациях;
· корректная работа в любом режиме;
· минимальный объем памяти.
2. Разработка структуры системы технического зрения
На рисунке 5 представлена структурная системы технического зрения.
Рисунок 5 - Структурная схема системы технического зрения
Веб-камера установлена так, чтобы видеть рабочую область сверху. Располагать камеру имеет смысл так, чтобы её поле зрения охватывало ту область, до которой манипулятор может дотянуться. ЭВМ обрабатывает изображение, которое передается с веб-камеры посредством интерфейса USB. Результатом обработки являются преобразованные координаты идентифицированного объекта, которые передаются управляющему контроллеру. Координаты сохраняются в энергозависимой памяти и используются для формирования управляющих сигналов для сервоприводов. Управление манипулятором доступно также в ручном режиме с помощью отдельной клавиатуры. Управляющие сигналы отклоняют сервоприводы так, чтобы захват манипулятора установился над указанным объектом. Сжатие захвата производится в ручном режиме. Для управления клешнёй решено использовать контроллер ATMega32a [1, 2, 3, 5].
3. Выбор и обоснование методов управления
3.1 Разработка метода контурного анализа
Контурный анализ (КА) позволяет описывать, хранить, сравнивать и производить поиск объектов, представленных в виде своих внешних очертаний - контуров [4].
Предполагается, что контур содержит всю необходимую информацию о форме объекта. Внутренние точки объекта во внимание не принимаются. Это ограничивает область применимости алгоритмов КА, но рассмотрение только контуров позволяет перейти от двумерного пространства изображения - к пространству контуров, и тем самым снизить вычислительную и алгоритмическую сложность.
КА позволяет эффективно решать основные проблемы распознавания образов - перенос, поворот и изменение масштаба изображения объекта. Методы КА инвариантны к этим преобразованиям.
Сначала рассмотрим определение контура объекта. Контур - это граница объекта, совокупность точек (пикселов), отделяющих объект от фона.
В системах компьютерного зрения используется несколько способов кодирования контура - наиболее известны код Фримена, двумерное кодирование, полигональное кодирование. Но все эти способы кодирования не используются в КА.
Вместо этого, в КА контур кодируется последовательностью, состоящей из комплексных чисел. На контуре фиксируется точка, которая называется начальной точкой. Затем, контур обходится (допустим - по часовой стрелке), и каждый вектор смещения записывается комплексным числом a+ib. Где a - смещение точки по оси X, а b - смещение по оси Y. Смещение берется относительно предыдущей точки.
Рисунок 6 - Пример определения контура
Каждый вектор контура будем называть элементарным вектором (ЭВ). А саму последовательность комплекснозначных чисел - вектор-контуром (ВК).
Таким образом, вектор-контур Г длины k можно обозначить как:
В КА используется именно комплекснозначное кодирование, потому что операция скалярного произведения для векторов и для комплексных чисел - различны. Операции над контуром именно как над вектором комплексных чисел обладает необходимыми математическими свойствами, по сравнению с другими способами кодирования. Именно это обстоятельство и дает преимущество методам КА.
Свойства контуров:
· сумма ЭВ замкнутого контура равна нулю. Это тривиально - поскольку элементарные векторы приводят в начальную точку, значит их сумма равна нуль-вектору;
· контур-вектор не зависит от параллельного переноса исходного изображения. Поскольку контур кодируется относительно начальной точки, то этот способ кодирования инвариантен сдвигу исходного контура;
· поворот изображения на определенный угол равносилен повороту каждого ЭВ контура на тот же угол;
· изменение начальной точки ведет к циклическому сдвигу ВК. Поскольку ЭВ кодируются относительно предыдущей точки, то понятно, что при изменении начальной точки последовательность ЭВ будет та же самая, но первым ЭВ будет тот, который начинается в начальной точке;
· изменение масштаба исходного изображения можно рассматривать как умножение каждого ЭВ контура на масштабный коэффициент.
Скалярным произведением контуров Г и N называется такое комплексное число:
(1)
Где k - размерность ВК, гn - n-й элементарный вектор контура Г, нn - n-й ЭВ контура N. (гn, нn) - скалярное произведение комплексных чисел, вычисляемое как:
(2)
В КА допускается скалярное произведение только ВК одинаковой размерности. То есть число элементарных векторов в контурах должно совпадать.
Результатом скалярного произведения векторов является действительное число. А результатом произведения комплексных чисел - комплексное число.
Действительная часть скалярного произведения комплексных чисел совпадает со скалярным произведением соответствующих векторов. То есть комплексное произведение включает в себя векторное скалярное произведение.
Рассмотрим физический смысл и свойства скалярного произведения. В линейной алгебре скалярное произведение равно произведению длин векторов на косинус угла между ними. Это значит, что два перпендикулярных вектора всегда будут иметь нулевое скалярное произведение, коллинеарные же вектора - напротив, будут давать максимальное значение скалярного произведения.
Эти свойства произведения позволяют использовать его как определенную меру близости векторов. Чем оно больше - тем меньше угол между векторами, тем «ближе» они друг к другу. Для перпендикулярных векторов - оно опускается до нуля, и далее становится отрицательным для векторов, направленных в разные стороны. Скалярное произведение (1) также обладает похожими свойствами.
Введем еще одно понятие - нормированное скалярное произведение (НСП):
(3)
Где |Г| и |N| - нормы(длины) контуров, вычисляемые как:
(4)
НСП в пространстве комплексных чисел, также является комплексным числом. При этом, единица - это максимально возможное значение модуля НСП (это следует из неравенства Коши-Буняковского: |ab|?|a||b|), и она достигается только если
(5)
где м - произвольное комплексное число.
Рассмотрим физический смысл умножения комплексных чисел. При умножении комплексных чисел, их модули(длины) перемножаются, а аргументы(углы) - складываются. Значит контур мN это тот же контур N, но повернутый и промасштабированный. Масштаб и поворот определяется комплексным числом м.
Модуль НСП достигает максимального значение - единицы, только если контур Г является тем же контуром N, но повернутым на некоторый угол и промасштабированный на определенный коэффициент.
Для примера, рассмотрим скалярное умножение контура самого на себя, но повернутого на определенный угол.
Так, если посчитать НСП вектора самого на себя, то мы получим НСП=1, если повернуть контур на 90 градусов, мы получим НСП=0+i, поворот на 180 градусов даст НСП=-1. При этом, действительная часть НСП будет нам давать косинус угла между контурами, а модуль НСП всегда будет равна единице.
Аналогично, если мы умножим ВК на некоторый действительный коэффициент (промасштабируем), то мы также получим НСП=1 (это несложно увидеть из формулы).
Итак, модуль нормированного скалярного произведения контуров даст единицу только в том случае, если эти два контура равны с точностью до поворота и масштаба. В противном случае, модуль НСП будет строго меньше единицы.
Таблица 1 - Свойства нормированного скалярного произведения векторов
Это центральный вывод КА. Фактически, модуль НСП является инвариантом по переносу, вращению и масштабированию контуров. Если есть два одинаковых контура, то их НСП всегда даст единицу, не зависимо от того, где контуры находятся, каков их угол поворота и масштаб. Аналогично, если контуры различны, то их НСП будет строго меньше единицы, и также независимо от места, вращения и масштаба.
Модуль дает меру сходства контуров, а аргумент НСП (равный atan (b/a)) - дает нам угол поворота контуров относительно друг друга.
НСП является чрезвычайно полезной формулой для поиска похожих между собой контуров. К сожалению, есть одно обстоятельство не позволяющее использовать его напрямую. И это обстоятельство - выбор начальной точки.
Дело том, что равенство (5) достигается только если начальные точки контуров - совпадают. Если же контуры одинаковы, но отсчет ЭВ начинается с другой начальной точки, то модуль НСП таких контуров не будет равен единице.
Введем понятие взаимокорреляционной функции (ВКФ) двух контуров:
(6)
где N(m) - контур, полученный из N путем циклического сдвига его ЭВ на m элементов.
Для примера, если N=(n1, n2, n3, n4), то N(1)=(n2, n3, n4, n1), N(2)=(n3, n4, n1, n2) и так далее.
Значения взаимокорреляционной функции показывают, насколько похожи контуры Г и N, если сдвинуть начальную точку N на m позиций.
ВКФ определена на всем множестве целых чисел, но поскольку циклический сдвиг на k приводит нас к исходному контуру, то ВКФ является периодической, с периодом k. Поэтому нас будет интересовать значения этой функции только в пределах от 0 до k-1.
Найдем величину, имеющую максимальный модуль среди значений ВКФ:
(7)
Из определений НСП и ВКФ, понятно, что фmax является мерой похожести двух контуров, инвариантной переносу, масштабированию, вращению и сдвигу начальной точки.
При этом, модуль |фmax| показывает степень похожести контуров, и достигает единицы для одинаковых контуров, а аргумент arg(фmax) дает угол поворота одного контура, относительно другого.
Введем еще одно понятие - автокорреляционной функции (АКФ). Автокорреляционная функция является ВКФ для которой N=Г. По сути - это скалярное произведение контура самого на себя при различных сдвигах начальной точки:
(8)
Далее представлены некоторые свойства АКФ.
Свойство 1. АКФ не зависит от выбора начальной точки контура. Действительно, посмотрим на определение скалярного произведения (1). Как видим, изменение начальной точки приведет просто к изменению порядка суммируемых элементов и не приведет изменению суммы. Этот вывод не столь очевиден, но если вдуматься в смысл АКФ, то он ясен.
Свойство 2. Модуль АКФ симметричен относительно центрального отсчета k/2. Поскольку АКФ является суммой попарных произведений ЭВ контура, то каждая пара встретится два раза на интервале от 0 до k.
Пример - Дано N=(n1, n2, n3, n4). Значения АКФ для разных m описываются следующим образом.
АКФ(0)=(n1, n1)+(n2, n2)+(n3, n3)+(n4, n4)
АКФ(1)=(n1, n2)+(n2, n3)+(n3, n4)+(n4, n1)
АКФ(2)=(n1, n3)+(n2, n4)+(n3, n1)+(n4, n2)
АКФ(3)=(n1, n4)+(n2, n1)+(n3, n2)+(n4, n3)
АКФ(4)=(n1, n1)+(n2, n2)+(n3, n3)+(n4, n4)
Следует обратить внимание на то, что слагаемые в АКФ(1) те же самые, что и в АКФ(3), с точностью до перестановки множителей. А вспомнив, что для комплексных чисел (a, b)=(b, a)*, получаем что АКФ(1)=АКФ(3)*, где * - знак сопряженного комплексного числа.
А поскольку |a*|=|a|, то получается что модули АКФ(1) и АКФ(3) - совпадают.
Аналогично, совпадают модули АКФ(0) и АКФ(4).
Далее мы везде будем под АКФ понимать только часть функции на интервале от 0 до k/2, поскольку остальная часть функции - симметрична первой части.
Свойство 3. Если контур имеет какую-либо симметрию относительно поворота, то аналогичную симметрию имеет его АКФ. Для примера на рисунке 7 приведены графики АКФ для некоторых контуров.
Рисунок 7 - Графики АКФ для некоторых контуров
На рисунке 3 модуль АКФ изображен синим цветом (АКФ изображена только для интервала от 0 до k/2).
Все контуры, кроме последнего, изображённые на рисунке 3 имеют симметрию к повороту, что приводит к симметрии АКФ. Последний же контур такой симметрии не имеет, и график его АКФ - не симметричен.
АКФ контура в определенном смысле можно считать характеристикой формы контура. Так, формы, близкие к кругу имеют равномерные значения модуля АКФ (см рисунок для круга). Сильно вытянутые в одном направлении формы - имеют провал в центральной части АКФ (см рисунок прямоугольника). Формы, переходящие в самих себя при повороте, имеют максимум АКФ в соответствующем месте.
Свойство 4. Нормированная АКФ не зависит от масштаба, положения, вращения и выбора начальной точки контура. Это следует из пункта 1-го и из свойств НСП.
зрение манипулятор эквализация робот
3.2 Эквализация контуров
Методы КА подразумевают одинаковую длину контуров. В реальном же изображении контуры имеют произвольную длину. Поэтому, для поиска и сравнения контуров, все они должны быть приведены к единой длине. Этот процесс называется эквализацией. Рассмотрим простой и быстрый способ эквализации, который, помимо приведения к единой длине, производит сглаживание контура методом скользящего среднего.
Сначала фиксируется длину ВК, которая будет использоваться в системе распознавания. Обозначим ее k. Затем, для каждого исходного контура Г создаем вектор-контур N длиной k. Далее возможно два варианта-либо исходный контур имеет большее число ЭВ чем k, либо меньшее число чем k.
Если исходный контур больше необходимого, то перебираем все его ЭВ, и считаем элементы N как сумму всех ЭВ, следующим образом (C++):
Complex newVector[newCount];
for (int i = 0; i < Count; i++)
newPoint [i * newCount / Count] += oldVector[i];
Этот алгоритм достаточно грубый, особенно для длин немногим больших k, однако он вполне применим на практике. Выбор значения k определяется спецификой прикладной области. С одной стороны, большая длина k означает большие затраты на вычисления. С другой стороны - малые значения k несут меньше информации, и точность распознавания снижается, а распознавание шума - увеличивается.
Опытным путем установлено, что при малых значениях k (менее 30) резко повышается число шумовых распознаваний (распознавание как символов шума или других несимвольных элементов изображения), снижается число верных распознаваний, и увеличивается число ложных распознаваний. Таким образом, значение k=30 является оптимальным для данной системы распознаваний.
Можно выявить, что увеличение длины контура, после определенного уровня вовсе не приводит к улучшению качества распознавания. Это связано с тем, что в описанном методе, эквализация проводится одновременно со сглаживанием контуров. При больших значениях длины, сглаживание становится все более мелкомасштабным, и контур становится слишком детализированным, и следовательно, более отличным от шаблонных контуров.
3.3 Вычисление углов поворота подвижных частей манипулятора
Координаты объекта (X, Y, H) задаются в миллиметрах в прямоугольной системе координат относительно центра основы-платформы манипулятора, как представлено рисунке 8.
Рисунок 8 - Положение манипулятора по заданным координатам
Положение манипулятора задается шестью сервоприводами. Для того чтобы рука приняла заданное положение, необходимо вычислить углы поворота сервоприводов.
Рассмотрим этапы вычисления углов поворота.
1. Вычисление проекции длины от центра основы робота до заданной точки на плоскость рабочей зоны. Для этого по теореме Пифагора вычисляем длину L (Рисунок 8). Далее вычисляем угол поворота f0:
f0=arcsin (X/L) (9)
2. Вычисление непосредственной длины (Z) от центра основы робота до заданной точки. Но для этого нужно вычислить H''
Z= (10)
(11)
Чтобы обеспечить длину Z необходимо вычислить углы f1 и f2. Вычисление проведем итерационным методом. Рассмотрим манипулятор как четырехугольник, где одной стороне будет соответствовать длина Z', а остальным - соответствующее плечо манипулятора, как показано на рис. 9.
Рисунок 9 - Вычисление углов поворота сервоприводов
Углы B и C вычисляются по следующему алгоритму:
1) начальные значения углов B и C принимается равными 90?;
2) рассчитаем АC по теореме косинусов:
;
;
;
;
3) если AD<Z, то B=B+1 ?, C=C+1 ?, переход на шаг 2;
4) f1=B, f2=C.
3. При повороте сервоприводов 2 и 3 клешня поднимается от нулевого положения. Примем вертикальное положение первого плеча за 0?. Тогда чтобы обеспечить высоту H необходимо повернуть плечо на угол f3, равный , если Н<H', иначе , как показано на рисунке 10.
Рисунок 10 - Вычисление угла поворота f3
Полученные углы f0, f1, f2, f3 в дальнейшем будут использованы для отклонения манипулятора к заданной точке.
3.4 Управление сервоприводом
Сервопривод управляется с помощью импульсов переменной длительности. Параметрами этих импульсов являются минимальная длительность, максимальная длительность и частота повторения [7]. Диаграммы управления сервоприводами представлены на рисунках 11 и 12.
Рисунок 11 - Диаграмма управления сервоприводами
Угол поворота определяется длительностью импульса, который подается по сигнальному проводу. Сервопривод ожидает импульса каждые 20 мс. Длительность импульса определяет, насколько далеко должен поворачиваться мотор. Например, импульс в 1,5 мс диктует мотору поворот в положение 90 градусов (нейтральное положение).
Импульсы позиционирования всегда должны повторяться, информируя сервопривод о сохранении положения.
Как правило, ширина минимального импульса составляет примерно 1 мс и ширина максимального импульса составляет 2 мс. Когда импульс, посылаемый на сервопривод, становится короче 1,5 мс, сервопривод поворачивает выходной вал на несколько градусов против часовой стрелки и удерживает это положение. Когда импульс шире, чем 1,5 мс, тогда происходит противоположное. Минимальная и максимальная ширина импульса, который управляет сервоприводом, является свойством конкретного сервопривода.
Рисунок 12 - Диаграммы управления сервоприводами
4. Описание и состав технических средств
Функциональная схема устройства управления манипулятором представлена на рисунке
В состав устройства управления манипулятором входят:
· управляющий микроконтроллер AtMega32A;
· интегральная схема, преобразующая сигналы последовательного порта RS-232 в сигналы, пригодные для использования в цифровых схемах на базе ТТЛ;
· разъем последовательного порта типа DB9;
· блок клавиш;
· блок индикаторов;
· генератор тактовых импульсов.
Отклонение сервоприводов регулируется управляющими сигналами через порты ввода-вывода. Блок клавиш подсоединен к портам, которые настроены как входы, диоды - на выходы. Порты, к которым одновременно присоединены и кнопки и диоды могут быть настроены как входы или как выходы в зависимости от текущего состояния. Микроконтроллер имеет на борту универсальный последовательный интерфейс - UART. По структуре это обычный асинхронный последовательный протокол, то есть передающая сторона по очереди выдает в линию 0 и 1, а принимающая отслеживает их и запоминает. Синхронизация идет по времени - приемник и передатчик заранее настроены на какой частоте будет идти обмен. Если скорость передатчика и приемника не будут совпадать, то передачи может не быть вообще, либо будут считаны не те данные. Протокол реализован аппаратно. По такому же протоколу работает COM порт компьютера, разница лишь в разнице напряжений, поэтому для связи используется схема MAX232.
5. Описание используемых алгоритмов, схемы функционирования и связей программного продукта
5.1 Общая структура системы управления манипулятором
На рисунке 14 представлена общая схема связей программного продукта.
Рисунок 14 - Общая схема связей программного продукта
Модуль интерфейса пользователя позволяет задавать команды управления манипулятором, управлять шаблонами, а также настройками камеры.
Модуль управления камерой содержит функции начальной настройки камеры, получения изображения и его предварительной обработки.
Модуль выполнения контурного анализа отвечает за выполнение классификации объектов и определения их пространственного положения.
Модуль расчета координат принимает координаты, полученные в результате КА, и переводит их в координаты сервоприводов. Также координаты могут быть получены непосредственно от пользователя.
Модуль подстройки манипулятора в реальном режиме выполняет минимизацию погрешностей координат, полученных в результате расчетов.
Интерфейсный модуль контроллера выполняет настройку интерфейса между ЭВМ и управляющим контроллером, а также передачу данных.
Модуль добавления шаблонов позволяет сформировать новые классы шаблонов и сохранить их для дальнейшей работы.
Программа управления сервоприводами, выполняемая непосредственно контроллером, отвечает за принятие координат и формирование управляющих сигналов сервоприводов.
5.2 Описание работы модуля выполнения контурного анализа
Выполняется поиск замкнутых контуров объектов и добавление их в список. Затем список фильтруется по определенным параметрам (длина, площадь…). Для оставшихся объектов выполняется преобразование цепного кода Фримена в векторную форму для возможности дальнейшей обработки. Так как длина контуров разная и отличается от шаблонов, для дальнейшего сравнения необходимо выполнить эквализацию контуров. Предварительный отбор производится при сравнении АКФ объектов с АКФ контуров. Если совпадение найдено, то выполняется скалярное произведение векторов, по которым можно определить степень сходства и ориентацию объекта. Так же вычисляются координаты центра объекта на изображении. Распознанные объекты помещаются в список для дальнейшей манипуляции ими, а не распознанные сохраняются для дальнейшего просмотра с целью добавления их как новых объектов для распознавания.
5.3 Описание работы модуля расчета координат сервоприводов
Зная координаты верхнего левого угла изображения относительно центра основы манипулятора, а также размер видимого участка рабочей зоны можно вычислить координаты объекта относительно робота. Полученные координаты X', Y' и H используются для получения углов {f0, f1, f2, f3}. Алгоритм получения координат сервоприводов представлен в разделе 3.3.
Вычисление координат X, Y
Координаты X', Y' находятся
(12)
где (Mм, Lм) - размер видимого участка рабочей зоны,
(Mп, Lп) - формат кадра,
(X, Y) - координаты верхнего левого угла изображения
5.4 Описание алгоритма подстройки манипулятора
На рисунке представлен способ определения координат центра щупа (клешни) робота относительно центра координат.
М1 и М2 - центры ярко-зеленых маркеров на обоих пальцах щупа, их координаты вычисляются для нахождения координат точки Z между ними. Координаты точки Z относительно нулевого сервопривода (начала координат) являются постоянными:
Xzмм, O = 0, Yzмм, O = const.
Вычисление координат центра щупа относительно начала координат
1. Сначала вычисляются координаты точки Z относительно N - левого верхнего угла кадра (в пикселях):
Z (Xzp, N Yzp, N).
2. Далее кадр калибруется с помощью чёрного контура с известным периметром в миллиметрах. При нахождении этого же периметра в пикселях получаем коэффициент калибровки, то есть определяем, сколько миллиметров приходится на 1 пиксель кадра:
k= pmm/pp (13)
3. После этого высчитываются координаты Z относительно N в миллиметрах
Xzmm, N= Xzp, N * k,
Yzmm, N= Yzp, N * k (14)
4. Координаты N относительно O - начала координат (нулевого сервопривода) в миллиметрах находятся по формуле
XNmm, O= Xzмм, O - Xzp, N = - Xzp, N,
YNmm, O= Yzмм, O + Yzp, N (15)
5. Координаты центров всех остальных контуров также вычисляются сначала относительно N в пикселях, а потом относительно О в миллиметрах, на основании чего вычисляются углы поворотов сервоприводов по алгоритмам, приведённых выше.
6. Описание структуры исходных данных и получаемых результатов
Разрабатываемая система должна обеспечить работу с данными, представленными в числовом виде. В качестве входных данных система должна обеспечить возможность использования следующих:
· АКФ шаблонов;
· описание контуров шаблонов в векторной форме
· порог бинаризации изображения
· координаты конечной траектории движения манипулятора
· нижняя граница коэффициента сходства образа с шаблоном.
В качестве выходных данных система должна предоставлять следующие:
· уведомления системы;
· класс распознанного объекта;
· коэффициент сходства объекта;
· геометрические характеристики объекта;
· положение объекта в пространстве;
· бинаризованное изображение и общая картина расположения распознанных объектов
7. Описание интерфейса и инструкции пользователя
Интерфейс программы распознавания и управления роботом довольно прост, даже для неквалифицированного пользователя. После запуска программы появится главная форма и 4 видеоокна: исходное изображение с камеры, чёрно-белое изображение, бинаризованное, которое показывает контуры белым цветом, а всё остальное - чёрным, и итоговое окно, где отображаются и подписываются найденные контуры. По нему ведётся распознавание контуров.
Для работы с роботом прежде всего нужно установить связь с его контроллером через COM-порт. Для этого нужно нажать кнопку Init-COM. Выдастся сообщение об удачной или неудачной настройке порта.
Далее нужно положить в области распознавания калибровочный квадратный контур со стороной 50 мм (он должен быть единственным) и нажать кнопку Калибровка/настройка. Происходит вычисление периметра контура в пикселях, а затем вычисляется коэффициент калибровки, показывающий, сколько миллиметров приходится на 1 пиксель. Далее идёт вычисление координат левого верхнего угла кадра в миллиметрах относительно начала координат - нулевого сервопривода по алгоритму, приведённому ранее.
После этих операций можно приступать к распознаванию контуров в кадре. Для этого нужно нажать кнопку Найти. В поле слева будет выведен список найденных контуров, а на исходном изображении найденные контуры будут обведены оранжевой линией, а на итоговом изображении обведены белой линией и подписаны. Далее можно выбирать нужный контур двойным нажатием на его названии в списке. Робот поставит щуп над контуром, а с помощью остальных кнопок манипуляции можно регулировать высоту щупа над объектом и степень сжатия щупа.
В дальнейшем предполагается реализовать самостоятельное выполнение роботом задач сортировки объектов.
Заключение
Таким образом, в ходе работы над системой технического зрения были получены первые результаты: написана программа распознавания контуров определённой формы: квадрат, круг, треугольник, крест. Реализовано распознавание двух маркеров на концах зажима робота, что позволяет довольно точно определять местоположение зажима и управлять им в пределах кадра, идущего с камеры. Также в ходе разработки был определён рад проблем.
Во-первых, маркеры ярко-зелёного цвета могут не всегда быть распознаны, что не позволит правильно определять местоположение зажима на кадре. Для решения этой проблемы предлагается использовать маркеры очень яркого зелёного цвета и применить более эффективный алгоритм их распознавания.
Во-вторых, веб-камера закрепляется статически над рабочим полем, что вносит некоторую погрешность в ориентировании зажима, то есть зажим может быть не чётко расположен над контуром (объектом), а это может не позволить «взять» и поднять объект. Для устранения погрешности предполагается вводить некоторую поправку при сильном отклонении клешни от исходного состояния.
Данные проблемы будут решены в ходе дальнейшей работы над проектом.
Библиографический список
1. Мортон М. «Микроконтроллеры AVR. Вводный курс».
2. Евстифеев А.В. «Микроконтроллеры AVR семейства mega».
3. Документация по ATmega32A.
Размещено на Allbest.ru
Подобные документы
Исходные данные, общая структура и основные этапы проектирования системы технического зрения. Рассмотрение функций и его реализация на базе однокристального микропроцессора КР1810. Разработка аппаратных средств и расчет времени работы программы.
реферат [476,0 K], добавлен 28.03.2011Исходные данные для разработки цикловой системы управления и проектирования усилителей управляющих сигналов. Блок-схема алгоритма работы системы управления пятью гидроцилиндрами промышленного робота. Принцип работы схемы и расчет силовых ключей.
курсовая работа [136,0 K], добавлен 08.06.2014Выбор и обоснование выбора элементной базы локальной системы управления: микропроцессора, гидроцилиндра, передаточной функции объекта управления и датчика угла поворота. Вычисление устойчивости системы автоматического управления челюстью робота.
курсовая работа [1,0 M], добавлен 26.05.2013Разработка конструкции исполнительных механизмов платформы шагающего робота. Разработка универсальных контроллеров и системы управления высокого уровня. Проектирование базовых алгоритмов управления, обеспечивающих автономное и супервизорное управление.
дипломная работа [6,3 M], добавлен 07.07.2012Исследование и выбор промышленного робота для лазерной резки; анализ технологического процесса; конструкция лазерного излучателя. Разработка общей структуры системы управления промышленным роботом как механической системой, технологическое использование.
дипломная работа [2,0 M], добавлен 12.07.2013Характеристика объекта системы автоматического управления. Передаточная функция замкнутой системы. Начальное и конечное значение переходного процесса. Сравнение частотных характеристик объекта управления и замкнутой системы. Оценка устойчивости системы.
курсовая работа [1,6 M], добавлен 18.01.2016Изучение метода корреляционного анализа для проверки идентичности математической модели при условии случайного выбора входных и выходных сигналов. Проведение технического диагностирования объекта управления в целях обнаружения отказов оборудования.
контрольная работа [407,5 K], добавлен 04.07.2010Обзор системы управления микроклиматом FC-403-65. Разработка структурной схемы системы управления температурным режимом теплицы. Выбор датчиков и исполнительных механизмов, принципиальная схема их подключения. Разработка инструкций по эксплуатации.
дипломная работа [1,8 M], добавлен 10.04.2017Математическая модель объекта управления. Построение временных и частотных характеристик. Анализ устойчивости системы управления по критериям Гурвица и Найквиста. Получение передаточной функции регулируемого объекта. Коррекция системы управления.
курсовая работа [1,7 M], добавлен 29.12.2013Формирование статических механических характеристик электропривода с целью стабилизации скорости. Система непрерывного управления скоростью. Определение структуры и параметров объекта управления, разработка алгоритма. Конструкция блока управления.
курсовая работа [1,6 M], добавлен 29.07.2009