Behavior Tree(行為樹)
定義
行為樹(Behavior Tree)用宣告式的樹狀結構表達複雜的條件與重試邏輯,執行時從根節點開始,每個節點回傳 SUCCESS、FAILURE、RUNNING 三種狀態之一,比巢狀的 if/else 更容易視覺化與局部替換。
關鍵特性
- Sequence 類似 AND:依序執行子節點,只要有一個失敗就整體失敗並停止;全部成功才整體成功。
- Fallback 類似 OR:依序嘗試子節點,只要有一個成功就整體成功;全部失敗才整體失敗,是實現「規劃失敗就換個方式重試」的核心節點類型。
- RecoveryNode:先執行主要行為,失敗時執行復原分支(例如清除代價地圖、原地旋轉重新掃描),復原完成後回到主要行為重新嘗試,這正是導航失敗自動重試邏輯的底層機制。
使用情境
- Nav2 的
bt_navigator用行為樹協調planner_server、controller_server、behavior_server的執行順序,實現失敗重試等複合邏輯。