優點
模塊化
BT的每個子樹都可以是一個模塊,模塊化系統可以設計、應用、測驗和重用一個模塊,分而治之的模塊化系統會隨著系統的復雜度增加而變得更加有益,
分層組織
BT包含多個級別的決策,在不同層次上的設計和分析結構能實作迭代細化和計劃拓展,
可重用代碼
BT的所有子樹只需要回傳“運行“、”成功“和”失敗“,這使得一個子樹在任意子樹都是可重用的,
反應性
BT的反應性表現為每Tick對樹進行倍訓遍歷 ,
可讀性
可讀性可以降低開發和除錯的成本,由于BT的樹結構和模塊化,使得BT具有可讀性
表達能力
BT至少有四種表達方式:有限狀態機、包容體系結構、遠程反應程式、決策樹,
適用于分析
BT可以從這幾個特性進行定性和定量分析:安全性,避免不可逆的不良行為;魯棒性,適用于很大的操作范圍;效率性,完成時間的意義上;可行性,成功概率的意義上;可組合性,分析子任務的組合是否保留了屬性,
適用于自動綜合
BT適用于任務規劃或機器學習技術自動合成任務或策略的動作排序,
缺點
BT引擎應用復雜
單執行緒順序編程會使BT引擎的應用變得復雜,
檢查所有的條件需要很大的代價
BT需要檢查幾個條件來執行倍訓任務,在某些應用中需要付出很大的代價,
有時前饋執行效果足夠好
機器人在結構化的環境中作業時,可以在空間和時間上預測機器人的狀態,此時BT與更簡單的架構相比沒有任何優勢,
BT與FSM不同
BT與FSM相比更容易理解,但在設計解決方案時需要新的思維方式,BT的執行并不關注狀態,而是關注條件,并且切換不是事件驅動而是時鐘驅動的,
BT工具不成熟
開發BT的軟體在軟體數量和成熟度上不如FSM,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/514192.html
標籤:其他
下一篇:leet Code [34. Find First and Last Position of Element in Sorted Array]
