Behavior abstraction as a finite‑state machine

Back to slides

Why finite‑state machines (FSMs) matter

Finite‑state machines (FSMs) capture discrete behavior: a system is in one state at a time and moves to another when a condition is met. This makes complex behavior easy to describe, visualize, and test.

In robotics and autonomous vehicles, FSMs are used to orchestrate high‑level behaviors and safety logic:

FSMs combine naturally with continuous controllers: the FSM selects which controller is active, while controllers handle the low‑level dynamics. Because the states and transitions are explicit, engineers can reason about corner cases and verify that unsafe transitions are impossible.

Interactive FSM

States
    Transitions
      How to use

      • Environment toggles are generated automatically from the variable names you use in transition labels (e.g., ahead, leftClear, red, green, pedestrian, rain).
      • Transition labels are boolean expressions using names and operators: and/or/not, &&, ||, !, and parentheses. Aliases: “left clear” or “left” → leftClear. Unlabeled transitions are unconditional.
      • Add state to create new nodes; drag nodes in the canvas to reposition. Double‑click a node to rename it. Add transition to connect two states or hold Shift and drag from a source node to a target node. You can toggle transitions active/inactive in the Transitions list.
      • Use the Start selector to set the start state. Reset returns to Start (does not change world toggles). Step follows the first active outgoing transition from the current state whose condition evaluates to true given the current world toggles.

      Tip: This standalone page allows full interactivity without slide navigation interference.