YASMIN Factory
YASMIN Factory provides a powerful framework for creating state machines from XML definitions. It enables declarative state machine construction by parsing XML files and dynamically instantiating states from both Python and C++ implementations.
Key Features:
- XML-Based Definition: Define entire state machines including nested hierarchies in XML format
- Multi-Language Support: Integrate Python and C++ states in the same state machine
- Plugin Architecture: Dynamic loading of C++ states via pluginlib and Python states via importlib
- Hierarchical Composition: Support for nested State Machines and Concurrence states
Usage Example
The YASMIN Factory node provides a convenient way to execute state machines directly from XML files without writing any additional code. This is particularly useful for:
- Rapid testing: Quickly test state machine definitions without compilation
- Configuration-based deployment: Deploy different behaviors by simply changing XML files
- Non-programmer friendly: Allow team members to modify robot behaviors without coding
- Version control: Track state machine changes through XML file versioning
You can launch a state machine defined in an XML file using the
yasmin_factory_node:
ros2 run yasmin_factory yasmin_factory_node --ros-args -p state_machine_file:=/path/to/file.xml
YASMIN