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:
- 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.
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.
YASMIN