ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A

Introducing the SMACC MoveGroupInterface Client - A new way to program with MoveIt

Hello Everyone,

I’d like to present the SMACC MoveGroupInterface Client. A new way to program with MoveIt!..

This is a video of the sm_fetch_six_table_pick_n_sort state machine found in the reference library…

It’s using the MoveGroupInterface client found in the SMACC Client library…

And especially important for developers, here are the new MoveGroupInterface client behaviors…


For more info, please be sure to check out the repo…
And our Developer site…


Wow. Is it just me or does this guy make the best videos?


Jesus christ this is awesome



This looks very interesting. It also reminds me a lot of SMACH - is this the same stuff?

How stable is it? Does it require tweaks for usage in complete isolation? I tried to use SMACH a few years ago, but the work couldn’t be justified eventually. Are there good tutorials?

Best Regards,

Tord Bjørlykke


Hello Tord,
Thank you for the compliment and it’s a pleasure to meet you.

There are definitely some similarities to SMACH, which in many ways was the original inspiration for the project.

But, under the hood, it’s a completely different animal, and it’s on another level.

It’s all in C++, and it’s built on top of Boost Statechart, which is a template meta programming based state machine library. This brings a number of important features to the library such as speed and compile time validation of your state machine.

And from Boost Statechart, it inherits the key state machine features of orthogonality, hierarchy, and programmatic transitions originally developed by David Harel in his famous 1987 paper.

With regards to your question about stability, Boost Statechart has been around for 15 years now, so it’s stable. It’s true that we’re still actively developing the project, but it’s definitely a lot more stable than would be expected for a new state machine library.

We’ve got a few tutorials, all of which are found here, and here is a getting started video that can get you up and going. But the quickest way to get started, is to head to the reference library, pick out a state machine that is closest to your project, and then start hacking away.

I’ll reach out offline, and if you tell me a little about your project I’ll be able to suggest which machine to get started with.

Anyways, Thanks again and happy coding.


Nice work @brettpac. I think you should add this to the MoveIt “Related Projects” page, with the video as the main image


Thank you Dave, we’ll get started on that pull request right away.
Its an honor to be listed with so many other great projects. Thank you.

1 Like