PlanSys2
以 PDDL 為基礎的 ROS 2 任務規劃系統:在真實機器人上進行符號 AI 規劃
授權條款
Apache-2.0
概述
PlanSys2(ROS 2 Planning System)是 ROS 2 生態系的參考任務規劃框架,由 Universidad Rey Juan Carlos 的 Intelligent Robotics Lab 打造。它把古典 AI 規劃帶到真實機器人上:領域與問題以 PDDL 撰寫,計畫由可插拔的求解器(POPF、TFD)計算,執行時則將計畫編譯成行為樹,其動作節點就是一般的 ROS 2 元件,從符號目標(「把物體送到 B 房間」)一路銜接到實際運作的機器人行為。
PlanSys2 的架構將規劃拆分成相互協作的 ROS 2 節點:保存 PDDL 模型的領域專家、以謂詞與目標維護世界狀態的問題專家、呼叫 PDDL 求解器的規劃器節點,以及將計畫轉換成行為樹的執行器,在計畫允許時進行平行執行。動作以具備生命週期管理的 ROS 2 外掛實作,因此像 (move robot room-a room-b) 這樣的 PDDL 動作會綁定到一次 Nav2 導航呼叫;也支援拍賣式的多機器人執行,以及失敗時重新規劃。終端機(CLI)讓開發者能以互動方式檢視與操作知識庫,教學則涵蓋與 Nav2 及感知的整合。PlanSys2 發表於 IROS 2021,並跨多個 ROS 2 發行版持續維護;它承襲自 ROSPlan 系譜,是 ROS 2 使用者在狀態機不再夠用時的去處:也就是機器人需要針對目標、前置條件與效果推理,而不是照著寫好的序列執行時。它填補了一個真正的平台缺口:在導航層之上的審慎式符號自主。
為何重要
PlanSys2 是 ROS 2 堆疊中缺少的審慎層:它是持續維護、發表於 IROS 的 ROSPlan 後繼者,讓真實機器人能進行目標層級的符號規劃,也就是 Nav2 之上的那一層,把「前往位姿」轉化為「完成這項任務」。
解決的問題
以狀態機編寫的複雜任務會變得難以維護且脆弱。PlanSys2 讓機器人能從 PDDL 目標自動規劃動作序列、在失敗時重新規劃,並透過綁定到真實 ROS 2 動作的行為樹來執行。
重點
- 以 PDDL 進行領域/問題建模,搭配可插拔的求解器(POPF、TFD)
- 計畫會編譯成行為樹,支援平行執行與失敗觸發的重新規劃
- 動作是 ROS 2 生命週期外掛:一個 PDDL 動作可綁定到例如一次 Nav2 呼叫
- 互動式規劃終端機,用於檢視知識庫
- 發表於 IROS 2021;ROS 2 任務規劃中承襲 ROSPlan 系譜的標準
適用對象
- 打造任務層級行為的自主工程師
- 服務與物流機器人開發者
- 在機器人上部署的 AI 規劃研究人員
- 覺得狀態機不敷使用的 ROS 2 開發者
限制
- 對非規劃領域的工程師而言,PDDL 建模有相當的學習曲線
- 古典規劃大多假設動作結果是確定的:機率性的領域需要特別處理
- 求解器效能限制了即時重新規劃所能處理的問題規模