機器人控制裝置的製作方法
2023-11-11 04:51:12
本發明涉及一種機器人控制裝置。
背景技術:
機器人的關節和連杆受到作用於機器人和安裝於機器人的前端的工具的重力的影響而發生彈性變形。機器人的結構要素的變形會導致機器人的定位精度的下降。因此,採用了將機器人的結構要素模型化、對其變形量進行補償的機器人的控制方法。
例如,在日本特開2002-307344號公報中公開了以下技術:對在機器人的關節和連杆中產生的彎曲進行校正,來更準確地對各關節的致動器進行控制。在日本特開2010-058256號公報中公開了以下技術:調整臂的位置,以消除由臂的彎曲等導致的位置偏移。
在日本特開2011-125956號公報中公開了以下技術:針對多關節機器人的臂的各關節,識別繞X軸、Y軸以及Z軸的彈簧常數。
現有的技術均是對機器人的關節或連杆的彎曲進行校正。然而,已知特別是在大型的機器人、例如重量超過500kg的機器人的情況下,為設置機器人而使用的鐵板、或鐵製的臺等支承體發生彈性變形,對機器人的定位精度產生影響。
技術實現要素:
尋求一種能夠提高機器人的定位精度的機器人控制裝置。
根據本申請的第一發明,提供一種機器人控制裝置,對至少一個致動器進行控制,該至少一個致動器使構成機器人的多個連杆彼此相對移動,該機器人相對於支承體固定地設置,該機器人控制裝置具備:彎曲估計部,其估計在假定為所述機器人的前端已到達目標的位置及姿勢時、由於作用於所述機器人的重力的影響而在所述支承體中產生的彎曲;移動量計算部,其基於由所述彎曲估計部估計出的所述支承體的彎曲,來計算用於使所述機器人的前端到達所述目標的位置及姿勢的所述至少一個致動器的移動量;以及驅動部,其基於由所述移動量計算部計算出的所述移動量,來對所述至少一個致動器進行驅動。
根據本申請的第二發明,在第一發明所涉及的機器人控制裝置中,所述彎曲估計部構成為還將所述機器人的加速度的影響考慮在內地估計所述支承體的彎曲。
根據本申請的第三發明,在第一發明所涉及的機器人控制裝置中,還具備:存儲部,其存儲將所述支承體模型化為轉動彈簧(日文:回転バネ)時的、所述轉動彈簧的彈簧常數和所述轉動彈簧的轉動中心的位置;以及力矩計算部,其計算由於作用於所述機器人的重力的影響而作用於所述支承體的力矩的大小和方向,所述彎曲估計部構成為:基於由所述力矩計算部計算出的力矩的大小和方向、以及所述存儲部中存儲的所述彈簧常數和所述轉動中心的位置,來估計所述支承體的彎曲。
根據本申請的第四發明,在第三發明所涉及的機器人控制裝置中,所述力矩計算部構成為:還將所述機器人的加速度的影響考慮在內地計算所述力矩的大小和方向。
通過參照附圖所示的本發明的例示性的實施方式所涉及的詳細的說明,這些以及其它的本發明的目的、特徵以及優點會變得更加明確。
附圖說明
圖1是表示具備機器人和機器人控制裝置的機器人系統的圖。
圖2是表示圖1的機器人的驅動機構的圖。
圖3是一個實施方式所涉及的機器人控制裝置的框圖。
圖4是一個實施方式所涉及的機器人控制裝置的功能框圖。
圖5是表示由一個實施方式所涉及的機器人控制裝置執行的處理的流程圖。
圖6是表示用於設置機器人的支承體的圖。
圖7是表示機器人的另外的結構例的圖。
圖8是表示圖7的機器人的驅動機構的圖。
具體實施方式
下面參照附圖來說明本發明的實施方式。為了有助於本發明的理解,圖示的實施方式的結構要素適當變更了比例尺。另外,對相同或對應的結構要素使用相同的參照標記。
參照圖1~圖4,對本發明的一個實施方式所涉及的機器人控制裝置的結構進行說明。圖1示出了具備機器人5和對機器人5進行控制的機器人控制裝置10的機器人系統100。
機器人5是具備基座51、迴旋主體52、下臂53、上臂54以及手腕部55的六軸垂直多關節機器人。機器人5具有關節J1~J6(參照圖2)。關節J1~J6被電動機7(僅有幾個電動機能夠視覺識別)分別驅動。
由下臂53和上臂54等形成的連杆構成為:隨著設置於相鄰的連杆之間的關節被驅動而彼此相對移動。由此,機器人5能夠將安裝於手腕部55的末端執行器(未圖示)以期望的姿勢定位於期望的位置。這種機器人5的結構和機構是周知的,因此在本說明書中不進行詳細的說明。
機器人5的基座51固定於支承體3。支承體3是具有任意的形態、例如板材或臺座的形態的金屬制的構件。支承體3用於將機器人5固定地設置於規定的位置。
機器人5經由公知的通信手段、例如通信線纜4而與機器人控制裝置10連接。機器人控制裝置10是具有包括主CPU 11、存儲器12以及各種接口(未圖示)的公知的硬體結構的數字計算機。
存儲器12具有ROM、RAM、非易失性存儲器等。在ROM中保存有對機器人控制裝置10的基本動作進行控制的系統程序。RAM暫時地存儲主CPU11的運算結果。RAM也用於存儲後述的計數器的計數值。
在非易失性存儲器中,保存有對機器人5進行控制的動作程序以及根據動作程序來創建針對機器人5的指令所需的參數等。另外,在非易失性存儲器中,保存有與機器人5的連杆以及安裝於手前端的工具的質量和重心位置等有關的數據。並且,在非易失性存儲器中,保存有後述的與被利用於計算支承體3的彎曲的轉動彈簧的彈簧常數、轉動彈簧的轉動中心的位置有關的信息。
雖未圖示,但是機器人控制裝置10經由各種接口而與顯示器和輸入設備、例如滑鼠或鍵盤、或者操作示教板等外部設備連接。
參照圖3,機器人控制裝置10的主CPU 11和存儲器12經由總線13而與同各個關節J1~J6相對應地設置的伺服控制器14和伺服放大器15連接。
各個伺服控制器14對伺服放大器15輸出電壓指令或電流指令。電壓指令或電流指令是基於移動指令與反饋信號之間的偏差量創建的,其中,移動指令是按照存儲器12中保存的動作程序創建的,反饋信號是從設置於各個關節J1~J6的脈衝編碼器輸出的。
伺服放大器15按照從伺服控制器14輸出的電壓指令或電流指令,來向各自對應的電動機7提供電流。電動機7根據從伺服放大器15提供的電流來進行動作,經由減速機來對機器人5的關節J1~J6進行驅動。
圖4示出了一個實施方式所涉及的機器人控制裝置10的功能框圖。如圖4所示,機器人控制裝置10具備存儲部20、力矩計算部21、彎曲估計部22、移動量計算部23以及驅動部24。
存儲部20在存儲器12的非易失性存儲器中保存將支承體3模型化為轉動彈簧時的轉動彈簧的彈簧常數和轉動彈簧的轉動中心的位置。
力矩計算部21計算機器人5到達目標的位置及姿勢時由於作用於機器人5的重力的影響而作用於支承體3的力矩。由力矩計算部21求出的力矩包括大小和作用方向。在一個實施方式中,力矩計算部21也可以構成為:還將由機器人5的加速度引起的慣性力考慮在內地計算作用於支承體3的力矩的大小和方向。
彎曲估計部22估計在假定為機器人5到達了目標的位置及姿勢時、由於作用於機器人5的重力的影響而在支承體3中產生的彎曲。在一個實施方式中,彎曲估計部22也可以構成為:基於由力矩計算部21計算出的力矩的大小和方向、以及存儲部20中存儲的彈簧常數和轉動中心的位置,來估計支承體3的彎曲。另外,在一個實施方式中,彎曲估計部22也可以構成為:還將由機器人5的加速度引起的慣性力考慮在內地估計支承體3的彎曲。
移動量計算部23基於由彎曲估計部22估計出的支承體3的彎曲,來計算用於使機器人3的前端到達目標的位置及姿勢的電動機7的移動量。由移動量計算部23求出的移動量是對支承體3的彎曲進行補償所需的每個電動機7的移動量。
驅動部24基於由移動量計算部23計算出的移動量,來分別驅動電動機7。
參照圖5所示的流程圖,來對由一個實施方式所涉及的機器人控制裝置10執行的處理進行說明。在以下的說明中,如圖6所示,「世界坐標系Σ0」是以未彎曲的狀態的支承體3的某個位置為原點O、以重力作用的方向為Z軸的負方向的坐標系。在此,原點O是代表支承體3的任意的位置。例如,原點O可以設定在機器人5的設置面的中心。
「修正世界坐標系Σ1」是與支承體3的彎曲相應地對「世界坐標系Σ0」進行了修正而得到的坐標系。即,修正世界坐標系的位置和姿勢根據支承體3的彎曲的大小和方向而變化。
參照圖5,在步驟S501中,主CPU 11按照存儲器12中保存的機器人5的動作程序,來獲取機器人5所對應的目標位置數據。「目標位置數據」包括該時間點的機器人5的目標的位置及姿勢、目標速度矢量、目標角速度矢量、目標角加速度矢量中的至少一個。這些目標位置數據表現為世界坐標系Σ0的各軸上的坐標值。後述的「目標軸數據」是根據「目標位置數據」來決定的數據,包括機器人5到達目標的位置及姿勢的時間點的各個關節J1~J6的目標位置、目標角速度以及目標角加速度中的至少一個。
根據本實施方式,將與目標位置數據相對應的目標軸數據與修正世界坐標系Σ1一起迭代計算規定次數,來求出收斂解。在步驟S502中,將對迭代計算的次數進行計數的計數器的計數值設定為零。將計數器的計數值N保存到存儲器12的RAM中。在步驟S503中,作為初始設定,視為修正世界坐標系Σ1與世界坐標系Σ0一致。
接著,在步驟S504中,基於目標位置數據和修正世界坐標系Σ1來計算目標軸數據。在不考慮支承體3的彎曲的情況下,通過周知的機器人的運動學的逆變換來進行目標軸數據的計算。能夠由存儲器12的ROM中存儲的系統程序來執行逆變換的計算。根據本實施方式,代替世界坐標系Σ0而使用修正世界坐標系Σ1來計算目標軸數據。在執行逆變換的計算時,由於支承體3的速度、角速度、加速度以及角加速度與機器人5的速度、角速度、加速度以及角加速度相比非常小,因此能夠近似為零。即,作為構成目標軸數據的目標速度和目標加速度,能夠直接使用不考慮支承體3的彎曲而得到的值。
在步驟S505中,使計數器的計數值N增加「1」。在步驟S506中,判定計數器的計數值N是否小於迭代次數Nmax。在步驟S506中的判定結果為肯定的情況下,進入步驟S507,基於修正世界坐標系Σ1和目標軸數據來計算機器人5作用於支承體3的力矩M。
按照周知的Newton-Euler法(牛頓-歐拉法)來求出力矩M。在世界坐標系Σ0中,通過下面的式(1)來表示力矩M。
在將用於設置機器人5的支承體3的平面視為轉動彈簧時,通過下面的式(2)來表示作為力矩M作用的結果而產生的轉動量D。
在此,「dx」表示轉動彈簧的繞與世界坐標系Σ0的X軸平行的轉動軸線Rx的轉動量(參照圖6)。「dy」表示轉動彈簧的繞與世界坐標系Σ0的Y軸平行的轉動軸線Ry的轉動量。「dz」表示轉動彈簧的繞與世界坐標系Σ0的Z軸平行的轉動軸線Rz的轉動量。
「rxx」、「rxy」、「rxz」、「ryx」、「ryy」、「ryz」、「rzx」、「rzy」以及「rzz」是將支承體3模型化為轉動彈簧的情況下的彈簧常數。彈簧常數表示作用於支承體3的力矩M與轉動量D之間的關係。即,式(2)中求出的轉動量D作為支承體3的繞作為轉動彈簧的轉動中心的轉動軸線Rx、Ry、Rz的轉動量,表現了支承體3的彎曲的大小和方向。
以下面的式(3)來表示轉動軸線Rx與世界坐標系Σ0中的YZ平面的交點F。
以下面的式(4)來表示轉動軸線Ry與世界坐標系Σ0中的XZ平面的交點H。
以下面的式(5)來表示轉動軸線Rz與世界坐標系Σ0中的XY平面的交點J。世界坐標系Σ0中的轉動軸線Rx、Ry以及Rz的位置被存儲於存儲器2的非易失性存儲器。因而,基於存儲器2中存儲的信息來計算交點F、H、J各自的坐標值。
在步驟S508中,基於力矩M和彈簧常數來對修正世界坐標系Σ1進行更新。如果以「弧度」來分別表示dx、dy、dz的單位,則通過下面的式(6)來表示將世界坐標系Σ0變換為修正世界坐標系Σ1的坐標變換矩陣。
T(u,v,w)Rz(dz)Ry(dy)Rx(dx)…式(6)
此外,以下面的式(7)~式(13)來表示Rz(dz)、Ry(dy)、Rx(dx)、T(u,v,w)、u、v、w。
u=jx(1-cos(dz))+jy sin(dz)-hz sin(dy)+hx(1-cos(dy))…式(11)
v=fy(1-cos(d,))+fz sin(dx)-jx sin(dz)+jy(1-cos(dz))…式(12)
w=hz(1-cos(dy))+hx sin(dy)-fy sin(dx)+fz(1-cos(dx))…式(13)
當步驟S508中的處理完成時,返回到步驟S504,利用更新後的修正世界坐標系Σ1來再次計算目標軸數據。
另一方面,在步驟S506中的判定結果為否定的情況下、即計數器的計數值N達到Nmax時,進入步驟S509。在步驟S509中,基於最新的在步驟S504中計算出的目標軸數據,來計算電動機7的移動量。
根據本實施方式,校正針對電動機7的移動指令,以補償支承體3的彈性變形。因而,即使由於機器人5的移動而支承體3發生彈性變形,也能夠正確地定位機器人5。有時即使在機器人5向目標的位置及姿勢移動的途中的插值點上也要求定位精度。在該情況下,如果對插值點上的機器人5應用前述的處理,則對於移動途中的機器人5也能夠實現正確的定位。
接著,對另外的實施方式進行說明。本實施方式所涉及的機器人控制裝置10用於對具有一個關節的機器人5進行控制。圖7和圖8示出了本實施方式所涉及的機器人5的結構例。機器人5具有關節J1和通過關節J1而轉動的連杆L1。圖8所示的點「O」示出了世界坐標系Σ0的原點。
在以下的說明中,視為在目標的位置及姿勢下的機器人5是靜止的。即,在機器人5處於目標的位置及姿勢時,速度、加速度、角速度以及角加速度分別為零。能夠與參照圖5說明的第一實施方式同樣地分別求出作用於支承體3的力矩M和修正世界坐標系Σ1。
另外,如果設世界坐標系Σ0的Y軸與關節J1的轉動軸線Ry一致,則以下面的式(14)來表示力矩M。
M=gmP×G…式(14)
在此,「g」是重力加速度。「m」是連杆L1的質量。「P」是表示世界坐標系Σ0中的連杆L1的重心位置的矢量。「G」是重力方向單位矢量,以下面的式(15)來表示。
以下面的式(16)來表示修正世界坐標系Σ1中的重心位置矢量P。「θ」是關節J1的轉動角度。「L」是關節J1的轉動軸線Ry與連杆L1的重心之間的距離。
如果假定僅有繞Y軸的轉動和在XZ平面上的平行移動,則修正世界坐標系Σ1中的重心位置矢量P的Y分量為零。在該情況下,若使用式(16)所示的P來求出力矩M,則如式(17)所示,X軸分量和Z軸分量為零。
在此,在將支承體3模型化為轉動彈簧的情況下,以下面的式(18)來表示與力矩M的Y軸分量my相對應的支承體3的轉動量D。
D=rmy…式(18)
「D」是轉動彈簧的繞與世界坐標系Σ0的Y軸平行的轉動軸線Ry的轉動量。「r」是表示力矩my與轉動量D之間的關係的彈簧常數。
在轉動軸線Ry位於支承體3的原點O的正上方的情況下,在世界坐標系Σ0中以下面的式(19)來表示轉動軸線Ry與世界坐標系Σ0的XZ平面的交點「H」。
如果以「弧度」來表示轉動量D的單位,則通過下面的式(20)來表示將世界坐標系Σ0變換為修正世界坐標系Σ1的坐標變換矩陣。
根據本實施方式,需要考慮的關節只有一個,且在目標的位置及姿勢下機器人5是靜止的。因而,為求出修正世界坐標系Σ1而要求的計算量少。
在一例中,在作為變更了機器人5的姿勢的結果而支承體3彎曲了0.05度的情況下,如果假定為工具前端距離彎曲的轉動中心為2000mm,則工具前端的位置偏移約1.7mm。與此相對,如果按照前述的實施方式來對機器人的移動量進行校正,則能夠補償該偏移而將機器人5定位於所意圖的位置。
作為對機器人5的連杆進行驅動的致動器的例子,對採用了旋轉電動機的機器人5的例子進行了說明,但是機器人5也可以具備至少一個直線電動機。
根據本發明所涉及的機器人控制裝置,對機器人到達目標的位置及姿勢時在支承體中產生的彎曲進行估計,並且基於估計出的支承體的彎曲來計算對機器人進行驅動的致動器的移動量。由此,即使支承體發生彈性變形,也能夠正確地對機器人進行定位。
以上,對本發明的各種實施方式進行了說明,但是本領域技術人員應當認識到,通過其它實施方式也能夠實現本發明所意圖的作用效果。特別是,能夠不脫離本發明的範圍地對前述的實施方式的結構要素進行刪除或置換、或者能夠進一步附加公知的手段。另外,通過任意地組合本說明書中明示或暗示地公開的多個實施方式的特徵也能夠實施本發明,這對本領域技術人員來說是不言而喻的。