Методические
указания к выполнению лабораторной работы
Управление манипулятором
РМ-01
(на основе графической
модели)
Средства
отображения информации
Пульт
ручного управления манипулятора РМ-01.
Ручное
управление в режиме «JOINT»
Ручное
управление в режиме «WORLD»
Ручное
управление в режиме «TOOL»
Правила
построения текстового описания сцены
Пример
составления программы на языке ARPS
Перечень
и краткое описание команд программного обеспечения модели манипулятора
Цель работы:
1. Ознакомить с пультом ручного управления антропоморфного манипулятора и научить управлять манипулятором с помощью этого пульта.
2. Изучить язык программного обеспечения манипулятора и сформировать навыки программирования.
Перечень моделируемого оборудования: промышленный робот PUMA РМ-01, пульт ручного управления, система управления ARPS, рабочий стол, набор объектов-примитивов.
Данная программа представляет собой программу-тренажёр, которая даёт возможность получения навыков работы с трёхзвенным манипулятором (его моделью). Предложенный манипулятор представляет собой плоскую модель широко распространенного универсального антропоморфного промышленного робота РМ-01; модель имеет внешне схожую конструкцию (с соблюдением всех геометрических пропорций), подобный пульт ручного управления и язык программного обеспечения. Таким образом, студент, научившись работать с предложенной моделью, получит представление и некие навыки по управлению реальным промышленным роботом РМ-01.
Графический интерфейс программы представлен на рисунке 1.
Рис. 1. Графический интерфейс
программы
Основными компонентами пользовательского интерфейса программы являются средства отображения информации и органы управления.
К средствам отображения информации относятся:
· графическая модель, которая помимо изображения самого манипулятора (позиция 1) включает рабочий стол, видеокамеру и находящиеся на столе объекты (позиции 2, 3.1 и 4 соответственно);
· поля вывода.
Поля вывода предназначены для выдачи информации пользователю о текущем состоянии модели, предупредительных сообщении, а также сообщений об ошибках (см. таблицу 1).
Таблица 1. Поля вывода
Тип поля |
Позиция |
Наименование |
Информационные сообщения и изображения |
5.2 |
Индикатор скорости |
8 |
Окно демонстрации выбранной системы координат |
|
9 |
Поле вывода относительных координат звеньев |
|
13 |
Поле вывода сообщений пользователю |
|
Предупредительные сообщения |
13 |
Поле вывода сообщений пользователю |
Сообщения об ошибках |
Рассмотрим подробнее каждый из этих объектов.
Как уже отмечалось ранее, данная графическая модель является моделью манипулятора РМ-01 – аналога PUMA-560. Манипулятор РМ-01 был разработан первоначально как программируемый универсальный манипулятор для выполнения операций сборки. Его отличает высокая механическая точность изготовления, достаточно мощные приводы постоянного тока. Манипулятор выполняет основные технологические и частично транспортные операции. Его возможности расширены наличием комплекта инструментов, автоматически устанавливаемых на манипулятор.
Максимальная грузоподъемность манипулятора 2,5 кг при общей массе 53 кг. Статическое усилие в рабочей точке инструмента достигает 60 Н.
Манипулятор является антропоморфным, имеет шесть степеней подвижности. Шесть звеньев и основание манипулятора образуют шесть пар звеньев пятого класса. Вращение звеньев осуществляется вокруг осей, проходящих через центры суставов.
Звенья манипулятора могут перемещаться в строго определенном диапазоне: первое звено от -1600 до +1600, второе звено от -2550 до +450, третье звено -450 до 2250, четвертое звено от -1100 до +1700, пятое звено от -1000 до +1000, шестое звено от -2660 до +2660.
Ввиду того, что модель является плоской, для нее реализовано только три степени подвижности – вращение звеньев вокруг осей. Диапазон вращения звеньев аналогичен РМ-01: для первого и второго звеньев -1350 до +1350, третье звено от -1000 до +1000. Нумерация звеньев идет от основания. Величина угла поворота звена модели (значение относительной координаты звена) отсчитывается от прямой, проходящей через ось вращения данного звена и центр основания колонны (для первого звена) или ось вращения предыдущего звена (для последней пары звеньев). За положительное направление принято вращение по направлению движения часовой стрелки.
Значения относительных координат звеньев в любой конфигурации модели манипулятора выводятся в полях 9.
Система очувствления модели представлена силомоментным датчиком, встроенным в запястье манипулятора, и системой технического зрения (позиции 3.2 и 3.1).
По запросу оператора на рабочий стол 2 выставляются фигуры 4 (подробнее об операции построения сцены будет рассказано ниже). Управляя манипулятором с помощью пульта ручного управления 5, можно захватывать объекты, переставлять их, составлять пирамиды. Координаты фигур, находящихся на столе, в любой момент можно вывести в окне 13, нажав на ТВК 3. В этом же окне, в зависимости от выбранного режима, выводятся предупреждающие сообщения или сообщения о совершенных ошибках. Программа может работать в двух режимах, выбор производится путем нажатия соответствующих кнопок 6. В режиме А демонстрируется работа системы очувствления с элементами искусственного интеллекта. Все действия оператора контролируются и анализируются программой, и выполняются только те из них, которые программа сочтет корректными, т.е. в результате которых не возникало бы аварийных ситуаций в том случае, если бы оператор управлял реальным манипулятором. Например, при попытке поставить кубик на шарик или выпустить фигуру из схвата, находящегося на большой высоте, будет выдаваться соответствующее сообщение в окне 13 и схват по команде не откроется.
Контрольные задания рекомендуется выполнять в режиме Б. При этом, программа моделирует выполнение всех действий оператора без анализа последствий, к которым они могут привести. Т.е., применительно к предыдущим примерам, схват откроется в любом случае, но фигуры на столе упадут, и работать с ними дальше будет нельзя.
Органы управления представлены кнопками и полями ввода:
· Позиция 5 – пульт ручного управления (ПРУ)
§ 5.1 – Кнопки управления скоростью
§ 5.3 – Кнопки управления схватом
§ 5.4 – Панель кнопок управления степенями подвижности
§ 5.5 – Панель кнопок выбора режима работы манипулятора
· Позиция 6 – кнопки выбора режима работы программы
· Позиция 7 – кнопка построения/обновления сцены
· Позиция 9 – поле ввода относительных координат звеньев
· Позиция 10 – кнопка ввода относительных координат звеньев
· Позиция 11 – поле ввода команд ARPS
· Позиция 12 – кнопка ввода команд ARPS
Пульт ручного управления манипулятора РМ-01 используется для управления манипулятором в ручном режиме, для обучения робота точкам, для выполнения проверочных и наладочных работ. Имеется пять режимов работы пульта:
1. COMP – управление манипулятором от ЭВМ. Кнопки управления пульта заблокированы.
2. JOINT – ручное управление манипулятором для перемещения каждого звена в связанных системах координат.
3. WORLD - ручное управление манипулятором для перемещения инструмента относительно базовой системы координат.
4. TOOL - ручное управление манипулятором в системе координат инструмента.
5. FREE – отключение приводов звеньев манипулятора.
Выбор режима управления осуществляется нажатием соответствующей кнопки на панели пульта (позиция 5.5). Выбранный режим индуцируется светодиодом.
Под обучением промышленного робота понимается программирование, при котором составление и ввод управляющей программы осуществляет человек (оператор) с помощью предварительного перемещения рабочего органа манипулятора и занесением в устройство управления значений параметров движения в виде управляющей программы.
Для обучения робота перемещениям из точки в точку на пульте имеется кнопка «STEP», нажатие которой приводит к записи текущего положения манипулятора в ОЗУ и присвоения ему соответствующего имени точки.
Скорость перемещения рабочего органа манипулятора регулируется нажатием кнопок «SPEED»: «+» или «-». Выбранная скорость соответствует количеству светящихся светодиодов восьмиступенчатого (в данной программе - четырехступенчатого) индикатора. Нажатием кнопок «+» и «-» можно увеличивать или уменьшать скорость.
Кнопки «OPEN» и «CLOSE» обеспечивают управление захватом манипулятора, которое осуществляется в режимах «JOINT», «WORLD», «TOOL».
Рис. 3.
Пульт ручного управления
Для перехода в указанный режим необходимо нажать кнопку «JOINT» на пульте. С помощью кнопок «+» или «-» соответствующего звена манипулятора с первого по шестое (позиция 5.4) можно увеличивать или уменьшать угол поворота звеньев относительно друг друга. Так как модель имеет три степени подвижности, в каждом из трех указанных режимах инициированы по три пары кнопок. Соответствие между степенями подвижности и управляющими ими кнопками устанавливается по изображению выбранной системы координат (позиция 8). Для режима «JOINT» это кнопки «Y/2» (поворот первого звена), «Z/3» (поворот второго звена) и «RY/5» (поворот третьего звена).
Для перехода в этот режим необходимо нажать кнопку «WORLD» на панели пульта. При нажатии кнопок «X/1», «Y/2», «Z/3» захват манипулятора перемещается вдоль осей базовой системы координат робота. С помощью кнопок «RX/4», «RY/5», «RZ/6» фланец кисти поворачивается вокруг осей базовой системы координат. Этим способом можно задавать ориентацию схвата, не меняя режима работы пульта. В программе инициированы кнопки «Y/2», «Z/3» (перемещение вдоль осей базовой системы координат) и «RX/4» (поворот схвата).
Для перехода в указанный режим необходимо нажать кнопку «TOOL» на пульте. Так же, как и в режиме «WORLD», осуществляется перемещение инструмента вдоль осей координат (но не базовой системы, а системы координат инструмента). Ориентация схвата манипулятора задается теми же кнопками, что и в режиме «WORLD».
Перемещение схвата следует производить первоначально в режиме «JOINT» для выхода в рабочую зону и придания ему требуемой ориентации. Для ускорения выполнения данной процедуры относительные координаты звеньев можно вводить в полях 9 (которые одновременно являются, как уже упоминалось ранее, и полями вывода). По нажатию кнопки 10 манипулятор принимает требуемую ориентацию. Режим «WORLD» требует повышенного внимания, так как возможен выход звеньев в крайнее положение и отключение системы управления из-за того, что ЭВМ сама планирует вращение сочленений, исходя из заданного перемещения относительно базовой системы координат.
Начинать работу с ПРУ следует на малой скорости (одна - две риски светодиодного индикатора).
Обучение робота может осуществляться с использованием ПРУ или в командном режиме (в программе реализован только командный режим обучения). Заданием точек определяют те позиции, в которые должен переместиться инструмент манипулятора.
Существует три типа точек: координатные, абсолютные и комбинированные.
Абсолютные точки имеют перед своим именем знак #. Например, #А2, #COT. С помощью этих точек достигается более высокая точность выхода в заданное положение и однозначность конфигурации манипулятора. Координаты точки определяются в углах поворотов звеньев относительно связанных систем координат. Данный тип точек, в отличие от координатных, нельзя программно преобразовывать и комбинировать с другими точками.
Координатные точки определяются относительно базовой системы координат робота. Координаты схвата манипулятора РМ-01 вычисляются по проекциям начала системы координат рабочего органа манипулятора на оси базовой системы координат и тремя углами ориентации системы координат инструмента.
Для работы в режиме необходимо:
1. С использованием ПРУ вывести манипулятор в требуемое положение.
2. Для запоминания точки ввести с клавиатуры команду HERE A или HERE #A, где A или #A – имя точки в выбранной системе координат.
3. Для ввода координат других точек действие повторить.
Команда HERE, как и другие команды языка ARPS, вводится в окне 11. Запуск выполнения команды осуществляется при нажатии кнопки 12.
При первом нажатии кнопки 7 осуществляется построение сцены (вывод объектов на рабочий стол) на основе информации, считанной из текстового файла. Если положение фигур в процессе работы как-то менялось, все последующие нажатия данной кнопки приведут к обновлению сцены - объекты будут выставлены на свои начальные позиции согласно текстовому описанию сцены.
В данной программе группа объектов представлена четырьмя видами предметов: шар, цилиндр, конус и прямоугольный параллелепипед. Для вывода объекта на экран необходимо знать его тип, координаты и параметры (см. таблицу 2).
Таблица 2. Элементы текстового описания объектов
|
Тип
объекта |
Координата центра основания y |
Радиус (радиус основания) |
Высота объекта |
Ширина объекта |
Шар |
ball |
+ |
+ |
+ |
|
Конус |
cone |
+ |
+ |
+ |
|
Цилиндр |
cyln |
+ |
+ |
+ |
|
Параллелепипед |
parl |
+ |
+ |
|
+ |
Таблица 3. Пример табличного описания сцены
|
Координата
центра основания y (мм) |
Радиус (радиус основания) (мм) |
Высота
объекта (мм) |
Ширина
объекта (мм) |
Шар |
90 |
15 |
|
|
Параллелепипед |
270 |
|
50 |
35 |
Цилиндр |
350 |
20 |
60 |
|
Под координатой центра основания для шара подразумевается координата точки касания шара с поверхностью стола.
Координаты и параметры объектов задаются в миллиметрах, отсчет координаты y ведется вдоль стола от левого края. Ширина стола равна 540 мм, максимальный габарит объекта по ширине (ширина раскрытия губок схвата) должен составлять 48 мм.
В текстовом описании сцены на первом месте в переменной number задается общее количество фигур. Далее, через знак &, следует перечень фигур с описанием их типов, параметров и координат. Информация о каждом объекте записывается в одну переменную figi (i – порядковой номер объекта в описании, начиная с 0-го), данные нужно перечислять по порядку согласно таблице 2, разделяя их знаком +.
Например, конус с координатой центра основания y = 155 мм, радиусом основания 15 мм и высотой 50 мм будет описываться так: «cone+155+15+50». А информация о сцене, описание которой содержится в таблице 3, представляется следующим образом:
«number=3&fig0=ball+90+15&fig1=parl+270+50+35&fig2=cyln+350+20+60»
Язык программного обеспечения модели создавался по подобию языка программирования робота РМ-01 - ARPS.
ARPS (Advanced Robot Programming System, Усовершенствованная система программирования робота) – система на базе вычислительной машины, предназначенная для управлением роботом т.о., что задание вида работы, выполняемой роботом, осуществляется посредством введения программ в ЭВМ. Возможность программирования, обеспечиваемая системой ARPS, позволяет обучить робот быстро и аккуратно выполнять простые и сложные операции.
Система управления ARPS включает центральную ЭВМ, видеотерминал, накопитель на гибких магнитных дисках (НГДМ), выносной пульт ручного управления и линии входа/выхода. Программирование осуществляется путём записи с клавиатуры видеотерминала инструкций, предназначенных для управления роботом. При необходимости последующего использования программы можно записать на гибкий магнитный диск. Пульт ручного управления используется для обучения робота программируемым точкам позиционирования. С помощью линий входа/выхода робот может управлять различным оборудованием, например, конвейерами, станками, сварочными установками и т.д.
Операционная система ARPS постоянно хранится в программируемом постоянном запоминающем устройстве (ППЗУ) устройства управления. Она содержит инструкции управления роботом, а также ряд вспомогательных функций, с помощью которых выполняется программирование робота методом обучения, запись данных на гибкий магнитный диск и т.д. Обеспечена возможность составления новых программ во время работы робота. Целесообразно составить ряд программ общего использования (библиотеку программ), например, для операций загрузки-разгрузки, круговой интерполяции и т.д. Комбинирование этих библиотечных программ позволяет быстро программировать робот для выполнения более сложных задач и экономить время, необходимое для отладки программ.
Обычный формат команд имеет вид:
КОМАНДА аргумент1, аргумент2, …
КОМАНДА представляет собой последовательность символов, иллюстрирующую операцию, которую следует выполнить. Инструкции могут состоять как из одной части (например, BASE), так и из двух частей (например, ZERO MEMORY), и очень часто могут быть сокращены до одного, двух или трёх символов.
Аргумент1, аргумент2, … - переменные, точки, величины углов и т.д., связанные с командой. Вид и количество аргументов колеблются в зависимости от конкретной команды. В этом руководстве все аргументы написаны прописными буквами. Например, в команде:
DELAY время
время – единственный аргумент команды DELAY, которому пользователь должен придать требуемое значение, например,
DELAY 5
что приведёт к задержке в 5 секунд при выполнении программы.
Если тип аргумента заключён в угловые скобки (например, <время>), то аргумент является необязательным и пользователь не должен обязательно придавать ему значение. В этом случае СУ использует заданное внутреннее значение по умолчанию, которое почти всегда равно нулю. Например,
BASE <dx>, <dy>, <dz>, <z-rotation>
В команде все аргументы являются необязательными и поэтому команда, определяющая переход основной системы координат на 100 мм в направлении по оси Z, может быть записана следующим образом:
BASE , , 100
или
BASE 0, 0, 100, 0
Можно использовать следующие виды аргументов:
1. Целые переменные - буквы от A до Z, цифры от 0 до 9 и знак «.»; первым символом всегда должна быть буква. Рекомендуемая длина до десяти символов.
2. Десятичные числа – от -32768 до 32767.
3. Угловая величина – от -180 до 179.995 с шагом 0.005.
4. Расстояние – от -1024 до 1023.99 с шагом 0.01.
5. Имя точки – строка любой длины символов A – Z, знаков «.» и # или цифр от 0 до 9. Рекомендуемая длина до десяти символов. Знак # только для абсолютных точек.
Предположим, что надо обучить робот простой задаче - переместить деталь. Эту задачу робот может выполнить с помощью следующих отдельных операций:
1. Переместиться над деталью
2. Переместить вплотную к детали
3. Сжать схват
4. Поднять деталь
5. Переместиться в точку над тарой
6. Переместиться вплотную к таре
7. Разжать схват
8. Переместиться обратно в точку над тарой
Вышеуказанная последовательность программного цикла может повторяться столько раз, сколько требуется при условии, что новая деталь автоматически устанавливается вместо предыдущей и старая заготовка убирается из тары, куда робот её положил.
Примечание: Предполагается,
что в начале цикла схват манипулятора разжат.
Для того чтобы заставить робот выполнять приведённую выше программу, необходимо записать её, используя язык программирования ARPS.
1.
GONEAR
PART , 50 (cr)
2.
GOS
PART (cr)
3.
CLOSE
(cr)
4.
GOSNEAR
, 150 (cr)
5.
GONEAR
BOX , 100 (cr)
6.
GO
BOX (cr)
7.
OPEN
(cr)
8.
GONEAR
, 100 (cr)
Примечание:
Точка PART представляет собой место, откуда деталь берётся. Точка BOX –
это точка, где деталь устанавливается. Обучение определению точкам
рассматривается ниже.
При выполнении программы манипулятор перемещается следующим образом:
1. Манипулятор перемещается в положение на расстоянии 50 мм над деталью
2. Манипулятор перемещается вплотную к детали
3. Осуществляется захват детали
4. Манипулятор перемещается вверх на 150 мм
5. Манипулятор перемещается над назначенной точкой на расстоянии 100 мм
6. Манипулятор перемещается вплотную к назначенной точке
7. Захват разжимается
8. Манипулятор поднимается на 100 мм вверх
Следующим шагом необходимо обучить робот требуемым в программе точкам. Определение точек может быть выполнено различными способами. Ради простоты на этом этапе используется только команда HERE.
Сначала обучим робот точке, в которой выполняется захват детали. С помощью пульта ручного управления перемещаем манипулятор в положение, в котором можно выполнять захват детали. После этого в ЗУ робота записываются координаты данного положения следующим образом:
HERE PART
Соответствующим способом обучают и точке BOX:
HERE BOX
Теперь программа может быть инициирована и можно проверить её функционирование.
Команды для определения точек
HERE
С помощью HERE в ЗУ устанавливается величина точки, равной текущей позиции манипулятора. Формат команды:
HERE точка
где
- точка – положение манипулятора, в которое он был выведен с помощью пульта ручного управления
Например:
HERE A1
значение точки A1 = значение текущей позиции манипулятора (значения y, z)
LOCATE
По этой команде значение одной точки задаётся в качестве значения второй точки. Формат команды:
LOCATE точка1 = точка2
где
- точка1 - точка, чьё значение задаётся в качестве значения точки2
Пример:
LOCATE A1 = A2
в качестве величины точки A2 задаётся точка A1
CHANGE
С помощью этой команды можно изменить значение точек и/или записать новые точки. Формат команды:
CHANGE (точка)
При вводе команды выводится значение позиции и появляется знак вопроса:
CHANGE location? (изменить точку?)
после чего пользователь может задать с клавиатуры новые значения элементам точек, разделённым запятыми. Если значение каких-либо элементов не задано, а на клавиатуре набираются лишь разделительные символы (запятые), то эти значения остаются неизменными.
Пример:
Точка A1 подвергается изменениям следующим образом:
CHANGE A1
x z
------ ------
A1 10,00 5,00
CHANGE location? : 5,
x z
------ ------
A1 5,00 5,00
DISTANCE
По этой команде производится вычисление расстояния между двумя точками в системе координат. Формат команды:
DISTANCE переменная = точка1, точка2
где
- переменная - целочисленная переменная, значение которой задаёт расстояние между точкой1 и точкой2
Пример:
DISTANCE X = LOC1, LOC2
вычисляется расстояние между точками LOC1 и LOC2, величина устанавливается в виде переменной X.
SHIFT
Эта команда используется для перемещения точки в основной системе координат. Формат команды:
SHIFT точка = <dy>, <dz>
где
- dy - расстояние (в мм.), которое прибавляется к значению y точки
- dz - расстояние (в мм.), которое прибавляется к значению z точки
Пример:
SIFT LOC1 = 100, -200
к значению y0 точки прибавляется 100 мм, а из значения z точки вычитается 200 мм.
Команды управления манипулятором
С помощью этой команды можно переместить манипулятор в желаемую точку. Формат команды:
GO точка
Пример:
GO LOC1
манипулятор перемещается в точку LOC1.
GONEAR
С помощью этой команды можно передвинуть манипулятор на нужное расстояние к заданной точке. Форматы команды:
GONEAR <точка>, расстояние
где
- точка – точка записанная в ЗУ. Если точка не задана, то по умолчанию используется текущая позиция схвата робота
- расстояние - расстояние, на которое передвинется манипулятор от желаемой точки. Расстояние измеряется в мм в направлении оси Z системы координат робота
Примеры:
а) GONEAR B1, 100
манипулятор передвинется к точке B1 и будет удалён от неё на расстояние 100 мм
б) GONEAR 100
манипулятор передвинется на 100 мм от текущего положения схвата в направлении оси Z системы координат робота
GO READY
По этой команде манипулятор перемещается в вертикальное положение (углы шарниров 1 = 0, 2 = 0, 3 = 0). Формат команды:
GO READY
Команды управления схватом манипулятора
CLOSE
Этой командой производится сжатие схвата манипулятора. Формат команды:
CLOSE
OPEN
По этой команде происходит разжатие схвата манипулятора. Формат команды:
OPEN
Команды ветвления
IF
По этой команде выполняется сравнение двух чисел между собой и если сравнение истинно, то происходит ветвление программы. Формат команды:
IF число1 cmp число2 THEN JUMP метка
где
- число1 (переменная1) - целочисленная переменная или константа, значение которой является первой величиной сравнения
- число2 (переменная2) - вторая величина сравнения
- cmp – оператор сравнения
<> - не равны
= - равны
> - больше чем
< - меньше чем
> - больше или равна
< - меньше или равна
- метка - метка адреса строки программы, на которую передаётся управление, если сравнение переменной1 и переменной2 оказалось истинным
Пример:
IF A = B THEN JUMP 10
проверяются числа A и B, и если они раны, то управление передаётся на строку с адресом 10.
Специальные команды
SET
С помощью этой команды вычисляется значение для целочисленной переменной. Формат команды:
SET переменная = число1 <ариф. опер.> <число2>
где
- число1 = целочисленная переменная, величина которой задаётся по результату арифметической операции
- число2 = целочисленная переменная или константа.
- ариф. опер. = арифметическая операция переменными число1 и число2. Операторы таковы:
+ - сложение
- - вычитание
* - умножение
/ - деление
MOD – остаток, разность, модуль
AND – двоичное “И”
OR – двоичное ”ИЛИ”
Примеры:
а) SET X = 0
обнуляет переменную X
б) SET X = X+1
к переменной X прибавляется 1