(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-25
(45)【発行日】2024-04-02
(54)【発明の名称】教示方法およびロボットシステム
(51)【国際特許分類】
B25J 9/22 20060101AFI20240326BHJP
G05B 19/42 20060101ALN20240326BHJP
【FI】
B25J9/22 Z
G05B19/42 H
(21)【出願番号】P 2020014615
(22)【出願日】2020-01-31
【審査請求日】2023-01-06
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】100179475
【氏名又は名称】仲井 智至
(74)【代理人】
【識別番号】100216253
【氏名又は名称】松岡 宏紀
(74)【代理人】
【識別番号】100225901
【氏名又は名称】今村 真之
(72)【発明者】
【氏名】木下 敬文
(72)【発明者】
【氏名】竹内 馨
(72)【発明者】
【氏名】安達 大稀
【審査官】牧 初
(56)【参考文献】
【文献】特開2005-088114(JP,A)
【文献】特開平04-344505(JP,A)
【文献】国際公開第97/010080(WO,A1)
【文献】国際公開第92/021076(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B25J 1/00-21/02
G05B 19/18-19/416
G05B 19/42-19/46
(57)【特許請求の範囲】
【請求項1】
ロボットアームに加えられた外力を検出し、前記外力に基づいた力制御により前記ロボットアームを駆動し、前記ロボットアームの位置および姿勢を教示する教示方法であって、
前記ロボットアームの動作が開始してからの経過時間、または、前記ロボットアームの動作が開始してからの前記ロボットアームの移動量に応じて、前記ロボットアームの駆動を制限する制限条件を徐々に緩和することを特徴とする教示方法。
【請求項2】
前記制限条件は、前記ロボットアームの速度または加速度の
いずれかの上限値であり、
前記制限条件を緩和する際、前記上限値を徐々に大きくする請求項1に記載の教示方法。
【請求項3】
前記制限条件は、力制御パラメーターまたは目標力のいずれかの上限値であり、
前記制限条件を緩和する際、前記上限値を徐々に大きくする請求項1に記載の教示方法。
【請求項4】
前記制限条件を緩和する際、前記制限条件を連続的に緩和する請求項1ないし3のいずれか1項に記載の教示方法。
【請求項5】
前記制限条件を緩和する際、前記制限条件の緩和の程度の変化率を漸減させる請求項1ないし4のいずれか1項に記載の教示方法。
【請求項6】
前記制限条件を緩和する際、前記制限条件の緩和の程度の変化率を漸増させる請求項1ないし4のいずれか1項に記載の教示方法。
【請求項7】
前記制限条件を緩和する際、所定の時間、または、所定の移動量までは前記制限条件の緩和の程度の変化率を漸増させ、前記所定の時間、または、前記所定の移動量以降は前記制限条件の緩和の程度の変化率を漸減させる請求項1ないし4のいずれか1項に記載の教示方法。
【請求項8】
前記制限条件を緩和する際、所定の時間、または、所定の移動量までは前記制限条件の緩和の程度の変化率を漸減させ、前記所定の時間、または、前記所定の移動量以降は前記制限条件の緩和の程度の変化率を漸増させる請求項1ないし4のいずれか1項に記載の教示方法。
【請求項9】
ロボットアームを有するロボットと、
前記ロボットアームに加えられる外力を検出する力検出部と、
前記ロボットアームの位置および姿勢を記憶する記憶部と、
前記外力に基づいた力制御で前記ロボットアームを駆動し、前記ロボットアームの位置および姿勢を前記記憶部に記憶する教示を実行する制御部と、を備え、
前記制御部は、前記ロボットアームの動作が開始してからの経過時間、または、前記ロボットアームの動作が開始してからの前記ロボットアームの移動量に応じて、前記ロボットアームの駆動を制限する制限条件を徐々に緩和することを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、教示方法およびロボットシステムに関する。
【背景技術】
【0002】
例えば、特許文献1に記載されているように、力制御に基づいてロボットに直接教示を行う直接教示装置が知られている。この直接教示装置は、ロボットアームに加わる力を検出し、検出した力に基づいてロボットアームを駆動しつつ、ロボットアームの位置および姿勢を記憶する。
【0003】
また、特許文献1に記載されている直接教示装置では、ロボットアームの動作状態に応じて力制御パラメーターの1つである粘性係数を変化させている。これにより、ロボットアームを停止状態から動かす際の操作が軽くなり操作性が向上する。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に記載されている直接教示装置では、ロボットアームを停止状態から動かす際の操作が軽くなった分、ロボットアームの速度が想定よりも速くなってしまう可能性があり、操作性が悪い。
【課題を解決するための手段】
【0006】
本発明の教示方法は、ロボットアームに加えられた外力を検出し、前記外力に基づいた力制御により前記ロボットアームを駆動し、前記ロボットアームの位置および姿勢を教示する教示方法であって、
前記ロボットアームの動作が開始してからの経過時間、または、前記ロボットアームの動作が開始してからの前記ロボットアームの移動量に応じて、前記ロボットアームの駆動を制限する制限条件を徐々に緩和することを特徴とする。
【0007】
本発明のロボットシステムは、ロボットアームを有するロボットと、
前記ロボットアームに加えられる外力を検出する力検出部と、
前記ロボットアームの位置および姿勢を記憶する記憶部と、
前記外力に基づいた力制御で前記ロボットアームを駆動し、前記ロボットアームの位置および姿勢を前記記憶部に記憶する教示を実行する制御部と、を備え、
前記制御部は、前記ロボットアームの動作が開始してからの経過時間、または、前記ロボットアームの動作が開始してからの前記ロボットアームの移動量に応じて、前記ロボットアームの駆動を制限する制限条件を徐々に緩和することを特徴とする。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1実施形態のロボットシステムの全体構成を示す図である。
【
図2】
図2は、
図1に示すロボットシステムのブロック図である。
【
図3】
図3は、ロボットアームの上限速度および時間の関係性を示す検量線の一例を説明するためのグラフである。
【
図4】
図4は、ロボットアームの上限速度および時間の関係性を示す検量線の一例を説明するためのグラフである。
【
図5】
図5は、ロボットアームの上限速度および時間の関係性を示す検量線の一例を説明するためのグラフである。
【
図6】
図6は、ロボットアームの上限速度および時間の関係性を示す検量線の一例を説明するためのグラフである。
【
図7】
図7は、
図2に示す制御装置が行う制御動作を説明するためのフローチャートである。
【
図8】
図8は、ロボットシステムについてハードウェアを中心として説明するためのブロック図である。
【
図9】
図9は、ロボットシステムのハードウェアを中心とした変形例1を示すブロック図である。
【
図10】
図10は、ロボットシステムのハードウェアを中心とした変形例2を示すブロック図である。
【発明を実施するための形態】
【0009】
<第1実施形態>
図1は、第1実施形態のロボットシステムの全体構成を示す図である。
図2は、
図1に示すロボットシステムのブロック図である。
図3~6は、ロボットアームの上限速度および時間の関係性を示す検量線の一例を説明するためのグラフである。
図7は、
図2に示す制御装置が行う制御動作を説明するためのフローチャートである。
【0010】
以下、本発明の教示方法およびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。なお、以下では、説明の便宜上、
図1中の+Z軸方向、すなわち、上側を「上」、-Z軸方向、すなわち、下側を「下」とも言う。また、ロボットアームについては、
図1中の基台11側を「基端」、その反対側、すなわち、エンドエフェクター20側を「先端」とも言う。また、
図1中のZ軸方向、すなわち、上下方向を「鉛直方向」とし、X軸方向およびY軸方向、すなわち、左右方向を「水平方向」とする。
【0011】
図1に示すように、ロボットシステム100は、ロボット1と、ロボット1を制御する制御装置3と、教示装置4と、を備え、本発明の教示方法を実行する。
【0012】
教示とは、ロボット1に対して動作プログラムを指定することを言い、具体的には、ロボットアーム10の位置および姿勢を制御装置3または教示装置4に入力、記憶することを言う。本発明では、オペレーターからの動作指示に基づいてロボットアーム10を実際に駆動し、その過程において、ロボットアーム10の位置および姿勢の推移を少なくとも1回記憶する。記憶するタイミングは、図示はしない教示ボタンを操作したタイミングであってもよく、予め定められた時間であってもよい。
【0013】
教示中は、オペレーターがロボットアーム10に外力を加えてロボットアーム10を動かすことや、教示装置4やその他のコントローラーを用いて操作することによりロボットアーム10を駆動することができる。すなわち、教示中にロボットアーム10が受ける動作指示は、オペレーターから受ける外力のことである。
【0014】
また、オペレーターがロボットアーム10に外力を加えてロボットアーム10を動かす教示を直接教示と言う。一方、教示装置4やその他のコントローラーを操作してロボットアーム10を動かす教示を間接教示と言う。本発明の教示方法は、直接教示を行う場合に適用される。
【0015】
まず、ロボット1について説明する。
図1に示すロボット1は、本実施形態では単腕の6軸垂直多関節ロボットであり、基台11と、ロボットアーム10と、を有する。また、ロボットアーム10の先端部にエンドエフェクター20を装着することができる。エンドエフェクター20は、ロボット1の構成要件であってもよく、ロボット1の構成要件でなくてもよい。
【0016】
なお、ロボット1は、図示の構成に限定されず、例えば、双腕型の多関節ロボットであってもよい。また、ロボット1は、水平多関節ロボットであってもよい。
【0017】
基台11は、ロボットアーム10を下側から駆動可能に支持する支持体であり、例えば工場内の床に固定されている。ロボット1は、基台11が中継ケーブル18を介して制御装置3と電気的に接続されている。なお、ロボット1と制御装置3との接続は、
図1に示す構成のように有線による接続に限定されず、例えば、無線による接続であってもよく、さらには、インターネットのようなネットワークを介して接続されていてもよい。
【0018】
本実施形態では、ロボットアーム10は、第1アーム12と、第2アーム13と、第3アーム14と、第4アーム15と、第5アーム16と、第6アーム17とを有し、これらのアームが基台11側からこの順に連結されている。なお、ロボットアーム10が有するアームの数は、6つに限定されず、例えば、1つ、2つ、3つ、4つ、5つまたは7つ以上であってもよい。また、各アームの全長等の大きさは、それぞれ、特に限定されず、適宜設定可能である。
【0019】
基台11と第1アーム12とは、関節171を介して連結されている。そして、第1アーム12は、基台11に対し、鉛直方向と平行な第1回動軸を回動中心とし、その第1回動軸回りに回動可能となっている。第1回動軸は、基台11が固定される床の法線と一致している。
【0020】
第1アーム12と第2アーム13とは、関節172を介して連結されている。そして、第2アーム13は、第1アーム12に対し、水平方向と平行な第2回動軸を回動中心として回動可能となっている。第2回動軸は、第1回動軸に直交する軸と平行である。
【0021】
第2アーム13と第3アーム14とは、関節173を介して連結されている。そして、第3アーム14は、第2アーム13に対して水平方向と平行な第3回動軸を回動中心として回動可能となっている。第3回動軸は、第2回動軸と平行である。
【0022】
第3アーム14と第4アーム15とは、関節174を介して連結されている。そして、第4アーム15は、第3アーム14に対し、第3アーム14の中心軸方向と平行な第4回動軸を回動中心として回動可能となっている。第4回動軸は、第3回動軸と直交している。
【0023】
第4アーム15と第5アーム16とは、関節175を介して連結されている。そして、第5アーム16は、第4アーム15に対して第5回動軸を回動中心として回動可能となっている。第5回動軸は、第4回動軸と直交している。
【0024】
第5アーム16と第6アーム17とは、関節176を介して連結されている。そして、第6アーム17は、第5アーム16に対して第6回動軸を回動中心として回動可能となっている。第6回動軸は、第5回動軸と直交している。
【0025】
また、第6アーム17は、ロボットアーム10の中で最も先端側に位置するロボット先端部となっている。この第6アーム17は、ロボットアーム10の駆動により、エンドエフェクター20ごと回動することができる。
【0026】
ロボット1は、駆動部としてのモーターM1、モーターM2、モーターM3、モーターM4、モーターM5およびモーターM6と、エンコーダーE1、エンコーダーE2、エンコーダーE3、エンコーダーE4、エンコーダーE5およびエンコーダーE6とを備える。モーターM1は、関節171に内蔵され、基台11と第1アーム12とを相対的に回転させる。モーターM2は、関節172に内蔵され、第1アーム12と第2アーム13とを相対的に回転させる。モーターM3は、関節173に内蔵され、第2アーム13と第3アーム14とを相対的に回転させる。モーターM4は、関節174に内蔵され、第3アーム14と第4アーム15とを相対的に回転させる。モーターM5は、関節175に内蔵され、第4アーム15と第5アーム16とを相対的に回転させる。モーターM6は、関節176に内蔵され、第5アーム16と第6アーム17とを相対的に回転させる。
【0027】
また、エンコーダーE1は、関節171に内蔵され、モーターM1の位置を検出する。エンコーダーE2は、関節172に内蔵され、モーターM2の位置を検出する。エンコーダーE3は、関節173に内蔵され、モーターM3の位置を検出する。エンコーダーE4は、関節174に内蔵され、モーターM4の位置を検出する。エンコーダーE5は、関節175に内蔵され、モーターM5の位置を検出する。エンコーダーE6は、関節176に内蔵され、モーターM6の位置を検出する。
【0028】
エンコーダーE1~E6は、制御装置3と電気的に接続されており、モーターM1~モーターM6の位置情報、すなわち、回転量が制御装置3に電気信号として送信される。そして、この情報に基づいて、制御装置3は、モーターM1~モーターM6を、図示しないモータードライバーを介して駆動させる。すなわち、ロボットアーム10を制御するということは、モーターM1~モーターM6を制御することである。
【0029】
また、ロボット1は、ロボットアーム10に、力を検出する力検出部19が着脱自在に設置される。そして、ロボットアーム10は、力検出部19が設置された状態で駆動することができる。力検出部19は、本実施形態では、6軸力覚センサーである。力検出部19は、互いに直交する3個の検出軸上の力の大きさと、当該3個の検出軸まわりのトルクの大きさとを検出する。すなわち、互いに直交するX軸、Y軸、Z軸の各軸方向の力成分と、X軸回りとなるW方向の力成分と、Y軸回りとなるV方向の力成分と、Z軸回りとなるU方向の力成分とを検出する。なお、本実施形態では、Z軸方向が鉛直方向となっている。また、各軸方向の力成分を「並進力成分」と言い、各軸回りの力成分を「トルク成分」と言うこともできる。また、力検出部19は、6軸力覚センサーに限定されず、他の構成のものであってもよい。
【0030】
本実施形態では、力検出部19は、第6アーム17に設置されている。なお、力検出部19の設置箇所としては、第6アーム17、すなわち、最も先端側に位置するアームに限定されず、例えば、他のアームや、隣り合うアーム同士の間であってもよい。
【0031】
力検出部19には、エンドエフェクター20を着脱可能に装着することができる。エンドエフェクター20は、挟持、吸引、ネジ締め等を行う機能を有する。また、ロボットシステム100では、ロボット座標系において、エンドエフェクター20の先端に、ツールセンターポイントTCPが設定されている。
このようなロボット1は、制御装置3によって、作動が制御される。
【0032】
次に、制御装置3および教示装置4について説明する。
制御装置3は、ロボット1から離間して配置されており、プロセッサーの1例であるCPU(Central Processing Unit)が内蔵されたコンピューター等で構成することができる。この制御装置3は、ロボット1の基台11に内蔵されていてもよい。
【0033】
制御装置3は、中継ケーブル18によりロボット1と通信可能に接続される。制御装置3と教示装置4とはケーブルで、または無線通信可能に接続される。教示装置4は、専用のコンピューターであってもよいし、ロボット1を教示するためのプログラムがインストールされた汎用のコンピューターであってもよい。例えばロボット1を教示するための専用装置であるティーチングペンダントを教示装置4の代わりに用いても良い。さらに、制御装置3と教示装置4とは、
図1に示すように別々の筐体を備えていてもよいし、一体に構成されていてもよい。
【0034】
教示装置4には、制御装置3に後述する目標位置Stと目標力fStとを引数とする実行プログラムを生成して制御装置3にロードするための教示プログラムがインストールされている。教示装置4は、ディスプレイ41やプロセッサーやRAMやROMを備え、これらのハードウェア資源が教示プログラムと協働して実行プログラムを生成する。
【0035】
図2に示すように、制御装置3は、ロボット1の制御を行うための制御プログラムがインストールされたコンピューターである。制御装置3は、プロセッサーや図示しないRAMやROMを備え、これらのハードウェア資源がプログラムと協働することによりロボット1を制御する。
【0036】
また、
図2に示すように、制御装置3は、位置制御部30と、座標変換部31と、座標変換部32と、補正部33と、力制御部34と、指令統合部35と、制限部36と、記憶部37と、を有する。
【0037】
位置制御部30は、予め作成されたコマンドで指定される目標位置に従って、ロボット1のツールセンターポイントTCPの位置を制御する位置指令信号、すなわち、位置指令値を生成する。
【0038】
ここで、制御装置3は、ロボット1の動作を力制御等で制御することが可能である。「力制御」とは、力検出部19の検出結果に基づいて、エンドエフェクター20の位置、すなわち、ツールセンターポイントTCPの位置や、第1アーム12~第6アーム17の姿勢を変更したりするロボット1の動作の制御のことである。なお、本実施形態では、教示を行う際、力制御を行う直接教示であることとする。
【0039】
力制御には、例えば、フォーストリガー制御と、インピーダンス制御とが含まれている。
【0040】
フォーストリガー制御では、力検出部19により力検出を行い、その力検出部19により所定の力を検出するまで、ロボットアーム10に移動や姿勢の変更の動作をさせる。
【0041】
インピーダンス制御は、倣い制御を含む。まず、簡単に説明すると、インピーダンス制御では、ロボットアーム10の先端部に加わる力を可能な限り所定の力に維持、すなわち、力検出部19により検出される所定方向の力を可能な限り目標力fStに維持するようにロボットアーム10の動作を制御する。これにより、例えば、ロボットアーム10に対してインピーダンス制御を行うと、ロボットアーム10は、対象物や、オペレーターから加わった外力に対し、前記所定方向について倣う動作を行う。なお、目標力fStには、0も含まれる。例えば、倣い動作の場合には、目標値を「0」とすることができる。なお、目標力fStを0以外の数値とすることもできる。この目標力fStは、作業者が適宜設定可能である。
【0042】
制御装置3は、モーターM1~モーターM6の回転角度の組み合わせと、ロボット座標系におけるツールセンターポイントTCPの位置との対応関係を記憶している。また、制御装置3は、ロボット1が行う作業の工程ごとに目標位置Stと目標力fStとの少なくとも一方をコマンドに基づいて記憶する。目標位置Stおよび目標力fStを引数、すなわち、パラメーターとするコマンドは、ロボット1が行う作業の工程ごとに設定される。
【0043】
制御装置3は、設定された目標位置Stと目標力fStとがツールセンターポイントTCPにて一致されるように、コマンドに基づいて第1アーム12~第6アーム17を制御する。目標力fStとは、第1アーム12~第6アーム17の動作に応じて力検出部19が検出すべき力である。ここで、「S」の文字は、ロボット座標系を規定する軸の方向(X,Y,Z,U,V,W)のいずれか1つの方向を表すこととする。また、Sは、S方向の位置も表すこととする。例えば、S=Xの場合、ロボット座標系にて設定された目標位置のX方向成分がSt=Xtとなり、目標力のX方向成分がfSt=fXtとなる。
【0044】
また、制御装置3では、モーターM1~モーターM6の回転角度を取得すると、
図2に示す座標変換部31が、対応関係に基づいて、当該回転角度をロボット座標系におけるツールセンターポイントTCPの位置S(X,Y,Z,V,W,U)に変換する。そして、座標変換部32が、ツールセンターポイントTCPの位置Sと、力検出部19の検出値とに基づいて、力検出部19に現実に作用している作用力f
Sをロボット座標系において特定する。
【0045】
作用力fSの作用点は、ツールセンターポイントTCPとは別に原点として定義される。原点は、力検出部19が力を検出している点に対応する。なお、制御装置3は、ロボット座標系におけるツールセンターポイントTCPの位置Sごとに、力検出部19のセンサー座標系における検出軸の方向を規定した対応関係を記憶している。従って、制御装置3は、ロボット座標系におけるツールセンターポイントTCPの位置Sと対応関係とに基づいて、ロボット座標系における作用力fSを特定できる。また、ロボットに作用するトルクは、作用力fSと、接触点から力検出部19までの距離とから算出することができ、トルク成分として特定される。
【0046】
補正部33は、作用力fSに対して重力補償を行う。重力補償とは、作用力fSから重力に起因する力やトルクの成分を除去することである。重力補償を行った作用力fSは、ロボットアーム10またはエンドエフェクター20に作用している重力以外の力と見なすことができる。
【0047】
また、補正部33は、作用力fSに対して慣性補償を行う。慣性補償とは、作用力fSから慣性力に起因する力やトルクの成分を除去することである。慣性補償を行った作用力fSは、ロボットアーム10またはエンドエフェクター20に作用している慣性力以外の力と見なすことができる。
【0048】
力制御部34は、インピーダンス制御を行う。インピーダンス制御は、仮想の機械的インピーダンスをモーターM1~モーターM6によって実現する能動インピーダンス制御である。制御装置3は、このようなインピーダンス制御を、ワークの嵌合作業、螺合作業、研磨作業等、エンドエフェクター20が対象物であるワークから力を受ける接触状態の工程や、直接教示を行う際に実行する。なお、このような工程以外であっても、例えば、人がロボット1に接触した際にインピーダンス制御を行うことにより、安全性を高めることができる。
【0049】
インピーダンス制御では、目標力fStを後述する運動方程式に代入してモーターM1~モーターM6の回転角度を導出する。制御装置3がモーターM1~モーターM6を制御する信号は、PWM(Pulse Width Modulation)変調された信号である。運動方程式に基づいて目標力fStから回転角度を導出してモーターM1~モーターM6を制御するモードのことを、力制御モードと言う。
【0050】
また、制御装置3は、エンドエフェクター20が外力を受けない非接触状態の工程では、目標位置Stから線形演算で導出する回転角度でモーターM1~モーターM6を制御する。目標位置Stから線形演算で導出する回転角度でモーターM1~モーターM6を制御するモードのことを、位置制御モードと言う。
【0051】
制御装置3は、目標力fStと作用力fSとをインピーダンス制御の運動方程式に代入することにより、力由来補正量ΔSを特定する。力由来補正量ΔSとは、ツールセンターポイントTCPが機械的インピーダンスを受けた場合に、目標力fStとの力偏差ΔfS(t)を解消するために、ツールセンターポイントTCPが移動すべき位置Sの大きさを意味する。下記の式(1)は、インピーダンス制御の運動方程式である。
【0052】
【0053】
式(1)の左辺は、ツールセンターポイントTCPの位置Sの2階微分値に仮想質量係数m(以下、「質量係数m」と言う)を乗算した第1項と、ツールセンターポイントTCPの位置Sの微分値に仮想粘性係数d(以下、「粘性係数d」と言う)を乗算した第2項と、ツールセンターポイントTCPの位置Sに仮想弾性係数k(以下、「弾性係数k」と言う)を乗算した第3項とによって構成される。式(1)の右辺は、目標力fStから現実の力fを減算した力偏差ΔfS(t)によって構成される。式(1)における微分とは、時間による微分を意味する。ロボット1が行う工程において、目標力fStとして一定値が設定される場合もあるし、目標力fStとして時間の関数が設定される場合もある。
【0054】
質量係数mは、ツールセンターポイントTCPが仮想的に有する質量を意味し、粘性係数dは、ツールセンターポイントTCPが仮想的に受ける粘性抵抗を意味し、弾性係数kは、ツールセンターポイントTCPが仮想的に受ける弾性力のバネ定数を意味する。
【0055】
質量係数mの値が大きくなるにつれて、動作の加速度が小さくなり、質量係数mの値が小さくなるにつれて動作の加速度が大きくなる。粘性係数dの値が大きくなるにつれて、動作の速度が遅くなり、粘性係数dの値が小さくなるにつれて動作の速度が速くなる。弾性係数kの値が大きくなるにつれて、バネ性が大きくなり、弾性係数kの値が小さくなるにつれて、バネ性が小さくなる。
【0056】
本明細書では、質量係数m、粘性係数dおよび弾性係数kの各々を力制御パラメーターと言う。これら質量係数m、粘性係数dおよび弾性係数kは、方向ごとに異なる値に設定されてもよいし、方向に関わらず共通の値に設定されてもよい。また、質量係数m、粘性係数dおよび弾性係数kは、作業者が、作業前に適宜設定可能である。
【0057】
このように、ロボットシステム100では、力検出部19の検出値、予め設定された力制御パラメーター、および、予め設定された目標力から補正量を求める。この補正量は、前述した力由来補正量ΔSのことであり、外力を受けたその位置からツールセンターポイントTCPを移動すべき位置との差のことである。
【0058】
そして、指令統合部35は、位置制御部30が生成した位置指令値Pに、力由来補正量ΔSを合算する。これを随時行うことにより、指令統合部35は、外力を受けた位置に移動させるために用いていた位置指令値Pから、新たな位置指令値P’を求める。
【0059】
そして、この新たな位置指令値P’を座標変換部31がロボット座標に変換し、実行部351が実行することにより、力由来補正量ΔSを加味した位置にツールセンターポイントTCPを移動させて、外力が加わった衝撃を緩和し、ロボット1に接触した対象物に対し、それ以上負荷がかかるのを緩和することができる。その結果、作業を安全かつ安定的に行うことができる。
【0060】
また、ロボットシステム100では、このような力制御を、直接教示中に行う。これにより、停止中のロボットアーム10に対し、所望の位置および姿勢となるようにオペレーターが力を加えると、可及的に小さい負荷で、ロボットアーム10が所望の位置および姿勢に動かすことができ、安全に教示を行うことができる。
【0061】
記憶部37は、例えば、RAM(Random Access Memory)等の揮発性メモリー、ROM(Read Only Memory)等の不揮発性メモリー、着脱式の外部記憶装置等で構成される。記憶部37には、ロボット1を作動させるための動作プログラムや、教示を行う教示プログラム等が記憶されている。また、記憶部37には、後述するような検量線K1~検量線K4等が記憶されている。
【0062】
さて、教示を行う際、特に、ロボットアーム10が停止している状態においてオペレーターがロボットアーム10に外力を加えるとき、オペレーターは、どの程度の力で押せばどの程度の速度でロボットアーム10が動作するかを予測しづらい。すなわち、ロボットアーム10が一旦動き出せば、オペレーターは、所望の速度でロボットアーム10を移動させやすいが、ロボットアーム10の動作開始時においてロボットアーム10の動作速度を予想しづらく、操作性が悪い。
【0063】
このような問題を鑑みて、ロボットシステム100では、制限部36により上記問題を解決することができる。以下、詳細に説明する。
【0064】
図2に示す制限部36は、ロボットアーム10の動作が開始してからの経過時間、または、ロボットアーム10の動作が開始してからのロボットアーム10の移動量に応じて、ロボットアーム10の駆動を制限する制限条件を徐々に緩和する。本実施形態では、制限部36は、ロボットアーム10の動作が開始してからの経過時間に応じて制限条件を徐々に緩和する場合について説明する。
【0065】
制限条件とは、ロボットアーム10の動作を制限するための条件のことであり、ロボットアーム10の速度、加速度、力制御パラメーターおよび目標力の上限値のことを言う。なお、本実施形態では、制限部36は、制限条件として速度の上限値を緩和する場合について説明する。なお、以下では、速度とは、ロボットアーム10のツールセンターポイントTCPの速度のことを言う。
【0066】
ロボットアーム10の停止状態において、オペレーターがロボットアーム10に外力を加えると、力検出部19が外力、すなわち、動作指示を検出し、その検出結果に基づいて、制御装置3がロボットアーム10の駆動を開始する。すなわち、ロボットアーム10の移動が開始される。この開始時を時間T0としたとき、制限部36は、時間T0における上限速度をV0とする。そして、時間T0から、予め定められた時間Txが経過するまで、上限速度を徐々に緩和していく、すなわち、徐々に高くしていく。これにより、仮に、時間T0から時間Txまで、上限速度でロボットアーム10を駆動するような操作が行われたとしても、ロボットアーム10の動作速度が徐々にしか上がらないようにすることができる。よって、初速を十分に抑制し、所定時間まで徐々に制限を緩和することができ、操作性に優れる。
【0067】
なお、時間Txが経過した後は、上限速度は、速度Vxで一定となる。ただし、これに限定されず、時間Txが経過した後の上限速度は、変化してもよい。
【0068】
時間Txまで上限速度をどのように緩和していくかは、上限速度と時間との関係を示す検量線に基づいて決定される。この検量線は、予め記憶部37に記憶されている。また、検量線の種類について、
図3~
図6を参照しつつ説明する。
【0069】
図3に示す検量線K1は、時間が経つにつれて、上限速度の変化率、すなわち、増加率が連続的に低下するような二次曲線である。すなわち、ロボットアーム10の動き出し直後は、上限速度の増加率が比較的大きいが、時間Txに近づくと、上限速度の増加率が比較的小さくなる。このような検量線K1を用いることにより、上記のような操作性が優れるという効果が得られるとともに、特に、ロボットアーム10の動き出しが機敏になるとともに、時間Txが経過し、上限速度が速度Vxで一定となるときに、上限速度が滑らかに変化する。これにより、時間Txが経過したときにおいて、操作性が低下してしまうのを防止または抑制することができる。
【0070】
このように、制限部36は、制限条件の一例である上限速度を緩和する際、上限速度の緩和の程度の変化率、すなわち、増加率を漸減させる。これにより、ロボットアーム10の動き出しが機敏になるとともに、上限速度の上昇の終了時付近に操作性が低下するのを防止または抑制することができる。
【0071】
次に、検量線K2について説明する。
図4に示す検量線K2は、時間が経つにつれて、上限速度の変化率、すなわち、増加率が連続的に上昇するような二次曲線である。すなわち、ロボットアーム10の動き出し直後は、上限速度の増加率が比較的小さいが、時間Txに近づくと、上限速度の増加率が比較的大きくなる。このような検量線K2を用いることにより、上記のような操作性が優れるという効果が得られるとともに、特に、ロボットアーム10の動き出し直後に上限速度の増加率が小さいため、滑らかな動き出しが可能となる。よって、ロボットアーム10の動き出し直後の操作性をより確実に高めることができる。
【0072】
このように、制限部36は、制限条件の一例である上限速度を緩和する際、上限速度の緩和の程度の変化率、すなわち、増加率を漸増させる。これにより、ロボットアーム10の動き出し直後の操作性をより確実に高めることができる。
【0073】
次に、検量線K3について説明する。
図5に示す検量線K3は、時間Tまでは上限速度の変化率、すなわち、増加率が連続的に上昇し、時間Tから時間Txまでは、上限速度の増加率が連続的に減少するような二次曲線である。すなわち、ロボットアーム10の動き出し直後は、上限速度の増加率が比較的小さく、時間Txが近づくと、上限速度の増加率が比較的小さくなる。このような検量線K3を用いることにより、上記のような操作性が優れるという効果が得られるとともに、特に、ロボットアーム10の動き出しが滑らかになるとともに、時間Txが経過し、上限速度が速度Vxで一定となるときに、上限速度が滑らかに変化する。これにより、ロボットアーム10の動き出し直後、および、時間Txが経過するときの操作性をより高めることができる。
【0074】
このように、制限部36は、制限条件の一例である上限速度を緩和する際、所定の時間、または、所定の移動量までは上限速度の緩和の程度の変化率を漸増させ、所定の時間、または、所定の移動量以降は上限速度の緩和の程度の変化率を漸減させる。これにより、ロボットアーム10の動き出し直後、および、時間Txが近づいてきたときの操作性をより高めることができる。
【0075】
次に、検量線K4について説明する。
図6に示す検量線K4は、時間Tまでは上限速度の変化率、すなわち、増加率が連続的に減少し、時間Tから時間Txまでは、上限速度の増加率が連続的に上昇するような二次曲線である。すなわち、ロボットアーム10の動き出し直後は、上限速度の増加率が比較的大きく、時間T付近では、上限速度の増加率が比較的小さく、時間Txが近づくと、上限速度の増加率が比較的大きくなる。このような検量線K4を用いることにより、上記のような操作性が優れるという効果が得られるとともに、特に、ロボットアーム10の動き出しが機敏になるとともに、中間の時間T付近では滑らかな動きになる。これにより、時間T付近での操作性をより高めることができる。
【0076】
このように、制限部36は、制限条件の一例である上限速度を緩和する際、所定の時間、または、所定の移動量までは上限速度の緩和の程度の変化率を漸減させ、所定の時間、または、所定の移動量以降は上限速度の緩和の程度の変化率を漸増させる。これにより、時間T付近での操作性をより高めることができる。
【0077】
このように制限部36は、制限条件の一例である上限速度を緩和する際、上限速度を連続的に緩和する。これにより、ロボットアーム10の動き出し直後から時間Txまで安定して優れた操作性を発揮することができる。
【0078】
なお、上記では、連続的な変化の一例として二次曲線で変化する場合について説明したが、直線で変化する構成であってもよい。また、上記のような連続的な原価に限定されず、段階的な変化であってもよい。段階的な変化の場合、複数段階の変化が本発明に含まれる。
【0079】
また、上記検量線K1~検量線K4は、関係式として記憶部37に記憶されていてもよく、テーブルとして記憶部37に記憶されていてもよい。
【0080】
以上、説明したように、本発明のロボットシステム100は、ロボットアーム10を有するロボットと、ロボットアーム10に加えられる外力を検出する力検出部5と、前ロボットアーム10の位置および姿勢を記憶する記憶部37と、外力に基づいた力制御によりロボットアーム10を駆動し、ロボットアーム10の位置および姿勢を記憶部37に記憶する教示を実行する制御部としての制御装置3と、を備える。また、制御装置3は、ロボットアーム10の動作が開始してからの経過時間、または、ロボットアーム10の動作が開始してからのロボットアーム10の移動量に応じて、ロボットアーム10の駆動を制限する制限条件を徐々に緩和する。これにより、ロボットアーム10の動き出し直後からロボットアーム10の駆動を制限することができ、特に、ロボットアーム10の動き出し直後の操作性に優れる。
【0081】
なお、上記では、ロボットアーム10の動作が開始してからの経過時間に応じて、ロボットアーム10の制限条件を徐々に緩和する場合について説明したが、本発明では、これに限定されず、ロボットアーム10の動作が開始してからのロボットアーム10の移動量に応じてロボットアーム10の制限条件を徐々に緩和する構成であってもよい。
【0082】
ロボットアーム10の動作が開始してからのロボットアーム10の移動量に応じてロボットアーム10の制限条件を徐々に緩和する場合、所定移動量まで上限速度をどのように緩和していくかは、ロボットアーム10の上限速度と移動量との関係を示す検量線に基づいて決定される。この場合の検量線は、
図3から
図6に示す検量線K1からK4の横軸を移動量としたものとなる。
【0083】
また、上記では、制限条件の一例としてロボットアーム10の速度について説明したが、本発明ではこれに限定されず、例えば、加速度、力制御パラメーターである質量係数m、粘性係数dおよび弾性係数kのうちの少なくとも1つ、および、目標力fStであってもよい。また、これらのうちの2つ以上に対し制限条件を徐々に緩和する構成であってもよい。
【0084】
次に、ロボットシステム100の制御動作の一例として、本発明の教示方法について、
図7に示すフローチャートを参照しつつ説明する。また、以下では、教示モードにおいてロボットアーム10が停止している状態から説明を行う。
【0085】
また、以下では、上記と同様に、ロボットアーム10の動作が開始してからの経過時間に応じて、ロボットアーム10の上限速度を徐々に緩和する場合について説明する。
【0086】
まず、ステップS101において、ロボット1に加わる力を検出、取得する。すなわち、力検出部19が外力を検出し、その検出値を取得する。次いで、ステップS102において、力検出部19に加わった力を座標変換する。すなわち、力検出部19に現実に作用している力をロボット座標系において特定し、ツールセンターポイントTCPに加わった作用力fSに変換する。
【0087】
そして、ステップS103では、作用力fSに対して重力補償および慣性力補償を行う。すなわち、作用力fSから重力に起因する力やトルクの成分と、慣性力に起因する力やトルクの成分を除去する。
【0088】
次いで、ステップS104において、力由来補正量ΔSを算出する。この算出は、作用力fSと、力制御パラメーターおよび目標力fStに基づいて算出される。すなわち、これらを上記式(1)に代入して、力由来補正量ΔSを算出する。
【0089】
次いで、ステップS105において、補正後指令量候補を算出する。この算出は、位置指令値Pに力由来補正量ΔSを加算することにより行われる。
【0090】
次いで、ステップS106において、予想速度を算出する。この算出は、補正後指令量候補に基づいて行われる。
【0091】
次いで、ステップS107において、上限速度を算出する。この算出は、例えば、現在の時間および前述した検量線K1~検量線K4のうちのいずれかに基づいて行われる。前述したように、検量線K1~検量線K4は、ロボットアーム10の動作が開始してからの経過時間に応じて、ロボットアーム10の駆動を制限する制限条件としての上限速度を徐々に緩和するための検量線である。
【0092】
次いで、ステップS108において、ステップS105で算出した予想速度と、ステップS106で算出した上限速度と、を比較する。ステップS108において、予想速度>上限速度であると判断した場合、ステップS109に移行し、予想速度≦上限速度であると判断した場合、ステップS110に移行する。
【0093】
ステップS109では、ロボットアーム10を上限速度で駆動する。すなわち、上限速度でツールセンターポイントTCPが移動する位置指令値P’を算出し、この位置指令値P’を、関節171~関節176の位置指令値に変換し、モーターM1~モーターM6に対応した最終位置指令値に変換して実行する。
【0094】
ステップS110では、ロボットアーム10を予想速度で駆動する。すなわち、予想速度でツールセンターポイントTCPが移動する位置指令値P’を算出し、この位置指令値P’を、関節171~関節176の位置指令値に変換し、モーターM1~モーターM6に対応した最終位置指令値に変換して実行する。
【0095】
次いで、ステップS111において、完了したか否かを判断する。この判断は、オペレーターから教示完了指示があったか否かに基づいて行われる。ステップS111において、完了していないと判断した場合、ステップS101に戻り、以降のステップを順次繰り返す。
【0096】
以上説明したように、本発明の教示方法は、ロボットアーム10に加えられた外力を検出し、前記外力に基づいた力制御により前記ロボットアーム10を駆動し、ロボットアーム10の位置および姿勢を教示する教示方法である。また、ロボットアーム10の動作が開始してからの経過時間、または、ロボットアーム10の動作が開始してからのロボットアーム10の移動量に応じて、ロボットアーム10の駆動を制限する制限条件を徐々に緩和する。これにより、ロボットアーム10の動き出し直後からロボットアーム10の駆動を制限することができ、特に、ロボットアーム10の動き出し直後の操作性に優れる。
【0097】
また、制限条件は、ロボットアーム10の速度または加速度の上限値であった場合、制限条件を緩和する際、上限値を徐々に大きくする。これにより、前述したように、ロボットアーム10の動き出しの直後の操作性をよりダイレクトに高めることができる。
【0098】
また、ロボットアーム10は、力制御により駆動するものであり、制限条件は、力制御パラメーターまたは目標力の上限値であった場合、制限条件を緩和する際、上限値を徐々に大きくする。これにより、オペレーターは、ロボットアーム10の動き出しの直後に比較的大きい負荷をロボットアーム10から感じる。よって、ロボットアーム10を押す力が過剰に大きくなるのを防止または抑制することができる。その結果、ロボットアーム10過剰に早く動いてしまうのを防止または抑制することができる。
【0099】
<ロボットシステムの他の構成例>
図8は、ロボットシステムについてハードウェアを中心として説明するためのブロック図である。
【0100】
図8には、ロボット1とコントローラー61とコンピューター62が接続されたロボットシステム100Aの全体構成が示されている。ロボット1の制御は、コントローラー61にあるプロセッサーによりメモリーにある指令を読み出して実行されてもよいし、コンピューター62に存在するプロセッサーによりメモリーにある指令を読み出してコントローラー61を介して実行されてもよい。
【0101】
従って、コントローラー61とコンピューター62とのいずれか一方または両方を「制御装置」として捉えることができる。
【0102】
<変形例1>
図9は、ロボットシステムのハードウェアを中心とした変形例1を示すブロック図である。
【0103】
図9には、ロボット1に直接コンピューター63が接続されたロボットシステム100Bの全体構成が示されている。ロボット1の制御は、コンピューター63に存在するプロセッサーによりメモリーにある指令を読み出して直接実行される。
従って、コンピューター63を「制御装置」として捉えることができる。
【0104】
<変形例2>
図10は、ロボットシステムのハードウェアを中心とした変形例2を示すブロック図である。
【0105】
図10には、コントローラー61が内蔵されたロボット1とコンピューター66が接続され、コンピューター66がLAN等のネットワーク65を介してクラウド64に接続されているロボットシステム100Cの全体構成が示されている。ロボット1の制御は、コンピューター66に存在するプロセッサーによりメモリーにある指令を読み出して実行されてもよいし、クラウド64上に存在するプロセッサーによりコンピューター66を介してメモリーにある指令を読み出して実行されてもよい。
【0106】
従って、コントローラー61とコンピューター66とクラウド64とのいずれか1つ、または、いずれか2つ、または、3つを「制御装置」として捉えることができる。
【0107】
以上、本発明の教示方法およびロボットシステムを図示の実施形態について説明したが、本発明は、これに限定されるものではない。また、ロボットシステムを構成する各部は、同様の機能を発揮し得る任意の構成のものと置換することができる。また、任意の構成物が付加されていてもよい。
【符号の説明】
【0108】
1…ロボット、3…制御装置、4…教示装置、10…ロボットアーム、11…基台、12…第1アーム、13…第2アーム、14…第3アーム、15…第4アーム、16…第5アーム、17…第6アーム、18…中継ケーブル、19…力検出部、20…エンドエフェクター、30…位置制御部、31…座標変換部、32…座標変換部、33…補正部、34…力制御部、35…指令統合部、36…制限部、37…記憶部、41…ディスプレイ、61…コントローラー、62…コンピューター、63…コンピューター、64…クラウド、65…ネットワーク、66…コンピューター、100…ロボットシステム、100A…ロボットシステム、100B…ロボットシステム、100C…ロボットシステム、171…関節、172…関節、173…関節、174…関節、175…関節、176…関節、351…実行部、E1…エンコーダー、E2…エンコーダー、E3…エンコーダー、E4…エンコーダー、E5…エンコーダー、E6…エンコーダー、K1…検量線、K2…検量線、K3…検量線、K4…検量線、M1…モーター、M2…モーター、M3…モーター、M4…モーター、M5…モーター、M6…モーター、P…位置指令値、P'…位置指令値、St…目標位置、TCP…ツールセンターポイント、Vx…速度、f…力、fS…作用力、fSt…目標力、ΔS…力由来補正量