(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、一実施の形態について図面を参照しつつ説明する。
【0012】
<1.ロボットシステムの全体構成>
まず、
図1を参照しつつ、実施形態に係るロボット10を有するロボットシステム1の全体構成の一例について説明する。
【0013】
図1に示すように、ロボットシステム1は、ワークWの製造ラインLにおいて、搬送コンベア2により搬送されるワークWをロボット10を用いて加工するシステムである。ロボットシステム1は、搬送コンベア2と、カメラ3と、複数のロボット10と、上位コントローラ30とを有する。
【0014】
搬送コンベア2は、ワークWを所定の移動経路に沿って搬送する。なお、
図1中の矢印Dwは搬送コンベア2によるワークWの移動方向を示している。搬送コンベア2は、ロボット10による作業位置においてもワークWを停止させることなく移動を継続する。ワークWは、単一又は複数の部品で構成されており、所定の作業が行われる天板部5及び底板部6を有する。ワークWは特に限定されるものではないが、例えば車両のボディ等である。
【0015】
複数のロボット10は、搬送コンベア2によるワークWの移動経路の近傍に配置される。この例では、複数のロボット10は4台のロボットで構成されており、第1ロボット10Aと、第2ロボット10Bと、第3ロボット10Cと、第4ロボット10Dとを有する。このうち第1ロボット10A及び第3ロボット10Cは、第2ロボット10B及び第4ロボット10Dよりも腕部104,105等(後述の
図2参照)が長くなるように構成されており、作業可能範囲が比較的大きいロボットである。これら第1ロボット10A及び第3ロボット10Cは、この例ではワークWの移動経路の下流側において搬送コンベア2の幅方向両側に対向するように配置されている。一方、第2ロボット10B及び第4ロボット10Dは、第1ロボット10A及び第3ロボット10Cよりも腕部104,105等(後述の
図2参照)が短くなるように構成されており、作業可能範囲が比較的小さいロボットである。これら第2ロボット10B及び第4ロボット10Dは、この例ではワークWの移動経路の上流側において搬送コンベア2の幅方向両側に対向するように配置されている。
【0016】
なお、ロボット10の設置台数は4台に限定されるものではなく、1台でもよいし、4以外の複数台でもよい。また、複数のロボット10の作業可能範囲を統一してもよい。また、ロボット10の配置態様を上記以外としてもよい。
【0017】
第1ロボット10A〜第4ロボット10Dは、それぞれ、ロボット本体11と、ロボット本体11の基部に設けられたロボットコントローラ20とを備える。ロボット本体11は、7つの関節部を備えた7軸ロボットであり、その先端には、エンドエフェクタ12が取り付けられている。各ロボット10A〜10Dのロボットコントローラ20は、それぞれ上位コントローラ30と接続されている。
【0018】
なお、ロボット10A〜10Dの一部又は全部を7軸以外(例えば6軸等)のロボットとしてもよい。また、ロボットコントローラ20をロボット本体11と分離して配置してもよい。
【0019】
第1ロボット10Aは、移動している状態のワークWの天板部5における幅方向一方側の部分に対し、エンドエフェクタ12をワークWに追従するように移動させながら所定の作業を行う。第2ロボット10Bは、移動している状態のワークWの底板部6における上記幅方向一方側の部分に対し、エンドエフェクタ12をワークWに追従するように移動させながら上記所定の作業を行う。第3ロボット10Cは、移動している状態のワークWの天板部5における幅方向他方側の部分に対し、エンドエフェクタ12をワークWに追従するように移動させながら上記所定の作業を行う。第4ロボット10Dは、移動している状態のワークWの底板部6における上記幅方向他方側の部分に対し、エンドエフェクタ12をワークWに追従するように移動させながら上記所定の作業を行う。なお、
図1中の矢印Drはエンドエフェクタ12の移動方向を示している。
【0020】
各ロボット10A〜10Dが行う上記所定の作業は、移動している状態のワークWとエンドエフェクタ12とが一時的に接触する工程を含む作業である。そのような作業としては、例えば、リベット打ち、くぎ打ち、スポット溶接、ステープル留め、ボルト締め等の作業が挙げられるが、これらの作業に限定されるものではない。
【0021】
カメラ3は、各ロボット10A〜10Dが上記所定の作業をする際のワークWの3次元位置をリアルタイムに検出するために、作業位置の上方に設置されている。カメラ3は、上位コントローラ30に接続されており、カメラ3の検出結果は上位コントローラ30に送信される。
【0022】
なお、カメラ3の設置台数は1台に限定されるものではなく、2台以上としてもよい。また、ワークWの3次元位置を検出可能であれば、カメラ以外のセンサ(例えばレーザセンサ等)を使用してもよい。これにより、ワークWの3次元位置の検出精度をさらに高めることができる。
【0023】
ワークWの天板部5には、位置検出用の複数のマーク7が設けられている。この例では、3つのマーク7a〜7cが例えば天板部5の角部近傍にそれぞれ設けられている。これら3つのマーク7a〜7cは、ワークWの所定の位置を原点Oとする3次元座標系(以下「ワーク座標系」という)を規定する。この例では、例えば天板部5の一の角部近傍を原点Oとし、互いに直交するX軸、Y軸、Z軸からなるワーク座標系が設定されている。各ワークWでは、ワーク座標系において作業目標となる教示点の座標がそれぞれ設定されている。
【0024】
上記3つのマーク7a〜7cは、カメラ3によりそれぞれ検出される。そして、その検出結果を受信した上記上位コントローラ30の画像処理部31(後述の
図3参照)により、ワークWの3次元位置及び姿勢(X軸回りの回転量θx、Y軸回りの回転量θy、Z軸回りの回転量θzを含む)が測定される。上記ワーク座標系における教示点の座標は、各ロボット10A〜10Dに対応するロボット座標系にそれぞれ変換され、且つ、測定されたワークWの3次元位置及び姿勢に基づいて逐次補正される。各ロボット10A〜10Dは、補正された上記教示点の座標に基づいてそれぞれ所定の作業を実行する。
【0025】
なお、ワークWに設けられるマーク7の数及び位置は、上記以外としてもよい。また、カメラ3の検出対象はマークに限定されるものではなく、位置検出用の基準として保証されるものであれば、例えばワークWの凹凸形状や孔等でもよい。
【0026】
<2.ロボットの構成>
次に、
図2を参照しつつ、第1ロボット10Aの構成の一例について説明する。なお、第3ロボット10Cは第1ロボット10Aと同等の構成であり、第2ロボット10B及び第4ロボット10Dも腕部104,105等の寸法が異なるものの第1ロボット10Aと基本的に同様の構成であるので、ここでは第1ロボット10Aの構成についてのみ説明する。
【0027】
図2に示すように、第1ロボット10Aは、ロボット本体11と、ロボットコントローラ20とを有する。ロボット本体11は、基台101と、旋回部102と、アーム103とを有する。
【0028】
基台101は、第1ロボット10Aの設置面に対し、例えばアンカーボルト等により固定されている。設置面は、例えば製造ラインLにおける床面であるが、床面以外(例えば天井面や側面等)に固定されてもよい。
【0029】
旋回部102は、基台101の設置面とは反対側の先端部に、設置面に略垂直な回転軸心Ax1まわりに旋回可能に支持されている。この旋回部102は、基台101との間の関節部に設けられたアクチュエータAc1の駆動により、基台101の先端部に対し、回転軸心Ax1まわりに旋回駆動される。
【0030】
アーム103は、旋回部102の一方側の側部に旋回可能に支持されている。このアーム103は、下腕部104と、上腕部105と、手首部106と、フランジ部107とを備える。
【0031】
下腕部104は、第1腕部104Aと第2腕部104Bとを備える。第1腕部104Aは、旋回部102の一方側の側部に、回転軸心Ax1に略垂直な回転軸心Ax2まわりに旋回可能に支持されている。この第1腕部104Aは、旋回部102との間の関節部に設けられたアクチュエータAc2の駆動により、旋回部102の一方側の側部に対し、回転軸心Ax2まわりに旋回駆動される。第2腕部104Bは、第1腕部104Aの先端側に、回転軸心Ax2と略平行な回転軸心Ax3周りに旋回可能に支持されている。この第2腕部104Bは、第1腕部104Aとの間の関節部に設けられたアクチュエータAc3の駆動により、第1腕部104Aの先端側に対し、回転軸心Ax3周りに旋回駆動される。
【0032】
上腕部105は、下腕部104の先端側に、回転軸心Ax3に略平行な回転軸心Ax4まわりに旋回可能且つ回転軸心Ax3に略垂直な回転軸心Ax5回りに回動可能に支持されている。この上腕部105は、下腕部104との間の関節部に設けられたアクチュエータAc4の駆動により、下腕部104の先端側に対し、回転軸心Ax4まわりに旋回駆動されるとともに、アクチュエータAc4との間に設けられたアクチュエータAc5の駆動により、下腕部104の先端側に対し、回転軸心Ax5まわりに回動駆動される。
【0033】
手首部106は、上腕部105の先端側に、回転軸心Ax5に略垂直な回転軸心Ax6まわりに旋回可能に支持されている。この手首部106は、上腕部105との間の関節部に設けられたアクチュエータAc6の駆動により、上腕部105の先端側に対し、回転軸心Ax6まわりに旋回駆動される。
【0034】
フランジ部107は、手首部106の先端側に、回転軸心Ax6に略垂直な回転軸心Ax7まわりに回動可能に支持されている。このフランジ部107は、手首部106との間の関節部に設けられたアクチュエータAc7の駆動により、手首部106の先端側に対し、回転軸心Ax7まわりに回動駆動される。
【0035】
エンドエフェクタ12は、フランジ部107の先端に取り付けられており、フランジ部107の回転軸心Ax7まわりの回動と共に、回転軸心Ax7まわりに回動する。エンドエフェクタ12は、ワークWの天板部5又は底板部6に接触して、天板部5又は底板部6に対し所定の作業を行うことが可能である。
【0036】
以上の構成であるロボット本体11は、7つのアクチュエータAc1〜Ac7を備えた7つの関節部を有する7軸ロボットである。具体的には、ロボット本体11は、旋回部102の回転軸心Ax1まわりの旋回、下腕部104の回転軸心Ax2まわりの旋回、上腕部105の回転軸心Ax4まわりの旋回及び回転軸心Ax5まわりの回動、手首部106の回転軸心Ax6まわりの旋回、及び、フランジ部107の回転軸心Ax7まわりの回動による、エンドエフェクタ12の位置及び姿勢を自在に変更可能な6軸ロボットを基本とし、下腕部104における第2腕部104Bの回転軸心Ax3まわりの旋回により、旋回部102と上腕部105との間の距離の長短を調節する冗長自由度を追加した7軸ロボットである。なお、ロボット本体11は、必ずしも7軸ロボットである必要はなく、例えば下腕部104をアクチュエータAc3を有さない単一の腕部とした6軸ロボット等であってもよい。
【0037】
各関節部を駆動するアクチュエータAc1〜Ac7は、サーボモータ(後述の
図3参照)、減速機及びブレーキ等により構成されている。なお、サーボモータ、減速機及びブレーキ等は、必ずしも回転軸心Ax1〜Ax7上に配置される必要はなく、これらの回転軸心Ax1〜Ax7から離れた位置に配置されていてもよい。
【0038】
なお、上記では、アーム103の長手方向(あるいは延材方向)に沿った回転軸心まわりの回転を「回動」と呼び、アーム103の長手方向(あるいは延材方向)に略垂直な回転軸心まわりの回転を「旋回」と呼んで区別している。
【0039】
<3.上位コントローラ及びロボットコントローラの機能構成>
次に、
図3を参照しつつ、上位コントローラ30及びロボットコントローラ20の機能構成の一例について説明する。
【0040】
上位コントローラ30は、例えばプログラマブルロジックコントローラ(PLC)やパーソナルコンピュータ(PC)等により構成される。上位コントローラ30は、画像処理部31と、格納部32と、データ補正部33とを有する。
【0041】
格納部32には、第1ロボット10A〜第4ロボット10Dの動作を規定する教示データ等が各ロボットごとに格納されている。前述のように、各ワークWではワーク座標系において作業目標となる教示点の座標がそれぞれ定められており、それらが各ロボット10A〜10Dに対応するロボット座標系にそれぞれ変換されて、教示データとして格納部32に格納されている。なお、ワーク座標系からロボット座標系への変換は、ワークWが所定の基準位置に所定の基準姿勢で静止された状態であるとして行われる。
【0042】
画像処理部31は、カメラ3による3つのマーク7a〜7cの検出結果に基づいて、所定の3次元測定処理を実行することにより、ワークWの3次元位置及び姿勢を測定する。このように、カメラ3及び画像処理部31によりワークWの位置を検出することで、搬送コンベア2のモータ(図示省略)のエンコーダが不要となるので、搬送コンベア2の低コスト化が可能である。
【0043】
データ補正部33は、格納部32から読み出した教示データを、ロボット10A〜10Dごとに、画像処理部31の測定結果に基づいて補正する。本実施形態では、移動中のワークWに対して作業を行うので、ワークWの位置は常に変動している。このため、データ補正部33は比較的短い周期で教示データを逐次補正し、各ロボット10A〜10Dのロボットコントローラ20に位置指令としてそれぞれ送信する。また、移動中のワークWの位置や姿勢は、搬送コンベア2の機械的誤差等により基準位置からの位置ずれが生じる場合があるが、当該データ補正部33で教示データを画像処理部31の測定結果に基づいて補正することにより、上記位置ずれの影響を低減することができる。以上の結果、ロボット本体11は、移動するワークWに対しエンドエフェクタ12を追従させながら所定の作業を精度よく行うことができる。
【0044】
第1ロボット10A〜第4ロボット10Dのそれぞれのロボットコントローラ20は、第1制御処理部21と、第2制御処理部22と、第3制御処理部23とを有する。なお、
図3では煩雑防止のため、第2ロボット10B〜第4ロボット10Dのロボットコントローラ20における各制御処理部21〜23の図示を省略している。
【0045】
また、第1ロボット10A〜第4ロボット10Dのそれぞれのロボット本体11は、上述した7つの関節部を駆動する7つのサーボモータ24、すなわち、第1サーボモータ24a、第2サーボモータ24b、第3サーボモータ24c、第4サーボモータ24d、第5サーボモータ24e、第6サーボモータ24f、第7サーボモータ24gを有している。なお、
図3では煩雑防止のため、第2ロボット10B〜第4ロボット10Dのロボット本体11における各サーボモータ24a〜24gの図示を省略している。
【0046】
ロボットコントローラ20の第1制御処理部21、第2制御処理部22、第3制御処理部23の制御内容は、第1ロボット10A〜第4ロボット10Dにおいて共通している。
【0047】
第1制御処理部21は、上位コントローラ30から受信した補正後の教示データ(位置指令)に基づいて、複数のサーボモータ24a〜24gを制御する。これにより、第1制御処理部21は、ロボット本体11の先端のエンドエフェクタ12を移動している状態のワークWに追従させて、移動中のワークWに対して上記所定の作業を行うように、ロボット本体11を制御する。
【0048】
ここで、前述のように所定の作業は、移動している状態のワークWとエンドエフェクタ12とが一時的に接触する工程を含む作業であり、例えば、エンドエフェクタ12がワークWを把持することにより連結される工程を含む作業である。このため、ワークWとエンドエフェクタ12とが連結された結合状態において、エンドエフェクタ12とワークWとの間で移動経路方向に速度差が生じると、エンドエフェクタ12がワークWから外力を受ける。また、本実施形態のように複数のロボット10A〜10Dが連携して作業を行う場合、ロボット10A〜10Dのうち2台以上のロボットとワークWとの結合状態においてロボット相互間で移動経路方向に速度差が生じると、エンドエフェクタ12がワークWから外力を受ける。
【0049】
そこで、第2制御処理部22は、エンドエフェクタ12が受ける外力の大きさを各サーボモータ24a〜24gのトルク(電流値等)の変化により検出し、エンドエフェクタ12がワークWから所定の大きさ以上の外力を受けた場合に、ロボット10の故障やワークWの変形、破損等を防止するための所定の処理を行う。このように、各サーボモータ24a〜24gのトルク(電流値等)によりエンドエフェクタ12が受ける外力を検出することで、ひずみセンサ等の力センサが不要となるので、ロボット10の低コスト化が可能となる。
【0050】
第2制御処理部22は、上記の所定の処理として、エンドエフェクタ12がワークWから受ける外力を軽減させる動作(外力に倣う動作)をロボット本体11に行わせるように、複数のサーボモータ24a〜24gのトルクを制御する処理(いわゆるサーボフロート)を実行する。例えば、エンドエフェクタ12がワークWから移動方向Arに押されるように外力を受けた場合、エンドエフェクタ12をその押圧方向に倣うように動作させる。あるいは、エンドエフェクタ12がワークWから移動方向Arとは反対向きに引っ張られるように外力を受けた場合、エンドエフェクタ12をその引っ張り方向に倣うように動作させる。
【0051】
なお、上記サーボフロートは動作方向を限定せずに行われてもよいが、エンドエフェクタ12が移動中のワークWから受ける外力は、エンドエフェクタ12とワークWとの間の移動経路方向の速度差や、ロボット相互間の移動経路方向の速度差に起因する場合が多いので、主として移動経路に沿う方向の力となる。そこで、第2制御処理部22は、上記外力を軽減させる動作を移動経路に沿う方向(移動方向Ar又はその反対方向)に限定してロボット本体11に行わせてもよい(いわゆるリニアサーボフロート)。
【0052】
なお、第2制御処理部22は、上記サーボフロート又はリニアサーボフロートに加えて又は代えて、例えばロボットに作業を停止させたり、アラームを出力する等の処理を行ってもよい。
【0053】
第3制御処理部23は、移動している状態の1つのワークWに対し、例えばロボット10Aが移動経路に沿って配置された他のロボット10B〜ロボット10Dと連携して上記所定の作業を行うように、ロボット10Aのロボット本体11を制御する。ロボット10B〜10Dについても同様であり、いずれのロボットコントローラ20においても、第3制御処理部23は、他のロボットと連携して上記所定の作業を行うように、ロボット本体11を制御する。これにより、各ロボット10A〜10Dが互いに干渉することなく、効率的に所定の作業を実行できる。
【0054】
また、第3制御処理部23は、移動している状態の1つのワークWに対し、例えばロボット10Aが移動経路に沿って配置された作業可能範囲の異なる他のロボット10Bと連携して所定の作業を行うように、ロボット10Aのロボット本体11を制御する。ロボット10B〜10Dについても同様であり、いずれのロボットコントローラ20においても、第3制御処理部23は、作業可能範囲の異なる他のロボットと連携して上記所定の作業を行うように、ロボット本体11を制御する。これにより、複数のロボットが相互に作業範囲を補完しながら、ワークWの広範囲に対して作業を行うことができる。
【0055】
なお、上述した上位コントローラ30における画像処理部31、データ補正部33等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述したロボットコントローラ20における各制御処理部21〜23等における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部(例えば1つの処理部)で処理されてもよく、また、更に細分化された処理部により処理されてもよい。さらに、上位コントローラ30とロボットコントローラ20の処理の分担は上記の例に限定されるものではなく、例えば画像処理部31、データ補正部33等による処理をロボットコントローラ20で行ってもよいし、各制御処理部21〜23等における処理を上位コントローラ30で行ってもよい。また、ロボットコントローラ20は、各サーボモータ24に駆動電力を給電する部分(インバータ等)のみ実際の装置により実装され、その他の機能は後述するCPU901(
図5参照)が実行するプログラムにより実装されてもよい。また、各制御処理部21〜23の一部又は全部がASICやFPGA、その他の電気回路等の実際の装置により実装されてもよい。
【0056】
<4.ロボットコントローラの制御内容>
次に、
図4を参照しつつ、ワークWの製造時にロボットコントローラ20が実行する制御内容の一例について説明する。ここでは、第1ロボット10Aにおけるロボットコントローラ20の制御内容について説明するが、他の第2ロボット10B、第3ロボット10C、第4ロボット10Dのロボットコントローラ20についても同様である。
【0057】
ステップS10では、ロボットコントローラ20は、第1制御処理部21及び第3制御処理部23により、第1ロボット10Aの複数のサーボモータ24a〜24gを制御し、移動している状態のワークWに対してエンドエフェクタ12を追従させながら、他の第2ロボット10B〜第4ロボット10Dと連携して所定の作業を実行する。
【0058】
ステップS20では、ロボットコントローラ20は、第2制御処理部22により、エンドエフェクタ12が受ける外力が予め定めたしきい値以上であるか否かを判定する。エンドエフェクタ12が受ける外力は、複数のサーボモータ24a〜24gのトルク(電流値)の変化を監視することにより検出できる。エンドエフェクタ12が受ける外力がしきい値以上である場合には(S20:YES)、次のステップS30に移る。一方、エンドエフェクタ12が受ける外力がしきい値未満である場合には(S20:NO)、後述のステップS40に移る。
【0059】
ステップS30では、ロボットコントローラ20は、第2制御処理部22により複数のサーボモータ24a〜24gを制御し、ロボット本体11にエンドエフェクタ12が受ける外力を軽減させる動作を実行させる。前述のように、この外力を軽減させる動作は方向を限定せずに行ってもよいし、一方向に限定して行ってもよい。その後、ステップS40に移る。
【0060】
ステップS40では、ロボットコントローラ20は、第1制御処理部21によりワークWに対する所定の作業が完了したか否かを判定する。ワークWに対する所定の作業が完了したか否かは、例えば上位コントローラ30からの教示データの受信(払い出し)が終了したか否か等で判定することができる。作業が完了していない場合には(S40:NO)、上記ステップS10に戻って同様の手順を繰り返す。作業が完了している場合には(S40:YES)、本フローを終了する。
【0061】
<5.実施形態の効果>
以上説明したように、本実施形態のロボット10A〜10Dは、ワークWの移動経路の近傍に配置されたロボット本体11と、ロボット本体11を制御するロボットコントローラ20と、を有し、ロボットコントローラ20は、移動している状態のワークWに対して所定の作業を行うように、ロボット本体11を制御する第1制御処理部21と、ロボット本体11がワークWから所定の大きさ以上の外力を受けた場合に、所定の処理を行う第2制御処理部22とを有する。これにより、次の効果を奏する。
【0062】
すなわち、一般にワークWの製造ラインにLおいては、ワークWの移動経路に沿って移動と停止が間欠的に行われ、ワークWの停止位置の近傍に配置された複数のロボットにより、停止しているワークWに対して所定の作業が行われる。この場合、例えばワークWの種類(大きさや形状等)によっては、ワークWが作業可能範囲外である等により稼動しないロボットが生じる可能性があり、稼働率が低下する原因となりうる。
【0063】
本実施形態では、ロボット10A〜10Dが移動中のワークWに対して所定の作業を行う。これにより、ワークWを停止させることなく移動経路に沿って配置された各ロボット10A〜10Dにより順次作業を行うことができるので、稼動しないロボットを低減できる。したがって、稼働率を向上できる。
【0064】
また、ロボット10A〜10Dが移動中のワークWに対して作業を行う場合、ロボット本体11とワークWとの間の移動経路方向の速度差等に起因してロボット本体11がワークWから外力を受ける場合がある。本実施形態では、この外力が所定の大きさ以上である場合に所定の処理を実行し、例えばロボット本体11を外力に倣うように動作させたり、作業を停止したり、アラームを出力する等の処理を行うことにより、ロボット10の故障やワークWの変形、破損等を防止できる。したがって、信頼性を向上できる。
【0065】
また、本実施形態では特に、ロボット本体11は、複数の関節部を駆動する複数のサーボモータ24a〜24gを有しており、第2制御処理部22は、上記所定の処理として、ワークWから受ける外力を軽減させる動作をロボット本体11に行わせるように複数のサーボモータ24a〜24gを制御する処理を行う。
【0066】
これにより、ロボット本体11の位置と姿勢をワークWから受ける外力に倣うように柔軟に制御することができる。したがって、ロボット10の故障やワークWの変形、破損等を生じることなく、移動中のワークWに対して所定の作業を行うことが可能となる。
【0067】
また、本実施形態では特に、第2制御処理部22は、ロボット本体11が、ワークWから受ける外力を軽減させる動作を移動経路に沿う方向に対して行うように、複数のサーボモータ24a〜24gを制御する処理を行う。これにより、次の効果を奏する。
【0068】
すなわち、ロボット本体11が移動中のワークWから受ける外力は、ロボット本体11とワークWとの間の移動経路方向の速度差や、ロボット相互間の移動経路方向の速度差に起因する場合が多いので、主として移動経路に沿う方向の力となる。したがって、本実施形態によれば、ワークWから受ける外力を軽減させる動作を一方向(移動経路に沿う方向)に対してのみ行うことにより、全方向に対して同様の処理を行う場合に比べて制御処理の負担を軽減しつつ、ロボット10A〜10Dの故障やワークWの変形、破損等を防止できる。
【0069】
また、本実施形態では特に、ロボット10(例えば第1ロボット10A)のロボットコントローラ20は、移動している状態の1つのワークWに対し、移動経路に沿って配置された他のロボット10(例えば第2ロボット10B〜第4ロボット10D)と連携して上記所定の作業を行うようにロボット本体11を制御する第3制御処理部23を有する。これにより、次の効果を奏する。
【0070】
すなわち、本実施形態では、移動経路に沿って配置された複数のロボット10A〜10Dが連携して相互の干渉を回避しつつ、移動中の1つのワークWに対して所定の作業を行うので、作業効率を向上できる。しかしながら、この場合には、ロボット本体11とワークWとの間の速度差だけでなく、ロボット相互間における移動経路方向の速度差等によっても、ロボット本体11がワークWから外力を受ける場合が生じうる。このように、本実施形態ではロボット本体11がワークWから外力を受ける可能性が高まるので、所定の処理の実行による、ロボット10A〜10Dの故障やワークWの変形、破損等の防止効果の有効性を高めることができる。
【0071】
また、本実施形態では特に、ロボット10(例えば第1ロボット10A)の第3制御処理部23は、移動している状態の1つのワークWに対し、移動経路に沿って配置された作業可能範囲の異なる他のロボット10(例えば第2ロボット10B)と連携して所定の作業を行うようにロボット本体11を制御する。
【0072】
これにより、作業可能範囲の異なる複数のロボットにより相互に作業範囲を補完しながら、ワークWの広範囲に対して作業を行うことができる。
【0073】
また、本実施形態では特に、第1制御処理部21は、上記所定の作業として、移動している状態のワークWとロボット本体11の端部とが一時的に接触する工程を含む作業を行うように、ロボット本体11を制御する。これにより、次の効果を奏する。
【0074】
すなわち、ロボット本体11が移動中のワークWに対してこのような作業を行う場合、ワークWとロボット本体11の端部とが連結された結合状態においてロボット本体11とワークWとの間で移動経路方向に速度差が生じるとロボット本体11がワークWから外力を受ける。また、複数のロボット10A〜10Dがこのような作業を行う場合、ロボット10A〜10Dのうちの2台以上とワークWとの結合状態においてロボット相互間で移動経路方向に速度差が生じるとロボット本体11がワークWから外力を受ける。このように、本実施形態ではロボット本体11がワークWから外力を受ける可能性が高まるので、所定の処理の実行による、ロボット10(10A〜10D)の故障やワークWの変形、破損等の防止効果の有効性を高めることができる。
【0075】
また、本実施形態では特に、ロボット本体11は、7つの関節部を備えた7軸ロボットである。
【0076】
これにより、6軸以下のロボットに比べてより柔軟且つ自在に姿勢を変更することが可能となり、作業可能範囲を拡大することができる。その結果、ロボットシステム1の設置スペースの小型化が可能であると共に、ワークWに対してより広範囲に作業を行うことができる。
【0077】
また、本実施形態では特に、ロボット本体11は、ワークWに対して上記所定の作業を行うためのエンドエフェクタ12を有しており、第2制御処理部22は、エンドエフェクタ12がワークWから所定の大きさ以上の外力を受けた場合に、上記所定の処理を行う。これにより、次の効果を奏する。
【0078】
すなわち、本実施形態では、エンドエフェクタ12として、ワークWに対して例えばリベット打ちや釘打ち、スポット溶接、ステープル固定、ボルト締め等の、移動中のワークWとエンドエフェクタ12とが一時的に接触する工程を含む作業を行うためのものが用いられる。このような作業を行う場合、結合状態においてエンドエフェクタ12とワークWとの間で移動経路方向に速度差が生じるとエンドエフェクタ12がワークWから外力を受ける。また、複数のロボット10A〜10Dがこのような作業を行う場合、2台以上のロボット10のエンドエフェクタ12とワークWとが連結した結合状態においてロボット相互間で移動経路方向に速度差が生じるとエンドエフェクタ12がワークWから外力を受ける。このように、本実施形態ではエンドエフェクタ12がワークWから外力を受ける可能性が高まるので、上記所定の処理の実行による、ロボット10の故障やワークWの変形、破損等の防止効果の有効性を高めることができる。
【0079】
<6.コントローラのハードウェア構成例>
次に、
図5を参照しつつ、上記で説明したロボットコントローラ20のハードウェア構成例について説明する。なお、上位コントローラ30についても同様のハードウェア構成とすることができる。
【0080】
図5に示すように、ロボットコントローラ20は、例えば、CPU901と、ROM903と、RAM905と、ASIC又はFPGA等の特定の用途向けに構築された専用集積回路907と、入力装置913と、出力装置915と、記録装置917と、ドライブ919と、接続ポート921と、通信装置923とを有する。これらの構成は、バス909や入出力インターフェース911を介し相互に信号を伝達可能に接続されている。
【0081】
プログラムは、例えば、ROM903やRAM905、記録装置917等に記録しておくことができる。記録装置917は例えばハードディスク等であり、前述の格納部32等として機能する。
【0082】
また、プログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のCD・MOディスク・DVD等の光ディスク、半導体メモリ等のリムーバブルな記録媒体925に、一時的又は非一時的(永続的)に記録しておくこともできる。このような記録媒体925は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体925に記録されたプログラムは、ドライブ919により読み出されて、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0083】
また、プログラムは、例えば、ダウンロードサイト・他のコンピュータ・他の記録装置等(図示せず)に記録しておくこともできる。この場合、プログラムは、LANやインターネット等のネットワークNWを介し転送され、通信装置923がこのプログラムを受信する。そして、通信装置923が受信したプログラムは、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0084】
また、プログラムは、例えば、適宜の外部接続機器927に記録しておくこともできる。この場合、プログラムは、適宜の接続ポート921を介し転送され、入出力インターフェース911やバス909等を介し上記記録装置917に記録されてもよい。
【0085】
そして、CPU901が、上記記録装置917に記録されたプログラムに従い各種の処理を実行することにより、上記の第1制御処理部21、第2制御処理部22、第3制御処理部23等による処理が実現される。この際、CPU901は、例えば、上記記録装置917からプログラムを直接読み出して実行してもよいし、RAM905に一旦ロードした上で実行してもよい。更にCPU901は、例えば、プログラムを通信装置923やドライブ919、接続ポート921を介し受信する場合、受信したプログラムを記録装置917に記録せずに直接実行してもよい。
【0086】
また、CPU901は、必要に応じて、例えばマウス・キーボード・マイク(図示せず)等の入力装置913から入力する信号や情報に基づいて各種の処理を行ってもよい。
【0087】
そして、CPU901は、上記の処理を実行した結果を、例えば表示装置や音声出力装置等の出力装置915から出力してもよく、さらにCPU901は、必要に応じてこの処理結果を通信装置923や接続ポート921を介し送信してもよく、上記記録装置917や記録媒体925に記録させてもよい。
【0088】
なお、以上の説明において、「垂直」「平行」「平面」等の記載がある場合には、当該記載は厳密な意味ではない。すなわち、それら「垂直」「平行」「平面」とは、設計上、製造上の公差、誤差が許容され、「実質的に垂直」「実質的に平行」「実質的に平面」という意味である。
【0089】
また、以上の説明において、外観上の寸法や大きさ、形状、位置等が「同一」「同じ」「等しい」「異なる」等の記載がある場合は、当該記載は厳密な意味ではない。すなわち、それら「同一」「同じ」「等しい」「異なる」とは、設計上、製造上の公差、誤差が許容され、「実質的に同一」「実質的に同じ」「実質的に等しい」「実質的に異なる」という意味である。
【0090】
また、以上既に述べた以外にも、上記実施形態による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。