FlexBE

Бесплатно
Открытый исходный код

Сайт: flexbe.readthedocs.io

FlexBE (Flexible Behavior Engine) — это фреймворк для разработки и выполнения иерархических конечных автоматов поведения (Hierarchical Finite State Machines, HFSM) в среде Robot Operating System (ROS). Он предназначен для структурирования поведения роботов в виде модульных состояний и переходов, комбинируя визуальное проектирование, исполнение и супервизию. FlexBE реализует механизм запуска задач и управления их выполнением, поддерживает повторное использование блоков поведения и интеграцию с существующими ROS-пакетами.

Проект включает инструменты для разработки и отладки: редактор поведения с графическим интерфейсом, средство генерации кода состояний и runtime-движок, выполняющий описанные HFSM на целевой платформе. FlexBE ориентирован на применение в задачах автономной навигации, манипуляции, сервисной робототехники и ситуаций, где требуется ясная иерархическая структура логики управления и удобные средства мониторинга во время выполнения. Документация и примеры обычно содержат шаблоны состояний, интерфейсы для передачи данных между состояниями и механизмы обработки ошибок и прерываний.

  • Иерархические конечные автоматы: поддержка вложенных состояний и композитных поведений для построения сложных сценариев управления.
  • Визуальное проектирование: графический редактор поведения для создания и редактирования HFSM через интерфейс, удобный для инженеров и интеграторов.
  • Интеграция с ROS: совместимость с архитектурой ROS, возможность использования топиков, сервисов и действий ROS в состояниях поведения.
  • Runtime-движок: исполнитель HFSM, способный запускать, приостанавливать и супервизировать выполнения, управлять переходами и обработкой исключений.
  • Модульность и повторное использование: поддержка пакетов и библиотек состояний, что упрощает повторное использование и обмен компонентами поведения.
  • Наблюдение и отладка: средства мониторинга состояния выполнения, журналирования и визуализации для анализа выполнения сценариев в реальном времени.
  • Обработка ошибок и восстанавливаемость: механизмы обработки нештатных ситуаций, откатов и альтернативных ветвей при сбоях.
  • Генерация кода: автоматическое преобразование графических диаграмм поведения в исполняемые структуры или шаблоны кода для интеграции в проекты.
  • Расширяемость: возможность добавления пользовательских состояний и адаптации механизма к специфическим аппаратным и программным требованиям.
  • Поддержка нескольких интерфейсов: наличие как веб-, так и настольных компонентов для разработки и мониторинга в разных рабочих средах.
Подробнее