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

Revision history [back]

click to hide/show revision 1
initial version

State machines and behavior trees are useful when you have a lot of failure conditions that you have to handle. For example, the opening of the door could fail in multiple ways: - door handle not detected - robot was not able to grasp the handle - robot was unable retreat arm - various lower level failures

Each failure could have a different behavior to solve the problem. For example when the door handle is not detected, you could reposition the robot. Or when the grasp failed, you could retry detecting and try again (for x times).

As you can image, if you don't use a framework for this, the code will be quite complex. State machines and behavior trees help to manage this complexity. They each have their own advantages and disadvantages.