999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

圖形化PDDL語言編譯系統的設計與應用

2024-02-22 07:45:26張忠坤林泓宇譚智元邢明杰武延軍1
計算機工程與設計 2024年2期
關鍵詞:規(guī)劃思維模型

張忠坤,林泓宇,譚智元,邢明杰,武延軍1,+

(1.南京中醫(yī)藥大學 人工智能與信息技術學院,江蘇 南京 210023;2.中科南京軟件技術研究院智能軟件研究中心,江蘇 南京 210000;3.中國科學院軟件研究所 智能軟件研究中心,北京 100190;4.中國科學院大學 計算機科學與技術學院,北京 100190)

0 引 言

智能規(guī)劃[1]是人工智能系統實現智能決策和行動的必要組成部分之一。其中規(guī)劃領域定義語言(planning domain definition language,PDDL)[2]是智能規(guī)劃社區(qū)中廣泛使用的一種領域描述語言,具有形式化、標準化等特點。PDDL語義的實現與特定的功能設計和語法支持密切相關,開發(fā)者需要針對功能需求來設計專用編譯系統以實現并優(yōu)化相關系統運行的性能。比如Fast Downward[3]的編譯系統是針對其規(guī)劃任務的優(yōu)化而設計,流程包括PDDL的詞法分析、語法分析、格式轉換和問題建模等。而PDDL.jl[4]的編譯系統是將PDDL解析為Julia數據結構,以便用戶可以通過Julia語言來操作和處理PDDL數據。此前我們對PDDL的集成開發(fā)環(huán)境如MyPDDL[5]和PDDLStudio[6]等存在的版本特性支持不完善、文本編輯困難和缺少應用指導等問題,設計了一個圖形化PDDL在線編輯網站來幫助開發(fā)者提高PDDL的編寫效率(https://graphplan ner.isrc.ac.cn)。網站通過jsMind[7]思維導圖作為圖形化PDDL代替文本PDDL來提高開發(fā)的效率,并能夠解析用戶上傳的思維導圖和PDDL文件,還為用戶提供了在機器人操作系統(robot operating system,ROS)[8]環(huán)境下的應用指導。為此本文設計了專用編譯系統Graph Compiler,其不僅支持編譯jsMind思維導圖,也支持對多版本PDDL文件的編譯,還可以將規(guī)劃結果轉換為ROS機器人具體行動的動作序列信息。對多屆國際規(guī)劃競賽(international planning competition,IPC)[9]的PDDL用例的實驗結果表明,Graph Compiler能夠正確編譯測試集上的所有用例。此外,我們對圖形化PDDL語言指導機器人任務規(guī)劃做了實驗,將Graph Compiler應用到ROS工程中,拓展了它的應用空間。

1 PDDL語言結構

PDDL語言結構一般如圖1所示,分為域模型(domain)和問題模型(problem)。

圖1 常見PDDL文件結構關系

域模型包括Types、Fluents和Action Schemata等結構。

Types指定了在域模型和問題模型中定義變量時可以使用的所有類型。Fluents包括謂詞和函數,它有n個對象參數,Fluents描述這些參數之間的某種屬性和關系。Action Schemata是一個動作列表,其中每個Action都是一個元組,包含Parameters、Precondition和Effect。Parameters充當具體操作時所操作對象的占位符。Precondition是一組邏輯公式,指定了動作發(fā)生需要滿足的屬性條件或邏輯關系。Effect也是一組邏輯公式,指定了動作發(fā)生后,改變了哪些屬性條件或邏輯關系。

問題模型包括Domain(域模型)、Init State和Goal State。Init State定義了問題模型中的所有對象及其對應的初始狀態(tài),而Goal State則是當問題解決時模型中的對象應處于的狀態(tài)。初始狀態(tài)和目標狀態(tài)都被指定為一組邏輯公式。

2 編譯系統架構

編譯系統的運行架構如圖2所示,用戶在前端中產生的PDDL數據、jsMind數據和規(guī)劃結果數據,在前端經過簡單的語法檢查后,被傳到后端的編譯系統中。編譯系統將輸入數據傳到對應的編譯模塊,包括PDDL編譯模塊、jsMind編譯模塊和ROS應用模塊。如果PDDL或jsMind編譯成功,系統會將生成的目標代碼存儲到臨時文件中并返回到前端展示,否則返回給前端錯誤原因;規(guī)劃結果則通過ROS交互模塊被轉為ROS話題消息,通過話題發(fā)送節(jié)點持續(xù)發(fā)布,可以被動作節(jié)點訂閱,進而用于指導機器人的任務規(guī)劃。

圖2 編譯系統運行架構

輸出到臨時文件中保存的PDDL問題模型文件可以被系統集成的規(guī)劃器求解。系統提供兩種規(guī)劃求解方案,一種是planutils[10]項目的本地規(guī)劃器接口,可以選擇使用包括OPTIC[11]、POPF[12]和TFD[13]等規(guī)劃器,另一種是Planning Editor[14]項目的在線規(guī)劃器接口。兩種方案可以求解多個版本的PDDL文件,為開發(fā)者獲得圖形化PDDL問題模型的求解結果提供了支持。

3 前端數據輸入

前端界面包括功能教學頁面、問題模型編輯頁面、域模型編輯頁面和ROS交互頁面等。前端與編譯系統關聯的功能如圖3所示,包括:編輯思維導圖生成PDDL域模型和問題模型;轉換思維導圖為文本形式的PDDL;解析用戶上傳的PDDL文件為思維導圖;解析ChatGPT[15]返回的PDDL數據為思維導圖;將規(guī)劃結果解析為話題消息發(fā)送到ROS系統等。

圖3 前端ROS USE頁面

為了減少用戶的編輯時間,系統設計結合了ChatGPT模型,用戶可以通過自然語言描述PDDL模型關鍵內容,編譯系統會將ChatGPT的返回內容轉為思維導圖表示的PDDL,功能展示如圖4所示。

圖4 ChatGPT使用頁面

根據上述功能需求,編譯系統的數據輸入可以分為3類,包括思維導圖表示的圖形化PDDL數據、ChatGPT模型生成或用戶直接上傳的PDDL文本數據以及通過規(guī)劃求解器得到的規(guī)劃結果。編譯系統針對這3類數據,分別設計了相應的編譯模塊,其中思維導圖數據對應的jsMind編譯模塊和PDDL數據對應的PDDL編譯模塊將在4章節(jié)講述,規(guī)劃結果話題消息對應的ROS應用模塊將在5章節(jié)講述。

4 編譯系統設計

4.1 語法結構對比

編譯系統使用的jsMind數據格式是node_tree,數據格式如下所示:

node:{

可以看到,node_tree中的數據采用樹形結構進行組織,其中topic值代表節(jié)點顯示在思維導圖中的內容,children值代表子節(jié)點列表,可以嵌套任意深度。node_tree通過這兩對鍵值,可以準確地描述思維導圖中節(jié)點的內容與親屬關系。而PDDL的語言文法是基于LISP的S表達式語法[16],其特點是可以使用括號來表示嵌套結構。通過括號的嵌套使用,形成不斷延申的樹狀結構,從而可以表示復雜的數據關系。從圖3左下方的PDDL域模型文件示例中,可以看到通過括號嵌套的方式,PDDL表現出明顯的層級關系。

通過觀察兩者的數據格式可以得出結論,PDDL和jsMind在數據內容上具有相同的嵌套結構,PDDL的括號對應于jsMind的children,括號中的內容則對應于jsMind的topic值。兩種語法格式的語義對應關系表明,jsMind與PDDL可以實現語義上的等價轉換。

4.2 編譯模塊介紹

系統的編譯流程主要包括兩個模塊。分別是jsMind編譯模塊和PDDL編譯模塊。jsMind編譯模塊的功能是將用戶在前端編輯的思維導圖編譯為PDDL文本;PDDL編譯模塊的功能是將ChatGPT生成或用戶上傳的PDDL文本編譯為jsMind數據。

4.2.1 jsMind編譯模塊

jsMind數據的編譯流程如圖5(左)所示。

圖5 編譯流程

首先進行詞法分析,任務是解析jsMind的node_tree格式數據,將每個節(jié)點的層級結構信息提取出來。根據topic鍵值和children鍵值劃分token,去掉其它無用字符,生成token流。

之后進行語法分析,首先根據PDDL的語言文法設計相應的PDDL數據存儲結構。如針對謂詞、初始狀態(tài)和動作等結構,根據其語法規(guī)則來定制對應的數據結構。下面是對動作結構進行定義的示例:

之后對詞法分析器生成的token流進行分析,并將token流按照數據類別補充到相應的數據結構中,從而生成AST。

之后生成中間表示,其結構是節(jié)點屬性為鍵值對的屬性樹。該步驟將優(yōu)化后的AST按照PDDL的不同屬性提取數據到定義的屬性樹中。

最后生成PDDL文件,系統根據生成的中間表示,將數據按照PDDL文法組合在一起,生成PDDL數據存儲到臨時文件中。之后系統取出臨時文件內容并嵌入HTML標簽,使數據返回到前端后可以高亮顯示。

4.2.2 PDDL數據編譯模塊

PDDL數據的編譯流程如圖5(右)所示。

首先使用正則表達式構造詞法分析器。過濾掉空格、注釋和其它無用的字符。生成token流。

接著進行語法分析,主要是將詞法分析器輸出的token流,轉化為特定的語法結構。系統使用遞歸下降分析法構建語法分析器。語法分析器會對多個PDDL版本中的多個語法結構進行識別和處理。

之后進行語義分析,主要任務是對程序進行合法性檢查。確定輸入數據符合語言規(guī)范和語義約束,并進行相應的語義處理。我們根據PDDL不同特性文法,做了語義分析處理。同時在處理過程中對PDDL的每個語法結構都進行了大量的錯誤判斷處理,設計了共計28種錯誤反饋。

在語法語義分析之后是AST擴展階段,系統需要對產生的AST進行擴展,根據requirement導入的PDDL模塊,在生成的AST中添加對應鍵值。例如requirement 可以導入PDDL3版本特性:preference,其表示在問題模型中,可以使用軟目標定義。使用preference需要在模型文件中使用同名關鍵詞。根據這些特殊requirement是否存在于域模型的requirements列表中,來判斷是否在AST中添加相應的鍵值,最終生成一個包含所有關鍵信息的AST。

最后是生成jsMind,系統將擴展的AST在后端針對jsMind語法做了補充、優(yōu)化和簡化,組合其中的數據,并最終生成jsMind返回到前端以思維導圖的形式展示。

5 ROS應用

在機器人的任務規(guī)劃中,開發(fā)者可以將機器人的已知信息包括機器人獲取的傳感器信息和可使用的動作信息等通過PDDL的域模型進行描述,之后在問題模型中定義機器人的任務目標,再通過規(guī)劃求解獲得機器人執(zhí)行任務的最佳動作序列,以滿足目標條件并最小化某些指標(如時間、資源消耗等)。

然而,當前機器人開發(fā)調度與PDDL的編輯規(guī)劃通常是獨立進行的,這導致兩者之間的信息交流依賴于開發(fā)人員的觀察與操作。開發(fā)人員在獲得規(guī)劃結果后,在ROS系統中構建行為樹[17]或狀態(tài)機來執(zhí)行任務,開發(fā)效率較低。

為更好的將圖形化PDDL應用在機器人開發(fā)領域中,系統設計了ROS應用模塊,旨在與當前流行的ROS系統結合。節(jié)點是ROS的基本執(zhí)行單元,節(jié)點之間通過發(fā)布和訂閱話題進行通信。ROS應用模塊的功能是創(chuàng)建節(jié)點,將規(guī)劃結果轉為話題并持續(xù)發(fā)布出去,供動作節(jié)點訂閱以使機器人能夠按照規(guī)劃結果進行運動。

開發(fā)者可以在ROS交互頁面中使用自然語言描述機器人的任務場景和目標,系統通過ChatGPT生成PDDL并轉為思維導圖形式,開發(fā)者在調整PDDL內容后可以進行規(guī)劃求解,在規(guī)劃成功后,返回的規(guī)劃結果會被轉為相應格式的話題消息,實驗中機器人運動的話題格式如下所示:

time start_time

string action_name

string[] action_params //動作參數

duration duration_time //持續(xù)時間

ROS應用模塊的具體流程可分為以下3步:

(1)是根據規(guī)劃結果的輸出樣式構建正則表達式,獲取規(guī)劃結果中包含有效內容的部分,去除包括調用IP、耗費時間和運行狀態(tài)等無用字符,得到相應的token流,獲得的內容見表1,主要包括動作開始時間、動作序列(動作名和參數)和動作持續(xù)時間。

表1 OPTIC規(guī)劃器求解結果

(2)是對token 流進行語法分析,將解析出的規(guī)劃結果按照特定結構轉為話題的中間數據,下面是針對實驗話題格式設定的中間數據結構:

(3)則是將數據轉為話題。這是一個簡單的映射過程,將生成的中間表示數據,根據語義對應關系轉化為話題數據,并且進行合法性檢驗,包括參數類型和格式等。確保輸出匹配的話題數據。

最后將話題以多線程的方式發(fā)布到ROS網絡中,確保ROS話題的發(fā)布不會影響到編譯系統其它功能的使用。

6 實 驗

實驗分為兩部分:第一部分測試Graph Compiler對于多版本PDDL數據和jsMind數據的編譯能力;第二部分是驗證Graph Compiler應用在ROS項目中的實際效果。

6.1 編譯功能測試

IPC比賽為智能規(guī)劃領域提供了廣泛使用的基準。我們使用Assembly、Gripper和Blocks等IPC比賽中的經典測試用例,來測試Graph Compiler在編譯多版本PDDL數據方面的表現(PDDL+的版本用例來自于PDDL wiki[18])。此外在Graph Compiler測試中,我們針對每一個測試用例都隨機挑選一個PDDL模型文件并使用jsMind思維導圖來表示,測試該模型文件是否能夠如圖3所示被順利的編譯為PDDL數據,測試結果見表2。

表2 PDDL用例編譯測試(√表示成功編譯,×表示無法編譯)

測試結果表明,Graph Compiler相較于Fase Downward和PDDL.jl而言,支持編譯更多的PDDL版本,且編譯成功率達到100%;也可以將用戶編輯的jsMind思維導圖正確編譯為PDDL格式數據。滿足了在線編輯工具的功能需求。

6.2 ROS系統交互實驗

我們使用中科院軟件所博物館導覽項目[19]作為ROS應用實驗的場景,測試從自然語言輸入到機器人調度的半自動流程。

首先開發(fā)者在ROS USE界面中使用圖4所示的自然語言建模,得到域模型和問題模型。域模型建模輸入的prompt如下:”我需要一個domain.pddl,內容如下:包括兩個類型:waypoint和robot,3個謂詞:at代表機器人在路徑點上、worked代表機器人在這個路徑點巡視過和not_worked代表機器人并沒有在這個路徑點巡視,以及兩個動作:move和work。”。系統會調用ChatGPT接口并根據prompt生成對應的域模型數據,并以思維導圖的形式在聊天框下方顯示。問題模型同樣由自然語言輸入生成,內容包括定義5個路徑點,按照目標順序依次移動到5個路徑點并在路徑點上巡視一段時間等,生成內容如下所示:

(define (problem navigation_waypoint_demo)

wa wb wc wd we-waypoint //定義5個路徑點

init-waypoint

robot-robot)

(robot_on robot init)

(not_worked wa) //5個點都還未巡視

(not_worked wb)

(not_worked wc)

(not_worked wd)

(not_worked we))

(and

(worked we)

(worked wd)

(worked wc)

(worked wb)

(worked wa)))) //5個路徑點都已完成巡視

通過ROS交互模塊,將規(guī)劃結果轉換為ROS話題,并發(fā)布到ROS話題網絡中,之后在機器人的運動節(jié)點中訂閱該話題,并根據規(guī)劃結果設計并發(fā)布相應的動作指令,使導覽機器人按照表1中的規(guī)劃結果移動和工作。機器人實驗的部分畫面如圖6~圖7所示,可以看到機器人正在按照規(guī)劃結果給出的移動和巡視順序在完成任務。

圖6 小車在PDDL指導下完成巡航任務(1)

圖7 小車在PDDL指導下完成巡航任務(2)

實驗結果表明,我們成功將Graph Compiler應用在ROS項目中,完成了通過圖形化PDDL指導機器人任務規(guī)劃的目標。

7 結束語

為滿足圖形化PDDL編輯的功能需求,本文基于領域專用編譯技術設計了一個圖形化PDDL編譯系統。通過詞法分析、語法分析、語義分析和AST優(yōu)化擴展等方法,設計了對文本PDDL和思維導圖表示的圖形化PDDL的編譯模塊,具有優(yōu)秀的版本兼容性和編譯正確性。并基于ROS節(jié)點之間的通信機制設計了ROS應用模塊,可以將規(guī)劃結果以話題的消息格式發(fā)布出去,用于指導機器人的任務規(guī)劃。

在后續(xù)工作中,將繼續(xù)探索Graph Compiler的規(guī)劃應用,完善從自然語言輸入到PDDL生成再到ROS機器人運動的自動化流程,并通過實現一個圖形化PDDL專用規(guī)劃器來進一步提高系統的運行效率。

猜你喜歡
規(guī)劃思維模型
一半模型
思維跳跳糖
思維跳跳糖
思維跳跳糖
思維跳跳糖
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
規(guī)劃引領把握未來
快遞業(yè)十三五規(guī)劃發(fā)布
商周刊(2017年5期)2017-08-22 03:35:26
多管齊下落實規(guī)劃
主站蜘蛛池模板: 欧美亚洲综合免费精品高清在线观看| 91无码人妻精品一区| 91麻豆国产视频| 免费观看成人久久网免费观看| 一本大道东京热无码av| 尤物在线观看乱码| 亚洲一区波多野结衣二区三区| 国产成人久久777777| 亚洲成人福利网站| 玖玖精品视频在线观看| 精品久久777| 欧美日韩中文国产va另类| 亚洲乱亚洲乱妇24p| 欧美日一级片| 人妖无码第一页| 重口调教一区二区视频| 国产成人1024精品下载| 国产精品免费电影| 国产精品刺激对白在线| 国产欧美又粗又猛又爽老| 欧美一道本| 五月天久久婷婷| 国产乱论视频| 白浆视频在线观看| 在线观看国产精品日本不卡网| 国产精品综合久久久| 激情综合五月网| 久久国产毛片| www.亚洲色图.com| 国产成人艳妇AA视频在线| 亚洲国产精品日韩av专区| 高清无码一本到东京热| 欧美成人精品一区二区| 97超级碰碰碰碰精品| 国产欧美在线观看精品一区污| 国产精品性| 亚洲不卡无码av中文字幕| 久久精品亚洲专区| 青草视频网站在线观看| 性做久久久久久久免费看| 看看一级毛片| 欧洲成人在线观看| 99伊人精品| 亚洲天堂视频在线免费观看| 国产亚洲高清视频| 国产又色又刺激高潮免费看| 国产精品黄色片| 日本久久网站| 99re在线免费视频| 男女男免费视频网站国产| 91青青草视频| 中文字幕中文字字幕码一二区| 91精品网站| 91精品国产91久久久久久三级| 国产精品无码制服丝袜| 国产精欧美一区二区三区| 国产剧情无码视频在线观看| 久久免费视频播放| 老熟妇喷水一区二区三区| 欧美色伊人| 中文无码精品a∨在线观看| 日本高清有码人妻| 国产精品女熟高潮视频| 国产成人精品亚洲77美色| 亚洲中字无码AV电影在线观看| 亚洲一区二区无码视频| 久久一级电影| 久久a毛片| 国产成人精品日本亚洲77美色| 国产一线在线| 亚洲有无码中文网| 日韩高清中文字幕| 国产成人精品一区二区不卡| 思思99热精品在线| 亚洲天堂视频网| 免费国产黄线在线观看| 日本欧美视频在线观看| 成年人免费国产视频| 日韩区欧美区| 中文字幕免费在线视频| 国产尤物在线播放| 日本午夜影院|