專利名稱:用于微調(diào)機器人程序的方法
技術領域:
本發(fā)明涉及一種用于微調(diào)機器人程序的方法,該機器人程序用于一個包括工業(yè)機器人、刀具和工件的機器人應用中,該工件將由該刀具沿著一個包括工件上的多個期望姿態(tài)的路徑加工。該機器人程序包括多個程序指令,該程序指令包括相應于期望姿態(tài)的編程姿態(tài)。根據(jù)本發(fā)明的方法可用于對離線和在線編程的機器人程序進行微調(diào)。
本發(fā)明在例如各種類型的加工應用——比如修補、去毛邊(debarring)、銑、鋸、磨和鉆等需要高精度的機器人應用中特別有用。本應用在例如電弧焊、水噴射切割、激光切割、膠合和裝配等應用中也是有用的。
背景技術:
機器人程序包括多個控制機器人運動的程序指令。機器人程序基于多個確定了刀具和工件之間關系的編程姿態(tài)。一個姿態(tài)由一個位置和一個方向兩者確定。一個編程姿態(tài)包括在運行機器人程序時期望刀具相對于一個工件獲得的位置和方向。機器人程序的生成包括一個確定路徑姿態(tài)的第一步驟和基于確定的姿態(tài)產(chǎn)生程序指令的下一個步驟。
機器人應用是一種使用工業(yè)機器人來完成一項工作的應用。機器人經(jīng)常用在對工件的表面進行加工的應用中?,F(xiàn)有為機器人編程的方法包括在線教導機器人做出一系列姿態(tài)。這些姿態(tài)確定了一個在加工工件過程中機器人應當遵循的機器人路徑。通過在編程過程中沿著期望的路徑引導刀具經(jīng)過多個位置和方向教導機器人如何完成一個任務。然后就基于編程姿態(tài)產(chǎn)生了機器人程序。然而,通過教導為機器人編程是耗時的,尤其是如果工件具有復雜的幾何構型時。
一個應用的精度主要受到機器人結構的可重復性和能夠移動與旋轉刀具到期望的位置和方向的精度的限制。在許多例如機加工、激光切割、激光焊接等高精度的應用中,機器人的可重復性足夠好但肉眼很難發(fā)現(xiàn)刀具的正確位置和方向。而且,即使有很長編程經(jīng)驗的機器人編程人員要想獲得所需的精度,也需很多時間。
高級計算機編程語言和CAD/CAM的運用已經(jīng)使得為更加復雜的應用進行離線機器人編程變得更可行。使用工業(yè)機器人必須考慮到例如坐標框架等機器人工作單元的部件和由部件引起的誤差。工件和刀具的坐標系統(tǒng)相對于機器人坐標系必須以高精確度知悉。因此,校準成為應用機器人離線編程的關鍵。然而,在機器人在校準后運行離線產(chǎn)生的程序時,仍然會由于機器人運動中的誤差和工件和刀具坐標系的校準誤差而存在誤差。因此,今天使用的用于校準坐標系的校準方法沒有為需要非常高精度的應用提供足夠高的精度。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用于微調(diào)機器人程序的方法,該方法提高了應用的精度。
此目的通過一個用于微調(diào)一個針對機器人應用的機器人程序的方法實現(xiàn),其中該方法包括定義一個微調(diào)坐標系,選擇一個所述的編程姿態(tài),在微調(diào)坐標系中計算所選定的姿態(tài),在微調(diào)坐標系中為所選姿態(tài)產(chǎn)生一個或多個程序指令,由機器人運行所述的一個或多個程序指令,確定在運行所述一個或多個程序指令之后獲得的姿態(tài)和期望的姿態(tài)之間的差值,根據(jù)所述差值調(diào)整微調(diào)坐標系使得獲得的姿態(tài)接近期望的姿態(tài),在調(diào)整后的坐標系中為所選姿態(tài)產(chǎn)生一個或多個程序指令,以及為至少另一個的編程姿態(tài)重復該方法。
由此,獲得了一個新的調(diào)整后的機器人程序,它為工件的加工結果提供了較高的精度。該同一局部微調(diào)坐標系能夠用于為所述姿態(tài)附近的其他編程姿態(tài)進行重新編程,或者路徑上的每個姿態(tài)能夠具有其本身的局部微調(diào)坐標系。通過為一個姿態(tài)重新編程意味著為該姿態(tài)生成了一個或多個新的機器人程序指令,并且先前的程序指令被新的程序指令所替代。根據(jù)本發(fā)明的方法在對應用進行校準和編程之后才實施。通過此方法,可在沿路徑在每個姿態(tài)上都獲得高精度。
必須相對于機器人坐標系得知微調(diào)坐標系。通常,一個依附于機器人基座上的機器人坐標系被用作機器人的參照坐標系。優(yōu)選地,微調(diào)坐標系是一個相對于工件坐標系固定的坐標系,該工件坐標系是相對于工件固定的坐標系。工件坐標系通常已經(jīng)相對于機器人坐標系被定義了。機器人程序指令確定了針對一個機器人運動的編程姿態(tài)、與該編程姿態(tài)相關的工件坐標系和定義于該機器人上的刀具坐標系。為了能夠相對于工件坐標系調(diào)整編程目標姿態(tài),微調(diào)坐標系相對于工件坐標系定義,并且目標姿態(tài)相對于微調(diào)坐標系定義。
另外一個調(diào)整目標姿態(tài)的方式是,相對于刀具坐標系定義一個微調(diào)坐標系,并且當針對一個特定的編程姿態(tài)計算機器人的運動時將該微調(diào)坐標系用作刀具坐標系。
在每個目標姿態(tài)都需要一個微調(diào)坐標系的情況下,微調(diào)坐標系可以定義為沿著路徑總是改變其姿態(tài)的路徑坐標系。在此情況下也可以使用編程姿態(tài)本身的位置和方向,即微調(diào)坐標系定義為與所選定的姿態(tài)具有相同的方向和位置的坐標系。在本發(fā)明的詳細描述中,為簡單起見描述了相對于工件坐標系定義該微調(diào)坐標系的情況。
根據(jù)本發(fā)明的一個實施例,對路徑上的下一姿態(tài)重復進行微調(diào),并且該微調(diào)包括在前一姿態(tài)的局部微調(diào)坐標系中計算所述下一編程姿態(tài),將機器人程序運行到前一姿態(tài)局部微調(diào)坐標系中的所述下一編程姿態(tài),測量在獲得的下一姿態(tài)和期望姿態(tài)之間的差值,調(diào)整前一姿態(tài)的局部微調(diào)坐標系的拷貝使得該下一獲得的姿態(tài)接近期望姿態(tài),以及將調(diào)整后的局部微調(diào)坐標系的拷貝保存為所述下一姿態(tài)的局部微調(diào)坐標系。這樣,前一姿態(tài)的局部微調(diào)坐標系用于確定路徑上下一姿態(tài)的局部微調(diào)坐標系。這樣做的優(yōu)點是,如果彼此鄰近的姿態(tài)共用一個作相同調(diào)整的微調(diào)坐標系,那么需要更少的數(shù)據(jù)來確定微調(diào)。
根據(jù)本發(fā)明的一個實施例,獲得的姿態(tài)和期望姿態(tài)之間的差值是通過將機器人從獲得的姿態(tài)移動到期望姿態(tài),并且記錄在所述機器人移動過程中機器人姿態(tài)的改變來進行測量的。這樣,使用機器人來測量獲得的姿態(tài)和期望姿態(tài)之間的差值。使用機器人測量的優(yōu)點是無需特定的測量單元。
根據(jù)本發(fā)明的一個實施例,工件上刀具所獲得的姿態(tài)和刀具的期望姿態(tài)由一個位置測量單元測量,并且由來自所述測量單元的測量值之間的差值來計算所獲得的和期望的姿態(tài)之間的差值。使用位置測量單元測量的優(yōu)點是使用位置測量單元較容易和較安全,并且提供了比使用機器人測量的測量結果更高的精度。
根據(jù)本發(fā)明的一個實施例,該方法包括在該編程姿態(tài)上疊加一個偏移距離,將機器人程序運行到所述疊加了偏移距離的編程姿態(tài),并且在為姿態(tài)重新編程之前去掉該偏移距離。為了更容易地在工件和刀具上進行測量,在編程路徑上的姿態(tài)疊加了一個偏移距離。例如,如果使用刀具來銑、磨或鉆工件的內(nèi)部結構,必須在路徑的位置上疊加一個偏移距離以使得能夠完成測量。優(yōu)選地,所述偏移距離對應一個足夠大的距離,以便能夠用位置測量單元在刀具和工件之間測量。
根據(jù)本發(fā)明的一個實施例,該方法進一步包括當在一個為前一姿態(tài)調(diào)整了的微調(diào)坐標系中確定該編程姿態(tài)時,檢查在獲得的姿態(tài)和期望姿態(tài)之間是否存在一個實質(zhì)性的差值,以及如果在獲得的姿態(tài)和期望姿態(tài)之間存在一個實質(zhì)性的差值,基于所述測量差值調(diào)整微調(diào)坐標系,使得獲得的姿態(tài)接近期望的姿態(tài),并且將調(diào)整后的微調(diào)坐標系保存為該姿態(tài)的局部微調(diào)坐標系,而如果在獲得的姿態(tài)和期望姿態(tài)之間不存在實質(zhì)性的差值,則將用于計算該編程姿態(tài)的微調(diào)坐標系保存為局部微調(diào)坐標系。根據(jù)本實施例,僅當在期望姿態(tài)和所獲得姿態(tài)之間存在一個顯著差值時,才進行微調(diào)坐標系的調(diào)整,否則不作調(diào)整。從而,如果在期望的和獲得的姿態(tài)之間僅有小的差值,那么該姿態(tài)就使用為前一姿態(tài)進行調(diào)整了的局部微調(diào)坐標系。
即使依照前面實施例的微調(diào)方法將刀具精確地定位到期望姿態(tài),在用機器人加工工件之后仍然會存在誤差。這是有賴于這樣一個事實機器人不是剛性的,而在刀具的力的作用下會發(fā)生變形。依照一個本發(fā)明的實施例,該方法還包括補償機器人這種變形的程序,它包括沿著在一個具有期望幾何形狀的參照工件上的所述路徑測量至少一個姿態(tài),運行用于所述應用的機器人程序,由此刀具加工一個實際工件,沿著在加工后的實際工件上的所述路徑測量至少一個相應的姿態(tài),計算在參照工件上所測量的姿態(tài)和在加工后的工件上所測量的姿態(tài)之間的差值,根據(jù)參考工件上的和加工后的工件上的所測量的姿態(tài)之間的所述計算的差值調(diào)整該姿態(tài)的局部微調(diào)坐標系,使得加工后的工件上的姿態(tài)接近參照工件上的姿態(tài),存儲該姿態(tài)的調(diào)整后的局部微調(diào)坐標系,以及根據(jù)該姿態(tài)的調(diào)整后的局部微調(diào)坐標系對該姿態(tài)重新編程。由于該微調(diào)方法包括一個對微調(diào)坐標系的額外調(diào)整以及對路徑上的姿態(tài)的重新編程的步驟,機器人應用的精度得到進一步提高。優(yōu)選地,測量參照工件上的多個路徑姿態(tài)和加工后工件上的相應路徑姿態(tài),并且根據(jù)本發(fā)明的該實施例,這些路徑姿態(tài)的微調(diào)坐標系將經(jīng)歷一個額外的調(diào)整。
本發(fā)明的另外一個目的是提供一種用于調(diào)節(jié)離線編程的機器人程序的計算機程序產(chǎn)品,以在工件上獲得加工結果的更高的精度,其中該機器人程序包括多個編程姿態(tài),該編程確定了一個刀具和一個工件之間的關系。此目的通過一個根據(jù)相應的附后的權利要求的計算機程序產(chǎn)品達到,當在一個計算機上運行該計算機程序產(chǎn)品時,它執(zhí)行根據(jù)本發(fā)明的方法。該計算機程序能夠通過任何計算機可讀的介質(zhì)或例如互聯(lián)網(wǎng)的網(wǎng)絡提供。
容易認識到,根據(jù)本發(fā)明的、由附后的方法權利要求集所限定的方法適于通過一個計算機程序執(zhí)行,當該計算機程序在一個處理器單元上運行時它具有相應于發(fā)明方法中的步驟的指令。即使沒有在權利要求中清楚地表達出來,本發(fā)明覆蓋了一個計算機程序產(chǎn)品以及根據(jù)附后的方法權利要求的方法。
本發(fā)明的另外一個目的是提供一個計算機可讀的介質(zhì),該介質(zhì)上記錄有一個用于微調(diào)機器人程序的程序,當所述的程序在計算機上運行時,該程序的目的是使計算機執(zhí)行上述計算機程序產(chǎn)品的步驟。
該計算機程序產(chǎn)品可以在一個機器人的控制器上運行,或者在任何其它包括一個處理器和合適存儲器的計算機上運行。
現(xiàn)在將通過描述本發(fā)明的不同實施例并參考附圖更詳細地解釋本發(fā)明。
圖1顯示了一個工業(yè)機器人的應用和在該應用中定義的坐標系。
圖2a-c顯示了期望姿態(tài)和在執(zhí)行一個程序指令后獲得的姿態(tài)之間的差值。圖2b-c顯示了沿著圖2a中線A-A的截面視圖。
圖3顯示了一個數(shù)字化儀及其坐標系。
圖4和5解釋了微調(diào)所必需測量是如何根據(jù)本發(fā)明的實施例完成的。
圖6顯示了根據(jù)本發(fā)明實施例的微調(diào)坐標系的進一步調(diào)整。
圖7顯示了如何能用機器人來進行測量。
圖8顯示了當工件由機器人操縱并且刀具固定在空間內(nèi)時的微調(diào)。
圖9顯示了由一個安裝在工件上的數(shù)字化儀完成的測量。
圖10顯示了當向機器人程序姿態(tài)疊加一個偏移時由數(shù)字化儀完成的測量。
具體實施例方式
選擇來描述根據(jù)本發(fā)明的方法的機器人應用是機械加工,但該方法也能夠用于需要高精度的任何類型的應用。
圖1示出了一個機器人應用,它包括一個工業(yè)機器人1、一個安裝在機器人上的刀具2和一個要由刀具加工的工件3。工件3連接到一個夾具4上。機器人1包括一個基座6,該基座牢靠地安裝在一個底座上。該機器人還包括一個支撐件7,該支撐件7可相對于基座6繞著一個第一豎直軸線旋轉。在支撐件7的上端,一個第一機械臂8安裝成繞著一個第二水平軸線可旋轉。在第一機械臂的外端,一個第二機械臂9相對于第一機械臂安裝成繞著一個第三軸線可旋轉。第二機械臂9相對于該臂的內(nèi)部件安裝成繞著一個第四軸線可旋轉。第二機械臂9在其外端支撐了一個所謂的機械手10,該機械手10可繞著一個第五軸線旋轉,而第五軸線垂直于第二機械臂9長度方向的軸線。機器人還包括一個刀具架11。機械手的外部件及刀具架11相對于機械手的內(nèi)部件可繞著一個第六軸線旋轉。
該機器人還包括一個控制器12用于控制機器人的運動??刂破靼ㄖ辽僖粋€用于執(zhí)行機器人程序指令的處理器和用于存儲機器人程序的存儲器。
本發(fā)明的方法最重要的是對機器人應用進行微調(diào)所使用的不同的坐標系。機器人本身的位置通常由一個機器人基座坐標系來描述,該坐標系具有原點Orb和軸Xrb、Yrb和Zrb。機器人基座坐標系位于機器人的基座6上。此外,一個機器人刀具坐標系Ort、Xrt、Zrt、Yrt定義在刀具2的中心點(TCP)上。一個原點為Oo、軸為Xo、Yo、Zo的工件坐標系定義在工件上。刀具坐標系、工件坐標系和機器人基座坐標系之間的關系通過對這些坐標系的校準而獲知。
機器人的任務是沿著定義了姿態(tài)P1-P8的一個路徑移動刀具2。一個姿態(tài)確定了刀具坐標系在程序執(zhí)行過程中必須獲得的位置和方向。由此,每個編程姿態(tài)確定了刀具坐標系Ort在工件坐標系Oo中的姿態(tài)。然而,當運行機器人程序時,刀具實際獲得的姿態(tài)會與期望姿態(tài)P1-P8有某些程度的偏離。
本發(fā)明的目的是以這種方式微調(diào)一個離線生成的機器人程序在機器人程序運行時獲得的刀具姿態(tài)盡可能地接近工件上的期望刀具姿態(tài)P1-P8。為此目的,提供了一個具有期望幾何構形的參照工件。然后能夠測量獲得的刀具姿態(tài)和參照工件上的期望刀具姿態(tài)之間的差值。例如,參照工件是一個在CNC機床上以高精度銑削出來的工件。一個例如數(shù)字化儀或機器人本身的位置測量單元用來進行該測量。
為了進行這種微調(diào),引入了一個原點為Oft、軸為Xft、Yft和Zft的微調(diào)坐標系。微調(diào)坐標系Oft和工件坐標系之間的關系是確定的。由于工件坐標系相對于機器人基座坐標系是已知的,微調(diào)坐標系相對于機器人基座坐標系將是已知的,并且機器人可以在機器人程序中確定編程姿態(tài)時使用該坐標系。在此實施例中,微調(diào)坐標系與工件坐標系不同,但也可以將工件坐標系用作微調(diào)坐標系。在另外一個實施例中,還可以將微調(diào)坐標系用作局部刀具坐標系。
選擇路徑上的多個編程的姿態(tài)用于微調(diào)??梢赃x擇所有的編程姿態(tài),或者僅選擇一些姿態(tài)。選定的姿態(tài)之間的距離應當足以獲得微調(diào)的必需精度。在這里描述的實施例中,選擇所有的編程姿態(tài)P1-P8用于微調(diào)。所選定的編程姿態(tài)P1-P8在局部調(diào)整后的微調(diào)坐標系Oft中計算。
圖2a-c解釋了根據(jù)本發(fā)明一個實施例的微調(diào)。使用一個參照工件15來測量獲得的姿態(tài)和期望姿態(tài)之間的差值。微調(diào)坐標系Oft相對于工件坐標系Oo定義。存在一個機器人程序,其包括對于工件上的編程姿態(tài)P1-P8的指令。編程姿態(tài)P1在微調(diào)坐標系Oft中計算。從而,在微調(diào)坐標系中計算的、編程姿態(tài)P1的機器人指令由機器人執(zhí)行。圖2a和2b顯示了在程序指令執(zhí)行完后的刀具姿態(tài)。如圖2b所示,在所獲得的姿態(tài)和期望姿態(tài)之間存在差值,因為刀具2是傾斜的并且與參照工件15有一段距離。
圖2c顯示了刀具2相對于工件15的期望姿態(tài)。期望姿態(tài)和獲得的姿態(tài)之間的差值得以確定。該差值可通過在位置上的微小偏移和對微調(diào)坐標系Oft進行微小旋轉而得到補償。在圖2c中顯示了如何通過調(diào)整微調(diào)坐標系Oft到一個新的微調(diào)坐標系Oft’而獲得刀具2的期望姿態(tài)。然后根據(jù)獲得的姿態(tài)和期望姿態(tài)之間所確定的差值對微調(diào)坐標系Oft進行調(diào)整使得獲得的姿態(tài)接近期望姿態(tài)。調(diào)整后的微調(diào)坐標系Oft’存儲為姿態(tài)P1的局部微調(diào)坐標系。在每個隨后的姿態(tài)P2-P8中,相對于參照工件來測量獲得的刀具姿態(tài)和期望刀具姿態(tài)之間的差值。此差值通過調(diào)整前一姿態(tài)的微調(diào)坐標系得以補償,使得獲得的姿態(tài)接近該期望姿態(tài)。調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的局部坐標系。
因此,為了補償測量誤差,為實際的姿態(tài)定義一個局部微調(diào)坐標系,并且改變該局部微調(diào)坐標系的位置和方向以補償所確定的刀具姿態(tài)誤差。當機器人刀具從一個編程姿態(tài)移動到下一個時,機器人程序中使用了前一姿態(tài)的局部微調(diào)坐標系。這意味著如果刀具姿態(tài)誤差在兩個連續(xù)姿態(tài)中相同,那么它們將在機器人程序中共用同樣的局部微調(diào)坐標系。在最壞情況下,微調(diào)針對每個程序姿態(tài)產(chǎn)生一個微調(diào)坐標系,但通常一個微調(diào)坐標系能夠由幾個編程姿態(tài)共用。
刀具姿態(tài)差值例如通過用機器人操縱刀具直到刀具到達相對于工件的期望姿態(tài)——即圖2c所示的姿態(tài)來測量。機器人從獲得的姿態(tài)移動到期望姿態(tài)并且在所述移動機器人過程中機器人姿態(tài)的改變被記錄下來。這可在肉眼觀察下完成,但是有時精確度不夠好并且如果操作者需要非常接近刀具以觀察和減小刀具姿態(tài)誤差時會存在安全問題??梢蕴娲褂靡粋€例如3D數(shù)字化儀的測量單元。利用這種測量單元,可以測量位置甚至方向,這取決于測量單元的自由度的數(shù)量和使用的探針類型。數(shù)字化儀可以是機械式的或者是光學的,并且如果能接受較低的精確度也可以是基于超聲波、磁場和微波(GPS)的3D測量系統(tǒng)。
在圖3中顯示了一個有六個自由度的數(shù)字化儀20,其具有一個數(shù)字化儀基座坐標系dB,具有原點Odb和軸Xdb、Ydb、Zdb,以及一個數(shù)字化儀工具坐標系dt,具有原點Odt和軸Xdt、Ydt、Zdt。圖中的工具是一個用于位置測量的測量探針22,而另外也可以使用在圖中示出的具有一個固定板25的探針24以探測位置和傾角,它用在例如當為一個銑削加工面編程時。還可以在數(shù)字化儀中放入實際的機器人刀具并且使用數(shù)字化儀為機器人路徑編程并校準工件坐標系和機器人的工具坐標系。然而,在此情況下,使用數(shù)字化儀以對機器人程序中的刀具姿態(tài)進行微調(diào)而進行測量。
現(xiàn)在將參考圖4和5解釋在工件上銑出一個曲面的情況下,如何根據(jù)本發(fā)明的實施例利用一個例如數(shù)字化儀的測量單元進行測量。如圖4,該機器人被編程為以一個銑刀2銑削加工該表面。為獲得銑削加工的高精度,銑刀2的位置和方向必須相對于要進行銑削加工的工件非常精確。接下來描述如何獲得這種精度。包括多個刀具姿態(tài)的機器人程序借助于機器人或一個數(shù)字化儀進行編程。編程姿態(tài)被定義于該微調(diào)坐標系中。一個已經(jīng)高精度銑削加工的參考工件15設置在機器人1和數(shù)字化儀20附近。使用數(shù)字化儀20用來在參考工件15的銑削加工面上的幾個位置26處測量以獲得表面的位置和方向,并由此獲得待編程的期望的姿態(tài)Pi。在圖4和5中使用了一個點測量探針22,那么必須至少測量三個點以獲得表面的方向(法向矢量方向)。如果替代使用盤形探針,為獲得表面方向(表面法向)只需測量一處。所有的測量是在數(shù)字化儀基座坐標系中進行的。
機器人或者如圖所示帶有實際的刀具2,或者帶有一個參照刀具,該參照刀具具有為測量而良好形成的表面。在到達機器人路徑的第一姿態(tài)P1之前機器人程序一直運行。當程序運行時,機器人根據(jù)程序指令移動并且刀具獲得編程姿態(tài)。當?shù)毒?到達編程姿態(tài)時,如圖5所示用數(shù)字化儀測量刀具上的表面或者安裝在刀具上的參照結構。參照結構例如是一個平面、一個球或一個圓柱,它們確定了一個錐形或立方形。已知該測量表面和該刀具表面的幾何模型之間的幾何關系,在測量值和刀具表面的幾何模型之間進行最優(yōu)擬合計算,以獲得在數(shù)字化儀基座坐標系中的刀具坐標系Xt、Yt、Zt。
在測量值和刀具表面的幾何模型之間的最優(yōu)擬合例如通過幾何模型的平移和旋轉、借助于最小均方的方法來最小化測量值和模型表面之間的距離來進行??蛇x地,其他最優(yōu)化算法,例如高斯-牛頓算法,可以代替最小均方的方法。幾何模型可以由一個工件的CAD模型給出,或者以解析形式或者以一個例如多邊形或樣條函數(shù)的近似形式給出。在是立方體的情況下,數(shù)學模型是立方體平面的方程。
計算在測量的刀具坐標系Xt、Yt、Zt的位置與方向和參照結構表面上的測量的姿態(tài)Pi的坐標系Xpi、Ypi、Zpi的位置與方向之間的差值。姿態(tài)Pi的位置由數(shù)字化儀直接在參照工件表面上測量,而姿態(tài)Pi的方向信息通過在靠近期望位置Pi的工件表面上測量至少多于兩個的位置而獲得。如果使用如圖3所示的探針25,當把板25壓靠在工件表面上時可直接從數(shù)字化儀獲得方向。此后對微調(diào)坐標系Xft、Yft、Zft作出相應調(diào)整,從而獲得一個調(diào)整后的微調(diào)坐標系Xft’、Yft’、Zft’。
調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的一個局部微調(diào)坐標系。機器人程序指令中的姿態(tài)被重新編程以使其基于新的調(diào)整后的局部微調(diào)坐標系。當執(zhí)行路徑中下一姿態(tài)的接下來的機器人移動指令時,仍然可以使用該新的局部微調(diào)坐標系。對下一姿態(tài)重復進行上述測量。如果現(xiàn)在期望姿態(tài)和獲得的姿態(tài)之間的差值很小,將前一姿態(tài)的局部微調(diào)坐標系用于該姿態(tài),否則計算一個新的調(diào)整后的微調(diào)坐標系并且將其保存為該姿態(tài)的局部微調(diào)坐標系,并且用于對該姿態(tài)重新編程。對于所有的編程姿態(tài)重復進行此微調(diào)算法,直到路徑結束。
微調(diào)的結果在圖5中右側的小圖中顯示。刀具坐標系的期望位置和方向以坐標系Xpi、Ypi、Zpi描述,而當運行機器人程序時獲得的坐標系的姿態(tài)以Xt、Yt、Zt給出。通過測量獲得的姿態(tài)和期望姿態(tài)之間的差值并且移動和旋轉微調(diào)坐標系以補償姿態(tài)誤差,刀具將更靠近期望的位置和方向。
即使通過上述微調(diào)方法使刀具精確地位于期望位置,在用機器人銑削加工后仍然會存在誤差。這是因為機器人不是剛性的,而是是會在刀具的力的作用下變形。為對此進行補償,使用了一個將參考圖6進行描述的方法。根據(jù)圖4和5使用數(shù)字化儀在一個參照工件15上的幾個點26處測量銑削加工表面并且數(shù)字化儀的基座坐標系不發(fā)生移動是先決條件。現(xiàn)在一個實際未加工的工件3安裝在其夾具4上,并且機器人1以根據(jù)上述方法微調(diào)后的機器人程序進行銑削加工。在銑削加工后使用數(shù)字化儀在實際工件3的銑削加工表面上測量多個點27。針對每個編程姿態(tài)計算在實際工件3的銑削加工表面和參照工件15的表面之間的位置和方向的差值。調(diào)整局部微調(diào)坐標系Xftl、Yftl、Zftl以補償該計算出的差值。調(diào)整后的局部微調(diào)坐標系保存為新的局部微調(diào)坐標系Xftl’、Yftl’、Zftl’。如果兩個姿態(tài)具有相同的局部微調(diào)坐標系,若需要,為兩個姿態(tài)中的一個計算一個新的局部微調(diào)坐標系。
現(xiàn)在針對一個新的工件,使用機器人程序內(nèi)的新的局部微調(diào)坐標系來運行機器人程序。上述測量和計算不斷重復,并且如果現(xiàn)在差值對于應用來說足夠小,那么利用前面存儲的微調(diào)坐標系對路徑重新編程,否則就計算新的調(diào)整后的局部微調(diào)坐標系以改善補償。
圖7顯示了可用機器人1本身來首先在參照工件上、然后在由機器人銑削加工的工件上進行測量。使用機器人測量的優(yōu)點是它可以自動進行。測量探針22可如刀具那樣操作,例如通過一個刀具交換器在機器人上自動安裝和拆卸。
圖8顯示了當工件3由機器人操縱并且一個刀具28固定在機器人單元上時進行的微調(diào)。由于現(xiàn)在是微調(diào)坐標系Xft、Yft、Zft移動并且刀具坐標系固定,該方法有一些變化。一個參照工件15安裝在機器人上。參照表面定義在工件表面上,或者相對于工件固定?;蛘咴诠ぜ旧砩蠈ふ液线m的參照表面,或者一個具有良好形成表面的參照結構安裝在工件上。在此實施例中,一個立方形的參照結構32安裝在工件上。
刀具坐標系Xt、Yt、Zt的位置和方向借助于數(shù)字化儀20測量,例如,通過對刀具28的參照表面、或者對安裝在刀具上的一個參照結構的參照表面或者在一個參照刀具的參照表面進行測量。測量值用于最優(yōu)擬合參照表面或者參照結構的幾何模型。然后,在已知了參照結構的幾何構形和刀具坐標系的關系時,刀具坐標系的位置和方向可以在數(shù)字化儀基座坐標系中計算。在圖9中,一個錐形的參照結構32安裝在刀具上,以通過錐形幾何模型和錐形表面上的測量點之間的最優(yōu)擬合獲得刀具坐標系。
路徑姿態(tài)P1-P8由數(shù)字化儀編程。從而,數(shù)字化儀在編程過程中測量工件上的期望姿態(tài)。相對于工件或參照結構30的表面的幾何模型確定一個微調(diào)坐標系Xft、Yft、Zft。相對于該確定了的微調(diào)坐標系計算編程姿態(tài)。機器人程序運行到路徑的第一姿態(tài),隨后工件移動到第一姿態(tài)P1。通過在參照表面上或在工件上的參照結構30上測量多個點并且通過對相應的參照表面或參照結構30進行最優(yōu)擬合,來相對于數(shù)字化儀確定工件的位置。數(shù)字化儀執(zhí)行該測量。由于路徑姿態(tài)和參照結構之間的關系已知,能夠計算所獲得的編程姿態(tài)。如果計算的編程姿態(tài)偏離了由數(shù)字化儀編程的姿態(tài),就調(diào)整微調(diào)坐標系以減小偏離。調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的局部微調(diào)坐標系。
此后,機器人運行到下一個編程姿態(tài)并且相對于微調(diào)坐標系測量該姿態(tài)。在前一姿態(tài)的微調(diào)坐標系中計算該姿態(tài),并且如果該姿態(tài)與由數(shù)字化儀確定的姿態(tài)偏離太多,那么就為該姿態(tài)確定一個新的微調(diào)坐標系,并且通過調(diào)整該新的微調(diào)坐標系補償誤差。調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的局部坐標系。如果姿態(tài)偏離很小,將前一姿態(tài)的同樣的微調(diào)坐標系用于該姿態(tài)。重復該過程直到編程路徑到達末端。
圖9顯示如果數(shù)字化儀安裝在工件上,該測量將和圖5相同。當機器人移動工件3時,數(shù)字化儀的基座坐標系Xdb、Ydb、Zdb將跟隨該移動并且在工件上的路徑姿態(tài)P1-P8將相對于數(shù)字化儀坐標系一直不變。相反,以刀具坐標系Xt、Yt、Zt將相對于數(shù)字化儀基座坐標系移動。對于機器人程序中的每個姿態(tài),數(shù)字化儀測量刀具坐標系,并且由于工件上的期望姿態(tài)已經(jīng)由數(shù)字化儀在編程過程中測量,將能夠測量在機器人運行程序時刀具獲得的姿態(tài)與工件上的期望姿態(tài)之間的差值。
在圖9中,參照結構32安裝在刀具上,以通過圓錐表面和圓錐幾何模型上的測量點的最優(yōu)擬合獲得刀具坐標系。然后,由于已知圓錐和刀具坐標系之間的關系,刀具坐標系能夠在數(shù)字化儀基座坐標系中計算。注意在圖中僅使用了三自由度的數(shù)字化儀。當然在此情況下也可使用有六自由度的數(shù)字化儀。在此情況下一個問題將會是可能刀具上的參照結構和工件之間存在碰撞。因此,應當由工件表面向外的一個偏移值生成微調(diào)機器人程序。之后,當微調(diào)結束后去掉該偏移值。
當機器人程序已經(jīng)借助于參照工件而進行了微調(diào)之后,參照工件被代之以一個原料(未加工的)工件并且運行該微調(diào)機器人程序。然后可以用數(shù)字化儀測量工件上加工過的部分,并且根據(jù)圖6,通過調(diào)整微調(diào)坐標系可以對路徑進行一個新的修正。在圖9所示的應用中,刀具的方向可能不重要,那么通常只調(diào)整微調(diào)坐標系的位置就足夠了。
應當指出,能夠定義幾個工件坐標系并且將它們用作微調(diào)坐標系。然而,通常在一個工件上存在幾條路徑,那么使工件坐標系處理工件的總體幾何構形和不同路徑的局部姿態(tài)調(diào)整兩者將是困難的。在稍后的階段,還可能在機器人程序中借助于微調(diào)坐標系重新計算單個姿態(tài),這使得能夠在工件坐標系中對工件進行微調(diào)之后表達編程姿態(tài)。
先前已經(jīng)指出,在機器人程序姿態(tài)中疊加了一個偏移,以便能夠在運行程序時,刀具上的參照結構不與工件發(fā)生碰撞。如果用刀具在工件上銑、磨、或鉆加工內(nèi)部結構,這會更加重要。這例示于圖10中,其中對一個半徑為R的銑輪35進行編程以銑削加工工件內(nèi)的一個圓柱孔36。
現(xiàn)在將結合圖10描述這種情況下的過程。在一個參照工件的精確加工的孔38內(nèi),由一個數(shù)字化儀20對刀具姿態(tài)編程。該數(shù)字化儀測量孔38在圓柱形內(nèi)表面上的幾個點40以便能夠確定刀具35的方向和位置。由數(shù)字化儀的測量值可生成一個機器人程序,其中帶有由數(shù)字化儀確定的刀具位置和方向。沿圓柱中心軸線方向的偏移值d被疊加到每個編程姿態(tài)上。帶有偏移值的程序由機器人運行,該機器人帶有參照刀具、或者安裝了一個參照結構42的實際刀具、或者由刀具幾何構形本身所確定的參照結構。對于機器人程序中的每個或一些姿態(tài)pj,機器人都停止并且使用數(shù)字化儀在刀具參考結構42上的表面上測量。由這些測量值和參照結構的幾何模型進行最優(yōu)擬合,并且在數(shù)字化儀基座坐標系Xdb、Ydb、Zdb中計算刀具坐標系Xt、Yt、Zt。
現(xiàn)在計算在疊加偏移后在圓柱孔內(nèi)的姿態(tài)上的期望刀具坐標系和測量的刀具坐標系姿態(tài)之間的差值。如果該差值過大,計算一個對于該姿態(tài)的微調(diào)坐標系以補償該姿態(tài)差值。和以前一樣,當運行機器人到程序的下一姿態(tài)時將使用該微調(diào)坐標系Oft。如果在程序的下一姿態(tài),該測量到的差值很小,與前一編程姿態(tài)相同的微調(diào)坐標系也將用于該姿態(tài),否則將確定一個新的微調(diào)坐標系以補償姿態(tài)誤差。然后通過從微調(diào)程序中去掉該偏移值而生成真實的程序。
優(yōu)選地,機器人運行該帶有一個垂直于參照工件表面的偏移值的該機器人程序。偏移應當越小越好,但是不能小于能夠用數(shù)字化儀測量刀具姿態(tài)的值。如果能夠在用數(shù)字化儀編程之后不移動數(shù)字化儀基座就能拆卸工件,那么通常無需在微調(diào)過程中運行該帶有偏移值的機器人程序。
本發(fā)明不限于公開的實施例,而是可以在下列權利要求范圍內(nèi)改變或改進。例如,方法中的步驟的順序可以不同于這里描述的步驟的順序。例如,微調(diào)坐標系可相對于機器人基座坐標系、刀具坐標系、工件坐標系或本應用中的任何其他坐標系定義。
權利要求
1.一種用于微調(diào)機器人程序的方法,該機器人程序用于一個包括一個工業(yè)機器人、一個刀具和一個工件的機器人應用中,該工件將由該刀具沿著一個包括位于工件上的多個期望姿態(tài)的路徑進行加工,該機器人程序包括多個程序指令,該程序指令包括相應于該期望姿態(tài)的編程姿態(tài),其中該方法包括a)定義一個微調(diào)坐標系,b)選擇一個所述的編程姿態(tài),c)在該微調(diào)坐標系中計算所述選定的姿態(tài),d)在該微調(diào)坐標系中為所述選定的姿態(tài)產(chǎn)生一個或多個程序指令,e)由該機器人運行所述一個或多個程序指令,f)確定在運行所述一個或多個程序指令后所獲得的姿態(tài)和期望姿態(tài)之間的差值,g)根據(jù)所述差值調(diào)整該微調(diào)坐標系,使得所獲得的姿態(tài)接近該期望姿態(tài),h)在調(diào)整后的微調(diào)坐標系中為所選定的姿態(tài)產(chǎn)生一個或多個程序指令,i)對于至少另一個編程姿態(tài)重復步驟b至h。
2.如權利要求1所述的方法,包括將所述調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的局部微調(diào)坐標系,在其中對于路徑上的下一姿態(tài)重復步驟b至h,并且包括在前一姿態(tài)的局部微調(diào)坐標系中為所述下一編程姿態(tài)計算和產(chǎn)生一個或多個程序指令,運行該程序指令到達所述下一編程姿態(tài),確定所獲得的下一姿態(tài)和期望的下一姿態(tài)之間的差值,調(diào)整該前一姿態(tài)的局部微調(diào)坐標系的拷貝使得該下一獲得的姿態(tài)接近該期望姿態(tài),并且將調(diào)整后的局部坐標系的拷貝存儲為所述下一姿態(tài)的局部微調(diào)坐標系。
3.如權利要求1所述的方法,其中確定所獲得的姿態(tài)和期望姿態(tài)之間的差值的步驟包括將該機器人從所獲得的姿態(tài)移動到期望姿態(tài),并且記錄在所述移動機器人過程中機器人姿態(tài)的變化。
4.如權利要求1所述的方法,其中步驟f包括借助于一個位置測量單元測量所述刀具所獲得的姿態(tài)和該刀具在所述工件上的期望姿態(tài),并且將所獲得的和期望的姿態(tài)之間差值計算為所述測量單元的測量值之間的差值。
5.如權利要求1所述的方法,其中該方法包括向所述編程姿態(tài)疊加一個偏移距離,運行該程序指令到達疊加了該偏移距離的所選姿態(tài),并且在執(zhí)行步驟i之前去掉該偏移距離。
6.如權利要求1和4所述的方法,其中所述偏移距離對應于一個足夠大的距離,以能夠用所述位置測量單元在所述刀具和工件之間測量。
7.如權利要求2所述的方法,其中包括檢查在所獲得的姿態(tài)和期望姿態(tài)之間是否存在一個實質(zhì)性的差值,并且如果在所獲得的和期望的姿態(tài)之間存在一個實質(zhì)性的差值,基于所述測量到的差值對所述微調(diào)坐標系進行調(diào)整,使得所獲得的姿態(tài)接近期望姿態(tài),并且將調(diào)整后的微調(diào)坐標系存儲為該姿態(tài)的一個局部微調(diào)坐標系,而如果在所獲得的和期望的姿態(tài)之間不存在一個實質(zhì)性的差值,用于計算編程姿態(tài)的該微調(diào)坐標系被存儲為局部微調(diào)坐標系。
8.如權利要求1所述的方法,其中所述微調(diào)坐標系定義為一個工件坐標系,該工件坐標系定義為相對于該工件固定。
9.如權利要求1所述的方法,其中所述微調(diào)坐標系相對于一個與所述刀具以固定關系定義的刀具坐標系定義,并且該微調(diào)坐標系用作一個局部刀具坐標系。
10.如權利要求1所述的方法,其中所述微調(diào)坐標系定義為一個路徑坐標系。
11.如權利要求1所述的方法,其中所述微調(diào)坐標系定義為一個與該選定姿態(tài)具有相同方向和位置的坐標系。
12.如權利要求1所述的方法,其中該方法還包括沿著位于一個具有期望幾何構形的參照工件上的所述路徑測量至少一個姿態(tài),運行所述應用的機器人程序,由此所述刀具加工一個實際工件,沿位于該被加工的真實工件上的所述路徑測量至少一個相應的姿態(tài),計算該參照工件上的測量姿態(tài)和被加工工件上相應的測量姿態(tài)之間的差值,以及根據(jù)該計算得到的參照工件上的和被加工工件上的測量姿態(tài)之間的差值調(diào)整該姿態(tài)的局部微調(diào)坐標系,使得被加工工件上的姿態(tài)接近該參考工件上相應的姿態(tài),存儲該姿態(tài)的調(diào)整后的局部微調(diào)坐標系,以及基于該姿態(tài)的調(diào)整后的局部微調(diào)坐標系為該姿態(tài)產(chǎn)生一個或多個新的程序指令。
13.如權利要求12所述的方法,其中該方法包括沿著該參照工件上的所述路徑測量多個姿態(tài),沿著被加工的實際工件上的所述路徑測量多個相應的姿態(tài),計算參照工件上所測量的姿態(tài)和被加工工件上相應的測量姿態(tài)之間的差值,并且根據(jù)計算得到的參照工件上的和被加工的實際工件上的測量姿態(tài)之間的差值,針對每個所測量的姿態(tài)調(diào)整局部微調(diào)坐標系,存儲這些姿態(tài)的調(diào)整后的局部微調(diào)坐標系,并且基于這些姿態(tài)的調(diào)整后的局部微調(diào)坐標系為該姿態(tài)產(chǎn)生一個或多個新的程序指令。
14.如權利要求1所述的方法,其中所述的期望姿態(tài)通過在一個具有期望幾何構形的參照工件上進行測量而獲得。
15.一種用于微調(diào)機器人程序的計算機程序產(chǎn)品,該機器人程序用于一個包括一個工業(yè)機器人、一個刀具和一個工件的機器人應用中,該工件將由該刀具沿著一個包括工件上的多個期望姿態(tài)的路徑加工,該機器人程序包括多個程序指令,該程序指令包括相應于期望姿態(tài)的編程姿態(tài),其中該計算機程序產(chǎn)品包括程序指令,這些程序指令被加載到一個計算機中時,導致該計算機執(zhí)行a)接收該編程姿態(tài),b)接收有關一個微調(diào)坐標系的信息,c)選擇一個所述的編程姿態(tài),d)在該微調(diào)坐標系中計算該選定的姿態(tài),e)在該微調(diào)坐標系中為該選定的姿態(tài)產(chǎn)生一個或多個程序指令,j)命令執(zhí)行所述一個或更多程序指令,由此將該機器人移動到所選定的姿態(tài),f)確定該獲得的姿態(tài)和期望姿態(tài)之間的差值,g)根據(jù)所述差值調(diào)整該微調(diào)坐標系,使得所獲得的姿態(tài)接近該期望姿態(tài),h)將調(diào)整后的微調(diào)坐標系存儲為該選定姿態(tài)的局部微調(diào)坐標系,以及i)在調(diào)整后的微調(diào)坐標系中為所選定的姿態(tài)產(chǎn)生一個或多個程序指令,j)對至少另一個的編程姿態(tài)重復步驟c至i。
16.如權利要求15所述的計算機程序產(chǎn)品,包括將所述調(diào)整后的微調(diào)坐標系存儲為所選定姿態(tài)的局部微調(diào)坐標系,并且對路徑上的下一姿態(tài)重復步驟c至i,其中在步驟d、e和g中將前一姿態(tài)的局部微調(diào)坐標系用作下一姿態(tài)的微調(diào)坐標系。
17.如權利要求15所述的計算機程序產(chǎn)品,包括接收所獲得的姿態(tài)或期望姿態(tài)的測量值,并且通過計算在所述測量值和該編程姿態(tài)之間的差值確定在所獲得的姿態(tài)和期望姿態(tài)之間差值。
18.如權利要求17所述的計算機程序產(chǎn)品,包括接收來自一個位置測量單元的所獲得的姿態(tài)的測量值,并且通過計算所獲得的姿態(tài)的所述測量值和編程姿態(tài)之間的差值確定所獲得的姿態(tài)和期望姿態(tài)之間差值。
19.如權利要求17所述的計算機程序產(chǎn)品,包括在執(zhí)行所述指令之后接收機器人姿態(tài),并且通過計算所接收的機器人姿態(tài)和編程姿態(tài)之間的差值確定所獲得的姿態(tài)和期望姿態(tài)之間差值。
20.一種其上記錄有一程序的計算機可讀介質(zhì),該程序用于微調(diào)一個機器人程序,其中當所述程序在計算機上運行時,該程序使得該計算機執(zhí)行如權利要求15至19中任一項所述的程序的步驟。
全文摘要
一種用于微調(diào)機器人程序的方法,該機器人程序用于一個包括一個工業(yè)機器人、一個刀具和一個工件的機器人應用中,該工件將由刀具沿著一個包括工件上的多個期望姿態(tài)的路徑加工,該機器人程序包括多個程序指令,該程序指令包括相應于期望姿態(tài)的編程姿態(tài),其中該方法包括定義一個微調(diào)坐標系Xft、Yft、Zft,選擇一個所述的編程姿態(tài)pi,在該微調(diào)坐標系中計算所選定的姿態(tài),在該微調(diào)坐標系中為所選定的姿態(tài)產(chǎn)生一個或多個程序指令,由該機器人運行所述一個或多個程序指令,確定在運行程序指令后獲得的姿態(tài)和期望姿態(tài)之間的差值,根據(jù)所述差值調(diào)整該微調(diào)坐標系,在調(diào)整后的微調(diào)坐標系Xft’、Yft’、Zft’中為所選定的姿態(tài)產(chǎn)生一個或多個程序指令。
文檔編號G05B19/425GK1805830SQ200480016121
公開日2006年7月19日 申請日期2004年6月1日 優(yōu)先權日2003年6月11日
發(fā)明者格雷戈里·羅薩諾, 湯青, 李雄姿, 孫云權, 甘中學, 托里尼·布羅加德, 哈坎·布蘭特馬克 申請人:Abb 公司