YASMIN (Yet Another State MachINe)

Hi everyone,
I’d like to present YASMIN, yet another state machine library to implement robot behaviors using Finite State Machines (FSM). It is available in C++ and Python, and provides some default states to speed up the development, in addition to a web viewer for monitoring the execution of the system.


  • Fully integrated into ROS 2.
  • Available for Python and C++.
  • Fast prototyping.
  • Default states for ROS 2 action and service clients.
  • Default state for ROS 2 subscribers.
  • Blackboards are used to share data between states and nested FSMs.
  • FSMs can be canceled and stopped, which means stopping the current executing state.
  • A web viewer is included, which allows monitoring of the execution of the FSMs.



Hi @mgonzs13,

thank you for sharing information about your project. I was already looking at it, and it looked like a great option, especially with both C++ and Python implementations. My main issue is with the license: the GPL is simply too restrictive to be used as a core library, this is the reason why I could not propose evaluating YASMIN to my client.

If the license could be changed to a more “business friendly” license, e.g. Apache2 or at the very least to LGPLv3 (with linking exception for Python code), then YASMIN could be a good candidate for using it in commercial robotics projects.

Kind regards,

1 Like

Hi @kisg, thanks for your comment, I’ll keep it in mind.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.