Behavior Tree(行為樹)

定義

行為樹(Behavior Tree)用宣告式的樹狀結構表達複雜的條件與重試邏輯,執行時從根節點開始,每個節點回傳 SUCCESSFAILURERUNNING 三種狀態之一,比巢狀的 if/else 更容易視覺化與局部替換。

關鍵特性

  • Sequence 類似 AND:依序執行子節點,只要有一個失敗就整體失敗並停止;全部成功才整體成功。
  • Fallback 類似 OR:依序嘗試子節點,只要有一個成功就整體成功;全部失敗才整體失敗,是實現「規劃失敗就換個方式重試」的核心節點類型。
  • RecoveryNode:先執行主要行為,失敗時執行復原分支(例如清除代價地圖、原地旋轉重新掃描),復原完成後回到主要行為重新嘗試,這正是導航失敗自動重試邏輯的底層機制。

使用情境

  • Nav2 的 bt_navigator 用行為樹協調 planner_servercontroller_serverbehavior_server 的執行順序,實現失敗重試等複合邏輯。

延伸閱讀