Packages Overview

The YASMIN project is organized into several packages, each serving a specific purpose. The packages are divided into three main categories:

Core

The core packages provide the fundamental building blocks for creating state machines and integrating with ROS 2.

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.

Tools

The tools packages provide utilities for visualization, design, and XML-based configuration of state machines.

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.

Demos

Example packages that demonstrate how to use YASMIN features in real-world scenarios.

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.