ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

state machine

asked 2020-07-22 13:27:09 -0500

Matball gravatar image

Did a cursory search for "smach alternatives"/"state machine" and couldn't find much so here I go...

I've got a mobile robot running on ROS Melodic (on a Jetson TX2 dev kit) that I'd like to have drive around, sweep, and do many other additional things, as part of a fully automated routine. The way I've organized it previously is to manage a state machine that determines what the robot is currently doing, and what it should do next when reaching a certain terminal condition. This code is written from scratch and works pretty well, but I'd like to add more devs to the project, and as you might imagine it's hard to collaborate on.

I'm currently looking into executive_smach, which seems to do what I need. I can run ActionServers for each task, write SimpleActionStates that executes each action with a particular goal in mind, and transition to other tasks using smach's "transitions" map. I'm finding it a little boilerplate heavy though and it hasn't been updated for a while (save for a very recent Python 3 compatibility update, coinciding with the ROS Noetic release).

So, I was wondering if there are alternative packages being used today to manage such automated routine state machines that are used (more?) widely in the community. Any insight is appreciated!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-07-24 09:38:44 -0500

You can give FlexBE a try, see Homepage or Tutorials. Not sure if it's a overkill in your case, though. But if you consider to stick to your project for some time, it might be worth it.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2020-07-22 13:26:23 -0500

Seen: 450 times

Last updated: Jul 24 '20