Неклюдов RobotStudio Часть 1 PDF [PDF]

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего об

20 0 3MB

Report DMCA / Copyright

DOWNLOAD PDF FILE

Papiere empfehlen

Неклюдов RobotStudio Часть 1 PDF [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА (МИИТ)» Кафедра «Путевые, строительные машины и робототехнические комплексы» А.Н.Неклюдов, А.В.Мишин, П.А. Сорокин ОСНОВЫ ПРОГРАММИРОВАНИЯ РОБОТОВ В СРЕДЕ ROBOTSTUDIO ЧАСТЬ 1 Учебно-методическое пособие к практическим занятиям

Москва – 2018 0

МИНИСТЕРСТВО ТРАНСПОРТА РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА (МИИТ)» Кафедра «Путевые, строительные машины и робототехнические комплексы» А.Н.Неклюдов, А.В.Мишин, П.А. Сорокин ОСНОВЫ ПРОГРАММИРОВАНИЯ РОБОТОВ В СРЕДЕ ROBOTSTUDIO ЧАСТЬ 1 Учебно-методическое пособие для студентов направлений 15.03.01 «Машиностроение», 15.04.06 «Мехатроника и робототехника»

Москва – 2018 1

УДК 004.89 Н 47 Неклюдов А.Н., Мишин А.В., Сорокин П.А. Основы программирования роботов в среде RobotStudio. Часть 1: Учебно-методическое пособие к практическим занятиям. - М.: РУТ (МИИТ), 2018. – 70 с. В учебно-методическом пособии представлены рекомендации и пояснения к выполнению практических работ по разработке программ управления роботами. Рассмотрена методика работы в среде графического программирования RobotStudio. Учебно-методическое пособие предназначено для студентов направлений 15.03.01 «Машиностроение» и 15.04.06 «Мехатроника и робототехника». Рецензент: Доцент кафедры «Электропоезда и локомотивы» РУТ (МИИТ), к.т.н. Володин С.В.

© РУТ (МИИТ), 2018

2

Введение RobotStudio представляет собой симуляционную среду программирования (со своим языком – RAPID) роботов компании ABB. Она позволяет реализовать программирование роботов с помощью виртуальной технологии VRT (Virtual Robot Technology). Эта технология использует «виртуальные контроллеры» (Virtual Controller), представляющие собой точную копию реального программного обеспечения робота, что позволяет создавать очень реалистичный режим симуляции.

3

Лабораторная работа №1. Основы работы в RobotStudio Так выглядит окно программы при запуске (рис. 1.1):

Рис. 1.1 Приветственное окно RobotStudio Здесь можно увидеть вкладку Help, щелкнув по которой можно ознакомится со всей необходимой информацией о программе: помощь (RobotStudio Help), язык программирования RAPID (Инструкции, функции и типы данных: RAPID Instructions, Functions and Data types), пульт управления ABB (IRC5 with FlexPendant) и др. Вся информация предоставлена на английском языке. 4

Если требуется изменить какие-либо параметры программы, то нужно зайти на вкладку Options. Теперь создадим пустое рабочее пространство (станцию), которое состоит из рабочей 3-х мерной области и глобальной системы координат. Для этого вернемся на приветственное окно (вкладка New), и как показано на рис. 1.1, выберем Solution with Empty Station (при желании можно переименовать проект (Solution Name), по умолчанию Solution 1) и нажмем на Create. Добавим робота с помощью панели ABB Library, например, IRB 140 (рис. 1.2). Сейчас стало возможным двигать робота (линейно перемещать и вращать) в рабочем пространстве. Также возможно изменять угол поворота каждого звена робота. Для перемещения робота (модель робота должна быть выделена в поле Layout, как на рис. 1.3) нужно нажать кнопку Move. Теперь при наведении (на появившиеся стрелки-оси) курсор поменяет свой вид на «руку» и, зажав левую кнопку мыши (ЛКМ), можно двигать модель в трех плоскостях.

5

Рис. 1.2 Выбор робота

Рис. 1.3 Линейное перемещение робота 6

Для вращения робота в выбранном направлении следует нажать на кнопку Rotate, которая находится рядом с кнопкой Move (принцип действия аналогичен). При решении задач требуется соблюдать точность при перемещении или вращении робота. Чтобы задать точное положение основания робота в трехмерной системе координат, а также угол поворота к каждой оси, нажмите правой кнопкой мышки (ПКМ) по модели и выберите пункты Position → Set Position и в появившемся поле Reference задайте значения, как на рис. 1.4 (красные окошки: Position – координата по оси Х в мм, Orientation – угол поворота по отношению к оси Х в градусах; аналогично: для Y зеленые окошки, для Z – фиолетовые). При изменении параметров увидим, как графический интерфейс «подстраивается» в виде прозрачной модели. Нажав Apply, робот переместится в заданное положение. Стоит отметить, что теперь система координат основания робота является локальной для проекта в целом.

7

Рис. 1.4 Положение робота С помощью колесика мышки можно изменять масштаб рабочего пространства. С помощью комбинации CNTRL + ЛКМ можно перемещать вид, а комбинацией CNTRL + SHIFT + ЛКМ – вращать. Если нажать ПКМ по модели робота и выбрать Mechanism Joint Jog, то с помощью ползунков (рис. 1.5) можно менять угол поворота каждого звена робота: верхний ползунок отвечает за станину (звено, закрепленное на основании) и последовательно до рабочего органа. Так же эту операцию можно осуществить с помощью Joint Jog (рядом с Move и Rotate). Можно посмотреть в каких дозволенных рабочих зонах работает каждое звено. Убедитесь, что не получится при вращении одного звена, одно звено не 8

пройдет сквозь другое и с основанием невозможно манипулировать. Если после всех манипуляций потребуется восстановить исходное состояние робота, то следует нажать ПКМ по модели робота и выбрать Jump Home.

Рис. 1.5 Вращение звеньев робота. Теперь добавим контроллер, как показано на рис. 1.6. При подключении можно выбрать конфигурацию для него (настройка по умолчанию подойдет для нашей работы). После нажимаем next, next и finish. Процесс конфигурации может занять некоторое время, пока в правом нижнем углу Controller Status не загорится зеленым светом. С этого момента можно использовать три функции (в ряду Move, Rotate). С их помощью можно задавать движение рабочего органа виртуального робота: линейное (Jog Lineaar) и вращение (Jog Reorient). Эти 9

функции можно так же вызвать, нажав ПКМ по модели робота и выбрать Mechanism Linear Jog. В результате получим интерфейс, изображенный на рис. 1.7. Связав контроллер с рабочим органом и передвинув робота в пространстве, возник следующее сообщение: Do you also want to move the Task Frame? (Хотите ли вы, чтобы область задачи была ассоциирована с основанием робота). Нажмите: Yes (да).

Рис. 1.6 Подключение контроллера

10

Рис. 1.7 Конфигурация рабочего органа. Следующим шагом к нашей модели добавим инструмент. Например, MyTool может быть найден в библиотеке оборудования, как показано на рис. 1.8. После выбора нужно «присоединить» инструмент к роботу, перетащив его (в поле Layout), собственно, на робота. Должно появится сообщение: Do you want update the position of MyTool? (Хотите ли вы, изменить положение MyTool на актуальное), нажимаем Yes. Сейчас стало возможным оперировать с инструментом, как естественным продолжением робота в виде рабочего органа (рис. 1.9).

11

Рис. 1.8 Добавление рабочего инструмента

12

Рис. 1.9 Робот с РО На этом первая лабораторная работа закончена. Сохранить проект можно, зайдя в меню File и нажав Save Station. По умолчанию проект сохраняется в папку, расположение которой указано было при создании станции (рис. 1.1) в поле Location.

13

Лабораторная работа №2. Создание траекторий перемещения рабочего органа робота Для выполнения этой работы можно использовать заготовку из первой лабораторной работы или создать новое решение (Solution). Чтобы открыть решение из предыдущей работы нужно в меню File нажать на Open и указать путь к файлу. Создадим Workobject (определение рабочего объекта), как показано на рис. 2.1.

Рис. 2.1 Создание рабочего объекта Workobject в среде RobotStudio – это система настроек, по отношению к которой мы определяем объекты-цели (targets). На практике, это еще и важный калибровочный процесс между виртуальным 14

окружением и реальным с настоящим роботом. Обычно расположение рабочего объекта – это точка, которую легко описать/определить, например, угол стола. По умолчанию созданный рабочий объект по имени workobject_1 с wobj0, расположенный в основании робота. Допустим, что мы хотим, чтобы он располагался на уровне пола (представим, что пол на 400 мм ниже основания робота), тогда мы должны определить его по оси Z на -400 мм. Для этого при создании во вкладке Create Workobject нужно нажать на Position x,y,z (User Frame) и в поле Z записать -400 и нажать на кнопку Create. Результат будет выглядеть, как на рис. 2.2.

Рис. 2.2 Настройка рабочего объекта Теперь добавим к нашему проекту точки, которые послужат основанием для траектории движения 15

робота. Для этого выберем Create Target, как показано на рис. 2.3. Затем в окрестностях робота нажмем четыре раза ЛКМ, чтобы получилось примерно, как на рис. 2.4. И последним действием нажмем кнопку Create. В нашем случае созданные точки относятся к workobject_1. Сейчас стало легко перемещаться между ассоциированными точками. На данный момент, мы не знаем сможет ли робот достигнуть этих точек

Рис. 2.3 Создание точки назначения

16

Рис. 2.4 После создание четырех точек В любом случае, в большинстве приложениях для роботов обычно определяется стартовая позиция робота, связанная с его основанием. Сейчас это wobj0. Нажмем ПКМ по модели робота на вкладке Layout, выбираем опцию Jump Home, выберем в качестве рабочего объекта (Workobject) wobj0 и затем нажмем на кнопку Teach Target (рис. 2.5). В появившемся окошке (Default ‘wobj0’ is about to be used it is recommended to change the value. Do you want to continue with the operation? – По умолчанию рекомендованное значение ‘wobj0’ изменяется. Желаете продолжить операцию?) нажимаем Yes. Тем самым будет создана точка, ассоциированная с положением РО в данный момент. Она отражена во вкладке Paths&Targets для wobj0 как Target_50. 17

Рис. 2.5 Создание стартовой позиции РО После этого мы проверим достигает ли ранее определенные точки. Начнем с инструмента (рис. 2.6): ПКМ по любой получившейся точке, нажимаем View Tool at Target (Обзор инструмента в точке) и выбираем наш инструмент MyTool. Должно получится похожим образом, как на рис. 2.7. Мы можем наблюдать, что инструмент находится в неправильной ориентации, но все равно мы можем попытаться посмотреть на робота. Для этого опять ПКМ по точке и нажимаем View Robot at Target (Обзор робота в точке). Может ничего не произойти из-за того, что робот не смог достичь цели. В нижнем поле Output появится по этому поводу сообщение:

18

Рис. 2.6 Операция по перемещению к точке назначения

Рис. 2.7 Вид инструмента в точке 19

Переориентируем инструмент: опять нажимаем ПКМ по точке и выбираем Modify Target → Rotate (рис. 2.8). В появившемся меню (Rotate: Target_10) выбираем вращение вокруг оси Y на 180 градусов и нажимаем Apply (рис. 2.9).

Рис. 2.8 Модификация инструмента в точке

Рис. 2.9 Настройка модификации 20

Должно получится, как на рис. 2.10. Это сделано для одно точки, и так как у остальных точек та же проблема, то можно скопировать положение первой точки и скопировать для остальных: ПКМ по точке, выбираем Copy Orientation, выделяем остальные точки, ПКМ по любой из них и выбираем Apply Orientation.

Рис. 2.10 Результат переориентации Нажимая на точки, можно узнать достигает робот их или нет. В случае отрицательного результата следует изменить точку, например, ее координаты, приблизить к роботу с помощью команды Set Position. В следующего упражнения следует иметь 5 сориентированных точек для workobject_1 близких к рабочей зоне робота для с создания пути (рис. 2.11). 21

Рис. 2.11 Подготовка к созданию пути В результате во вкладке Paths&Targets появится путь Path_10 (папка Paths & Procedures). Теперь следует перетащить созданные 5 точек в желаемом порядке. Как видно во вкладке путь по умолчанию они принимают вид: MoveL Target_10, что значит: робот переместиться из текущей точки в точку Target_10 по прямой линии (Move – движение, L – Line – линия). Есть еще способ передвижения от точки к точке: MoveJ (J – jump – прыжок), с помощью ее робот переместиться по «удобному», оптимальному для него пути. Эту опцию следует изменять до того, как 22

перенесете точку в путь через нижнюю панель (рис. 2.12). На этой же панели можно изменить скорость перемещения v1000 (1000 мм/c), переместится прямо в точку или, не доходя до нее, скруглит траекторию z100 (100 мм – радиус скругления). Наши точки соединены в путь, но могут возникунть предупреждения, тогда придется менять конфигурацию для каждого перемещения. Как можно видеть из рис. 2.13, существует различные пути достижения инструментом позиции и его ориентация.

Рис. 2.12 Настройка перемещения

23

а) б) Рис. 2.13 Конфигурация звеньев робота Программное обеспечение позволяет произвести конфигурацию автоматически (рис. 2.13 а) или вручную, нажав ПКМ по Target. Именно по нему, потому что мы конфигурируем положение инструмента в точке. Сейчас мы запустим нашего робота на симуляцию выполнения движения по заданному пути. Для начала синхронизируемся (рис. 2.14) с контроллером (пошлем все имеющиеся данные ему). В появившемся окне нажмем OK.

Рис. 2.14 Синхронизация 24

Затем перейдем на вкладку Simulation и выберем опцию Simulation Setup (рис. 2.16). В появившемся окне (рис. 2.15) выберем наш путь, нажимаем клавишу Close и на панели Simulation кликаем на клавишу Play. После симуляции, если требуется что-то изменить, например, одну из точек, то следует нажать по ней ПКМ и выбрать Modify Target → Set Position. Но после этого нужно еще раз синхронизироваться.

Рис. 2.15 Выбор пути для симуляции

Рис. 2.16 Симуляция

25

Лабораторная работа №3. Импорт трехмерной модели в RobotStudio Созданием новое решение. Среда RobotStudio позволяет импортировать большинство файлов CAD формата. Для того, чтобы это сделать, нужно файл расположить в директории: C:\Users\xxxxx\Documents\RobotStudio\Geometry. \ Для примера был создан стол в программе SolidWorks и сохранен с расширением step. Теперь его можно вставить в наш проект, как показано на рис. 3.1.

Рис. 3.1 Импорт геометрии Как видим стол висит в воздухе и лежит на боку (не обязательно, что так будет всегда и со всеми 26

объектами: зависит от позиционирования в CAD программе), поэтому потребовалось повернуть его вокруг оси X на 90°. Добавим робота IRB 140 к нашему проекту. Он не находится на столе, как бы мы хотели. Для этого нажимаем ПКМ по модели робота, выбираем Position → Place → One Point. Выбираем функцию Snap Centre (захват центра – показывает шариком центр фигуры, на которую наведен курсор) на линейке инструментов во View (главный вид) и нажимаем, например, на отверстие для крепления во основание робота со стороны «подошвы» (должна появится точка с надписью From) в полях Primary Point – From мигающий курсор изменится на координаты, а затем для Primary Point – To, выбираем центр столешницы. Должно получится, как на рис. 3.2. Нажимаем Apply.

Рис. 3.2 Связь робота и стола 27

Теперь робот стоит на столе. Добавим к ним Деталь (созданную заранее также в SolidWorks, но с расширением SLDPRT) и рабочий инструмент (рис. 3.3). Чтобы «положить» этот объект на стол, поступите также, как и с роботом. Создайте контроллер.

Рис. 3.3 «Рабочее место»

28

С помощью Teach Target для wobj0 создадим стартовую позицию для РО Target_10. Потом новый workobject для Детали (рис. 3.4). Далее повторим то, чему научились на предыдущей лабораторной работе: укажем 6 точек-целей (Target_20…70) для пути (как если бы требовалось роботу вырезать отверстие такой формы); потом ориентируем РО в них; затем создаем путь: 10-20-3040-50-60-70-10; синхронизируем; устанавливаем путь в Simulation Setup и запускаем симуляцию (рис. 3.5). Так как процесс не автоматизирован полностью, то придется вручную настраивать конфигурацию при возникновение проблем при движении по пути.

Рис 3.4 Указание на Workobject

29

Рис 3.5 Результат работы Теперь познакомимся с собственным языком программирования RobotStudio: RAPID. Зайдите во вкладку Contoller, в левом меню выберите последовательно RAPID → T_ROB1 → Module1 → Path_10. Дважды кликнув по последнему получим вид интерфейса, как на рис. 3.6.

30

Рис. 3.6 Текст программы на языке RAPID Программный код можно сохранить: на палитре Controller → Program → Save Program As...

31

Можно одновременно и просматривать код, и симуляцию: кнопка Start на палитре Test and Debug (рис. 3.7). В той же палитре можно осуществлять пошаговое симулирование (Step In – шаг вперед, Step Out – шаг назад). Изменять сам код: например, скорость, скругление и другое.

Рис. 3.7 Два вертикальных окна Во вкладке Simulation можно просматривать: сколько времени заняла симуляция (рис. 3.8).

Рис. 3.8 Время симуляции 32

Рассмотрим теперь ситуацию со столкновениями. На вкладке Simulation есть кнопка: Create Collision Set (Создать ситуацию столкновения). В поле Layout появится функция CollisionSet_1, в дереве объектов которой находятся две папки: ObjectsA и ObjectsВ. Перетащите инструмент в ObjectsA, а Деталь в ObjectsВ. Программное обеспечение проанализирует столкновение между объектами А и В. Теперь нужно запустить симуляцию, дождаться пока РО достигнет Детали и поставить на паузу, а затем в пошаговой симуляции (кнопка Step) рассмотреть столкновение: инструмент изображается красным, если столкновение произошло, и желтым, если на очень близком расстоянии. До этого мы рассматривали движение по прямой. Сейчас мы поработаем с криволинейным движением. Для этого добавим Curve Thing из библиотеки: Import Library → Equipment → (Training Objects) Curve Thing. Объект не обязательно прикреплять к поверхности, для примера можно оставить в воздухе или, как сделано в примере, привязана к верхней грани Детали. На панели инструментов во View выбираем Curve Selection (рис. 3.9).

Рис. 3.9 Выбор привязки 33

Потом в меню Path выбираем Auto Path и выбираем любой криволинейный участок на Curve Thing (рис. 3.10). С помощью опции Tolerance (mm) можно увеличить количество точек прохода. Создан путь Path_29. Не забываем, что нужно сориентировать инструмент!

Рис. 3.10 Путь криволинейный

34

Лабораторная работа №4. Работа с виртуальным пультом управления FlexPendant ABB учебный пульт называет FlexPendant. Среда RobotStudio позволяет вызвать виртуальный аналог. Создайте новое решение, добавьте робота и контроллер для него и затем вызовите виртуальный пульт (рис. 4.1).

Рис. 4.1 Добавление виртуального пульта FlexPendant Так появится дополнительный интерфейс похожий на реальный пульт (рис. 4.2).

Рис. 4.1 Виртуальный пульт FlexPendant 35

Как показано на рис. 4.2, нажмите на Control Panel на палитре Virtual Controller. Сбоку появится панель, на которой есть «тумблер», который следует переключить из левого положения, automatic mode – автоматический режим, в среднее, manual mode – пользовательский режим; кликните по Enable, чтобы можно было манипулировать джойстиком. Выберите пункт Jogging – Трассировка (рис. 4.3) и теперь, зажав любую стрелку на джойстике, можно управлять моделью робота.

Рис. 4.3 Меню пульта Через меню (рис. 4.3) так же можно создавать программы: Program Editor (редактор программы). Для 36

наглядности создадим в этой лабораторной работе рабочий инструмент. Для этого во вкладке Modeling нажмите на Solid (твердотельный) и выберите Cone (конус), как показано на рис. 4.4. И задайте его параметры согласно рис. 4.5.

Рис. 4.4 Создание тела

37

Рис. 4.5 Задание параметров Таким образом, мы создадим лишь тело, а требуется инструмент. Для этого все в той же вкладке Modeling найдем Crete Tool (рис. 4.6).

Рис. 4.6 Создание рабочего инструмента В настройках (рис. 4.7) можно изменить имя инструмента (Tool Name) и использовать созданное тело в качестве него (Use Existing – использовать существующий). 38

Рис. 4.7 Настройки инструмента Нажмем Next, и появится следующее меню (рис. 4.8). В нем определяем, как показано в примере, TCP – начальная ориентация. Теперь, как и раньше, перетащим получившийся инструмент на модель робота (рис. 4.9).

39

Рис. 4.8 Ориентация инструмента

Рис. 4.9 Робот с созданным инструментом Теперь у нас есть инструмент, но его еще надо вызвать из пульта. Для этого в меню (рис. 4.3) выберем Program Data (программные данные). Выберем tooldata 40

и нажмем Show Data. В появившемся меню нажмем на New. В форме (рис. 4.10) выберем параметры согласно рисунку.

Рис. 4.10 Настройка инструмента через пульт Вернувшись в редактор программы, увидим, что там уже определен инструмент и можно задавать движение робота из текущего положения. Для этого нажмем на Add Instruction (добавить инструкцию) и появится меню с перечнем операторов (рис. 4.11).

41

Рис. 4.11 Операторы в редакторе пульта Выберем, например, MoveJ, тогда в программном коде появится строка (рис. 4.12). Следует изменить на наш инструмент! Теперь через Debug (отладка) можно пошагово выполнять программу с помощью PP to Main.

42

Рис. 4.12 Программный код Лабораторная работа №5. Модель роботизированной линии

Рис. 5.1 Результат работы В этой лабораторной работе используем все ранее полученные знания, чтобы получить в результате линию, как на рис. 5.1. Создадим новое решение. Добавим робота IRB 660. Затем из библиотеки стандартного оборудования выбираем конвейер. Так же импортируем как элемент геометрии заранее созданный конвейер. 43

Загрузим стандартный библиотечный файл контроллера. Для этого нажимаем «Import Library» и выбираем IRC Control-Module (рис. 5.2).

Рис. 5.2 Загрузка элемента - контроллера Загрузим пьедестал для робота. Нужно расположить его в пространстве. Выбираем его в меню Layout и в контекстном меню щелкаем «Set Position». В появившемся окошке вводим следующие данные (рис. 5.3).

44

Рис. 5.3 Конфигурация пьедестала Теперь переместим манипулятор и его систему координат. Для этого выбираем в верхней части окна программы вкладку Offline и нажимаем кнопку «System Configuration» (рис. 5.4).

Рис. 5.4 Кнопка Конфигурация системы В появившемся окошке слева выделяем узел ROB_1, а справа вводим данные, как на рис. 5.5.

45

Рис. 5.5 Смещение системы координат манипулятора Нажимаем «ОК». Появляется окошко. Нажимаем «Yes». Во время перезапуска контроллера появляется еще одно окно. Нажимаем «Yes». В графической части окна видим, что манипулятор переместился на пьедестал. Создадим объект «груз». На вкладке Modeling в меню Solid выбираем объект Box. Габаритные размеры: Length: 210, Width: 1000, Height: 200. Выбираем узел «Груз» в меню Layout, в контекстном меню выбираем Set Position. Вводим данные, как на рис. 5.6. 46

Рис. 5.6 Конфигурация груза Нажимаем Apply и Close. В графической части окна видим, что груз переместился на конвейер. Загружаем паллет. Располагаем в пространстве с помощью опции Set Position (рис. 5.7).

Рис. 5.7 Конфигурация паллеты Загружаем файлы геометрии tool_part1 и tool_part2. Перемещаем tool_part2 с помощью опции Set Position (рис. 5.8).

47

Рис. 5.8 Конфигурация tool_part2 В верхней части окна программы выбираем вкладку Modeling и нажимаем кнопку «Create Mechanism». Появляется окошко. Вводим данные, как на рис. 5.9.

Рис. 5.9 Создание РО.

48

Выделяем узел Links, в контекстном меню щелкаем Add link. Появляется окошко, как на рис. 5.10.

Рис. 5.10 Создание связи В поле Selected Part выбираем tool_part1, ставим галочку напротив Set as BaseLink. Нажимаем кнопку со стрелкой, после этого tool_part1 появляется в поле справа. Нажимаем Apply. Появляется новое окошко создания звена. В нем выбираем Selected Part tool_part2, нажимаем на кнопку со стрелкой. Звено tool_part2 появляется в правом поле. Нажимаем «ОК». Выбираем узелт Joints. В контекстном меню жмем

49

«Add Joint». В появившемся окошке вводим данные, как на рис. 5.11.

Рис. 5.11 Создание связки Нажимаем «ОК». Выбираем узел Tooldata, в контекстном меню щелкаем «Add tooldata». В появившемся окошке вводим данные, как на рис. 5.12.

50

Рис. 5.12 Настройка инструмента Нажимаем «OK». Нажимаем кнопку «Compile Mechanism» в нижней части окна Create Mechanism (рис. 5.13).

51

Рис. 5.13 Создание механизма

52

Под окошком Poses нажимаем кнопку «Add». В появившемся окошке вводим данные, как на рис. 5.14а. Нажимаем «ОК».

а) б) Рис. 5.14 Создание позиции механизма Добавим еще одно положение (рис. 5.14б). Нажмем «ОК». Нажимаем «Set Transmission Time». Вводим данные в появившемся окошке, как на рис. 5.15.

Рис. 5.15 Настройка времени транзакции Нажимаем «ОК». В окне Create Mechanism жмем «Close». В появившемся окошке жмем «Yes». Видим, что в меню Layout появился узел My Gripper. Прикрепляем схват к роботу. 53

Создадим Workobject. Повернем станцию в графическом окне так, чтобы ее конвейер был ориентирован также как на рис. 5.16.

Рис. 5.17 Получившийся вид Включаем привязку к конечным точкам. Для этого нажимаем кнопку «Snap End» в верхней части окна. Далее в разделе User Frame в окне Create Workobject выбираем пункт Frame by points и нажимаем на стрелку справа от него. Появится окошко ввода координат (рис. 5.18).

54

Рис. 5.18 Координаты Workobject Выбираем опцию Three-point. Затем щелкаем в поле ввода координат первой точки, с помощью привязки наводим курсор на точку 1 и щелкаем по ней. В полях, соответствующих первой точке, появляются значения координат. Аналогично вводим координаты для второй и третьей точек. Нажимаем «Assept». В окне Create WorkObject нажимаем «Create». Аналогично создаем WorkObject с названием Wobj_pallet на основе точек, показанных на рис. 5.19.

55

Рис. 5.19 Для паллеты Теперь займемся созданием целевых точек траектории. Точки будем задавать путем введения их координат, а также обучением. Нажмем кнопку Create Target. Появляется окно ввода данных (рис. 5.20а). Заполняем графы Position и Orientation, выбираем WorkObject Wobj_box. Нажимаем кнопку «Add», а затем «Create». Создадим еще одну целевую точку с данными, как на рис. 5.20б.

56

а) б) Рис. 5.20 Создание точек пути Теперь закроем окно Create Target. Откроем меню Paths&Targets. Точку, принадлежащую Wobj_box, переименуем в take_box, а точку, принадлежащую Wobj_pallet – в put_box. Выберем точку put_box в меню Paths&Targets. В контекстном меню щелкнем «Jump To Target». Появится окно, в котром выбираем Cfg1 (0,0,0,0) и нажимаем «Apply». В графическом окне видим, что манипулятор переместился в точку 57

put_box. Повторяем все то же самое для точки take_box. Теперь создадим пару точек со смещением вверх относительно take_box и put_box. Для этого скопируем точку take_box, выделим узел Wobj_box_of и в контекстном меню выберем пункт Paste. Появится новая точка с названием take_box_2. Переименуем ее в take_box_offset. Выделим точку take_box_offset и в контекстном меню выберем пункт Modify Target → Set Position. В появившемся окошке введем данные, как на рис. 5.21.

Рис. 5.21 Изменение позиции Нажимаем «Apply». Аналогично создадим put_box_offset. Теперь добавим промежуточную точку между позициями put_box_offset и take_box_offset с тем расчетом, чтобы манипулятор не сталкивался с конвейером. В этой же точке манипулятор будет останавливаться в конце траектории. На вкладке Home в разделе Settings поменяем систему координат Workobject на wobj0. 58

Выведем манипулятор в нужную точку вручную. Затем нажмем кнопку «Target» и выберем пункт Teach Target. Переименуем точку в Home_position. Создаем путь. Нажимаем кнопку «Empty Path». Добавим в траекторию Path_10 целевые точки в последовательности, как на рис. 5.22. И затем синхронизируем.

Рис. 5.22 Создание пути В окне Offline выделяем узел Module1 и нажимаем кнопку «Rapid Editor». Произведем следующие изменения: - для первой и последней точек траектории заменим команду MoveL на MoveJ. - в точках take_box и put_box заменим z100 на fine. Нажмем кнопку «Apply Changes». Закроем пока Rapid Editor. Выбираем вкладку Simulation, нажимаем кнопку «Simulation Setup». Выбираем путь. Теперь программа, управляющая движением манипулятора 59

вдоль заданной траектории, создана. Промоделируйте движение. Рассмотрим новый функционал: управление входными/выходными цифровыми сигналами. С помощью цифровых сигналов в данной лабораторной работе мы будем управлять состоянием захватного устройства. Создадим 2 сигнала. Когда импульс будет приходить на один из сигналов, схват будет открываться, когда на другой – закрываться. Откроем вкладку Offline, в меню Offline выделим узел контроллера. Нажмем кнопку «Configuration Editor». Выберем пункт I/O. Появляется окошко (рис. 5.23), в нем в колонке Type name выбираем Signal. Затем щелкаем правой кнопкой мыши в правой части окна, в контекстном меню выбираем Add Signal.

Рис. 5.23 Выбор сигнала

60

Появляется окно Edit Signal, заполняемое как на рис. 5.24. Нажимаем «ОК». Аналогично создаем сигнал doCloseGripper. Перезапускаем контроллер (Restart → Warmstart). Связываем сигнал с событием (открытие или закрытие схвата). Открываем вкладку Simulation, нажимаем кнопку «Event Manager». В появившемся окошке нажимаем кнопку «Add». Появляется окно Choose Trig Type and Activation. Ничего в нем не меняем, нажимаем «Next».

Рис. 5.24 Настройка сигнала В левой части окна I/O Signal Trigger выбираем сигнал doOpenGripper, проверяем, что в правой части окна точка стоит напротив пункта Signal is true (‘1’). Нажимаем «Next». 61

В окне Choose Action Type выбираем пункт Move Mechanism to Pose. Нажимаем «Next». В окне Move Mechanism to Pose выбираем, как на рис. 5.25.

Рис. 5.25 Настройка движения Нажимаем «Finish». Повторяем то же для сигнала doCloseGripper с единственным отличием: в последнем окне выбираем не Home Pose, а Pose Closed. Выбираем вкладку Simulation, нажимаем кнопку «I/O Simulator». Появляется окно, как на рис. 5.26.

Рис. 5.26 Результат настройки сигналов 62

Проверим работу сигналов: при изменении doCloseGripper с «0» на «1» захватное устройство закрывается, при изменении сигнала doOpenGripper с «0» на «1» захватное устройство открывается. Теперь необходимо создать визуализацию захвата груза схватом для их совместного перемещения по траектории. Для этого задаем два управляющих сигнала: Attach (для прикрепления груза от схвата) и Detach (для отделения груза от схвата). Сигналы создадим в меню Configuration Editor аналогично тому, как были созданы сигналы doCloseGripper и doOpenGripper. Заполняем таблицу следующим образом: Name Attach или Detach Type of Signal Digital Output Access Level All Необходимо создать объект, который будет находиться на схвате и контактировать с грузом (физическая интерпретация: полоска из резины для увеличения коэффициента трения между схватом и грузом). На вкладке Modeling в меню Surface выбираем объект Surface Rectangle. Габаритные размеры и ориентацию объекта вводим как показано на рис. 5.27.

63

Рис. 5.27 Создание «полоски резины» Назовем созданный объект «Attacher» и переместим его на захватное устройство. Установим робот в исходное положение, нажав «Jump Home». Свяжем положение объекта Attacher и захвата. Выбираем узел Attacher в меню Layout, в контекстном меню выбираем AttachTo – IRB_660. Установим положение объекта Attacher. Выбираем узел Attacher в меню Layout, в контекстном меню выбираем Set Position. Вводим данные, как на рис. 5.28.

64

Рис. 5.28 Настройка Attacher Объект перемещается на внутреннюю поверхность неподвижной части схвата. Связываем сигнал с событием. Открываем вкладку Simulation, нажимаем кнопку «Event Manager». В появившемся окошке нажимаем кнопку «Add». Появляется окно Choose Trig Type and Activation. Ничего в нем не меняем, нажимаем «Next». В левой части окна I/O Signal Trigger выбираем сигнал Attach, проверяем, что в правой части окна точка стоит напротив пункта Signal is true (‘1’). Нажимаем «Next». В окне Choose Action Type выбираем пункт Attach Object. Нажимаем «Next». Выбираем объект, который надо прикрепить и объект, к которому происходит прикрепление (риc. 5.29).

65

Рис. 5.29 Связка Эти действия повторяем и для сигнала Detach. Выбираем вкладку Simulation, нажимаем кнопку «I/O Simulator». Кроме сигналов doCloseGripper и doOpenGripper на ней появляются сигналы Attach и Detach. При нажатии на кнопку «Attach» груз прикрепляется к захватному устройству. Поэтому при перемещении манипулятора функцией Jog Joint груз перемещается вместе с ним. При нажатии на кнопку «Detach» груз открепляется от захватного устройства. Поэтому при перемещении манипулятора функцией Jog Joint груз остается в своем прежнем положении. Откроем текст управляющей программы в Rapid Editor. Измените программу, чтобы она выглядела следующим образом: PROC Path_10() MoveJ Home_position,v1000,z100,My_Gripper_1\WObj:=wobj0; 66

MoveL take_box_offset,v1000,z100,My_Gripper_1\WObj:=Wobj _box; MoveL take_box,v1000,fine,My_Gripper_1\WObj:=Wobj_box; PulseDO doCloseGripper; PulseDo Attach; WaitTime 0.5; MoveL take_box_offset,v1000,z100,My_Gripper_1\WObj:=Wobj _box; MoveL Home_position,v1000,z100,My_Gripper_1\WObj:=wobj0; MoveL put_box_offset,v1000,z100,My_Gripper_1\WObj:=Wobj_ pallet; MoveL put_box,v1000,fine,My_Gripper_1\WObj:=Wobj_pallet; PulseDO doOpenGripper; PulseDo Detach; WaitTime 0.5; MoveL put_box_offset,v1000,z100,My_Gripper_1\WObj:=Wobj_ pallet; MoveJ Home_position,v1000,z100,My_Gripper_1\WObj:=wobj0; ENDPROC PROC main() 67

SetDO doOpenGripper,0; SetDO doCloseGripper,0; SetDo Attach, 0; SetDO Detach, 0; PulseDO doOpenGripper; Path_10; ENDPROC Добавленные команды имеют следующее назначение: SetDO – Устанавливаем значение сигнала, PulseDO – Подаем импульс, WaitTime – Задержка. Нажимаем «Apply Changes» и закрываем редактор. Моделируем движение манипулятора. Теперь захватное устройство закрывается, когда нужно взять короб и открывается, когда нужно отпустить его. Сохраняем станцию.

68

Литература 1 Документация промышленного робота IRB

Оглавление Введение ....................................................................... 3 Лабораторная работа №1. Основы работы в RobotStudio ................................................................... 4 Лабораторная работа №2. Создание траекторий перемещения рабочего органа робота ..................... 14 Лабораторная работа №3. Импорт трехмерной модели в RobotStudio ................................................ 26 Лабораторная работа №4. Работа с виртуальным пультом управления FlexPendant ............................. 35 Лабораторная работа №5. Модель роботизированной линии.......................................... 43

69

Учебно-методическое издание Неклюдов Алексей Николаевич Мишин Алексей Владимирович Сорокин Павел Алексеевич

ОСНОВЫ ПРОГРАММИРОВАНИЯ РОБОТОВ В СРЕДЕ ROBOTSTUDIO ЧАСТЬ 1 Учебно-методическое пособие

Формат 60x84 1/16 Тираж 100 экз. Изд. № 93-18

Москва, Копировальный центр PrintSide

70