(加工システム)
以下、多関節ロボットが適用された加工システムの一例について説明する。加工システム10は、図1に示すように、複数のベース20と、そのベース20に設けられた複数(本実施形態では10個)の作業機モジュール30と、多関節ロボット(以下、ロボットと称する場合もある。)70(例えば、図2参照)と、を備えている。以下の説明では、加工システム10に関する「前後」,「左右」,「上下」を、加工システム10の正面側から見た場合における前後,左右,上下として扱うこととする。
作業機モジュール30は、複数種類あり、旋盤モジュール30A、ドリミルモジュール30B、加工前ストックモジュール30C、加工後ストックモジュール30D、検測モジュール30E、仮置モジュール30Fなどである。
(旋盤モジュール)
旋盤モジュール30Aは、旋盤がモジュール化されたものである。旋盤は、加工対象物であるワークWを回転させて、固定した切削工具43aで加工する工作機械である。旋盤モジュール30Aは、図2に示すように、可動ベッド41、主軸台42、工具台43、工具台移動装置44、加工室45、走行室46及びモジュール制御装置47を有している。
可動ベッド41は、複数の車輪41aを介してベース20に設けられたレール(不図示)上を前後方向に沿って移動する。主軸台42は、ワークWを回転可能に保持するものである。主軸台42は、前後方向に沿って水平に配置された主軸42aを回転可能に支持する。主軸42aの先端部にはワークWを把持するチャック42bが設けられる。主軸42aは、回転伝達機構42cを介してサーボモータ42dによって回転駆動される。
工具台43は、切削工具43aに送り運動を与える装置である。工具台43は、いわゆるタレット型の工具台であり、ワークWを切削する複数の切削工具43aが装着される工具保持部43bと、工具保持部43bを回転可能に支持するとともに所定の切削位置に位置決め固定可能である回転駆動部43cと、を有している。
工具台移動装置44は、工具台43ひいては切削工具43aを上下方向(Z軸方向)及び前後方向(X軸方向)に沿って移動させる装置である。工具台移動装置44は、工具台43をZ軸方向に沿って移動させるZ軸駆動装置44aと、工具台43をX軸方向に沿って移動させるX軸駆動装置44bとを有している。
Z軸駆動装置44aは、可動ベッド41に設けられたコラム48に対して上下方向に沿って摺動可能に取り付けられたZ軸スライダ44a1と、Z軸スライダ44a1を移動させるためのサーボモータ44a2とを有している。X軸駆動装置44bは、Z軸スライダ44a1に対して前後方向に沿って摺動可能に取り付けられたX軸スライダ44b1と、X軸スライダ44b1を移動させるためのサーボモータ44b2とを有している。
加工室45は、ワークWを加工するための部屋(空間)であり、加工室45内には、チャック42b、工具台43(切削工具43a、工具保持部43b及び回転駆動部43c)が収容されている。加工室45は、前壁45a、天井壁45b、左右壁及び後壁(何れも不図示)によって区画されている。前壁45aには、ワークWが入出される入出口45a1が形成されている。入出口45a1は、図示しないモータによって駆動するシャッタ45cによって開閉される。尚、シャッタ45cの開状態(開位置)を実線にて、閉状態(閉位置)を二点鎖線にて示す。
走行室46は、加工室45の入出口45a1に臨んで設けられた部屋(空間)である。走行室46は、前壁45a及び前面パネル31によって区画されている。走行室46内は、後述するロボット70が走行可能である。モジュール制御装置47は、回転駆動部43c、工具台移動装置44などを駆動させる装置である。
(ドリミルモジュール)
ドリミルモジュール30Bは、ドリルによる孔開けやミーリング加工等を行うマシニングセンタがモジュール化されたものである。マシニングセンタは、固定したワークWに対し、回転する工具(回転工具)を押し当てて加工する工作機械である。ドリミルモジュール30Bは、図3に示すように、可動ベッド51、主軸ヘッド52、主軸ヘッド移動装置53、ワークテーブル54、加工室55、走行室56及びモジュール制御装置57を有している。
可動ベッド51は、複数の車輪51aを介してベース20に設けられたレール(不図示)上を前後方向に沿って移動する。主軸ヘッド52は、主軸52aを回転可能に支持する。主軸52aの先端(下端)部には、ワークWを切削する切削工具52b(例えば、ドリルやエンドミル等)が装着可能である。主軸52aは、サーボモータ52cによって回転駆動される。
主軸ヘッド移動装置53は、主軸ヘッド52ひいては切削工具52bを上下方向(Z軸方向)及び前後・左右方向(X-Y軸方向)に沿って移動させる装置である。主軸ヘッド移動装置53は、主軸ヘッド52をZ軸方向に沿って移動させるZ軸駆動装置53aと、主軸ヘッド52をX-Y軸方向に沿って移動させるX-Y軸駆動装置53bとを有している。X-Y軸駆動装置53bは、可動ベッド51に設けられた本体58に対して前後・左右方向に沿って摺動可能に取り付けられている。Z軸駆動装置53aは、X-Y軸駆動装置53bに対して上下方向に沿って摺動可能に取り付けられている。
ワークテーブル54は、ワークWを固定保持する。ワークテーブル54は、本体58の前面に設けられたワークテーブル回転装置54aに固定されている。ワークテーブル回転装置54aは、前後方向に沿って延びる軸線まわりに回転駆動される。これにより、ワークWを所望の角度に傾斜させた状態で切削工具52bにより加工することができる。尚、ワークテーブル54は、本体58の前面に直接固定してもよい。また、ワークテーブル54は、ワークWを把持するチャック54bが設けられている。
加工室55は、ワークWを加工するための部屋(空間)であり、加工室55内には、主軸52a、切削工具52b、ワークテーブル54、ワークテーブル回転装置54aが収容されている。加工室55は、前壁55a、天井壁55b、左右壁及び後壁(何れも不図示)によって区画されている。前壁55aには、ワークWが入出される入出口55a1が形成されている。入出口55a1は、図示しないモータによって駆動するシャッタ55cによって開閉される。尚、シャッタ55cの開状態(開位置)を破線にて、閉状態(閉位置)を二点鎖線にて示す。
走行室56は、加工室55の入出口55a1に臨んで設けられた部屋(空間)である。走行室56は、前壁55a及び前面パネル31によって区画されている。走行室56内は、後述するロボット70が走行可能である。尚、隣り合う走行室46(または56)は、加工システム10の並設方向全長に亘って連続する空間を形成する。また、モジュール制御装置57は、主軸52a(サーボモータ52c)、主軸ヘッド移動装置53などを駆動させる装置である。
(ストックモジュール、検測モジュール)
加工前ストックモジュール30Cは、加工システム10にワークWを投入するモジュール(ワーク投入モジュール。また、単に投入モジュールと称する場合もある。)である。加工前ストックモジュール30Cは、図4に示すように、外装パネル61、ワークプール62、投入テーブル63、リフト64、およびシリンダ装置65を有している。外装パネル61は、加工前ストックモジュール30Cの前部を覆うパネルであり、内部にストック室66が設けられている。ストック室66内には、投入テーブル63が収容されている。ストック室66は、外装パネル61の側面に設けられた入出口61aを介して隣接する作業機モジュール30の走行室46,56に連通(開口)している。
ワークプール62は、前後方向(X軸方向)に延設されて、上下方向に重ねられる複数の収納段62a(例えば、本実施形態では4段)を有している。収納段62aは複数のワークWが収容可能である。投入テーブル63は、ワークWが載置可能であり、ワークプール62の前後方向における前端の上方側に設けられている。投入テーブル63は、ロボット70にワークWを受け取らせる位置(つまり投入位置)に配置されている。
リフト64は、ワークプール62の前方に設けられている。リフト64は、ワークプール62からワークWを1つずつ受け取り、投入テーブル63の高さまで搬送する。シリンダ装置65は、ワークプール62の前方上方に設けられている。シリンダ装置65は、リフト64上のワークWを投入テーブル63上まで押し出す。
加工後ストックモジュール30Dは、加工システム10によって実施されるワークWに対する一連の加工が完了した完成品を収納して排出するモジュール(ワーク排出モジュール。また単に排出モジュールと称する場合もある。)である。加工後ストックモジュール30Dも、投入テーブル63と同様にワークWを載置して搬出するための搬出テーブル又は搬出コンベア(いずれも不図示)を有している。搬出テーブル又は搬出コンベアは、ストック室66と同様のストック室(不図示)に収容されている。
検測モジュール30Eは、ワークW(例えば加工後のワークW)を検測するものである。仮置モジュール30Fは、加工システム10による一連の加工工程中において、ワークWを仮置きするためのものである。検測モジュール30E及び仮置モジュール30Fは、旋盤モジュール30A及びドリミルモジュール30Bと同様に、走行室(不図示)を有している。
(ロボット)
ロボット70は、図5に示すように、走行可能であり、走行部71、及び本体部72を有している。
(走行部)
走行部71は、走行室46,56内を左右方向(作業機モジュール30の並設方向:Y軸方向)に沿って走行可能である。走行部71は、主として図5に示すように、走行駆動装置71bによって走行部本体71aを左右方向に沿って直動するための走行駆動軸(以下、X軸と称する場合もある。尚、このX軸はロボット制御系のX軸であり、加工システム10のX軸方向とは異なる。)71cを有している。走行部本体71aの背部(後部)には、走行駆動軸71cのスライダ71c2が取り付けられている。走行駆動軸71cは、ベース20の前側面に設けられて水平方向(左右方向)に沿って延在するレール71c1と、レール71c1に摺動可能に係合する複数のスライダ71c2とから構成されている。
走行部本体71aは走行駆動装置71bが設けられている。走行駆動装置71bは、サーボモータ71b1、駆動力伝達機構(不図示)、ピニオン71b2、ラック71b3などから構成される。サーボモータ71b1の回転出力によってピニオン71b2が回転する。ピニオン71b2はラック71b3に歯合する。ラック71b3は、ベース20の前側面に設けられて水平方向(左右方向)に沿って延在する。
サーボモータ71b1は、ロボット制御装置90(図7参照。以下、制御装置90と称する場合もある。)に接続されている。サーボモータ71b1は、制御装置90からの指示に従って回転駆動され、ピニオン71b2がラック71b3を転動する。これにより、走行部本体71aは、走行室46,56内を左右方向に沿って走行可能である。また、サーボモータ71b1は、サーボモータ71b1に流れる電流を検知する電流センサ71b4(図7参照)が内蔵されている。サーボモータ71b1は、サーボモータ71b1の位置(例えば、回転角度)を検知する位置センサ(例えば、レゾルバ、エンコーダ)71b5(図7参照)が内蔵されている。電流センサ71b4及び位置センサ71b5の検出結果は、制御装置90に送信されている。
(本体部)
本体部72は、主として図5,6に示すように、旋回テーブル(テーブル)73と、旋回テーブル73に設けられたアーム部74とから構成されている。
(旋回テーブル)
旋回テーブル73は、図6に示すように、旋回テーブル73に設けられたテーブル駆動軸(以下、D軸と称する場合もある。)73aと、テーブル駆動軸73aを回転駆動するテーブル駆動装置73bとを有している。テーブル駆動装置73bは、走行部本体71aに設けられている。テーブル駆動装置73bは、テーブル駆動軸73aに設けられた歯車(不図示)、この歯車に歯合するピニオン(不図示)、サーボモータ73b1、サーボモータ73b1の出力をピニオンに伝達する駆動力伝達機構(不図示)などから構成されている。
サーボモータ73b1は、制御装置90(図7参照)に接続されている。サーボモータ73b1は、制御装置90からの指示に従って回転駆動され、ピニオンがテーブル駆動軸73aを回転する。これにより、旋回テーブル73は、テーブル駆動軸73aの回転軸まわりに回転可能である。また、サーボモータ73b1は、サーボモータ73b1に流れる電流を検知する電流センサ73b2(図7参照)が内蔵されている。サーボモータ73b1は、サーボモータ71b1と同様に、サーボモータ73b1の位置を検知する位置センサ73b3(図7参照)が内蔵されている。電流センサ73b2及び位置センサ73b3の検出結果は、制御装置90に送信されている。
(反転装置)
旋回テーブル73は、図5に示すように、ワークWを反転する反転装置76が設けられている。反転装置76は、ワークWを保持可能であるワーク把持部(以下、単に把持部と称する場合もある。)85から受け取ったワークWを反転し、反転したワークWを把持部85に受け渡すことができる。反転装置76は、図5に示すように、取付台76a、回転装置76b、把持装置76c、一対の把持爪76d,76dから構成されている。
(アーム部)
アーム部74は、駆動軸(またはアーム)が直列に並んでいる、いわゆるシリアルリンク型のアームである。アーム部74は、主として図5,6に示すように、第1アーム81、第1アーム駆動軸(以下、A軸と称する場合もある。)82、第2アーム83、第2アーム駆動軸(以下、B軸と称する場合もある。)84、把持部85、及び把持部駆動軸(以下、C軸と称する場合もある。)86から構成されている。
主として図5,6に示すように、第1アーム81は、棒状に形成されており、旋回テーブル73に第1アーム駆動軸82を介して回転可能に連結されている。具体的には、第1アーム駆動軸82は、旋回テーブル73上に設けられた支持部材73cに回転可能に支持されている。第1アーム駆動軸82は、第1アーム81の基端部が固定されている。第1アーム駆動軸82は、第1アーム駆動装置81bにより回転駆動される。第1アーム駆動装置81bは、支持部材73cに設けられたサーボモータ81b1、サーボモータ81b1の出力を第1アーム駆動軸82に伝達する駆動力伝達機構(不図示)などから構成されている。
サーボモータ81b1は、制御装置90(図7参照)に接続されている。サーボモータ81b1は、制御装置90からの指示に従って回転駆動され、第1アーム駆動軸82を回転する。これにより、第1アーム81は、第1アーム駆動軸82の回転軸まわりに回転可能である。また、サーボモータ81b1は、サーボモータ81b1に流れる電流を検知する電流センサ81b2(図7参照)が内蔵されている。サーボモータ81b1は、サーボモータ71b1と同様に、サーボモータ81b1の位置を検知する位置センサ81b3(図7参照)が内蔵されている。電流センサ81b2及び位置センサ81b3の検出結果は、制御装置90に送信されている。
主として図5,6に示すように、第2アーム83は、棒状に形成されており、第1アーム81に第2アーム駆動軸84を介して回転可能に連結されている。具体的には、第2アーム駆動軸84は、第1アーム81の先端部に回転可能に支持されている。第2アーム駆動軸84は、第2アーム83の基端部が固定されている。第2アーム駆動軸84は、第2アーム駆動装置83bにより回転駆動される。第2アーム駆動装置83bは、第1アーム81に設けられたサーボモータ83b1、サーボモータ83b1の出力を第2アーム駆動軸84に伝達する駆動力伝達機構(不図示)などから構成されている。
サーボモータ83b1は、制御装置90(図7参照)に接続されている。サーボモータ83b1は、制御装置90からの指示に従って回転駆動され、第2アーム駆動軸84を回転する。これにより、第2アーム83は、第2アーム駆動軸84の回転軸まわりに回転可能である。また、サーボモータ83b1は、サーボモータ83b1に流れる電流を検知する電流センサ83b2(図7参照)が内蔵されている。サーボモータ83b1は、サーボモータ71b1と同様に、サーボモータ83b1の位置を検知する位置センサ83b3(図7参照)が内蔵されている。電流センサ83b2及び位置センサ83b3の検出結果は、制御装置90に送信されている。
主として図5,6に示すように、把持部85は、第2アーム83に把持部駆動軸86を介して回転可能に連結されている。具体的には、把持部駆動軸86は、第2アーム83の先端部に回転可能に支持されている。把持部駆動軸86は、把持部85の把持部本体85aが固定されている。把持部駆動軸86は、把持部駆動装置85bにより回転駆動される。把持部駆動装置85bは、第2アーム83に設けられたサーボモータ85b1、サーボモータ85b1の出力を把持部駆動軸86に伝達する駆動力伝達機構85b2などから構成されている。尚、把持部本体85aは、ワークWをそれぞれ把持する一対のチャック(ロボットチャック)85c,85cが着脱可能である。一対のロボットチャック85c,85cは、把持部本体85aの前面及び前面の反対側の後面に設けられている。
サーボモータ85b1は、制御装置90(図7参照)に接続されている。サーボモータ85b1は、制御装置90からの指示に従って回転駆動され、把持部駆動軸86を回転する。これにより、把持部本体85aひいては把持部85は、把持部駆動軸86の回転軸まわりに回転可能である。また、サーボモータ85b1は、サーボモータ85b1に流れる電流を検知する電流センサ85b3(図7参照)が内蔵されている。サーボモータ85b1は、サーボモータ71b1と同様に、サーボモータ85b1の位置を検知する位置センサ85b4(図7参照)が内蔵されている。電流センサ85b3及び位置センサ85b4の検出結果は、制御装置90に送信されている。
尚、上述した走行駆動軸71c、テーブル駆動軸73a、第1アーム駆動軸82、第2アーム駆動軸84、及び把持部駆動軸86が「複数の軸」である。本実施形態では軸の数は5軸であるが、複数であればよい。また、走行駆動装置71b、テーブル駆動装置73b、第1アーム駆動装置81b、第2アーム駆動装置83b、及び把持部駆動装置85bが「駆動装置」である。本実施形態では駆動装置の数は5つであるが、複数であればよい。
また、本体部72が走行駆動軸71cによって移動される「被移動体」であり、旋回テーブル73がテーブル駆動軸73aによって移動(回動)される「被移動体」である。また、第1アーム81が第1アーム駆動軸82によって移動(回動)される「被移動体」であり、第2アーム83が第2アーム駆動軸84によって移動(回動)される「被移動体」であり、把持部85及び/又はワークWが把持部駆動軸86によって移動(回動)される「被移動体」である。このように、「被移動体」は、軸に直接接続されその軸によって直接移動されるものである。さらに、「被移動体」は、軸(またはアーム)が直列に並んでいる場合に、軸の先端側に連結された部材であってその軸によって移動されるものも含む。例えば、アーム部74は、走行駆動軸71cによって移動される「被移動体」であり、テーブル駆動軸73aによって移動(回動)される「被移動体」であり、第1アーム駆動軸82によって移動(回動)される「被移動体」である。また、「被移動体」のうち回転されるものは「被回転体」という。「被移動体」には、例えば本体部72のように直線移動される被移動体を含む。
本実施形態では、「制御対象である軸」は、把持部85を駆動する把持部駆動軸86であり、「被移動体」は、ワークW及び/又は把持部85であり、「干渉物」は、ワークWを加工可能な加工室45の前壁45a(または加工室55の前壁55a)である。
(入力装置、表示装置など)
また、加工システム10は、入力装置11、表示装置12、及び記憶装置13(図7参照)をさらに有している。入力装置11は、図1に示すように、作業機モジュール30の前面に設けられており、作業者が各種設定、各種指示などを加工システム10に入力するためのものである。表示装置12は、図1に示すように、作業機モジュール30の前面に設けられており、作業者に対して運転状況など加工システム10の情報を表示するためのものである。記憶装置13は、後述する保持角度θRCaなどを記憶している。
(ロボット制御装置)
制御装置90は、走行駆動装置71bを駆動して走行駆動軸71cを、テーブル駆動装置73bを駆動してテーブル駆動軸73aを、第1アーム駆動装置81bを駆動して第1アーム駆動軸82を、第2アーム駆動装置83bを駆動して第2アーム駆動軸84を、把持部駆動装置85bを駆動して把持部駆動軸86を制御する。制御装置90は、専用の装置を設けてもよいが、作業機モジュール30のモジュール制御装置47、57にて兼用(代用)するようにしてもよい。
制御装置90は、図7に示すように、入力装置11、表示装置12、記憶装置13、各サーボモータ71b1,73b1,81b1,83b1,85b1、各電流センサ71b4,73b2,81b2,83b2,85b3、及び各位置センサ71b5,73b3,81b3,83b3,85b4に接続されている。尚、入力装置11及び表示装置12から、HMI(ヒューマンマシンインターフェース)、マンマシンインターフェースなどの人間と機械とが情報をやり取りする装置が構成される。
制御装置90は、走行駆動軸71c、テーブル駆動軸73a、第1アーム駆動軸82、第2アーム駆動軸84、及び把持部駆動軸86のうち制御対象である軸(本実施形態では把持部駆動軸86)の目標位置を複数設定でき、それら設定された複数の目標位置のうち制御対象である軸の現在位置に最も近い目標位置を選択目標位置として選択し、把持部駆動装置85bを制御して選択目標位置となるように制御対象である軸を駆動する。
制御装置90は、マイクロコンピュータ(不図示)を有しており、マイクロコンピュータは、バスを介してそれぞれ接続された入出力インターフェース、CPU、RAMおよびROM(いずれも不図示)を備えている。CPUは、各種プログラムを実施して、各電流センサ71b4,73b2,81b2,83b2,85b3及び各位置センサ71b5,73b3,81b3,83b3,85b4の検出結果や入力装置11の入力結果を取得したり、表示装置12や各サーボモータ71b1,73b1,81b1,83b1,85b1を制御したりする。RAMは同プログラムの実施に必要な変数を一時的に記憶するものであり、ROMは前記プログラムを記憶するものである。
(X軸駆動動作)
さらに、上述した制御装置90によるロボット70のX軸駆動動作について図8に示すフローチャートに沿って説明する。尚、X軸駆動動作は、ロボット70をロボット制御系のX軸(走行駆動軸)の延設方向、すなわち加工システム10のY軸方向に沿って駆動(移動)させる動作である。
制御装置90は、図8に示すフローチャートを実施する。制御装置90は、ステップS102において、X軸駆動指示が必要であるか否かを判定する。X軸駆動指示は、ロボット70をX軸駆動させる指示である。制御装置90は、ワークWの加工プログラムなどからロボット70のX軸駆動が必要である場合、X軸駆動指示が必要であると判定し、X軸駆動が必要でない場合、X軸駆動指示が必要でないと判定する。
制御装置90は、ロボット70のX軸駆動指示が必要でない場合には(ステップS102にて「NO」)、ステップS102の処理を繰り返し実施する。制御装置90は、X軸駆動指示が必要である場合には(ステップS102にて「YES」)、プログラムをステップS104以降に進めて、X軸71c、D軸73a、A軸82、B軸84及びC軸86を駆動させる。
制御装置90は、ステップS104において、X軸71c、D軸73a、A軸82及びB軸84の現在位置(または現在角度)を読み込む。具体的には、制御装置90は、位置センサ71b5からX軸71cの現在位置を、位置センサ73b3からD軸73aの現在位置を、位置センサ81b3からA軸82の現在位置を、位置センサ83b3からB軸84の現在位置を入力(取得)する。尚、現在位置は、位置センサからの入力値(検出値)でなく、各軸に対する制御指示値または制御指示値の積算値を用いてもよい。
制御装置90は、ステップS106において、X軸71c、D軸73a、A軸82及びB軸84の目標位置(または目標角度)を読み込む。例えば、制御装置90は、記憶装置13から、X軸71cの目標位置、D軸73aの目標位置、A軸82の目標位置、及びB軸84の目標位置を入力(取得)する。X軸71cの目標位置は、例えば、X軸第1ポイントである。X軸第1ポイントは、本実施形態では、ロボット70が対向する作業機モジュール30の左右方向(幅方向)中央に位置するX軸位置である。尚、X軸第1ポイント、並びに、後述するD軸第1ポイント、A軸第1ポイント、B軸第1ポイント、C軸第1ポイント、C軸第2ポイント、RC軸第1ポイント及びRC軸第2ポイントは、記憶装置13に予め記憶されている。
D軸73aの目標位置は、例えば、D軸第1ポイントである。D軸第1ポイントは、本実施形態では、ロボット70が加工室45又は55前に位置している場合、アーム部74の伸びる方向が加工室45又は55の方向となるD軸角度(例えば0度)である。尚、アーム部74の伸びる方向が加工前ストックモジュール30Cを向く場合には、D軸の角度は-90度であり、アーム部74の伸びる方向が加工後ストックモジュール30Dを向く場合には、D軸の角度は90度である。
A軸82の目標位置は、例えば、A軸第1ポイントである。A軸第1ポイントは、本実施形態では、ロボット70がX軸駆動される際に、アーム部74が基本姿勢(図9参照)となるA軸角度(例えば、2.7度)である。また、B軸84の目標位置は、B軸第1ポイントである。B軸第1ポイントは、本実施形態では、ロボット70がX軸駆動する際に、アーム部74が基本姿勢となるB軸角度(例えば、7度)である。例えば、基本姿勢は、ロボット70を上方から視た場合、第1アーム81及び第2アーム83が旋回テーブル73の輪郭内に収まる姿勢である。
ここで、A軸角度θA、B軸角度θB、C軸角度θC、RC軸角度θRC、及びこれらの関係について図10を参照して説明する。
A軸角度θAは、A軸82(ひいてはA軸82の回転軸)を基点として第1アーム81と鉛直線(1点鎖線で示す)又は鉛直面とのなす角度である。B軸角度θBは、B軸84(ひいてはB軸84の回転軸)を基点として第1アーム81と第2アーム83とのなす角度である。C軸角度θCは、C軸86(ひいてはC軸86の回転軸)を基点として第2アーム83と把持部85(ひいてはロボットチャック85c)とのなす角度である。尚、図10では、C軸角度θCは、第2アーム83とロボットチャック85cの軸線方向(実線にて示す)とのなす角度であり、一方のロボットチャック85cのみを図示している。RC軸角度θRC(ワーク角度ともいう。)は、把持部85に保持されているワークWと基準である鉛直線(1点鎖線で示す)又は鉛直面との間で形成される角度である。
図10から明らかなように、C軸86において、A軸角度θA、B軸角度θB、C軸角度θC、及びRC軸角度θRCは、下記数1に示す関係がある。尚、図10に示すB軸84は鉛直線(1点鎖線で示す)又は鉛直面が通過しており、A軸82、B軸84及びC軸86を通過する1点鎖線で示す鉛直線は互いに平行である。
(数1)
θRC=θC-(θB-θA)
=θA-θB+θC
尚、RC軸角度θRCは、把持部85に保持されているワークWと基準である鉛直線と直交する水平線又は水平面との間で形成される角度としてもよい(図10にて破線で示す。)。この場合、A軸角度θA、B軸角度θB、C軸角度θC、及びRC軸角度θRCは、下記数2に示す関係となる。
(数2)
θRC=π/2-(θA-θB+θC)
制御装置90は、ステップS108において、複数(本実施形態では2つ)のC軸86の目標位置(または目標角度)を読み込む。例えば、制御装置90は、記憶装置13から、予め定められた位置であるC軸86の目標位置を複数入力(取得)する。C軸86の目標位置は、例えば、C軸第1ポイント及びC軸第2ポイントである。C軸第1ポイント及びC軸第2ポイントは、ロボット70を駆動させた際に、ワークW及び/又は把持部85(被回転体であり、被移動体である。)の移動軌跡Trが加工室45の前壁45aまたは加工室55の前壁55a(干渉物である。)と干渉しない予め定められた位置に設定されている。
例えば、ロボット70のX軸位置が、隣接する作業機モジュール30の境界付近にロボット70が対向する位置である場合(X軸第2ポイント)であって、アーム部74が基本姿勢である場合に、C軸86(ひいてはRC軸)を回転駆動させた際に、ワークW及び/又は把持部85の移動軌跡Tr(図9にて1点鎖線で示す)の一部が加工室45の前壁45a(または加工室55の前壁55a)と干渉する。移動軌跡Trは、C軸86の回転軸を中心に所定の半径とする回転軌跡である。所定の半径は、ロボットチャック85cの半径及び軸方向長さ(または最外形寸法)、並びに、ワークWの半径及び軸方向長さ(または最外形寸法)から設定される。
最初に、RC軸角度の観点から干渉について説明する。すなわち、図11に示すように、RC軸角度θRCが45度及び225度であるときには、ワークWが加工室45の前壁45aに干渉する(干渉するときのRC軸角度を干渉角度という。)。また、RC軸角度θRCが135度及び315度であるときにも、ワークWが加工室45の前壁45aに干渉する。さらに、図12に示すように、RC軸角度θRCが所定の範囲(45度及び225度(干渉角度)を中心に所定角度(例えば40度)の各範囲)であるときには、ワークWが加工室45の前壁45aに干渉する(干渉するときのRC軸角度範囲を干渉角度範囲という。)。また、RC軸角度θRCが所定の範囲(135度及び315度を中心に所定角度(例えば40度)の各範囲)であるときには、ワークWが加工室45の前壁45aに干渉する。尚、干渉角度及び干渉角度範囲をまとめて図12に示す。干渉角度を破線で示し、干渉角度範囲を斜線を付した範囲で示している。
一方、RC軸角度θRCがこれらの干渉角度範囲外であるときには、ワークWは加工室45の前壁45aと干渉しない。例えば、図9に示すように、RC軸角度θRCが0度及び180度であるときには、ワークWが加工室45の前壁45aに干渉しない。また、図13に示すように、RC軸角度θRCが90度及び270度であるときにも、ワークWが加工室45の前壁45aに干渉しない。すなわち、ワークWが加工室45の前壁45aに干渉しないRC軸の目標位置は、例えば、RC軸第1ポイント(例えば0度または90度)及びRC軸第2ポイント(例えば180度または270度)である。RC軸第1ポイントは、335度から25度の範囲(または65度から115度の範囲)内であればよい。RC軸第2ポイントは、155度から205度の範囲(または245度から295度の範囲)内であればよい。
尚、上述した所定角度は、ワークW及び/又は把持部85の回転軌跡(移動軌跡Tr)の半径とC軸86の回転軸と干渉物である前壁45aとの最短距離とから算出(設定)することができる。また、本明細書において、「ロボット70を駆動させた際に、ワークW及び/又は把持部85の移動軌跡Trが加工室45の前壁45aまたは加工室55の前壁55aと干渉する」には、基本姿勢であるアーム部74のRC軸角度θRCが前述した干渉角度または干渉角度範囲であるロボット70がX軸駆動された際に、ワークW及び/又は把持部85が加工室45の前壁45aまたは加工室55の前壁55aと干渉する場合も含む。
次に、C軸角度の観点から干渉について説明する。C軸角度θCは、下記数3に示すように、A軸角度θA、B軸角度θB、及びRC軸角度θRCにより表すことができる。
(数3)
θC=θRC-θA+θB
ここで、アーム部74が基本姿勢である場合には、A軸角度θAは上述したA軸第1ポイント(定数)であると共にB軸角度θBはB軸第1ポイント(定数)であるため、C軸角度θCは、下記数4に示すように、RC軸角度θRC及び角度θkにより表すことができる。
(数4)
θC=θRC-θk
ここで、角度θKはθA-θB(=A軸第1ポイント-B軸第1ポイント)であり、定数である。
以上説明したことから明らかなように、C軸第1ポイントは、例えば、RC軸第1ポイント-角度θk、すなわち0度-角度θk(または90度-角度θk)である。C軸第2ポイントは、例えば、RC軸第2ポイント-角度θk、すなわち180度-角度θk(または270度-角度θk)である。このように、C軸第1ポイント及びC軸第2ポイントは、A軸角度θA及びB軸角度θBが予め定められた値である場合には、RC軸第1ポイント及びRC軸第2ポイントと同様に、予め定められた値とすることができる。すなわち、C軸目標位置は、RC軸目標位置に対して位相が角度θkだけずれている関係(一義的な関係)にある。本実施形態では、C軸角度はRC軸角度に対して回転座標系が角度θk(=2.7度-7.0度=-4.3度)だけ時計回りに回転している。
図14に示すように、C軸角度θCが40.7度及び220.7度であるときには、ワークWが加工室45の前壁45aに干渉する(干渉するときのC軸角度を干渉角度という。)。また、C軸角度θCが130.7度及び310.7度であるときにも、ワークWが加工室45の前壁45aに干渉する。さらに、C軸角度θCが所定の範囲(40.7度及び220.7度(干渉角度)を中心に所定角度(例えば40度)の各範囲)であるときには、ワークWが加工室45の前壁45aに干渉する(干渉するときのC軸角度範囲を干渉角度範囲という。)。また、C軸角度θCが所定の範囲(130.7度及び310.7度を中心に所定角度(例えば40度)の各範囲)であるときには、ワークWが加工室45の前壁45aに干渉する。
一方、C軸角度θCがこれらの干渉角度範囲外であるときには、ワークWは加工室45の前壁45aと干渉しない。例えば、C軸角度θCが355.7度(-4.3度)及び175.7度であるときには、ワークWが加工室45の前壁45aに干渉しない。また、C軸角度θCが85.7度及び265.7度であるときにも、ワークWが加工室45の前壁45aに干渉しない。すなわち、ワークWが加工室45の前壁45aに干渉しないC軸の目標位置は、例えば、C軸第1ポイント(例えば355.7度または85.7度)及びC軸第2ポイント(例えば175.7度または265.7度)である。C軸第1ポイントは、330.7度から20.7度の範囲(または60.7度から110.7度の範囲)内であればよい。C軸第2ポイントは、150.7度から200.7度の範囲(または240.7度から290.7度の範囲)内であればよい。
制御装置90は、ステップS110において、C軸86の現在位置(または現在角度)を読み込む。具体的には、制御装置90は、位置センサ85b4からC軸86の現在位置(C軸現在位置ともいう。)を入力(取得)する。
制御装置90は、ステップS112において、先にステップS108にて読み込んだ複数のC軸目標位置(C軸第1ポイント及びC軸第2ポイント)のなかから、先にステップS110にて読み込んだC軸現在位置に基づいてC軸に係る選択目標位置であるC軸選択目標位置を選択する。すなわち、制御装置90は、複数のC軸目標位置のなかからC軸現在位置に最も近い目標位置をC軸選択目標位置として選択する。
例えば、図14に示すように、C軸第1ポイントは355.7度(破線にて示す)であり、C軸第2ポイントは175.7度(一点鎖線にて示す)である。さらに、C軸の現在位置が実線で示すC軸第1現在位置(355.7度(330.7度)から20.7度の範囲内)である場合には、制御装置90は、C軸第1現在位置から遠いC軸第2ポイントではなく、C軸第1現在位置に最も近いC軸第1ポイントをC軸選択目標位置として選択する。これにより、制御装置90は、把持部駆動装置85bを駆動させて、C軸第1現在位置に位置するC軸86をC軸第1ポイントへ駆動させることができる。このとき、C軸86は、C軸第1ポイントへの最短となる経路(反時計回りの経路(矢印にて示す))に沿って移動することができる。換言すると、C軸86は、この最短経路とは反対側の経路(比較的移動距離の長い経路でありかつ時計回りの経路(途中に×印を付した矢印にて示す))に沿って移動するのを規制することができる。その結果、C軸角度θCが干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
また、C軸の現在位置が実線で示すC軸第2現在位置(150.7度から175.7度(200.7度)の範囲内)である場合には、制御装置90は、C軸第2現在位置から遠いC軸第1ポイントではなく、C軸第2現在位置に最も近いC軸第2ポイントをC軸選択目標位置として選択する。これにより、制御装置90は、把持部駆動装置85bを駆動させて、C軸第2現在位置に位置するC軸86をC軸第2ポイントへ駆動させることができる。このとき、C軸86は、C軸第2ポイントへの最短となる経路(時計回りの経路(矢印にて示す))に沿って移動することができる。換言すると、C軸86は、この最短経路とは反対側の経路(比較的移動距離の長い経路でありかつ反時計回りの経路(途中に×印を付した矢印にて示す))に沿って移動するのを規制することができる。その結果、C軸角度θCが干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
制御装置90は、ステップS114において、把持部駆動装置85bを駆動させて、ステップS110にて読み込んだ現在位置に位置するC軸86を、ステップS112にて選択したC軸選択目標位置へ駆動する。これにより、C軸角度θC(ひいてはRC軸角度θRC)が干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
ステップS116において、制御装置90は、第1アーム駆動装置81bを駆動させて、ステップS104にて読み込んだ現在位置に位置するA軸82を、ステップS106にて読み込んだA軸82の目標位置へ駆動する。さらに、制御装置90は、第2アーム駆動装置83bを駆動させて、ステップS104にて読み込んだ現在位置に位置するB軸84を、ステップS106にて読み込んだB軸84の目標位置へ駆動する。
ステップS118において、制御装置90は、テーブル駆動装置73bを駆動させて、ステップS104にて読み込んだ現在位置に位置するD軸73aを、ステップS106にて読み込んだD軸73aの目標位置へ駆動する。さらに、制御装置90は、走行駆動装置71bを駆動させて、ステップS104にて読み込んだ現在位置に位置するX軸71cを、ステップS106にて読み込んだX軸71cの目標位置へ駆動する。尚、ステップS114からステップS118の処理は、同時に実施してもよいし、順番を変えて実施してもよい。
上述した多関節ロボット70は、走行駆動軸71c、テーブル駆動軸73a、第1アーム駆動軸82、第2アーム駆動軸84、及び把持部駆動軸86(複数の軸)と、これら複数の軸をそれぞれ駆動する走行駆動装置71b、テーブル駆動装置73b、第1アーム駆動装置81b、第2アーム駆動装置83b、及び把持部駆動装置85b(複数の駆動装置)と、前記複数の軸の駆動によってそれぞれ移動される本体部72、旋回テーブル73、第1アーム81、第2アーム83、並びに、把持部85及び/又はワークW(複数の被移動体)と、前記複数の軸のうち制御対象である軸である把持部駆動軸86の目標位置を複数設定でき、それら設定された複数の目標位置(C軸第1ポイント及びC軸第2ポイント)のうち制御対象である軸(把持部駆動軸86)の現在位置に最も近い目標位置を選択目標位置として選択し、把持部駆動装置85b(駆動装置)を制御して選択目標位置となるように軸(把持部駆動軸86)を駆動する制御装置90と、を備えている。
これによれば、走行駆動軸71c、テーブル駆動軸73a、第1アーム駆動軸82、第2アーム駆動軸84、及び把持部駆動軸86のうち制御対象である軸である把持部駆動軸86の目標位置を複数設定することが可能となる。また、それら設定された複数の目標位置(C軸第1ポイント及びC軸第2ポイント)のうち制御対象である軸の現在位置に最も近い目標位置を選択目標位置として選択することが可能となる。すなわち、予め設定された複数の目標位置(C軸第1ポイント及びC軸第2ポイント)の中から現在位置に基づいて選択目標位置を自動的に選択することが可能となる。さらに、この選択目標位置となるように軸(把持部駆動軸86)を駆動する、簡易な制御が可能となる。その結果、多関節ロボット70は、時間をかけることなく簡易に、障害物との干渉(被接触物との接触)を抑制する制御が可能となる。さらに、ロボット70の制御プログラム作成の際にプログラミング作業軽減、及び複雑なロボット動作において動作中の干渉物との干渉の可能性の低減が可能となる。また、多関節ロボット70の制御プログラムを作成する作業が簡素化され、工数を削減(低減)することが可能となる。
また、被移動体は、回転される被回転体であるワークW及び/又は把持部85である。これによれば、目標位置を、多関節ロボット70を駆動させた際に、被移動体の移動軌跡が干渉物と干渉しない予め定められた位置に比較的容易に設定することができる。その結果、比較的簡易かつ短時間に、干渉しない経路(移動軌跡)を予め設定することができる。さらに、被回転体の旋回軸(例えば、(把持部駆動軸86))がC軸第1ポイントかC軸第2ポイント(時計回りか反時計回り)のどちらかへ移動(回転)しなければ、多関節ロボット70の他の軸が動作できない場合の制御プログラムの簡素化を図ることができる。
また、C軸第1ポイント及びC軸第2ポイント(目標位置)は、多関節ロボット70を駆動させた際に、ワークW及び/又は把持部85(被移動体)の移動軌跡Trが加工室45の前壁45a(または加工室55の前壁55a。干渉物)と干渉しない予め定められた位置に設定されている。これによれば、複数設定された目標位置は、多関節ロボット70を駆動させた際に、被移動体の移動軌跡Trが干渉物に干渉しない位置であるので、これら目標位置のなかから選択された選択目標位置は移動軌跡Trが干渉物に干渉するのを確実に抑制することができる。
また、多関節ロボット70は、ワークWを保持可能である把持部85(ワーク把持部)をさらに備え、制御対象である軸(把持部駆動軸86)は、把持部85を駆動する軸であり、被移動体は、ワークW及び/又は把持部85であり、干渉物は、ワークWを加工可能な加工室45の前壁45a(または加工室55の前壁55a)である。これによれば、比較的狭い空間内にて作動される多関節ロボット70がその空間を構成する内壁の一部に干渉するのを確実に抑制することができる。
尚、上述したC軸角度の制御に代えて、RC軸角度の制御を実施するようにしてもよい。この場合、制御装置90は、ステップS108において、複数(本実施形態では2つ)のRC軸の目標位置(または目標角度。例えば、RC軸第1ポイント及びRC軸第2ポイント)を読み込み、ステップS110において、RC軸の現在位置(または現在角度)を算出する。尚、RC軸の現在位置は、C軸現在位置を使用して上記数4から算出することができる。
制御装置90は、ステップS112において、先にステップS108にて読み込んだ複数のRC軸目標位置(RC軸第1ポイント及びRC軸第2ポイント)のなかから、先にステップS110にて読み込んだ(算出した)RC軸現在位置に基づいてRC軸に係る選択目標位置であるRC軸選択目標位置を選択する。すなわち、制御装置90は、複数のRC軸目標位置のなかからRC軸現在位置に最も近い目標位置をRC軸選択目標位置として選択する。
例えば、図12に示すように、RC軸第1ポイントは0度(破線にて示す)であり、RC軸第2ポイントは180度(一点鎖線にて示す)である。さらに、RC軸の現在位置が実線で示すRC軸第1現在位置(0度(または335度)から25度の範囲内)である場合には、制御装置90は、RC軸第1現在位置から遠いRC軸第2ポイントではなく、RC軸第1現在位置に最も近いRC軸第1ポイントをRC軸選択目標位置として選択する。これにより、制御装置90は、把持部駆動装置85bを駆動させて、RC軸第1現在位置に位置するRC軸すなわちC軸86をRC軸第1ポイントへ駆動させることができる。このとき、RC軸は、RC軸第1ポイントへの最短となる経路(反時計回りの経路(矢印にて示す))に沿って移動することができる。換言すると、RC軸は、この最短経路とは反対側の経路(比較的移動距離の長い経路でありかつ時計回りの経路(途中に×印を付した矢印にて示す))に沿って移動するのを規制することができる。その結果、RC軸角度θRCが干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
また、RC軸の現在位置が実線で示すRC軸第2現在位置(155度から180度(または205度)の範囲内)である場合には、制御装置90は、RC軸第2現在位置から遠いRC軸第1ポイントではなく、RC軸第2現在位置に最も近いRC軸第2ポイントをRC軸選択目標位置として選択する。これにより、制御装置90は、把持部駆動装置85bを駆動させて、RC軸第2現在位置に位置するRC軸をRC軸第2ポイントへ駆動させることができる。このとき、RC軸は、RC軸第2ポイントへの最短となる経路(時計回りの経路(矢印にて示す))に沿って移動することができる。換言すると、RC軸は、この最短経路とは反対側の経路(比較的移動距離の長い経路でありかつ反時計回りの経路(途中に×印を付した矢印にて示す))に沿って移動するのを規制することができる。その結果、RC軸角度θRCが干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
制御装置90は、ステップS114において、把持部駆動装置85bを駆動させて、ステップS110にて読み込んだ現在位置に位置するRC軸を、ステップS112にて選択したRC軸選択目標位置へ駆動する。これにより、RC軸角度θRCが干渉角度及び干渉角度範囲とならない(通過しない)ので、ワークWが加工室45の前壁45aに干渉するのを防止することができる。
また、上述した実施形態においては、制御対象である軸を把持部駆動軸86としたが、これに限られず、走行駆動軸71c、テーブル駆動軸73a、第1アーム駆動軸82、及び第2アーム駆動軸84のうち何れかでもよい。この場合、被移動体は、制御対象である軸より先端側の部材であることが好ましい。
また、上述した実施形態においては、干渉物を、ワークWを加工可能な加工室45の前壁45a(または加工室55の前壁55a)としたが、これに限られず、ロボット70が接触する可能性のある作業機モジュール30の一部であってもよい。また、干渉物を、移動軌跡Tr上に一箇所設定したが、複数個所に設定してもよい。この場合でも、制御対象である軸について複数個所の干渉物に対して干渉する干渉角度及び/又は干渉角度範囲を設定すればよい。これに基づいて目標位置を設定すればよい。