Skip to content

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

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.

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.