ROS 2

Кратко

ROS 2 (Robot Operating System 2) — стандартный фреймворк современной робототехники. Вопреки названию это не операционная система, а «промежуточный слой» (middleware) поверх Linux и других ОС: набор библиотек, инструментов и соглашений, позволяющий собирать программную часть робота из независимых модулей. На ROS 2 построено большинство исследовательских и всё больше промышленных роботов.

Для чего используется

  • Интеграция: камера, лидар, IMU, моторы и алгоритмы от разных разработчиков соединяются в одну систему стандартными интерфейсами.
  • Готовые компоненты: навигация (Nav2), манипуляторы (MoveIt), SLAM-пакеты, драйверы сотен устройств — не нужно писать всё с нуля.
  • Инструменты: визуализация RViz, запись и воспроизведение данных (bag-файлы), симуляция Gazebo.
  • БПЛА: бортовой компьютер с ROS 2 берёт на себя зрение и планирование, командуя автопилоту PX4 или ArduPilot.

Как работает

Программа робота в ROS 2 — это множество узлов (nodes), небольших независимых процессов. Узлы обмениваются данными по трём шаблонам:

  • топики — потоковая публикация/подписка: узел-драйвер камеры публикует изображения, узлы зрения подписываются; отправитель не знает получателей;
  • сервисы — запрос/ответ: «дай текущую карту»;
  • действия (actions) — длительные задачи с обратной связью и отменой: «доехать до точки».

Сообщения типизированы (sensor_msgs/Image, geometry_msgs/Twist…), поэтому узлы разных авторов совместимы. Транспортом служит DDS — промышленный стандарт распределённого обмена: узлы находят друг друга сами, без центрального сервера (ключевое отличие от ROS 1 с его единой точкой отказа — master-процессом). ROS 2 также принёс поддержку систем реального времени и штатную работу нескольких роботов в одной сети.

Код пишется на Python или C++, собирается в пакеты — единицы распространения с описанием зависимостей. Экосистема пакетов и есть главная ценность ROS: чужой SLAM или планировщик подключается к вашему роботу конфигурацией, а не переписыванием.

Основные компоненты

  • ядро: библиотеки rclcpp/rclpy, система сообщений, DDS-транспорт;
  • инструменты: командная утилита ros2, RViz (3D-визуализация), rosbag (запись данных), launch-система;
  • ключевые стеки: Nav2 (навигация), MoveIt (манипуляторы), tf2 (системы координат);
  • симуляция Gazebo; сборка colcon.

Примеры

  • Колёсный робот: драйверы + SLAM-пакет + Nav2 — автономная навигация в здании из готовых компонентов.
  • БПЛА с бортовым компьютером: узлы зрения на ROS 2 командуют PX4.
  • Запись полёта в bag-файл и отладка алгоритма на записанных данных без повторных полётов.

Связанные темы

Источники

  • ROS 2 Documentation — концепции (узлы, топики, сервисы, действия), DDS, инструменты, пакеты.

Обновлено: 2026-07-05