Найти в Дзене
Работает!

Обзор основных концепций ROS. Вступление.

Привет, друзья! 👋 Пришла пора поговорить об основных концепциях ROS2.
В прошлой статье мы описали процесс установки ROS2 на платформу Raspberry Pi — https://dzen.ru/a/aCrunarCZmsVePWi Наш Телеграмм канал, где мы описываем прогресс нашего проекта — https://t.me/it_s_working. Репозиторий ROS2 — https://github.com/ros2. ROS — не так сложен как может показаться. Давайте разберёмся вместе! Вы наверняка слышали, что ROS (Robot Operating System) — это «must-have» для создания умных роботов. Но когда начинаешь погружаться, возникает ощущение, что тебя забросали терминами: ноды, топики, DDS, бэги… Словно ROS специально хочет запутать новичка! Спойлер: Это не так. ROS — просто набор инструментов для удобной сборки роботов, как конструктор LEGO для взрослых. Проблема в том, что его концепции часто объясняют скучно и абстрактно. Давайте попробуем исправить это! Этой статьёй мы начинаем серию, в течение которой разложим ROS по полочкам — без воды, зато с живыми аналогиями и понятными примерами. К
Оглавление

Привет, друзья! 👋

Пришла пора поговорить об основных концепциях ROS2.
В прошлой статье мы описали процесс установки ROS2 на платформу Raspberry Pi —
https://dzen.ru/a/aCrunarCZmsVePWi

Наш Телеграмм канал, где мы описываем прогресс нашего проекта — https://t.me/it_s_working.

Репозиторий ROS2 — https://github.com/ros2.

Введение

ROS — не так сложен как может показаться. Давайте разберёмся вместе!

Вы наверняка слышали, что ROS (Robot Operating System) — это «must-have» для создания умных роботов. Но когда начинаешь погружаться, возникает ощущение, что тебя забросали терминами: ноды, топики, DDS, бэги… Словно ROS специально хочет запутать новичка!

Спойлер: Это не так. ROS — просто набор инструментов для удобной сборки роботов, как конструктор LEGO для взрослых. Проблема в том, что его концепции часто объясняют скучно и абстрактно. Давайте попробуем исправить это!

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

  • чётко понимать как взаимодействуют части ROS-системы;
  • выбирать правильные инструменты для своих задач;
  • исследовать ROS без словаря.

Готовы? Поехали!

ROS — это не ОС, а «клей» для робота

Забудьте про традиционные операционные системы. ROS — это мета-операционка, которая связывает воедино:

  1. «мозги» робота (алгоритмы навигации, компьютерное зрение);
  2. «чувства» (данные с камер, лидаров, сенсоров);
  3. «тело» (моторы, манипуляторы).

Его главная суперсила — гибкость. Требуется поменять датчик или алгоритм? Не нужно переписывать весь код — ROS позволяет заменять «детали» на лету.

Создатели ROS выделяют следующие основные цели платформы:

  • ROS разработан так, чтобы быть максимально «тонким» — так что код, написанный для ROS, можно использовать с другими фреймворками программного обеспечения роботов.
  • Независимые от ROS библиотеки: предпочтительная модель разработки — писать независимые от ROS специфики программные библиотеки с чистыми функциональными интерфейсами.
  • Независимость в выборе языка программирования: работу с ROS легко проводить на любом современном языке программирования, таком как Python, C++.
  • Простота тестирования: ROS имеет встроенный фреймворк модульного/интеграционного тестирования под названием rostest.
  • Масштабирование: ROS отлично подходит для крупномасштабных робототехнических систем и больших распределённых команд разработки.

В настоящее время ROS работает только на платформах на базе Unix. Программное обеспечение для ROS в первую очередь тестируется на системах Ubuntu и Mac OS X, в тоже время сообщество ведет активную работу для обеспечения поддержки Fedora, Gentoo, Arch Linux и других Linux платформ.

Портирование ROS на Microsoft Windows возможно, однако данный формат использования пока не рекомендуется.

Два основных уровня ROS

Представьте, что мы строим «умный» дом. ROS — это одновременно строительная бригада, инструменты и коммуникации. Вот как это работает:

1. Файловая система (Filesystem Level)
«Склад стройматериалов и чертежи»

  • Здесь хранится всё, что нужно для стройки:
  • программные пакеты — как коробки с кирпичами, проводами и трубами (готовые модули);
  • launch-файлы — как чертежи и инструкции для рабочих.
  • Важно: всё лежит на своих местах, иначе стройка превратится в хаос.

2. Вычислительный граф (Computation Graph Level)
«Электрика, водопровод и прочее»

  • Это «инженерные системы» дома:
  • Ноды (Nodes) — электрики, сантехники, монтажники. Каждый делает свою работу:
    Пример: Один рабочий включает свет (нода камеры), другой проверяет температуру (нода датчиков).
  • Топики (Topics) — трубы и провода. По ним «текут» данные:
    Пример: Труба «/video» передает видео от камеры к алгоритму распознавания.
  • Сервисы (Services) — рация для точечных запросов: «Ванна готова?» → «Да, можно заливать воду!».
  • Parameter Server — диспетчерская с настройками: «Температура в доме — 23°C».

О чем ещё будем говорить в цикле?

Каждая следующая статья — это ключ к одному «сейфу» ROS. Разберём:

  • Файловая система — как ROS хранит свои строительные блоки
  • Nodes — почему они как сотрудники офиса, а не одиночки-герои;
  • Topics vs Services — когда «крикнуть», а когда вежливо попросить;
  • Bags — как записать «прошлое» робота и зачем это нужно;
  • DDS — почему это почтальон, который никогда не теряет письма.

...и другие концепции — без скучных определений, зато с примерами.

Заключение: зачем это всё?

ROS — не магия, а логичная система. Понимая его уровни и концепции, мы:

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

В следующей статье разберём файловую систему ROS — где хранятся все секретные ингредиенты робота.

__________________________________________________________________________________________

P.S. Есть вопросы или темы, которые хотите обсудить? Обязательно напишите в комментарии — вместе сделаем наш цикл статей ещё полезнее и увлекательнее! 🚀

Подписывайтесь на наш Телеграмм канал, где мы публикуем как сами применяем полученные знания на реальном примере — популярно делимся нашими результатами, вместе будет интереснее https://t.me/it_s_working!