State Machine Library c++/ROS2

asked 2023-05-31 10:39:02 -0500

Mrmara gravatar image

Hi all,

I need to implement inside my autonomous driving robot a state machine in order to be aware of the current status of the robot (e.g. Navigation, Idle, Manual, Busy and so on) and also to accept or reject new missions based on current state, e.g. If I am already in Navigation I do not want to accept new missions.

I am making it simpler than it is in reality, since I imagine to have several states and different transitions start to be difficult to manage without a centralized node providing a State Machine.

I have been searching on the web and I found an interesting library called SMACC2. It seems a greate piece of softare but probably a bit too much difficult to set up.

I am searching for a light yet robust implemenation that ideally does not need too much coding but moslty configration files to define states and allowed transitions.

Behavior tree in this case I do no think it is a great solution since I am not trying to manage difficult and multistage missions but just know always the current state of my robot.

Any suggestion on existing implementation or past experience would be really appreciated

edit retag flag offensive close merge delete

Comments

1

FSM and BT comparison has been a common discussion point incl. https://discourse.ros.org/t/introduci... I'd say try one/any of the libraries mentioned in this thread.

130s gravatar image 130s  ( 2023-05-31 12:25:07 -0500 )edit