Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: Научного журнала «Студенческий» № 22(234)

Рубрика журнала: Информационные технологии

Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3, скачать журнал часть 4, скачать журнал часть 5, скачать журнал часть 6, скачать журнал часть 7, скачать журнал часть 8, скачать журнал часть 9

Библиографическое описание:
Гаврилов Р.А. РАЗРАБОТКА РОБОТОТЕХНИЧЕСКИХ СИСТЕМ С ПОМОЩЬЮ ROS // Студенческий: электрон. научн. журн. 2023. № 22(234). URL: https://sibac.info/journal/student/234/295858 (дата обращения: 05.03.2024).

РАЗРАБОТКА РОБОТОТЕХНИЧЕСКИХ СИСТЕМ С ПОМОЩЬЮ ROS

Гаврилов Роман Андреевич

студент, кафедра системного программирования и компьютерной безопасности, Гродненский государственный университет им. Янки Купалы,

Республика Беларусь, г. Гродно

Петров Сергей Валерьевич

научный руководитель,

канд. мед. наук, доц., Гродненский государственный университет им. Янки Купалы,

Республика Беларусь, г. Гродно

ROBOTIC SYSTEM DEVELOPMENT WITH ROS

 

Roman Gavrilov

Student, Department of System Programming and Computer Security, Yanka Kupala State University of Grodno,

Belarus, Grodno

Sergey Petrov

Scientific supervisor, Candidate of Medical Sciences, associate professor, Yanka Kupala State University of Grodno,

Belarus, Grodno

 

АННОТАЦИЯ

Данная статья рассматривает систему Robotics Operating System как популярную платформу промежуточного уровня для программирования робототехнических систем.

ABSTRACT

This article examines the Robotics Operating System as a popular middle-level platform for programming robotic systems.

 

Ключевые слова: ROS, робототехника, промежуточное ПО, Webots.

Keywords: ROS, robotics, middleware, Webots.

 

В программировании часто встречаются задачи, которые уже были решены ранее. Это относится и к робототехнике. Робототехнические системы часто сталкиваются с задачами, которые они уже решали раньше. Например, это могут быть задачи, связанные со сбором сведений, поступающих с датчиков; с обработкой данных сведений; с визуализацией данных сведений; с организацией взаимодействия между разными процессами. Таким образом, актуальным становится вопрос, касающийся переиспользования кода, а также выделения решений на специально существующий для этого уровень абстракции. Могут быть применены разнообразные наборы библиотек, именующиеся как middleware – то есть это такое ПО, которое находится на промежуточном уровне.

Достаточно популярная библиотека, которая относится к промежуточному уровню и используется сегодня в области робототехники – это ROS, то есть Robotics Operating System [3]. ROS представляет собой такую систему, которая относится к категории распределённых. Она выполняет те же функции, что и обычная операционная система. То есть она обеспечивает контроль за функционированием устройств, а также направление сообщений от одного процесса к другому. Сеть ROS может быть использована, к примеру, для того, чтобы получать данные, поступающие с контроллера, после чего начинать их применять в иных алгоритмах. Кроме того, ROS характеризуется встроенными инструментами, обладающими вспомогательным назначением. Они являются эффективными с точки зрения их применения для решения задач, касающихся моделирования, а также визуализации.

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

ROS могут быть рассмотрены как относящиеся к двум разным категориям:

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

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

  • клиентские библиотеки, написанные на C++ или Python;
  • инструменты, обеспечивающие сборку приложений;
  • пакеты, применяемые для организации взаимодействия с ROS-сетью.

В ROS имеются узлы и микроузлы. Разница между ними состоит в том, что узел запускается только один раз в одном процессе, а микроузел может запускаться несколько раз из одного и того же процесса [2].

На сегодняшний день доступно две версии ROS: ROS 1 и ROS 2. Официальная поддержка ROS 1 осуществляется на платформе Ubuntu, но сообщество также обеспечивает поддержку для других дистрибутивов Linux и OS X. В 2017 году был выпущена ROS 2, которая была представлена как более подходящая для определенных задач и сценариев, где ROS 1 не мог использоваться из-за ограничений. Эти ограничения включали отсутствие поддержки нескольких мастер-узлов, безопасного соединения и возможности работы в режиме реального времени. ROS 2 устраняет данные ограничения, позволяя более эффективно разрабатывать робототехнические системы, соответствующие индустриальным стандартам, с использованием концепции DDS. Также одной из особенностей ROS 2 является поддержка Windows 10. На текущий момент последней версией ROS 1 с долгосрочной поддержкой является Noetic Ninjemys на Ubuntu 20.04, а для ROS 2 – Humble Hawksbill. ROS 2 также отличается высококачественной документацией и обширным набором учебных материалов [1]. Следует отметить, что ROS 1 также предоставлял документацию и обучающие статьи, однако они не всегда были последовательными и часто были устаревшими, что затрудняло для новичков освоение системы [2]. Поддержка ROS 1 прекратиться в 2025 году.

Для проверки наших разработок мы имеем возможность использовать симуляторы, такие как Gazebo или Webots, которые позволяют создавать виртуальные окружения, задавать параметры объектов и физику, а также размещать в них наших роботов. Кроме того, мы можем использовать встроенный в ROS плагин – RVIZ. Подключение этих приложений к ROS 2 происходит очень просто. В качестве примера на рисунке 1. изображен простой робот, который движется всегда вперед и поворачивает либо вправо, либо влево, если он обнаруживает препятствие [1].

 

Рисунок 1. Симуляция робота с датчиками расстояния в Webots

 

Для функционирования данного робота было написано небольшое, но простое программное обеспечение на языке Python. Как упоминалось ранее, также возможно использование языка C++. Более подробное объяснение работы этого робота и исходный код доступны на официальном веб-сайте, посвященном ROS 2.

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

 

Список литературы:

  1. Setting up a robot simulation (Basic) [Electronic resource] / ROS 2 Documentation, 22.05.2023. – Mode of access: https://wiki.ros.org/. – Date of access: 01.06.2023.
  2. ROS Documentation [Electronic resource] / ROS, 23.07.2021. – Mode of access: https://wiki.ros.org/. – Date of access: 01.06.2023.
  3. Why ROS [Electronic resource] / ROS, 23.07.2021. – Mode of access: https://www.ros.org/blog/why-ros/. – Date of access: 01.06.2023.

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.