Программирование промышленных роботов и робототехнических комплексов

 

8.1 Общая характеристика методов программирования промышленных роботов-манипуляторов и робототехнических комплексов

 

Выделяют две категории методов программирования промышленных роботов-манипуляторов и робототехнических комплексов:

1 Программирование, ориентированное на робот.

2 Программирование на уровне задачи.

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

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

Наиболее распространено программирование робота «обучением» при котором робот обучается тем движениям, которые затем выполняются в автоматическом режиме. Программирование «обучением» предполагает следующие шаги:

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

2 Корректировка и воспроизведение обучающего движения.

3 Если обучающее движение правильно, то робот запускается в работу на соответствующей скорости для выполнения повторяющихся операций.

При ведении робота в режиме обучения используют ручной привод, пульт независимого управления или специальную систему с клавиатурой для отслеживания принудительного движения робота. При использовании ручного пульта (рисунок 8.1) пользователь ведет робот вручную в пространстве и записывает в память системы управления угловые положения робота в виде точек траектории, через которые проходит технологический инструмент. Затем по этим точкам производится интерполяция, и робот воспроизводит программный режим вдоль сглаженной траектории.

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

К основным преимуществам программирования робота «обучением» относят простоту обучения, малые затраты памяти системы управления для хранения угловых положений робота. Недостатком программирования робота «обучением» является трудность учета информации с датчиков обратной связи при использования данного способа.

Рисунок 8.1- Пульт управления роботом-манипулятором

 

8.2 Создание программы управления на языках ориентированных на робот

Процесс создания программ управления на языках ориентированных на робот включает следующие шаги:

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

2 Описание на языке программирования расположения объектов в пространстве и их отношений. Например: деталь-отверстие, болт-схват.

3 Разделение технологической задачи на последовательность действий, таких как движение робота, захват объекта, установка деталей.

4 Добавление команд с устройств очувствления для определения нестандартных ситуаций и для управления выполнением технологической задачи.

5 Отладка и совершенствование программы с помощью повторения шагов 2-4.

Многие робототехнические контроллеры реализованы с использованием языков программирования специального назначения. Среди таких языков программирования можно назвать язык AL, разработанный Стэндфордским университетом, язык AML, разработанный фирмой IBM, язык SRCL, разработанный фирмой Siemens. Пример программы управления роботом Kawaski приведен на рисунке 2.

Многие программы для обобщающей архитектуры были реализованы на языке поведения. Этот язык представляет собой язык управления в реальном времени на основе правил, результатом компиляции которого становятся контроллеры AFSM. Так же как и обобщающая архитектура, язык поведения является ограниченным, поскольку он нацелен на создание простых автоматов AFSM с относительно узким определением потока связи между модулями. Но в последнее время на базе этой идеи проведены новые исследования, которые привели к созданию целого ряда языков программирования, аналогичных по своему духу языку поведения, но более мощных и обеспечивающих более быстрое выполнение.

 

Рисунок 8.2-Фрагмент программы управления роботом Kawaski

 

Одним из таких языков является универсальный робототехнический язык, или сокращенно GRL (Generic Robot Language). GRL - это функциональный язык программирования для создания больших модульных систем управления. Как и в языке поведения, в GRL в качестве основных конструктивных блоков используются конечные автоматы. Но в качестве настройки над этими автоматами язык GRL предлагает гораздо более широкий перечень конструкций для определения коммуникационного потока и синхронизации ограничений между различными модулями, чем язык поведения. Программы на языке GRL компилируются в эффективные программы.

Еще одним важным языком программирования (и связанной с ним архитектурой) для параллельного робототехнического программного обеспечения является система планирования реактивных действий, или сокращенно RAPS (Reactive Action Plan System). Система RAPS позволяет программистам задавать цели, планы, связанные с этими целями (или частично определять политику), а также задавать условия, при которых эти планы по всей вероятности будут выполнены успешно.

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

Существует также несколько других языков, которые обеспечивают использование в роботах средств формирования рассуждений и средств обучения. Например, Golog представляет собой язык программирования, позволяющий обеспечить безукоризненное взаимодействие средств алгоритмического решения задач (планирования) и средств реактивного управления, заданных непосредственно с помощью спецификации.

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

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

Основной привлекательной особенностью языка Golog является предусмотренная в нем безукоризненная интеграция средств реактивного управления и алгоритмического управления. Несмотря на то что при использовании языка Golog приходится соблюдать строгие требования (полная наблюдаемость, дискретные состояния, полная модель), с помощью этого языка были созданы высокоуровневые средства управления для целого ряда мобильных роботов, предназначенных для применения внутри помещений.

Язык ALisp представляет собой расширение языка Lisp. Язык ALisp позволяет программистам задавать недетерминированные точки выбора, аналогичные точкам выбора в языке Golog. В языке ALisp для принятия решений применяются средства определения правильного действия с помощью индуктивного обучения, в которых используется обучение с подкреплением. Поэтому язык ALisp может рассматриваться как удобный способ внедрения знаний о проблемной области в процедуру обучения с подкреплением, особенно знаний об иерархической структуре «процедур» желаемого поведения.


 



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: