to do


non-RT-helper client

This is the big one. rrbtx_navigation.

    – costmap_switcher (probably with move_base_z? it would be also
justified to be a component part of smacc)

create an opensource reelrbtx_msgs repo

private repo for rrbtx_reel_client

Keep rrbtx_navigation (for costmaps)

sm_dance_bot_3 video

The f-pattern is in place, for horizontal movement, but not for vertical movement. The f-pattern needs to be reorganized so that we start with forward_2, and end on rotate_2.

The s pattern is currently not returning to home, it seems to be stuck in the loop start state.

Random Generator State Reactor

I want a state reactor, with a function that generates a random number within a specified range, similar to this.

So that on a given event, the reactor generates a random number (say between 1-12), and if x<4, it throws event A, if 5<x<8, it throws event B, and if x>9, it throws event C.

sm_three_some viewer issue

I think there is a bug in the viewer, in how it lays out the entry point for superstate. Please look to the current sm_three_some example and notice the transitions from StState3 to SS1::Ss1.

Action Client Timeout Issue

Actionclient attempt to connect to the Actionserver, and then waits with a blocking call.

Q: Can we do this asynchronously?

Ideally, we would attempt to connect and wait x amount of time, and repeat y times. Then produce a warning message if the ActionServer isn’t there.

Melodic version of SMACC Viewer

Need to get melodic version of SMACC Viewer up on

Current State not showing in the RVIZ Viewer

SMACC Viewer, leaf states should show inside SS’s



Automate debian production & upload to

  • for rrbtx_control & rrbtx_navigation too.

We’re going to upload rrbtx_control to ROS repositories, and rrbtx_navigation will be the nucleus of the new rrbtx_reel_client

SMACC Viewer Dependencies

Can we add the current version, somewhere on the viewer, so that users are able to know if they have the most up-to-date version?

Need to add to shell script, functionality that adds commit number to the version #


SMACC Lifecycle

Operation Client Buildout



MoveIt Client

The plan is adapting an Universal Robot manipulator to work with SMACC. A new example package would be created imitating dance_bot but replacing the move_base node by a move_group node. It would be needed to develop a new client: MoveBaseActionClient. The example would send the manipulator endpoint to different places. It could be even combined with some other substatebehaviors for other sensors (to show how a state machine could be useful in these contexts). For the example, the default ur5 gazebo simulation example launch file would be used.

Occupancy Map Updater for MoveIt perception client…

MoveIt Task Constructor ***

Stages = client behaviors, Solvers = client components


New State Machines (clone from Threesome)


New reference machine with…

  • Two arms/moveit clients
  • Ridgeback base


Inverse Kinematic Solution



Package.xml/Cmake/header cleanup.

ai-reactor library

Create new folder AI Behaviors, for a state machine level version of logic units….

First implementation (in ai library) would be a counter, that counts the number of times some certain event happens, over the running of a state machine, then records that to some type of logfile.


static checks

  • transition from an orthogonal that doesn’t exist.
  • transition from a source that doesn’t exist.
  • cb from a client that doesn’t exist – don’t worry about making clients dynamically.

We decided to hold off on this one, after coming to the conclusion that the library is too immature for us to start shutting off portions of the library. So we decided to push but comment out the changes for now.

Improved Compilation Error Msgs

For use case of state not correctly listing it’s context. Static Assert?

We attempted this, but unfortunately our changes were compiled after boost.statechart, which made our attempts futile. Anyways, we tried.

Continue adding hierarchy to components

Initialization order issue – Let’s implemenent a first pass.


Mode State Work

  • Need to add the ability to create orthogonals & initiate clients via some Mulitple Inheritance mechanism or something, kind of like we did with the update function, so that only states (mode, super, etc) with that explicit functionality can create orthogonals/clients

Logging – log4cpp

Need to record…

  • Events
  • Transitions
  • Parameter changes to Global Variables, Client Parameters, Mode Parameters, – Requires a stylistic distinction between variables and parameters?