Сравнение ROS1 и ROS2: основные различия и как сделать выбор для вашего проекта по робототехнике

Сравнение ROS1 и ROS2: ключевые различия и как выбрать подходящую версию для вашего робототехнического проекта

Начиная с Ubuntu 22.04 или с июня 2025 года, официальная базовая поддержка ROS1 больше не обновляется, рекомендуется использовать систему ROS2. ROS 2 значительно превосходит ROS 1 по архитектуре, реальному времени, безопасности и расширяемости экосистемы. Для разработки новых проектов рекомендуется сразу использовать ROS2, но при необходимости миграции следует взвесить существующие ресурсы и долгосрочные выгоды. Подробную информацию о соответствии версий Ubuntu см. по ссылке Взаимосвязь различных версий ROS и Ubuntu, далее приведен сравнительный анализ двух подходов:

 Версия ROS 2 Версия Ubuntu LTS или нет Дата выпуска
 Jazzy 24.04 (Noble) Да (LTS) 2024
 Килт 24.04 (Noble) Нет 2025-05

История и развитие

  • ROS1: Разработан Стэнфордским университетом и компанией Willow Garage, сосредоточенной на исследованиях и создании прототипов.
  • ROS2: Запущен в 2014 году, ориентирован на промышленную робототехнику, использует промежуточное ПО DDS для повышения производительности в реальном времени, кроссплатформенной поддержки и безопасности.

Вывод: ROS1 лучше подходит для исследований и прототипирования, тогда как ROS2 идеален для промышленного и коммерческого применения.

 

2. Системная архитектура

 Габариты ROS1 ROS2
 Базовая архитектура Использует централизованную архитектуру, полагаясь на главный узел (менеджер узлов) для регистрации узлов и организации связи. Распределённая архитектура, прямая связь между узлами, без необходимости в Master, поддержка механизма динамического обнаружения.
 Модель связи Кастомизированная система связи на основе протокола TCP/UDP, которая имеет такие проблемы, как задержка, потеря пакетов и невозможность шифрования. Стандартизированный протокол связи на основе DDS, поддерживающий работу в реальном времени, шифрование и кроссплатформенное взаимодействие.
 Надёжность Полагается на TCP для связи «точка-точка», подвержен потере пакетов Надежная передача гарантируется политиками QoS (например, Reliable).
 Система сборки Использует системы сборки rosbuild (ранняя) и catkin. Введена автоматизированная система сборки, обеспечивающая более гибкое управление зависимостями и сборку на нескольких языках.

3. Пользовательский опыт

 Габариты ROS1 ROS2
 Кривая обучения Богатые ресурсы сообщества и зрелая документация — подходит для быстрого старта. Новые функции повышают порог входа (например, настройка DDS, отладка в реальном времени), но в долгосрочной перспективе система более сопровождаема.
 Затраты на миграцию Проекты на ROS 1 требуют рефакторинга логики связи, управления узлами и системы сборки для миграции на ROS 2. Доступны инструменты миграции (например, ros1_bridge) для обеспечения совместимости узлов ROS 1 и ROS 2.
 Отладка и инструментарий Опираясь на такие инструменты, как roslaunch и rviz, процесс отладки остается более традиционным. Новый фреймворк запуска (с поддержкой конфигурации на Python), встроенная система журналирования и улучшенные инструменты тестирования.
 Сообщество и экосистема Экосистема обширна, но некоторые функции сложно расширять из-за архитектурных ограничений. Новые функции интегрировать проще (например, более глубокая интеграция с Gazebo и веб-технологиями), а экосистема продолжает расширяться.

 4. Сравнение ключевых технологий

 Габариты ROS1 ROS2
 Связь между узлами Связь между узлами устанавливается через регистрацию у мастера. Узлы автоматически обнаруживают друг друга и обмениваются данными напрямую через DDS.
 Обмен сообщениями Использует пользовательский тип сообщения (.msg), реализация на основе roscpp/rospy. Генерация многоязычных сообщений на основе IDL (Interface Definition Language) для лучшей совместимости.
 Отказоустойчивость Отказ Master может привести к остановке всей системы. Распределенная архитектура позволяет избежать единой точки отказа; узлы могут динамически подключаться и отключаться.

5. Синтаксические различия

 Габариты ROS1 ROS2
 Синтаксис создания узлов Управление узлами через ros::NodeHandle, что требует запуска централизованного менеджера roscore. Используйте rclcpp::Node или rclpy::Node для создания узлов напрямую без roscore, что поддерживает распределённую архитектуру.
 Механизм связи Связь осуществляется на основе кастомного протокола TCP/UDP, при этом регистрация и обнаружение узлов требуют ручного управления. На основе стандарта DDS (Data Distribution Service) узлы автоматически обнаруживают друг друга и взаимодействуют между собой.
 Определение сообщения Тип сообщения определяется с помощью файла .msg, реализация опирается на roscpp/rospy. Использование IDL (Interface Definition Language) для генерации многоязычных сообщений с целью лучшей совместимости.
 Файлы запуска Файл .launch пишется на XML, функциональность ограничена, динамическая настройка затруднена. Файл .launch.py пишется на Python, что поддерживает динамическую логику (например, условные операторы, передача параметров).

6. Различия в практическом применении

 Габариты ROS1 ROS2
 Поддержка нескольких языков Основная поддержка — C++ и Python; другие языки требуют адаптации. Расширенная поддержка дополнительных языков (например, Rust, Java) и кросс-языковая совместимость через Interface Definition Language (IDL).
 Система сборки Опирается на систему сборки catkin, которая требует строгого соблюдения структуры рабочего пространства. Использование системы сборки ament для более гибкого управления зависимостями и многоязычной сборки.
 Поддержка в реальном времени Низкая производительность в реальном времени, сложно удовлетворить потребности промышленного управления в реальном времени. Улучшение поддержки систем реального времени (например, rclcpp в ROS 2 обеспечивает планирование потоков реального времени).
 Безопасность Отсутствие встроенных механизмов шифрования и аутентификации. Поддерживает расширения безопасности DDS (DDS-Security) для обеспечения аутентификации, шифрования данных и контроля доступа.
 Кросс-платформенная поддержка Работает преимущественно на Linux, поддержка Windows/macOS ограничена. Поддерживает несколько платформ, таких как Linux, Windows, macOS, RTOS и другие, с четким разделением на Tier 1 (официально активно поддерживается) и Tier 2 (поддерживается сообществом), что усиливает кросс-системную совместимость.
 Инструменты отладки При использовании традиционных инструментов, таких как roslaunch и rviz, система логирования остается относительно базовой. Предоставляет встроенную систему логирования (например, RCLCPP_INFO), поддержку скриптов на Python и более совершенные инструменты тестирования.
 Отказоустойчивость Отказ roscore может привести к остановке всей системы. Распределенная архитектура позволяет избежать единой точки отказа; узлы могут динамически подключаться и отключаться.

7. Типичные сценарии применения

  • ROS 1: Образование, исследовательские проекты (например, навигация мобильных роботов, SLAM), сценарии, не требующие высокой производительности в реальном времени и безопасности. Если проект зрелый и не требует функций реального времени, безопасности или кросс-платформенности, а также опирается на большое количество ресурсов экосистемы ROS 1, продолжайте использовать ROS 1.
  • ROS 2: Промышленная автоматизация, автономное вождение, дроны и другие сценарии, требующие высокого уровня реального времени, безопасности и кросс-платформенной поддержки, а также долгосрочного сопровождения крупномасштабных проектов (например, Доставка роботы, аПромышленные роботы, медицинские роботы). Проекты, требующие промышленной стабильности, управления в реальном времени, защищённого шифрования или кроссплатформенного развёртывания, предпочтительно реализовывать на ROS 2.

8. Совместимость оборудования и платформ

  •  В основном поддерживает Linux (Ubuntu).
  • RO Нативно поддерживает Linux, Windows, macOS и встраиваемые платформы.

9. Поддержка экосистемы и сообщества

  • ROS1: Большое количество пакетов и активное сообщество.
  • ROS2: Быстрорастущая экосистема, но количество пакетов пока отстаёт.

Вывод: ROS1 имеет зрелую экосистему, а ROS2 быстро её догоняет.

10. Стоимость миграции и модернизации

  • API несовместимы, требуется переписывание кода.
  • Драйверы могут потребовать адаптации; ros1_bridge может помочь с поэтапной миграцией.

Вывод: Затраты на миграцию высоки, но риски можно снизить за счёт поэтапного обновления.

11. Безопасность и промышленные стандарты

  • ROS1: Нет встроенных механизмов безопасности.
  • ROS2: Соответствует стандартам безопасности DDS, возможна интеграция с OPC UA и TSN.

Вывод: ROS2 лучше подходит для критически важных с точки зрения безопасности и промышленных приложений.

Будущие тенденции и дорожная карта

  • ROS1Noetic — финальный релиз, поддерживается до 2025 года.
  • ROS2 Следует стратегии долгосрочной поддержки (LTS) с активными обновлениями функциональности.

Вывод: Тенденция явно в пользу ROS2.

Выводы и рекомендации

Для исследователям или новичкам, ROS1 остаётся зрелым и стабильным выбором; для промышленные пользователи или коммерческие команды, преимущества ROS2 в распределенных системах, производительности в реальном времени и безопасности обеспечивают долгосрочную ценность.

Практические рекомендации: Оценивайте версию ROS на ранних этапах планирования проекта и принимайте решения на основе зрелости экосистемы и возможностей команды.

Ваше индивидуальное решение для мобильных роботов начинается здесь

Китайский производитель по схеме OEM/ODM — AMR, AGV, автоматизация складов. От проектирования и научно-исследовательских работ до доставки по всему миру.

  • Более 10 лет опыта в производстве автономных мобильных роботов (AMR) и автономных транспортных средств (AGV)
  • Индивидуальные решения, внедренные в более чем 50 странах
  • Бесплатная оценка проекта и анализ рентабельности инвестиций
  • Инженер ответит в течение 24 часов
Контактная форма

Специалист по робототехнике в компании FdataBot с более чем 8-летним опытом работы в области мобильных роботов, систем AMR/AGV, разработки шасси для роботов, а также адаптации решений под потребности OEM/ODM. Ее руководства помогают покупателям со всего мира оценивать поставщиков, сравнивать технические варианты и принимать более обоснованные решения по выбору поставщиков.

ЗАПРОСИТЬ ИНФОРМАЦИЮ СЕЙЧАС