РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное
образовательное
учреждение высшего образования
«РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА
(МИИТ)»
ОСНОВЫ ПРОГРАММИРОВАНИЯ
РОБОТОВ В СРЕДЕ ROBOTSTUDIO
ЧАСТЬ 1
Учебно-методическое пособие к практическим
занятиям
Москва – 2018
0
МИНИСТЕРСТВО ТРАНСПОРТА
РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное
учреждение высшего образования
«РОССИЙСКИЙ УНИВЕРСИТЕТ ТРАНСПОРТА
(МИИТ)»
ЧАСТЬ 1
Учебно-методическое пособие
для студентов направлений
15.03.01 «Машиностроение»,
15.04.06 «Мехатроника и робототехника»
Москва – 2018
1
УДК 004.89
Н 47
Рецензент:
Доцент кафедры «Электропоезда и локомотивы» РУТ
(МИИТ), к.т.н. Володин С.В.
2
Введение
RobotStudio представляет собой симуляционную
среду программирования (со своим языком – RAPID)
роботов компании ABB. Она позволяет реализовать
программирование роботов с помощью виртуальной
технологии VRT (Virtual Robot Technology). Эта
технология использует «виртуальные контроллеры»
(Virtual Controller), представляющие собой точную
копию реального программного обеспечения робота,
что позволяет создавать очень реалистичный режим
симуляции.
3
Лабораторная работа №1. Основы работы в
RobotStudio
Так выглядит окно программы при запуске (рис.
1.1):
5
Рис. 1.2 Выбор робота
6
Для вращения робота в выбранном направлении
следует нажать на кнопку Rotate, которая находится
рядом с кнопкой Move (принцип действия аналогичен).
При решении задач требуется соблюдать точность
при перемещении или вращении робота. Чтобы задать
точное положение основания робота в трехмерной
системе координат, а также угол поворота к каждой
оси, нажмите правой кнопкой мышки (ПКМ) по
модели и выберите пункты Position → Set Position и в
появившемся поле Reference задайте значения, как на
рис. 1.4 (красные окошки: Position – координата по оси
Х в мм, Orientation – угол поворота по отношению к
оси Х в градусах; аналогично: для Y зеленые окошки,
для Z – фиолетовые). При изменении параметров
увидим, как графический интерфейс «подстраивается»
в виде прозрачной модели. Нажав Apply, робот
переместится в заданное положение.
Стоит отметить, что теперь система координат
основания робота является локальной для проекта в
целом.
7
Рис. 1.4 Положение робота
9
функции можно так же вызвать, нажав ПКМ по модели
робота и выбрать Mechanism Linear Jog. В результате
получим интерфейс, изображенный на рис. 1.7.
Связав контроллер с рабочим органом и
передвинув робота в пространстве, возник следующее
сообщение: Do you also want to move the Task Frame?
(Хотите ли вы, чтобы область задачи была
ассоциирована с основанием робота). Нажмите: Yes
(да).
10
Рис. 1.7 Конфигурация рабочего органа.
11
Рис. 1.8 Добавление рабочего инструмента
12
Рис. 1.9 Робот с РО
13
Лабораторная работа №2. Создание траекторий
перемещения рабочего органа робота
Для выполнения этой работы можно использовать
заготовку из первой лабораторной работы или создать
новое решение (Solution). Чтобы открыть решение из
предыдущей работы нужно в меню File нажать на Open
и указать путь к файлу.
Создадим Workobject (определение рабочего
объекта), как показано на рис. 2.1.
16
Рис. 2.4 После создание четырех точек
17
Рис. 2.5 Создание стартовой позиции РО
После этого мы проверим достигает ли ранее
определенные точки. Начнем с инструмента (рис. 2.6):
ПКМ по любой получившейся точке, нажимаем View
Tool at Target (Обзор инструмента в точке) и выбираем
наш инструмент MyTool. Должно получится похожим
образом, как на рис. 2.7.
Мы можем наблюдать, что инструмент находится в
неправильной ориентации, но все равно мы можем
попытаться посмотреть на робота. Для этого опять
ПКМ по точке и нажимаем View Robot at Target (Обзор
робота в точке).
Может ничего не произойти из-за того, что робот
не смог достичь цели. В нижнем поле Output появится
по этому поводу сообщение:
18
Рис. 2.6 Операция по перемещению к точке назначения
21
Рис. 2.11 Подготовка к созданию пути
22
перенесете точку в путь через нижнюю панель (рис.
2.12). На этой же панели можно изменить скорость
перемещения v1000 (1000 мм/c), переместится прямо в
точку или, не доходя до нее, скруглит траекторию z100
(100 мм – радиус скругления).
Наши точки соединены в путь, но могут
возникунть предупреждения, тогда придется менять
конфигурацию для каждого перемещения. Как можно
видеть из рис. 2.13, существует различные пути
достижения инструментом позиции и его ориентация.
23
а) б)
Рис. 2.13 Конфигурация звеньев робота
Программное обеспечение позволяет произвести
конфигурацию автоматически (рис. 2.13 а) или
вручную, нажав ПКМ по Target. Именно по нему,
потому что мы конфигурируем положение
инструмента в точке.
Сейчас мы запустим нашего робота на симуляцию
выполнения движения по заданному пути.
Для начала синхронизируемся (рис. 2.14) с
контроллером (пошлем все имеющиеся данные ему). В
появившемся окне нажмем OK.
25
Лабораторная работа №3. Импорт трехмерной
модели в RobotStudio
Созданием новое решение. Среда RobotStudio
позволяет импортировать большинство файлов CAD
формата. Для того, чтобы это сделать, нужно файл
расположить в директории:
C:\Users\xxxxx\Documents\RobotStudio\Geometry. \
Для примера был создан стол в программе
SolidWorks и сохранен с расширением step. Теперь его
можно вставить в наш проект, как показано на рис. 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.
28
С помощью Teach Target для wobj0 создадим
стартовую позицию для РО Target_10. Потом новый
workobject для Детали (рис. 3.4).
Далее повторим то, чему научились на предыдущей
лабораторной работе: укажем 6 точек-целей
(Target_20…70) для пути (как если бы требовалось
роботу вырезать отверстие такой формы); потом
ориентируем РО в них; затем создаем путь: 10-20-30-
40-50-60-70-10; синхронизируем; устанавливаем путь в
Simulation Setup и запускаем симуляцию (рис. 3.5).
Так как процесс не автоматизирован полностью, то
придется вручную настраивать конфигурацию при
возникновение проблем при движении по пути.
29
Рис 3.5 Результат работы
30
Рис. 3.6 Текст программы на языке RAPID
31
Можно одновременно и просматривать код, и
симуляцию: кнопка Start на палитре Test and Debug
(рис. 3.7). В той же палитре можно осуществлять
пошаговое симулирование (Step In – шаг вперед, Step
Out – шаг назад). Изменять сам код: например,
скорость, скругление и другое.
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).
34
Лабораторная работа №4. Работа с виртуальным
пультом управления FlexPendant
ABB учебный пульт называет FlexPendant. Среда
RobotStudio позволяет вызвать виртуальный аналог.
Создайте новое решение, добавьте робота и
контроллер для него и затем вызовите виртуальный
пульт (рис. 4.1).
37
Рис. 4.5 Задание параметров
38
Рис. 4.7 Настройки инструмента
39
Рис. 4.8 Ориентация инструмента
41
Рис. 4.11 Операторы в редакторе пульта
42
Рис. 4.12 Программный код
43
Загрузим стандартный библиотечный файл
контроллера. Для этого нажимаем «Import Library» и
выбираем IRC Control-Module (рис. 5.2).
44
Рис. 5.3 Конфигурация пьедестала
45
Рис. 5.5 Смещение системы координат
манипулятора
46
Рис. 5.6 Конфигурация груза
47
Рис. 5.8 Конфигурация tool_part2
48
Выделяем узел Links, в контекстном меню щелкаем
Add link. Появляется окошко, как на рис. 5.10.
49
«Add Joint». В появившемся окошке вводим данные,
как на рис. 5.11.
50
Рис. 5.12 Настройка инструмента
51
Рис. 5.13 Создание механизма
52
Под окошком Poses нажимаем кнопку «Add». В
появившемся окошке вводим данные, как на рис. 5.14а.
Нажимаем «ОК».
а) б)
Рис. 5.14 Создание позиции механизма
53
Создадим Workobject.
Повернем станцию в графическом окне так, чтобы
ее конвейер был ориентирован также как на рис. 5.16.
54
Рис. 5.18 Координаты Workobject
55
Рис. 5.19 Для паллеты
56
а) б)
Рис. 5.20 Создание точек пути
58
Выведем манипулятор в нужную точку вручную.
Затем нажмем кнопку «Target» и выберем пункт Teach
Target. Переименуем точку в Home_position.
Создаем путь. Нажимаем кнопку «Empty Path».
Добавим в траекторию Path_10 целевые точки в
последовательности, как на рис. 5.22. И затем
синхронизируем.
60
Появляется окно Edit Signal, заполняемое как на
рис. 5.24. Нажимаем «ОК». Аналогично создаем
сигнал doCloseGripper. Перезапускаем контроллер
(Restart → Warmstart).
Связываем сигнал с событием (открытие или
закрытие схвата). Открываем вкладку Simulation,
нажимаем кнопку «Event Manager».
В появившемся окошке нажимаем кнопку «Add».
Появляется окно Choose Trig Type and Activation.
Ничего в нем не меняем, нажимаем «Next».
61
В окне Choose Action Type выбираем пункт Move
Mechanism to Pose. Нажимаем «Next».
В окне Move Mechanism to Pose выбираем, как на
рис. 5.25.
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 Создание «полоски резины»
64
Рис. 5.28 Настройка Attacher
65
Рис. 5.29 Связка
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
68
Литература
1 Документация промышленного робота IRB
Оглавление
Введение ....................................................................... 3
Лабораторная работа №1. Основы работы в
RobotStudio ................................................................... 4
Лабораторная работа №2. Создание траекторий
перемещения рабочего органа робота ..................... 14
Лабораторная работа №3. Импорт трехмерной
модели в RobotStudio ................................................ 26
Лабораторная работа №4. Работа с виртуальным
пультом управления FlexPendant ............................. 35
Лабораторная работа №5. Модель
роботизированной линии.......................................... 43
69
Учебно-методическое издание
ЧАСТЬ 1
Учебно-методическое пособие
70