Как упростить исследования в области робототехники с помощью нативной ROS
Автор: Сотрудники отчета о роботах | 28 августа 2023 г.
Операционная система робота (ROS) — это мощная платформа с открытым исходным кодом для исследований в области робототехники, но до недавнего времени ей не хватало аппаратного обеспечения промышленного качества, тесно интегрированного со стеком программного обеспечения ROS. Производители робототехнического оборудования используют для своих манипуляторов проприетарное программное обеспечение с закрытым исходным кодом и системы управления, в результате чего исследователям приходится подниматься по крутому склону, чтобы использовать ROS на промышленных роботах.
Удовлетворяя эту потребность и расширяя возможности сообщества разработчиков ROS, Тормах создал промышленный роботизированный манипулятор и систему управления на базе ROS, который позволяет избежать проблем «черного ящика», от которых страдают современные приложения робототехники. Кроме того, система управления Tormach PathPilot использует Python в качестве языка программирования роботов, создавая интуитивно понятный интерфейс программирования для движения робота и раскрывая потенциал экосистемы пакетов Python.
Эта робототехническая платформа на базе ROS с открытым исходным кодом, которая включает в себя систему управления, аппаратное обеспечение промышленных роботов и полный доступ ко всем параметрам системы, создает быстрое и доступное решение, которое делает промышленную робототехнику доступной большему количеству исследователей, разработчиков и студентов.
Производители средств управления роботами не решаются предоставить разработчикам ROS доступ ко всем параметрам системы в своих средствах управления с закрытым исходным кодом по следующим причинам:
По этим причинам интеграция между ROS и коммерчески доступным роботизированным оборудованием ограничена. Хотя существуют драйверы для подключения ROS к другим промышленным роботам, их реализации с низкой полосой пропускания (10–100 Гц) просто пересылают путевые точки на проприетарный контроллер с закрытым исходным кодом.
В результате пользователь может не иметь доступа к тому, соблюдает ли робот заданные параметры синхронизации, скорости и точности траектории. Такие данные, как крутящий момент двигателя, ток, ошибка рассогласования, обычно недоступны, а медленный контур управления серьезно ограничивает возможности исследователей.
Экспериментальная платформа OpeN-AM, установленная на приборе VULCAN, оснащена роботизированной рукой Tormach ZA6, которая печатает слои расплавленного металла для создания сложных форм. Микроскопическое изучение сварных швов, напечатанных на 3D-принтере, с помощью пучков нейтронов позволяет исследователям лучше понять такие факторы, как напряжение, вызванное нагревом и охлаждением. (Фото: ORNL/Джилл Хемман)
Стек аппаратного и программного обеспечения ROS/HAL обеспечивает обратную связь, которая может предоставить ценные возможности управления.
ZA6 обеспечивает следующее:
Большинство этих элементов обратной связи сосредоточены только на уровнях управления нижнего уровня. Уровни управления более высокого уровня могут предоставлять и другие возможности, в зависимости от потребностей исследования.
Соединение между ROS и оборудованием робота основано на уровне абстракции оборудования (HAL). HAL развился из проекта Enhanced Machine Controller (EMC) с открытым исходным кодом, который зародился 25 лет назад в Национальном институте стандартов и испытаний (NIST).
Активная разработка HAL продолжается и сегодня посредством проектов LinuxCNC и Machinekit, поскольку HAL является гибким, имеет 100% открытый исходный код и используется на тысячах машин по всему миру.
HAL состоит из модульных компонентов (загружаемых двоичных модулей), которые взаимодействуют друг с другом путем обновления, чтения и записи именованных контактов, которые подключаются через именованные сигналы. В чем-то HAL похож на ROS, но есть важные различия:
Робот Tormach устраняет разрыв между ROS с помощью компонента hal_ros_control с открытым исходным кодом. Сочетание HAL и ROS позволяет пользователю получить доступ к большому количеству данных робота. Все данные процесса доступны через команды оболочки, утилиты регистрации данных и графическую область видимости. Вся информация по шине EtherCAT, включая крутящий момент, ток, ошибку рассогласования, положение, скорость и т. д., доступна на частоте 1 кГц и передается через HAL в ROS.
Поскольку HAL является модульным и гибким, пользователи могут изменять конфигурацию HAL своего робота, используя предварительно созданные компоненты HAL или записывая новые компоненты на C или Python, что обеспечивает легкую интеграцию практически с любым внешним устройством или процессом.