Программирование промышленных роботов и робототехнических комплексов
Выделяют две категории методов программирования промышленных роботов-манипуляторов и робототехнических комплексов:
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) и не забудь поделиться с друзьями:
Программное обеспечение роботов
Программное обеспечение промышленных роботов — это различные средства программирования, необходимые для настройки и взаимодействия с робототехническими системами. ПО включает различные объекты данных и списки инструкций (потоки программ), предназначенные для выполнения роботами манипуляций с объектами и предметами в реальной рабочей среде. При этом программы и данные размещаются в разных «отсеках» памяти контроллеров промышленных роботов.
Основные виды программного обеспечения роботов
В зависимости от того, для каких целей будет использовано ПО, оно подразделяется на средства:
- технического обслуживания, позволяющие поддерживать роботов в наилучшем рабочем состоянии с помощью инструментов устранения неполадок, технического обслуживания и калибровки;
- визуализации и мониторинга автоматизированных промышленных роботов, отображающие состояние устройств и уровни их работоспособности и производительности;
- моделирования и симуляции работы технических комплексов. Эти инструменты и средства автономного программирования помогают разрабатывать и отлаживать решения роботизации до их внедрения;
- разработки дополнительного ПО. С помощью этих средств создаются и настраиваются индивидуальные приложения для управления роботами;
- программного управления контроллерами, предназначенные для программирования роботов непосредственно через логические контроллеры с использованием существующих периферийных средств;
- прикладного программного обеспечения — в виде интерфейсов к внешним компонентам или устройствам, предназначенных для включения конкретных действий роботов.
Также программное обеспечение для роботов можно разделить на две категории:
- контролирующее и управляющее ПО, включающее в себя графические интерфейсы для работы с телеуправляемыми системами, ПО для взаимодействия с автономно действующими роботами по схеме point-n-click и для формирования схем эксплуатации мобильных промышленных роботов;
- ПО для задач, которое включает в себя простые интерфейсы с возможностью перетаскивания и настройки маршрутов перемещения и специализированные программы, созданные для развертывания конкретных приложений.
Разработка программного обеспечения для автоматизированных промышленных роботов должна осуществляться с соблюдением требований и концепций безопасности.
Способы программирования промышленных роботов
Технически программа для промышленного робота представляет собой последовательность позиций, которые должен пройти манипулятор робота — положений точек острия инструмента (TCP, Tool Center Point). Такой процесс создания исполняемой программы для контроллера робота называется runtime программированием и предназначается для того, чтобы задать положение TCP в пространстве «на ходу». Это означает, что исполняемая программа передается роботу «порционно», и он не хранит и не знает всю программу заранее.
Программное обеспечение промышленных роботов в режиме runtime создается по принципам:
- онлайн-программирования. Программист непосредственно взаимодействует с роботом на месте его использования, при помощи пульта управления или физически перемещая TCP к заданным пространственным координатам;
- оффлайн-программирования. Оно осуществляется удаленно от робота и его контроллера. Разработка исполняемых программ проводится в специализированной среде программирования промышленных роботов на ПК, после чего программы загружаются в роботов полностью.
Обучиться разработке ПО для промышленных роботов можно в ЦРК БИ (ЦЕНТР РАЗВИТИЯ КОМПЕТЕНЦИЙ В БИЗНЕС-ИНФОРМАТИКЕ) НИУ ВШЭ. В рамках представленного курса любой желающий сможет научиться создавать программы для роботизированных промышленных систем, используя популярные среды и языки программирования.