YASMIN Tutorials
Welcome to the YASMIN tutorials. These comprehensive guides will help you master creating Finite State Machines for your robots, from basic concepts to advanced patterns. Each tutorial includes complete, runnable code examples with detailed explanations.
Whether you're new to state machines or an experienced developer, these tutorials cover everything from simple FSMs to complex hierarchical behaviors, ROS 2 integration, and multi-language state composition.
C++ Tutorials
Learn how to use YASMIN with C++ for high-performance state machine execution. These tutorials cover the complete C++ API, from basic state creation to advanced features like pluginlib integration and hierarchical FSMs.
- Writing a Simple FSM: Create your first state machine with custom states, learn the fundamental concepts of outcomes and transitions.
Python Tutorials
Learn how to use YASMIN with Python for rapid prototyping and flexible state machine development. These tutorials demonstrate Python's ease of use combined with YASMIN's powerful FSM capabilities.
- Writing a Simple FSM: Create your first state machine with custom states, understand the State and StateMachine classes.
More Examples
All examples from the yasmin_demos package are
documented:
- Blackboard Remapping: Sharing data between states with different key names
- Concurrence: Running multiple states in parallel with outcome mapping
- Service Client: Calling ROS 2 services from state machines
- Action Client: Using ROS 2 actions with feedback support
- Monitor: Subscribing to ROS 2 topics and processing messages
- Publisher: Publishing ROS 2 messages from states
- ROS Parameters: Using ROS 2 parameters for configuration
- Factory: Loading FSMs from XML files with Python/C++ plugins
YASMIN