專利名稱:用于產(chǎn)生機器人的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及機器人學(xué)領(lǐng)域,更具體地涉及用于產(chǎn)生機器人設(shè) 備的改進的方法和系統(tǒng)。
背景技術(shù):
許多年以前已經(jīng)預(yù)測過,而現(xiàn)在繼續(xù)著這種預(yù)測,即在將來數(shù)年, 普通消費者對機器人設(shè)備的使用的依賴性將會不斷增加。盡管目前有 許多采用機器人設(shè)備執(zhí)行特定任務(wù)的方法和系統(tǒng),但這些機器人設(shè)備 一般用于專門用途。
機器人的使用尚未變得像所預(yù)測的那樣流行的一個主要原因是 設(shè)計和開發(fā)哪怕用于執(zhí)行簡單任務(wù)的簡單機器人都需要大量的時間和 努力。此外,盡管為設(shè)計機器人已經(jīng)付出了相當(dāng)多的努力,但在機器 人開發(fā)方面存在限制。設(shè)計機器人方面目前的限制包括設(shè)計和開發(fā) 機器人所需的技藝的復(fù)雜特性;缺乏將目前機器人設(shè)計擴展到新機器
人設(shè)計的可移植性;以及機器人設(shè)備不能對非預(yù)見的情形或情況作出響應(yīng)。
發(fā)明內(nèi)容
在本發(fā)明的第一方面,提供了一種用于完全或部分自動產(chǎn)生機器
人設(shè)備的方法。該方法包括以下步驟引出和接收用戶輸入,以確定
所述機器人設(shè)備的一個或多個任務(wù)的任務(wù)規(guī)定;基于所提供的任務(wù)規(guī) 定來確定包括一個或多個任務(wù)的任務(wù)列表;基于所提供的任務(wù)列表來 確定一個或多個運動組件、 一個或多個處理組件以及執(zhí)行一個或多個 任務(wù)所需的邏輯組件;以及產(chǎn)生執(zhí)行一個或多個任務(wù)所需的邏輯組件, 并將所述邏輯組件嵌入與所述機器人設(shè)備相關(guān)聯(lián)的可記錄介質(zhì)上。 在本發(fā)明的第二方面,提供了一種創(chuàng)建機器人設(shè)備的方法,其中提供了所述機器人設(shè)備操作的環(huán)境,該方法包括輸入對所述環(huán)境的 區(qū)域進行限定的地圖;輸入起始點,所述起始點指示了所述區(qū)域內(nèi)所 述機器人設(shè)備將從其開始操作的位置;沿從所述起始點發(fā)出的、所述 機器人設(shè)備將遵循的路線輸入一個或多個停止點;以及輸入所述機器
人設(shè)備在起始點、停止點或沿所述路線要完成一個或多個任務(wù)。 在本發(fā)明的另一方面,提供了一種用于規(guī)定機器人設(shè)備要完成的
一個或多個任務(wù)的方法。該方法包括規(guī)定所述機器人設(shè)備是物理機 器人設(shè)備還是虛擬機器人設(shè)備;規(guī)定所述機器人設(shè)備將要操作的位置; 規(guī)定所述機器人設(shè)備將要執(zhí)行的活動;以及提供與所述機器人設(shè)備將 要執(zhí)行的活動有關(guān)的詳細信息。
在本發(fā)明的另一方面,提供了一種由在團隊環(huán)境中進行操作的多 個機器人設(shè)備完成一個或多個任務(wù)的方法。該方法包括將所述多個 機器人設(shè)備中的一個或多個選擇為控制機器人設(shè)備;在所述控制機器 人設(shè)備處確定所述多個機器人設(shè)備中的一個或多個是否需要新的機器 人規(guī)定;從所述控制機器人設(shè)備向機器人服務(wù)器發(fā)送針對新的機器人 規(guī)定的請求;以及在所述多個機器人設(shè)備中的所述一個或多個處接收 新的機器人規(guī)定。
為了更好地理解此處描述的系統(tǒng)和方法的實施例,以及更清楚地 示出如何實現(xiàn)這些實施例,將以示例方式參照附圖,在附圖中 圖1是示出了機器人產(chǎn)生系統(tǒng)的組件的框圖; 圖2是示出了機器人設(shè)備的組件的框圖; 圖3是示出了產(chǎn)生器的組件的框圖; 圖4是示出了知識庫模塊的組件的圖; 圖5是示出了機器人產(chǎn)生方法的步驟的流程圖; 圖6是示出了任務(wù)規(guī)定方法的步驟的流程圖; 圖7是示出了任務(wù)產(chǎn)生方法的步驟的流程圖; 圖8是示出了環(huán)境規(guī)定方法的步驟的流程圖; 圖9是示例地圖編輯器窗口的屏幕截圖;圖IO是示例地圖編輯器窗口的另一屏幕截圖; 圖11是示例地圖編輯器窗口的另一屏幕截圖; 圖12是示例地圖編輯器窗口的另一屏幕截圖; 圖13是示例地圖編輯器窗口的另一屏幕截圖;以及
圖14A和圖14B是任務(wù)規(guī)定窗口的示例屏幕截圖。
具體實施例方式
應(yīng)當(dāng)理解,為了示意簡單清楚,在認為適當(dāng)?shù)那闆r下,在附圖中 可以重復(fù)使用附圖標(biāo)記,以指示對應(yīng)的或相似的元件或步驟。另外, 為了提供對此處描述的示例實施例的詳盡理解,闡述了許多具體細節(jié)。 然而,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)理解,此處描述的實施例可以在沒有 這些具體細節(jié)的情況下實施。在其他情況下,未詳細描述公知的方法、 過程和組件,以免不能突出此處描述的實施例。此外,該描述不應(yīng)被 視為以任何方式限制此處描述的實施例的范圍,而應(yīng)被視為僅僅描述 了此處描述的各種實施例的實現(xiàn)方式。
現(xiàn)在參照圖l,圖i是示出了機器人產(chǎn)生系統(tǒng)io的組件的框圖。機
器人產(chǎn)生系統(tǒng)10用于產(chǎn)生機器人設(shè)備12,機器人設(shè)備12可以是真實機 器人設(shè)備、虛擬機器人設(shè)備以及包括真實和虛擬組件的混合在內(nèi)的機 器人設(shè)備(被稱作混合現(xiàn)實機器人設(shè)備)。示例實施例中的系統(tǒng)10由一 個或多個機器人設(shè)備12組成。 一個或多個機器人設(shè)備12組成的組可以 被稱作機器人團隊14。機器人設(shè)備12通過機器人服務(wù)器20來與指令進 行交互并接收指令。機器人服務(wù)器20用于接收與所創(chuàng)建的機器人設(shè)備 12有關(guān)的指令,并執(zhí)行對與機器人設(shè)備12相關(guān)聯(lián)的組件進行確定所需 的處理。機器人服務(wù)器20還被稱作機器人控制器,并且在如下所述的 示例實施例中,機器人服務(wù)器20由機器人產(chǎn)生器應(yīng)用22、機器人產(chǎn)生 接口24和知識數(shù)據(jù)庫26組成。機器人服務(wù)器20從通過計算設(shè)備30與機 器人服務(wù)器20進行通信的一個或多個用戶接收指令。計算設(shè)備30通過 任何類型的通信網(wǎng)絡(luò)31來與機器人服務(wù)器20進行交互。
機器人設(shè)備12在所限定的環(huán)境中進行操作,并通過實現(xiàn)任務(wù)規(guī)定 來執(zhí)行已針對設(shè)備12定義的一個或多個任務(wù)。機器人設(shè)備12操作的環(huán)境可以包括真實設(shè)置、仿真設(shè)置或混合現(xiàn)實設(shè)置。這樣的真實環(huán)境的 示例包括但不限于家庭環(huán)境、辦公室環(huán)境、公園、購物中心、商場、 加工和制造廠、石油鉆探和采礦環(huán)境、精煉廠、飛行和空間環(huán)境、醫(yī) 療和顯微環(huán)境、以及可以關(guān)于其區(qū)域和潛在障礙物來描述的任何其他 環(huán)境。在示例實施例中,用戶通常描述環(huán)境的位置(即室內(nèi)、室外、 或兩者)、環(huán)境的類型(即虛擬環(huán)境、真實環(huán)境、或混合環(huán)境)、控制 的類型(即用戶控制或自控制)。如下以更詳細描述的,用戶可以進一 步規(guī)定興趣點、起始點、行進方向以及機器人設(shè)備在環(huán)境內(nèi)的競賽任 務(wù)。標(biāo)準的區(qū)別包括但不限于室內(nèi)環(huán)境、室外環(huán)境或混合環(huán)境;虛 擬、物理或混合現(xiàn)實;自控制、用戶控制或用戶引導(dǎo);而如沿途點之 間的行程之類的區(qū)別完全覆蓋了給定區(qū)域或徘徊于給定區(qū)域,或特定 障礙物,或者可以與特定應(yīng)用相關(guān)來規(guī)定特定任務(wù)。仿真設(shè)置包括虛 擬機器人設(shè)備12可以操作的所限定的任何虛擬環(huán)境,這些虛擬環(huán)境的 示例包括仿真中使用的虛擬環(huán)境,如通過仿真提供訓(xùn)練的視頻游戲和 環(huán)境。這些訓(xùn)練環(huán)境的示例可以包括但不限于仿真的操作室環(huán)境、 仿真的災(zāi)難/營救環(huán)境以及仿真的空間環(huán)境?;旌犀F(xiàn)實設(shè)置可以包括真 實、虛擬或混合現(xiàn)實機器人設(shè)備可以操作的所限定的任何環(huán)境,這些 混合現(xiàn)實環(huán)境的示例包括但不限于以下的真實環(huán)境其中,環(huán)境的一 部分是投影到真實環(huán)境中或投影到真實環(huán)境上的虛擬環(huán)境。任務(wù)可以 包括為使機器人設(shè)備在限定的環(huán)境內(nèi)完成而定義的任何活動或動作。
機器人團隊14可以包括任意數(shù)目的機器人設(shè)備12。作為機器人團 隊一部分的機器人設(shè)備12進行協(xié)作,以執(zhí)行在特定環(huán)境中已針對機器 人設(shè)備12定義的任務(wù)。機器人團隊14內(nèi)的機器人設(shè)備12可以互相進行 交互以完成定義的任務(wù)。機器人設(shè)備12之間的交互可以由以下構(gòu)成 傳感器數(shù)據(jù)、動作計劃和/或控制指令的交換;以及對各個其他機器人 設(shè)備12的總體操作的控制。
機器人服務(wù)器20是計算設(shè)備,用于產(chǎn)生機器人設(shè)備,更具體地, 用于產(chǎn)生與機器人設(shè)備12相關(guān)聯(lián)的固件、硬件和軟件(被稱作邏輯組 件)。當(dāng)用戶希望發(fā)起產(chǎn)生機器人的過程,或者希望與己產(chǎn)生的機器人 設(shè)備12進行交互時,通過使用計算站30來接合機器人服務(wù)器20。在示
9例實施例中,多個計算站30可以通過通信網(wǎng)絡(luò)31來訪問機器人服務(wù)器
20。在備選實施例中,服務(wù)器20和計算站可以駐留于相同計算機上, 而無需是分離的設(shè)備。機器人服務(wù)器20可以是web應(yīng)用、云計算機 (cloud computer)、聯(lián)網(wǎng)計算機、個人計算機、手持計算機,或者可 以在移動設(shè)備上找到。
在示例實施例中,機器人產(chǎn)生器應(yīng)用22駐留于機器人服務(wù)器20 上。在備選實施例中,機器人產(chǎn)生器應(yīng)用22可以分布在兩個或更多個 設(shè)備12上。因此,機器人產(chǎn)生器應(yīng)用22可以被多個計算設(shè)備訪問。參 照圖3更詳細地描述機器人產(chǎn)生器應(yīng)用22。在接合時,機器人產(chǎn)生器應(yīng) 用22允許接收對要產(chǎn)生的機器人設(shè)備12的描述,以便可以創(chuàng)建適當(dāng)?shù)?設(shè)計方案。
機器人產(chǎn)生接口24用于從用戶接收涉及機器人設(shè)備12的設(shè)計的 指令,并與已創(chuàng)建的機器人設(shè)備12進行交互。產(chǎn)生接口24還根據(jù)機器 人設(shè)備12的規(guī)定來產(chǎn)生定制接口,以允許用戶根據(jù)需要控制設(shè)備12的 操作。
在示例實施例中,知識庫模塊26是數(shù)據(jù)存儲器或儲存庫,存儲產(chǎn) 生機器人設(shè)備12的組件過程中所使用的多種類型的信息。在示例實施 例中,如圖4所示,提供了多種類型的知識庫,其中,機器人產(chǎn)生器應(yīng) 用22訪問并使用這些知識庫,以確定機器人的規(guī)定并創(chuàng)建機器人設(shè)備 12。
機器人制造模塊28接收所有的硬件規(guī)定、軟件規(guī)定和固件規(guī)定, 以包括在機器人設(shè)備12中。當(dāng)機器人制造模塊28已接收到用于創(chuàng)建機 器人設(shè)備12的指令時,制造模塊28可以產(chǎn)生芯片上機器人系統(tǒng) (RSOC)。制造模塊可以產(chǎn)生機器人設(shè)備12的組件,以使得機器人設(shè) 備可以包括RSOC、機器人規(guī)定、固件下載、固件ROM、軟件模塊、 如通過CNC的機械制造、以及MEMS/NEMS制造的任意組合。如在以 下解釋的機器人創(chuàng)建方法中由用戶所規(guī)定的,對機器人設(shè)備12的組件 的確定將根據(jù)要創(chuàng)建的機器人設(shè)備12的特性、使用和用途而變化。例 如,機器人制造模塊28所創(chuàng)建的機器人設(shè)備12的組件可能根據(jù)機器人 設(shè)備是用于大規(guī)模市場銷售還是用于一次性創(chuàng)建而變化。制造模塊28接收由各種產(chǎn)生器提供的輸出,然后,使用該信息來制造機器人設(shè)備 12。在示例實施例中,由產(chǎn)生器提供的輸出是應(yīng)當(dāng)產(chǎn)生的組件的規(guī)定。 在示例實施例中,要產(chǎn)生的組件是通過對被稱作高級組件組的內(nèi)容進 行標(biāo)識來描述的。高級組件組可以包括但不限于發(fā)動機、傳感器、 致動器、機械組件、軟件和固件、邏輯和處理組件。這些高級組件組 可以進一步子劃分為更具體的組件,如溫度、音頻、視覺、觸覺和環(huán) 境傳感器。這些組件可以包括機械組件、處理組件和邏輯組件。在示 例實施例中,規(guī)定是以XML格式提供的,并可以表示實際軟件代碼或 規(guī)定。關(guān)于與機器人設(shè)備相關(guān)聯(lián)的機械組件,在示例實施例中,規(guī)定 包括對在機器人設(shè)備12的組裝中應(yīng)當(dāng)使用的機械組件的描述。這些機 械組件可以包括但不限于輪子、接合部、齒輪、底盤、夾持器、傳 感器和致動器。這些機械組件可以關(guān)于制造者、制造者的指令、設(shè)備 類型、電學(xué)要求、固件接口、大小、重量和成本的任意組合來進行描
述。在示例實施例中,這些規(guī)定是以如XML之類的文件格式提供的。 在接收到這樣的規(guī)定之后,可以手動組裝機器人設(shè)備12的物理組件, 或者備選地,可以通過自動化過程來組裝機器人設(shè)備12的物理組件。 舉例而言,對于已具有執(zhí)行清掃任務(wù)這一任務(wù)的機器人設(shè)備12, 制造模塊28從如下所述的各個產(chǎn)生器接收對機器人設(shè)備進行構(gòu)造所必
需的所有物理(機械)組件的規(guī)定。這樣的描述可以包括與任何傳
感器和致動器相關(guān)聯(lián)的各種規(guī)定;以及與關(guān)聯(lián)于設(shè)備12的底盤和底座
的機械規(guī)定相關(guān)聯(lián)的各種規(guī)定。該規(guī)定還可以包括電氣和電子組件, 這些電氣和電子組件可以包括但不限于處理器、存儲器、配線、存
儲裝置。該規(guī)定還包括軟件、操作系統(tǒng)信息和環(huán)境描述。軟件包括但 不限于相應(yīng)的行為、例程、算法、試探法以及任何人工智能組件。一
旦組裝了機器人設(shè)備12,機器人設(shè)備12將其操作所需的適當(dāng)軟件/固件 下載到機器人設(shè)備12。在示例實施例中,基于已由如下所述的各個產(chǎn) 生器提供的規(guī)定,制造模塊28創(chuàng)建用于機器人設(shè)備12的軟件/固件。
可以接合機器人產(chǎn)生服務(wù)器20的計算設(shè)備30可以是用戶能向其 提供輸入的任何類型的計算設(shè)備,包括但不限于膝上型計算機、薄 線型計算機、大型計算機、手持計算機、視頻游戲類型控制臺計算機、
ii云計算機、蜂窩設(shè)備、以及具有處理能力并可接收輸入的任何其他計 算設(shè)備。
現(xiàn)在參照圖2,其中,在示例實施例中示出了一幅框圖,該框圖
示意了機器人設(shè)備12的組件。示例實施例中的機器人設(shè)備12由一個或 多個傳感器32、 一個或多個致動器34、 一個或多個通信信道36、至少 一個處理器38以及電源和存儲器(圖中未示出)組成。機器人設(shè)備12 由可以存儲于機器人設(shè)備12的外部、內(nèi)部或內(nèi)部與外部組合的各種硬 件、軟件、固件組件(邏輯組件)組成。與機器人設(shè)備相關(guān)聯(lián)的傳感 器32可以包括視覺傳感器、音頻傳感器、溫度傳感器或用于確定與機 器人設(shè)備12操作的環(huán)境有關(guān)的特性的任何其他傳感器。然后,可以將 感測到的特性發(fā)送給處理器38,然后在處理器38中可以可選地將其發(fā)
送給包括機器人控制器在內(nèi)的允許對該機器人設(shè)備進行外部控制的設(shè) 備,或發(fā)送給作為機器人團隊14一部分的其他機器人設(shè)備12。致動器 能夠在相應(yīng)環(huán)境內(nèi)執(zhí)行各種動作,這樣的動作的示例包括環(huán)境內(nèi)的 運動;以及在環(huán)境內(nèi)與一個或多個對象接合。通信信道36允許與外部 組件或設(shè)備進行有線或無線通信。被發(fā)送至外部通信設(shè)備或從外部通 信設(shè)備接收的通信允許對傳感器數(shù)據(jù)進行交換,以及允許接收指令以 允許控制設(shè)備12。與機器人設(shè)備相關(guān)聯(lián)的處理器38用于執(zhí)行命令,并 接收和發(fā)送指令,以使得機器人設(shè)備12將以規(guī)定的方式進行操作。
基于產(chǎn)生機器人設(shè)備12的組件的過程,將機器人設(shè)備12設(shè)計并實 現(xiàn)為在環(huán)境內(nèi)完成一個或多個任務(wù),而無需來自用戶的任何特定指令 交互。在該示例實施例中,已將機器人設(shè)備12描述為物理實體,然而 應(yīng)當(dāng)注意,在備選實施例中,機器人設(shè)備可以在虛擬環(huán)境、仿真環(huán)境 或混合現(xiàn)實環(huán)境中表示。
現(xiàn)在參照圖3,其中,在示例實施例中示出了產(chǎn)生器應(yīng)用22的組 件。產(chǎn)生器應(yīng)用22用于規(guī)定創(chuàng)建機器人設(shè)備12的用途,然后在不需要
任何另外的低級規(guī)定或開發(fā)者編程的情況下創(chuàng)建機器人設(shè)備。因此, 產(chǎn)生器應(yīng)用22允許基于用戶規(guī)定來自動產(chǎn)生要與機器人設(shè)備12相關(guān)聯(lián)
的各種硬件、軟件和固件組件。
在示例實施例中,產(chǎn)生器應(yīng)用22包括以下組件任務(wù)規(guī)定模塊40、任務(wù)產(chǎn)生器模塊42、機器人產(chǎn)生器模塊44、接口產(chǎn)生器模塊46和通信 產(chǎn)生器模塊48。與產(chǎn)生器應(yīng)用22相關(guān)聯(lián)的各種組件能夠同與以下參照 圖4更詳細描述的知識模塊26相關(guān)聯(lián)的組件進行交互,因此,這允許產(chǎn) 生與機器人設(shè)備12相關(guān)聯(lián)的組件。
用戶通過產(chǎn)生器應(yīng)用22來接合任務(wù)規(guī)定模塊40,產(chǎn)生器應(yīng)用22提 供與創(chuàng)建機器人設(shè)備12相關(guān)聯(lián)的用途和其他細節(jié)。如下更詳細描述的, 用戶提供要與機器人設(shè)備12相關(guān)聯(lián)的任務(wù)的描述。在示例實施例中, 用戶通過包括與該用戶的多種交互的用戶接口來接合任務(wù)產(chǎn)生器模塊 40。首先可以基于問題和答案、多項選擇問題、圖示接合的任意組合 來確定與創(chuàng)建機器人設(shè)備12相關(guān)聯(lián)的任務(wù)描述,在該圖示接合中,用 戶可以操控可用于提供任務(wù)描述的圖形對象。用戶可以提供先前已完 成的任務(wù)的任務(wù)描述,或與先前已完成的任務(wù)類似的任務(wù)的任務(wù)描述。 用戶還可以接合已設(shè)計并實現(xiàn)的機器人設(shè)備12,以通過具有關(guān)聯(lián)視覺 識別系統(tǒng)和其他感官組件的機器人設(shè)備12來提供任務(wù)描述。其他感官 組件可以包括但不限于聽覺和觸覺傳感器。視覺識別系統(tǒng)可以用于向 機器人設(shè)備12規(guī)定例如它們可以穿行在什么區(qū)域。在一個示例實施例 中,感官組件可以用于規(guī)定要穿行的區(qū)域,在該區(qū)域中在環(huán)境中放置 各個已標(biāo)識的標(biāo)記。這些標(biāo)記可以代表可穿行和不可穿行的區(qū)域。相 應(yīng)的標(biāo)識符可以由傳感器檢測,該傳感器包括但不限于視覺、GPS、 RFID、音頻、減震器或軸編碼器系統(tǒng)??梢砸钥梢园煌墑e的細 節(jié)的地圖的形式來表示相應(yīng)的環(huán)境。
在示例實施例中,任務(wù)規(guī)定模塊40首先從用戶接收機器人設(shè)備12
將要執(zhí)行的任務(wù)的描述,以及與用戶相關(guān)聯(lián)的技巧級別(該級別的范 圍從新初學(xué)者至有經(jīng)驗的用戶)?;诩记杉墑e的規(guī)定,針對適當(dāng)?shù)募?別來調(diào)整用戶與相應(yīng)接口之間的任何通信交換。在示例實施例中,被 提供給用戶的功能可以根據(jù)該技巧級別以及向用戶給出的相關(guān)聯(lián)特權(quán) 而變化。在特定實施例中,可以向高級用戶提供規(guī)定用于產(chǎn)生機器人 設(shè)備12的較高級別細節(jié)的能力。在接收到任務(wù)規(guī)定的描述時,如下詳 述的任務(wù)規(guī)定模塊40創(chuàng)建對機器人設(shè)備12要執(zhí)行的任務(wù)的規(guī)定以及與 機器人設(shè)備12操作的環(huán)境相關(guān)聯(lián)的約束有關(guān)的任何信息。然后,任務(wù)
13產(chǎn)生器模塊42使用這些約束和己規(guī)定的任務(wù),來產(chǎn)生機器人設(shè)備12要 使用的適當(dāng)硬件/軟件規(guī)定。在示例實施例中,可以使用專家系統(tǒng)來對 任務(wù)規(guī)定細節(jié)進行構(gòu)造,該專家系統(tǒng)采用一系列問題和選擇,以將該 規(guī)定從概括的可能性范圍縮小至一個或多個集中具體的任務(wù)。此外, 還可以使用學(xué)習(xí)方法,其中,對先前的動作進行檢查以幫助確定未來
的動作。此外,還可以使用案例推理算法。任務(wù)產(chǎn)生器模塊42接收各
種輸入,以產(chǎn)生硬件/軟件規(guī)定,這將在以下更詳細地描述。任務(wù)產(chǎn)生
器模塊42接收用戶已提供的高級別的任務(wù)規(guī)定。如果先前已實現(xiàn)了類 似的或相同的任務(wù),則任務(wù)產(chǎn)生器模塊42從適當(dāng)?shù)闹R數(shù)據(jù)庫檢索這 些規(guī)定。用戶可以提供輸入,以進一步闡明或規(guī)定預(yù)先存在的任務(wù)規(guī) 定。新的任務(wù)還可以由若干預(yù)先存在的任務(wù)組成。如參照圖5進一步描 述的,示例實施例中的任務(wù)產(chǎn)生器將已針對特定機器人設(shè)備而規(guī)定的 任務(wù)、與該機器人設(shè)備將要操作的環(huán)境有關(guān)的信息、以及處理要求作 為輸入進行接收。與機器人設(shè)備12操作的環(huán)境有關(guān)的信息包括但不限 于與區(qū)域的尺寸、障礙物和環(huán)境條件有關(guān)的信息。還可以將物理能力 和成本作為任務(wù)規(guī)定的方面予以提供。 一旦基于與執(zhí)行機器人設(shè)備12 要實現(xiàn)的任務(wù)的實現(xiàn)相關(guān)聯(lián)的計算要求對這些任務(wù)進行了確定,則進 行處理要求確定。產(chǎn)生器模塊42與之交互的相應(yīng)知識數(shù)據(jù)庫存儲與各 個任務(wù)相關(guān)聯(lián)的處理要求有關(guān)的數(shù)據(jù)。例如,知識數(shù)據(jù)庫62將針對任 何特定任務(wù)來規(guī)定所需處理器的類型(即,微控制器或如桌面處理器 之類的較大處理器是兩個這樣的示例)。任務(wù)產(chǎn)生器模塊44首先接收任 務(wù)的規(guī)定,然后開發(fā)任務(wù)列表。任務(wù)列表的開發(fā)基于如參照圖7描述的 與任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62的交互?;谝韵赂敿毥忉尩呐c任務(wù)產(chǎn) 生器知識數(shù)據(jù)庫62的交互來規(guī)定任務(wù)列表,在任務(wù)列表中規(guī)定了機器 人設(shè)備12執(zhí)行的任務(wù)。此外,任務(wù)產(chǎn)生器模塊42基于與知識產(chǎn)生器62
的交互來開發(fā)各種控制系統(tǒng)功能。控制系統(tǒng)功能用于指代對機器人設(shè) 備12的較低級別功能(可以與例如運動能力有關(guān))的控制。確定與機 器人設(shè)備12相關(guān)聯(lián)的約束的一個示例是以必須重復(fù)執(zhí)行多個類似運動 的機器人設(shè)備為例。這樣的機器人在其運動中需要高度的穩(wěn)定性和可 重復(fù)性,這是由于如果在先運動失敗,則未來的運動可能不能進行。這些約束將通過從可能性范圍中去除實驗機器人,來縮小機器人設(shè)備 的選擇。如果運動包括通過重復(fù)的過道運動(例如,在監(jiān)視機器人中), 則可以選擇帶輪子的機器人,而不選擇較不穩(wěn)定的人形機器人。相應(yīng) 知識數(shù)據(jù)庫和產(chǎn)生器模塊確定機器人設(shè)備12要實現(xiàn)的適當(dāng)算法,以實 現(xiàn)任務(wù)列表中的任務(wù)。這些算法可以包括但不限于定位算法、路徑 規(guī)劃算法、計算機視覺算法、模式識別算法、學(xué)習(xí)算法、行為模式、 試探法以及案例推理。各種硬件/軟件/和固件規(guī)定被稱作邏輯組件。
參照圖6所示的任務(wù)規(guī)定方法150的操作來進一步描述任務(wù)規(guī)定
模塊42的操作,并參照圖7來更詳細地描述任務(wù)產(chǎn)生器模塊與任務(wù)產(chǎn)生 器知識數(shù)據(jù)庫62之間的交互。
機器人產(chǎn)生器模塊44從任務(wù)規(guī)定模塊42接收輸入?;谔峁┙o機 器人產(chǎn)生器模塊44的各種輸入,模塊44對要與機器人設(shè)備12相關(guān)聯(lián)的 要求作出各種確定。這些確定包括確定機器人底座(一般指設(shè)備12 的底座)。例如,如果機器人設(shè)備12要執(zhí)行水上動作,則使用在平臺(如 船)上實現(xiàn)的機器人設(shè)備,此外,如果機器人設(shè)備12要執(zhí)行需要機器 人設(shè)備12處于空中的任務(wù),則將在基于飛機的平臺上建造該底座。其 他確定包括對處理要求以及組成機器人設(shè)備12的其他機器人組件(可
以包括但不限于機器臂、機器人接合部、其他機械組件和機器人設(shè)
備的潛在覆蓋物)的確定。機器人產(chǎn)生器模塊44基于與機器人產(chǎn)生器 知識庫64的交互來確定這些要求。細化來自用戶的任務(wù)規(guī)定,直到機 器人產(chǎn)生器的可能性范圍包含單一的匹配響應(yīng)(不再有其他選項)或 包含已從包括可接受方案的知識庫檢索到的響應(yīng)集合。一旦方案可用, 則可以產(chǎn)生機器人,或者如果用戶給出了另外的規(guī)定,則可以進一步 細化機器人,直到該方案可接受或者是唯一可能的方案為止。如果不 存在方案,則不能滿足規(guī)定。舉例而言,可以基于任務(wù)規(guī)定來選擇傳 感器。例如,如果需要機器人設(shè)備12監(jiān)視環(huán)境的空氣質(zhì)量,則如煤氣 和C02的傳感器將被添加至機器人設(shè)備12的物理組成。如果規(guī)定了最 高成本,則將選擇滿足規(guī)定成本的組件,而如果規(guī)定了可靠性,則將 代之以選擇高度可靠的組件。接口產(chǎn)生器模塊46產(chǎn)生允許用戶與機器 人設(shè)備12進行交互的適當(dāng)接口。具體地,接口產(chǎn)生器46接收與確定接、可靠性)的接口類型(即,有線或無線) 有關(guān)的信息以及機器人設(shè)備12將與之通信的計算設(shè)備的類型(即,
PDA、臺式計算機)的描述。計算設(shè)備的類型確定了屏幕大小、計算 能力和接口的存儲特性。參照適當(dāng)知識庫與接口產(chǎn)生器模塊46之間的 交互,來更詳細地描述接口產(chǎn)生器模塊46確定接口組件的方法。
通信產(chǎn)生器模塊48用于產(chǎn)生由機器人設(shè)備12使用的各種通信工 具。通信產(chǎn)生器模塊48確定各種設(shè)備12采用以進行通信的方法。在示 例實施例中,該確定包括規(guī)定哪種協(xié)議用于通信,這可以包括以下協(xié) 議,這些協(xié)議包括但不限于UPD、 RF、莫爾斯碼、基于視覺的通信和 自然語言通信。通信產(chǎn)生器模塊48與通信知識庫68進行交互,以確定 機器人設(shè)備12要使用的適當(dāng)通信工具。
現(xiàn)在參照圖4,其中在示例實施例中示出了知識庫模塊26的組件。 出于描述的目的,已經(jīng)將知識數(shù)據(jù)庫描述為分離的知識數(shù)據(jù)庫。在示 例實施例中,知識庫模塊26包括任務(wù)規(guī)定知識數(shù)據(jù)庫60、任務(wù)產(chǎn)生器 知識數(shù)據(jù)庫62、機器人產(chǎn)生器知識數(shù)據(jù)庫64、接口產(chǎn)生器知識數(shù)據(jù)庫 66和通信產(chǎn)生器知識數(shù)據(jù)庫68。此處的示例實施例中描述的各個知識 數(shù)據(jù)庫是參照這些數(shù)據(jù)庫中包含的、用于產(chǎn)生機器人設(shè)備12的一個或 多個組件的信息來描述的。
當(dāng)與描述任務(wù)并提供與機器人設(shè)備12操作的環(huán)境有關(guān)的信息的 用戶進行交互時,任務(wù)規(guī)定模塊20使用任務(wù)規(guī)定知識數(shù)據(jù)庫60。在示 例實施例中,任務(wù)規(guī)定知識數(shù)據(jù)庫60存儲與多個用戶接口有關(guān)的信息 以及與針對要產(chǎn)生的機器人設(shè)備來規(guī)定任務(wù)的用戶相關(guān)聯(lián)的其他信 息。用戶接口用于從用戶接收所需的規(guī)定。呈現(xiàn)給用戶的用戶接口可 以根據(jù)交互的當(dāng)前狀態(tài)而變化。知識數(shù)據(jù)庫60可以用于采用各種類型 的接口,包括但不限于問答形式、判決樹、圖形編輯器、具有可選 選項列表的形式、包括前進按鈕或后退按鈕的用戶導(dǎo)航元件、具有啟 用缺省選項的形式以及強制用戶輸入字段。呈現(xiàn)給用戶的接口可以基 于與用戶相關(guān)聯(lián)的技巧級別,并包括幫助確定用戶接口的元模型信息。 元模型用于在與計算機或機器人系統(tǒng)進行交互的過程中封裝與各種用 戶類型及其偏好有關(guān)的知識。例如,元模型可以指示高級用戶偏愛文
16本輸入(例如,編程)勝于圖形表示(例如,可視編程)。元模型還允 許用戶控制呈現(xiàn)給他們的細節(jié)的級別。例如,管理員可以選擇非常詳 細地檢查代碼,對其進行優(yōu)化和微調(diào),而終端用戶可以選擇僅使用大 量系統(tǒng)產(chǎn)生的代碼。管理員可以管理接口以允許更強大的功能,其中, 向用戶呈現(xiàn)與機器人設(shè)備可以完成的潛在任務(wù)有關(guān)的更多選項。此外,
相應(yīng)的任務(wù)規(guī)定知識數(shù)據(jù)庫存儲與特定機器人設(shè)備12及其規(guī)定相關(guān)聯(lián)
的用戶接口。
任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62存儲關(guān)于任務(wù)考慮的信息、任務(wù)特定信 息、域信息和歷史信息。任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62存儲與先前機器人 系統(tǒng)相關(guān)聯(lián)的要求。例如,對于先前建造的機器人系統(tǒng)12,數(shù)據(jù)庫62 將存儲與特定任務(wù)的處理要求、硬件和軟件要求有關(guān)的信息以及任何 其他這種信息。機器人產(chǎn)生器知識數(shù)據(jù)庫64存儲允許機器人產(chǎn)生器模 塊44執(zhí)行其相應(yīng)任務(wù)的信息。在示例實施例中,機器人產(chǎn)生器知識數(shù) 據(jù)庫64存儲與同機器人設(shè)備12的設(shè)計相關(guān)聯(lián)的材料考慮(即,重量和 成本考慮)有關(guān)的信息、與先前設(shè)計有關(guān)的信息、環(huán)境考慮(與特定 機器人組件可能如何受環(huán)境影響有關(guān)的信息)、處理能力、以及與任何 機器人設(shè)備的可用組件(包括可以在任何設(shè)計中使用的致動器和傳感 器組件)有關(guān)的信息。
接口產(chǎn)生器知識數(shù)據(jù)庫66存儲與接口的選擇相關(guān)聯(lián)的考慮有關(guān) 的信息,例如包括與先前產(chǎn)生的機器人設(shè)備12的接口設(shè)計有關(guān)的信息。 具體地,接口產(chǎn)生器知識數(shù)據(jù)庫66存儲與關(guān)于接口的系統(tǒng)考慮有關(guān)的 信息,包括其駐留的平臺、與相關(guān)聯(lián)機器人設(shè)備12及其組件相關(guān)聯(lián) 的能力、機器人設(shè)備組件之間的物理連接、以及與機器人設(shè)備12可能 如何受環(huán)境條件影響有關(guān)的其他信息。關(guān)于系統(tǒng)考慮,接口產(chǎn)生器知 識數(shù)據(jù)庫66存儲與特定接口相關(guān)聯(lián)的硬件和軟件有關(guān)的信息。與特定 接口相關(guān)聯(lián)的硬件可以包括與顯示類型有關(guān)的考慮和與接口相關(guān)聯(lián)的 組件(包括音頻組件、輸入組件和視頻組件)有關(guān)的信息。關(guān)于軟件, 接口產(chǎn)生器知識數(shù)據(jù)庫66存儲與在先前接口設(shè)計中使用并可以在后續(xù) 接口設(shè)計中使用的任何GUI庫和控件有關(guān)的信息。
通信產(chǎn)生器知識數(shù)據(jù)庫68存儲與機器人設(shè)備12可以如何進行通信有關(guān)的信息,并包括與通信設(shè)備和先前設(shè)計的機器人設(shè)備的相關(guān)聯(lián) 的規(guī)定有關(guān)的信息。示例實施例中的通信產(chǎn)生器知識數(shù)據(jù)庫68存儲與 可以與特定任務(wù)相關(guān)聯(lián)的通信的要求和能力有關(guān)的信息、以及與各種
通信設(shè)備12的硬件和軟件考慮有關(guān)的信息。
由于可以針對與產(chǎn)生機器人設(shè)備12的組件有關(guān)的特定功能來實 現(xiàn)知識庫,因而己出于示例目的描述了此處已描述的所有知識庫。知 識數(shù)據(jù)庫通常存儲與各種組件有關(guān)的信息以及其可用以實現(xiàn)己在任務(wù) 規(guī)定中規(guī)定的任務(wù)的設(shè)計信息。在知識數(shù)據(jù)庫中存儲具體與特定組件 是否適合于特定任務(wù)有關(guān)的各種信息,包括與是否存在任何特定要求 有關(guān)的信息(包括使用任何組件之前必須滿足的事先考慮和事后考 慮)。組件信息可以包括與特定設(shè)備的組件的總體適合性有關(guān)的細節(jié)。 例如,推進器通常適合于基于水的設(shè)備。與組件有關(guān)的其他信息可以
包括特定適合性細節(jié)(即,0.8m范圍的聲納傳感器適合于不大于lmX lmXlm的機器人設(shè)備)、過去的使用、或基于所定義的穩(wěn)定性和過去 使用而推斷出的未來使用。特定設(shè)備的總體描述還允許用戶或產(chǎn)生器 從設(shè)備的選擇中選擇任何合適的設(shè)備。例如,任務(wù)規(guī)定可以僅指示需 要光傳感器設(shè)備,從而允許產(chǎn)生器或程序在系統(tǒng)中選擇被描述為光傳 感器的任何設(shè)備以實現(xiàn)其作用(即,可以選擇可用的最便宜的光傳感 器)。與創(chuàng)建機器人設(shè)備12相關(guān)聯(lián)的產(chǎn)生器的數(shù)目可以變化,以下更詳 細地描述用于訪問產(chǎn)生器的方法。管理員可以更新各個知識數(shù)據(jù)庫(管 理員例如可以添加對特定傳感器的規(guī)定以及其對機器人產(chǎn)生器知識數(shù) 據(jù)庫64執(zhí)行的功能,并通過創(chuàng)建其他機器人設(shè)備12),其中,然后在各 個數(shù)據(jù)庫中存儲與機器人設(shè)備12相關(guān)聯(lián)的任務(wù)和組件有關(guān)的規(guī)定。
現(xiàn)在參照圖5,圖5是示出了機器人創(chuàng)建方法100的步驟的流程圖。 機器人創(chuàng)建方法100提供了對釆取用以創(chuàng)建機器人的過程的高級概述。 方法100開始于步驟102,在步驟102,要求用戶提供與機器人設(shè)備12 要操作的環(huán)境相關(guān)聯(lián)的任務(wù)和約束的描述。參照圖6和任務(wù)規(guī)定方法 150來進一步描述步驟102。在步驟104,基于由用戶提供的任務(wù)描述, 任務(wù)產(chǎn)生模塊產(chǎn)生任務(wù)列表。在產(chǎn)生任務(wù)列表時,方法100前進至步驟 106,在步驟106,確定將組成機器人設(shè)備12的部分的各個組件。在步驟106,基于已規(guī)定的任務(wù)列表,定義各個組件,包括機器人設(shè)備中包
括的硬件和軟件組件。然后,方法100前進至步驟108,在步驟108,定 義控制接口 ??刂平涌谑怯山涌诋a(chǎn)生器模塊通過與接口產(chǎn)生器知識數(shù) 據(jù)庫66接合來定義的??刂平涌谠试S用戶通過向機器人設(shè)備12提供另 外的指令,以及通過接收對特定環(huán)境內(nèi)機器人設(shè)備12的狀態(tài)及其交互 的更新,來與機器人設(shè)備12進行交互。然后,方法100前進至步驟110, 在步驟110,定義了允許機器人設(shè)備12在環(huán)境內(nèi)與其他外部設(shè)備或者其 他機器人設(shè)備12或?qū)ο筮M行通信的通信組件。通信組件可以允許同與 其他機器人設(shè)備12相關(guān)聯(lián)的其他設(shè)備和組件進行的電子數(shù)據(jù)互換.,或 者可以使得通信組件提供在機器人設(shè)備12在環(huán)境內(nèi)與人進行交互時的 語音通信能力。然后,方法100前進至步驟112,在步驟112,制造或構(gòu) 造機器人設(shè)備12。在示例實施例中,可以在制造步驟中創(chuàng)建RSOC, 其中,示例實施例中的RSOC可以包含所有處理和計算功能、高級功 能(傳感器/致動器)以及輸入/輸出能力的連接??梢酝ㄟ^FPGA編程 來創(chuàng)建RSOC,其中,F(xiàn)PGA編譯器用于產(chǎn)生嵌入式芯片。如上關(guān)于制 造模塊28所討論的,可以基于手動和機械制造的組合來構(gòu)造機器人設(shè) 備12。例如,CNC制造可以用于制造與設(shè)備12相關(guān)聯(lián)的金屬組件。已
參照被接合以提供與機器人設(shè)備相關(guān)聯(lián)的一個或多個組件的產(chǎn)生器應(yīng) 用22的每個模塊描述了方法100。應(yīng)當(dāng)注意,在示例實施例中,機器人 創(chuàng)建方法100通過首先確定任何特定組件是否需要產(chǎn)生以及特定組件 何時需要產(chǎn)生來進行操作,然后接合適當(dāng)?shù)哪K。此外,機器人設(shè)備 的構(gòu)造可以包括物理或虛擬組件,并且RSOC可以以仿真或虛擬的方 式存在。
現(xiàn)在參照圖6,其中,參照規(guī)定方法150更詳細地描述圖5所示的 上述處理步驟102。任務(wù)規(guī)定方法150用于產(chǎn)生機器人設(shè)備12要執(zhí)行的 任務(wù)的一組規(guī)定。方法150開始于步驟152,在步驟152,用戶提供機器 人設(shè)備12將操作的環(huán)境的描述。用戶可以提供與環(huán)境有關(guān)的各種細節(jié)。 例如,如果用戶已規(guī)定其后院(已針對該后院提供了坐標(biāo),或者通過 知識庫可以獲得該坐標(biāo)),則用戶提供了與該環(huán)境相關(guān)聯(lián)的陸標(biāo)或約束 信息,并且例如可以規(guī)定如游泳池和花壇等陸標(biāo)?;谝讯x的陸標(biāo),可以規(guī)定約束,這些約束包括要避免的指令。具體地,在示例實施例 中,在步驟152,用戶可以提供與可以出現(xiàn)在特定環(huán)境中的導(dǎo)航約束有 關(guān)的信息以及可以出現(xiàn)在該環(huán)境中的其他對象(例如陸標(biāo))的描述。
此外,用戶可以提供機器人設(shè)備12將操作的環(huán)境的地圖。地圖是可以 通過一種或多種方法來提供的,這些方法包括畫草圖程序、畫圖程 序、或上載系統(tǒng)10可識別的地圖。參照圖8提供對地圖提供的進一步描 述。還可以使用傳感器提供的數(shù)據(jù),或通過訪問包含相關(guān)信息的現(xiàn)有
數(shù)據(jù)系統(tǒng)(例如,GoogleMaps等),來動態(tài)創(chuàng)建地圖。
然后,方法150前進至步驟154,在步驟154,執(zhí)行檢查以確定用 戶是否已提供對環(huán)境的充分描述。這種確定是通過以下方式作出的 首先分析任務(wù)描述以確定關(guān)于該環(huán)境將需要哪種類型的約束信息,然 后檢査是否己提供這種約束信息。例如,如果已提供了機器人設(shè)備12 要在后院中移動但應(yīng)避開花壇的任務(wù)描述,則執(zhí)行檢査以確定是否已 提供與花壇有關(guān)的信息。如果在步驟154確定尚未提供充分描述,則方 法150返回至步驟152,在步驟152,請求用戶提供與該環(huán)境有關(guān)的另外 的細節(jié)。如果在步驟154確定用戶已提供與該環(huán)境有關(guān)的充分信息,則 方法150前進至步驟156?;谟脩艏阂?guī)定的任務(wù),從用戶請求與該任 務(wù)有關(guān)的更詳細的特定信息。例如,如果用戶已規(guī)定機器人設(shè)備要割 草,則必須提供與時間、速度、日期、長度、障礙物、區(qū)域和地形有 關(guān)的另外的信息。如果沒有提供特定信息或者特定信息不一致,則方 法150返回至步驟152,向用戶提供特定問題或方向以求更多規(guī)定或修 正的規(guī)定。
在步驟156,用戶提供與機器人設(shè)備12要執(zhí)行的任務(wù)描述有關(guān)的 信息。如上所述,用戶可以通過多于一種方法來提供信息,這些方法 包括通過響應(yīng)于多項選擇問題的回答,或者從一個或多個已定義的 任務(wù)中進行選擇。用戶響應(yīng)于所示提示而提供的輸入用于形成對機器 人設(shè)備12要執(zhí)行的各種任務(wù)/目標(biāo)的總體任務(wù)規(guī)定。然后,方法150前 進至步驟158。在步驟158,執(zhí)行檢查以確定己提供的任務(wù)描述是否充 分,這可以包括確定在適當(dāng)時是否已提供適當(dāng)位置或持續(xù)時間信息。 如果在步驟158確定尚未提供充分描述,則方法150返回至步驟156,并且向用戶詢問與任務(wù)描述有關(guān)的另外的信息。如果在步驟158確定已提 供與任務(wù)描述有關(guān)的充分信息,則方法150前進至步驟160。
在步驟160,用戶提供與機器人設(shè)備相關(guān)聯(lián)的約束有關(guān)的信息。 在示例實施例中,這些約束的示例可以包括與特定任務(wù)的定時和調(diào)度 相關(guān)聯(lián)的約束。例如,用戶可以規(guī)定與任務(wù)相關(guān)聯(lián)的最大時間限制或 者必須執(zhí)行任務(wù)的特定時刻。然后,方法150前進至步驟162,在步驟 162,執(zhí)行檢査以確定是否已提供與各種系統(tǒng)約束有關(guān)的充分信息。如 果在步驟164確定已提供充分信息,則方法150前進至步驟166。如果在 步驟164確定尚未提供系統(tǒng)約束的充分規(guī)定,則方法150返回至步驟 164,在步驟164,要求用戶提供與系統(tǒng)約束有關(guān)的更多信息。
在步驟166,要求用戶提供與機器人設(shè)備12的制造方法有關(guān)的信 息。用戶提供與在適當(dāng)時應(yīng)當(dāng)如何制造設(shè)備12有關(guān)的信息。例如,用 戶可以在各種選項之間進行選擇,這些選項包括但不限于確定是否 應(yīng)當(dāng)由CNC機器自動完成制造,或者是否應(yīng)當(dāng)將規(guī)定提供給將制造適 當(dāng)組件的制造者。在步驟168,執(zhí)行檢查以確定是否提供了充分信息。 如果在步驟168確定尚未提供充分信息,則方法150返回至步驟166,并 且要求用戶提供與制造機器人設(shè)備12有關(guān)的另外的信息。
在方法150的結(jié)束處,系統(tǒng)10已從用戶接收到如下所述的、然后
可以用于設(shè)計和開發(fā)機器人的總體任務(wù)描述。在接收到任務(wù)描述后, 如上所述,系統(tǒng)10隨后繼續(xù)以產(chǎn)生可以由機器人設(shè)備12實現(xiàn)的任務(wù)列 表。如上所述,基于與任務(wù)規(guī)定知識數(shù)據(jù)庫60的交互來確定各種任務(wù) 規(guī)定,此處提供與各個知識數(shù)據(jù)庫的交互的描述。
現(xiàn)在參照圖7,其中,在示例實施例中示出了任務(wù)產(chǎn)生方法200的 步驟。執(zhí)行任務(wù)產(chǎn)生方法200,其中如參照圖5的步驟102所示,已從用 戶接收到任務(wù)描述。方法200進一步詳述了參照圖5所示在步驟104采取 的處理。
示例實施例中的任務(wù)產(chǎn)生器模塊40定義了要基于已提供的任務(wù) 規(guī)定而實現(xiàn)的目標(biāo)或任務(wù)(可以基于其重要性對其進行分級),定義了 與機器人設(shè)備相關(guān)聯(lián)的最低要求,并確定了與機器人設(shè)備相關(guān)聯(lián)的處 理要求。任務(wù)產(chǎn)生器模塊40與任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62進行交互以定義任務(wù)列表。如上所述,任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62存儲與己用于其他 機器人設(shè)備的任務(wù)列表有關(guān)的信息以及與特定任務(wù)相關(guān)聯(lián)的硬件和軟 件要求。任務(wù)產(chǎn)生器模塊40基于所提供的任務(wù)規(guī)定來分析任務(wù)規(guī)定, 并且如果該任務(wù)為知識數(shù)據(jù)庫所知,則任務(wù)產(chǎn)生器將返回與該特定任 務(wù)的完成相關(guān)聯(lián)的相關(guān)聯(lián)處理要求。如果已提供的任務(wù)規(guī)定不匹配于 先前已執(zhí)行的任務(wù),則任務(wù)產(chǎn)生器向用戶返回可能任務(wù)的列表,所述 可能任務(wù)與隨后可以被修改以實現(xiàn)期望任務(wù)的任務(wù)規(guī)定相類似。類似 地,對各個知識數(shù)據(jù)庫的各種其他模塊進行訪問采用與此處已描述相 類似的方式來完成這一點。
方法200是遞歸函數(shù),開始于步驟202,在步驟202,該方法基于 已提供的任務(wù)規(guī)定,將目標(biāo)列表以及要用于規(guī)定與每個目標(biāo)相關(guān)聯(lián)的 要求的模板作為輸入進行接收,然后,方法200前進至步驟204,以確 定已提供的目標(biāo)列表是否確實包含一個或多個目標(biāo)。如果目標(biāo)/任務(wù)的 列表為空,則意味著不再有針對其必須規(guī)定任務(wù)的目標(biāo)。如果在步驟 204確定不存在己輸入的任務(wù)/目標(biāo),則方法200前進至步驟206,并且 將已確定的模板返回至產(chǎn)生器模塊40。如果在步驟204確定任務(wù)列表或 目標(biāo)列表不為空,則方法200前進至步驟208。在步驟208,執(zhí)行檢査以 確定計算資源是否耗盡。當(dāng)與方法200相關(guān)聯(lián)的計算資源已被耗盡時, 說明將永遠不會產(chǎn)生針對所提供的任務(wù)規(guī)定的任務(wù)列表。計算資源已 被耗盡的情況包括但不限于相關(guān)聯(lián)的任務(wù)產(chǎn)生器知識數(shù)據(jù)庫62為空 的情況,這說明無法產(chǎn)生任務(wù)列表;以及存儲器不足的情況。當(dāng)確定 計算資源已被耗盡時,方法200前進至步驟210,在步驟210,產(chǎn)生失敗 消息,該失敗消息指示將不會產(chǎn)生針對特定任務(wù)規(guī)定的任務(wù)列表。如 果在步驟208確定計算資源尚未被耗盡,則方法200前進至步驟212。在 步驟212,按照每個目標(biāo)的重要性順序?qū)δ繕?biāo)或任務(wù)的列表進行排序。 可以確定每個目標(biāo)的重要性,其中,用戶已規(guī)定了與他們已提供的每 個任務(wù)的規(guī)定相關(guān)聯(lián)的優(yōu)先級。舉例而言,如果用戶正在規(guī)定與要在 家庭環(huán)境內(nèi)操作的機器人設(shè)備12相關(guān)聯(lián)的任務(wù)描述,則可以為一些任 務(wù)描述給出比其他任務(wù)描述高的優(yōu)先級。然后,方法200前進至步驟 214,在步驟214,對于每個目標(biāo)或任務(wù),搜索知識數(shù)據(jù)庫以確定是否存在與該特定任務(wù)規(guī)定有關(guān)的任何知識,并且如果存在,則將該特定 知識或信息存儲在模板中。對每個目標(biāo)都采取該過程。在方法200的結(jié) 束處,返回模板,其中,對于作為輸入提供的每個任務(wù)規(guī)定,返回用 作下一產(chǎn)生器的輸入的信息,并且在這種情況下,產(chǎn)生任務(wù)列表。
包括機器人產(chǎn)生器模塊在內(nèi)的各個其他模塊以及接口產(chǎn)生器模
塊執(zhí)行與方法200類似的方法,其中,通過提供一組目標(biāo)來訪問它們的
相應(yīng)知識數(shù)據(jù)庫,這組目標(biāo)是作為用于在知識數(shù)據(jù)庫中搜索的輸入而 提供的。這些目標(biāo)與以下輸入有關(guān),對于該輸入,知識數(shù)據(jù)庫包含用
于產(chǎn)生機器人設(shè)備12的規(guī)定和組件。然后在產(chǎn)生機器人設(shè)備12的過程
中使用所返回的信息。
現(xiàn)在參照圖8,其中,在示例實施例中示出了一幅流程圖,該流 程圖示意了環(huán)境規(guī)定方法250的步驟。環(huán)境規(guī)定方法250更詳細地描述 了方法150中主要在步驟152和156釆取的步驟。環(huán)境規(guī)定方法描述了用
戶可以如何規(guī)定環(huán)境以及用戶可以如何將特定任務(wù)與環(huán)境中的區(qū)域或 路線相關(guān)聯(lián)。此處描述的環(huán)境規(guī)定方法250描述了可以如何規(guī)定環(huán)境的
一個示例。
參照圖9至13描述環(huán)境規(guī)定方法250,圖9至13提供了用于更好地
示意各個方法步驟中描述的功能的示例屏幕截圖。
方法250開始于步驟252,在步驟252,用戶可以首先規(guī)定要在環(huán) 境中使用的機器人設(shè)備12的類型。在步驟252選擇的機器人設(shè)備12可以 是移動機器人設(shè)備或靜止機器人設(shè)備。然后,方法250前進至步驟254, 在步驟254,用戶規(guī)定該環(huán)境是室外環(huán)境還是室內(nèi)環(huán)境。然后,方法250 前進至步驟256,在步驟256,用戶規(guī)定該環(huán)境是真實環(huán)境、虛擬環(huán)境 還是混合現(xiàn)實環(huán)境。然后,方法250前進至步驟258,在步驟258,用戶 規(guī)定設(shè)備是否將要在其自身控制下在環(huán)境中導(dǎo)航,或者設(shè)備是否要由 外部控制(例如,通過操縱桿輸入的用戶命令)所控制。在示例實施 例中,導(dǎo)航方法可以基于在環(huán)境內(nèi)提供特定點,或者通過允許機器人 設(shè)備12以徘徊模式來在環(huán)境中導(dǎo)航,其中,設(shè)備i2在不遵循預(yù)定義路 徑的情況下探測環(huán)境。然后,方法250前進至步驟260,在步驟260,用 戶提供機器人設(shè)備12要操作的環(huán)境的地圖。參照圖9,其中,在一個實施例中示出了示例地圖編輯器窗口300。此處描述的地圖編輯器窗口
300允許用戶規(guī)定環(huán)境的布局、環(huán)境內(nèi)的各個點、以及要在環(huán)境內(nèi)完成的任務(wù)。用戶可以通過在地圖規(guī)定窗口302中提供相應(yīng)的尺寸,來創(chuàng)建用戶在步驟260提供的地圖。用戶可以通過利用在工具菜單304中提供的各種工具來在地圖規(guī)定窗口中規(guī)定環(huán)境的尺寸。用戶還可以選擇機器人設(shè)備12,針對該機器人設(shè)備12使用設(shè)備選擇器窗口306來規(guī)定相應(yīng)環(huán)境。將圖9的地圖編輯器窗口300示出為可以用于規(guī)定環(huán)境的方法的一個示例。備選地,用戶可以上載二維的或者三維的地圖。這些相應(yīng)地圖所覆蓋的地理區(qū)域不限于房間大小尺寸,而是可以表示任何尺寸的地圖。
現(xiàn)在,方法250前進至步驟262,在步驟262,用戶可以在地圖上選擇區(qū)域,以規(guī)定特定沿途點或興趣點。興趣點可以是起始點、停止點或過渡點。參照圖IO,其中示出了地圖編輯器窗口300,其中,用戶己選擇興趣點310。在規(guī)定了興趣點310后,方法250前進至步驟264。在步驟264,用戶可以規(guī)定機器人設(shè)備12從興趣點310開始要采用的行進方向或路線。在示例實施例中規(guī)定了路線,然而應(yīng)當(dāng)注意,還可以要求機器人設(shè)備12確定已規(guī)定的特定點之間的路線?,F(xiàn)在參照圖ll,其中示出了地圖編輯器窗口300,其中,用戶規(guī)定了從興趣點310開始機器人設(shè)備12應(yīng)當(dāng)遵循的路線312?,F(xiàn)在參照圖12,其中與興趣點310一起示出了兩個停止點314。在停止點314處,機器人設(shè)備12可以執(zhí)行任務(wù)或可以改變其行進方向。然后,方法250前進至步驟266,在步驟266,用戶可以規(guī)定要在興趣點310、停止點314處或沿路線312釆取的任務(wù)。參照圖13,其中與地圖編輯器窗口300—起示出了任務(wù)選擇器窗口316。任務(wù)選擇器窗口316用于選擇要由機器人設(shè)備12完成的一個或多個任務(wù)。 一旦用戶已完成在相應(yīng)環(huán)境內(nèi)規(guī)定機器人設(shè)備12的行進的各個點,并且當(dāng)規(guī)定了要在各個位置處完成的任務(wù)時,方法250前進至步驟268。在步驟268,將相應(yīng)地圖和任務(wù)發(fā)送給機器人設(shè)備12。在示例實施例中,通過UDP將相應(yīng)信息發(fā)送給機器人設(shè)備。此外,在機器人設(shè)備要執(zhí)行特定任務(wù)的情況下,還可以將預(yù)定任務(wù)發(fā)送給機器人設(shè)
備o如上所述,當(dāng)用戶規(guī)定任務(wù)時,可以向用戶呈現(xiàn)各種選項,以充
分詳述與正在規(guī)定的任務(wù)相關(guān)聯(lián)的功能?,F(xiàn)在參照圖14A和14B,其中示出了在規(guī)定任務(wù)時所使用的屏幕截圖的示例集合?,F(xiàn)在參照圖14A和圖14B,其中,在一個實施例中示出了任務(wù)規(guī)定窗口350。任務(wù)規(guī)定窗口350將根據(jù)正在規(guī)定的任務(wù)而變化。圖14A和14B所示的任務(wù)規(guī)定窗口350用于針對機器人設(shè)備12來規(guī)定完成的任務(wù),其中,從與系統(tǒng)相關(guān)聯(lián)的預(yù)定義任務(wù)中選擇任務(wù)。圖14A和14B示出了用戶已通過首先規(guī)定位置352來選擇任務(wù)。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,出于示例目的提供了參照圖14A和14B提供的種類,并且可以在規(guī)定任務(wù)時使用不同類型的種類,并且可以向用戶呈現(xiàn)一個種類內(nèi)的多個選項。位置字段352允許用戶規(guī)定是要在室內(nèi)還是室外完成任務(wù)。然后,要求用戶從活動字段354選擇要執(zhí)行的活動的類型?;顒幼侄?54允許用戶從要執(zhí)行的活動類型中進行選擇。在該示例中,用戶已選擇"清掃"作為機器人設(shè)備12要執(zhí)行的活動的類型。在選擇活動類型時,關(guān)于清掃活動類型,用戶從方法字段356中進行選擇。在該示例中,用戶己選擇進行用吸塵器進行清掃。然后,用戶通過在強度字段358中指示強度,來規(guī)定要進行的吸塵器清掃的類型。與每個種類內(nèi)的選項一同向用戶示出的種類依賴于用戶先前作出的選擇以及已在每個種類中規(guī)定的選項。
如上所述,機器人設(shè)備12還可以作為機器人團隊14的一部分進行操作。機器人團隊是指在相同環(huán)境中共同存在的兩個或更多個機器人設(shè)備。機器人設(shè)備的團隊14可以存在于物理環(huán)境、虛擬環(huán)境或混合環(huán)境中。在環(huán)境內(nèi),團隊成員中的一個或多個可以用于控制各個其他設(shè)備12。在機器人團隊內(nèi),可以控制其他設(shè)備12的機器人設(shè)備12被稱作控制機器人設(shè)備??刂茩C器人設(shè)備可以是機器人服務(wù)器或可以訪問機器人服務(wù)器??刂圃O(shè)備監(jiān)視相應(yīng)動作以及環(huán)境內(nèi)的要求,并可以在正被控制的其他機器人設(shè)備需要新組件時與機器人服務(wù)器進行通信。例如,如果被控制設(shè)備要在環(huán)境內(nèi)執(zhí)行新任務(wù),則該任務(wù)的完成可能需要新組件,包括對新任務(wù)規(guī)定的更新。然后,控制設(shè)備可以與機器人服務(wù)器進行交互,并規(guī)定新任務(wù)信息,并且機器人服務(wù)器將繼續(xù)確定對于各個被控制機器人設(shè)備中的每一個可能必要的各種組件和后續(xù)修改??刂茩C器人設(shè)備也可以針對自身的新組件向機器人服務(wù)器發(fā)出請求。
盡管以上描述提供了實施例的示例,但應(yīng)當(dāng)理解,在不脫離所描述的實施例的操作的精神和原理的前提下,可以對所描述的實施例的一些特征和/或功能進行修改。相應(yīng)地,以上已描述的內(nèi)容意在示意本發(fā)明而不是限制本發(fā)明,并且本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在不脫離所附權(quán)利要求所限定的本發(fā)明范圍的前提下,可以作出其他變型和修改。
權(quán)利要求
1.一種用于完全或部分自動產(chǎn)生機器人設(shè)備的方法,包括以下步驟a)引出和接收用戶輸入,以確定所述機器人設(shè)備的一個或多個任務(wù)的任務(wù)規(guī)定;b)基于所提供的任務(wù)規(guī)定來確定包括一個或多個任務(wù)的任務(wù)列表;c)基于所提供的任務(wù)列表,來確定一個或多個運動組件、一個或多個處理組件以及執(zhí)行一個或多個任務(wù)所需的邏輯組件;以及d)產(chǎn)生執(zhí)行一個或多個任務(wù)所需的邏輯組件,并將所述邏輯組件嵌入與所述機器人設(shè)備相關(guān)聯(lián)的可記錄介質(zhì)上。
2. 根據(jù)權(quán)利要求l所述的方法,還包括以下步驟確定對所述一個或多個機械組件、所述一個或多個處理組件以及一個或多個邏輯組件的規(guī)定,以用于產(chǎn)生所述機器人設(shè)備。
3. 根據(jù)權(quán)利要求2所述的方法,其中,通過以與所述處理組件和所述可記錄介質(zhì)相結(jié)合的方式來組裝所述一個或多個機械組件,來構(gòu)造物理機器人設(shè)備。
4. 根據(jù)權(quán)利要求3所述的方法,其中,創(chuàng)建多個物理機器人設(shè)備,并且所述多個物理機器人設(shè)備在機器人團隊環(huán)境中操作。
5. 根據(jù)權(quán)利要求2所述的方法,其中,通過創(chuàng)建所述一個或多個機械組件的虛擬表示來構(gòu)造虛擬機器人設(shè)備,所述一個或多個機械組件與一個或多個處理要求和所述邏輯組件相結(jié)合。
6. 根據(jù)權(quán)利要求5所述的方法,其中,創(chuàng)建多個虛擬機器人設(shè)備,并且所述多個虛擬機器人設(shè)備在機器人團隊環(huán)境中操作。
7. 根據(jù)權(quán)利要求l所述的方法,還包括以下步驟引出和接收與環(huán)境規(guī)定有關(guān)的用戶輸入,所述環(huán)境規(guī)定與所述機器人設(shè)備要操作的環(huán)境有關(guān)。
8. 根據(jù)權(quán)利要求l所述的方法,其中,利用表示所述一個或多個機械組件的物理和虛擬組件來構(gòu)造機器人設(shè)備,所述一個或多個機械組件與一個或多個處理要求和所述邏輯組件相結(jié)合。
9. 根據(jù)權(quán)利要求8所述的方法,其中,創(chuàng)建具有混合的物理和虛擬組件的多個機器人設(shè)備,并且所述多個機器人設(shè)備在機器人團隊環(huán)境中操作。
10. 根據(jù)權(quán)利要求l所述的方法,其中,所述方法在機器人服務(wù)器處執(zhí)行。
11. 根據(jù)權(quán)利要求10所述的方法,其中,機器人設(shè)備是機器人服務(wù)器。
12. —種創(chuàng)建機器人設(shè)備的方法,其中,規(guī)定了所述機器人設(shè)備要操作的環(huán)境,所述方法包括a) 輸入對所述環(huán)境的區(qū)域進行限定的地圖;b) 輸入起始點,所述起始點指示了所述區(qū)域內(nèi)所述機器人設(shè)備將從其開始操作的位置;c) 沿從所述起始點發(fā)出的、所述機器人設(shè)備將遵循的路線輸入一個或多個停止點;以及d) 輸入所述機器人設(shè)備在所述起始點、所述停止點或沿所述路線要完成一個或多個任務(wù)。
13. 根據(jù)權(quán)利要求12所述的方法,其中,所述地圖是上載的預(yù)先存在的地圖。
14. 根據(jù)權(quán)利要求12所述的方法,其中,所述地圖能夠被創(chuàng)建為限定所述環(huán)境的區(qū)域。
15. 根據(jù)權(quán)利要求12所述的方法,其中,所規(guī)定的環(huán)境被發(fā)送到所述機器人設(shè)備。
16. 根據(jù)權(quán)利要求12所述的方法,其中,所述機器人設(shè)備是物理機器人設(shè)備或虛擬機器人設(shè)備,或者具有混合的物理和虛擬組件的機器人設(shè)備。
17. —種規(guī)定機器人設(shè)備要完成的一個或多個任務(wù)的方法,所述方法包括a)規(guī)定所述機器人設(shè)備是物理機器人設(shè)備、虛擬機器人設(shè)備、還是具有混合的物理和虛擬組件的機器人設(shè)備;b)規(guī)定所述機器人設(shè)備要操作的位置;C)規(guī)定所述機器人設(shè)備要執(zhí)行的活動;以及d)提供與所述機器人設(shè)備要執(zhí)行的活動有關(guān)的詳細信息。
18. 根據(jù)權(quán)利要求17所述的方法,其中,所述位置可以是室內(nèi)或室外位置,或者室內(nèi)和室外位置。
19. 根據(jù)權(quán)利要求17所述的方法,其中,所述活動能夠從所述機器人設(shè)備先前巳執(zhí)行的一個或多個活動中選擇。
20. 根據(jù)權(quán)利要求17所述的方法,其中,所述活動是所述機器人設(shè)備先前尚未執(zhí)行的活動。
21. 根據(jù)權(quán)利要求17所述的方法,其中,產(chǎn)生機器人設(shè)備以完成所述一個或多個任務(wù)。
22. 根據(jù)權(quán)利要求17所述的方法,其中,所述機器人設(shè)備是物理機器人設(shè)備或虛擬機器人設(shè)備,或者具有混合的物理和虛擬組件的虛擬機器人設(shè)備。
23. 根據(jù)權(quán)利要求22所述的方法,其中,所述機器人設(shè)備能夠操作于物理環(huán)境、虛擬環(huán)境或混合的虛擬和物理環(huán)境中。
24. —種由在團隊環(huán)境中進行操作的多個機器人設(shè)備完成一個或多個任務(wù)的方法,所述方法包括a) 將所述多個機器人設(shè)備中的一個或多個選擇為控制機器人設(shè)備;b) 在所述控制機器人設(shè)備處確定針對所述多個機器人設(shè)備中的一個或多個是否需要新的機器人規(guī)定;c) 從所述控制機器人設(shè)備向機器人服務(wù)器發(fā)送針對新的機器人規(guī)定的請求;以及d) 在所述多個機器人設(shè)備中的所述一個或多個處接收所述新的機器人規(guī)定。
25. 根據(jù)權(quán)利要求24所述的方法,其中,所述多個機器人設(shè)備中的一個或多個是物理機器人設(shè)備。
26. 根據(jù)權(quán)利要求25所述的方法,其中,所述多個機器人設(shè)備中的一個或多個是虛擬機器人設(shè)備。
27. 根據(jù)權(quán)利要求25所述的方法,其中,所述多個機器人設(shè)備是虛擬和物理機器人設(shè)備的混合。
28. 根據(jù)權(quán)利要求24所述的方法,其中,所述控制機器人設(shè)備是機器人服務(wù)器。
全文摘要
本發(fā)明提供了一種用于自動產(chǎn)生機器人設(shè)備的方法,其中,所述方法包括以下步驟接收用戶輸入,以確定所述機器人設(shè)備的一個或多個任務(wù)的任務(wù)規(guī)定;基于所提供的任務(wù)規(guī)定來確定包括一個或多個任務(wù)的任務(wù)列表;基于所提供的任務(wù)列表來確定一個或多個機械組件、一個或多個處理組件以及執(zhí)行一個或多個任務(wù)所需的邏輯組件;以及產(chǎn)生執(zhí)行一個或多個任務(wù)所需的邏輯組件,并將所述邏輯組件嵌入與所述機器人設(shè)備相關(guān)聯(lián)的可記錄介質(zhì)上。
文檔編號B25J9/16GK101631651SQ200880008371
公開日2010年1月20日 申請日期2008年1月11日 優(yōu)先權(quán)日2007年1月12日
發(fā)明者布萊恩·P·麥金農(nóng), 斯旺·薩繆爾·希勒, 曉文·特里·劉, 杰克·埃爾明·彼得森, 漢斯喬格·巴爾特斯, 瓦吉爾·凱恩, 薩拉·埃珀, 謝恩·揚克 申請人:漢斯喬格·巴爾特斯;杰克·埃爾明·彼得森;斯旺·薩繆爾·希勒;曉文·特里·劉;布萊恩·P·麥金農(nóng);薩拉·埃珀;瓦吉爾·凱恩;謝恩·揚克