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:
- ActionState: For interacting with ROS 2 Actions.
- ServiceState: For calling ROS 2 Services.
- PublisherState: For publishing to ROS 2 Topics.
- MonitorState: For subscribing and monitoring ROS 2 Topics.
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.
YASMIN