本發(fā)明涉及機(jī)器人裝置,特別是涉及具備計算用于改善機(jī)器人動作的學(xué)習(xí)修正量的學(xué)習(xí)功能的多關(guān)節(jié)的機(jī)器人裝置。
背景技術(shù):
已知一種具備學(xué)習(xí)功能的機(jī)器人,該學(xué)習(xí)功能是通過重復(fù)執(zhí)行預(yù)定動作,來制作用于改善機(jī)器人動作的學(xué)習(xí)修正量。另外,根據(jù)制作出的學(xué)習(xí)修正量,一邊使機(jī)器人動作一邊進(jìn)行示教修正時,為了避免對修正后的動作適用錯誤的學(xué)習(xí)修正量,提出了把機(jī)器人速度降低到安全速度,并將學(xué)習(xí)修正量歸零的方法(例如,日本特開2011-192267號公報。以下稱為“專利文獻(xiàn)1”。)。
在專利文獻(xiàn)1中,提出了有學(xué)習(xí)控制功能的機(jī)器人的學(xué)習(xí)運(yùn)行、或者在實(shí)際運(yùn)行中發(fā)生異常處理的處置方法和直到重新學(xué)習(xí)的方法。另外,在專利文獻(xiàn)1中,提出了如下方法:當(dāng)學(xué)習(xí)過的動作被示教修正時,只要修正量在某范圍內(nèi),則直接適用相鄰位置的學(xué)習(xí)修正量,若修正量超過預(yù)定范圍,則一邊減速一邊將學(xué)習(xí)修正量歸零。
但是,在該現(xiàn)有技術(shù)中,學(xué)習(xí)修正量依賴于機(jī)器人的控制對象部位的位置時,如果直接適用不同位置的學(xué)習(xí)修正量,則有可能給抑制振動的效果帶來影響。示教修正較大時,一邊減速一邊將學(xué)習(xí)修正量歸零,還有可能得到高速化效果。另外,在使用了視覺傳感器等進(jìn)行跟蹤動作的系統(tǒng)中,存在工件位置隨機(jī)變化時無法應(yīng)對的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種機(jī)器人裝置,通過求出學(xué)習(xí)修正量與動作信息之間的關(guān)系,即使針對還未學(xué)習(xí)的新動作也能計算學(xué)習(xí)修正量,而不需要安裝傳感器進(jìn)行重新學(xué)習(xí)的作業(yè)。
本發(fā)明的一個實(shí)施例所涉及的機(jī)器人裝置,其特征在于,具有:機(jī)器人機(jī)構(gòu)部;傳感器,其設(shè)置在機(jī)器人機(jī)構(gòu)部的位置控制的對象部位,直接或間接地檢測用于求出對象部位的位置信息的物理量;以及機(jī)器人控制部,其具有控制機(jī)器人機(jī)構(gòu)部的動作的動作控制部,機(jī)器人控制部具備:學(xué)習(xí)控制部,其根據(jù)通過動作控制部使機(jī)器人機(jī)構(gòu)部進(jìn)行預(yù)定動作時的、在該預(yù)定動作中通過傳感器檢測出的物理量,來計算用于改善機(jī)器人機(jī)構(gòu)部的預(yù)定動作的學(xué)習(xí)修正量;以及學(xué)習(xí)擴(kuò)展部,其求出學(xué)習(xí)控制部計算出的學(xué)習(xí)修正量與學(xué)習(xí)過的預(yù)定動作的信息之間的關(guān)系,對于不同于機(jī)器人機(jī)構(gòu)部的預(yù)定動作的新動作的信息,使用求出的關(guān)系,計算用于改善新動作的學(xué)習(xí)修正量。
附圖說明
根據(jù)與附圖有關(guān)的以下實(shí)施方式的說明,本發(fā)明的目的、特征以及優(yōu)點(diǎn)會變得更清楚。在這些圖中:
圖1是本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的結(jié)構(gòu)圖,
圖2表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的學(xué)習(xí)中的位置控制的對象部位的軌跡的圖,
圖3是用于說明本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的傳遞函數(shù)的計算處理過程的流程圖,
圖4a是表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的速度的時間變化的圖,
圖4b是表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的學(xué)習(xí)修正量的時間變化的圖,
圖5是表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的運(yùn)行中的位置控制的對象部位的新的軌跡的圖,以及
圖6是用于說明對于本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的新位置的學(xué)習(xí)修正量的計算處理過程的流程圖。
具體實(shí)施方式
以下,參照附圖,對于本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置進(jìn)行說明。圖1表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的結(jié)構(gòu)圖。本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置101具有機(jī)器人機(jī)構(gòu)部1、傳感器2以及機(jī)器人控制部4。
傳感器2被設(shè)置在機(jī)器人機(jī)構(gòu)部1的位置控制的對象部位,直接或間接地檢測用于求出對象部位的位置信息的物理量。作為傳感器2,能夠使用例如加速度傳感器。機(jī)器人機(jī)構(gòu)部1的位置控制的對象部位,例如如果是點(diǎn)焊用的機(jī)器人,則是點(diǎn)焊槍。但是,機(jī)器人裝置的位置控制的對象部位并不限定于此例,也可以是其他部位。
機(jī)器人控制部4具有控制機(jī)器人機(jī)構(gòu)部1的動作的動作控制部3。動作控制部3接受來自未圖示的上層控制裝置等的動作指令,根據(jù)在驅(qū)動機(jī)器人機(jī)構(gòu)部1的同時來自機(jī)器人機(jī)構(gòu)部1的反饋數(shù)據(jù),控制機(jī)器人機(jī)構(gòu)部1的動作。作為反饋控制,能夠使用例如位置反饋控制、速度反饋控制、或電流反饋控制中的至少一個。通過反饋控制,機(jī)器人機(jī)構(gòu)部1的位置或速度被控制成與指令位置或指令速度一致。
機(jī)器人控制部4還具備學(xué)習(xí)控制部5和學(xué)習(xí)擴(kuò)展部6。學(xué)習(xí)控制部5根據(jù)通過動作控制部3使機(jī)器人機(jī)構(gòu)部1進(jìn)行預(yù)定動作時的、在預(yù)定動作中通過傳感器2檢測出的物理量,來計算用于改善機(jī)器人機(jī)構(gòu)部1的預(yù)定動作的學(xué)習(xí)修正量。作為機(jī)器人機(jī)構(gòu)部1所執(zhí)行的預(yù)定動作,列舉有例如圖2所示向圖中箭頭方向(y方向)的點(diǎn)焊動作。預(yù)定動作也可以是在作業(yè)程序中使用的動作、或者是在指定動作范圍內(nèi)自動生成的包含了x軸、y軸、z軸、繞x軸、繞y軸、繞z軸的動作。像這樣執(zhí)行預(yù)定動作,通過學(xué)習(xí)控制部5計算用于降低機(jī)器人振動的學(xué)習(xí)修正量。將計算出的學(xué)習(xí)修正量和從動作指令得到的動作信息存儲到存儲器8中。這里,優(yōu)選的是,在機(jī)器人機(jī)構(gòu)部1的動作信息中包含位置、動作速度、加速度以及慣性中的至少1個。
作為傳感器2使用了加速度傳感器時,傳感器2所檢測的物理量是機(jī)器人機(jī)構(gòu)部1的控制對象部位的加速度。學(xué)習(xí)控制部5計算出的學(xué)習(xí)修正量在加算器7中與來自動作控制部3的指令值相加,修正后的指令值被輸入到機(jī)器人機(jī)構(gòu)部1中。
在本發(fā)明中提出了根據(jù)針對學(xué)習(xí)過的位置的動作信息和制作好的學(xué)習(xí)修正量,來計算還未學(xué)習(xí)的位置的學(xué)習(xí)修正量的方法以及裝置。具體地,首先,使機(jī)器人執(zhí)行預(yù)定動作,并學(xué)習(xí)用于改善機(jī)器人動作的修正量。接下來,根據(jù)預(yù)定動作的信息以及學(xué)習(xí)修正量的頻譜圖(spectrogram)求出動作信息與學(xué)習(xí)修正量之間的傳遞函數(shù),使用該傳遞函數(shù),根據(jù)還未學(xué)習(xí)的動作信息來計算學(xué)習(xí)修正量。
學(xué)習(xí)擴(kuò)展部6求出學(xué)習(xí)控制部5計算出的學(xué)習(xí)修正量與學(xué)習(xí)過的預(yù)定動作的信息之間的關(guān)系,對于不同于機(jī)器人機(jī)構(gòu)部1的預(yù)定動作的新動作的信息,使用求出的關(guān)系,計算用于改善新動作的學(xué)習(xí)修正量。
具體地,使機(jī)器人機(jī)構(gòu)部1執(zhí)行預(yù)定動作并求出學(xué)習(xí)修正量之后,根據(jù)新的動作指令使機(jī)器人機(jī)構(gòu)部1運(yùn)行。在停止中或運(yùn)行中,通過學(xué)習(xí)擴(kuò)展部6求出表示存儲器8中所存儲的上述動作信息與學(xué)習(xí)修正量之間的關(guān)系的傳遞函數(shù)。把從動作指令取得的新動作的信息輸入學(xué)習(xí)擴(kuò)展部6,根據(jù)上述傳遞函數(shù)計算針對新動作的學(xué)習(xí)修正量,并與從動作控制部3輸出的動作指令相加。
這樣,學(xué)習(xí)擴(kuò)展部6根據(jù)學(xué)習(xí)控制部5計算出的學(xué)習(xí)修正量以及機(jī)器人機(jī)構(gòu)部1的預(yù)定動作信息的頻譜圖,求出學(xué)習(xí)修正量與動作信息之間的傳遞函數(shù),并根據(jù)傳遞函數(shù)以新動作的信息為輸入計算針對新動作的學(xué)習(xí)修正量。
機(jī)器人控制部4還可以通過動作控制部3使機(jī)器人機(jī)構(gòu)部1以機(jī)器人機(jī)構(gòu)部1所容許的最大速度以及最大加速度進(jìn)行動作、或者在仿真模式執(zhí)行動作,由此取得機(jī)器人機(jī)構(gòu)部1的動作信息。
此外,學(xué)習(xí)控制部5和學(xué)習(xí)擴(kuò)展部6不會同時動作。學(xué)習(xí)控制部5僅在學(xué)習(xí)中進(jìn)行動作,在學(xué)習(xí)結(jié)束后的再現(xiàn)時(運(yùn)行中)不進(jìn)行動作。反之,學(xué)習(xí)擴(kuò)展部6僅在再現(xiàn)時(運(yùn)行中)進(jìn)行動作,在學(xué)習(xí)中不進(jìn)行動作。
接下來,對于如上所述的傳遞函數(shù)的導(dǎo)出方法進(jìn)行說明。
圖3表示用于說明傳遞函數(shù)的計算處理過程的流程圖。另外,在圖4a以及圖4b分別表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的速度指令以及學(xué)習(xí)修正量的時間變化。首先,在步驟s1中,將在學(xué)習(xí)中得到的動作信息(例如,速度數(shù)據(jù))和學(xué)習(xí)修正量存儲到存儲器中,根據(jù)這些動作狀態(tài),劃分為1個或多個區(qū)間。具體地,如圖4a以及圖4b所示,把機(jī)器人從靜止?fàn)顟B(tài)轉(zhuǎn)移到動作開始的時刻作為區(qū)間1~區(qū)間7的各區(qū)間的始點(diǎn),把從動作停止到開始下一個動作的時刻作為該區(qū)間的終點(diǎn)。在這里也可以不劃分區(qū)間,而從各時刻的數(shù)據(jù)求出傳遞函數(shù)。
接下來,在步驟s2中,通過短時傅立葉變換按照每個區(qū)間以如下方式求出動作信息(例如,速度數(shù)據(jù))以及學(xué)習(xí)修正量的頻譜圖。
這里,yi表示速度,yi表示求出的速度頻譜圖,ω表示窗口函數(shù),k表示指數(shù)(index)、jm表示m區(qū)間的終點(diǎn)時刻的指數(shù),m表示區(qū)間編號,f表示頻率區(qū)間的指數(shù),n表示預(yù)定動作的數(shù)據(jù)數(shù)量,下標(biāo)i表示表示在多個軸的第i個軸的軸編號。例如,6軸多關(guān)節(jié)機(jī)器人時,則i是1~6。
在這里,如果把短時傅里葉變換表示為stft,則能夠如下表示上述數(shù)學(xué)式(1)。
yi=stft{yi}(2)
另外,當(dāng)yi為已知時,求出yi的過程如果逆變換為istft,則如下表示。
yi=istft{yi}(3)
也可以同樣地求出學(xué)習(xí)修正量的頻譜圖和其逆變換。
xi=stft{xi}(4)
xi=istft{xi}(5)
在這里,xi表示學(xué)習(xí)修正量,xi表示求出的學(xué)習(xí)修正量的頻譜圖,下標(biāo)i表示軸編號。
接下來,在步驟s3中,如下求出每個區(qū)間的速度與學(xué)習(xí)修正量之間的傳遞函數(shù)。
在這里,ci表示速度與學(xué)習(xí)修正量之間的傳遞函數(shù),m表示區(qū)間編號,下標(biāo)i表示軸編號。
圖5表示本發(fā)明的實(shí)施例所涉及的機(jī)器人裝置的運(yùn)行中的位置控制的對象部位的新軌跡。在運(yùn)行中,使具有機(jī)器人機(jī)構(gòu)部1的機(jī)器人在與圖5所示的學(xué)習(xí)過的位置不同的、新位置執(zhí)行y方向的點(diǎn)焊動作。機(jī)器人在進(jìn)行動作時,計算從動作指令得到的每個插補(bǔ)位置與學(xué)習(xí)過的位置之間的距離,選擇距離最短的區(qū)間,并使用該區(qū)間的傳遞函數(shù)。這里根據(jù)距離選擇了要使用的傳遞函數(shù)的區(qū)間,也可以根據(jù)慣性(inertia)選擇慣性最近的區(qū)間。根據(jù)所選擇的傳遞函數(shù),針對新動作指令把速度信息代入傳遞函數(shù),計算學(xué)習(xí)修正量。把計算出的學(xué)習(xí)修正量與動作指令相加,并輸出到具有機(jī)器人機(jī)構(gòu)部1的機(jī)器人。
設(shè)從動作指令得到的某時刻的控制對象部位的位置為pt。圖6表示用于說明對于新位置pt的學(xué)習(xí)修正量的計算處理過程的流程圖。
首先,在步驟s11中,從動作指令取得新的動作位置,計算新的動作位置與各區(qū)間之間的平均距離,選擇最近的區(qū)間。如下計算從學(xué)習(xí)過的位置的各插補(bǔ)點(diǎn)到pt(xpt,ypt,zpt)的距離。
在這里,pk表示時刻k的位置(xpk,ypk,zpk)。
按照每個區(qū)間求出到pt的平均距離sm,選擇到pt的距離最短的區(qū)間。也可以選擇慣性最近的區(qū)間。
在這里,m表示區(qū)間編號、n表示m區(qū)間內(nèi)的數(shù)據(jù)數(shù)量。
接下來,在步驟s12中,根據(jù)所選擇的區(qū)間得傳遞函數(shù),根據(jù)速度信息計算pt的新的學(xué)習(xí)修正量。
qi=istft{qi}(11)
在這里,pjoint表示pt的各軸區(qū)間上的各軸位置,
接下來,在步驟s13中,把在步驟s12計算出的學(xué)習(xí)修正量qi與從動作控制部3計算出的動作指令相加,并輸出到具有機(jī)器人機(jī)構(gòu)部1的機(jī)器人中。
在以上的說明中,示出了使用速度數(shù)據(jù)作為動作信息的例子,但是并不限定于此例,動作信息也可以是位置、加速度或慣性等。
如以上說明,根據(jù)本發(fā)明,能夠計算基于預(yù)定動作的機(jī)器人的動作信息與學(xué)習(xí)修正量之間的傳遞函數(shù)。因此,能夠使用該傳遞函數(shù)來計算還未學(xué)習(xí)的動作的學(xué)習(xí)修正量而不必使用傳感器。結(jié)果,不需要花費(fèi)時間精力進(jìn)行傳感器的設(shè)置、重新學(xué)習(xí),從而能夠縮短學(xué)習(xí)的開始時間。另外,還能夠應(yīng)對通過視覺傳感器等檢測不確定位置工件的系統(tǒng)。
根據(jù)本發(fā)明所涉及的機(jī)器人裝置,通過求出學(xué)習(xí)修正量與動作信息之間的關(guān)系,即使對于還未學(xué)習(xí)的新動作也能夠計算學(xué)習(xí)修正量,而不需要安裝傳感器進(jìn)行重新學(xué)習(xí)的作業(yè)。另外,還能夠應(yīng)對以往不能應(yīng)對的使用了視覺傳感器等進(jìn)行追蹤動作的系統(tǒng)。