Robotics StackExchange | Archived questions

state machine

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!

Asked by Matball on 2020-07-22 13:26:23 UTC

Comments

Answers

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.

Asked by Philipp Schillinger on 2020-07-24 09:38:44 UTC

Comments