AG
Все записи

ROS - это игрушка? Или мы уже делаем промышленный код?

2 min read
ROSпромышленностьробототехника

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

На MVP - лучше использовать ROS из-за большого объема простых модулей (драйверов, симуляторов, path-планеров).
На MMP - лучше от ROS отказаться и использовать что-то проверенное временем.

Здесь я рассказываю, как используем ROS в наших системах мы (в том числе uROS в embedded).

Что я понял за время своей практики про ROS?

Детерминированность / реальное время

  • ROS (версия 1) использует нерелевантный, асинхронный publish/subscribe поверх UDP/TCP.
  • ROS 2 переходит на DDS, но стандарт DDS-RTPS только «может быть» реальным временем - это зависит от конфигурации ядра и выбранного RT-провайдера.

Проблема. На производственной линии требуется гарантированная задержка (обычно < 1 мс) и отсутствие потерь сообщений. Любое отклонение может привести к сбою процесса, потере качества и даже аварии.

Безопасность и сертификация

  • ROS не поставляется со встроенными механизмами IEC 61508 / ISO 13849-1.
  • «Проверки» происходят вручную.

Проблема. Для производства требуется формальная верификация, доказательства безопасности (HMI-стандарты, «fail-safe» режимы) и сертификация от независимого органа.

Производительность

  • ROS использует C++ или Python.
  • Его архитектура - «загружаемая» (node-spawn, dynamic linking), что может создавать лишнюю нагрузку.

Проблема. Для массового производства нужны «bare-metal» решения, которые работают с минимальной задержкой и максимальной пропускной способностью.

Тестируемость и диагностика

  • ROS даёт «лог-сервисы», но они не стандартизированы, нет единого формата для отладки, а тесты пишутся «на лету».

Проблема. Разработчикам нужна единая модель диагностики (например, OPC UA Diagnostics), возможность автоматического восстановления, журналирование в стандартизованном формате.

Интеграция с промышленным оборудованием

  • ROS может подключаться к PLC, контроллерам и датчикам, но для этого нужны собственные драйверы/интерфейсы.

Проблема. В реальном производстве часто требуются «out-of-the-box» решения с поддержкой EtherCAT, EtherNet/IP, CANopen, Modbus/TCP и т.д.

Вывод

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