Робототехника.Фу, Ли, Гонсалес (962794), страница 84
Текст из файла (страница 84)
2. Описание иа языке программирования расположения объектов (загрзузочного устройства, детали и т. д.) в пространстве и их отношений (деталь отверстие, болт схнпт, и т, д.) ' 3. Разделение задачи сборки на последовательность действий, таких, как движение робота, захват объектов, установка болта. 4. Добавление команд с устройств очувствления для определения нестандартных ситуаций (таких, как невозможность определения местонахождения болта во время захвата) и для управления выполнением задачи сборки.
5. Отладка и совершенствование программы с помощью повторенн ня ша го в 2 — 4. Важными характеристиками, которые мы определили, яв. ляются описания положения (шаг 2), движения (шаг 3) и очувствления (шаг 4). Эти характеристики подробно обсуждаются ниже, В качестве примеров рассмотрим языки АБ (200] и Ам(. (283). Выбор этих языков не является произвольным.
А(. повлиял на создание многих роботоориептированных языков и до сих пор активно развивается. " Символ подчеркивания обычно используется в языкак программирования ддя обеспечения соответствия в названиях переменных. 489 Он обладает широким набором команд для удовлетворения требованиям программирования робота и также свойствами языка программирования высокого уровня. Язык АМЕ в настояшее время предназначен для управления роботами фирмы 1ВМ. АМЕ построен на иных принципах, чем АЕ.
С помошью этих языков воссоздается окружающая среда робототехнической системы, в которой могут быть построены различные программируемые интерфейсы для роботов. Таким образом, имеется богатый набор основных элементов для описания операций робота, что дает возможность пользователям реализовывать команды высокого уровня в соответствии с их требованиями. В настоящее время АЬ и АМЬ являются наиболее распространенными роботоориентированными языками. Они описаны в табл.
9.1. Таблггца 9.1. Краткая характеристика роботоориеитированиых языков програмироваиияАь и АМь АЬ разработан в Стандфордском университете. В настоящее время ои может быть реализован на ЭВМ тяпа ЧАХ, и управ,~ение роботом в реальном времени осуществляется с одиночной стойки РПР-11. ° Язык программирования высокого уровня с характерными чертами Алгола и Паскаля, ° Оснащен спецификациями как на уровне робо~а, так н на уровне задачи. ° Переведен на язык программирования низкого уровня и реализовав на машине, осуществляющей управление в реальном времени. ° Имеет конструкции языка программирования в реальном времени (синхронизация, совместное выполнение и условные переходы).
° Представление данных и структур управленкя осуществляется, как и в языке Алгол ° Оснащен средствами для моделирования рабочего пространства АМь разработан фирмой !ВМ. Он предназначен для управления роботами типа 1ВМ КЗ-1 и реализован на ЭВМ ЗЕК)Е5.1 (или персональном компьютере фирмы 1ВМ), которая также допускает возможность управления роботом. Робот КЗ-1 представляет собой манипулятор, работающий в декар.
тавай системе координат и имеющий 6 степеней свободы. Первые три сочленения робота — призматические и три последние — вращательные, ° Обеспечивает описание окрулгающей среды, в которой могут быть построены различные интерфейсы пользователя. ° Обладает свойствами и конструкциями, подобными свойствам и конструкциям языка ШБР, и способен к агрегированию данных, ° Имеет возможность планирования траекторий сочленений в пространстве, допускает ограничения по положению и скорости, а также позволяет описывать абсолютные и относительные движения. ° Обеспечивает управление от датчиков для возможного прерывания движения робота. 9,2.1.
Определение положения Обычно при роботизированной сборке взаимное расположение робота и деталей строго определено. Детали закрепляются в технологических приспособлениях так, чтобы минимизировать 490 отклонения от заданного положения. Для сборки произвольно расположенных деталей требуются системы технического зрения, и поэтому оиа еше не получила широкого распространения в промышленности.
Наиболес общим подходом для описания ориентации и положения объектов в рабочем пространстве является подход, предусматривающий использование систем координат и соответствующих им структур данных, называемых фреймами. Фреймы представляются матрицами однородного преобразования размерностью 4 Х 4. Фрейм состоит из подматрицы размерностью 3;х, 3 (определяющей ориентацию) и вектора (определяющего положение), которые в свою очередь определены по отношению к некоторой базовой системе координат (базовому фрейму). В табл.
9.2 приведены описания на языках АЕ и АМЬ для трех фреймов, соответствующих системам координат, связанньгм с роботом, деталью и загрузочным устройством, показанных на рис. 9.1. Таблица 9.2, Определение основных фреймов на языках Аь и АМЬ А1л Робот ч- РКАМЕ(п)!гот, ЧЕСТОК (508, О, 381) ь мм); Деталь ч- РКАМЕ (КОТ (Е, 90 ь град), ЧЕСТОК (508, 381, О) ь мм); Загрузочное устройство ч- РКАМЕ(п11го1, ЧЕСТОК (635, 508, О) '. мм); Примечанию 1) п11гог — предварительно определенный фреям, который имеет значение КОТ(Х, О*град); 2) и- — оператор присваивания в языке А1.; 3) точка с запятой обозначает конец программного выражения; 4) звездочка (*) является оператором умножения, которыя зависит от типа переменных.
Здесь она используется, чтобы добавить единицы измерения к элементам вектора. АМ1.: Робот = ((508, О, 381), Е111.ЕККОТ ((О, О, О))); Деталь = ((508, 381, О), ЕПЕЕККОТ ((О, О, 90))); Загрузочное устройство =((635. 508. О), ЕЕ КЕККОТ ((О, О, О))); Примечание.
ЕЕ ЕЕККОТ вЂ” подпрограмма, формирующая матрицу вращения, которая дает требуемые значения углов. Язык АЕ позволяет формировать структуры данных декартовых систем координат ~)ЕРАМЕ~!, матриц вращения (гсОТ'1 и векторов ~ )гЕСТОгс ~!. С другой стороны, язык АМЕ предусматривает обобщенную структуру, называемую агрегатом, которая позволяет пользователю конструировать свои собственные структуры данных. В табл.
9.2 приведена структура данных для представления декартовой системы координат, имеющая формат (вектор, матрица). В этой структуре данных вектор положения робота является агрегатом, состоящим из трех скаляров, а матрица представляет собой агрегат из трех векторов ориентации. 491 Рассмотрим более подробно обозначения в табл. 9.2. Первый ЛЕ-оператор описывает систему координат робота, главные оси которой (п(!То1 обозначает отсутствие вращения) параллельны осям неподвижной системы координат.
Начало системы координат, связанной с роботом, смещено на расстояние (608, О, 381) мм от начала неподвижной системы координат. Второй ЛЬ- оператор описывает систему координат, связанную с деталью, главные оси которой повернуты на 90' вокруг оси 2 относительно неподвижной системы координат. Начало координат расположено на расстоянии (608, О, 381) мм от начала неподвижной системы координат. Третий оператор имеет то же значение, что н первый, за исключением расположения.
Смысл трех операторов на языке ЛМЕ тот же, что для операторов на языке ЛЕ. Таким образом в этих языках положение в пространстве определяется с помощью фрейма, ориентированного относительно базового фрейма. Преимугцество использования матрицы однородного преобразования состоит в том, что фреймы, определенные относительно базового, могут быть получены путем умно!кения матрицы преобразования на базовый фрейм. В табл. 9.3 приводится сравнение операторов на языках АЕ и АМЬ, которые используются для определения систем координат и отношений болт головка болта, болт схват и деталь отверстие (рнс.
9.!). Для описания матриц преобразования язык АЕ предусматривает оператор умножения матриц е и структуру данных Тгг(АгН5-преобразование, которое состоит из операций вращения и перемещения. Язык Таблица Уз. Описание осиовиых систем координат иа языках АЬ и ЛЛ)Ь На языке А): Тб н-робот*ТКАМ5 (( КОТ, !80чград), НЕСТОй(381, О, 0) чмм); Е ч — ТбчТКА(Ч5 (пиго1, НЕСТОК(0, О, ! 27) емм]; болт головка болта ч- загрузоюгое усгробсгвоьТКА(45 (гп(го1, лиг ес1) болт охват» — болг головка болтачТКА)45 (п1!го(, НЕСТОК (О, О, 25 4) ьмм); деталь отверстие ч — детальчТКА(45 (ппго1, НЕСТОК(О, 30 8, 76 2) «мм); Примечание. %1чес1 — предварительно определенный вектор, имеющий значение НЕСТОК(О, о, 0) мм.
На языке АМ1.; ТО=ПОТ(робот, ~381,0,0 Е1)ьЕККОТ((!80,0 0 ° ))); Е= ВОТ(76, «О, О, 127), Е1)ьЕККОТ(<О, О, 0) ) ) ); болг головка болта=ООТ (загрузочное устройства, «О, О, О), Е(Л.ЕККОТ((0, О, 0)) )); болг схваг=ООТ (болг головка болта "О, О, 254), Е(1 ЕККОТ(н.О, 0,0)) )); деталь отверстие=.ООТ (деталь, «О, 50 8, 762), ЕИ.ЕККОТ((0, О, 0) ) ) ); Примечание. ПОТ вЂ” подпрограмма перечяожеиия ларя матрип 492 АМЕ не имеет встроенного оператора матричного умножения, но оснащен системной подпрограммой Т)ОТ. Рассмотрим более подробно обозначения в табл. 9.3. Первый АЕ-оператор описывает систему координат Тб, главные оси которой повернуты на 180' относительно оси Х системы координат, связанной с роботом.
Начало системы координат Тб расположено на расстоянии (381, О, 0) мм от начала системы координат, связанной с роботом, Второй оператор описывает систему координат Е, главные оси которой параллельны (пПто1 обозначает отсутствие вращения) главным осям системы координат Тб, а начало расположено на расстоянии (О, О, 127) мм от начала системы координат Тб. Аналогичные рассуждения применимы ко всем другим трем операторам на языке АЬ. Такой же смысл имеют операторы на языке АМЕ.
Связь между фрей- мами, которые мы определили в табл. 9.2 и 9.3, представлена на рнс. 9.2, а. Отметим, что в языке АЕ не требуются фреймы, определяющие положение руки робота, поскольку в нем используется неявный фрейм для представления конечного положения схвата и нет доступа к промежуточным фреймам Тб и Е. Так как в процессе сборки детали перемещаются или взаимодействуют с другими объектами, то последовательность фреймов в программе должна соответствовать текущим состояниям рабочего пространства (рис. 9.2, б). Другой способ определения ориентации и положения объекта состоит в том, что схват робота в интерактивном режиме перемещается от одной фиксированной точки до другой.
В качестве примера приведем систему Р01ьчТУ (107], использующую язык АТ., Эта система позволяет пользователю вести робот вручную или с помощью подвесного пульта управления через рабочее пространство. При этом когда пользователь направляет руку робота, оснащенную специальным инструментом, к объекту, то система генерирует команды на языке АЬ, подобные командам, приведенным в табл. 9.2 и 9.3.