SMACC2
- Software
- Middleware
- Framework
A C++ library for building event-driven, asynchronous behavioral state machines that control multi-component robots on ROS 2.
Made by ROBOSOFT AI.
Source on GitHub: github.com/robosoft-ai/SMACC2 (opens in a new tab). Facts read at commit 932da4d (opens in a new tab).
Licenses
- Code
- Apache-2.0 (opens in a new tab)
Read by Robotheca from LICENSE (opens in a new tab) (Apache-2.0) at commit 932da4d (opens in a new tab), on 16 Oct 2026.
- Commercial use
- Yes
What it does
- Built for ROS 2 and supports its topics, services and actions out of the box.
- Uses orthogonal states so a robot's separate hardware components can each be modeled cleanly.
- Checks state machines at compile time, inheriting this from Boost Statechart.
- Ships a reference library of ready-to-run state machines to start from.
- Includes a client library with components such as a Nav2 action client (MoveBaseZ) and a keyboard client for debugging.
- Has Doxygen documentation and works with a closed-source runtime analyzer for visualization and debugging.
Written by Robotheca from the project's README (opens in a new tab) at commit 932da4d.
Getting started
- Difficulty
- Advanced
- How to start
- The project's website (opens in a new tab)
Maintenance
- Status
- Active: a commit in the last 90 days
- Newest commit
- 28 Sept 2026 on jazzy
- Latest release
- SMACC2 3.1.0 - Major refactor of cl_ros2_timer (31 May 2026)
Checked on GitHub on 16 Oct 2026.
Links
Robots on Robotheca that use it
No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.
Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.