專利名稱:對機器人系統(tǒng)進行教示的方法
技術(shù)領(lǐng)域:
本發(fā)明大體上涉及機器人系統(tǒng)(robotic system),且更特定來說,涉及一種對機器人系統(tǒng)進行教示以使得機器人系統(tǒng)能夠根據(jù)對象與預(yù)定義對象模型的相似性來操縱對象的方法。
背景技術(shù):
在本說明書中,機器人系統(tǒng)為一種人造的物理系統(tǒng),其以一個或一個以上旋轉(zhuǎn)或平移軸移動,為可編程的,可感測其環(huán)境,且能夠使用自動控制、預(yù)編程序列或人工智能來操縱環(huán)境內(nèi)的對象或與所述對象互動。在過去的十年中,智能機器人系統(tǒng)存在快速發(fā)展,且甚至存在一些商業(yè)化產(chǎn)品。典型的實例包含iRobot 的真空清潔機器人Roomba、S0NY 設(shè)計并制造的機器人寵物AIBO以及Honda 創(chuàng)造的人形機器人ASIMO(僅舉幾例)。盡管其體現(xiàn)了幾十年的研究進步,但這些機器人系統(tǒng)仍被較多地視為娛樂“玩具”。這主要是因為即使是例如將水從瓶子倒入茶杯的非常簡單(對人來說)的靈活協(xié)作動作對于機器人系統(tǒng)來說也很難“學(xué)習(xí)”。另一方面,估計全世界存在超過一百萬的工業(yè)機器人(也稱為工廠或服務(wù)機器人)在工作,用于執(zhí)行需要速度、準(zhǔn)確性、可靠性或耐久性的任務(wù),尤其是在汽車和電子工業(yè)中。與例如Roomba、AIBO和ASIMO等自主機器人相反,這些工業(yè)機器人在高度限定且受控的任務(wù)中勝過人的作用,例如要求工業(yè)機器人將工件分別地且精確地定位于傳送帶上, 而不是一起凌亂地堆在托盤上。然而,對于這些工業(yè)機器人,即使某種微小的改變也將需要若干天或甚至若干星期的重新編程和修改。因此,存在視覺引導(dǎo)(vision guided)的工業(yè)機器人來補償這些不靈活性。視覺引導(dǎo)的機器人系統(tǒng)是這樣一種機器人系統(tǒng)其主要是通過一個或一個以上內(nèi)建的圖像俘獲和/或激光裝置以對其環(huán)境和環(huán)境內(nèi)的對象進行感測。舉例來說,F(xiàn)AUNC 制造的M_420iA 能夠通過使用高速相機系統(tǒng)控制機器人的兩個機械臂來抓取傳送帶上的多達120個不同工件。這些視覺引導(dǎo)的機器人的典型情境如下。對機器人進行編程以定位相機且調(diào)整對最佳圖像俘獲位置的照明。軟件程序接著處理所俘獲的圖像,且指示機器人針對工件的位置和定向做出校正。這些視覺引導(dǎo)的機器人事實上比“盲”機器人更靈活。將一個對象從一個位置移動到另一位置可能較容易編程,但這些機器人仍需要較長訓(xùn)練和綜合的前導(dǎo)時間來適應(yīng)簡單的零件改變。通過這些觀察可見,機器人系統(tǒng)變?yōu)橹髁鞯淖铒@著障礙在于其只能進行一種類型的工作如取放。為了對機器人系統(tǒng)引入任何新類型的工作,對機器人系統(tǒng)進行教示以執(zhí)行新的“技巧(trick)”花費太多時間且因此成本太高。即使對于工業(yè)機器人來說,不固定的軌跡的機械臂運動教示也是困難的。為了使對機器人系統(tǒng)進行教示成為較簡單的任務(wù),本發(fā)明人相信相似性概念(the concept of analogy)可為關(guān)鍵。相似性在人類問題解決、決策、感知、記憶、創(chuàng)造性、情感、 解釋和交流中起到重要作用。其也是執(zhí)行基本任務(wù)如例如地點識別、對象和人員識別(例如,在面部感知和面部識別系統(tǒng)中)的基礎(chǔ)。已提出,相似性是“認(rèn)識的核心(the core ofcognition) ”。如果將相似性能力以某種方式并入機器人系統(tǒng)中,那么與那些常規(guī)的從頭開始的方法相比可以更快地對機器人系統(tǒng)進行教示。
發(fā)明內(nèi)容
本文提供對機器人系統(tǒng)進行教示的新穎方法,其通過使用相似性而顯著減少訓(xùn)練時間和努力。機器人系統(tǒng)必須至少包含通常的操縱硬件和計算硬件。所述方法的一個實施例包含以下主要步驟。首先,提供對象模型庫和操作模塊庫。 對于將由機器人系統(tǒng)處理的每一真實對象,存在定義至少在幾何上類似于真實對象的三維形狀的至少一個對象模型,或者存在其所定義形狀可經(jīng)組合以至少在幾何上類似于真實對象的兩個或兩個以上對象模型。每一對象模型具有描述三維形狀的若干預(yù)定幾何參數(shù)。對于將對真實對象執(zhí)行的每一操作,操作模塊庫中包含至少一個操作模塊,且每一操作模塊具有若干預(yù)定操作參數(shù),用于指定操作的至少一個目標(biāo)和與將對目標(biāo)執(zhí)行的操作相關(guān)的額外若干條信息。接著,對于待處理的每一真實對象,提供虛擬對象的定義。虛擬對象定義含有虛擬對象的唯一名稱、對定義于對象模型庫中的對象模型或若干對象模型的組合的參考,以及根據(jù)真實對象對所述對象模型的幾何參數(shù)的值的指定。隨后,對于將對真實對象執(zhí)行的每一操作,提供操作的定義。操作定義包含對包含于操作模塊庫中的操作模塊的參考,以及根據(jù)表示真實對象的虛擬對象和待執(zhí)行操作對操作參數(shù)的值的指定的規(guī)范。任選地,如果待教示的機器人系統(tǒng)具有至少一個圖像俘獲裝置,那么對于所定義的每一虛擬對象,提供預(yù)先獲取的由虛擬對象表示的真實對象的至少一個二維圖像且使所述圖像與虛擬對象相關(guān)聯(lián)。在此步驟之后,完成用于機器人系統(tǒng)的任務(wù)描述,所述任務(wù)描述含有對應(yīng)于待處理真實對象的一個或一個以上虛擬對象定義、對應(yīng)于將對真實對象執(zhí)行的操作的一個或一個以上操作定義,以及(任選地)與對應(yīng)虛擬對象相關(guān)聯(lián)的真實對象的一個或一個以上圖像。從對本文在下文中適當(dāng)參考附圖提供的詳細(xì)描述的仔細(xì)閱讀中將更好地理解本發(fā)明的上述和其它目的、特征、方面和優(yōu)點。
圖Ia是繪示將通過本發(fā)明來教示的機器人系統(tǒng)的示意圖。圖Ib是繪示用于對圖Ia的機器人系統(tǒng)進行教示的根據(jù)本發(fā)明的軟件系統(tǒng)的示意圖。圖2a是繪示將由圖Ia的機器人系統(tǒng)處理的兩個真實對象的示意圖。圖2b是繪示如何通過本發(fā)明的對象模型庫中定義的兩個基元形狀的組合來近似圖2a的第一真實對象的示意圖。圖2c是繪示如何通過本發(fā)明的對象模型庫中定義的復(fù)雜形狀來近似圖2a的第二真實對象的示意圖。圖2d是繪示在本發(fā)明的操作定義步驟期間提供的額外若干條信息的示意圖。圖2e和圖2f是繪示機器人系統(tǒng)基于由虛擬對象的幾何參數(shù)和操作模塊的操作參數(shù)提供的信息進行的智能軌跡規(guī)劃的示意圖。圖2g是繪示由本發(fā)明產(chǎn)生的任務(wù)描述的示意圖。圖3a是繪示根據(jù)本發(fā)明實施例的對圖Ia的機器人系統(tǒng)進行教示的主要步驟的流程圖。圖3b是繪示根據(jù)本發(fā)明另一實施例的對圖Ia的機器人系統(tǒng)進行教示的主要步驟的流程圖。
具體實施例方式以下描述只是示范性實施例,且既定不以任何方式限制本發(fā)明的范圍、適用性或配置。事實上,以下描述提供對實施本發(fā)明示范性實施例的方便說明。在不脫離如所附權(quán)利要求書中陳述的本發(fā)明范圍的情況下可在所描述組件的功能和布置方面做出對所描述實施例的各種改變。本發(fā)明不強制要求機器人系統(tǒng)為特定類型。機器人系統(tǒng)可為帶腿的或帶輪子的或甚至固定的;或者機器人系統(tǒng)可具有帶兩個臂的人形形式,或可為具有單個臂的工廠固定機器人。機器人系統(tǒng)的使用也不受限制;其可為用于家務(wù)的自主家用機器人(autonomous domestic robot)或用于電子零件取放的工業(yè)機器人。如圖Ia中說明,根據(jù)本發(fā)明的機器人系統(tǒng)1(例如任何常規(guī)機器人)具有適當(dāng)?shù)膶ο蟛倏v硬件以處理真實對象,例如圖中所示的主體10和至少一個臂12,以及驅(qū)動主體10 和臂12的各種馬達和致動器(未圖示)。操縱硬件的細(xì)節(jié)將對所屬領(lǐng)域的技術(shù)人員來說為相當(dāng)直觀的。同樣類似于任何常規(guī)機器人,機器人系統(tǒng)1還含有適當(dāng)?shù)挠嬎阌布?0,例如處理器、控制器、存儲器、存儲裝置等(未圖示),用于控制所述操縱硬件10。根據(jù)本發(fā)明,將對機器人系統(tǒng)1進行教示以對一個或一個以上真實對象執(zhí)行操作,且機器人系統(tǒng)1必須具有一些光學(xué)感知構(gòu)件(optical perceptionmeans)來“看見”真實對象。光學(xué)感知構(gòu)件可包含(但不限于)圖像俘獲裝置(image capturing device),例如能夠拍攝二維攝像圖片的電荷耦合裝置(charge coupled deviCe,CCD)相機和能夠獲得真實對象的三維仿形數(shù)據(jù)(profiling data)的3D激光掃描器(3D laser scanner)。換句話說,機器人系統(tǒng)1應(yīng)具有至少一個圖像俘獲裝置或至少一個3D激光掃描器或兩者。為了簡單起見,在下文中,假定機器人系統(tǒng)1含有至少一個圖像俘獲裝置30,例如CXD相機。圖像俘獲裝置30可構(gòu)建到機器人系統(tǒng)1的主體10中,例如在人形機器人的頭部上或在服務(wù)機器人的臂上。圖像俘獲裝置30還可在機器人系統(tǒng)的主體10的外部,但經(jīng)由有線或無線通信構(gòu)件連接到機器人系統(tǒng)1,例如恰好定位于傳送帶的上方且連接到正在對傳送帶上傳遞的零件進行工作的服務(wù)機器人的相機。此通信構(gòu)件允許將圖像俘獲裝置30所俘獲的圖像傳遞到計算硬件20以進行處理。為了對機器人系統(tǒng)1進行教示以執(zhí)行某個特定任務(wù),提供軟件系統(tǒng)40,如圖Ib中說明。操作者(即,機器人系統(tǒng)1的“教師”)在軟件系統(tǒng)40提供的環(huán)境中對特定任務(wù)進行編程,且為機器人系統(tǒng)1的計算硬件20產(chǎn)生“任務(wù)描述”,使得機器人系統(tǒng)1可成功執(zhí)行任務(wù)。換句話說,操作者使用軟件系統(tǒng)40對機器人系統(tǒng)1進行教示。請注意,軟件系統(tǒng)40可在同一計算硬件20上運行,且來自軟件系統(tǒng)40的任務(wù)描述直接由計算硬件20處理以執(zhí)行任務(wù)?;蛘?,軟件系統(tǒng)40在單獨的計算平臺上執(zhí)行,且來自軟件系統(tǒng)40的任務(wù)描述加載到計算硬件20上(經(jīng)由某種有線或無線通信構(gòu)件),使得機器人系統(tǒng)1可相應(yīng)地執(zhí)行任務(wù)。對機器人系統(tǒng)1進行教示的第一步驟是定義待由機器人系統(tǒng)1處理的真實對象。 舉例來說,如圖2a中說明,將對機器人系統(tǒng)1進行教示以處理第一真實對象600 (即,筆) 和第二真實對象700(即,筆筒)。此對象定義步驟需要預(yù)先準(zhǔn)備的對象模型庫(object model library) 100。如圖Ib說明,對象模型庫100是軟件系統(tǒng)40的一部分,且含有存儲在文件、數(shù)據(jù)庫或類似軟件構(gòu)造中的至少若干個具有基元形狀(primitive shape)的對象模型101。術(shù)語“基元形狀”通常在計算機圖形和CAD系統(tǒng)的3D建模中使用。例如球體、立方體或盒、圓環(huán)、圓柱體、角錐等基元形狀被視為基元,因為其是許多其它形狀和形式的構(gòu)建塊。難以定性地對所述術(shù)語給出精確定義。從觀察來看,其共享一些共同的形狀特征(1) 其通常僅含有直邊緣;(2)其通常僅含有不帶拐點(point of inflection)的簡單曲線;以及(3)其通常無法分解為其它基元形狀。如上文提到,本發(fā)明的主要想法在于并入相似性能力以對機器人系統(tǒng)1進行教示,必須存在某個“基礎(chǔ)(base) ”來相似。對象模型庫100的對象模型101就是“基礎(chǔ)”。具有對象模型庫100的理由是基于以下假定大多數(shù)現(xiàn)實對象可通過某些簡單的二元關(guān)系(加法、減法等)由這些基元形狀中的一者或這些基元中的兩者或兩者以上的組合來近似。舉例來說,如圖2b中說明,對于真實對象600 (即,筆),對象模型庫100含有圓柱體102的對象模型101和圓錐體103的另一對象模型101,且真實對象600可通過將圓錐體103簡單添加到圓柱體102的末端來近似。請注意,圓柱體102和圓錐體103的基元形狀不具有真實對象600的具體細(xì)節(jié),例如六邊形橫截面。最重要的是基元形狀在幾何上類似于待由機器人系統(tǒng)1處理的真實對象或真實對象的一部分,且因此提供對所述真實對象或真實對象的一部分的近似。另外,對象模型庫100還可含有并非為基元且甚至相同于或?qū)嵸|(zhì)上類似于待處理真實對象的一個或一個以上對象模型101。舉例來說,如圖2c中說明,對于真實對象 700 ( S卩,筆筒),對象模型庫100含有具有管狀形狀的對象模型101,其在幾何上相同于真實對象700。然而,管狀形狀不是基元,因為其可由基元圓柱體減去具有較小直徑的另一基元圓柱體來表示。因此,有可能對象模型庫100可含有例如可樂瓶、扳手等具有復(fù)雜幾何形狀的對象模型,其是確切根據(jù)待處理的真實對象來建模的。每一基元或復(fù)雜形狀的對象模型101含有若干幾何參數(shù)。幾何參數(shù)可在一個對象模型101與不同形狀的另一對象模型之間有所不同。舉例來說,圓柱體102的對象模型101 可以向量形式表示如下CYLINDER = {1,d}其中1、d是圓柱形形狀的長度和直徑;圓錐體103的對象模型101可表示如下CONE = {d, h}其中d、h是圓錐形形狀的底座直徑和高度;且筒的對象模型101可表示如下P0T={l,d,w}其中l(wèi)、d和w是筒形狀的壁的長度、直徑和厚度。請注意,對象模型庫100可僅含有具有基元形狀的對象模型101?;蛘?,對象模型庫100可含有具有基元形狀和復(fù)雜/定制形狀兩者的對象模型101。還請注意,可在對象模型庫建立之后在需要時稍后將額外的對象模型101添加到對象模型庫100。
如早先所提到,對象模型庫100提供用于相似性的“基礎(chǔ)”。為了實現(xiàn)此特征,對象定義步驟允許操作者針對待處理的每一真實對象定義虛擬對象。對于如此定義的每一虛擬對象,存在虛擬對象的唯一名稱,且所述名稱(且因此,虛擬對象)與對象模型庫100的一個對象模型101或者兩個或兩個以上對象模型101的組合相關(guān)聯(lián)。對于圖2a的實例,通過使用示范性偽碼(pseudocode)如下定義兩個虛擬對象虛擬對象A:C0NE+CYLINDER ;B =POT ;其中規(guī)定在將圓錐體添加到圓柱體的一端時虛擬對象A具有圓錐體的所有幾何參數(shù)和圓柱體的所有幾何參數(shù)以便近似筆600 ;且規(guī)定虛擬對象B具有筒形狀的所有幾何參數(shù)以便近似筆筒700。請注意,即使使用編程語言情境來描述以上實例,相同定義過程也可以且實際上更優(yōu)選在圖形環(huán)境中用點擊(point and click)操作完成,恰似使用例如AutoCAD 等CAD 系統(tǒng)。所屬領(lǐng)域的技術(shù)人員可容易想象在圖形環(huán)境中定義虛擬對象,恰似通過選擇和組合基元形狀在AutoCAD 中創(chuàng)建3D模型。除了唯一名稱和與對象模型的關(guān)聯(lián)以外,軟件系統(tǒng) 40還允許操作者根據(jù)幾何參數(shù)的對應(yīng)真實對象來指定幾何參數(shù)的值。同樣,通過使用偽碼, 這可如下表示虛擬對象A :C0NE(d = 2cm, h = 2cm) +CYLINDER (1 = 8cm, d = 2cm);B :P0T(1 = 5cm, d = 3cm, w = 0. 5cm);同樣,如果在圖形環(huán)境中,則這可通過擠壓和按比例縮放基元形狀和/或手動輸入?yún)?shù)值來實現(xiàn)。作為簡短概述,針對待處理的每一真實對象,對象定義步驟涉及通過從對象模型庫選擇形狀或組合若干形狀來定義虛擬對象,將唯一名稱指派給所述形狀或形狀組合,以及根據(jù)真實對象指派形狀的幾何參數(shù)指定值。換句話說,對于以上實例,操作者在對象定義步驟中定義虛擬對象A和B,其為近似真實對象600和700(即,筆和筆筒)的3D模型。請注意,在對象定義步驟內(nèi),這些子步驟(即,拾取形狀、命名和初始化參數(shù))的次序并不重要,但參數(shù)初始化總是必須在選擇形狀之后實施。舉例來說,命名可首先或最后執(zhí)行。對機器人系統(tǒng)1進行教示的第二步驟是定義用于指示機器人系統(tǒng)1做什么的一個或一個以上操作。舉例來說,在以上實例之后的示范性操作是指示機器人系統(tǒng)1拾取第一真實對象600 (即,筆)且接著將第一真實對象600放在第二真實對象700 (即,筆筒)內(nèi), 使得第一真實對象600的尖端向上。此操作定義步驟需要預(yù)先準(zhǔn)備的操作模塊庫200,其為如圖Ib說明的軟件系統(tǒng)40的一部分,其含有若干操作模塊201。類似于對象模型庫100的使用,為了指定用于機器人系統(tǒng)1執(zhí)行的上述操作,操作者首先從操作模塊庫200選擇操作模塊中的一者(比如,放在內(nèi)部(PUT-INSIDE)),其是關(guān)于將一個東西放在另一個東西中。每一操作模塊201是由設(shè)計者(例如,程序員)預(yù)先準(zhǔn)備的軟件構(gòu)造。從操作者的觀點來看,每一操作模塊201具有同樣由操作模塊201的設(shè)計者預(yù)先確定的若干操作參數(shù)。同樣,通過使用偽碼,PUT-INSIDE操作模塊可如下表示PUT-INSIDE (target 1,target2,op3,op4,op5,…)
8
其中targetl、target2、op3、op4、op5等全部是操作模塊PUT-INSIDE的操作參數(shù)。 這些操作參數(shù)的意義如下-target 1是對將由機器人系統(tǒng)1拾取的虛擬對象的參考;-target2是對將targetl放置于其中的另一虛擬對象的參考;-op3是對在何處固持targetl以便拾取targetl的參考;-op4是對targetl的哪一端將首先進入target2的參考;以及-op5是對將targetl插入target2的哪一側(cè)的參考。涉及到額外的操作參數(shù),例如-target2的軸在何處,且將插入targetl的相對于所述軸的角度;-targetl的重量(使得機器人系統(tǒng)1知曉需要多少力來提起targetl);-targetl的主體的強度(使得機器人系統(tǒng)1知曉在抓握targetl時施加多少力)。從上可見,這些操作參數(shù)提供與機器人系統(tǒng)1完成操作PUT-INSIDE相關(guān)的各條信息。因此,不同的操作模塊201可具有不同的操作參數(shù)集合。在操作定義步驟中,在操作者從操作模塊庫200選擇操作模塊201之后,操作者需要指定操作模塊201的所有操作參數(shù)。假定軟件系統(tǒng)40提供圖形環(huán)境,例如AutoCAD 提供的圖形環(huán)境,則這可如下實現(xiàn)。舉例來說,在操作者拾取操作模塊PUT-INSIDE之后,軟件系統(tǒng)40將基于PUT-INSIDE的操作參數(shù)而請求操作者指定操作參數(shù)中的每一者-操作者將虛擬對象A指定為target1 (通過輸入名稱A或通過在圖形環(huán)境中點擊虛擬對象A);-操作者將虛擬對象B指定為target〗(通過輸入名稱B或通過在圖形環(huán)境中點擊虛擬對象B);-操作者通過在圖形環(huán)境中進行一些點擊操作而將虛擬對象A的圓柱形主體的中間的陰影區(qū)域(見圖2d)指定為op3(即,在何處固持targetl);-操作者通過在圖形環(huán)境中進行一些點擊操作而將虛擬對象A的一端處的陰影區(qū)域指定為op4( S卩,targetl的哪一端將首先進入target〗);-操作者通過在圖形環(huán)境中進行一些點擊操作而將虛擬對象B的頂側(cè)處的陰影區(qū)域指定為op5(即,將把targetl插入target2的哪一側(cè));且-操作者將虛線箭頭指定為target〗的軸且輸入一個值作為將插入targel的相對于所述軸的角度。對于所屬領(lǐng)域的技術(shù)人員來說,其余細(xì)節(jié)將為相當(dāng)直觀的且因此被省略。作為簡短概述,在操作定義步驟期間且對于機器人系統(tǒng)1將執(zhí)行的每一操作,操作者從操作模塊庫200選擇至少一個操作模塊201。接著,根據(jù)所選操作模塊201的預(yù)定操作參數(shù),軟件系統(tǒng)40請求操作者指定這些操作參數(shù)。這些操作參數(shù)涉及待操縱的一個或一個以上目標(biāo)(即,虛擬對象)和與操作相關(guān)的關(guān)于虛擬對象的額外若干條信息。如上所述, 這些操作參數(shù)的指定可全部在例如CAD系統(tǒng)等圖形環(huán)境中實現(xiàn)。請注意,存在實施操作模塊201的各種不同方式,且取決于如何實施操作模塊 201,還存在關(guān)于機器人系統(tǒng)1執(zhí)行如操作模塊201定義且如其操作參數(shù)指定的操作的各種方式。在一個實施例中,每一操作模塊201是軟件例程或函數(shù)(因此,操作模塊庫200是程序庫),且操作參數(shù)是傳遞到所述例程或函數(shù)的自變量。當(dāng)對機器人系統(tǒng)1給出從操作定義步驟產(chǎn)生的一個或一個以上操作模塊201以及指定的操作參數(shù)時,機器人系統(tǒng)1的計算硬件20執(zhí)行含有所述例程或函數(shù)的代碼。在替代實施例中,上文提到的例程或函數(shù)含有高級的不依賴于硬件的指令,且這些指令必須由知曉機器人系統(tǒng)1的操縱硬件和計算硬件20的硬件細(xì)節(jié)的編譯器編譯為可執(zhí)行代碼。操作模塊201的翻譯或編譯不是本發(fā)明的標(biāo)的物,且存在很多解決類似問題的教示。舉例來說,第6,889,118、7,076,336和7,302,312號美國專利(全部由Murray,IV 等人所有)提供位于機器人控制軟件與機器人的操縱硬件之間的硬件抽象層(hardware abstraction layer, HAL),使得下伏的硬件對機器人控制軟件是透明的。這有利地準(zhǔn)許以不依賴于機器人的方式編寫機器人控制軟件。因此,可設(shè)想,以上述不依賴于機器人的方式對操作模塊201的細(xì)節(jié)進行編程。在又一實施例中,操作模塊201簡單地記錄其操作參數(shù)的所有指定(即,值)。操作模塊201不含有任何高級指令或低級可執(zhí)行代碼。是機器人系統(tǒng)1基于操作模塊201及其所記錄的操作參數(shù)指定來決定如何執(zhí)行操作。在先前實施例中,確定執(zhí)行什么的智能嵌入于操作模塊本身中,且對于當(dāng)前實施例,所述智能完全建置于機器人系統(tǒng)1中。如可設(shè)想,還存在其中智能的一部分嵌入于操作模塊201中且智能的一部分建置于機器人系統(tǒng)1中的一些實施例。無論如何實施操作模塊,操作模塊及其操作參數(shù)連同虛擬對象定義及其幾何參數(shù)均應(yīng)提供足夠信息以用于機器人系統(tǒng)1智能地實施操作。請比較圖加與圖2f。如圖加說明,當(dāng)虛擬對象A遠(yuǎn)離虛擬對象B時,機器人系統(tǒng)1應(yīng)能夠規(guī)劃短軌跡,因為機器人系統(tǒng) 1可確定虛擬對象A與B之間存在足夠的距離且其可直接拾取虛擬對象A。另一方面,如圖 2f說明,當(dāng)虛擬對象A恰在虛擬對象B旁邊時,機器人系統(tǒng)1應(yīng)能夠規(guī)劃較間接的軌跡,因為機器人系統(tǒng)1可確定虛擬對象A與B之間不存在足夠距離且其必須首先將虛擬對象A移動遠(yuǎn)離虛擬對象B。機器人系統(tǒng)1能夠進行此智能決策和軌跡規(guī)劃的原因在于,虛擬對象A 和B的幾何參數(shù)(例如其長度和高度等)提供了所需的知識。類似地,操作參數(shù)提供其它相關(guān)信息,使得機器人系統(tǒng)1知曉在何處抓握虛擬對象A且如何將虛擬對象A插入虛擬對象B中。請注意,決策和軌跡規(guī)劃并不是本發(fā)明的標(biāo)的物,且在例如智能機器人和人工智能等領(lǐng)域中存在許多教示。為了使機器人系統(tǒng)1對真實對象執(zhí)行所教示的操作,機器人系統(tǒng)1必須使真實對象關(guān)聯(lián)于所定義的虛擬對象。換句話說,當(dāng)機器人系統(tǒng)1看見真實對象時,機器人系統(tǒng)1必須將真實對象“識別”為所定義虛擬對象中的一者。如果將被操作的真實對象具有充分不同的形狀且無需依賴于其顏色、紋理或其它特征來對其進行區(qū)分,那么與虛擬對象相關(guān)聯(lián)的基元或復(fù)雜形狀及其幾何參數(shù)已經(jīng)足夠用于機器人系統(tǒng)1通過機器人系統(tǒng)1的光學(xué)感知構(gòu)件(例如3D激光掃描器或相機)來辨識真實對象。通過3D激光掃描器,機器人系統(tǒng)1 能夠獲得真實對象的三維數(shù)據(jù)。接著可將三維數(shù)據(jù)對照虛擬對象的相關(guān)聯(lián)形狀和幾何參數(shù)進行比較以查看哪一虛擬對象最相似于真實對象。即使機器人系統(tǒng)1僅具有相機,上述辨識也仍是可能的。當(dāng)機器人系統(tǒng)1通過圖像俘獲裝置30看見真實對象時,其首先使用真實對象的一個或一個以上所俘獲圖像來構(gòu)造真實對象的三維模型,且接著將三維模型對照虛擬對象的相關(guān)聯(lián)形狀和幾何參數(shù)進行比較。關(guān)于根據(jù)一個或一個以上二維圖像構(gòu)造三維模型,在計算機圖形、圖像處理等領(lǐng)域中已存在很多教示。舉例來說,David G.Lowe教示一種計算機視覺系統(tǒng),其可從單一灰度級圖像中的未知視點辨識三維對象(“Three-dimensional object recognition from singletwo-dimensional images”,人工智能,31,3 (1987 年 3 月),第 355 到 395 頁)。然而,為了進一步增強識別速率或區(qū)分具有實質(zhì)上類似形狀的真實對象,本發(fā)明提供額外的圖像關(guān)聯(lián)步驟。在此步驟中,對于待處理的每一真實對象,提供從不一定相同于從機器人系統(tǒng)1的圖像俘獲裝置30觀看的視角的視角獲取的真實對象的至少一個二維圖像301,且使圖像301與對應(yīng)于真實對象的所定義虛擬對象相關(guān)聯(lián)。這些圖像301通常是預(yù)先獲取且存儲在圖像庫300中,圖像庫300是如圖Ib說明的軟件系統(tǒng)40的部分。換句話說,對于待處理的每一真實對象(且因此對于所定義的每一虛擬對象),圖像庫300中存在真實對象的至少一個圖像301。在以上實例之后,圖像關(guān)聯(lián)步驟可使用偽碼如下表示圖像關(guān)聯(lián)Imagel :A ;Image2 :B.其中Imagel是對應(yīng)于虛擬對象A的真實對象600的二維圖像,而Image2是對應(yīng)于虛擬對象B的真實對象700的二維圖像,如圖2g所示。在替代實施例中,圖像關(guān)聯(lián)步驟實際上與對象定義步驟組合,如以下偽碼所表示虛擬對象A :C0NE+CYLINDER = Imagel ;B :P0T = Image2 ;如所提到,在其操作期間,機器人系統(tǒng)1將總是嘗試“識別”真實對象。在無圖像關(guān)聯(lián)步驟的情況下,機器人系統(tǒng)1可僅依賴于與虛擬對象相關(guān)聯(lián)的基元或復(fù)雜形狀及其幾何參數(shù)。在具有圖像關(guān)聯(lián)步驟的情況下,通過使用某種圖像處理構(gòu)件將真實對象的一些所俘獲圖像(通過圖像俘獲裝置30)匹配于與所有虛擬對象相關(guān)聯(lián)的預(yù)先獲取的圖像來進一步支持對真實對象的識別。如果存在相關(guān)聯(lián)圖像最相似于真實對象的所俘獲圖像的一個虛擬對象,那么真實對象被“識別”為特定虛擬對象。圖像處理構(gòu)件并不是本發(fā)明的標(biāo)的物,且關(guān)于使用二維圖像識別三維對象存在許多教示。舉例來說,Daniel P. Huttenlocher等人教示了通過將對象的所存儲二維視圖對照未知視圖進行比較來辨識對象而無需事先知曉視圖中的點之間的對應(yīng)關(guān)系的算法 (“Recognizing Three-Dimensional Objects byComparing Two-Dimensional Images”, cvpr,第878頁,1996IEEE計算機視覺和圖案識別的計算機學(xué)科會議(CVPR' 96),1996 年)。請注意,對象模型庫100、操作模塊庫200和圖像庫300通常預(yù)先安裝在軟件系統(tǒng) 40中,之后操作者使用軟件系統(tǒng)40來產(chǎn)生任務(wù)描述(見圖2g)以教示機器人系統(tǒng)1做什么。然而,對象模型庫100和操作模塊庫200兩者具有一些內(nèi)建的對象模型101(例如,那些基元形狀)和操作模塊201。相比之下,圖像庫300中的圖像301可預(yù)先準(zhǔn)備或者在對象定義步驟或圖像關(guān)聯(lián)步驟期間稍后添加。請注意,圖像301可由不同于機器人系統(tǒng)1的圖像俘獲裝置30的單獨圖像俘獲裝置獲取。請注意,本發(fā)明是關(guān)于針對具有光學(xué)感知構(gòu)件的機器人系統(tǒng)產(chǎn)生任務(wù)描述,使得機器人系統(tǒng)知曉如何處理至少一個真實對象。然而,基于任務(wù)描述,機器人系統(tǒng)如何實際執(zhí)行任務(wù)并不是本發(fā)明的標(biāo)的物,且因此在本說明書中省略大部分細(xì)節(jié)。如可設(shè)想,存在執(zhí)行任務(wù)的各種方式。以對真實對象的識別作為實例,一個機器人系統(tǒng)可簡單且完全地依賴于預(yù)先獲取的圖像,而另一機器人系統(tǒng)可另外利用事先已知的虛擬對象的幾何信息來實現(xiàn)較高的識別成功率。即使省略了關(guān)于在機器人系統(tǒng)的操作期間執(zhí)行任務(wù)描述的細(xì)節(jié),關(guān)于利用任務(wù)描述中包含的信息來保證成功進行如任務(wù)描述中指定的操作的方式也存在大量現(xiàn)有教示。圖3a提供根據(jù)本發(fā)明實施例的繪示對機器人系統(tǒng)1進行教示(即,產(chǎn)生任務(wù)描述)以處置一個或一個以上真實對象的步驟的流程圖。如所說明,在步驟500中,提供對象模型庫100和操作模塊庫200。對于將由機器人系統(tǒng)1處理的每一真實對象,存在定義至少在幾何上類似于真實對象的三維形狀的至少一個對象模型101,或者存在其所定義形狀可經(jīng)組合以至少在幾何上類似于真實對象的兩個或兩個以上對象模型101。每一對象模型 101含有至少一個幾何參數(shù)。而且,對于將對真實對象執(zhí)行的每一操作,操作模塊庫200中包含至少一個操作模塊201。每一操作模塊201具有若干預(yù)定操作參數(shù),用于指定所述至少一個虛擬對象作為操作的目標(biāo)且用于指定與操作相關(guān)的關(guān)于虛擬對象的額外若干條信息。接著,在步驟510中,對于待處理的每一真實對象,提供虛擬對象的定義。虛擬對象定義含有虛擬對象的唯一名稱、對包含于對象模型庫100中的對象模型101或若干對象模型的組合的參考,以及根據(jù)真實對象對對象模型的幾何參數(shù)的值的指定。在此步驟之后, 待處理的每一真實對象實際上由實質(zhì)上且在幾何上類似于真實對象的虛擬對象表示。隨后,在步驟520中,對于將對真實對象執(zhí)行的每一操作,提供操作的定義。操作定義包含對包含于操作模塊庫200中的操作模塊201的參考,以及對操作模塊201的預(yù)定操作參數(shù)的指定。在此步驟之后,將由機器人系統(tǒng)1執(zhí)行的每一操作實際上由操作模塊201 及其指定操作參數(shù)來描述。最終,在步驟530中,對于在步驟510中定義的每一虛擬對象,提供預(yù)先獲取的由虛擬對象表示的真實對象的至少一個二維圖像且使所述圖像與虛擬對象相關(guān)聯(lián)。在此步驟之后,完成用于機器人系統(tǒng)1的任務(wù)描述,如圖2g所示,所述任務(wù)描述含有對應(yīng)于待處理真實對象的一個或一個以上虛擬對象定義、對應(yīng)于將對真實對象執(zhí)行的操作的一個或一個以上操作定義,以及與對應(yīng)虛擬對象相關(guān)聯(lián)的真實對象的一個或一個以上圖像。圖北繪示本發(fā)明另一實施例的主要步驟。其極為類似于先前實施例,不同的是 (1)在初始步驟800中預(yù)先準(zhǔn)備且在圖像庫中提供二維圖像301 ;以及( 在對象定義步驟 810中一起進行圖像301到虛擬對象的關(guān)聯(lián)。操作定義步驟820相同于先前實施例的步驟 520。雖然已參考優(yōu)選實施例描述了本發(fā)明,但將了解,本發(fā)明不限于對其描述的細(xì)節(jié)。 已在上述描述中建議了各種替代和修改,且所屬領(lǐng)域的技術(shù)人員將了解其它替代和修改。 因此,所有此類替代和修改均既定包含于如所附權(quán)利要求書界定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種對具有光學(xué)感知構(gòu)件的機器人系統(tǒng)進行教示以對至少一個真實對象執(zhí)行至少一個操作的方法,所述方法包括以下步驟提供包含描述三維形狀的至少一個對象模型的對象模型庫,且提供包含描述操作的至少一個操作模塊的操作模塊庫,其中每一對象模型包括所述三維形狀的多個幾何參數(shù);且每一操作模塊包括關(guān)于待操作的至少一個目標(biāo)的多個操作參數(shù)和與所述操作相關(guān)的多條 fn息;定義虛擬對象以表示所述機器人系統(tǒng)將操作的真實對象,其中所述虛擬對象定義是與唯一名稱和所述對象模型庫的對象模型相關(guān)聯(lián);由所述對象模型描述的所述三維形狀實質(zhì)上且在幾何上類似于所述真實對象,且所述對象模型的所述多個幾何參數(shù)是根據(jù)所述真實對象來指定;以及定義所述機器人系統(tǒng)將對至少所述真實對象執(zhí)行的操作,其中所述操作定義是與所述操作模塊庫的操作模塊相關(guān)聯(lián),所述操作參數(shù)的所述目標(biāo)經(jīng)指定為表示所述真實對象的所述虛擬對象的所述唯一名稱,且所述操作參數(shù)的所述多條信息是根據(jù)所述虛擬對象和所述操作來指定。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述光學(xué)感知構(gòu)件包括3D激光掃描器。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述光學(xué)感知構(gòu)件包括圖像俘獲裝置。
4.根據(jù)權(quán)利要求3所述的方法,其進一步包括以下步驟提供預(yù)先獲取的將由所述機器人系統(tǒng)處理的所述真實對象的至少一個二維圖像;以及使所述二維圖像與表示所述真實對象的所述虛擬對象相關(guān)聯(lián)。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于在定義所述虛擬對象時使所述二維圖像與所述虛擬對象相關(guān)聯(lián)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于由所述機器人系統(tǒng)的所述圖像俘獲裝置獲取所述二維圖像。
7.根據(jù)權(quán)利要求3所述的方法,其進一步包括以下步驟提供包含預(yù)先獲取的將由所述機器人系統(tǒng)處理的所述真實對象的至少一個二維圖像的圖像庫;以及使所述二維圖像與表示所述真實對象的所述虛擬對象相關(guān)聯(lián)。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于在定義所述虛擬對象時使所述二維圖像與所述虛擬對象相關(guān)聯(lián)。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于由所述機器人系統(tǒng)的所述圖像俘獲裝置獲取所述二維圖像。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于在繪圖環(huán)境中進行所述方法。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于在所述機器人系統(tǒng)上執(zhí)行所述繪圖環(huán)境。
12.根據(jù)權(quán)利要求1所述的方法,其特征在于所述三維形狀是基元形狀。
13.根據(jù)權(quán)利要求1所述的方法,其進一步包括針對將由所述機器人系統(tǒng)處理的真實對象定義虛擬對象,其中所述虛擬對象定義是與唯一名稱和所述對象模型庫的至少兩個對象模型相關(guān)聯(lián);由所述對象模型描述的所述三維形狀在被組合在一起之后實質(zhì)上且在幾何上類似于所述真實對象,且所述對象模型的所述多個幾何參數(shù)是根據(jù)所述真實對象來指定。
14.根據(jù)權(quán)利要求13所述的方法,其特征在于所述對象模型的所述三維形狀中的至少
全文摘要
首先,提供對象模型庫和操作模塊庫。對象模型庫包含在幾何上類似于待處理的真實對象的至少一個對象模型。操作模塊庫包含用于待執(zhí)行的每一操作的至少一個操作模塊。接著,對于待處理的每一真實對象,通過與對象模型庫中的對象模型的關(guān)聯(lián)且通過對象模型的幾何參數(shù)的指定來定義虛擬對象。隨后,對于待執(zhí)行的每一操作,通過從操作模塊庫中選擇操作模塊且指定其操作參數(shù)來定義所述操作。任選地,對于所定義的每一虛擬對象,使預(yù)先獲取的對應(yīng)真實對象的至少一個二維圖像與虛擬對象相關(guān)聯(lián)。
文檔編號G05B19/418GK102177478SQ200980139539
公開日2011年9月7日 申請日期2009年11月10日 優(yōu)先權(quán)日2009年1月9日
發(fā)明者林其禹 申請人:林其禹