Файл: Системы очувствления и адаптивные промышленные роботы..pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 29.02.2024

Просмотров: 249

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Рис. 5.4. Пример структуры многоуровневой системы управления робота

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

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

1.Рациональное распараллеливание вычислительной процедуры предполагает естественную мультипроцессорную реализацию. Это означает, что можно предоставить каждому выделенному процессу свой собственный процессор.

2.Распараллеливание может повысить качество работы системы

управления (в том числе и привода) при условии ее мультипроцес­ сорной реализации.

3. Распараллеливание облегчает проектирование программного обеспечения. Один из принципов структурного программирования заключается в разбиении задачи на подзадачи.

Два основных режима работы системы управления робота — это режим обучения и режим исполнения. В режиме обучения (если он не связан с управлением движения манипулятора) мультизадач­ ное^, как правило, не используется, поскольку в этом случае нет необходимости в распараллеливании. В режиме исполнения есть явно выраженные процессы, которые могут развиваться параллельно. Приведем примеры процессов, которые могут развиваться парал­ лельно. Приведем примеры процессов, которые могут развиваться параллельно в системах управления адаптивных роботов.

Пример. Задачей адаптивного робота с антропоморфным манипулятором яв­ ляется обход с сохранением ориентации захвата по некоторым траекториям точек позиционирования (4], координаты которых вычисляет система технического зре­ ния. Схема управления робота показана на рис. 5.4, где приняты следующие обозна­ чения: т (х , у , г) точка позиционирования, заданная координатами х , у , г; г (/) — радиус-вектор точек траектории; q — вектор обобщенных координат манипулятора; J (q) = f rq якобиан кинематического уравнения г = i (q). Пусть система управле­

ния приводами манипулятора замкнута через ЭВМ (в частности, системы управле­ ния роботов «Puma»,«Pragma» выполнены по такой схеме). Здесь могут развиваться параллельно четыре процесса (рис. 5.5): Р 1 — процесс, готовящий координаты точки позиционирования т (х , у , z); Р 2 — процесс, осуществляющий интерполяцию траек­ тории по двум соседним точкам позиционирования; Р 3 — процесс, формирующий управляющий сигнал на приводы подвижных сочленений манипулятора; Я4 — про­ цесс, обслуживающий приводы (его можно назвать драйвером приводов). Все пере­ численные выше процессы, развиваясь параллельно, обмениваются данными друг с другом. Способы обмена здесь могут быть различными. Например, процесс Р х

129


Рис. 6.5. Процессы, развивающиеся в системе управления

J

J

координаты точки позиционирования процессу Р 2

через буфер, который

Р

fnawA аК линеинЬ1И список типа FIFO *, и в том случае,

когда буфер заполнен,

ц р

Р Ж^ ТЬ’

2 осв°5одит его. Напротив, для обмена данными между про-

^ 2> \ з и г 3у Р4

нет необходимости устраивать такой буфер: процессы Р 2

и

з просто оонозляют передаваемые данные, не дожидаясь, пока процессы Р3 и Р4

(приемники этих данных) воспользуются ими. Это вызвано тем обстоятельством, что процессы Р2, И3 и Р4 развиваются в масштабе реального времени.

Линейная

программа (т.

е. последовательное развитие процессов, например,

^ * 2

з

Р4

...) в данном случае не пригодна, поскольку на время

вычислении, связанных с развитием процессов Рь Р2 и Р3, приводы манипулятора будут разомкнуты (процесс Р4, связанный с обслуживанием приводов, не будет развиваться), и это может повлечь за собой не только ухудшение точностных харак­ теристик манипулятора, но даже и потерю устойчивости. Поэтому процесс Р4 должен развиваться всегда, имея наивысший приоритет при распределении ресурсов-: в одно­ процессорных системах это достигается за счет перезапуска Р4 по сигналам таймера

(например, с частотой 50 Гц

для управляющих ЭВМ класса «Электроника-60»),

а в многопроцессорных — за

счет выделения этой задаче собственного процессора

(как в упомянутых выше роботах «Рита» и «Pragma»).

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

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

Пользователь может взаимодействовать с роботом с помощью ЭВМ на разных уровнях иерархии его системы управления, при ^этом каждому уровню будет соответствовать свой_ входной язык, "адекватный задачам, решаемым на данном уровне иерархии. Поэ­ тому языки программирования роботов можно классифицировать по способу задания и содержанию командной и ситуационной ин­ формации.

1.Уровень отдельных степеней подвижности. На исполнительном

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

* FIFO —- первым обслуживается первый пришедший (First In First Out).

1 3 0


следовательность этих данных соответствует некоторой траектории в рабочем пространстве, обеспечивающей выполнение требуемой операции.

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

3. Объектный уровень. На языке стратегического уровня задание формируется путем указания операций, которые необходимо выпол­ нить над объектом манипулирования.

4. Уровень программирования в т ерминах «что сделатьЪ (а не «как сделатьЪ).

На языке высшего уровня формулируется все задание в целом, без детализации действий на низших уровнях иерархии.

Уровень абстракции разработанных и реализованных языков программирования роботов ограничивается уровнем «манипулятора».

Принципиальные преимущества программирования роботов с по­ мощью текстового описания операций на специализированном языке состоят в возможности независимой подготовки программ, их кор­ ректировки и расширении при изменении условий задачи; при вклю­ чении в состав языка операторов обработки сигналов датчиков и передачи управления такие языки становятся средством программи­ рования адаптивных роботов, для которых неприменим способ непосредственного обучения. Кроме того, текстовая форма языка с использованием меток и включением комментариев обеспечивает доступность и понимание программ пользователем. К недостаткам языкового программирования следует отнести трудности формали­ зации пространственных перемещений манипулятора, а на этапе создания специализированного языка — высокие требования к ква­ лификации программистов-разработчиков языка и его системной поддержки, а также большой объем вычислительных ресурсов, не­ обходимых для реализации соответствующих программ.

Известно два различных подхода к созданию языка управления роботом. Один из них состоит в разработке нового, специально предназначенного для программирования робототехнических задач языка. Представителями этого класса являются языки AL, AML, VAL, SIGLA, PAL. При таком подходе предполагается, в частности, что синтаксис языка приспособлен к описанию поведения робота, т. е. настолько понятен и экономичен, насколько это возможно. Альтернативным подходом является использование традиционных универсальных языков программирования высокого уровня для решения задач робототехники при условии, что выбранный язык позволяет определять необходимые структуры данных и управля­ ющие команды манипулятора. Такой подход связан с реализацией проблемно-ориентированной надстройки над некоторым широко используемым языком универсального типа. Примером базового языка высокого уровня может быть язык С. Построенная на его основе система управления роботом ориентирована на использование

131



Рис. 5.6. Языки программирования роботов

библиотеки RCCL (Robot Control С Library), которая работает под управлением операционной системы UNIX.

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

Первая попытка создания языка для промышленного робота была сделана на фирме «Юнимейт» («Unimate», США). Управляющая про­ грамма состоит из последовательности пошаговых команд (двига­ тельных инструкций) с указанием некоторых дополнительных функ­ ций, которые должны выполняться после каждого шага. Последо­ вательные точки траектории задаются шестикомпонентным вектором значений обобщенных координат. Команды содержат управляющие сигналы по степеням подвижности, функции — открытие-закрытие захвата, временные задержки и т. д.

Создан целый ряд языков программирования роботов (рис. 5.6). К ранним разработкам относятся проекты «рука—глаз», из которых наиболее интересны языки Стэнфордского университета. В одном из них для управления манипуляционным роботом используется набор подпрограмм, написанных на языке высокого уровня и обес­ печивающих выполнение следующих действий: включить манипуля­ тор, перевести звенья манипулятора в заданное положение (аргу­

132

менты подпрограммы — шесть обобщенных шарнирных координат), раскрыть захват на заданную ширину, закрыть захват до упора и про­ сигнализировать, если ширина раскрытия окажется меньше заданной. Программа управления имеет вид последовательности вызовов под­ программ. Действия манипулятора программируются в декартовых координатах, поэтому в состав математического обеспечения вклю­ чены процедуры однородного преобразования координат и решения обратной кинематической задачи. Использование декартовых коор­ динат облегчает построение модели среды, принятие решений и пла­

нирование

траектории.

В систему

программирования

включена

только одна процедура

высокого уровня — «переместить объект»

с двумя

параметрами — начальным

и конечным положениями

объекта. Взаимодействие с внешней

средой ограничено лишь про­

веркой закрытия захвата

при взятии

объекта, поэтому

при работе

в реальной среде возникали трудности из-за действия внешних сил и моментов. Включение контуров обратных связей по силам и момен­ там позволило использовать сенсорную информацию и устранить указанные трудности. Однако язык программирования не рас­

считан на работу с моделями,

учитывающими силовые, моментные

и тактильные взаимодействия.

система программирования WAVE,

Этих недостатков лишена

однако она не вышла за рамки эксперимента. Возникший как раз­ витие системы WAVE язык AL объединил свойства WAVE и гибкость алголоподобных языковых структур. Основное назначение языка AL — координирование управления несколькими манипуляторами при выполнении сборочных операций.

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

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

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

Язык позволяет управлять перемещением объектов в процессе сборки на основе развитой модели внешней среды. Динамическая

133