программирование сварочных роботов обучение

Урок 4. Оффлайн программирование сварочного робота

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

Набор инструментов для создания программы

Набор инструментов PathPlanner служит для создания, изменения и преобразования траектории движения инструмента.

программирование сварочных роботов обучение

Инструмент Create Path служит для создания блока программы отвечающего за сварку детали.

программирование сварочных роботов обучение

Инструменты Create Manual Serch и Create Auto Search служат для создания блока программы отвечающего за поиск детали.

программирование сварочных роботов обучение

Как запрограммировать сварку на роботе?

Перейдите в меню PROGRAM

программирование сварочных роботов обучение

Инструмент Create Path служит для создания блока программы. Блок программы PATH WELD_1 отображается в окне Program Editor.

программирование сварочных роботов обучение

PATH WELD_1 содержит внутри себя программу для сварки, эта программа отображается в окне Point Editor.

программирование сварочных роботов обучение

Создание сварочной программы

Траекторию движения инструмента можно задать линией пересечения двух поверхностей — FlorSurface и WallSurface – поверхность Пол и поверхность Стена.

программирование сварочных роботов обучение

Задаем начальное положение робота

программирование сварочных роботов обучение

Выбираем инструмент Ceate Path

В правой части экрана появится окно Create Path,

программирование сварочных роботов обучение

При помощи щелчка левой кнопки мыши, укажите поверхность пола

Укажите поверхность стены

Программа автоматически создаст траекторию движения инструмента, точки подхода/отхода инструмента:

программирование сварочных роботов обучение

Затем нажмите кнопку Create

После нажатия кнопки Create, в окне Program Editor появится блок PATH WELD_1, содержащий внутри себя программу сварки.

Команда Clear all selection

программирование сварочных роботов обучение

Если после выделения пола и стены, траектория движения инструмента не получилась как нужно, то ее можно удалить используя команду Clear all selection. После удаления можно заново указать поверхность пола и стены

Источник

Технологии Сварка для чайников: упрощаем программирование роботов

программирование сварочных роботов обучение

Канадская компания Robotiq, представили технологию Kinetiq, которая позволяет значительно упростить программирование сварочных роботов. При этом, как утверждают создатели, от человека-оператора, не требуются глубокие знания в программировании.

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

Kinetiq – это большой шаг в данном направлении.

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

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

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

За развитие событий, с интересом наблюдают множество компаний-интеграторов, которые связаны с внедрением сварочных роботов.

Kinetiq – это не первый шаг в данном направлении. О подобных разработках заявляли такие производители как Universal Robotics, Kuka, и многие другие.

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

Автор: Чернявский Антон. Видео: Robotiq.

Источник

Runtime программирование промышленного робота на RCML

программирование сварочных роботов обучение

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

Под катом описание и реальный пример того, как работает runtime программирование.

программирование сварочных роботов обучениеТипично программа для робота представляет собой последовательность позиций, в которые должен прийти манипулятор робота. Каждая из этих позиций характеризуются положением TCP (Tool Center Point) – точкой острия инструмента, установленного на манипуляторе. По умолчанию TCP находится в центре фланца робота, см. рисунок ниже, но её положение может быть перенастроено и чаще всего так, что TCP совпадает с острием установленного инструмента на манипуляторе робота. Поэтому обычно при программировании задается положение TCP в пространстве, а положение суставов манипулятора робот определяет сам. Далее в статье будет использоваться термин «положение TCP», или другими словами точка, в которую робот должен «прийти».
Программа для робота также может содержать примитивную управляющую логику (ветвления, циклы), простые математические операции, а также команды по управлению периферией – аналоговыми и цифровыми входами/выходами. В предлагаемом подходе runtime программирования, в качестве внешнего контроллера используется обычный ПК, на котором могут быть использованы мощные средства программирования дающие необходимый уровень абстракции (ООП и прочие парадигмы) и инструменты, обеспечивающие скорость и легкость разработки сложной логики (высокоуровневые языки программирования). На роботе же остается только логика критичная к скорости реакции, для исполнения которой нужна надежность промышленного контроллера, например, оперативная и адекватная реакция на внештатную ситуацию. Управление же периферией, подключенной к роботу, попросту «проксируется» самим роботом на ПК, позволяя ПО с ПК включать или выключать соответствующие сигналы на роботе. Это чем-то похоже на управление «ножками» на Arduino.

программирование сварочных роботов обучение

Как отмечалось ранее, runtime программирование позволяет передавать роботу программу порционно – частями. Обычно за один раз передается набор состояний выходных сигналов и небольшое число точек или вообще только одна точка. Таким образом траектория перемещений TCP, выполняемая роботом, может строиться динамически и отдельные её части могут принадлежать как разным технологическим процессам, так и даже разным роботам (подключенным к одному внешнему контроллеру), если работает группа роботов, т.е. возникают предпосылки для динамического замещения роботов в технологическом процессе.

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

Еще немного теории и переходим к практике.

Без учета, вводимого в данной статье подхода runtime программирования, принято выделять два способа программирования промышленных роботов. Офлайн- и онлайн-программирование.

Процесс онлайн программирования происходит при непосредственном взаимодействии программиста с роботом на месте его использования. При помощи пульта управления или физического перемещения осуществляется подвод инструмента (TCP), установленного на фланце робота, к необходимой точке пространства.

В качестве примера, рассмотрим создание программы робота в runtime режиме, обеспечивающей технологический процесс написания объявления маркером.

ВНИМАНИЕ! Видео не является рекламой, вакансия закрыта. Статья написана после того, как видео потеряло свою актуальность, для того, чтобы продемонстрировать предлагаемый подход программирования.

ПРИВЕТ, ЛЮДИ! НАМ НУЖЕН
РАЗРАБОТЧИК.ДЛЯ СОЗДАНИЯ ВЕБ
ИНТЕРФЕЙСА СИСТЕМЫ НАШИХ
ЗНАНИЙ. ТАК МЫ СМОЖЕМ ПЕРЕНЯТЬ
ОТ ВАС ГУМАНОЙДОВ ЗНАНИЯ.

И НАКОНЕЦ-ТО МЫ СМОЖЕМ
ЗАХВАТИТЬ УЛУЧШИТЬ ЭТОТ МИР

ПОДРОБНЕЕ: HTTP://ROBOTCT.COM/HI
ИСКРЕННЕ ВАШ SKYNET =^-^=

Для написания этого текста потребовалось передать роботу более 1700 точек.

В качестве примера в спойлере приведен скриншот, с пульта робота, программы рисующей квадрат. В ней всего 5 точек (строки 4-8), каждая точка по сути представляет собой законченное выражение (оператор) и занимает одну строку. Манипулятор обходит каждую из четырех точек и по завершению возвращается в начальную точку.

программирование сварочных роботов обучение

Если писать программу подобный образом, то это было бы минимум 1700 операторов — строк кода, по оператору на точку. А что если бы потом потребовалось изменить текст или высоту букв, или расстояние между ними? Править все 1700 точек-строк? Это противоречит духу автоматизации!

Итак, приступим к решению…

Имеем робота FANUC LR Mate 200iD с котроллером R-30i серии B cabinet. У робота предварительно настроена TCP на конце маркера и координатная система рабочего стола, поэтому мы можем отправлять координаты, напрямую не заботясь о преобразовании координат из координатной системы стола в координатную систему робота.

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

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

Чтобы написать текст нам потребуется вызвать последовательность функций, рисующих буквы в такой же последовательности, в которой они (буквы) указаны в тексте. RCML имеет скудный инструментарий для работы со строками, поэтому сделаем внешний скрипт на Python, который будет генерировать программу на RCML – по сути генерировать только последовательность вызовов функций соответствующих последовательности букв.

Весь код доступен в репозитории на GitHub: rct_paint_words

Рассмотрим подробнее выходной файл, исполнение начинается с функции main():

Все константы конфигурации, в том числе размер букв, их количество в строке и пр. были вынесены в отдельный файл chars_config.rcml.

В итоге суммарно мы получили примерно 300 строк высокоуровневого кода, на проектирование и написание которого ушло не более 2 часов.

Если бы данная задача решалась «в лоб» онлайн программированием по точкам, то на это бы ушло более 9 часов (примерно по 20-25 сек на точку, с учетом того, что точек более 1700 шт.). В этом случае страдания разработчика трудно представить :), особенно когда выяснилось бы, что он забыл про отступы между буквами, или ошибся с высотой букв и текст не влез, и теперь придется начинать всё с начала.

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

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

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

В продемонстрированной вариации (с передачей одной точки за раз) runtime подход имеет существенное ограничение – некорректное понимание роботом инструкции сглаживания перемещения (CNT) или её игнорирование, т.к. при передаче всегда одной-текущей точки робот ничего не знает о следующей и не может просчитать сглаженную траекторию обхода текущей точки.

При перемещении инструмента робота возможно влиять на два параметра:

программирование сварочных роботов обучение

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

В лучшем случае робот просто игнорирует инструкцию CNT (зависит от модели).

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

Источник

Програмирование промышленных роботов

А давайте поговорим сегодня о программировании роботов. Да роботов, но не игрушек роботов, а промышленных роботов. Роботов, которые каждый день всё больше и больше завоёвывают своё место в промышленности.

Оставим в стороне программирование САПР (SPS Step S7 н/р) и робота в одну систему, предположим, у нас уже есть настроенная установка с роботом, которая соответствует нашим требованиям и она работает без ошибок. Осталось дело за малым: закинуть на робота нужную программку и нажать СТАРТ.

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

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

Система простая, но удовольствие конечно мало, если точек очень много и доступ к точкам ограничен самой деталью (её геометрией). Нужно добавить сюда ещё тот факт, что каждый производитель роботов по своему решает систему управления роботом. Н/р, у одних движение робота по осям x, y, z, идёт через нажатие/вращение джостика в нужном направлении. И наклон робота по углам A, B, C, то же этим же джостиком, но сперва вам необходимо перейти в другое меню управления движением. Такие прыжки туда сюда отнимают очень много времени и нервов. У других, на все движения есть свои отдельные кнопки, две для каждого направления.

Если учесть ещё тот факт, что для каждой точки необходимо выставить определённое растояние и угол, и при этом держать на пульте управления нажатой клавишу включения робота (тех.безопастности), и двигать робот, то обычно не хватает 3-й, а то и 4-й руки.

Написать программку на 5000 точек, в зависимости от необходимой точности и геометрии детали, таким методом затянется на пару месяцев. При этом вам будет необходимо занять установку с роботом, т.е. установка будет стоять, так же как и продукция. Конечно, если у вас есть ещё один робот, на котором вы будете писать программу не останавливая робот на установке. Это позволит не останавливать работу установки, но не сократит время программирования. И тут еше добавится тот факт, что при переносе программы с программного робота, на робот в установке, прийдётся программу «немного» подгонять.

Но есть и позитивная сторона у этого метода: объезжая все эти точки в реальности, можно уверено сказать, что робот при объезде не врежется в деталь или в какой-либо другой объект установки, т.к. это было бы заметно уже на стадии «запоминания» этих точек. Но это не совсем верно, так как в режиме автоматики на 100%, робот может ехать не совсем так, как на этапе программирования в ручном режиме.

Второй вариант программирования предусматривает создание программы на компьютере. Для этого необходим конечно эдитор (обычно от роботопроизводителя или же другого разработчика), CAD модель детали (иногда с механизмом крепления), CAD модель рабочего инструмента на роботе и CAD модель измерительного инструмента (необходимого для калибровки программы непосредственно в установке). CAD робота, а так же его кинетическая модель обычно уже заложены в эдиторе.

И в зависимости от эдитора нам открываются по истине великолепные возможности программирования.

Предположим, нам необходимо сделать программу для обработки всей поверхности простой детали, как на фото.

программирование сварочных роботов обучение

И обработка подразумевает под собой объезд всей верхней поверхности «змейкой» с определённым растоянием между дорожками (растер) и с углами 90°. Такое применяется н/р для пескоструя или покраски поверхности.

При использовании первого метода, необходимо иметь саму деталь, расчертить на ней дорожки, закрепить на рабочем столе и задавать все эти точки (обычно это те места, где меняется направление движения) роботу в необходимой последовательности с необходимыми условиями (растояние и угол инструмента к каждой точке). Задавать такие данные, как тип движения (линейное, свободное или по окружности), точность движения (насколько точно робот должен подъехать к этой точке, н/р 1мм или 5мм), скорость движения к этой точке и каким инструментом робот должен подъехатъ к ней. Одни из этих параметров перенимаются автоматически от предыдущей точки, другие надо задавать каждый раз заново.

А что, если завтра или через месяц прийдёт другая пластина для обработки, которая чуток длиннее или шире? Можно конечно измерить изменения и в текстовом эдиторе изменять координаты X, Y, Z точкам в старой программе не останавливая робот и надеятся, что всё получится ОК. Ну или же менять старую программу непосредственно на роботе перезабивая старые точки на новые. При этом сперва накидав новые дорожки на новой детали.

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

Вот тут и приходит на помощь Off-Line программирование.

Для простых задач этот вариант в принципе не нужен, но для более серьёзных ему нет замены.

Давайте разберём сперва тот же первый пример с фото выше.

(Настройку эдитора мы не будем тут расматривать)

Помещаем в эдитор CAD детали и распологаем её по возможности точно так же по отношению к роботу, как в установке. Желательно на этом этапе произвести калибровку детали, т.е. промерить её положение в установке и перенести это положение в эдитор. Этим достигается то, что робот действительно достанет все точки детали, плюс, можно увидеть уже в эдиторе как поведёт себя робот при обработке детали, н/р перекрутятся у него оси или нет.

Создаём дорожку на парралельных рёбрах детали методом их захвата.

программирование сварочных роботов обучение

Полученные дорожки сегментируем (делим точками) под длину будущего растера.

Источник

Программирование и управление промышленными роботами-манипуляторами

На многих производствах наблюдается дефицит квалифицированных кадров. Система подготовки кадров в ПТУ разрушена, а из институтов мало кто идет на производства. В связи с этим появляется дополнительно требование к оборудованию – простота в использовании. И роботизированные комплексы с успехом выполняют его. В большинстве случаев для повседневной работы с ними операторам достаточно всего нескольких кнопок.

Рассмотрим вариант наиболее распространённого в России сварочного комплекса в составе: сварочный робот, сменщик станций, сварочное оборудование и ограждение:

программирование сварочных роботов обучениеАлгоритм работы оператора очень простой:

— снял готовое изделие

— закрепил новые заготовки в кондукторе

— вышел за ограждение

— нажал кнопку подтверждения и старта

С такой работой справится любой квалифицированный рабочий! Важным аспектом работы робота является программирование сварочного робота.

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

Если производственная программа требует большей гибкости. Вам нужно перейти с выпуска изделия А на выпуск изделия В, которое вы уже выпускали раньше. Все просто – снимаем установленные кондуктора (Для этого достаточно открутить несколько болтов). И устанавливаем нужные. На пульте управления выбираем программу для изделия В. И для своего спокойствия запускаем проверочный цикл. Все хорошо – комплекс готов к производству!

Даже написание новой программы под новое изделие не становится сложной задачей.

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

Все команды понятны программистам с минимальным знанием английского языка.

MOVEL – команда движения по прямой

PStart – название точки в которую нужно прийти

V1000 – скорость движения и т.д.

В сложных случаях. Большое и сложное изделие или для фрезерования можно воспользоваться помощью дополнительного программного обеспечения.

программирование сварочных роботов обучениеАВВ предлагает пакет RobotStudio для симуляции работы роботизированных комплексов на компьютере.

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

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

Как правило, фирмы-производители разрабатывают собственные языки программирования и вспомогательное программное обеспечение для своих роботов. «ДС-Роботикс», как системный интегратор, делает упор на вспомогательный софт, адаптированный для конкретной задачи, на разработку и модернизацию технологий, на внедрение измерительных систем.

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

Управление промышленными роботами осуществляется при помощи программ, специально написанных для них (программы для робототехники одного производителя, как правило, не подходят для другого).

Онлайн- и офлайн-программирование

Для управления промышленными роботами программы разрабатываются двумя способами – онлайн и офлайн. Первое – это программирование роботов непосредственно на месте их установки. При онлайн-программировании робот программирует сам себя. Если применяется метод Teach-In, оператор при помощи консоли направляет робота в заданный участок пространства и выполняет необходимые задачи, а робот «запоминает» координаты местоположения, скорость движения в каждом пункте. При методе Playback оператор вручную обводит робота по траектории движения. Управление промышленными роботами при помощи онлайн-программирования не всегда удобно – в программы, созданные таким образом, нельзя вносить изменения.

Более продвинутый способ управления роботом – офлайн-программирование. В таком случае программы пишутся на обычном компьютере в редакторе, поставляемом с комплексом программного обеспечения робота: написание программ для современных роботов доступно любому сотруднику после недолгого обучения. Текстовая программа загружается в компьютер робота, отлаживается и корректируется. Также в последнее время набирают популярность 3D и CAD-модели. Такое программирование экономит время, не останавливает производственный процесс и дает отличную визуализацию и возможность предварительно оценить множество параметров и итоговый успех работы промышленных роботов.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *