Yet Another State MachINe
Помимо новомодных Деревьев поведения, о которых я уже много раз тут писал, есть и более классические методы программирования отказоустойчивых автоматизированных систем - например, FSM или конечные автоматы. В отличие от деревьев поведения, над теоретической базой которых работает штучное количество учёных в мире, конечные автоматы имеют гораздо более серьёзную теоретическую базу и изучаются с середины 20 века. В том числе и в России - см. научную школу автоматного программирования Анатолия Абрамовича Шалыто в ИТМО, где ведутся исследования по части формальной верификации автоматных программ или по их генерации с помощью генетических алгоритмов.
В мире ROS долгое время была популярна библиотека SMACC, но появляются и относительно новые проекты. Среди них YASMIN - проект, ориентированный на реализацию поведения роботов с использованием конечных автоматов.
Особенности
- Интеграция с ROS 2 для упрощения развертывания и взаимодействия
- Поддержка Python и C++
- Предназначена для разработки прототипов, позволяющих быстро изменять поведение конечного автомата.
- Включает предопределенные состояния для взаимодействия с ROS 2 - action-клиентами, сервис-клиентами и топиками
- Использует blackboards для обмена данными между состояниями и конечными автоматами
- Управление состоянием: поддерживает отмену и остановку автоматов состояний, включая остановку текущего состояния выполнения
- Встроенный веб-просмотрщик (YASMIN Viewer) для мониторинга выполнения автоматов состояний в режиме реального времени.
В научной работе авторов приводится пример применения иерархических конечных автоматов (т.е. с вложенными друг в друга состояниями) в рамках архитектуры программного фреймворка MERLIN2 совместно с планировщиками PDDL и ROS 2 нодами.
Проект разрабатывается Исследовательской группой мобильной робототехники Леонского универститета, Испания.
#fsm #ros #library
Помимо новомодных Деревьев поведения, о которых я уже много раз тут писал, есть и более классические методы программирования отказоустойчивых автоматизированных систем - например, FSM или конечные автоматы. В отличие от деревьев поведения, над теоретической базой которых работает штучное количество учёных в мире, конечные автоматы имеют гораздо более серьёзную теоретическую базу и изучаются с середины 20 века. В том числе и в России - см. научную школу автоматного программирования Анатолия Абрамовича Шалыто в ИТМО, где ведутся исследования по части формальной верификации автоматных программ или по их генерации с помощью генетических алгоритмов.
В мире ROS долгое время была популярна библиотека SMACC, но появляются и относительно новые проекты. Среди них YASMIN - проект, ориентированный на реализацию поведения роботов с использованием конечных автоматов.
Особенности
- Интеграция с ROS 2 для упрощения развертывания и взаимодействия
- Поддержка Python и C++
- Предназначена для разработки прототипов, позволяющих быстро изменять поведение конечного автомата.
- Включает предопределенные состояния для взаимодействия с ROS 2 - action-клиентами, сервис-клиентами и топиками
- Использует blackboards для обмена данными между состояниями и конечными автоматами
- Управление состоянием: поддерживает отмену и остановку автоматов состояний, включая остановку текущего состояния выполнения
- Встроенный веб-просмотрщик (YASMIN Viewer) для мониторинга выполнения автоматов состояний в режиме реального времени.
В научной работе авторов приводится пример применения иерархических конечных автоматов (т.е. с вложенными друг в друга состояниями) в рамках архитектуры программного фреймворка MERLIN2 совместно с планировщиками PDDL и ROS 2 нодами.
Проект разрабатывается Исследовательской группой мобильной робототехники Леонского универститета, Испания.
#fsm #ros #library
👍10