Packages Overview

The YASMIN project is organized into several packages, each serving a specific purpose:

yasmin

The core library containing the base classes for State, StateMachine, Blackboard, and other fundamental components. It provides the logic for FSM execution independent of ROS 2.

yasmin_ros

Provides ROS 2 specific implementations and integrations. It includes specialized states for:

yasmin_msgs

Contains the ROS 2 message definitions used by YASMIN for communication and visualization.

yasmin_viewer

A web-based visualization tool that allows you to monitor the state of your FSM in real-time. It subscribes to the FSM status topics and displays the active state and transitions.

yasmin_factory

Enables the creation of State Machines from XML configuration files. This allows for separating the FSM structure definition from the code logic.

yasmin_editor

A graphical editor for designing YASMIN state machines. It allows you to visually create states, transitions, and export them to XML for use with yasmin_factory.

yasmin_demos

Contains a collection of examples and demos showcasing various features of YASMIN in both C++ and Python. This is a great place to start learning by example.