Программное обеспечение Robot

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

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

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

Программное обеспечение для промышленного робота
Программное обеспечение для промышленных роботов состоит из объектов данных и списков инструкций, известных как программный поток (список инструкций). Например,

Перейти к Jig1

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

Передайте оси 1 на 30 градусов.

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

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

Один из методов управления роботами от нескольких производителей — использовать программное обеспечение Post Post и автономное программирование (робототехника). С помощью этого метода можно обрабатывать специфический для бренда язык программирования роботов с универсального языка программирования, такого как Python (язык программирования). однако компиляция и загрузка фиксированного автономного кода в контроллер робота не позволяет сообщать о роботизированной системе, поэтому он не может адаптировать его движение и восстанавливать по мере изменения среды. Единое адаптивное управление в реальном времени для любого робота в настоящее время возможно только с помощью Actin.

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

Задача на простом английском языке:
Переместить в P1 (общее безопасное положение)
Переместить в P2 (подход к P3)
Переместитесь в P3 (позиция для выбора объекта)
Закрыть захват
Переместить в P4 (подход к P5)
Переместитесь в P5 (позиция для размещения объекта)
Открытый захват
Переместитесь на P1 и закончите
VAL был одним из первых «языков» робота и использовался в роботах Unimate. Варианты VAL использовались другими производителями, включая технологию Adept. В настоящее время Stäubli использует VAL3.
Пример программы:
ПРОГРАММА
1. MOVE P1
2. MOVE P2
3. MOVE P3
4. CLOSEI 0,00
5. MOVE P4
6. MOVE P5
7. OPENI 0,00
8. MOVE P1
.КОНЕЦ
Пример программы Stäubli VAL3:
начать
movej (p1, tGripper, mNomSpeed)
movej (APPRO (р3, trAppro), tGripper, mNomSpeed)
Móvel (р3, tGripper, mNomSpeed)
закрыть (tGripper)
movej (APPRO (P5, trAppro), tGripper, mNomSpeed)
Móvel (P5, tGripper, mNomSpeed)
открытый (tGripper)
movej (p1, tGripper, mNomSpeed)
конец
trAppro является декартовой переменной преобразования. Если мы используем команду с соответствующей командой, нам не нужно преподавать точки P2 и P4, но мы динамически преобразуем подход к позиции выбора и места для генерации траектории.
Epson RC + (пример для вакуумного датчика)
Функция PickPlace
Перейти P1
Перейти P2
Перейти P3
В вакууме
Подождите .1
Перейти P4
Перейти P5
Выключить вакуум
Подождите .1
Перейти P1
парировать
ROBOFORTH (язык, основанный на FORTH).
: PICKPLACE
P1
P3 GRIP ОТКЛОН
P5 UNGRIP WITHDRAW
P1
;
(С помощью Roboforth вы можете указать позиции захода на посадку для мест, чтобы вам не нужны P2 и P4.)

Очевидно, что робот не должен продолжать следующий ход, пока захват не будет полностью закрыт. Подтверждение или допустимое время подразумевается в приведенных выше примерах CLOSEI и GRIP, тогда как команда On vacuum требует временной задержки для обеспечения удовлетворительного всасывания.

Другие языки программирования роботов

Визуальный язык программирования
Язык программирования LEGO Mindstorms EV3 — это простой язык для общения с пользователями. Это графический пользовательский интерфейс (GUI), написанный с помощью LabVIEW. Этот подход заключается в том, чтобы начать с программы, а не с данных. Программа создается путем перетаскивания значков в программную область и добавления или вставки в последовательность. Для каждого значка вы указываете параметры (данные). Например, для значка моторного привода вы указываете, какие двигатели и на сколько они двигаются. Когда программа записывается, она загружается в тестовый блок «Brick» («микроконтроллер» Lego NXT).

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

Языки программирования в промышленной робототехнике
Робот-бренд Название языка
ABB RAPID
Comau PDL2
Фанук Карел
Kawasaki AS
Kuka KRL
Stäubli VAL3
Yaskawa Inform
Языки программирования, как правило, предназначены для построения структур данных и алгоритмов с нуля, в то время как языки сценариев больше предназначены для соединения или «склеивания», компонентов и инструкций. Следовательно, набор инструкций языка сценариев обычно представляет собой упорядоченный список программных команд, которые используются для упрощения процесса программирования и обеспечения быстрой разработки приложений.

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

всякий раз, когда (face.visible)
{
headPan.val + = camera.xfov * face.x
& Амп;
headTilt.val + = камера.yfov * лицо.y
}

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

Программное обеспечение для роботов
Независимо от того, какой язык используется, конечным результатом программного обеспечения робота является создание роботизированных приложений, которые помогают или развлекают людей. Приложения включают в себя программное обеспечение для управления и управления задачами. Программное обеспечение Command-and-control включает в себя графические интерфейсы управления роботом для телеуправляемых роботов, командно-командное программное обеспечение point-n-click для автономных роботов и программное обеспечение для планирования мобильных роботов на заводах. Программа Tasking включает в себя простые интерфейсы drag-n-drop для настройки маршрутов доставки, патрулирования безопасности и поездок посетителей; он также включает пользовательские программы, написанные для развертывания конкретных приложений. Прикладное программное обеспечение для общего назначения развертывается на широко распространенных роботизированных платформах.

Вопросы безопасности
Ошибки программирования представляют собой серьезное соображение безопасности, особенно в крупных промышленных роботах. Мощность и размер промышленных роботов означают, что они способны наносить серьезную травму, если они запрограммированы неправильно или используются небезопасно. Из-за массы и высоких скоростей промышленных роботов, всегда небезопасно, чтобы человек оставался в рабочей зоне робота во время автоматической работы. Система может начать движение в неожиданные моменты времени, и человек не сможет достаточно быстро реагировать во многих ситуациях, даже если это будет сделано. Таким образом, даже если программное обеспечение не содержит ошибок в программировании, необходимо проявлять большую осторожность, чтобы сделать промышленный робот безопасным для людей или людей, таких как загрузка или разгрузка деталей, очистка застрявшей детали или техническое обслуживание. Американский национальный стандарт ANSI / RIA R15.06-1999 для промышленных роботов и робототехнических систем — Требования безопасности (пересмотр ANSI / RIA R15.06-1992) от Ассоциации робототехнических предприятий является общепринятым стандартом безопасности роботов. Это включает в себя рекомендации как для проектирования промышленных роботов, так и для внедрения или интеграции и использования промышленных роботов на заводе. Рассмотрены многочисленные концепции безопасности, такие как контроллеры безопасности, максимальная скорость в режиме обучения и использование физических барьеров.

Проекты программного обеспечения Robotics
Ниже приведен список открытого и бесплатного программного обеспечения для проектов робототехники.

CLARAty — Архитектура сопряженного слоя для робототехнической автономии. Это совместные усилия четырех учреждений: Лаборатории реактивного движения НАСА, Исследовательского центра НАСА Эймс, Карнеги Меллона и Университета Миннесоты.
dLife — бесплатная библиотека с открытым исходным кодом для робототехники, AI и Vision. Поддерживает Pioneer, Khepera II и amp; II, Hemission, Aibo и Finch, а также моделирование игроков / сцен.
Experimental Robotics Framework — программное обеспечение для проведения экспериментов с несколькими роботами в 3d с поддержкой новейших технологий, которое находится на вершине Player / Stage и Open / CV.
MARIE — Интеграционная среда для мобильных и автономных робототехники — это бесплатное программное обеспечение с использованием компонентного подхода для создания программных систем робототехники путем интеграции ранее существующих и новых программных компонентов.
Microsoft — Microsoft Robotics Developer Studio
OpenRDK — платформа программного обеспечения с открытым исходным кодом для робототехники для разработки слабо связанных модулей. Он обеспечивает прозрачное управление параллелизмом, межпроцессорную (через сокеты) и внутрипроцессную (через разделяемую память) коммуникацию на основе доски и технологию связывания, которая позволяет концептуально проектировать систему портов ввода / вывода. Предусмотрены модули для подключения к симуляторам и драйверам родовых роботов.
OpenRTM-aist — программная платформа, разработанная на основе стандарта промежуточного ПО RT. Он разработан Национальным институтом передовых промышленных наук и технологий в Японии.
OROCOS — проект Open Robot Control Software предоставляет набор инструментов для бесплатного программного обеспечения для управления роботом и станком в реальном времени.
OPRoS — Open Platform Robotic Services — это проект с открытым исходным кодом для разработки роботов. Он предоставляет решение, включающее платформу роботов и инструменты разработки графического интерфейса с исходным кодом компонентов робота-устройства.
RoboDK — платформа для разработки роботов для моделирования промышленных роботов. RoboDK позволяет вам программировать любого робота с помощью Python и обрабатывать специфический для бренда синтаксис в зависимости от вашего контроллера робота.
Библиотека робототехники — это библиотека C ++ с открытым исходным кодом, охватывающая кинематику, планирование, визуализацию и аппаратные драйверы для нескольких роботов.
Robotics Toolbox для MATLAB — это бесплатное программное обеспечение, которое обеспечивает функциональность для представления позы (однородные преобразования, углы Эйлера и РПИ, кватернионы), роботы-манипуляторы (вперед / назад кинематика и динамика) и мобильные роботы (контроль, локализация и планирование)
Rossum Project, GW Lucas, проект робототехники с открытым исходным кодом.
Player / Stage Project — очень популярный интерфейс и симулятор свободного программного обеспечения, который используется для исследований и обучения робототехнике во всем мире.
Pyro, Python Robotics — популярное бесплатное программное обеспечение для робототехники, используемое в университетах и ​​колледжах.
RoboMind — обучающее программное обеспечение для изучения основ робототехники и программирования.
Операционная система для роботов. Операционная система Robot — это платформа с открытым исходным кодом для программирования роботов с использованием Python и C ++. Java, Lisp, Lua и Pharo поддерживаются, но все еще находятся на экспериментальной стадии.
Ядро робота-разведчика

Офф-лайн программирование
Visual Components — это коммерческое программное обеспечение для моделирования 3D-дискретных событий, которое позволяет моделировать потоки материалов и робототехники на одной платформе. Функциональность может быть расширена благодаря возможности автономного программирования и возможности подключения PLC.
«Основы — Программное обеспечение роботов». Сиэтлское общество робототехники.
«Мобильное автономное робототехническое программное обеспечение (MARS)». Georgia Tech Research Corporation.
«Техническая база данных». robot.spawar.navy.mil.
Программное обеспечение Adaptive Robotics в Национальной лаборатории Айдахо

Он-лайн контроль
Energid Technologies разрабатывает и продает Actin SDK, который представляет собой инструментарий робототехники, механизм оптимизации и систему управления ограничениями, написанную на C ++, которая использует кинематику на основе Jacobian для оптимизации производительности по всем типам роботов. Поскольку Actin продается как SDK, он может быть помечен белым или OEM-производителем в другие пакеты программного обеспечения для управления роботом. Этот подход позволяет пользователям разрабатывать управление известной системой в автономном режиме через графический интерфейс, а затем позволить Actin обрабатывать высокоуровневое онлайн-управление для потоковой передачи постоянно обновляемых команд совместного уровня роботу / контроллеру в режиме реального времени, чтобы избежать столкновений путем адаптации к изменениям окружающей среды.