機器人控制裝置、機器人系統及其方法與流程
2023-04-26 00:17:46 2

本發明涉及一種控制與人協作地搬運物體的機器人的機器人控制裝置、機器人系統及其方法。
背景技術:
已知一種人與機器人協作地搬運物體的機器人系統(例如,日本特開2000-176872號公報、日本特開2000-343470號公報以及日本專利第4445038號公報)。
一般,對每個機器人決定可通過機器人搬運的物體的容許重量。在本技術領域中,要求能夠不超過機器人的容許重量地搬運各種物體的技術。
技術實現要素:
在本發明的一個方式中,控制與人協作地搬運物體的機器人的機器人控制裝置,具備:力取得部,其取得在拿起物體時從該物體向機器人施加的力;比較部,其比較力取得部取得的力的重力方向的力成分與針對該力成分預先決定的第1閾值;以及停止指令部,其在力成分大於第1閾值時,使機器人停止。
機器人控制裝置還可以具備:動作指令部,其在力成分為第1閾值以下時,生成用於搬運物體的對機器人的動作指令,並將該動作指令發送給該機器人。
在力成分為比第1閾值小的第2閾值以下時,動作指令部生成用於在與重力方向相反的方向上搬運物體的動作指令。
在力成分為第1閾值以下,且為比該第1閾值小的第2閾值以上時,動作指令部生成用於在重力方向上搬運物體的動作指令。
在力成分小於比第1閾值小的第2閾值時,停止指令部使機器人停止。動作指令部生成用於根據力取得部取得的力的、與重力方向交差的方向的力成分而向交差的方向搬運物體的動作指令。
在力取得部取得的力的水平方向的力成分大於針對該水平方向的力成分預先設定的閾值時,停止指令部使機器人停止。
在本發明的另一個方式中,機器人系統具備:機器人;以及控制機器人的機器人控制裝置。機器人具有:力檢測部,其檢測在該機器人拿起物體時從該物體向該機器人施加的力。
在本發明的又一個方式中,對與人協作地搬運物體的機器人進行控制的方法具備如下步驟:檢測在機器人拿起物體時從該物體向該機器人施加的力;比較檢測出的力的重力方向的力成分與針對該力成分預先決定的閾值;以及在力成分大於閾值時,使機器人停止。
附圖說明
一邊參照附圖一邊對以下的優選實施方式進行說明,從而使本發明的上述或其他目的、特徵以及優點變得更加明確。
圖1是本發明的一實施方式的機器人系統的圖。
圖2是圖1所示的機器人系統的框圖。
圖3是表示圖1所示的機器人系統的動作流程的一例的框圖。
圖4是表示機器人與作業員協作地保持工件的狀態的圖。
圖5是表示力取得部取得的力的重力方向的力成分的時間變化特性的例子的圖表。
圖6是表示使用者從工件鬆開手時的、重力方向的力成分的時間變化特性的例子的圖表。
圖7是表示在機器人與作業員協作地搬運工件時,障礙物碰撞到工件的狀態的圖。
圖8是表示如圖7所示障礙物從工件的下方發生了碰撞時的重力方向的力成分的時間變化特性的例子的圖表。
圖9是表示在機器人與作業員協作地搬運工件時,障礙物碰撞到工件的狀態的圖。
圖10是表示如圖9所示障礙物從工件的側方發生了碰撞時的水平方向的力成分的時間變化特性的例子的圖表。
圖11是表示圖1所示的機器人系統的動作流程的另一例的框圖。
圖12表示在圖11中的步驟S21中判定為「是」時的重力方向的力成分的時間變化特性的例子。
圖13表示在圖11中的步驟S23中判定為「是」時的重力方向的力成分的時間變化特性的例子。
圖14表示在圖11中的步驟S25中判定為「是」時的水平方向的力成分的時間變化特性的例子。
具體實施方式
以下,根據附圖詳細地說明本發明的實施方式。首先,參照圖1和圖2對本發明的一實施方式的機器人系統10進行說明。機器人系統10與作業員A協作地搬運作為物體的工件W。
機器人系統10具備:機器人12和控制該機器人12的機器人控制裝置50。機器人12例如為垂直多關節機器人,具備:機器人基座14、旋轉體16、機器人臂部18、機器人手部20以及力檢測部22。
機器人基座14被固定在工作單元的地面上。旋轉體16以可繞鉛垂軸旋轉地安裝在機器人基座14上。機器人臂部18具有:可轉動地安裝在旋轉體16上的後臂部24和可轉動地安裝在該後臂部24的前端的前臂部26。
機器人手部20經由手腕部28安裝在前臂部26的前端。機器人手部20具有可開閉的多個指部30,能夠把持、釋放工件W。
力檢測部22被設置於手腕部28中。在本實施方式中,力檢測部22具有6軸力覺傳感器,例如,能夠檢測圖1中的x軸、y軸和z軸方向的載荷、以及繞x軸、y軸和z軸的力矩(moment)。力檢測部22將檢測出的與力(即,載荷以及力矩)相關的數據發送給機器人控制裝置50。
如圖2所示,機器人12具有多個伺服電動機32。伺服電動機32內置於旋轉體16、機器人臂部18、手腕部28以及機器人手部20中,根據來自機器人控制裝置50的指令,使這些要素動作。
機器人控制裝置50具備:CPU(中央運算處理裝置)52、存儲部54以及力取得部56。存儲部54和力取得部56經由總線與CPU52連接。
存儲部54由例如EEPROM(註冊商標)等這樣的可電擦除/記錄的非易失性存儲器,或例如DRAM、SRAM等這樣的可高速讀寫的隨機存取存儲器構成。存儲部54記錄使機器人12動作所需要的常數、變量以及機器人程序等。
力取得部56包括A/D轉換器等,接受從力檢測部22發送的與力相關的數據。CPU52將力取得部56取得的與力相關的數據存儲在存儲部54中。
在本實施方式中,CPU52承擔比較部58、停止指令部60以及動作指令部62的功能。另外,對於比較部58、停止指令部60以及動作指令部62的功能,在後面敘述。
接著,參照圖3~圖10對機器人系統10的動作流程的一實施方式進行說明。在CPU52從使用者、上位控制器、或程序等接受到搬運工件W的指令時,開始圖3所示的流程。
在步驟S1中,CPU52開始檢測向機器人12施加的力。具體地,CPU52向力檢測部22發送力檢測指令。當力檢測部22接收力檢測指令時,則以周期τ(例如,1秒)檢測在設置有該力檢測部22的部位作用的力(即,x軸、y軸和z軸方向的載荷,以及繞x軸、y軸和z軸的力矩)。
力檢測部22將檢測出的與力相關的數據發送給機器人控制裝置50。力取得部56以周期τ從力檢測部22接收與力相關的數據。CPU52將力取得部56取得的與力相關的數據依次存儲在存儲部54中。
在步驟S2中,CPU52使機器人12動作,拿起工件W。具體地,CPU52向內置於機器人12中的伺服電動機32發送指令,把持設置於預先設定的場所B(圖1)的工件W,並拿起該工件W。
本實施方式的機器人12與人協作地搬運具有各種重量的各種工件W。在此,在機器人12中決定能夠搬運的物體的容許重量。假設當搬運超過該容許重量的工件W時,則機器人12發生故障的可能性增加。
因此,本實施方式的機器人12當在步驟S2中拿起了工件W時,判定是否向機器人12施加了超過容許重量的載荷。
在步驟S3中,CPU52判定在步驟S2中拿起工件W時從該工件W向機器人施加的力F的重力方向的力成分Fg是否大於預先決定的閾值α。
具體地,CPU52根據最近力取得部56取得的與力相關的數據,計算從工件W向機器人手部20施加的力F中在重力方向上作用的力成分Fg。
該力成分Fg為當機器人手部20拿起了工件W時因該工件W的重量而向機器人手部20施加的力,例如包括重力方向的載荷或繞水平軸的力矩。
CPU52比較計算出的力成分Fg與針對該力成分Fg預先設定的閾值α(第1閾值)。在力成分Fg大於閾值α的情況下,CPU52判定為「是」,並向步驟S4前進。另一方面,在力成分Fg為閾值α以下的情況下,CPU52判定為「否」,並向步驟S6前進。
這樣,在本實施方式中,CPU52作為比較力成分Fg與閾值α的比較部58發揮功能。另外,與容許重量相關地來決定閾值α(例如,α=容許重量×重力加速度),並將其預先存儲在存儲部54中。
在步驟S4中,CPU52向使用者報告工件W的重量超過了機器人12的容許重量的意思。作為一例,CPU52生成「超過了容許重量。請輔助工件W的搬運」的圖像信號或聲音信號。然後,CPU52經由與機器人控制裝置50連接的顯示部或揚聲器(未圖示),向使用者輸出圖像或聲音。
使用者在通過步驟S4識別出超過機器人12的容許重量的意思的情況下,如圖4所示,從下方用手支撐工件W。這樣,如圖5所示,向機器人手部20施加的力成分Fg急劇下降。
在本實施方式中,在後述的步驟S5中,CPU52檢測如圖5所示那樣的力成分Fg的下降,在檢測出該力成分Fg的下降時,在後述的步驟S6中,開始基於機器人12的工件W的搬運動作。
在步驟S5中,CPU52判定力成分Fg是否為閾值α以下。具體地,CPU52根據最近力取得部56取得的與力相關的數據來計算力成分Fg。
在力成分Fg為閾值α以下的情況下,CPU52判定為「是」,並向步驟S6前進。另一方面,在成分Fg大於閾值α的情況下,CPU52判定為「否」,並返回到步驟S4,再次向使用者報告需要輔助工件W的搬運的意思。
這樣,CPU52能夠檢測通過作業者A支撐工件W而導致力成分Fg如圖5所示地下降這一情況。
在步驟S6中,CPU52使機器人12動作,與人協作地移動工件W。在本實施方式中,CPU52按照存儲在存儲部54中的機器人程序,生成對機器人12的用於搬運工件W的動作指令。
然後,CPU52將所生成的該動作指令發送給內置於機器人12中的伺服電動機32。由此,機器人12按照機器人程序而動作,與人協作地將工件W從場所B搬運至預先決定的目的場所。
這樣,在本實施方式中,CPU52在力成分Fg為閾值α以下時,作為生成對機器人12的動作指令並進行發送的動作指令部62發揮功能。
另外,可以通過向機器人12示教用於將工件W從場所B移動至目的場所的該機器人12的動作路徑等,來構築上述的機器人程序。
在步驟S6中,當機器人12與作業者A協作地搬運工件W時,有時作業員A會因不注意而從工件W鬆開手。在該情況下,如圖6所示,力成分Fg急劇上升,再次超過閾值α。因此,在實施方式中,CPU52在步驟S6的執行中,在以下的步驟S7中監視力成分Fg是否超過了閾值α。
在步驟S7中,CPU52判定最近取得的力F的力成分Fg是否大於閾值α。具體地,CPU52計算力取得部56最近取得的力F的力成分Fg。
然後,CPU52作為比較部58發揮作用,比較計算出的力成分Fg與閾值α。在力成分Fg大於閾值α的情況下,CPU52判定為「是」,並向步驟S8前進。另一方面,在成分Fg為閾值α以下的情況下,CPU52判定為「否」,並向步驟S9前進。
在步驟S7中判定為「是」的情況下,在步驟S8中,CPU52停止機器人12的動作。具體地,CPU52生成用於停止內置於機器人12中的伺服電動機32的指令,並發送給該伺服電動機32。由此,使機器人12的動作停止。
這樣,在本實施方式中,CPU52在力成分Fg大於閾值α時,作為停止機器人12的停止指令部60發揮功能。在執行了步驟S8後,CPU52返回到步驟S4,再次向使用者報告需要輔助工件W的搬運的意思。
在步驟S7中判定為「否」的情況下,在步驟S9中,CPU52判定最近取得的力F的力成分Fg是否小於閾值β,或最近取得的力F的水平方向的成分Fh是否大於閾值γ。
以下,參照圖7~圖9對該步驟S9進行說明。在步驟S6中,當機器人12和作業員A搬運工件W時,如圖7所示,有可能障礙物C從工件W的下方發生碰撞。
在該情況下,作業員A的身體(例如,手指)被夾在障礙物C與工件W(或機器人12)之間,作業員A有可能受傷。如圖7所示,在障礙物C從工件W的下方發生了碰撞的情況下,如圖8所示,力成分Fg急劇下降。
此外,在步驟S6中,當機器人12和作業員A搬運工件W時,如圖9所示,有可能障礙物D從工件W的側方發生碰撞。在該情況下,作業員A的身體被夾在障礙物D與工件W(或機器人12)之間,作業員A也有可能受傷。
如圖9所示,在障礙物D從工件W的側方發生了碰撞的情況下,如圖10所示,從工件W向機器人施加的力F的水平方向的力成分Fh急劇上升。
因此,在本實施方式中,CPU52為了監視如圖8所示那樣的力成分Fg的下降以及如圖10所示那樣的力成分Fh的上升,在步驟S9中,判定力成分Fg是否大於閾值β,或力F的水平方向的成分Fh是否大於閾值γ。
具體地,CPU52計算力取得部5最近(最新most-recently)取得的力的力成分Fg。然後,CPU52判定計算出的力成分Fg是否小於閾值β。該閾值β被使用者預先決定為小於上述閾值α的值(即,α>β),並存儲在存儲部54中。
另一方面,CPU52根據力取得部56最近取得的與力相關的數據來計算力F的水平方向的力成分Fh。然後,CPU52判定計算出的力成分Fh是否大於閾值γ。該閾值γ由使用者預先決定,並存儲在存儲部54中。
在力成分Fg小於閾值β(即,Fg<β),或力成分Fh大於閾值γ(即,Fh>γ)的情況下,CPU52判定為「是」,並向步驟S10前進。
另一方面,在力成分Fg為閾值β以上(即,Fg≥β),且力成分Fh為閾值γ以下(即,Fh≤γ)的情況下,CPU52判定為「否」,並向步驟S11前進。
在步驟S9中判定為「是」的情況下,在步驟S10中與上述的步驟S8同樣地,CPU52使機器人12的動作停止,並結束圖3所示的流程。
另一方面,在步驟S9中判定為「否」的情況下,在步驟S11中,CPU52判定是否將工件W移動到了目的場所。例如,CPU52根據來自設定在各伺服電動機32中的編碼器(未圖示)的信號,判定是否使各伺服電動機32以機器人程序規定的轉速恰當地進行了轉動。
CPU52在判定為將工件W移動到了目的場所(即,「是」)的情況下,向步驟S12前進。另一方面,CPU52在判定為未將工件W移動至目的場所(即,「否」)的情況下,返回到步驟S7。
在步驟S12中,CPU52向內置於機器人手部20中的伺服電動機32發送指令,打開指部30,釋放所把持的工件W。這樣,通過機器人12和作業員A 的協作,將工件W從場所B搬運至目的場所。
在步驟S13中,CPU52判定由使用者指定的全部的工件W的搬運作業是否完成。CPU52在判定為全部的工件W的搬運作業完成(即,「是」)的情況下,結束圖3所示的流程。另一方面,CPU52在判定為殘留有應搬運的工件W(即,「否」)的情況下,返回到步驟S2,執行下一個工件W的搬運作業。
如上所述,在本實施方式中,CPU52在步驟S6的執行中,監視從工件W向機器人12施加的力成分Fg,在檢測到超過了機器人12的容許重量時(步驟S7中為「是」),停止機器人的動作。根據該結構,能夠防止向機器人施加超過容許重量的載荷的同時,能夠搬運具有各種重量的各種工件W。
此外,根據本實施方式,通過在相當於容許重量的值以下的範圍內適當地設定閾值α的值,能夠適當地調整機器人12和作業員A之間的重量的分擔比例。由此,能夠靈活地應對更廣範圍的種類的工件W的搬運作業。
此外,根據本實施方式,除了圖1所示那樣的塊狀的工件W外,還可以應對細長形狀等各種形狀的工件W的搬運。
此外,在本實施方式中,通過在步驟S6的執行中監視力成分Fg和Fh,由此檢測在工件W的搬運中碰撞到障礙物C、D這一情況(步驟S9),在檢測到障礙物C、D的碰撞時,立即停止機器人12。通過該結構,能夠確實地防止在工件W的搬運中作業員A因障礙物C、D而受傷。
此外,在本實施方式中,CPU52在機器人12拿起了工件W(步驟S2)後,檢測出對機器人12施加了超過容許重量的載荷時(步驟S3中為「是」),向使用者報告該意旨。通過該結構,使用者能夠自動且直觀地識別需要對機器人12的工件W的搬運作業進行輔助。
此外,在步驟S3中判定為「是」的情況下,CPU52在檢測出作業者A支撐了工件W(步驟S5中為「是」)之前,不開始機器人12的工件W的搬運動作。通過該結構,能夠確實地防止向機器人12施加超過容許重量的載荷。
接著,參照圖11~圖14對機器人系統10的動作流程的另一個實施方式進行說明。另外,在圖11所示的流程中,對與上述圖3所示的流程同樣的步驟賦予相同的步驟編號,省略詳細的說明。
在本實施方式中,CPU52在檢測出作業員A支撐了工件W的情況下(即,步驟S5中為「是」),以向作業員A對工件W施加的力的方向搬運工件W的方式來控制機器人12。
具體地,CPU52在步驟S5中判定為「是」的情況下,並行執行以下的步驟S21和S25。
在步驟S21中,CPU52判定最近取得的力F的力成分Fg是否為預先決定的閾值δ以上。該閾值δ被使用者預先決定為小於上述閾值α的值(即,α>δ),並存儲在存儲部54中。
在力成分Fg為閾值δ以上的情況下,CPU52判定為「是」,並向步驟S22前進。另一方面,在成分Fg小於閾值δ的情況下,CPU52判定為「否」,並向步驟S23前進。
在此,圖12表示在步驟S21中判定為「是」時的成分Fg的時間變化特性的例子。在該例子中,作業員A在時刻t1進行從下方支撐工件W的動作,由此成分Fg減少。
之後,作業員A在時刻t2使支撐工件W的手在重力方向上稍微下降,使從下方支撐工件W的力變弱。其結果,成分Fg從時刻t2開始急劇上升,成為閾值δ與閾值α之間的值。
CPU52檢測這樣的作業員A進行的工件W的下降動作(即,成分Fg的上升),在步驟S22中,通過機器人12使工件W在重力方向上移動以便追隨於該動作。
在步驟S22中,CPU52使機器人12動作,使工件W在重力方向上移動。具體地,CPU52生成用於在重力方向上搬運工件W的動作指令。
然後,CPU52將所生成的該動作指令發送給內置於機器人12中的伺服電動機32。由此,機器人12使工件W在重力方向上移動,以便追隨於作業員A使工件W下降的動作。
另一方面,在步驟S21中判定為「否」的情況下,在步驟S23中,CPU52判定最近取得的力F的力成分Fg是否在上述閾值β與閾值ε之間(即,ε≥Fg≥β)。該閾值ε被使用者預先決定為小於閾值α、且大於閾值β的值(即,α>ε>β),並存儲在存儲部54中。
在力成分Fg在閾值β與閾值ε之間的情況下,CPU52判定為「是」,並向步驟S24前進。另一方面,在成分Fg不在閾值β與閾值ε之間(即,Fg>ε,或β>Fg)的情況下,CPU52判定為「否」,並向步驟S7前進。
在此,圖13表示在步驟S23中判定為「是」時的成分Fg的時間變化特性的例子。在該例子中,作業員A在時刻t1進行從下方支撐工件W的動作,由此成分Fg減少。
之後,作業員A在時刻t3進行一邊從下方支撐工件W、一邊以預定力向與重力方向相反的垂直上方拿起該工件W的動作。由此,通過力檢測部22檢測出的力F的重力方向的成分Fg從時刻t3開始急劇下降,成為閾值β與閾值ε之間的值。
CPU52檢測這樣的作業員A進行的工件W的拿起動作(即,成分Fg的下降),在步驟S24中,通過機器人12使工件W向垂直上方移動,以便追隨於該動作。
在步驟S24中,CPU52使機器人12動作而使工件W向垂直上方移動。具體地,CPU52生成用於使工件W向垂直上方移動的動作指令。
然後,CPU52將所生成的該動作指令發送給內置於機器人12中的伺服電動機32。由此,機器人12使工件W向垂直上方移動,以便追隨於作業員A進行的工件W的拿起動作。
另一方面,在步驟S25中,CPU52判定最近取得的力F的水平方向的成分Fh是否為閾值ζ以上。具體地,CPU52根據最近取得的力F來計算水平方向的力成分Fh,並判定計算出的該力成分Fh是否為閾值ζ以上。該閾值ζ由使用者預先決定,並存儲在存儲部54中。
在力成分Fh為閾值ζ以上的情況下,CPU52判定為「是」,並向步驟S26前進。另一方面,在成分Fh小於閾值ζ的情況下,CPU52判定為「否」,並向步驟S7前進。
在此,圖14表示在步驟S25中判定為「是」時的成分Fh的時間變化特性的例子。在該例子中,作業員A在時刻t4進行一邊支撐工件W、一邊向與重力方向交差的方向(例如,水平方向)推壓該工件W的動作,由此,成分Fh急劇上升。
在本實施方式中,CPU52檢測這樣的作業員A的動作(即,成分Fh的上升),在步驟S26中,通過機器人12使工件W在水平方向上移動以便追隨於該動作。
在步驟S26中,CPU52使機器人12動作而使工件W在水平方向上移動。具體地,CPU52生成用於使工件W向在步驟S25中計算出的力成分Fh的方向移動的動作指令。
然後,CPU52將所生成的該動作指令發送給內置於機器人12中的伺服電動機32。由此,機器人12使該工件W向力成分Fh的方向移動,以便追隨於作業員A推壓工件W的動作。
如上所述,CPU52並行執行步驟S21~S24和步驟S25~S26。假定在同時執行步驟S22和S26的情況下,CPU52生成向重力方向的動作指令和向力成分Fh的方向的動作指令,並發送給伺服電動機32。
這樣,合成使工件W向重力方向移動的動作和向力成分Fh的方向移動的動作,機器人12可以使該工件W向作業員A對工件W施加的力的方向移動。
在本實施方式中,在力成分Fg為閾值α以下時,CPU52根據力取得部56取得的力F的大小和方向,生成用於搬運工件W的動作指令,並將該動作指令發送給該機器人12。
根據該結構,能夠防止向機器人12施加超過容許重量的載荷,並且作業員A通過與機器人12協作能夠向所希望的方向搬運工件W。由此,能夠順利地執行工件W的搬運作業。
另外,在上述的步驟S26中,CPU52也可以根據力成分Fh的大小,控制機器人12搬運工件W的速度。例如,CPU52也可以生成向機器人12的動作指令以便以與力成分Fh的大小成比例的速度搬運工件W。
此外,在上述的步驟S21、S23、S25中,CPU52也可以計算出力成分Fg、Fh相對於時間的變化程度(例如,斜率=δF/δt),並比較計算出的變化的程度與針對該變化的程度設定的閾值。
例如,CPU52也可以在檢測出如圖12所示那樣的、在時刻t2力成分Fg的斜率增加時,執行步驟S22。此外,CPU52也可以在檢測出如圖13所示那樣的、在時刻t3力成分Fg的斜率下降時,執行步驟S24。
此外,在圖11所示的流程中,能夠導入圖3所示的步驟S9和S10那樣的緊急停止方案。在該情況下,在力成分Fg、Fh相對於時間的變化的程度超過了預先決定的閾值的情況下,即力成分Fg、Fh發生了異常地增加或減少的情況下,CPU52也可以使機器人12停止。
此外,力檢測部22並不限為設置於手腕部28,也可以設置於旋轉體16、機器人臂部18、或機器人手部20等機器人12的任何部位。
以上,通過發明的實施方式對本發明進行了說明,但上述實施方式並不限定於要求專利保護的範圍涉及的發明。此外,組合在本發明的實施方式中說明的特徵的方式也可以包含在本發明的技術範圍內,但這些特徵的組合的全部並不一定必須是發明的解決手段。並且,所屬技術領域的技術人員應明確可以對上述實施方式進行各種變更或改良。
此外,關於在要求專利保護的範圍、說明書以及附圖中所示的裝置、系統、程序以及方法的動作、順序、步驟、工序以及階段等各處理的執行順序,應注意只要沒有明示「之前」、「提前」等或者在後面的處理中使用前面的處理的輸出,則能夠按照任意的順序來實現。關於要求專利保護的範圍、說明書以及附圖中的動作流程,為了方便即使使用「首先」、「接著」、「緊接著」等來進行說明,也並不表示必須按照該順序實施。