Skip to content
forked from robosoft-ai/SMACC2

An Event-Driven, Asynchronous, Behavioral State Machine Library for ROS2 (Robotic Operating System) applications written in C++

License

Notifications You must be signed in to change notification settings

TAlscher/SMACC2

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SMACC2

A state-machine framework for ROS2-based applications written in C++.

Repository Status, Packages and Documentation

ROS2 Distro Branch Build status Documentation Released packages
Galactic galactic Galactic Binary Build
Galactic Semi-B Build
Galactic Source Build
Doxygen Deployment
Generated Doc
smacc2
smacc2_msgs
Rolling rolling Rolling Binary Build
Rolling Semi-B Build
Rolling Source Build
Doxygen Deployment
Generated Doc
smacc2
smacc2_msgs

NOTE: There are three build stages checking current and future compatibility of the package.

  1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

    Uses repos file: src/SMACC2/SMACC2-not-released.<ros-distro>.repos

  2. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

    Uses repos file: src/SMACC2/SMACC2.repos

  3. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.

Repository Structure

  • smacc2 - core library of SMACC2.
  • smacc2_ci - ...
  • smacc2_client_library - client libraries for SMACC2, e.g., Navigation2 (nav2z_client), MoveIt2 (move_group_interface_client).
  • smacc2_event_generators - ...
  • smacc2_msgs - ROS2 messages for SMACC2 framework.
  • smacc2_sm_reference_library - libraries with reference implementations of state-machines used for demonstaration and testing of functionalities.
  • ↓smacc2_state_reactor_library - ...
  • smacc2_performance_tools - ...

Getting started

  1. Install ROS2 Rolling.

  2. Make sure that colcon, its extensions and vcs are installed:

    sudo apt install python3-colcon-common-extensions python3-vcstool
    
  3. Create a new ROS2 workspace:

    export COLCON_WS=~/workspace/rolling_ws
    mkdir -p $COLCON_WS/src
    
  4. Pull relevant packages, install dependencies, compile, and source the workspace by using