|
2 | 2 |
|
3 | 3 | SMACC2 is an event-driven, asynchronous, behavioral state machine library for real-time ROS 2 (Robotic Operating System) applications written in C++, designed to allow programmers to build robot control applications for multicomponent robots, in an intuitive and systematic manner. |
4 | 4 |
|
5 | | -SMACC was inspired by Harel's statecharts and the [SMACH ROS package](http://wiki.ros.org/smach). SMACC is built on top of the [Boost StateChart library](https://www.boost.org/doc/libs/1_53_0/libs/statechart/doc/index.html). |
6 | | - |
7 | 5 | ## Repository Status, Packages and Documentation |
8 | 6 |
|
9 | 7 | ROS 2 Distro | Branch | Build status | Documentation | Released packages |
@@ -78,111 +76,6 @@ ROS 2 Distro | Branch | Build status | Documentation | Released packages |
78 | 76 | colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release |
79 | 77 | ``` |
80 | 78 |
|
81 | | -## Getting started - ROS Humble |
82 | | - |
83 | | -1. [Install ROS 2 Humble](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html). |
84 | | - |
85 | | -2. Make sure that `colcon`, its extensions, `vcs`, and development tools are installed: |
86 | | - ``` |
87 | | - sudo apt install python3-colcon-common-extensions python3-vcstool clang-format pre-commit |
88 | | - ``` |
89 | | -3. Create a new ROS 2 workspace if necessary: |
90 | | - ``` |
91 | | - export COLCON_WS=~/workspace/humble_ws |
92 | | - mkdir -p $COLCON_WS/src |
93 | | - ``` |
94 | | -4. Or just navigate to your workspace source folder: |
95 | | - ``` |
96 | | - cd ~/workspace/humble_ws/src |
97 | | - ``` |
98 | | -5. Clone the repo: |
99 | | - ``` |
100 | | - git clone https://github.com/robosoft-ai/SMACC2.git |
101 | | - ``` |
102 | | -6. Checkout the Humble branch: |
103 | | - ``` |
104 | | - cd ~/workspace/humble_ws/src/SMACC2 |
105 | | - git checkout humble |
106 | | - ``` |
107 | | -7. Navigate to the workspace: |
108 | | - ``` |
109 | | - cd ~/workspace/humble_ws |
110 | | - ``` |
111 | | -8. Update System: |
112 | | - ``` |
113 | | - sudo apt update |
114 | | - sudo apt upgrade |
115 | | - ``` |
116 | | -9. Source the workspace: |
117 | | - ``` |
118 | | - source /opt/ros/humble/setup.bash |
119 | | - ``` |
120 | | -10. Update dependencies: |
121 | | - ``` |
122 | | - rosdep update |
123 | | - ``` |
124 | | -11. Pull relevant packages and install dependencies: |
125 | | - ``` |
126 | | - vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.humble.repos |
127 | | - rosdep install --ignore-src --from-paths src -y -r |
128 | | - ``` |
129 | | -12. Compile: |
130 | | - ``` |
131 | | - colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release |
132 | | - ``` |
133 | | - |
134 | | -## Getting started - ROS Foxy |
135 | | - |
136 | | -1. [Install ROS 2 Foxy](https://docs.ros.org/en/foxy/Installation/Ubuntu-Install-Debians.html). |
137 | | - |
138 | | -2. Make sure that `colcon`, its extensions, `vcs`, and development tools are installed: |
139 | | - ``` |
140 | | - sudo apt install python3-colcon-common-extensions python3-vcstool clang-format pre-commit |
141 | | - ``` |
142 | | -3. Create a new ROS 2 workspace if necessary: |
143 | | - ``` |
144 | | - export COLCON_WS=~/workspace/foxy_ws |
145 | | - mkdir -p $COLCON_WS/src |
146 | | - ``` |
147 | | -4. Or just navigate to your workspace source folder: |
148 | | - ``` |
149 | | - cd ~/workspace/foxy_ws/src |
150 | | - ``` |
151 | | -5. Clone the repo: |
152 | | - ``` |
153 | | - git clone https://github.com/robosoft-ai/SMACC2.git |
154 | | - ``` |
155 | | -6. Checkout the Foxy branch: |
156 | | - ``` |
157 | | - cd ~/workspace/foxy_ws/src/SMACC2 |
158 | | - git checkout foxy |
159 | | - ``` |
160 | | -7. Navigate to the workspace: |
161 | | - ``` |
162 | | - cd ~/workspace/foxy_ws |
163 | | - ``` |
164 | | -8. Update System: |
165 | | - ``` |
166 | | - sudo apt update |
167 | | - sudo apt upgrade |
168 | | - ``` |
169 | | -9. Source the workspace: |
170 | | - ``` |
171 | | - source /opt/ros/foxy/setup.bash |
172 | | - ``` |
173 | | -10. Update dependencies: |
174 | | - ``` |
175 | | - rosdep update |
176 | | - ``` |
177 | | -11. Pull relevant packages and install dependencies: |
178 | | - ``` |
179 | | - vcs import src --skip-existing --input src/SMACC2/.github/SMACC2.foxy.repos |
180 | | - rosdep install --ignore-src --from-paths src -y -r |
181 | | - ``` |
182 | | -12. Compile: |
183 | | - ``` |
184 | | - colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release |
185 | | - ``` |
186 | 79 |
|
187 | 80 | ## Features |
188 | 81 | * ***Powered by ROS 2:*** SMACC2 has been developed specifically to work with ROS 2. It supports ROS 2 topics, services and actions, right out of the box. |
@@ -220,15 +113,6 @@ Each state machine in the reference library comes with it's own README.md file, |
220 | 113 |
|
221 | 114 | Operating instructions can be found in each reference state machines readme file. |
222 | 115 |
|
223 | | -## Writing your State Machines |
224 | | -There is a [state machine generator in the reference library](smacc2_sm_reference_library/create-sm-package.bash). |
225 | | -To use it go to the `src` folder of your ROS 2 workspace and execute: |
226 | | - ``` |
227 | | - smacc2/smacc2_sm_reference_library/create-sm-package.bash <name_of_state_machine> |
228 | | - ``` |
229 | | -After than compile your workspace and source it to set paths of the new package. |
230 | | -Check `README.md` in new package about instructions to start newly created state machine. |
231 | | - |
232 | 116 | Happy Coding! |
233 | 117 |
|
234 | 118 | ## Support |
|
0 commit comments