ebook img

Robot Control Meta Language. Метаязык для роботов PDF

73 Pages·2015·1.041 MB·
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Robot Control Meta Language. Метаязык для роботов

Д. К. Сутормин, М. В. Тюлькин Пермь, 2015 содержание Введение.............................................................................................. 4 Предисловие...................................................................................... 5 1. Цели языка..................................................................................... 6 1.1. Получение одинакового результата, незави симо от исполнения робота............................................................. 6 1.2. Создание условий для совместной работы ро­ ботов................................................................................................ 7 1.3. Значительное упрощение программирования робота.......................................................................... 9 1.4. Оптимальный выбор робота для решения кон­ кретной задачи............................................................................ 10 1.5. Переключение робота между несколькими од­ новременными задачами........................................................ 11 2. Для кого этот язык.................................................................... 13 2.1. Производство и организации, использующие роботов в своих задачах........................................................ 13 2.2. Инжиниринговые компании......................................... 13 2.3. Разработчики программного обеспечения для роботов.................................................................................. 13 2.4. НИИ, лаборатории, разработчики алгоритм ов и систем.......................................................................................... 13 2.5. Разработчики роботов................................................... 14 3. Установка и настройка компилятора и интер пре­ татора.................................................................................................... 15 3.1. Описание процесса подготовки программ на RCML................................................................................................ 15 3.2. Установка и настройка компилятора и ин­ терпретатора RCML.................................................................. 16 3.3. Подробнее о модулях роботов................................... 17 3.4. Подробнее о модулях функций................................. 18 3.5. Подробнее о модулях управления........................... 19 3.6. Компиляция и запуск программы RCML................ 19 4. Основы построения программ на RCML......................... 21 4.1. Алфавит языка и специфика использования символов........................................................................................ 21 4.2. Правила составления идентификаторов............ 21 4.3. Общая структура программ в RCML....................... 22 4.4. Включение дополнительных файлов RCML в программу..................................................................................... 23 4.5. Функции.......................................................................... 24 4.6. Комментарии..................................................................... 25 4.7. Типы данных........................................................................ 25 4.7.1. Явные типы данных.............................................. 26 4.7.2. Неявные типы данных....................................... 26 2 4.8. Переменные........................................................................ 26 4.9. Выражения и операции................................................. 27 4.9.1. Математические операции.............................. 28 4.9.2. Логические операции....................................... 28 4.10. Преобразование типов данных................................ 29 4.11. Управляющие конструкции......................................... 29 4.11.1. Условные управляющие конструкции...... 29 4.11.2. Циклические управляющие конструк­ ции......................................................................................... 30 4.11.3. Прочие управляющие конструкции......... 30 4.12. Блоки операторов........................................................... 31 4.13. Исключения....................................................................... 31 4.14. Вызов функций................................................................ 34 4.15. Системные функции языка RCML............................ 34 5. Особенности взаимодействия программы с робо­ том.......................................................................................................... 37 5.1. Понятие робота в RCML................................................. 37 5.2. Использование робота в программе...................... 39 5.3. Вызов функции робота................................................. 39 5.4. Работа с конкретным экземпляром робота......... 40 5.5. Высвобождение задействованного робота......... 41 5.6. Указание режимов выполнения функций ро ­ бо тов................................................................................................ 42 5.7. Автоматический выбор робота.................................. 44 6. Режим ручного управления.................................................. 46 6.1. Общие сведения................................................................. 46 6.2. Принцип передачи значений....................................... 47 6.3. Рекомендации по выбору осей робота для ре­ жима ручного управления..................................................... 49 7. Написание собственных новых функций для робо­ тов........................................................................................................... 52 7.1. Написание функции для конкретного класса ро­ ботов................................................................................................ 52 7.2. Написание функции для нескольких классов роботов......................................................................................... 53 8. Перечень зарезервированных ключевых слов RCML...................................................................................................... 55 9. Синтаксическая карта языка RCML................................... 55 10. Создание собственных модулей для языка RCML 58 10.1. Модуль робота................................................................... 59 10.2. Модуль функций.............................................................. 66 10.3. Модуль управления........................................................ 67 10.4. Подробнее об уникальных идентификаторах модулей......................................................................................... 69 11. Список принятых сокращений........................................... 71 3 Введение Язык Robot Control Meta Language (далее RCML) явля­ ется языком программирования высокого уровня, позво­ ляющим абстрагироваться от аппаратной части робота, что существенно упрощает описание действий робота или группы роботов, выполняющих поставленную технологи­ ческую задачу. Язык RCML имеет императивный стиль программиро­ вания, то есть программирование на данном языке на­ поминает приказы, которые отдаются в повелительной форме. иными словами, просто обозначается последова­ тельность команд — алгоритм действий, предписанный к выполнению роботу. По синтаксису язык RCML близок к таким языкам как C, Java и JavaScript, с целью обеспечить легкость перехо­ да для программистов с других языков. Сама программа строится в процедурном стиле из под­ программ общего назначения и подпрограмм, специфич­ ных для конкретных роботов. Для упрощения понимания взаимодействия программы с роботом из языков, реализующих парадигму объектно­ ориентированного программирования, заимствован ряд визуальных аспектов представления кода относительно классов и объектов. Стоит отметить, что язык RCML обладает более скуд­ ными возможностями описания программы по сравнению с традиционными языками программирования, поскольку основной своей целью имеет описание алгоритмов. И по­ тому он не противопоставляется традиционным языкам, а, наоборот, имеет ряд точек ввода/вывода для установки связи с программными продуктами, созданными с помо­ щью иных технологий через соответствующие программ­ ные интерфейсы (далее API). 4 Предисловие Наиболее актуальную версию данной документации, а также актуальные версии необходимого программного обеспечения (далее ПО) можно найти на сайте проекта Robot Control Technologies, в рамках которого разрабаты­ вается язык RCML: http://robotct.ru Данная книга рассчитана на программистов, людей так или иначе знакомых с одним или несколькими языками программирования, а потому содержит в себе только опи­ сания терминов и рекомендации, специфичные для языка RCML, отличающие его от прочих языков программиро­ вания, предполагая, что читатель уже знаком с общепри­ нятыми терминами, принципами, методами и правилами в данной профессиональной области. 5 1. Цели Языка Язык RCML имеет следующие цели: 1. Получение одинакового результата, независимо от исполнения робота. 2. Создание условий для совместной работы роботов. 3. Значительное упрощение программирования робота, снижение порога входа в эту область. 4. Оптимальный выбор робота для решения конкрет­ ной задачи. 5. Переключение робота между несколькими одновре­ менными задачами. 1.1. Получение одинакового результата, независимо от исполнения робота Программист может не уделять внимание конструктив­ ным особенностям робота, характерным для продукции разных производителей, всецело посвятив себя автомати­ зации его действий, опираясь на набор функциональных возможностей, доступных для робота. Такой подход позво­ лит быстрее добиться автоматизации поставленной задачи. Если функции робота не будут подвергаться изменениям, то можно гарантировать стабильный результат, даже если были произведены модификации робота или робот был за­ менён целиком. На практике это дает ряд конкретных преимуществ производству: • можно приобретать роботов с одинаковым функцио­ налом у разных производителей, так как не потребуется корректировки программного обеспечения для выполне­ ния конкретных задач; • становится доступной модернизация роботов и даже  их обновление без остановки производственного процес­ са, связанной с корректировкой основной программы под новых роботов; • обеспечение  преемственности  функциональных  воз- мож ностей посредством языка RCML позволяет эффектив­ 6 но перестраивать аппаратную базу, исходя из потребно­ стей технологического процесса, не останавливая произ­ водственный процесс; • предоставляется возможность переносить программу  между роботами, не подвергая её изменению, при условии, что машины имеют одинаковые функциональные возмож­ ности. Основным достоинством языка является доступ­ ность универсализации всех роботов, имеющих одинако­ вые функции. Неважно, где они сделаны: в Японии или в США, теперь можно запрограммировать их для решения кон кретной задачи, не учитывая конструктивные, про­ граммные и аппаратные особенности. Такая возможность су щественно сокращает расходы на модернизацию и адаптацию производства под новых роботов, в которой те ­ перь, при определённых условиях, отпадает необходи­ мость. 1.2. создание условий для совместной работы роботов Если имеется возможность использовать несколько ро­ ботов для выполнения поставленной цели, то язык RCML позволяет описать, как должен действовать тот или иной робот по отношению к результату действий другого робо­ та. Такие возможности позволяют реализовывать следую­ щий ряд возникающих задач: 1. Синхронность — машины работают над выполнени­ ем какого­либо действия синхронно, в случае одинаковых функциональных возможностей, также возможна синхро­ низация времени работы механизмов. Примеры: • один  робот  не  способен  переместить  груз,  в  таком  случае обеспечивается перемещение объекта несколькими машинами одновременно и синхронно; • сбор элемента конструкции — роботы подносят раз­ ные детали, выполняя не идентичные действия, но при этом работают абсолютно синхронно по времени; 7 • сужение кольца боевыми роботами при загоне цели;  роботы начинают сближение синхронно, но каждый по своей траектории или даже алгоритму, соответствующему окружающим условиям. Таким образом, обеспечивается слаженная работа не­ скольких роботов как единого целого. Роботы объединены единой целью, при этом выполняемые действия могут быть идентичными, асинхронными, но главное, что все они со­ гласованы с операциями, выполняемыми всеми роботами, входящими в рабочую группу. 2. Выполнение роботами задач в асинхронном режиме, что ускоряет производственный процесс, то есть проис­ ходит распределение задач между машинами. Это эффек­ тивно в задачах, где последовательность каких­то проме­ жуточных действий не важна. Примеры: • перемещение  механизмов  в  определённую  точку  к  грузу — роботы не должны синхронно изменять расстоя­ ние до объекта, в отличие от примера с подъемом груза, где им надо было поднимать груз, строго вместе коорди­ нируя усилие, так как в том случае асинхронность прово­ цирует дисбаланс; • доставка деталей к месту сборки механизма — эле­ менты конструкции могут перемещаться в произвольном порядке, а вот непосредственно сборка выполняется син­ хронно и слаженно. Таким образом, удаётся заставить машины выполнять конкретные задачи в произвольном порядке, например, объявить общий сбор роботов, работающих в цехе. Не­ важно, в какой последовательности роботы прибудут в указанную точку, также не обязательно их одновременное прибытие. Идентичная ситуация с доставкой деталей для сборки: задача роботов просто принести нужные элемен­ ты, последовательность не имеет значения. 3. Последовательность в действиях группы роботов — машины выполняют задачи в строгой очерёдности, каждый следующий приступает к работе после того, как предыду­ 8 щий выполнит свою часть задачи. Актуальна такая систе­ ма в ситуации, когда действия роботов взаимозависимы, и следующий не может начать работу, пока предыдущий этап не будет выполнен. Также это востребовано в зада­ чах, где действия следующего робота должны зависеть от результата действий предыдущего. Примеры: • укладка кабеля в траншею — один робот роет тран­ шею, а другой укладывает кабель, пока первый робот не прокопает очередной метр траншеи, второй не сможет проложить в этот же метр кабель; • в  задачах  сборки  примером  может  быть  скрепле- ние двух деталей болтом с гайкой: робот, навинчиваю­ щий гайку на болт, не должен приступать к выполнению своей функции, пока другой робот не вставит болт в от­ верстие. Программируя машины, таким образом, можно зало­ жить реакцию последующего робота на результат действий предыдущего и менять алгоритм поведения в зависимости от возникающих условий. Это очень удобная функция, по­ тому что роботы работают как части одного механизма, взаимно дополняя друг друга. 1.3. значительное упрощение программирования ро­ бота Программисту, чтобы составить рабочую программу, больше нет нужды углубляться во все нюансы, касающи­ еся аппаратной или программной составляющей робота, его марки, модели или производителя. Опираясь только на предоставленное в надлежащей форме производителем описание функционала робота, разработчик может писать рабочие программы сразу для всех роботов, обладающих необходимым ему функционалом, и быть уверенным в не­ изменности результата при использовании различных кон­ кретных роботов. Примеры: • сборка  конструкции  —  программист  задаёт  нужный порядок действий, опираясь на функциональные возмож­ 9

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.