專利名稱:圖形程序和機器人程序的同步的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于把機器人程序和圖形程序進行同步的設(shè)備和方法。
本發(fā)明在工業(yè)機器人的離線編程和仿真方面是有用的,特別是當(dāng)該仿 真包含機器人將如何執(zhí)行其任務(wù)的圖形描述以及機器人控制器包含用于 描述機器人將如何執(zhí)行其任務(wù)的文本語言時。
背景技術(shù):
工業(yè)機器人是被用于許多不同的工業(yè)應(yīng)用中的多種操作的高度靈活 的設(shè)備。通常,通過與傳統(tǒng)機器人編程語言非常類似的機器人編程語言對 工業(yè)機器人進行編程。機器人編程語言包括指令序列,其中,每個指令告 知機器人控制器,什么以及如何做。典型的機器人編程語言包括用于機
器Ai^動、對輸入信號和輸出信號進行處理、程序注釋、對程序流程(循 環(huán)和條件)進行處理的指令。每個工業(yè)機器人制造商有其自己的機器人編 程語言。
傳統(tǒng)的機器人控制器提供與機器人控制器相連的編輯設(shè)備,用于對機 器人進行指示,以及用于對機器人程序的指令序列進行記錄和編輯。指令 序列通常被保存在用于離線存儲以及用于離線編輯的計算機文件中。在離 線形式中,機器人程序包括一個或更多個包含指令的文件,這些指令具有 對每個步驟要進行的操作進行細化的每個指令的實參。除指令以外,還可 以有與每個指令相關(guān)聯(lián)的數(shù)據(jù),例如,機器人所要移動到的點在某些情形 下可以被存儲在指令中,或者在其它情形下被存儲在程序的數(shù)據(jù)段中并由 具體的指令予以引用。
機器人的編程是費時的過程,在編程和教授過程中使用機器人的傳統(tǒng) 的方法占用生產(chǎn)裝備,延遲生產(chǎn)開始。為了節(jié)省時間以及加快生產(chǎn)開始, 非常期望對機器人進4亍離線編程。通常,這是通過離線圖形仿真來完成的。 仿真包含機器人及其環(huán)境的圖形3D表示以及教授和記錄機器人的操作和 移動的圖形裝置。圖形仿真提供用于對工業(yè)機器人進行編程以及使該工業(yè)機器人形象化的更加自然和容易的方法,不對實際的裝備形成妨礙。另外, 圖形環(huán)境允許獨立于機器人制造商所使用的機器人編程語言。然而,圖形
3D仿真沒有對實際的機器人編程語言中所有可用的特征進行表示的能 力。例如,3D仿真既不顯示程序流程、循環(huán)和條件,也不顯示程序中的 注釋。許多輸入-輸出處理也不在3D仿真中顯示。
從具有圖形仿真的工作的輸出是圖形程序,該圖形程序包括機器4 搮作期間應(yīng)當(dāng)做什么的圖形表示。例如,圖形程序包括3D點和序列,還 可以包括運動的屬性,如有關(guān)機器人將如何對待拐角以及機器人的工具相 對于零件(part)將移動多快的描述,以及用于諸如電弧焊、點焊等過程 的過程信息。當(dāng)仿真和離線編程完成時,圖形程序必須被轉(zhuǎn)換成或翻譯成 實際的機器人程序。通常,從圖形程序到機器人程序的翻譯是由單向翻譯 器來完成的,該單向翻譯器把3D點和序列以及沿3D對象的其它信息轉(zhuǎn) 換成用于具體的機器人編程語言的運動指令序列。機器人程序l^被傳送 到實際的機器人控制器。
該機器人程序幾乎從來不是完全正確的或完整的。必須增加程序流程 以保證正確的循環(huán)以及條件的處理。還要增加輸入-輸出信號和處理。真 實世界和3D仿真之間的標(biāo)定中的誤差意味著必須對許多指令和位置進行 修改以使得機器人運行中沒有碰撞。另夕卜,對裝備晚進行的修改意味著必 須增加新的指令。在提高機器人的生產(chǎn)能力的壓力下,指令被修改以提高 機器人的速度,降低了機器人在拐角中和在大的移動中運動的精度。最后, 對控制器上的程序進行注釋,使得將來的編程員能夠理解程序的邏輯以及 修改背后的原因。對整個程序都增加注釋,以提高機器人程序的可讀性和 可維護性。
以上所有的修改,意味著實際的機器人程序常常與3D離線仿真中的 描述非常不同。通常,在此工作完成后,可以不再使用3D圖形仿真。如 果編程員要使用在3D仿真期間生成的圖形程序來進行修改,則以上所有 的改變必須重新進行。這意味著,如果不能用來自真實的機器人程序的實 際的程序數(shù)據(jù)對3D仿真進行更新,則3D仿真不再是有效的編程工具, 離線編程的好處也失去了。
通常,機器人制造商和3D仿真制造商試圖通過另一單向翻譯器從機 器人程序?qū)?D仿真進行更新,該單向翻譯器獲WiL器人程序并把它轉(zhuǎn)換 成機器人運動的3D表示的圖形程序。從而,程序流程和條件、許多輸入-輸出處理、以及程序中的注釋都被丟棄。
試圖解決此限制的傳統(tǒng)解決方案是把機器人程序分成段、子例程、和
/或模塊,其中,能夠無損失地被加栽回3D仿真中的涉及移動的機器人指
令M在與對程序流程、*、輸入-輸出處理和注釋進行處理的指令分
開的段、例程或模塊中。此方法的缺點在于仿真系統(tǒng)不能對整個程序進
行處理,必須有手工工作在對來自3D仿真系統(tǒng)的段、例程或模塊進行修
改后對整個程序重新進行匯編。因此,傳統(tǒng)的3D仿真和離線編程工具提 供'下載'翻譯器和'上栽'翻譯器。
然而,期望使用3D圖形仿真來生成機器人程序、修改實際的機器人 上的程序、以及把程序無縫地?zé)o損失地加栽回3D仿真并再次對其進行修 改而不用人工地分割程序。
發(fā)明內(nèi)容
本發(fā)明的目的是找出避免上述問題的、有吸引力的解決方案。
按照本發(fā)明的一個方面,此目的是通過如權(quán)利要求1中所限定的用于 機器人程序和圖形程序的同步的方法來達到的。
這種方法包括以下步驟接收有關(guān)哪個程序,以下稱之為用于同步的 領(lǐng)導(dǎo)者程序,在同步期間將保持不變以及哪個程序,以下稱之為跟隨者程 序,將根據(jù)被選擇為所述領(lǐng)導(dǎo)者程序的程序進行修改的信息,把圖形程序 轉(zhuǎn)換成第一標(biāo)識(token)序列,所述第一標(biāo)識序列代表所述圖形程序中 所包含的用于運動和動作的數(shù)據(jù),g器人程序轉(zhuǎn)換成第二標(biāo)識序列,所 述第二標(biāo)識序列代表所述機器人程序中所包含的用于運動和動作的數(shù)據(jù), 把第 一標(biāo)識序列和第二標(biāo)識序列進行比較,并據(jù)此4艮據(jù)哪個程序是領(lǐng)導(dǎo)者 和哪個程序是跟隨者來生成修改命令,以及基于所生成的修改命令對跟隨 者程序進行編輯,以使得跟隨者的標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配。跟隨 者的序列應(yīng)當(dāng)?shù)扔陬I(lǐng)導(dǎo)者的序列,即跟隨者的序列的每個標(biāo)識應(yīng)當(dāng)以相同 的次序與領(lǐng)導(dǎo)者的序列中的標(biāo)識相匹配。
4^發(fā)明提供一種解決方案,通過該解決方案,離線仿真環(huán)境中的圖形 程序中的運動內(nèi)容和機器人控制器中的本地語言程序中的運動內(nèi)容可以 被更新并相互保持一致。相應(yīng)地,本發(fā)明提供一種方法,能夠把仿真期間 生成的圖形程序和機器人控制器中的機器人程序進行同步而沒有程序流程、輸入-輸出處理、或注釋和其它非運動指令的損失。圖形程序或機器 人程序的運動內(nèi)容的修改可以從圖形表示轉(zhuǎn)變回機器人語言表示且反之 亦然,而不必重新生成或者丟失程序或圖形上下文的其余部分。這在所有 的離線編程實施中都具有關(guān)鍵的重要性。
圖形程序和本地語言機器人程序的運動內(nèi)^**示為 一 系列標(biāo)識。標(biāo) 識的概念形成圖形程序和本地語言程序中的序列和數(shù)據(jù)的中間表示,這使 得對這些程序進行比fcl可能的。
按照本發(fā)明的實施例,編輯步驟包括對跟隨者的標(biāo)識序列進行編輯以 使得所迷標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配,以及把所編輯的跟隨者的標(biāo)識
序列轉(zhuǎn)換回初始的程序形式,即根據(jù)圖形程序或機器人程序中的哪個被 選擇為跟隨者,轉(zhuǎn)換回該圖形程序或該機器人程序。雖然,生成用于直接 編輯初始的程序(即圖形程序或機器人程序)的修改命令是可能的,但生 成用于標(biāo)識序列的修改命令并對該序列進行編輯更加容易。
按照本發(fā)明的實施例,所述程序被轉(zhuǎn)換成由所述標(biāo)識構(gòu)建的語句序 列,所述修改命令包括插入語句、刪除語句和編輯標(biāo)識。分解成語句和標(biāo) 識提供了用全部指令(即語句)以及指令的桐故(即標(biāo)識)進行工作的能 力。例如,簡單的運動指令可以包括單個的指令"Linear pl, 1000",指 示機器人以1000mm/s的速度直線地移動到點"pl"。序列化把該指令轉(zhuǎn) 換成有3個標(biāo)識("直線","pl",和"1000")的單個的語句。當(dāng)把圖形 表示與文本程序表示進行同步時,語句和標(biāo)識的使用允許修改命令生成器 的用于找出使一個表示同步到另一個表示所必需的最少的改變的最大可 能的自由度。
按照本發(fā)明的實施例,第一標(biāo)識序列和第二標(biāo)識序列之間的區(qū)別通過 最長公共子序列(LCS)算法來計算。最長7>共子序列算法一般被用來找 出最長的序列,該最長的序列是序列集合(常常只是兩個)中所有序列的 子序列。這個實施例是特別有益的,因為兩個表示之間的最長的公共子序 列提供用于語句和標(biāo)識的最公共的集合的指示。因此,最長的公共子集合 是不必被改變的語句和標(biāo)識的集合。這意味著該算法自動找出使一個表示 同步到另一個表示所必需的最少的改變。找出最少改變是有益的,因為所 有的有關(guān)注釋、邏輯、程序流程都得以保持原樣而不會出現(xiàn)不想要的修改 的風(fēng)險。
如上所述,機器人編程語言也可以包含被指^H吏用的數(shù)據(jù)段。在以上的實例中,"pl"是對數(shù)據(jù)段的標(biāo)記,其中,目標(biāo)的實際的坐標(biāo)(結(jié)合點 或線)被維持。在本發(fā)明的實施例中,程序的數(shù)據(jù)段也和圖形表示同步。 當(dāng)要對數(shù)據(jù)段進行同步時,首先完成這些,然后再對指令進行同步。這是 通過與以下方法相同的方法來完成的,該方法生成語句和標(biāo)識以及找出最
長乂〉共子序列以指導(dǎo)對圖形表示或文本表示進行的^務(wù)改。
按照本發(fā)明的進一步的方面,本發(fā)明的目的是通過可直接加載在計算 機或處理器的內(nèi)部存儲器中的計算機程序產(chǎn)品來達到的,該計算機程序產(chǎn) 品包括當(dāng)程序在計算機上運行時用于執(zhí)行按照所附方法權(quán)利要求的方法 的步驟的軟件代碼部分。計算機程序在計算機可讀介質(zhì)上或通過網(wǎng)絡(luò)提 供。
容易發(fā)現(xiàn),如所附方法權(quán)利要求中所限定的按照本發(fā)明的方法適用于
由計算;t^^呈序當(dāng)其在處理單元上運行時來執(zhí)行,該計算:t^4呈序具有本發(fā)明 方法中的步驟所對應(yīng)的指令。
按照本發(fā)明的另一方面,本發(fā)明的目的是通過計算機可讀介質(zhì)來達到 的,該計算機可讀介質(zhì)上記錄有程序,該程序使得計算機執(zhí)行按照所附方 法權(quán)利要求的方法的步驟,該程序在計算機上運行。
按照本發(fā)明的另 一方面,此目的是通過如權(quán)利要求7所限定的用于機 器人程序和圖形程序的同步的設(shè)備來達到的。
該設(shè)備包括第一轉(zhuǎn)換器,用于把圖形程序轉(zhuǎn)換成第一標(biāo)識序列,所 述第 一標(biāo)識序列代表所述圖形程序中所包含的用于運動和動作的數(shù)據(jù);第 二轉(zhuǎn)換器,用于把機器人程序轉(zhuǎn)換成第二標(biāo)識序列,所述第二標(biāo)識序列代 表所述機器人程序中所包含的用于運動和動作的數(shù)據(jù);以及修改命令生成 器,用于把第一標(biāo)識序列和第二標(biāo)識序列進行比較,并據(jù)此生成修改命令, 其中,所述第一轉(zhuǎn)換器用于接收所述修改命令以及基于所述修改命令對圖 形程序進行編輯,以使得所述圖形程序的標(biāo)識序列與機器人程序的標(biāo)識序 列相匹配,以及,所述第二換器用于接收所述修改命令以及基于所述修改 命令對機器人程序進行編輯,以使得所述機器人程序的標(biāo)識序列與圖形程 序的標(biāo)識序列相匹配。
本發(fā)明采用與兩個轉(zhuǎn)換器一同工作的修改命令生成器。 一個轉(zhuǎn)換器針 對圖形程序工作,而另一個轉(zhuǎn)換器針對機器人程序工作。這些轉(zhuǎn)換器負責(zé) 把圖形程序和機器人程序轉(zhuǎn)換成標(biāo)識序列。按照本發(fā)明的實施例,圖形程 序和機器人程序被轉(zhuǎn)換成語句序列。每個語句由標(biāo)識來構(gòu)建,其中,每個標(biāo)識代表不可分的信息。修改命令生成器計算兩個語句序列之間的區(qū)另lj, 例如,通過最長公共子序列方法。該區(qū)別被轉(zhuǎn)換成編輯指令(被稱為修改 命令),并被發(fā)送回用于修改圖形程序或機器人程序的一個轉(zhuǎn)換器或另一 個轉(zhuǎn)換器。
按照本發(fā)明的實施例,該設(shè)備用于接收有關(guān)哪個程序?qū)⑹怯糜谕降?領(lǐng)導(dǎo)者以及哪個程序?qū)⑹歉S者的信息,以及,修改命令生成器用于根據(jù)
哪個程序是領(lǐng)導(dǎo)者和哪個程序是跟隨者來生成以及向第一轉(zhuǎn)換器或第二 轉(zhuǎn)換器發(fā)送所述修改命令。跟1^*根據(jù)領(lǐng)導(dǎo)者被進行同步。此實施例使得 用戶選擇這些程序的哪個程序(即圖形程序或機器人程序)將按照另一個 程序進行同步是可能的。
按照本發(fā)明的另 一方面,修改命令生成器使用任何其它形式的差分算 法來產(chǎn)生 一組改變,這些改變使得一個語句序列與另 一個語句序列相一 致。
按照本發(fā)明的另一方面,圖形表示不是基于3D的,而U于圖才示, 其中,每個圖標(biāo)代表用于機器人的指令或動作。這些圖標(biāo)被排列成序列以 表示用于機器人的任務(wù)。
現(xiàn)在通it^本發(fā)明的不同的實施例的描述以及參考附圖,更進一步地 對本發(fā)明進行闡述。
圖l示出了按照本發(fā)明的同步設(shè)備的方框圖。
圖2至圖11示出了本發(fā)明如何工作的詳細的實例。
圖12示出了按照本發(fā)明實施例的方法的流程圖。
具體實施例方式
圖1示出了按照本發(fā)明的同步設(shè)備的方框圖。該設(shè)備包含三個對象; 第一轉(zhuǎn)換器1,該第一轉(zhuǎn)換器把圖形程序轉(zhuǎn)換成一系列語句(sentence) 以及接收修改命令,第二轉(zhuǎn)換器2,該第二轉(zhuǎn)換器把機器人程序轉(zhuǎn)換成一 系列語句以及接收修改命令,以及修改命令生成器3,該^務(wù)改命令生成器 找出兩個系列語句之間的區(qū)別以及把修改命令發(fā)送給轉(zhuǎn)換器。修改命令生成器找出j吏得跟隨者的序列與領(lǐng)導(dǎo)者的序列相匹配所必需的改變。圖形程 序被存儲在用于對機器人進行離線編程的計算機上的存儲區(qū)域中。機器人
程序被存儲在機器人控制器5上的存儲區(qū)域中。三個對象都通過軟件來實 施。
機器人程序被存儲在機器人控制器上的存儲區(qū)域中或者離線計算機 上的虛擬控制器中。另外,本發(fā)明包括如下情況機器人程序^L存儲在文 件中,以及提供有分析器,該分析器能夠讀^L器人程序中的數(shù)據(jù)段和指 令,以及響應(yīng)于同步向轉(zhuǎn)換器給出必要的響應(yīng)以生成語句序列和標(biāo)識序列 并對該程序進行改變。
在本發(fā)明的一個實施例中,圖形程序在3D仿真系統(tǒng)中實施,機器人 程序在虛擬控制器中實施,該虛擬控制器精確地對實際的控制器的對程序 進行存儲和修改的能力進行仿真。修改命令生成器在3D仿真系統(tǒng)中實施, 并與圖形表示和虛擬控制器進行通信。
圖形程序包括一個或更多個移動路徑,這些移動路徑包含按順序給出 的并在圖形顯示器上進行顯示的目標(biāo)(target)和動作。每個目標(biāo)包含用 于運動、線(linear )、結(jié)合點(joint )、速度(speed )、區(qū)域(zone)等 的屬性。動作包含諸如I/O的事件和/或?qū)芈窂匠霈F(xiàn)的程序事件。路 徑、目標(biāo)、屬性和動作對于圖形編程和圖形機器人程序的分析是必需的。
to^提供給第一轉(zhuǎn)換器l,該第一轉(zhuǎn)換器把目標(biāo)和動作的圖形序列 轉(zhuǎn)換成由標(biāo)識組成的語句序列。每個語句代表完整的運動或單獨的動作。 完整的運動包含用于位置、 工具和對象框架的所有標(biāo)識,這些標(biāo)識描^ 目標(biāo)位置的機器人的幾何情況。每個標(biāo)識代表用于運動的數(shù)據(jù),即用于工 具框架的數(shù)據(jù)、用于對象框架的數(shù)據(jù)、用于速度的數(shù)據(jù)等。第一轉(zhuǎn)換器l 將只考慮具有用于序列化的等同的程序表示的那些運動和動作。轉(zhuǎn)換器1 不必考慮對于具體的機器人可用的所有可能的指令。只需要考慮與同步有 關(guān)的或具有同步的能力的指令。例如,在沒有圖形表示的情形中,例如 FOR-NEXT循環(huán),則轉(zhuǎn)換器不需要轉(zhuǎn)換FOR-NEXT循環(huán)且同步仍會進行。
在同步期間,當(dāng)?shù)谝晦D(zhuǎn)換器1是跟1§1*時,它必須接受來自修改命令 生成器的修改命令,以及插入語句、刪除語句和編輯標(biāo)識;并在沿路徑的 它們的正確的位置處把它們轉(zhuǎn)換回圖形表示。
本地語言機器人程序包括程序流程單元,如子例程、函數(shù)、if-then-else、 while、 I/O指令、過程指令、運動指令、以及用于保持具體 的目標(biāo)、速度、工具等數(shù)據(jù)的數(shù)據(jù)單元。
把程序、子例程或運動的陣列提供給第二轉(zhuǎn)換器2,這取決于機器人 語言。第二轉(zhuǎn)換器2I^構(gòu)建語句序列,每個語句只包含完整的運動和動 作,但具有與在機器人程序中所找出的序列相同的序列。每個語句包含代 表用于運動和動作的數(shù)據(jù)的標(biāo)識。
在同步期間,當(dāng)?shù)诙D(zhuǎn)換器2是跟M時,它必須接收來自修改命令 生成器的修改命令,以及插入語句、刪除語句和編輯標(biāo)識,并把它們轉(zhuǎn)換 回機器人程序表示。
對象修改命令生成器的功能是對語句和標(biāo)識的序列進行比較,把修改 命令發(fā)送給第一轉(zhuǎn)換器1或第二轉(zhuǎn)換器2,這取決于哪個是領(lǐng)導(dǎo)者以及哪 個是跟隨者。該比較可以基于許多已知的用于對數(shù)據(jù)進行比較的方法,例 如最長7>共子序列方法,該方法使得對于跟隨者的修改最小化。修改命令 用以下形式發(fā)送給任一轉(zhuǎn)換器插入語句、刪除語句、編輯標(biāo)識。
下面將參考圖2至圖11對本發(fā)明的實例進行詳細地闡述。該實例從 圖形程序(如圖2所示)和文本程序(如圖3所示)開始。圖2中的圖形 程序示出了被仿真的機器人8以及在空間中的路徑9,或同樣可應(yīng)用的是, 被附于幾何對象的路徑。在此實例中,路徑具有有若千屬性的三個點pl, p2和p3,這些屬性描述仿真應(yīng)當(dāng)如何移動到這些點(直線地(linear ))、 ^^吏用的速度(800 mm/s )、用于點的精確度的區(qū)域的尺寸(100 mm)以 及JH吏用的工具(工具(tool) 10),以及可選的工作對象(wobj0),該 工作對象中對點表示。圖3所示的文^^呈序包含圖形程序的等同的機器人 程序表示。兩個表示可以被稱為是互相'同步,。
在此實例中,我們將示出的情形是圖形程序是主導(dǎo),文本程序是拷 貝。因此,在該實例中,仿真和離線編程工具的用戶可以對圖形程序進4亍 修改。典型的情形是增加新的點以及對用于pl的工作對象進行修改。圖 4示出了修改的圖形程序。此時在該實例中,目標(biāo)是_把修改的圖形程序與 初始的文4^呈序進行同步以產(chǎn)生包*的單元和修改的新的文本程序。
現(xiàn)在將參考圖5至圖8對語句和標(biāo)識的生成進行描述。雖然同步通過 數(shù)據(jù)進行工作與通過程序中的指令進行工作同樣不錯,但已經(jīng)發(fā)現(xiàn)最好首 先把數(shù)據(jù)進行同步。用于圖形表示的轉(zhuǎn)換器l產(chǎn)生序列化的數(shù)據(jù),如圖5 所示。圖l示出了圖形修改后的序列化的數(shù)據(jù)。轉(zhuǎn)換器l還產(chǎn)生序列化的指令,如圖6所示。圖2示出了圖形修改后的序列化的指令。相應(yīng)地,與 文本考呈序相連的轉(zhuǎn)換器2也產(chǎn)生其自身的文本程序的序列化的數(shù)據(jù)和指 令。這些如圖7和圖8所示。圖3示出了來自文本程序的序列化的數(shù)據(jù)。 圖4示出了來自文;^f呈序的序列化的指令。
下一步驟是使用修改命令生成器3來把序列化的數(shù)據(jù)和序列化的指 令進行比較以及生成使得文本版本(拷貝)與圖形版本(主導(dǎo))相同的修 改命令。注意,圖形版本或文本版本都可以是用于同步的目的的主導(dǎo)版本。 修改命令生成器獲取上述的序列化的數(shù)據(jù)和指令流,產(chǎn)生使得拷貝與主導(dǎo) 一致的編輯命令。
圖9和圖10示出了使用最長公共子集合算法從修改命令生成器生成 的通用的編輯命令。圖5示出了用于數(shù)據(jù)的編輯命令,圖6示出了用于指 令的編輯命令。這些編輯命令從修改命令生成器^JL送給轉(zhuǎn)換器2。轉(zhuǎn)換 器2把編輯命令應(yīng)用到文本程序。所得到的修改的文本程序示于圖11中, 所得到的修改以斜體字顯示。
關(guān)^^要注意的是,編輯命令是把文本考呈序同步到圖形程序所必需的編 輯命令的最小的集合。此方法不觸及其余的文本,因此允許空白處和注釋 得以保留。另外,該方法允許圖形程序或文本程序是主導(dǎo)而沒有任何附加 限制。
圖12是按照本發(fā)明實施例的方法和計算機程序產(chǎn)品的流程圖的示 意。將會理解的是,流程圖的每個方框都可以由計算機程序指令來實施。
圖形程序和本地語言程序通過以下順序被保持同步
方框11:接收有關(guān)哪個程序?qū)⑹怯糜谕降念I(lǐng)導(dǎo)者以及哪個程序?qū)?是跟隨者的信息。用戶對哪個程序(圖形,或機器人)將是用于同步的領(lǐng) 導(dǎo)者以及哪個將是跟M進行選擇。被選擇為跟隨者的程序?qū)凑毡贿x擇 為領(lǐng)導(dǎo)者的程序進行修改,即跟隨者程序被改變以及領(lǐng)導(dǎo)者程序維持不 變。
方框12:把圖形程序轉(zhuǎn)換成第一標(biāo)識序列,該第一標(biāo)識序列代表該 圖形程序中所包含的用于運動和動作的數(shù)據(jù)。轉(zhuǎn)換器1把圖形程序轉(zhuǎn)換成 語句序列和標(biāo)識序列。
方框14:把K器人程序轉(zhuǎn)換成第二標(biāo)識序列,該第二標(biāo)識序列代表 該機器人程序中所包含的用于運動和動作的數(shù)據(jù)。轉(zhuǎn)換器:fe^L器人程序轉(zhuǎn)換成語句序列和標(biāo)識序列,如圖2所示。圖形程序和機器人程序的轉(zhuǎn)換以 什么次序來執(zhí)行是無關(guān)的,即機器人程序可以在圖形程序之前進行轉(zhuǎn)換或 者轉(zhuǎn)換可以并行地執(zhí)行。
標(biāo)識所代表的數(shù)據(jù)從轉(zhuǎn)換器1被交換到轉(zhuǎn)換器2,這取決于哪個是領(lǐng) 導(dǎo)者。
方框16:把第一標(biāo)識序列和第二標(biāo)識序列進行比較。語句序列和標(biāo) 識序列^L送^^務(wù)改命令生成器。修改命令生成器對序列進行比較。
方框18:基于第一表示序列和第二標(biāo)識序列之間的比較,根據(jù)哪個 程序是領(lǐng)導(dǎo)者以及哪個程序是跟隨者來生成修改命令。修改命令生成器把 修改命令發(fā)送給轉(zhuǎn)換器1或轉(zhuǎn)換器2,這取決于哪個是跟隨者。
方框20:基于所生成的修改命令對跟隨者的標(biāo)識序列進行編輯,以 使得跟隨者的標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配。隨后的轉(zhuǎn)換器接收修改命 令并相應(yīng)地編輯其程序,以使得其語句和標(biāo)識序列與領(lǐng)導(dǎo)者精確地匹配。
方框22:把所編輯的跟隨者的標(biāo)識序列轉(zhuǎn)換回初始的程序形式,即 轉(zhuǎn)換回圖形程序或機器人程序。
例如,用于實施按照本發(fā)明的方法的軟件在機器人控制器上或在被用 于離線編程和仿真的計算機上進行存儲和執(zhí)行。然而,在任何其它外部計 算機上M儲和執(zhí)行該軟件也是可能的。
權(quán)利要求
1. 一種用于把圖形程序和機器人程序進行同步的方法,所述圖形程序在離線仿真環(huán)境中生成、定義用于機器人的移動路徑以及沿所述移動路徑的機器人運動的屬性,所述機器人程序包括用于機器人控制器的程序代碼,其中,所述方法包括接收有關(guān)哪個程序,以下稱之為用于同步的領(lǐng)導(dǎo)者程序,在同步期間將保持不變以及哪個程序,以下稱之為跟隨者程序,將根據(jù)被選擇為所述領(lǐng)導(dǎo)者程序的程序進行修改的信息,把圖形程序轉(zhuǎn)換成第一標(biāo)識序列,所述第一標(biāo)識序列代表所述圖形程序中所包含的用于運動和動作的數(shù)據(jù),把機器人程序轉(zhuǎn)換成第二標(biāo)識序列,所述第二標(biāo)識序列代表所述機器人程序中所包含的用于運動和動作的數(shù)據(jù),把第一標(biāo)識序列和第二標(biāo)識序列進行比較,并據(jù)此根據(jù)哪個程序是領(lǐng)導(dǎo)者和哪個程序是跟隨者來生成修改命令,以及基于所生成的修改命令對跟隨者程序進行編輯,以使得跟隨者的標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配。
2. 按照權(quán)利要求l的方法,其中,編輯步驟包括對跟隨者的標(biāo)識序 列進行編輯以使得所述標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配,以及把所編輯的 跟隨者的標(biāo)識序列轉(zhuǎn)換回初始的程序形式。
3. 按照權(quán)利要求1或3的方法,其中,所述程序被轉(zhuǎn)換成由所述標(biāo) 識構(gòu)建的語句序列,所述修改命令包括插入語句、刪除語句和編輯標(biāo)識。
4. 按照在前權(quán)利要求中任一項權(quán)利要求的方法,其中,第一標(biāo)識序 列和第二標(biāo)識序列之間的區(qū)別通過最長公共子序列LCS算法來計算。
5. —種可直接加載在計算機的內(nèi)部存儲器中的計算機程序產(chǎn)品,包 括用于執(zhí)行權(quán)利要求1至4中任一項權(quán)利要求的步驟的軟件。
6. —種計算機可讀介質(zhì),所述計算機可讀介質(zhì)上記錄有程序,其中, 當(dāng)所述程序在計算機上運行時,所述程序使得所述計算機執(zhí)行權(quán)利要求1 至4中任一項權(quán)利要求的步驟。
7. —種用于把圖形程序和機器人程序進行同步的設(shè)備,所述圖形程序在離線仿真環(huán)境中生成、定義用于機器人的移動路徑以及沿所述移動路 徑的機器人運動的屬性,所述機器人程序包括用于機器人控制器的程序代碼,其特征在于,所述設(shè)備包括第一轉(zhuǎn)換器(l),用于把圖形程序轉(zhuǎn)換成第一標(biāo)識序列,所述第一標(biāo) 識序列代表所述圖形程序中所包含的用于運動和動作的數(shù)據(jù),第二轉(zhuǎn)換器(2),用于把機器人程序轉(zhuǎn)換成第二標(biāo)識序列,所述第二 標(biāo)識序列代表所述機器人程序中所包含的用于運動和動作的泰:據(jù),以及修改命令生成器(3 ),用于把第一標(biāo)識序列和第二標(biāo)識序列進行比較, 并據(jù)此生成修改命令,其中,所述第一轉(zhuǎn)換器用于接收所述修改命令以及 基于所述修改命令對圖形程序進行編輯,以4吏得所述圖形程序的標(biāo)識序列 與機器人程序的標(biāo)識序列相匹配,以及,所述第二換器用于接收所述修改 命令以及基于所述修改命令對機器人程序進行編輯,以使得所述機器人程 序的標(biāo)識序列與圖形程序的標(biāo)識序列相匹配。
8. 按照權(quán)利要求7的設(shè)備,其中,所述設(shè)備用于接收有關(guān)哪個程序, 以下稱之為用于同步的領(lǐng)導(dǎo)者程序,在同步期間將保持不變以及哪個程 序,以下稱之為跟隨者程序,將才艮據(jù)被選擇為所述領(lǐng)導(dǎo)者程序的程序進行 修改的信息,以及,修改命令生成器(3)用于根據(jù)哪個程序是領(lǐng)導(dǎo)者和 哪個程序是跟隨者來生成以及向第一轉(zhuǎn)換器或第二轉(zhuǎn)換器發(fā)送所述修改 命令。
9. 按照權(quán)利要求8的設(shè)備,其中,所述轉(zhuǎn)換器(l, 2)用于對跟隨 者的標(biāo)識序列進行編輯以使得所述標(biāo)識序列與領(lǐng)導(dǎo)者的序列相匹配,以及 把所編輯的跟隨者的標(biāo)識序列轉(zhuǎn)換回初始的程序形式。
10. 按照權(quán)利要求1至4的任一項權(quán)利要求的方法的用途,用于對工 業(yè)機器人進行離線編程。
全文摘要
用于把機器人程序和圖形程序進行同步的設(shè)備和方法。該設(shè)備包括第一轉(zhuǎn)換器(1),用于把圖形程序轉(zhuǎn)換成代表該圖形程序中所包含的用于運動和動作的數(shù)據(jù)的第一標(biāo)識序列,第二轉(zhuǎn)換器(2),用于把機器人程序轉(zhuǎn)換成代表該機器人程序中所包含的用于運動和動作的數(shù)據(jù)的第二標(biāo)識序列,以及修改命令生成器(3),用于把第一和第二標(biāo)識序列進行比較,并據(jù)此生成修改命令,其中,該第一轉(zhuǎn)換器用于接收該修改命令以及基于該修改命令對圖形程序進行編輯,以使得該圖形程序的標(biāo)識序列與機器人程序的標(biāo)識序列相匹配,以及該第二換器用于接收該修改命令以及基于該修改命令對機器人程序進行編輯,以使得該機器人程序的標(biāo)識序列與圖形程序的標(biāo)識序列相匹配。
文檔編號G06F9/44GK101438240SQ200780016542
公開日2009年5月20日 申請日期2007年4月27日 優(yōu)先權(quán)日2006年5月11日
發(fā)明者丹尼爾·瓦登霍夫, 古尼拉·洛內(nèi)馬克, 史蒂夫·墨菲, 尼克拉斯·斯科格隆, 朗納·諾勒 申請人:Abb公司