Цель RCML №1

Получение одинакового результата, независимо от исполнения робота

Получение одинакового результата, независимо от исполнения робота

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

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

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

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

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

Цель RCML №2

Создание условий для совместной работы нескольких роботов

Создание условий для совместной работы нескольких роботов

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

Это даёт ряд возможностей по кооперации роботов:

1.Отправка роботам команд в синхронном режиме

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

Примеры:

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

2. Асинхронное параллельное выполнение роботами задач

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

Данное параллельное выполнение является асинхронным, и может быть использовано для ускорения технологического процесса, в котором есть независимые друг от друга этапы. Это может быть эффективно при решении технологических задач, в которых не важна последовательность каких-либо промежуточных действий роботов.

Примеры:

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

3. Взаимозависимость действий роботов в группе

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

Примеры:

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

Цель RCML №3

Значительное упрощение программирования робота, снижение порога входа в эту область

Значительное упрощение программирования робота, снижение порога входа в эту область

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

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

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

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

Пример:

Программист промышленного робота, зная особенности этого робота создает на базе его низкоуровневых функций управления двигателями, высокоуровневые функции – выполняющие осмысленные действия. Например, закручивание гайки с заданным усилием и по заданным координатам.

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

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

Цель RCML №4

Оптимальный выбор робота для решения конкретной задачи

Оптимальный выбор робота для решения конкретной задачи

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

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

  • Координаты робота
  • Быстродействие
  • Грузоподъемность
  • Энергоэффективность
  • И другие.

Пример:

Программист создаёт программу с использованием двух транспортировочных роботов разной грузоподъемности. Грузоподъёмность первого — 50кг, потребление электроэнергии 5 кВт/ч, второго — 250 кг, 10 кВт/ч. При перевозке малых грузов до 50 кг, в программе могут быть задействованы оба робота, но наименьшие энергозатраты при перемещении возможны при использовании первого робота. Однако, если на момент возникновения новой транспортной задачи, робот с оптимальными характеристиками будет занят, а время исполнения доставки критично, то разработчик может использовать второго транспортировочного робота. При этом обращение к используемым роботам универсальное, т.к. функциональные возможности роботов одинаковы.

Цель RCML №5

Переключение робота между несколькими одновременными задачами

Переключение робота между несколькими одновременными задачами

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

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

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

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

Пример:

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

Кратко о RCML

 

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

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

/*...*/Язык содержит ряд точек ввода/вывода для установки связи с программными продуктами, созданными с помощью сторонних технологий, через соответствующие программные интерфейсы.

Для кого написан язык

Производство и промышленность

Использование языка программирования RCML позволяет нивелировать зависимость результата от конкретного робота и учитывать только функциональные возможности устройства. Опираясь только на функционал робота, программисты могут использовать и писать универсальные программы, замена исполнительных устройств, в которых не влияет на конечный результат работы.

Инжиниринговые компании

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

Разработчики программного обеспечения

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

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

Научно-исследовательские институты и лаборатории

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

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

Разработчики и производители роботов

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

У производителя появляется возможность сконцентрироваться непосредственно на разработке аппаратной составляющей робота. Язык RCML обеспечит совместимость робота со всеми прочими разработанными алгоритмами и системами.

Робототехнические сообщества

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

Расширения и интеграции

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

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

  1. Действия для наладки канала связи с конкретным роботом
  2. Алгоритм выбора робота
  3. Алгоритм его включения и отключения
  4. Алгоритм реакций на вызов функций робота из языка

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

Интеграция с системами технического зрения

Добавление функций по интеграции с какими-либо БД и прочим программным обеспечением

Введение функций решающих различные интеллектуальные задачи, расчеты и т.д.

Модули управления используются для подключения управляющих устройств к среде RCML. Такие устройства используются только в режиме ручного управления роботом. Через модули данного типа можно реализовать возможность управления одного и того же робота разными управляющими устройствами. И наоборот, возможность применения одного и того же устройства для управления разными роботами. Разнообразие подключаемых устройств ограничено лишь фантазией и возможностями разработчика модуля, такими устройствами быть:

  1. Клавиатура
  2. Джойстик
  3. Шлем виртуальной реальности
  4. И другими
Адрес:

Россия, Пермь
ул. Монастырская, 12,
лит. А, офис 600

Телефон:

+7 (342) 214 01 84

E-mail:

info@robotct.ru