site_logo

ROS и ROS2: архитектура, преимущества и промышленное применение

3 апреля 2026|обновлено: 3 апреля 2026
Технологии
Технологии
Автор
Гуляева КристинаГлавный редактор Wheelies
Эксперт
Дмитрий КузьмаГенеральный директор Wheelies

Logo__Wheelies__color-on-light

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

Именно поэтому в продуктовой архитектуре Wheelies ROS2 используется как базовый технологический слой, на котором строятся автономные функции, управление флотом и интеграция с корпоративной инфраструктурой.

Благодаря поддержке QoS, отказоустойчивости и работы в нестабильных сетях, ROS2 позволяет создавать как одиночных роботов, так и масштабируемые флоты без переработки архитектуры. В результате разработка фокусируется на автономности и прикладных задачах, а робот становится готовым к тиражированию инженерным продуктом. В решениях Wheelies именно эта архитектурная гибкость позволяет одинаково эффективно работать как на уровне одного беспилотника, так и при управлении десятками устройств в распределенной инфраструктуре.

Что такое ROS2 и зачем он нужен?

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

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

Именно здесь на сцену выходит Robot Operating System. Несмотря на название, это не полноценная «операционная система» в классическом понимании. ROS является открытым фреймворком, набором библиотек и инструментов, который превращает хаотичное прототипирование в упорядоченный процесс разработки. Он появился как практический ответ на эту хроническую проблему. ROS позволяет работать с датчиками и приводами, обмениваться данными между узлами, настраивать параметры системы, логировать информацию, визуализировать процессы и отлаживать алгоритмы без необходимости придумывать все заново. 

Вместо монолитного приложения ROS предлагает архитектуру построенную на узлах (nodes). Это независимые процессы, каждый из которых отвечает за конкретную функцию: управление двигателями, обработка изображений с камеры, фильтрация данных с лидара, локализация или планирование маршрута. Узлы общаются через топики (topics), сервисы (services) и параметры (parameters). Это значит, что разработчик больше не думает о потоках и сокетах — он оперирует понятными сущностями: публикует данные, подписывается на сообщения, вызывает сервисы и меняет параметры в реальном времени.

Однако ROS все же имеет ограничения. Центральный Master облегчает старт разработки, но плохо подходит для распределенных систем, в которых важна отказоустойчивость, работа в нестабильных сетях и соблюдение требований real-time. При решении этих ситуаций приходилось придумывать обходные пути, что становилось серьезным ограничением для реальных промышленных продуктов.

Именно поэтому появилась ROS 2. Архитектура платформы была полностью переработана с ориентацией на реальную эксплуатацию. В основе ROS 2 лежит DDS (Data Distribution Service) — промышленный стандарт обмена данными в распределенных системах. Он обеспечивает надежную доставку сообщений, контроль задержек, приоритеты и отказоустойчивость. Ноды могут работать на разных машинах и в разных сетях без единой точки отказа.

ros (3)
ROS VS ROS 2

ROS 2 использует Fast RTPS для высокоскоростной и предсказуемой связи, поддерживает шифрование и аутентификацию, что критично для промышленных и корпоративных приложений. При этом фреймворк является кроссплатформенным и работает на Linux, Windows, macOS, а также на различных встраиваемых платформах через micro-ROS. Это обеспечивает бесперебойную разработку и развертывание систем автономного управления. ROS 2 расширяет возможности для пользователей, предоставляя поддержку таких языков как C++, Python и даже Rust.

В реальном мире это выглядит так: на складе AVG-робот с ROS 2 одновременно получает данные с лидаров, камер и IMU, планирует траекторию движения, избегает препятствий и синхронизируется с другими роботами, при этом обеспечивая надежность и безопасность обмена данными. В медицинской робототехнике хирургический робот с ROS 2 управляет приводами с микрометрической точностью, передает данные для мониторинга состояния пациента и защищает их от несанкционированного доступа.

В решениях Wheelies архитектура построена по тем же принципам: сенсорные данные, алгоритмы компьютерного зрения, модули автономной навигации и системы удаленного мониторинга взаимодействуют как независимые узлы ROS 2. Это позволяет изначально проектировать систему как масштабируемую продуктовую платформу.

ros (1)
Структурная схема

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

Почему стоит выбрать ПО для управления роботизированными системами на базе ROS2?

В любой современной беспилотной или робототехнической системе основная сложность не в том, чтобы «заставить что-то летать или ездить». Настоящая задача — обеспечить стабильную работу всей системы в реальных условиях. Десятки компонентов должны работать как единое целое: камеры, лидары, инерциальные датчики, вычислительные модули и алгоритмы навигации. 

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

В технологическом стеке Wheelies ROS 2 выбран как основной midldleware (связующее/промежуточное программное обеспечение) именно по этой причине. Он позволяет отделить систему на два независимых слоя: алгоритмический слой (ИИ-модели, навигация, логика миссий) и инфраструктурный (коммуникации, синхронизация, безопасность). Это означает, что изменения в алгоритмах не требуют пересборки всей системы и не влияют на стабильность базовой инфраструктуры. 

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

Это снижает риски при расширении, упрощает поддержку и делает внедрение предсказуемым. Вместо разовых пилотов появляется возможность выстраивать устойчивую инфраструктуру автономных систем.

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

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

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

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

Ключевое отличие заключается в коммуникационном слое на базе DDS (Data Distribution Service). Это промышленный стандарт, который используется в авиации, автопроме и оборонных системах. DDS позволяет гибко управлять качеством передачи данных. Он гарантирует доставку сообщений, задает приоритеты, ограничивает задержки, работает в нестабильных сетях и даже без подключения к интернету. Для дронов это принципиально, поскольку связь может пропадать, каналы перегружаться, а система все равно должна продолжать исправно работать.

На практике это выглядит так. Камера высокого разрешения может выдавать видеопоток в десятки мегабайт в секунду, но алгоритму навигации нужны не все кадры, а только ключевые параметры. ROS 2 позволяет передавать «тяжелые» данные локально, а наружу отдавать уже обработанные результаты. Это снижает нагрузку на сеть и вычисления, а задержки уменьшаются в разы. Именно так реализованы потоки в нашем программном обеспечении: критические управляющие сигналы имеют приоритет, а аналитика передается оптимизировано.

Еще один важный аспект — работа в режиме реального времени. Для беспилотных систем критично, чтобы управляющие команды приходили вовремя. ROS 2 поддерживает интеграцию с real-time операционными системами и позволяет разделять потоки. Аналитика и логика могут работать в обычном режиме, а управление движением с жесткими временными ограничениями. На практике это означает довольно конкретные вещи:

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

Это напрямую влияет на устойчивость полета и безопасность.

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

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

В-третьих, предсказуемость и скорость внедрения. Экосистема ROS насчитывает тысячи готовых пакетов: SLAM, навигация, компьютерное зрение, работа с лидарами, симуляция в Gazebo и Ignition, интеграция с PX4 и ArduPilot. За счет этого интеграторы не собирают систему с нуля, а используют уже проверенные компоненты. На практике это означает, что внедрение проходит быстрее, требует меньше доработок и снижает риск срыва сроков. Бизнес получает не экспериментальный проект, а решение, которое можно планируемо развернуть и масштабировать.

В итоге ROS и ROS 2 стали стандартом не потому, что это «модно» или «удобно для исследований». Они стали стандартом, потому что решают ключевую задачу: позволяют строить сложные, автономные и масштабируемые робототехнические системы без потери управляемости. Именно на такой базе сегодня создаются интеллектуальные дроны, где ИИ, сенсоры и управление работают как единое целое, а не как набор разрозненных компонентов.

Как ROS 2 меняет разработку роботов?

Работа с ROS 2 начинается не с написания кода, а с проектирования архитектуры. Если в классическом подходе разработчик думает в терминах потоков, прерываний и циклов, то в ROS 2 он мыслит системой: какие компоненты существуют, какими данными они обмениваются и с какими требованиями по времени и надежности сталкиваются.

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

Типовая архитектура автономного робота на ROS 2 строится как вычислительный граф из нод. Каждая нода является отдельным процессом или компонентом, отвечающим за четко ограниченную функцию. Например, нода камеры публикует изображения, нода лидара облака точек, нода локализации объединяет данные сенсоров и оценивает положение робота, нода планирования строит траекторию, а нода управления формирует команды на приводы.

Связь между этими узлами в большинстве случаев реализуется через топики. Это асинхронная модель publish–subscribe, идеально подходящая для потоковых данных. Камера может публиковать 30 кадров в секунду, лидар десятки тысяч точек, а IMU сотни измерений в секунду. Ноды-подписчики получают данные тогда, когда они готовы их обрабатывать, не блокируя систему целиком.

Если упростить, вся архитектура ROS 2 в реальном проекте раскладывается на несколько уровней:

01 сенсоры, которые генерируют поток информации: камеры, лидары, IMU
02 обработка этих данных: фильтрация, локализация, построение карты
03 планирование маршрутов, логика миссии, выбор действий
04 формирование конкретных команд на движение и исполнительные механизмы
05 диагностика, мониторинг состояния и обработка ошибок

Каждый из этих уровней изолирован, но связан через единый механизм обмена сообщениями. Это позволяет системе оставаться управляемой даже при росте сложности.

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

Для сценариев запрос–ответ в ROS 2 используются сервисы. Это синхронное взаимодействие, где один узел отправляет запрос, а другой обязан вернуть результат. На практике сервисы применяются для операций управления и диагностики: запуск и остановка алгоритмов, смена режима работы, запрос состояния компонентов, инициализация сенсоров. Важно, что сервисы заставляют явно обрабатывать ошибки. Если узел не готов или находится в некорректном состоянии, это становится видно сразу, а не проявляется в виде «странного поведения» робота.

Для длительных задач, которые выполняются во времени, в ROS 2 предусмотрены действия (actions). Это, по сути, расширенные сервисы с обратной связью. Например, команда «проехать в точку» может выполняться несколько секунд или минут. В процессе выполнения система получает статус, процент завершения и может отменить действие при необходимости. В нашей архитектуре этот механизм используется для управления миссиями и координации автономных сценариев.

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

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

Еще один важный инструмент представляют собой lifecycle-ноды. В ROS 2 каждая из них может находиться в четко определенном состоянии: инициализация, готовность, активная работа, остановка, ошибка. Это позволяет системе понимать, какие компоненты готовы к работе, а какие нет, и управлять ими предсказуемо. Для эксплуатации это означает меньше «подвисших» состояний и более прозрачную диагностику.

На практике разработка на ROS 2 почти всегда включает симуляцию. Использование Ignition Gazebo позволяет прогонять сценарии, тестировать навигацию, взаимодействие с препятствиями и поведение системы до выхода на реальное железо. В сложных проектах до 70% ошибок ловятся именно на этапе симуляции, что экономит недели и месяцы отладки. Часть тестирования автономных сценариев Wheelies проходит именно в симуляционной среде, что ускоряет цикл разработки и снижает риски при внедрении.

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

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

ros (1)
Как ROS 2 меняет разработку

Архитектура управляемых и отказоустойчивых роботов

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

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

Сервисы в ROS 2 особенно важны для взаимодействия робота с внешним миром. Это интерфейс между ядром автономной системы и операторскими панелями, системами мониторинга, сервисными инструментами и облачными платформами. В отличие от топиков, сервисы требуют явного ответа. Ошибка не теряется, а становится частью контракта между компонентами. 

Параметры отвечают за конфигурацию и эволюцию системы. В реальных продуктах робот редко работает в одинаковых условиях. Меняется среда, требования заказчика, сценарии использования. Возможность менять параметры без перекомпиляции и повторного деплоя становится критически важной. ROS 2 делает работу с ними строгой и управляемой: типизация, контроль изменений, валидация значений. Это напрямую снижает риск ошибок и нестабильного поведения.

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

С инженерной точки зрения ROS 2 решает именно те проблемы, которые становятся критичными при выводе продукта на рынок: распределенные сети, работа в режиме реального времени, безопасность, обновление без остановки системы, управление флотами устройств.

В проектах уровня Wheelies ROS 2 используется именно как фундамент продуктовой архитектуры. Он позволяет быстро проходить этап R&D, но при этом не упираться в потолок, когда система выходит в реальную эксплуатацию. Роботы могут обновляться, масштабироваться, работать в разных средах и оставаться управляемыми на всем жизненном цикле.

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

Выбирая ROS 2, мы не просто выбираем технологию, мы выбираем устойчивую архитектуру для наших продуктов. Это платформа, которая позволяет нам создавать роботов, способных работать годами, масштабироваться и развиваться вместе с требованиями клиентов

Дмитрий КузьмаГенеральный директор Wheelies

 

FAQ

— Что такое ROS и чем он отличается от обычной операционной системы?

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

— В чем главное отличие ROS2 от ROS?

ROS2 — это переработанная версия платформы, ориентированная на промышленную эксплуатацию. В отличие от ROS, в ROS2 отсутствует единая точка отказа (Master), используется промышленный стандарт DDS для передачи данных, поддерживаются real-time системы, встроены механизмы безопасности (шифрование и аутентификация), а также обеспечивается лучшая работа в распределенных и нестабильных сетях.

— Почему ROS2 подходит для беспилотников и автономных дронов?

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

— Можно ли использовать ROS2 в коммерческих продуктах?

Да. ROS2 распространяется по лицензии Apache 2.0, что позволяет использовать его в коммерческих и корпоративных решениях без юридических ограничений. Именно поэтому его применяют в промышленных роботах, AGV, автономных транспортных системах и профессиональных беспилотных платформах.

— Какие механизмы безопасности предусмотрены в ROS2?

ROS2 поддерживает шифрование данных, аутентификацию узлов и разграничение доступа. Это защищает систему от несанкционированного подключения и перехвата управления, что особенно важно для корпоративных и государственных проектов.

— Что такое QoS в ROS2 и зачем он нужен?

QoS (Quality of Service) — это набор параметров, определяющих способ передачи данных. С его помощью можно настроить приоритеты сообщений, допустимые задержки, гарантии доставки и устойчивость к потере пакетов. Для беспилотных систем это критично, поскольку управляющие команды должны приходить вовремя.