Обзор

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

ROS была официально создана и разработана Willow Garage с 2007 года.

В настоящее время ROS поддерживается Open Source Robotics Foundation.

В следующих разделах мы обсудим следующее:

  1. Преимущества РОС
  2. Установка РОС
  3. Модель вычислительного графа ROS

Преимущества РОС

1. ROS действует как Meta OS:

  • Типичная ОС выполняет планирование, т. е. роль распределения ресурсов, таких как ЦП, память, дисковое пространство, устройства ввода-вывода, для различных программ по мере необходимости и абстракцию оборудования, т. е. ОС предоставляет программному обеспечению простой способ доступа к аппаратным ресурсам, не зная внутренних деталей оборудования.
  • ROS не является традиционной ОС с точки зрения планирования и аппаратной абстракции. Однако он использует основную ОС (пример: Ubuntu) и облегчает обмен данными между процессами. Это набор программных сред для разработки программного обеспечения для роботов, и он предоставляет услуги, предназначенные для гетерогенного компьютерного кластера, такие как аппаратная абстракция, низкоуровневое управление устройствами, реализация часто используемых функциональность, обмен сообщениями между процессами и управление пакетами.

2. Повторное использование кода и независимость от языка

ROS упрощает повторное использование кода и неофициально поддерживает различные языки, такие как Python, C++, Lisp, Java и другие.

3. Открытый исходный код

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

Установка РОС

Предварительные требования: ОС Ubuntu

Примечание. Если у вас нет ОС Ubuntu, вы можете установить любую виртуальную машину, например Oracle или VM Ware, а затем установить ROS. Нажмите здесь, чтобы загрузить Oracle Virtual Box

Установка ROS: существуют различные дистрибутивы (версии) ROS в зависимости от версии ОС Ubuntu.

Например: ROS Kinetic дистрибутив можно запустить на Ubuntu 16.04, ROS Melodic можно запустить в Ubuntu 18.04, а ROS Noetic можно запустить в Ubuntu 20.04.

Поэтому загрузите дистрибутив ROS в зависимости от версии вашей ОС Ubuntu по этой ссылке.

Поскольку у меня Ubuntu 18.04, я скачал ROS Melodic, выполнив шаги по этой ссылке. Вы можете выполнить шаги, перейдя по ссылке на соответствующий дистрибутив ROS.

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

Модель вычислительного графа ROS

ROS Computational Graph — это одноранговая сеть процессов ROS, обрабатывающих данные вместе. Основными компонентами вычислительного графа ROS являются Nodes, Master, сервер параметров, Mсообщения, Сервисы, Topics,и Bагенты, которые предоставляют данные для Graph. по-разному.

  • Узлы: узлы — это процессы, выполняющие некоторые вычисления. Система управления роботом обычно состоит из множества узлов, каждый из которых выполняет одну задачу. Например: один узел управляет лазерным дальномером, один узел управляет моторами колес, один узел выполняет локализацию, один узел выполняет планирование пути и так далее. Узел ROS написан с использованием клиентской библиотеки ROS, такой как roscpp или rospy.
  • Мастер: Мастер ROS — это сервер, который отслеживает IP-адреса всех узлов. Он обеспечивает регистрацию имени и поиск в остальной части вычислительного графа. Без Мастера узлы не смогли бы найти друг друга, обменяться сообщениями или вызвать службы.
  • Сервер параметров: Сервер параметров позволяет хранить данные по ключу в центральном месте. В настоящее время он является частью Мастера. По сути, это склад констант.
  • Сообщения: узлы общаются друг с другом, передавая сообщения. Сообщение — это просто структура данных, состоящая из типизированных полей. Поддерживаются стандартные примитивные типы (целочисленные, с плавающей запятой, логические и т. д.) и массивы примитивных типов. Сообщения могут включать в себя произвольно вложенные структуры и массивы (как и структуры C).
  • Темы: сообщения направляются через транспортную систему с семантикой публикации/подписки. Узел отправляет сообщение, публикуя его в заданной теме. Тема — это имя, которое используется для идентификации содержимого сообщения. Узел, который интересуется определенным видом данных, подпишется на соответствующую тему. Для одной темы может быть несколько одновременных издателей и подписчиков, и один узел может публиковать и/или подписываться на несколько тем. Как правило, издатели и подписчики не знают о существовании друг друга. Идея состоит в том, чтобы отделить производство информации от ее потребления. Логически тему можно представить как строго типизированную шину сообщений. Каждая шина имеет имя, и любой может подключиться к шине для отправки или получения сообщений, если они имеют правильный тип.
  • Сервисы: модель публикации/подписки — это очень гибкая парадигма связи, но в случае связи многие ко многим односторонний транспорт не подходит для взаимодействий запрос/ответ, которые часто требуется в распределенной двунаправленной системе. Следовательно, запрос/ответ осуществляется через службы, которые определяются парой структур сообщения: одна для запроса и одна для ответа. Предоставляющий узел предлагает услугу под именем, и клиент использует услугу, отправляя сообщение запроса и ожидая ответа. Клиентские библиотеки ROS обычно представляют это взаимодействие программисту, как если бы это был удаленный вызов процедуры.
  • Баги: Пакеты — это формат для сохранения и воспроизведения данных сообщений ROS. Сумки — это важный механизм хранения данных, таких как данные датчиков, которые сложно собрать, но они необходимы для разработки и тестирования алгоритмов.

Теперь, когда мы увидели различные компоненты вычислительного графа ROS, давайте посмотрим на вычислительный граф ROS двух узлов, взаимодействующих друг с другом.

Резюме

В этой статье мы рассмотрели следующее:

  • Краткий обзор ROS
  • Преимущества РОС
  • Процесс установки РОС
  • Вычислительный график ROS

Ресурсы

  1. Операционная система для роботов — Википедия
  2. Документация — РОС Вики
  3. ROS/Концепции — ROS Wiki
  4. Основы ROS: программируем роботов! | Удемы

Отзывы/предложения:

Для любых отзывов или предложений, пожалуйста, прокомментируйте ниже или отправьте письмо по адресу [email protected] или свяжитесь со мной через LinkedIn по адресу www.linkedin.com/in/arsalananwar1998