天天看點

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

标題:KnowRob: A knowledge processing infrastructure for cognition-enabled robots

KnowRob:支援認知的機器人的知識處理基礎架構

作者:Moritz Tenorth and Michael Beetz

0.摘要

自主服務機器人将必須了解模糊描述的任務,例如“擺桌子”或“清理”。要執行預期的任務,需要機器人充分,精确并适當地設定其低級控制程式的參數。我們建議将知識處理作為一種計算資源,以使機器人能夠彌合模糊的任務描述與實際以預期方式執行這些任務所需的詳細資訊之間的鴻溝。在本文中,我們介紹了KNOWROB知識處理系統,該系統專門設計用于為自主機器人提供執行日常操縱任務所需的知識。該系統允許實作“虛拟知識庫”:知識片段的集合未明确表示,而是根據機器人的内部資料結構,感覺系統或外部資訊源的需要進行計算的。本文概述了各種知識,不同的推理機制以及從外部資源(例如,機器人的感覺系統,對人類活動的觀察,Internet上的網站以及基于Web的知識庫)擷取知識的接口。用于機器人之間的資訊交換。我們評估了該系統的可擴充性,并提供了各種內建實驗來證明其多功能性和全面性。

1.介紹

未來的服務機器人有望成為機器人助手,同伴和(同僚)同僚(Bicchi等,2007; Bischoff和Guhl,2009; Hollerbach等,2009),這些機器人将執行諸如設定餐桌, 清理,做煎餅。 為了了解和執行諸如“擺桌子”之類的非正式指令,他們需要推斷這些模糊的說明中未明确指出的缺失資訊。 例如,要設定桌子,機器人必須确定餐所需的物品,在廚房的什麼地方可以找到它們以及應該将它們放置在哪裡。

我們期望這種從所描述的内容中推斷出什麼意思的能力将成為直覺上可行的未來機器人代理的普遍前提。 在某種意義上,人類給出的大多數指令是不完整的,因為人類希望交流夥伴具有一定程度的常識。 要有能力檢測這些資訊差距并決定如何擷取丢失的資訊以及如何在任務執行環境中利用它,将需要機器人代理具有大量的知識體系和強大的知識處理機制。

為了将這些推理技術包括在任務執行中,我們建議以一種支援知識的方式實施機器人的控制程式。 這意味着決策被制定為推理任務,可以由機器人的知識庫來回答。 圖1給出了一個用于提取對象的例程的示例,該例程緊湊地指定為:“在最可能的存儲位置查找該對象。 如果物體在容器内,請使用容器物體的鉸接模型以适當的方式打開容器。 編寫計劃時,程式員通常知道做出決定所需的資訊,是以可以決定這些查詢的結構,例如前面示例中對最可能的對象位置的查詢。 雖然查詢的結構和結果是已知的,但實際的結果集将基于執行時機器人的知識來确定。

使用對知識庫的查詢作為界面,可以建立自動更改機器人知識的機器人計劃。如果示例中的機器人探索了周圍的環境并發現了一個裝有米飯和意大利面的櫥櫃,則應從那時起考慮在計算搜尋通心粉面食時應考慮的資訊。額外的知識也可能導緻選擇不同的推理技術:在考慮相似距離的地方(Schuster等,2012),在存儲相似對象的地方搜尋對象需要有關環境中其他對象的資訊。到這些位置(Kunze等人,2012)需要有關機器人位置的資訊。是以,隻有相應的資訊可用時,這些方法才會生成假設。除了提高适應性之外,啟用知識的計劃還較少依賴于具體的域或環境,因為有關對象屬性,這些對象在環境中的空間排列以及基于此來計算可能位置的推理規則的知識無需調整機器人計劃即可獨立更改所有知識。

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

使用對知識庫的查詢作為界面,可以建立自動更改機器人知識的機器人計劃。如果示例中的機器人探索了周圍的環境并發現了一個裝有米飯和意大利面的櫥櫃,則應從那時起考慮在計算搜尋通心粉面食時應考慮的資訊。額外的知識也可能導緻選擇不同的推理技術:在考慮相似距離的地方(Schuster等,2012),在存儲相似對象的地方搜尋對象需要有關環境中其他對象的資訊。到這些位置(Kunze等人,2012)需要有關機器人位置的資訊。是以,隻有相應的資訊可用時,這些方法才會生成假設。除了提高适應性之外,啟用知識的計劃還較少依賴于具體的域或環境,因為有關對象屬性,這些對象在環境中的空間排列以及基于此來計算可能位置的推理規則的知識無需調整機器人計劃即可獨立更改所有知識。

但是,為了在任務執行過程中利用這些推斷結果,機器人的知識庫需要與其感測和作用元件緊密內建。 需要對從外部世界感覺的資訊進行推斷,并已将其抽象到最合适的水準,同時仍保持與原始感覺的聯系。 這種內建,包括諸如傳感器資料中的符号知識的紮根或處理定期更新的(有時是錯誤的)資訊的能力之類的問題,是使機器人知識處理與常見的(不具體的)基于知識的系統區分開來的一個重要方面。

在本文中,我們介紹了KNOWROB,這是專門為自主機器人設計的知識庫。 作為CRAM架構的一部分(Beetz等,2010a),它與機器人的控制程式及其感覺系統內建在一起,以實作具有知識功能的控制程式。 KNOWROB是迄今為止機器人最全面的知識處理系統之一,它提供了最多樣化的知識類型集,推理方法以及與控制程式的內建(有關相關系統的比較,請參閱第11節)。 我們相信,是在一緻的架構中多種方法的結合,使我們更接近為機器人配備完成複雜的現實任務所需的全部知識。 我們看不到任何一種方法可以涵蓋此類系統的所有必需方面,同時仍然可以作為機器人控制程式的一部分有效,也就是說,在機器人操作過程中計算速度足夠快。

這項工作的主要貢獻如下:我們描述了KNOWROB的體系結構和設計決策,這些知識和構想形成了一個知識處理系統,該系統可以作為機器人控制系統的一部分在實際應用中運作。廣泛的KNOWROB本體将機器人技術和家庭領域概念化,并提供詞彙表以連貫的格式描述事件,時間資訊,動作,複合任務,動作參數,對象,時空資訊,過程以及機器人元件,以及能力。我們提出了“虛拟知識庫”的概念,将其作為在機器人内部資料結構及其感覺資訊之上建立符号層的技術。它允許邏輯推理,同時将原始資料結構保留在背景,以確定抽象概念基于較低級别的資料。我們進一步提出了不同的知識擷取技術,以利用從人類活動的觀察結果或Internet上的來源獲得的資訊來填充知識庫。

為了評估其性能,我們将知識處理系統視為可以使機器人控制程式做出更好決策的資源。 是以,我們根據其可以回答的查詢範圍,結果的重要性以及在機器人操作上引起的延遲來衡量其品質。 系統應該能夠回答啟用機器人的查詢類型

  • 為成功執行模糊任務(例如“擺好桌子”)提供知識前提;
  • 在給定情況下,為特定任務連結适當的感覺,推論和執行機制;
  • 确定執行任務需要哪些資訊以及如何擷取它們。

系統的所有軟體元件,本體和模型均已作為開源代碼1釋出,并已在其他多個研究機構中使用。 KNOWROB系統已用于多個內建實驗中,例如,為機器人提供了制作薄煎餅所需的資訊(Beetz等,2011),以推斷在不完整的桌面設定中缺少了哪些對象(Pangercic等,2011)。 (2010年),或者用于在機器人之間交換有關飲料服務任務的資訊(Tenorth等,2012)。

本文的目的是深入解釋如何将不同的元件內建到KNOWROB系統中以及導緻該體系結構的設計決策。 是以,我們不考慮諸如計劃的生成和執行,運動的計算或生成機器人将站立或放下物體的合适位置等方面。 這些問題由我們的CRAM機器人體系結構的其他元件解決,Beetz等人對此進行了更詳細的描述。 (2012)。 其他相關論文讨論了從網際網路(Tenorth等,2011)和對人類活動的觀察(Beetz等,2010b)中擷取知識。 為了使本文的長度合理,我們無法提供每個方面的詳細技術說明,但是請參考有關單個元件的先前出版物以及所釋出源代碼的文檔,以擷取更深入的技術資訊。

在本文的其餘部分中,我們進行如下操作。首先,以一個示例場景來說明如何在我們的系統中使用知識庫,因為許多設計決策都受此影響。然後,我們讨論設計注意事項,并介紹構成KNOWROB系統基礎的“虛拟知識基礎”範式。以下各節概述了KNOWROB的主要元件,解釋了選擇Prolog作為知識表示和推理的語言,并描述了百科知識如何提供一般詞彙,進而提供了從各種來源連結知識的架構。我們繼續使用不同的推理技術以及将感覺資訊內建到知識庫中的技術。對在機器人之間交換知識的知識擷取方法和技術的簡要概述補充了本文的介紹。最後,我們将對使用該系統的綜合實驗進行說明,并與相關工作進行比較,并讨論KNOWROB的優缺點。

2. 機器人的知識處理

在本節中,我們首先說明對機器人知識基礎有很大影響的用例,這些知識對系統的整體設計有很大的影響。 然後,我們在介紹作為系統基礎的“虛拟知識庫”範式之前,讨論有關知識表示和機器人應用推理的一般設計注意事項。

2.1 知識處理的示例用例

讓我們考慮一個需要在飯後清理廚房的機器人。 由于這是家用機器人的常見任務,是以我們希望機器人将配備各種計劃,使它們能夠在各種情況下可靠地執行這些任務。 CRAM系統中的計劃以非常通用的方式指定,并制定控制決策,這些決策需要作為推理任務,由機器人的知識庫在執行時回答。

整理計劃的總體結構可以描述為:“對于桌子上的所有對象,請将它們放在它們所屬的位置”。 下面的僞代碼計劃說明了此示例; 對知識庫的查詢突出顯示:

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

 雖然非常籠統,但這樣的說明也很模糊,并且包含許多未指定的方面。 但是,丢失的資訊通常隻能在任務執行期間擷取:例如,在機器人檢視桌面之前,不會知道要放置的實際對象集。 這些對象的目标位置需要根據對象的類型,它們的狀态(例如幹淨或肮髒)和任務的此步驟(例如飯前或飯後)的環境來選擇。 如果根據機器人的知識庫和信念狀态推斷出任務參數和控制決策,則可以基于最新資訊。

在此示例中,機器人将開車到桌子上,檢測一瓶牛奶,然後推斷這是需要丢棄的“桌子上的物體”之一。 這将導緻物體放置在适當的位置,并得出結論,牛奶需要冷卻,是以屬于冰箱。 由于目标位置在容器内部,是以放置對象的例程需要從語義環境圖中讀取的有關容器搖桿及其關節模型的資訊。

由于特定于域和環境的方面不在機器人計劃之列,是以使用相同查詢的相同任務定義可用于各種整理任務,例如在廚房,超級市場或機械工廠中的房間。控制程式提出的問題始終是相同的:哪些東西需要收起? 該對象屬于哪兒? 如何打開那個容器? 變化的是會影響結果集以及如何生成這些結果的上下文(例如,用于推斷食物,書籍或手工工具的目标位置的不同規則集)。

結果,當程式員設計一個計劃時,查詢的類型和結構是已知的,這具有幾個含義:首先,可以優化查詢,例如查詢。 通過以連接配接的限制性最強的部分首先出現的方式對它們進行排序(類似于資料庫查詢優化中的聯接重新排序); 其次,可以通過選擇适當的查詢謂詞來選擇要使用的推理機制,以便程式員可以決定是否使用昂貴的技術,例如機率推理。 最後,可以使用例如索引技術針對常見查詢類型優化知識庫的内部表示。

是以,與其他知識庫(例如SQL)(ISO / IEC,2008)或資料日志(Ceri等,1989)類似,我們将知識庫主要用作資訊檢索的工具,以推斷操作參數的值。 例如ORO(Lemaignan等,2010),它定期計算可用知識的完整演繹閉合,其主要任務是檢查狀态的屬性,即狀态是否屬于某個類别。

這種方法導緻更可預測的使用模式,并且回溯通常很淺。 這可能導緻大量的加速,進而有可能在(實時)實時設定中将知識庫用作機器人控制程式的一部分,并且還允許對標明的問題使用昂貴的推理技術,因為程式員可以控制要使用哪種技術來回答查詢。

2.2 設計注意事項

在下文中,我們将确定我們認為對于知識處理系統具有重要意義的幾個屬性,以便成為自主機器人的有用資源,并說明我們如何解決這些問題。 本文着重于與架構有關的問題以及知識庫與機器人控制系統的內建。 自主服務機器人的知識處理系統應滿足以下條件。

  • 它必須提供一個詢問服務,機器人可以在其中記錄經驗和信念,并可以從中查詢從存儲的知識推斷出的資訊。 Ask接口在任務執行期間用于決策和推斷動作參數化,而Tell接口則用作語義記憶,使機器人能夠推理其經驗。 由于機器人的知識不是靜态的,是以系統必須支援知識庫的定期更新。
  • 它必須作為機器人控制系統的一部分而有效地運作。一方面,這是指将從機器人元件獲得的資料與知識庫中的抽象資訊進行內建。另一方面,這也意味着産生足夠快的答案而不會減慢機器人的操作。為了實作這些(軟)實時功能,推理方法的表達性和有效性需要仔細權衡,這通常意味着犧牲表達性以利于實用。例如,我們選擇了機率推斷技術與(否則為确定性)知識庫的較淺的內建(有關詳細資訊,請參見第6.3節)。雖然成熟的混合推理将允許機率知識與機器人具有的所有确定性知識的靈活組合,但它也是一個非常棘手的問題,無法在實時環境中有效使用。是以,我們選擇了表達較少,但更為實用的方法來從KnowRob系統中讀取資訊,在這個平坦的知識庫中進行機率推斷,然後将結果傳遞回KnowRob。
  • 它必須提供自然任務規範所提供的資訊與機器人成功完成任務所需的知識之間的差別。例如,要正确執行使用刮鏟翻轉薄煎餅的指令,機器人必須知道要握住刮鏟的搖桿,僅将其刀片推到薄煎餅下,并且必須運動參數化後可以安全地提起煎餅。所有這些資訊都是隐式的,是以必須由機器人進行推斷。盡管在動作和物體之間的這種知識在某種程度上類似于提供能力(Gibson,1977),但它還包括有關物體部分的符号知識,用于選擇抓握的幾何知識,用于識别物體的感性知識以及與體驗和動作相關的知識。選擇合适參數的知識。除了象征性知識外,機器人還需要連續值的資訊:通常不足以推斷可以到達某個物體,但是機器人需要驅動坐标才能到達該物體。所有這些資訊都是互相關聯的,需要結合起來以回答機器人的查詢,是以需要以連貫的格式表示。
  • 它必須提供一個百科全書知識庫,該知識庫定義并指定了自主機器人控制所需資訊的适當概念。在包括哪些概念以及如何描述它們方面,概念化與主要為自然語言解釋建立的其他概念化不同。 Cyc(Lenat,1995)和SUMO(Niles and Pease,2001)等進階本體将雞蛋指定為鳥類和魚類的産品,也許包括其營養成分,但是缺乏操縱所必需的知識,例如雞蛋容易破碎的資訊。 。機器人的知識表示必須包括此類與動作有關的知識。是以,用于自主機器人的知識表示必須特别豐富,它們表示動作,事件,過程,情況,動作效果和後果,失敗,動作的知識前提等的方式。從網絡自動提取本體的最新方法,例如例如NELL(Carlson等,2010)和TextRunner(Banko等,2007),或來自百科全書,例如Wikipedia,例如YAGO(Suchanek等人,2007)和DBpedia(Auer等人,2007)面臨着相同的問題,因為這種知識對人類來說常常是顯而易見的,以至于沒有被明确指出,是以不在網絡上。嘗試通過問卷調查從網際網路使用者那裡收集常識知識(Gupta和Kochenderfer,2004年)在某些方面很有用,但仍然不夠全面也不夠深入。
  • 它必須為機器人提供自我知識。 自我知識包括有關機器人身體及其傳感器和執行器,能力,動作和計劃的知識。 給定一個動作說明,機器人應該能夠決定它是否有能力執行該動作,如果發現某項能力缺失,則可以以任何方式獲得。 與在沒有初始知識的情況下對傳感器模型(Pierce和Kuipers,1997)或機器人的運動學配置(Sturm等,2009)進行自下而上的學習相反,我們嘗試在可能的情況下利用現有資訊。 對于許多機器人,都存在詳細的工程模型,可以非常精确地描述其運動學結構(Arnaud和Barnes,2006年; Meeussen等人,2009年)。 Kunze等人(2011年)提出了一種将幾何描述與語義注釋相結合的方法,以使其可用于抽象推理。
  • 它必須使機器人了解其動作。 這包括用于預測動作結果的前向模型,以及動作的先決條件和效果的聲明性說明。 這些模型将支援機器人計劃其動作,預測未來的世界狀态以及對動作所造成的變化進行推理(Tenorth和Beetz,2012b)。 他們需要包括有關如何執行操作,可能發生的故障以及如何檢測和解決這些故障的知識。 這方面與行動計劃的工作有關,但是大多數計劃系統集中于确定要執行的行動序列以達到指定的目标狀态,而确定如何執行行動以及如何從不完整的指令中确定目标狀态的問題 通常需要更多的推論和更多的知識。
  • 它必須使機器人能夠将其控制系統和感覺系統用作知識源。 通常,抽象推理所需的資訊已經以某種形式在機器人的内部資料結構中提供,例如機器人的姿态估計,或者可以從其元件(例如感覺系統)中擷取。 為了重用這些資訊,機器人可以“監聽”控制程式并将動态資料結構記錄為動态和虛拟的知識庫(Mösenlechner等人,2010)。 知識處理系統是以充當一種“寄生蟲”,它正在重複使用和抽象化出于推理目的而最初建立用于動作執行的資料結構。 由于知識是從用于控制機器人的資料結構中及時生成的,是以抽象表示固有地基于這些資料結構。
  • 它需要提供用于(半)自動擷取和整合來自不同來源的知識的方法。我們希望手動編碼為現實應用擴充所需的大量知識将不可行,是以翻譯和導入現有知識的工具将非常重要。可能的知識來源包括人類活動的觀察和解釋(Beetz等,2010b),機器人活動的日志記錄(Mösenlechner等,2010),網絡上的任務說明和産品目錄等資源(Tenorth等,2011)。 ,常識性知識的集合,例如“開放思維室内常識”資料庫Kunze等。 (2010年),以及機器人知識共享技術,例如RoboEarth系統(Waibel等人,2011年)。為了確定高品質的資料,可能需要某種程度的人工監督和适應,才能對齊導入的本體,更正任務描述中的錯誤以及選擇要導入的資料源;但是,與完全手動擷取知識相比,我們希望此工作量少得多。
  • 它應該利用問題屬性使推理變得容易。 機器人需要解決的許多推理問題,即使不是不可行的,也很難以其最一般的形式解決。 盡管許多問題可以用表達形式主義來描述,例如馬爾可夫邏輯(Richardson和Domingos,2006)或部分有序的馬爾可夫決策過程(POMDP)(Kaelbling等,1998),但通常,可以使用利用特定問題屬性的專用推理方法來更有效地解決它們。 是以,我們将通用推理方法與專用推理和過程附件相結合,并使用Prolog作為語言。 面向查詢的處理和循環推理模式允許建立優化的資料結構,以支援對常見問題的快速推理。

2.3 虛拟知識庫範式

在KnowRob中,在資料進入知識庫之前不會将資料抽象為符号概念,因為這是文獻中的常見方法(Daoutis等,2009; Lemaignan等,2010)。取而代之的是,一旦需要抽象查詢就可以按需計算抽象表示。這使我們能夠基于最新資訊(在查詢時)執行抽象,并達到這種情況下最合适的級别。為此,我們可以使知識庫根據需要計算資訊,或者使用知識庫中已經存在的資訊,也可以将查詢轉發給希望提供更好答案的其他機器人元件。例如,感覺系統可以提供有關哪些對象目前在機器人前面的最新資訊。通過包含此類外部知識源,在查詢時,機器人的知識将擴充到其知識庫之外,進而進一步包括可以從可用知識中計算出或可以從外部資源中擷取的那些語句。

我們将那些未明确存儲但按需計算的知識部分稱為“虛拟知識庫”。 外部世界可視為機器人可以根據感覺任務向其發送“查詢”的“虛拟知識庫”。 機器人的内部資料結構也可以用作虛拟知識庫:推理所需的許多資訊已經以某種形式在用于控制機器人的資料結構中可用。 該資訊被內建到推理過程中,以便從基礎資料結構中透明地提取符号知識。

讓我們考慮一下圖2中的示例。機器人以機率分布的形式對其位置進行了估算,但是它可能需要根據符号概念進行評估,例如,當決策取決于目前位置估算的可靠性時 。 在KnowRob中,這是通過使用知識庫中稱為“可計算内容”的類和屬性的過程附件來實作的,這些過程附件描述了如何評估基礎資料結構上的各個概念。 由于抽象概念是直接從這些資料結構中計算得出的,是以它們是固有的基礎,即抽象和子符号表示形式緊密耦合且不能分開。 第6.2節更詳細地描述了可計算元素如何內建到推理過程中。

 圖2。通過在連續資料之上定義“虛拟知識庫”,可以将來自機器人控制程式的資訊(例如位置估計)內建到符号知識庫中。

此概念類似于資料庫設計中的視圖概念,可以将其定義為簡化對複雜資料表的通路。 在我們的案例中,符号知識是原始資料結構的抽象視圖,可以進行邏輯推理。 這種方法的一個結果是,我們并不認為知識庫中總是存在世界的完整公理化,因為隻有在推理過程要求時才會計算大量資訊。

3. KnowRob知識處理系統

KnowRob核心系統的知識内容和功能可以通過不同的子產品進行擴充。 圖3概述了系統結構。 它的核心元件是知識庫,該知識庫提供了用于存儲和檢索有關動作,對象,過程,時間事件,其屬性和關系的資訊的機制。 我們使用開源SWI Prolog(Wielemaker等人,2012)作為中央知識庫。 KnowRob本體在此核心系統中表示,并提供通用詞彙和表示形式,其他表示形式和推理方法也可以納入其中。

 圖3. KnowRob系統為知識的擷取和表示,知識的推理以及在機器人的感覺和動作系統中紮根提供了多個元件。

核心系統可以通過提供各種功能的擴充來擴充。首先,它們可以包含有關“微觀理論”的其他知識,這是KnowRob本體的擴充,提供了更多的詞彙和謂詞定義。微觀理論例如用于使系統适應新的應用領域,或包括諸如測量機關之類的新型資訊。其次,對推理系統進行了擴充,提供了新的推理技術。它們指定如何描述查詢,如何表示上下文,如何傳回結果以及調用哪些過程來執行實際推斷。第三,存在知識擷取的擴充,即用從其他來源提取的資訊填充知識庫。進一步的擴充為機器人的控制系統提供了接口,以更新知識庫中的置信狀态并提供知識和推理服務。用于可視化知識并與人類交流的工具可以對知識庫内容進行自省和調試。

4. Prolog作為機器人知識處理的國際語言

KnowRob使用Prolog來存儲和推理有關機器人的知識。有多種描述一階關系的邏輯語言,從通用謂詞邏輯(Frege,1879),邏輯程式設計語言(如Prolog,Sterling和Shapiro,1994),到将邏輯與機率表示相結合的語言(Getoor和Taskar,2007)。 )。所有這些邏輯方言都可以描述什麼,以及如何優雅地表達各種不同僚實。選擇具有正确表達能力的表示形式是知識表示和推理系統的重要設計決策。通常,RDF(Becket,2004)或OWL-lite(W3C,2009)等更簡單,表達較少的表示方式可以使推理更有效,通常可以保證可判定性等理想屬性。它們的缺點是,更複雜的關系可能無法用這些語言表達,或者至少不能以優雅的方式表達。另一方面,CycL(Matuszek等,2006),Scone(Fahlman,2006)或Topic Maps(ISO / IEC,1999)等非常有表現力的表示能夠對幾乎所有可以用自然語言表達的内容進行模組化,但是通常對自動推理的支援不佳。

在KnowRob中,我們選擇了Prolog作為具有中等表現力的語言,該語言将過程解釋與聲明性閱讀相結合,使程式員能夠檢查知識庫的内容。在Prolog中編寫過程的可能性可以極大地加快推理速度,并擴充純邏輯推理之外可以計算的範圍。它還促進了外部資訊源或推理引擎的內建。另一個優點是Prolog是一種相當廣泛使用的标準化語言,該語言存在教科書,課程材料和行業實力的實作。由于KnowRob中的大多數推理任務都是對動作參數的查詢,是以我們在Prolog中的使用在某種程度上類似于查詢語言,例如SQL(ISO / IEC,2008)或Datalog(Ceri等,1989)。這意味着許多用例不需要很深的回溯和複雜的搜尋過程,這就是Prolog可以在機器人的控制回路中有效使用的原因之一。

5. 機器人百科知識

百科知識是字典中常見的一種知識:對動作和對象類型的定義,例如杯子是一種容器,有提手并用于飲用液體。 從系統的角度來看,百科全書知識提供了通用,形式化,定義明确的詞彙表,用于表示可以被機器人的不同元件使用的知識。 必須共享一個通用表示,以確定由一個元件生成的資訊可以被另一個元件使用和解釋。

百科知識是常識性知識的補充,常識性知識提供了大多數人可以立即與該概念相關聯的其他資訊,例如,如果整杯杯子移動得太快,杯子可能會破裂或咖啡可能會倒出。 由于這些事實看起來如此明顯,是以通常不會明确列出它們。 但是,有一些舉措,例如開放式室内常識(OMICS)項目,試圖從自願的網際網路使用者那裡收集這些知識。 Kunze等人(2010年)描述了将資訊從自然語言轉換為邏輯表示的技術,這些資訊可用于形式化知識庫(例如KnowRob)中。

在KnowRob中,我們選擇了描述邏輯(DL)作為表示百科全書和常識性知識的形式,特别是Web本體語言(OWL)(W3C,2009),它以基于XML的檔案格式存儲DL公式。 OWL最初是為了在語義網中表示知識而開發的(Lee等人,2001),但此後已成為一種常用的知識表示格式。 DL背後的概念的廣泛概述可以在Baader等人(2007年)中找到,而對Baader等人(2008年)的介紹則簡短一些。 OWL檔案被加載到基于Prolog的表示中,并且可以使用Prolog謂詞進行查詢(有關KnowRob中OWL三元組的内部表示的詳細資訊,請參見第6.1節)。

DL區分術語知識(即所謂的TBOX)和斷言知識(即ABOX)。 TBOX包含概念的定義,例如動作,SpatialThing,PickingUpAnObject或TableKnife。 這些概念使用子類定義按層次結構排列,即所謂的分類法,這些子類定義描述了TableKnife是SilverwarePiece的一種特殊化。 ABOX包含作為這些概念的執行個體的個人,例如,刀作為概念TableKnife的執行個體。 在機器人應用中,ABOX通常描述檢測到的對象執行個體,觀察到的動作和感覺到的事件。 相比之下,TBOX描述了對象的類别和動作的類型。

角色描述一個人的屬性或兩個人之間的關系。 它們可以用于概念定義中,以将類的範圍限制為具有某些屬性的個人。 例如,概念OpeningABottle可以描述為OpeningSomething的子類,但要限制objectActedOn必須是Bottle的某些執行個體:

 由概念分類法和這些概念之間的關系組成的知識表示稱為“本體論”。 OpenCyc本體采用了KnowRob本體的上層布局,包括許多類,它們的層次結構和屬性(Lenat,1995)。 OpenCyc已經成為我們保持相容的機器人知識庫的準标準,進而促進了與其他系統的知識交換。 OpenCyc與其他知識庫之間還有許多工具和連結,例如Tenorth等人(2010b)使用的WordNet詞彙資料庫連結。 這些連結可以幫助內建來自不同來源的知識,這些知識涉及不同的上層本體。

但是,由于OpenCyc是為了了解自然語言而開發的,它是一種通用的上層本體,是以它涵蓋了廣泛的人類知識,但通常缺少機器人所需的特定領域知識,例如在移動操縱和人類日常活動。 是以,我們對Cyc進行了更詳細的描述,例如日常任務,家用物品和機器人零件。 圖4展示了KnowRob本體的最進階。 最重要的分支是TemporalThings,其中包含事件(黃色)的描述,并且作為重要的子類,包括Actions(綠色)和SpatialThings(藍色),它們描述了抽象的空間概念,例如Places和Object類。 機器人環境中的大多數對象以及家具或身體部位都包含在HumanScaleObject類下。 其他值得注意的分支是MathematicalObjects,例如Vector或CoordinateSystems(紅色)。

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

 圖4. KnowRob上層本體的布局,包括事件和時間事物(1),動作(2),空間事物(3)和數學概念(4)的主要類别。

6. KnowRob中的推理機制

KnowRob使用混合系統體系結構,該體系結構結合了多種通用和專用推理方法。乍一看,使用一種非常具有表現力的技術來存儲所有知識并得出所有推論可能看起來更優雅。不幸的是,沒有一種通用技術能夠同時适用于所有類型的問題,同時又具有足夠的表現力來為機器人提供有用的資訊,具有足夠的可伸縮性以存儲大量知識并具有足夠的速度來有效地應對各種問題。機器人進階控制回路的一部分。統計關系模型Getoor等人(2007),例如馬爾可夫邏輯網絡(Richardson和Domingos,2006)和貝葉斯邏輯網絡(Jain等人,2009)在單個知識庫中結合了機率和确定性資訊,但是在這些知識和方法中學習和推論模型通常過于複雜,以至于無法将它們用作大型機器人知識庫的唯一表示方法。另一方面,機器人技術中的許多問題都需要機率表示,是以完全确定性表示将在許多意義上受到限制。

是以,我們決定将多種技術內建到一個一緻的架構中,并僅将較昂貴的計算技術用于標明的問題。由于KnowRob中的大多數推理是為了回答程式員與機器人計劃一起設計的查詢,是以可以選擇對查詢的哪一部分應使用哪種推理技術,并優化其結構以進行快速推理。在系統中,DL知識庫用作所有推理方法的域和主幹的概念化。其他推理技術也嵌入其中,即它們接受根據DL知識庫中的概念描述的參數,并以這種格式傳回其結果。可計算的類和屬性允許将外部計算的結果透明地注入到DL推理過程中。機率推斷方法可以從DL知識庫中讀驗證據資料。可以使用專門的查詢謂詞(在DL基礎結構之外)調用它們,也可以使用可計算函數嵌入它們。

6.1 使用Prolog進行DL推理

DL中的許多推論都可以歸結為分類(計算哪些類是其他類的子類)和實作(計算個人所屬的最具體類)的問題。 這些任務通常由DL推理程式執行,例如Racer(Haarslev和Müller,2001),Pellet(Sirin等,2007)或HermiT(Shearer等,2008),它們在記憶體中維護了完全分類的知識庫。 對于機器人應用而言,問題在于知識的變化需要重新分類,這對于大型知識庫而言可能會花費大量時間。 由于機器人的知識庫不斷變化,是以可能導緻嚴重的可擴充性問題。 另一方面,将不再需要許多推斷的關系,是以根本不應計算這些關系。

是以,我們選擇了使用Prolog的基于規則的推理方法:OWL語句在内部表示為Prolog謂詞,可以将常用的Prolog推理方法應用于該謂詞。 OWL推理模式以Prolog謂詞的形式實作,例如,可以檢查個人是否遵守在類上定義的所有限制。 由于Prolog中基于搜尋的推理不受知識庫無關部分更改的影響,是以它可以優雅地處理知識更新。 作為解決方案樹中的新分支,Prolog的回溯機制自動涵蓋了來自“虛拟知識庫”的外部資訊,可以輕松地将其包含在推理中。

KnowRob中的實作基于SWI Prolog語義Web庫(Wielemaker等,2003)用于加載和存儲RDF三元組,以及Thea OWL解析器庫(Vassiliadis等,2009),該庫在這些之上提供OWL推理。表示形式。高效的内部三元存儲構成了語義Web庫的主幹。它結合了幾種索引方案(按主題,謂語,賓語及其組合),并且可以很好地擴充到大型知識庫(根據Wielemaker(2009年),在具有64GB GB記憶體的計算機上,大約三億個三元組)。一組越來越複雜的查詢謂詞在内部三元存儲的頂部運作,并為每一層添加功能。逐漸增加複雜性的好處是,可以通過選擇适當的謂詞來選擇要包含的推理量。特别是,将查詢轉發到諸如感覺系統之類的元件的可計算項可能會減慢推理過程,是以應格外小心。通常,例如在查詢開始時僅一次查詢感覺系統可能就足夠了,而随後的部分(例如,檢查感覺對象的屬性)将在知識庫的(然後更新的)靜态内容上運作。以下謂詞層次結構允許查詢個人及其屬性。我們使用rdf_triple謂詞擴充了内置謂詞集,以便将可計算項包括在推理過程中。

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

 與常見的DL推理器的重要差別是KnowRob采用Prolog的封閉世界假設:所有未知的真實假設都為假,而通常的DL語義則是開放世界的假設,即所有未明确已知的東西都為假。 如果為假,則認為是真實的。 事實證明,這對于實作機器人程式非常有用,在機器人程式中,一條資訊的不可用性本身就是重要的資訊。 使用封閉世界語義,不必廣泛描述某事物的不存在,而可以從無法證明其存在(否定為失敗)這一事實得出結論。 例如,如果機器人必須決定是可以執行任務還是缺少某些元件,它可以簡單地檢查是否知道所有必需元件都可用,否則拒絕。

6.2 可計算的類和屬性

可計算對象是OWL類或屬性的過程附件。 它們被實作為可以附加外部推理方法的基于DL的推理的鈎子。 它們接受的參數和它們生成的結果都是DL知識庫的一部分,這導緻了DL推理的完全透明的內建。 有兩種可計算對象:可計算類和可計算屬性,可計算類建立目标類的執行個體,可計算屬性計算執行個體之間的關系。

可計算對象可以附加到任何OWL關系,而無需更改其語義描述。 在圖5中,将ActionOnObject連結到SpatialThing的關系objectActedOn由其域和範圍照常模組化。 通過将二進制Prolog謂詞指定為指令,可以将一個或多個可計算屬性連結到要由其目标屬性計算的屬性,進而定義如何計算此關系。 通過目标屬性附加可計算項将要計算的OWL關系的語義屬性與定義如何最終計算這些關系的實作方面分開。 它也有助于系統的子產品化,因為可計算定義可以在運作時輕松地加載和解除安裝。

 圖5.可計算的屬性computeObjActOn附加到OWL屬性objectActedOn上,并在程式上描述如何計算此關系。

可計算産品的一個重要用例是從現有資訊中計算新語句,例如定性的時間或空間關系,例如“期間”或“之上”。在内部,KnowRob将對象的姿勢和時間執行個體存儲為數值。可以使用計算機根據這些值計算定性關系。由于僅計算了回答查詢所需的那些關系,是以該方法避免了由于存儲對象之間所有可能的成對關系而引起的組合爆炸,同時仍然允許對時間和空間資訊進行定性推理。另一個用例是外部資料源和知識擷取方法的透明內建,例如用于從Web讀取任務指令(第8.1節)或從感覺系統讀取對象檢測(第7節)。如果存在适當的可計算定義,則當查詢涉及各個概念時,将自動查閱這些外部資訊源。

盡管在大多數情況下自動包含計算和知識擷取非常有幫助,但可能并不總是希望如此。 是以,我們允許使用者通過從第6.1節中引入的查詢謂詞層次結構中進行選擇,來決定是否包括可計算内容來回答查詢。 另外,可以在運作時通過(解除安裝)它們的定義來全局(取消)激活某些可計算項。

6.3 機率推斷

機器人經常遇到的事實要麼不确定,例如不确定的傳感器資訊,要麼僅在一定程度上真實,例如不确定的人類喜好。統計模型已成為表示此類不确定資訊的機器人技術中不可缺少的工具(Thrun等人,2005),例如,通過使用粒子濾波器表示機器人位置上的機率分布,進而解決了定位和制圖問題。盡管這些模型非常适合描述有關具體實體的機率資訊,但是通用原理的表示以及關于對象類型或對象之間關系的知識要求一階表示具有更大的表現力。統計關系模型(Getoor和Taskar,2007)将一階邏輯表示的表達能力與統計模型表示不确定資訊的能力結合在一起。邁向關系模型的過程相當于從命題邏輯到一階邏輯的過渡:這些模型能夠從領域中的具體實體中抽象出來,并代表也可以在不同情況下應用的一般關系知識。為了有效地進行推理,機率模型需要緊湊地表示機率分布。圖形模型是已建立的解決方案的問題。是以,許多統計關系模型被實作為無向的擴充(例如,馬爾可夫邏輯網絡(Richardson和Domingos,2006))或有向圖形模型(例如,多實體貝葉斯網絡(Laskey,2008)或貝葉斯邏輯網絡(Jain等, 2009)),是以可以利用針對這些基本表示形式開發的推理方法。

高表達能力與不确定性表示的結合使統計關系模型非常适合自主機器人所處的不确定,部分可觀察和動态環境,當模型變大并且包含許多執行個體之間的複雜關系時,此類模型的推論可能會變得非常困難,甚至難以解決。 精确的推論極難處理,盡管存在各種近似的推論技術(有關介紹,請參見Bishop(2006)),但其适用性取決于推論問題和模型結構。 由于這些原因,KnowRob中的統計關系模型僅用于需要表示不确定關系的標明問題。 程式員的任務仍然是設計和訓練合适的模型,選擇和測試合适的推理算法,并在查詢中指定應使用機率模型。

通過內建ProbCog庫,可以在KnowRob中實作統計關系學習方法。 ProbCog為內建在通用架構中的Markov邏輯網絡和Bayes邏輯網絡提供了多種學習和推理算法。圖6描述了如何從技術上實作內建。 ProbCog中的統計關系模型各自形成一個機率知識庫,可以從KnowRob進行通路。将這些知識庫與KnowRob內建是一項艱巨的任務:系統需要确定使用哪種統計模型來回答哪個查詢(謂詞可能出現在不同的模型中,盡管某些謂詞可能更适合于推斷其價值)。兩個知識庫中的謂詞可能具有不同的辨別符和語義,并且推理結果需要以某種方式進行處理以在KnowRob上下文中使用,例如,通過選擇最可能的解決方案或疊代按其機率排序的所有結果。在提出的解決方案中,可以使用Prolog謂詞以靈活的方式定義這些方面。每個ProbCog模型都有一個對應的KnowRob子產品,模型設計人員可以在其中編碼可以回答哪些查詢,在系統之間如何轉換謂詞,要使用哪種模型以及是否應使用開放世界或封閉世界推斷。在一個簡單的情況下,兩組謂詞之間的映射可能都是微不足道的,并且預設模型可用于所有推斷。在更複雜的情況下,映射可能會變得非常複雜,并且選擇合适的模型時會考慮到查詢謂詞集和執行上下文。

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

 圖6.将ProbCog推理系統內建到KnowRob知識庫中。 兩組查詢謂詞在兩個系統中的謂詞之間轉換,定義機率推斷的參數并确定如何進行結果處理。

使用probcog_query謂詞(圖6的左上方)發送來自KnowRob的查詢。在開始推理之前,使用具體域執行個體化抽象統計關系模型,并設定證據值。使用包裝謂詞從KnowRob讀取此資訊,該謂詞将ProbCog模型中的謂詞轉換為對KnowRob知識庫的查詢。這些謂詞可以利用KnowRob的所有功能,包括DL推理或可計算屬性。在第10.4節所述的實驗中,例如,我們使用了KnowRob的界面來識别對象的方法,以讀取表上感覺到的對象集作為機率推斷的證據。然後,在機率知識庫中完全執行推斷。完成後,結果将作為具有相關機率的值清單傳遞回KnowRob。然後,可以進一步處理這些結果,以在知識庫的确定性部分(例如,知識庫)中使用。選擇最可能的解決方案,或傳回按其機率排序的所有解決方案。

機率推理方法也可以包裝到可計算的内容中,以便在需要相應的資訊時自動執行它們。 雖然可以存儲推斷出的機率(例如,作為對象應該在桌子上的機率),但它們不會通過後續的(非機率)推斷步驟進一步傳播。

7. 界面感覺

每當機器人與對象互動時,它們都需要推理其屬性,推斷在何處找到它們,如何操縱它們或将它們放置在何處。 做出這些決定需要機器人将其有關對象類型的抽象知識應用于環境中存在的實體對象。 是以,知識庫需要連結到感覺系統,以便被告知在哪種姿勢下已檢測到哪種類型的物體。

存在以不同方式接口的不同種類的機器人感覺系統:某些感覺方法按需執行識别,其他感覺方法對傳入的傳感器資料流進行連續操作。 在前一種情況下,與知識庫的通信是使用基于請求-響應的方案同步執行的,在後一種情況下,是通過被動偵聽已釋出的對象檢測來異步進行的。 實作這些接口的方法可以在knowrob_perception包中找到。

圖7可視化了兩種界面。 在同步通信的情況下(左上),使用可計算解決了與KnowRob的內建:定義了具有适當目标的可計算類,隻要查詢涉及相應類型的對象,該類就會自動調用。 然後,可計算元件将請求查找此類對象的請求發送給感覺系統,并為結果集中傳回的所有檢測到的對象建立對象表示。 盡管可計算對象通常是相當通用的類,可用于一次檢測幾種不同類型的對象,但生成的對象執行個體将具有由對象識别系統确定的特定類型。 例如,Willow Garage使用這種接口從tabletop_object_detector5中讀取資訊。

KnowRob: A knowledge processing infrastructure for cognition-enabled robots

 圖7.基于可計算和同步通信(左上)或通過偵聽對象檢測(異步通信,左下)的知識庫和感覺系統之間的兩種接口。 兩種系統都在知識庫(右側)中建立相同的對象姿态表示,該表示形式存儲了每次檢測對象的感覺方法,時間點和姿态。

第二種接口,使用異步通信,偵聽所有感覺結果并将其添加到知識庫中。 該偵聽器在與KnowRob引擎并行的單獨線程中運作,接收在該主題上釋出的所有對象檢測,并為它們建立各自的感覺執行個體(圖7的左下方方框)。 例如,第二種界面用于從CoP視覺系統(Klank等,2009),K-CoPMan系統(Pangercic等,2010)和RoboEarth對象識别元件(Marco等,2012)中讀取資訊。

除了識别對象的姿勢外,知識庫還應該提供有關所有對象都可以被識别的資訊,即機器人具有适當識别模型的對象。 KnowRob維護一組可用的對象識别模型的内部表示,該模型允許推理出可以識别哪些對象。 意識到這些識别功能對于評估計劃是否可以成功執行或是否需要擷取其他模型非常重要。

請注意,KnowRob不會觸發要求機器人移動的感覺機制。 我們決定,隻有機器人的執行人員才可以調用更改機器人實體狀态的動作,因為它可以最佳地評估某個動作的副作用是否會幹擾正在執行的另一個動作。 例如,在執行重要的操作任務時,不應指令機器人将視線移開。 盡管KnowRob無法主動啟動這種主動的感覺動作,但它仍可以處理執行者啟動的動作的結果(如果以可通路的方式釋出這些動作的結果),并将其包含在知識庫中。

8. 擷取知識

前面的部分介紹了KnowRob的知識處理基礎結構及其表示和推理方法。 為了将這些方法用于機器人應用,必須用内容填充表示形式,并提供機器人勝任地完成日常操縱任務所需的大量知識。 對于要在現實條件下運作的大規模系統手動編碼此知識将是一項艱巨的任務。 是以,我們探索了從現有資源中自動擷取知識的方法。

一種有用的資源是最初為人類建立的網頁,可以從中提取資訊。 例如,wikihow.com和ehow.com提供了成千上萬的分步說明,适用于從清理到設定表格的各種日常任務。 食譜資料庫(例如epicurious.com)包含大量烹饪食譜。 線上商店提供有關對象外觀和屬性的資訊。 使機器人能夠利用這些知識源将幫助他們更快地朝自然人類環境中的實際任務擴充。 在本節中,我們将簡要描述在KnowRob中實作的一些技術,并參考相應的出版物以擷取更詳細的描述。

8.1 導入自然語言任務說明

Tenorth等人(2010b)描述了一種将自然語言任務指令轉換為機器人計劃的方法,該方法包括以下步驟。 首先,使用通用的自然語言解析器(Klein和Manning,2003)對句子進行解析,以生成指令的文法樹。 然後将樹的分支遞歸合并為更複雜的描述,以建立指令的内部表示,這些指令描述了動作,所涉及的對象,位置,時間限制,要使用的配料量等。通過首先在WordNet詞彙資料庫中查找其含義(Fellbaum,1998年),然後利用WordNet與Cyc之間的映射關系(Lenat,1995年),将原始文本中的單詞解析為機器人知識庫中的概念。 KnowRob分類法的大部分都與Cyc本體相容,是以可以直接利用這些映射将自然語言單詞連結到KnowRob中的概念。

任務規範的自動導入有助于快速擷取執行任務所需的動作和對象的形式描述。 盡管在許多情況下,指令結構通常與指令性語句相似,這有助于自動處理,但是,對這些指令的完整了解将需要解決(非常困難)一般的自然語言了解問題。 特别是長句子和複雜的文法結構仍然會在初始解析步驟以及後續處理階段引起問題。 是以,我們認為這些方法主要是為了幫助程式員從現有資源中快速生成最初的規範草案,然後可以對其進行擴充和調試。 在這種情況下,程式員還可以選擇要導入哪些網站和哪些指令以確定資料品質。 系統的源代碼位于comp_ehow軟體包中。

8.2 生成産品知識庫

為了執行這些抽象的任務描述,機器人需要将所包含的對象引用與環境中的實體對象相結合。 這需要有關其外觀的資訊以用于識别,還需要有關其屬性的資訊,以便在環境中定位它們并正确處理它們。 可以從線上商店提取有關對象外觀及其屬性的資訊,這些商店的産品目錄中列出了大量帶有圖檔和結構化描述的對象。 Pangercic等人(2011)描述了基于産品圖檔的物體識别方法,Tenorth等人(2011)描述了從線上商店建立産品本體。 通常需要進行一些手動調整,以将生成的本體與現有本體進行對齊,但是至少對于建立現有類的詳細分支的用例而言,這僅包括添加一些子類聲明。

8.3 從人類觀察中提取知識

雖然網際網路對于可以口頭表達的資訊非常有用,但是還需要從其他來源獲得其他類型的知識,這些知識位于更遠的位置(例如,特定環境中的位置)或具有連續價值的知識(例如,運動)。 通常,對人類在環境中執行類似活動的觀察可以提供此類資訊。 通過機器人的動作和與之互動的對象,機器人可以了解他們如何執行任務,使用的位置或動作期間的移動方式。 圖8示例性地示出了可以提取的資訊,例如人的姿勢,被分割和分類的手軌迹,在任務中起特定作用的位置或人與之互動的對象。 要将觀察結果與其他知識整合在一起,必須将其與機器人知識庫中的符号資訊相關聯進行設定。

 圖8.觀察人類活動的示例用例 左:運輸任務的分段軌迹和分類軌迹。 右:語義标注的資料,例如人類用來拾取物體的姿勢和位置。

Beetz等人(2010b)提出了跟蹤人體運動并将其細分為片段的技術,這些片段在機器人知識庫中表示為動作類的執行個體。 通過應用有關動作組成的知識,建立觀察到的活動的結構化和語義注釋的表示,可以将這種正式的動作表示抽象為分層的任務模型。 由于觀察結果是使用與機器人動作相同的本體描述的(作為用于機器人計劃的動作類的執行個體),是以它們可以很容易地被機器人用作計劃其動作的知識來源。 查詢可以組合符号和子符号資訊,例如用于讀取在給定任務上下文中用左手到達的所有軌迹。

9. 交換知識

盡管在上一節中做了很多努力,但是知識的擷取仍然是一個複雜的過程,通常隻能部分自動化。 但是,一旦以機器人可以了解的格式獲得了一些知識,就應該可行地進行交換以使其可用于其他機器人。 建立一個可用于在機器人之間交換資訊的基于Web的知識庫是RoboEarth項目的目标(Waibel等,2011)。 KnowRob知識庫是該系統提供知識表示和推理服務的核心元件。 與RoboEarth系統進行互動的庫也可以作為開源軟體獲得。

需要表達表示以使資訊的自主交換成為可能:首先,它們需要對要交換的資訊進行編碼,即對動作或對象類的描述。此外,他們還需要支援機器人查找和選擇資訊:下載下傳任務描述之前,機器人應確定它具有所有必需的功能,并檢查是否需要其他元件,例如對象識别模型。要使該資訊選擇過程自動化,需要形式化的表示和注釋,這些描述和注釋描述了要使一條資訊可用需要滿足哪些條件。機器人可以将RoboEarth中任務說明的要求與其自身元件和功能的形式模型進行比對,以驗證所有必需元件是否可用。如果缺少軟體元件,則機器人可以例如加載更詳細的任務規範,對象模型或環境圖。盡管此過程不能保證成功執行任務(由于各種原因仍然可能失敗),但它至少可以基于與可用任務有關的所有資訊來計算機器人是否具有所有必需的資訊。

10. 評估和實驗

評估機器人的知識處理系統是一項複雜的任務,到目前為止,既沒有基準,也沒有評估方法。 在機器人上使用知識處理技術有其特定的挑戰,這些挑戰通常不同于人工智能研究中通常研究的經典的,純粹的符号推理問題。 這些挑戰的一部分與在實體系統上使用方法有關,其他挑戰則由複雜的場景提出。

由于機器人在現實世界中行動,是以它們的知識庫必須實時運作并足夠快地計算結果,以免減慢機器人的其他元件的運作速度。符号知識庫需要以機器人的感應和緻動方法為基礎,以使機器人能夠推理出其感覺到的物體及其執行的動作。知識庫中抽象定義的動作需要連結到機器人上可執行動作元件的參數化,并且機器人必須能夠處理其傳感器提供的不确定和不完整的資訊。在複雜現實場景中的應用程式在可伸縮性,表達性,全面性和實用性方面都具有挑戰性。知識表示需要具有足夠的可伸縮性,以在類級别(例如,級别)上處理大量知識。用于在執行個體級别上描述大量對象類型,例如存儲長時間記錄的所有物體觀測值。

很難以幾個總數來捕獲所有這些方面。 是以,我們通過不同方法的組合來評估系統的品質:對系統的可伸縮性及其響應時間進行定量評估。 描述了三種複雜的使用場景,以顯示我們系統的不同元件如何有助于解決現實任務。 然後,我們将開發的系統與文獻中的其他機器人知識庫進行比較,以了解它們的功能,并讨論我們目前實施方式的局限性。

10.1 可擴充性和響應能力

為了評估系統的可擴充性,我們使用内部對象表示進行了測試。 對象的表示是更複雜的描述之一,因為它由對象執行個體組成,并且對于對象的每次檢測都包含一個4××4的姿态矩陣和一個描述感覺事件的執行個體。 同時,它是最重要的資訊之一,因為對物體的新穎檢測是在機器人操作期間不斷出現的一種資訊。 我們建立了一個測試程式,該程式在循環中建立大量對象檢測,對應于對該對象的數千(虛拟)感覺。

我們用多達65,000個感覺執行個體對系統進行了測試,這些執行個體對應于整整一周的時間,在此過程中,機器人每十秒鐘連續檢測一次物體。 圖9可視化了建立新執行個體(藍色方形标記)所需的時間。 它與它們的數目成線性比例,可以在大約2.88秒内建立65,000個對象檢測。 是以,用于建立對象執行個體的最大幀速率約為每秒22,000次檢測,對應于每秒170,000次三元組。 作為比較,有關ORO知識庫的論文(Lemaignan等人,2010年)給出了每秒7,245個三聯的速率。

 圖9.大量物體感覺(藍色方形标記)的建立與物體的數量成線性比例,并且即使在65,000次觀察中也處于幾秒鐘的範圍内。 對于最新感覺(橙色三角形)的查詢對于線性實施而言是線性的,但是可以使用優化的資料結構在恒定時間内實作。

橙色三角形描述查詢對象的最新檢測所需的時間。 對于這些測試,我們使用了一個簡單的實作,該實作将一組在不同時間點的對象檢測附加到對象執行個體。 雖然這是以邏輯形式描述關系的直接方法,但是優化的實作将感覺存儲在連結清單中,并帶有指向其頭部的指針,可以将查詢最新檢測的時間減少到10-20的恒定時間 多發性硬化症。 這顯示了對常見查詢模式(例如,最新檢測到的對象)進行優化的潛力。

65,000個對象感覺對應于知識庫中的490,000個三元組。 我們已經在普通筆記本電腦(Intel Core 2 Duo P8600、2.4 GHz,4GB GB PC3-8500 RAM,Ubuntu 10.10 32位)上測試了大約700萬個三元組,而沒有明顯減慢其他程式的速度或建立新的三元組。 490,000個三元組将整個Prolog過程的記憶體消耗從16.5 MB增加到47.8 MB。 根據底層三元組商店的作者的說法,在高端商品硬體上,它可以擴充到幾億個三元組(Wielemaker等,2012)。

盡管這些實驗表明可以存儲和處理擴充實驗室實驗所需的合理數量的知識而不會出現問題,但目前系統的可伸縮性僅限于單台計算機可以處理的内容。 還有一些推理任務比底層三重存儲的可擴充性差。 時空索引技術将有助于對大量知識進行更有效的推理。 諸如記憶體中短期記憶體和基于磁盤的長期記憶體之類的記憶體級别層次結構将提高存儲方面的可伸縮性。 将資訊移到長期存儲器中時,也可以将其壓縮,例如僅記住資訊何時已更改。 為了進一步擴充,随着我們開始在RoboEarth項目(第9節)中進行調查,可以将基于雲的知識庫添加為另一層背景知識。

10.2 基于知識的任務執行

在Beetz等人(2011)提出的實驗中,兩個機器人使用wikihow.com的指令制作了煎餅,以生成機器人計劃。 KnowRob知識處理系統用于從Web指令生成計劃,并将抽象指令置于機器人的感覺和動作系統中。 為了執行指令,将動作映射到機器人上的計劃,将對象規範解析為實體對象,然後由機器人決定在哪裡搜尋這些對象。

10.2.1 根據Web指令生成計劃

說明中指定了成分,牛奶和準備好的煎餅混合物,以及一系列操作步驟:

1. 從冰箱裡取出薄煎餅混合物;

2. 加400毫升牛奶(至标線),搖晃瓶頭1分鐘; 讓煎餅混合物靜置2-3分鐘,然後再搖一搖;

3. 将混合物倒入煎鍋;

4. 等待3分鐘;

5. 将薄煎餅翻轉過來;

6. 等待3分鐘;

7. 将薄煎餅放在盤子上。

使用前面描述的将指令轉換為機器人計劃的技術,生成了正式的任務規範,然後将其轉換為以下機器人計劃:

 上面的代碼顯示了從Web指令生成的CPL計劃語言的粗略計劃(Beetz等,2010a)。 聲明部分為指令中引用的對象建立實體訓示符。 訓示符由文章(确定的或不确定的),實體類型(對象,位置,東西等)和一組屬性-值對組成。 填充物是指均質的東西,例如水,牛奶等。反引号運算符訓示後面的塊不應視為代碼,而逗号(在該塊内部)則相反。 然後,将訓示步驟本身指定為要實作的目标序列,這些目标是指先前定義的訓示符。 是以,該計劃不是指定采取煎餅混合物的動作,而是指定将煎餅混合物放在手中的目标作為其相應的計劃步驟。

從Tenorth等人(2010b)的評估中可以看出,進口商正确地翻譯了48%至80%的說明。 主要問題是由解析器無法正确處理的複雜句子引起的,或者與具有多種含義的單詞錯誤消除歧義有關。 是以,我們将這種技術視為對程式員的一種幫助,該技術将以半自動方式而不是完全自動化的程式來使用。

10.2.2 推斷在哪裡搜尋對象

在家庭環境中,對象通常存儲在諸如櫥櫃或抽屜之類的容器中,是以機器人必須先搜尋它們才能使用。 為了快速找到所需的對象,機器人應該首先在最可能的位置搜尋對象。 我們的機器人使用環境的語義3D對象圖,其中對象的結構化模型(例如由容器,門,把手和鉸鍊組成的櫥櫃)與對象的一階符号描述相關聯,這些描述主要來自于 機器人的百科全書知識庫(Pangercic等,2012)。

有多種可能性來推斷對象的可能存儲位置。 如果機器人知道某些對象的位置,則可以基于它們與已知對象的語義相似性來計算新穎對象類型的位置(Schuster等,2012)。 如果沒有此類資訊,則可以使用抽象規則,例如“冰箱是易腐爛物品的存放場所”。 通過将其有關對象屬性的知識(以推斷手頭的對象是否易腐爛)與語義環境圖(以定位冰箱的執行個體)相結合,知識處理系統可以計算在哪裡搜尋對象。 圖10可視化了這些推斷步驟。 如第8.2節所述,右側的本體部分是由germandeli.com線上商店生成的。

 圖10.推理步驟來推斷一瓶煎餅混合物的可能存儲位置。 此示例基于類級别的斷言,即冰箱是用于易腐物品的storagePlaceFor。 右側的本體片段是從線上雜貨店的網站自動生成的。

盡管這些不同的方法可以共存于知識庫中并獨立生成位置假設,但是不同推理機制的結果的內建仍然是一個懸而未決的問題,尤其是當它們産生沖突的結果時。 一種直接的選擇是信任某些方法,例如,一種使用有關相似對象的資訊的方法,而不是例如基于通用類級别規則的方法。 另一種選擇是像Kunze等人(2012年)那樣使用基于實用程式的方法來組合結果,以決定首先要搜尋的位置。

10.2.3 以知識為基礎的方法的重要性

盡管使用正常控制程式的“知識貧乏”機器人系統可以在特定任務上産生類似的行為,但使用知識支援方法的優勢在于靈活性和适應性的提高:可以将現有原始動作組合起來輕松建立新穎的任務,并根據環境模型自動推斷其參數。 如果環境發生變化,則無需修改計劃,因為與環境相關的推理在知識庫中集中進行,并由空間環境模型進行參數化。

10.3 機器人之間交換資訊

我們進一步研究了交換任務相關知識的技術如何使機器人能夠在以前未知的環境中執行移動操作任務(另請參見Tenorth和Beetz(2012a))。 實驗是在兩個地點使用兩個不同的機器人平台(PR2和Amigo機器人)進行的。 機器人将在醫院病房的床上為患者提供飲料,即首先在環境中找到一個瓶子,打開封閉櫃,将其撿起,移交給患者,然後移交給瓶子 。 PR2首先執行任務,進而估計包含瓶子的櫥櫃的鉸接模型。 然後,此資訊與Amigo機器人共享,後者可以使用該模型在不同位置打開相同類型的機櫃。

僅向這兩個機器人發出了“提供飲料”指令以及它們在其中工作的環境的位址。僅基于此資訊,這些機器人就成功下載下傳了任務所需的所有資訊。 另外,他們還配備了諸如導航或抓握之類的基本動作的計劃,以及用于例如識别物體的軟體。 但是,在實驗之前,沒有任何涉及對象的模型,也沒有任何環境圖,也沒有任何可用的特定于任務的資訊。 這些資訊需要從RoboEarth知識庫中下載下傳,并且必須以機器人的感覺和動作系統為基礎。 KnowRob系統在實驗的以下部分中做出了貢獻:

  • 任務說明,環境模型和對象模型的正式表示形式,包括有關它們的組成部分和連接配接特性的資訊;
  • 從中心RoboEarth知識庫下載下傳任務說明和其他資訊;
  • 使“喝一杯”規範的要求與機器人的功能相比對,識别并下載下傳缺少的元件;
  • 運作時知識庫将執行人員與感覺和世界模組化元件接口,為執行人員提供有關要執行的動作及其參數,對象位置的資訊。

圖11的上部顯示了從RoboEarth下載下傳的環境圖。 根據這些地圖,機器人(圖11的底部)可以導航到适當的位置并找到任務所需的對象。 根據給定的指令下載下傳了任務說明,然後将其與機器人的功能進行了比對:結果是所有必需的功能都可用,但是缺少任務中提到的某些對象的識别模型(即瓶子和床) ),已下載下傳,包括圖11所示的CAD模型。

 圖11.頂部:根據位址和房間号從RoboEarth下載下傳的兩個醫院房間的語義環境圖。 底部:PR2和Amigo機器人打開櫥櫃并拿起要飲用的飲料。

到目前為止,RoboEarth系統僅用于交換符号任務描述,這些描述不提供有關運動,力或加速度的資訊。 在我們目前的研究中,我們緻力于将表示形式擴充到可以由運動控制器解釋的限制條件下的較低層資訊(Kresse和Beetz,2012年)。 工作的另一個方向是如何将其他機器人建立的本體片段合并到知識庫中,尤其是在與局部修改有重疊的情況下。 在目前環境下,此類本體對齊技術(Euzenat等,2011)尚未成為系統的一部分。

10.3.1 以知識為基礎的方法的重要性

特别是在知識交流的背景下,明确的表示非常重要。 正常控制程式不會“知道”它在内部資料結構中擁有的知識,并且無法将該知識提取為其他機器人可以使用的格式,除非已針對此任務進行了明确修改。 沒有明确知識的機器人也無法檢測到丢失的知識,無法“解釋”基于Web的知識庫以下載下傳這些資訊的确切缺失(就搜尋查詢而言)。 如果控制程式是編譯代碼,則無法下載下傳和執行新任務的計劃。 簡而言之,如果沒有基于知識的方法,則隻能在相同的機器人平台之間交換二進制程式。

10.4 推斷表上缺少哪些對象

另一個展示機器人如何利用其知識完成複雜任務的綜合實驗是推斷不完整表格設定中缺少哪些對象。10要完成該任務,機器人必須首先找出要進行哪頓飯以及需要哪些對象它。是以,它需要有關在不同餐點中使用的食物和餐具的類型以及參與人員的偏愛的詳細知識。該場景還示範了KnowRob中的不同元件如何可以共同用于解決複雜的任務。 Pangercic等人(2010年)對系統進行了更詳細的描述。 KnowRob充當內建平台,用于提供有關目前可以在桌子上看到的對象的感覺資訊以及所學習的統計關系模型的資訊,這些統計關系模型關于哪些對象通常由不同的人用于不同的用餐。使用第7節中描述的技術,将視覺系統檢測到的對象添加到知識庫中。通過将檢測到的對象姿勢與環境資訊相結合,系統可以基于用于定性空間關系的可計算項來計算給定表上的對象。

這組對象是6.3節中所述的統計關系推斷方法的證據。 推論是基于對人類進餐(模拟)觀察所得的模型進行的,該模型描述了進餐的類型,參加者以及誰使用哪種餐具食用了哪種食物。 圖12顯示了貝葉斯邏輯網絡的依存關系結構,在對這些資料進行訓練後,該依存結構有效地代表了人類膳食不同方面的聯合機率分布。 在執行過程中,機器人控制程式向KnowRob發送查詢,詢問缺少的對象集,KnowRob将該查詢轉發給ProbCog推理引擎,然後ProbCog推理引擎加載相應的模型,從KnowRob中讀驗證據(在 表格)并進行推斷。 示例查詢及其結果如下所示:

 圖12.膳食準備上下文的貝葉斯邏輯網絡,描述了參與膳食的人們與他們所使用的食品和器皿之間的關系(由Dominik Jain提供,來自Pangercic等人(2010年))。

推論的結果是一組具有指定機率的對象類型,這些機率訓示應該在表上放置哪些對象。 減去已經存在的對象後,KnowRob确定哪些對象仍然丢失,并根據其感覺記憶體和對環境中存儲位置的了解來推斷從何處搜尋它們。

圖13可視化了一些示例性場景的結果。 上排顯示了輸入圖像,其中已識别出不同的對象。 這些對象在表格下方的下部圖像中以紅色顯示。 推理結果表明桌子上哪些物體被認為是丢失的,色相值對應于從低(藍色)到高(紅色)的機率。 在左圖中,系統推斷出肯定缺少刀和玻璃杯:這是合理的,因為有果汁,但沒有飲水器,也沒有刀來切蛋糕和香腸。 中間的圖像顯示了已經在桌上放置銀器的設定,但是顯然缺少杯子和盤子。 在右圖中,再次是喝水和果汁所需的玻璃杯。

 圖13.缺少對象的查詢結果。 上排:輸入錄影機圖像(由Deanger Pangercic提供,來自Pangercic等人(2010))。 下排:可視化推斷結果,其中色相訓示推斷出對象丢失的機率(藍色:低;紅色:高)

10.4.1 以知識為基礎的方法的重要性

使用人類飲食行為的顯式模型,我們可以通過一個非常通用的控制程式來實作此任務,該程式主要由以下語句組成:“對于所有丢失的對象,将它們放到表中”。 根據型号,此控制程式将适用于不同國家/地區的不同餐點以及非餐點環境。 在經典程式中,必須使用if-then-else語句對規則進行手工編碼,如果情況變得複雜,則可能會非常困難:手動編碼大量對象類型之間的關系并取決于因素 例如,由哪個人吃飯,是一項複雜的任務,需要對問題進行徹底的分析,而貝葉斯邏輯網絡學習到的聯合機率分布隐式地處理了這些情況。

11. 相關工作

在機器人上使用知識表示和推理技術的曆史由來已久:早在機器人技術時代,諸如Shakey(Nilsson,1984)之類的機器人就已經配備了世界模型,這些世界模型使用謂詞邏輯描述了環境并支援自動推理。 。但是,這些模型的擴充範圍并沒有超出Shakey所從事的人工區塊世界,并且在随後的幾十年中,機器人技術和人工智能(AI)的研究相當獨立地進行。在知識表示中,與本文最相關的AI研究領域包括諸如情境演算(McCarthy和Hayes,1969),事件演算(Kowalski和Sergot,1986)和流利演算(Thielscher,1998)之類的技術。諸如Cyc(Lenat,1995)或WordNet(Fellbaum,1998)之類的知識庫收集了大量知識,最近,網際網路的興起催生了從結構化源(如Wikipedia(Auer)中自動提取知識庫的研究。等人,2007年; Suchanek等人,2007年)或Internet上的非結構化資訊(Banko等人,2007年; Carlson等人,2010年)。但是,這些知識庫沒有具體展現,沒有紮根于機器人的控制系統中,并且通常無法提供機器人所需的各種資訊。如果有關知識表示的文章使用機器人技術作為應用場景,那麼這些方法通常會過于形式化,而缺少現實場景中所需的功能。例如,題為“代表機器人的知識”的論文(Thielscher,2000年)未考慮諸如時間推理,詳細的空間表示,有關對象類型的資訊,環境中的過程,接地或與機器人控制系統內建等方面。

另一方面,機器人技術的工作通常集中在諸如有效的本地化和地圖建立以及忽略進階語義方面之類的問題上。然而,對象識别的最新進展導緻了對語義圖的更多研究,進而在機器人應用程式中更廣泛地使用了進階語義知識,盡管“語義級别”的範圍從單純的分類分為不同的部分和對象類型(Rusu 2008)。 )或對象(Vasudevan和Siegwart,2008)與DL中的環境表示(Zender等,2008),統計關系環境模型(Limketkai等,2005)并存以及将空間資訊嵌入到百科全書和常識中知識庫(Tenorth等,2010a)。 Galindo等人(2008年)已經研究了使用語義圖作為任務計劃的知識源。機器人技術中使用的其他AI技術包括自然語言在感覺和動作方面的基礎Mavridis和Roy(2006); Kollar等。 (2010年),動作和動作的計劃(Wolfe等,2010年; Kaelbling和Lozano-Perez,2011年)以及根據邏輯限制生成機器人控制器(Kress-Gazit等,2009年)。

盡管這些系統在各自的領域都非常成功,但它們專注于知識的單個次元,例如知識領域。環境圖或機器人動作。但是,自主地與對象互動的機器人通常會面臨涉及多個次元的推理任務,例如,以推理任務中涉及的對象及其在環境中的最可能位置。是以,我們認為需要更全面的知識庫和更多樣化的推理技術來應對這些挑戰。當設計一個完整的,內建的系統時,通常需要在針對特定問題進行了優化的技術與內建了各個元件的一緻表示之間進行權衡。專為自主機器人設計的知識庫(例如本文所述的KnowRob系統)試圖解決這一挑戰。在以下各段中,我們讨論了過去幾年中為機器人開發的類似的內建知識處理系統。

ORO本體(Lemaignan等人,2010)專注于人機互動,并解決對話中的歧義。 例如,Ros等人(2010)描述了此功能,在此基礎上,機器人根據對環境中的對象及其屬性的了解推斷出該機器人應詢問的指令以消除歧義。 ORO使用OWL作為表示格式,并使用标準的DL推理器進行推理。 底層的三維幾何環境表示可用于計算空間資訊并更新有關對象位置的内部置信狀态(Siméon等,2001)。

Daoutis等人(2009)提出的知識庫是PEIS生态項目(實體嵌入式智能系統)的核心組成部分。 PEIS研究了分布式智能系統,這些系統既包括移動機器人,也包括嵌入環境的傳感器,這些傳感器都內建到一個通用架構中。 PEIS知識庫是Cyc推理引擎的擴充。 一方面,這使系統可以完全通路大型Cyc本體,但是這樣做的代價是推理速度較慢,本體的多個分支中不相關的知識以及在諸如機器人或移動操縱等領域缺乏知識。 作者專注于接地和錨固方面(另見Daoutis等人(2012))。

Lim等人(2011)的OUR-K系統是OMRKF架構Suh等人(2007)的繼承者。 OUR-K是一個廣泛的系統,描述了圍繞五種主要知識的各個方面:上下文,對象,空間,動作和特征。 與KnowRob本體相比,OUR-K缺少流程,機器人自模型的概念,并且使用更簡單的動作描述。 它也基于通用的OWL推理機,該推理機将推理功能限制為DL推理。

12. 讨論

現在讓我們讨論我們做出的一些設計決策,其原理以及對機器人知識處理能力的影響。 也許,最具争議的決定可能是我們基于Prolog程式設計語言實作KnowRob的實作。

我們選擇Prolog作為實用且可擴充的解決方案,用于在執行機器人計劃的過程中“程式設計”查詢答案和資訊檢索功能。即使存在更進階的知識表示語言和推理機制,也有多個原因使Prolog尤其具有吸引力。首先,因為我們希望KnowRob供機器人程式員和研究所學生使用,是以我們選擇了一種成熟的語言,并為其提供了許多教科書。從我們的角度來看,第二個優點是Prolog的搜尋機制,即具有回溯功能的深度優先搜尋,使程式員能夠通過對查詢和規則的子句進行排序來控制搜尋。程式員可以使用它來提高搜尋效率,這是在計劃執行期間執行查詢回答的重要因素。對我們來說,另一個重要因素是外語界面的存在。從一開始就很明顯,知識處理應該直接通路底層機器人控制系統的資料結構和計算過程。一個次要因素是OWL擴充包的可用性以及與進階智能系統基礎結構(例如非結構化資訊管理體系結構(UIMA))的接口(Ferrucci和Lally,2004年)。 SWI Prolog提供了大量接口和擴充庫,到目前為止,滿足了我們的需求,盡管還有其他一些系統,例如YAP(Costa等人,2012)或XSB(Swift和Warren,2012)在某種程度上更有效和可擴充。 

選擇Prolog還會帶來一些後果。例如,Prolog缺乏專用的推理機制,例如不确定性推理,時間和空間推理,僅舉幾例。 KnowRob提供了這些推理功能,但僅在原子組合内。是以,為了進行一階機率推理,KnowRob提供了一個謂詞,該謂詞将機率查詢轉換為馬爾可夫邏輯問題,解決馬爾可夫邏輯推理問題,并提取解決方案以執行個體化帶有答案的查詢謂詞。馬爾可夫邏輯推理通過過程附件內建在一起。這意味着馬爾可夫邏輯推理機目前在推理不确定性時不進行其他任何推理,例如DL推理。 KnowRob方法的優勢在于簡單性,我們認為這在機器人控制方面至關重要。缺乏表現力通常可以通過精心設計查詢來彌補,例如在設定不确定的推理問題之前解決所需的推論。

另一個問題是,Prolog的搜尋政策(具有回溯功能的深度優先搜尋)不完整。 這意味着即使答案存在,Prolog也可能永遠搜尋而不傳回答案。 這個問題是一個理論上更大的問題,因為在實踐中,必須仔細設計和優化機器人計劃中的Prolog查詢,以便它們在可用資源範圍和時間限制内提供答案。

原則上,Prolog可用于實施完整的機器人控制程式。 例如,我們可以說Prolog規則是,如果打開瓶子後機器人看冰箱時機器人能看見瓶子,那麼瓶子就在冰箱中。 是以,當被問及冰箱中是否有瓶子時,Prolog規則将要求機器人去冰箱,打開冰箱,然後尋找瓶子。 盡管這非常優雅,但它意味着該機器人将在不執行能夠指定靈活和健壯行為的計劃的控制下執行困難和複雜的操作。 為避免此問題,我們在計劃中而不是在Prolog查詢和規則中指定所有感覺,導航和操縱操作。

在我們的用例中,我們很少遇到Prolog表達不足的情況。 這是因為過程附加方法允許程式員使用任意計算語義來指定謂詞。 但是,在通過過程附件定義謂詞的情況下,可能會發生謂詞不能子產品化且透明地表示其語義的情況。

最近,聘請了一批專家的軟體體系結構證明了自己能夠成功地擴充到現實世界的複雜性。 沃森系統(Ferrucci等人,2010)非常出色地展示了此類體系結構的潛力,沃森系統是赢得美國測驗節目《危險! 我們計劃探索向KnowRob添加一組基于專家的查詢應答機制的可行性。 然後,系統将采用專家查詢應答機制來檢測它們可以處理的子查詢,并假設這些子查詢的答案。 在第二步中,查詢答案機制将組合各個答案假設并以最高置信度計算答案。 這樣的系統将有助于克服基于Prolog的推理的局限性,并包括其他推理機制。

未來幾年最大的挑戰之一将是使機器人能夠了解并勝任模糊,未指定的任務指令。 這樣的指令在人際交流中無處不在,因為當人們向另一個人解釋任務時,他們通常會忽略他們認為是顯而易見的常識的資訊。 如果要自然地指導機器人,則他們将需要能夠首先識别指令中丢失或模棱兩可的資訊,必須推理從何處擷取此資訊,以及如何将其內建到任務描述中。

這項挑戰的主要部分是如何生成為機器人提供所需的各種資訊所需的全面而多樣的知識庫。這将需要對學習進行更徹底的整合,而這在KnowRob系統中目前還不能很好地解決。盡管統計關系模型仍然面臨可伸縮性問題,但它們是一個非常有前途的研究方向,因為它們将允許從資料中學習關系知識庫。學習機率關系模型(Getoor等人,2003年)是一個非常活躍的研究領域,最近取得的成就的例子是在馬爾可夫網絡中進行結構學習的方法(Davis和Domingos,2010年),學習馬爾可夫邏輯網絡(Kiddon和Domingos, 2011年)和學習關系依賴網絡(Natarajan等人,2012年)。雖然通常在馬爾可夫邏輯網絡中進行推理是很棘手的,但有希望的工作是找到一個易于處理的馬爾可夫邏輯子集,同時仍将有用的領域劃分為多個部分并将關系限制為部分的子部分。為統計關系模型開發可處理大量資料并作為機器人(軟)實時進階控制回路一部分的學習和推理技術,将是重要的研究課題,也是我們研究議程的一部分。

這些學習技術很可能必須與其他知識擷取方法相輔相成,這取決于要擷取,表示和推理的資訊類型。有關對象的知識庫将需要表示它們的屬性,其外觀,它們的成分,有關易碎性或适當抓握點的資訊,它們(功能)部分的組成以及與其他對象的關系。活動描述需要更好地表示任務上下文以及這些動作的符号或自然語言描述與人類示範和機器人體驗的觀察之間的關系。描述單個動作的知識庫應提供有關動作屬性和參數的資訊,包括動作,對象,工具,位置和抓握類型之間的确切關系(Nyga和Beetz,2012年)。在較低的層次上,機器人需要可以從經驗中學到的運動模型,如果新資訊施加了額外的限制,可以由機器人的進階控制程式對其進行參數化,可以組成并适應變化的世界狀态并進行抽象推理。這些方面尚未由KnowRob或我們知道的任何其他內建知識庫處理,但實作這些模式的适當表示,學習和推理方法并向其填充内容對于建構智能機器人助手和同僚至關重要。

13. 總結

在本文中,我們介紹了KnowRob作為自主機器人的實用知識處理系統。 它的主要概念之一是“虛拟知識庫”,可以定義為亞符号資料之上的符号層。 在查詢時,使用語義類和屬性的過程附件将所需資訊加載并抽象到适當的級别。 符号層用作內建不同知識源的語言,例如機器人的感覺系統,控制程式的内部資料結構或來自Internet的資訊。 如果知識庫需要回答有關未知事物的查詢,則可以将查詢轉發給其他元件以擷取所需的資訊。

KnowRob基于Prolog并在内部存儲以DL表示的知識,該格式允許以非常結構化的方式表示資訊,并且在充分的表現力和對自動推理的良好支援之間做出了很好的折衷。 關于對象和動作的類别的知識以本體的形式表示。 它提供了用于描述有關動作,事件,對象,空間和時間資訊的知識的詞彙表。 第3節中介紹了內建在KnowRob系統中的整體系統架構和知識擷取,自動推理,可視化和資訊查詢的主要元件,以及可以使用的不同知識來源。

KnowRob內建了三種主要的推理技術,每種技術都适合于不同種類的知識:DL推理形成整個系統的主幹,并用于所有确定性資訊,包括大型本體。 對于機率資訊的推理,我們內建了ProbCog工具箱,該工具箱提供了統計關系模型中各種推理方法,這些推理方法将一階邏輯的表達能力與表示不确定性的能力相結合。 6.2節中描述的“可計算内容”允許在推理過程中按需進行語義資訊的程式計算。 它們是從感覺系統加載資訊以及基于知識庫中的資訊計算實體之間關系的主要工具。

知識庫和機器人感覺元件之間的緊密內建允許基于對物體的檢測來生成物體執行個體。 對于主動的,任務導向的感覺系統以及記錄所有感覺結果的被動偵聽器,存在兩種接口。 提出的從Internet和人類觀察中擷取知識的技術以及在機器人之間交換知識的方法減少了建構大型知識庫所需的時間。

在正在進行的研究中,我們正在努力開發能夠在人類環境中執行實際任務的知識淵博,智能化的自主服務機器人。 對于這些任務,為機器人控制程式提供推理服務的綜合知識庫是重要的資源。 從機器人的知識推斷控制決策會導緻更健壯,靈活和可重複使用的行為,因為環境配置等方面是與控制流程分開描述的。 可以使用提出的(半)自動擷取方法來擷取以這種方式執行複雜任務的大量知識。

Notes

1.See http://ros.org/wiki/knowrob

2.See http://ias.in.tum.de/research/probcog

3.See http://ros.org/wiki/mod_probcog

4.See http://ros.org/wiki/knowrob_perception

5.See http://ros.org/wiki/tabletop_object_detector

6.See http://ros.org/wiki/comp_ehow

7.See http://ros.org/wiki/comp_germandeli

8.See http://ros.org/wiki/roboearth

9.See http://ros.org/wiki/comp_orgprinciples

10.See http://ros.org/wiki/comp_missingobj