(57)【要約】 【課題】  手作業によるタイミング調整が不要で、各ロボットの動作を同時に行わせることができるロボット制御装置およびロボット制御方法を提供する。【解決手段】  コントローラ２３は、移動開始位置から同期動作位置まで、各ロボットハンド１９をそれぞれ最短時間で移動させるときの第１移動時間をロボット毎に計算し、計算した各第１移動時間のうちで、最も長くなる第２移動時間を決定する。そして決定した第２移動時間で、各ロボットハンド１９を移動開始位置から同期動作位置まで停止させずに移動させるロボット動作計画をロボット毎に生成する。これによって各ロボットのロボットハンドが、移動開始位置から同期動作位置まで、それぞれ停止することなく移動し、同時に同期動作位置に到達する。したがって手作業によるタイミング調整を不要として、コントローラ２３が、同期動作位置に移動した状態で、各ロボットの動作を同時に行わせることができる。【選択図】      図１
2006263850.tif 000002
【特許請求の範囲】
【請求項１】
各ロボットにそれぞれ設けられる各基準可動部を、ロボット毎にそれぞれ設定される移動開始位置から同期動作位置に移動させた状態で、各ロボットの動作を同時に行わせるロボット制御装置であって、
移動開始位置から同期動作位置まで、各基準可動部をそれぞれ最短時間で移動させるときの第１移動時間をロボット毎に計算する第１移動時間計算手段と、
第１移動時間計算手段によって計算される各第１移動時間のうちで最も長くなる第１移動時間を、第２移動時間として決定する第２移動時間決定手段と、
第２移動時間決定手段によって決定される第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで停止させずに移動させる、基準可動部の速度変化の動作計画をロボット毎に生成する動作計画生成手段と、
ロボットが次の動作計画を実行可能となる動作完了状態を判断する動作完了判断手段と、
動作完了判断手段によって、同時に動作すべき全てのロボットが動作完了状態となったことが判断されると、動作計画生成手段によって生成される各ロボットの次の動作計画に従って、各ロボットをそれぞれ同時に制御するロボット制御手段とを含むことを特徴とするロボット制御装置。
【請求項２】
第１移動時間計算手段、第２移動時間決定手段、動作計画生成手段、動作完了判断手段およびロボット制御手段は、ロボット毎にそれぞれ設けられ、
各第１移動時間計算手段によって計算される第１移動時間の情報を、各第２移動時間決定手段に与えるとともに、動作完了判断手段によって判断される動作完了状態に移行したことを示す情報を、各ロボット制御手段に与える通信手段をさらに含むことを特徴とする請求項１記載のロボット制御装置。
【請求項３】
動作計画生成手段は、第２移動時間決定手段によって決定される第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで移動させる同期動作計画と、第１移動時間計算手段によって計算される第１移動時間で、各基準可動部を予め定める移動開始位置から移動終了位置まで移動させる単独動作計画とを生成することができることを特徴とする請求項１または２記載のロボット制御装置。
【請求項４】
ロボットの動作停止を指令する動作指令手段をさらに含み、
ロボット制御手段は、動作指令手段によって注目するロボットに動作停止指令が与えられたと判断すると、注目するロボットに対して同期動作位置から同時に動作させている他のロボットの動作を停止させることを特徴とする請求項１〜３のいずれか１つに記載のロボット制御装置。
【請求項５】
ロボットの動作再開を指令する動作指令手段をさらに含み、
ロボット制御手段は、動作指令手段によって注目するロボットに動作再開指令が与えられたと判断すると、注目するロボットに対して同期動作位置から同時に動作させていた他のロボットの動作を再開させることを特徴とする請求項１〜４のいずれか１つに記載のロボット制御装置。
【請求項６】
動作計画生成手段は、注目するロボットの第１移動時間が、第２移動時間よりも短い場合には、第１移動時間で移動させる場合に比べて、基準可動部の加速度、減速度および最高移動速度を低下させるよう基準可動部の速度変化の動作計画を生成することを特徴とする請求項１〜５のいずれか１つに記載のロボット制御装置。
【請求項７】
前記第１移動時間は、基準可動部が移動開始位置から移動を開始して、同期動作位置まで移動する到達時間と、
他の基準可動部と同時に動作を行う前に、同期動作位置で基準可動部が行うべき独立動作に費やす独立動作時間の見込み時間とを含むことを特徴とする請求項１〜６のいずれか１つに記載のロボット制御装置。
【請求項８】
予め定める同期期間において、各ロボットの同期動作を複数回、連続して行わせる場合、予め教示される各ロボットの同期動作を行うべき回数が一致しているか否かを判断し、
各ロボットの同期動作を行うべき回数が一致していないことを判断すると、同期動作を行うべき回数が一致していないことを報知する点検手段をさらに含むことを特徴とする請求項１〜７のいずれか１つに記載のロボット制御装置。
【請求項９】
予め定める同期期間において、各ロボットの同期動作を複数回、連続して行わせる場合、注目するロボットの注目する同期動作と、その同期動作に対して同時に動作すべき他のロボットの同期動作とが関連性を有するか否かを判断し、
関連性を有していないことを判断すると、ロボット制御手段による注目するロボットの注目する同期動作の制御を阻止する照合手段とをさらに含むことを特徴とする請求項１〜８のいずれか１つに記載のロボット制御装置。
【請求項１０】
各ロボットにそれぞれ設けられる各基準可動部を、ロボット毎にそれぞれ設定される同期動作位置に移動させた状態で、各ロボットの動作を同時に動作させるロボット制御方法であって、
移動開始位置から同期動作位置まで、各基準可動部をそれぞれ最短時間で移動させるときの第１移動時間をロボット毎に計算する第１移動時間計算工程と、
第１移動時間計算工程で計算した各第１移動時間のうちで最も長くなる第１移動時間を第２移動時間として決定する第２移動時間決定工程と、
第２移動時間決定工程で決定した第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで停止させずに移動させる、基準可動部の速度変化の動作計画をロボット毎に生成する動作計画生成工程と、
ロボットが次の動作計画を実行可能となる動作完了状態を判断する動作完了判断工程と、
動作完了判断工程で、同時に動作すべき全てのロボットが動作完了状態となったことを判断すると、動作計画生成工程で生成した各ロボットの次の動作計画に従って、各ロボットをそれぞれ同時に制御するロボット制御工程とを含むことを特徴とするロボット制御方法。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各ロボットの各基準可動部を、それぞれ設定される同期動作位置に移動させた状態で、各ロボットの動作を同時に行わせるロボット制御装置およびロボット制御方法に関する。
【背景技術】
【０００２】
図２３は、従来技術のプレス設備６を説明するための図である。２つのロボット１，２を同時に動作させる場合であって、各ロボット１，２の動作可能範囲が重なる場合、ロボット１，２の干渉を防ぐ必要がある。従来技術として、２つのロボットコントローラ３，４の相互通信を用いて、干渉を防ぐ技術がある。
【０００３】
プレス設備６は、プレス装置７にプレス前のワーク８を供給する第１ロボット１と、プレス装置７からプレス加工されたワーク９を回収する第２ロボット２と、各ロボット１，２をそれぞれ制御するロボットコントローラ３，４と、ロボットコントローラ３，４同士に動作指令を与えるプログラマブルコントローラ（略称、ＰＬＣ）５とを含む。
【０００４】
第１ロボット１は、取り台１０からワーク８を把持して、プレス装置７の加工位置ｐ２に配置する。第２ロボット２は、プレス装置７の加工位置ｐ２に配置されたワーク９を回収し、後段の処理装置に渡す。したがって各ロボット１，２に速度差がある場合、ワーク８，９が配置されるプレス装置７の加工位置ｐ２付近で、各ロボット１，２が干渉するおそれがある。
【０００５】
各ロボット１，２の干渉を防ぐために、第１コントローラ３は、加工位置ｐ２に対して搬送方向上流側の近接位置ｐ１の情報を記憶する。また第２コントローラ４は、加工位置ｐ２に対して搬送方向下流側の離反位置ｐ３の情報を記憶する。第１コントローラ３は、第２コントローラ４から与えられる情報に基づいて、プレス装置７の近傍空間へのワーク８の移動の可否を判断する。
【０００６】
図２４は、各ロボット１，２におけるワーク８，９の速度の時間変化を示すグラフである。図２４（１）は、第１ロボット１のロボットハンドの速度変化を示し、図２４（２）は、第２ロボット２のロボットハンドの速度変化を示す。図２４（１）に示すように、第１コントローラ３は、プレス前ワーク８を近接位置ｐ１に移動させた近接位置到達時点ｔｐ１で、プレス前ワーク８の移動を停止させる。また図２４（２）に示すように、第２コントローラ４は、加工位置ｐ２でプレス後ワーク９を把持した加工位置到達時点ｔｐ２からワーク９を移動させる。そしてプレス後ワーク９を離反位置ｐ３に移動させた離反位置到達時点ｔｐ３で、プレス後ワーク９の移動を停止させる。
【０００７】
そして離反位置到達時点ｔｐ３で、第２コントローラ４は、ＰＬＣ５に到達信号を送信する。ＰＬＣ５は、第２コントローラ４から到達信号を受信すると、各コントローラ３，４に向けて、移動再開指令を与える。第１コントローラ３は、ＰＬＣ５から到達信号を受信すると、プレス前ワーク８を近接位置ｐ１から加工位置ｐ２への移動を再開させる。また第２コントローラ４は、ＰＬＣ５から到達信号を受信すると、プレス後ワーク９の離反位置ｐ３から後段の処理装置への移動を再開させる。
【０００８】
このように動作することによって、プレス後ワーク９がプレス装置７の近傍空間から離反するまでに、プレス前ワーク８がプレス装置７の近傍空間に侵入することが防がれる。したがって各ロボット１，２の干渉を防ぐことができる。このような従来技術が、たとえば特許文献１に開示されている。
【０００９】
【特許文献１】特開平７−２７１４１５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述した従来技術は、第１ロボット１は、近接位置到達時点ｔｐ１で、プレス前ワーク８を近接位置ｐ１で待機させる。そして待機後、離反位置到達時点ｔｐ３に達すると、プレス前ワーク８の移動を再開する。このようにロボット１，２同士の干渉を防ぐために、一旦停止する必要がある。各ロボット１，２は、生産効率を向上させるために可及的に速く移動するように設定される。この場合、第１ロボット１を最高速度で移動させても、プレス前ワーク８を近接位置ｐ１で待機させてしまうと、第１ロボット１を低速度で移動させてプレス前ワーク８を近接位置ｐ１で停止させずに移動させる場合に比べて、エネルギー消費が多くなり、エネルギー効率が悪い。
【００１１】
またプレス前ワーク８を近接位置ｐ１で待機させないで干渉を防ぐためには、第１ロボット１の速度を遅くするよう、ロボットの速度などの動作タイミングを手作業で調整することが考えられる。しかしながら、第１ロボット１の遅くしすぎると、プレス後ワーク９が離反位置ｐ３に到達しても、プレス前ワーク８が近接位置ｐ１に到達していないといった状況が生じ、サイクルタイムが増大してしまうという問題がある。
【００１２】
また手作業によるタイミング調整は、対象とする設備、把持するワーク形状、移動姿勢、移動経路および移動位置などが異なるたびに行わなければならず、一律に決定することができない。したがってロボット動作を行うための準備に費やす時間が増大してしまうという問題がある。また複数のロボットによってスポット接合動作または塗装動作を行わせる場合であっても、同様の問題が生じる。
【００１３】
したがって本発明の目的は、手作業によるタイミング調整が不要で、各ロボットの同期動作を同時に行わせることができるロボット制御装置およびロボット制御方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明は、各ロボットにそれぞれ設けられる各基準可動部を、ロボット毎にそれぞれ設定される移動開始位置から同期動作位置に移動させた状態で、各ロボットの動作を同時に行わせるロボット制御装置であって、
移動開始位置から同期動作位置まで、各基準可動部をそれぞれ最短時間で移動させるときの第１移動時間をロボット毎に計算する第１移動時間計算手段と、
第１移動時間計算手段によって計算される各第１移動時間のうちで最も長くなる第１移動時間を、第２移動時間として決定する第２移動時間決定手段と、
第２移動時間決定手段によって決定される第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで停止させずに移動させる、基準可動部の速度変化の動作計画をロボット毎に生成する動作計画生成手段と、
ロボットが次の動作計画を実行可能となる動作完了状態を判断する動作完了判断手段と、
動作完了判断手段によって、同時に動作すべき全てのロボットが動作完了状態となったことが判断されると、動作計画生成手段によって生成される各ロボットの次の動作計画に従って、各ロボットをそれぞれ同時に制御するロボット制御手段とを含むことを特徴とするロボット制御装置である。
【００１５】
また本発明は、第１移動時間計算手段、第２移動時間決定手段、動作計画生成手段、動作完了判断手段およびロボット制御手段は、ロボット毎にそれぞれ設けられ、
各第１移動時間計算手段によって計算される第１移動時間の情報を、各第２移動時間決定手段に与えるとともに、動作完了判断手段によって判断される動作完了状態に移行したことを示す情報を、各ロボット制御手段に与える通信手段をさらに含むことを特徴とする。
【００１６】
また本発明は、動作計画生成手段は、第２移動時間決定手段によって決定される第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで移動させる同期動作計画と、第１移動時間計算手段によって計算される第１移動時間で、各基準可動部を予め定める移動開始位置から移動終了位置まで移動させる単独動作計画とを生成することができることを特徴とする。
【００１７】
また本発明は、ロボットの動作停止を指令する動作指令手段をさらに含み、
ロボット制御手段は、動作指令手段によって注目するロボットに動作停止指令が与えられたと判断すると、注目するロボットに対して同期動作位置から同時に動作させている他のロボットの動作を停止させることを特徴とする。
【００１８】
また本発明は、ロボットの動作再開を指令する動作指令手段をさらに含み、
ロボット制御手段は、動作指令手段によって注目するロボットに動作再開指令が与えられたと判断すると、注目するロボットに対して同期動作位置から同時に動作させていた他のロボットの動作を再開させることを特徴とする。
【００１９】
また本発明は、動作計画生成手段は、注目するロボットの第１移動時間が、第２移動時間よりも短い場合には、第１移動時間で移動させる場合に比べて、基準可動部の加速度、減速度および最高移動速度を低下させるよう基準可動部の速度変化の動作計画を生成することを特徴とする。
【００２０】
また本発明は、前記第１移動時間は、基準可動部が移動開始位置から移動を開始して、同期動作位置まで移動する到達時間と、
他の基準可動部と同時に動作を行う前に、同期動作位置で基準可動部が行うべき独立動作に費やす独立動作時間の見込み時間とを含むことを特徴とする。
【００２１】
また本発明は、予め定める同期期間において、各ロボットの同期動作を複数回、連続して行わせる場合、予め教示される各ロボットの同期動作を行うべき回数が一致しているか否かを判断し、
各ロボットの同期動作を行うべき回数が一致していないことを判断すると、同期動作を行うべき回数が一致していないことを報知する点検手段をさらに含むことを特徴とする。
【００２２】
また本発明は、予め定める同期期間において、各ロボットの同期動作を複数回、連続して行わせる場合、注目するロボットの注目する同期動作と、その同期動作に対して同時に動作すべき他のロボットの同期動作とが関連性を有するか否かを判断し、
関連性を有していないことを判断すると、ロボット制御手段による注目するロボットの注目する同期動作の制御を阻止する照合手段とをさらに含むことを特徴とする。
【００２３】
また本発明は、各ロボットにそれぞれ設けられる各基準可動部を、ロボット毎にそれぞれ設定される同期動作位置に移動させた状態で、各ロボットの動作を同時に動作させるロボット制御方法であって、
移動開始位置から同期動作位置まで、各基準可動部をそれぞれ最短時間で移動させるときの第１移動時間をロボット毎に計算する第１移動時間計算工程と、
第１移動時間計算工程で計算した各第１移動時間のうちで最も長くなる第１移動時間を第２移動時間として決定する第２移動時間決定工程と、
第２移動時間決定工程で決定した第２移動時間で、各基準可動部を移動開始位置から同期動作位置まで停止させずに移動させる、基準可動部の速度変化の動作計画をロボット毎に生成する動作計画生成工程と、
ロボットが次の動作計画を実行可能となる動作完了状態を判断する動作完了判断工程と、
動作完了判断工程で、同時に動作すべき全てのロボットが動作完了状態となったことを判断すると、動作計画生成工程で生成した各ロボットの次の動作計画に従って、各ロボットをそれぞれ同時に制御するロボット制御工程とを含むことを特徴とするロボット制御方法である。
【発明の効果】
【００２４】
請求項１記載の本発明に従えば、同期動作を行うべき各ロボットに対して、第１移動時間計算手段によって第１移動時間を計算する。次に、第２移動時間決定手段によって、各第１移動時間のうちで最も長くなる移動時間を第２移動時間として決定する。
【００２５】
動作計画生成手段は、各ロボットの基準可動部が、停止せずに移動開始位置から同期動作位置まで第２移動時間を費やしてそれぞれ移動するように、ロボット毎に動作計画を生成する。次に動作完了判断手段によって、同時に動作すべき全てのロボットが動作完了状態となったことが判断されると、ロボット制御手段が、動作計画生成手段によって生成される次の各動作計画に従って、各ロボットを制御する。これによって各ロボットの基準可動部は、移動開始位置から同時に移動を開始すると、それぞれ停止することなく移動し、同時に同期動作位置に到達する。そして同期動作位置に移動した状態で、各ロボットの動作が同時に行われる。
【００２６】
このように本発明によれば、各ロボットの基準可動部は、移動開始位置から同期動作位置に達するまでに停止することが防がれる。したがってロボット毎に、移動速度、移動距離などにばらつきがある場合であっても、各基準可動部を同期動作位置で待機させる必要がない。これによって各ロボットの移動速度が不必要に高くなることを防ぐことができ、エネルギー消費を減らしてエネルギー効率を改善することができる。また基準可動部を滑らかに移動させることができる。
【００２７】
さらに作業者は、各ロボットの基準可動部が各同期動作位置に同時に移動するように、各ロボットの移動速度および移動距離などを調整する必要がない。また作業者は、移動開始位置および同期動作位置を変更したとしても、各ロボットの移動速度および移動距離などを調整する必要がない。したがってロボット動作を行うための準備作業に費やす時間を小さくすることができ、利便性を向上することができる。また本発明では、同時に動作すべき全てのロボットが動作完了状態となってから、同時に次の動作を開始するので、ロボットの制御周期ずれ、溶接作業などの動作完了時間のばらつきなどに起因する動作のずれを防ぐことができる。これによって同時に動作すべき動作を連続して複数回行っても、各ロボット同士の動作のずれが累積することがなく、各ロボットの同期動作を安定して行うことができる。
【００２８】
請求項２記載の本発明に従えば、第１移動時間計算手段、第２移動時間決定手段、動作完了判断手段および動作計画生成手段は、対応するロボット毎にそれぞれ設けられる。第１移動時間計算手段は、対応するロボットの第１移動時間を計算し、通信手段を介して、計算結果を各第２移動時間決定手段に与える。各第２移動時間決定手段は、通信手段を介して、各第１移動時間計算手段からそれぞれ与えられる第１移動時間の情報を取得し、取得した各第１移動時間のうちから、第２移動時間を決定する。また各ロボット制御手段は、通信手段を介して、各動作完了判断手段からそれぞれ与えられる動作完了状態の情報を取得し、動作開始のタイミングを決定する。
【００２９】
このように本発明によれば、ロボット毎に上述した各手段が設けられることによって、ロボットの増減に応じて対応する各手段を増減することで各ロボットに同期動作を行わせることができる。たとえばロボットをさらに１つ追加する場合には、ロボットとともに各手段を追加することで、既存のロボットに対応する各手段の制御手順を示す動作プログラムを大きく変更する必要がない。同様にロボットを１つ削減する場合にも、残余のロボットに対応する各手段の制御手順を示す動作プログラムを大きく変更する必要がない。したがって、ロボットの増減を容易に行うことができる。
【００３０】
請求項３記載の本発明に従えば、複数のロボットを同時に動作させる場合には、動作計画生成手段は、対応するロボットについて同期動作計画を生成する。また複数のロボットのうちで他のロボットにかかわらずに単独で動作させる場合には、動作計画生成手段は、対応するロボットについて単独動作計画を生成する。このように動作計画生成手段は、ロボットの同期動作と単独動作との動作計画を生成することができる。
【００３１】
このように本発明によれば、ロボットの一連の動作のうちで、ロボットを単独動作させたあとに同期動作させるといった単独動作と同期動作とを順次行わせる動作を行わせることができ、利便性を向上することができる。
【００３２】
請求項４記載の本発明に従えば、ロボット制御手段は、動作指令手段から動作停止指令が注目するロボットに対して与えられると、同期動作している各ロボットの動作を停止する。これによって注目するロボットを停止させるととともに、他のロボットの動作を同時に停止させることができ、ロボット同士の干渉を防ぐことができる。したがって作業者は、１つのロボットの動作を停止させたときに、ロボット同士の干渉を防ぐために別途新たな操作を行う必要なく、同期動作している他のロボットの動作を同時に停止させることができ、利便性を向上することができる。
【００３３】
請求項５記載の本発明に従えば、ロボット制御手段は、動作指令手段から動作再開指令が注目するロボットに対して与えられると、同期動作していた各ロボットの動作を再開する。これによって注目するロボットを再開させるととともに、他のロボットの動作を同時に再開させることができ、ロボット同士の干渉を防ぐことができる。
【００３４】
したがって作業者は、１つのロボットの動作を再開させたときに、ロボット同士の干渉を防ぐために別途新たな操作を行う必要なく、同期動作している他のロボットの動作を同時に再開させることができ、利便性を向上することができる。
【００３５】
請求項６記載の本発明に従えば、第２移動時間が、第１移動時間よりも長い場合、第１移動時間で移動させる場合に比べて、基準可動部の加速度および減速度を低下させるように動作計画を生成する。これによって移動開始位置から同期動作位置に移動させるうちの最高移動速度のみを低下する場合に比べて、エネルギー消費をさらに低下させることができる。
【００３６】
請求項７記載の本発明に従えば、第１移動時間計算手段は、到達時間と独立動作時間の見込み時間とを合計して第１移動時間を計算する。到達時間は、基準可動部が移動開始位置から移動を開始して、同期動作位置まで移動する時間である。また独立動作時間は、他の基準可動部と同時に動作を行う前に、同期動作位置で基準可動部が行うべき独立動作に費やすであろう見込みの時間である。これによって同期動作を行うべき２つのロボットのうちで、独立動作を行う１つのロボットが想定される場合、独立動作を終えた場合に可及的に素早く、第１および第２ロボットによる動作を開始することができ、独立動作に起因するサイクルタイムの増加を抑えることができる。
【００３７】
たとえば独立動作を行う第１ロボットと独立動作を行わない第２ロボットとが同時動作位置から同時に動作する場合であって、第２ロボットの第１移動時間が第１ロボットの第１移動時間よりも長い場合、第２ロボットが同時動作位置に到達した時刻に、第１ロボットの独立動作が完了する。したがって各ロボットは同時動作位置で待機せずに、同時動作位置から同時に動作を行うことができる。また第１ロボットのエネルギー消費を抑えることができる。
【００３８】
またたとえば独立動作を行う第１ロボットと独立動作を行わない第２ロボットとが同時動作位置から同時に動作する場合であって、第１ロボットの第１移動時間が第２ロボットの第１移動時間よりも長い場合、第１ロボットが独立動作を終えた時刻に、第２ロボットが同時動作位置に到達する。したがって各ロボットは同時動作位置で待機せずに、同時動作位置から同時に動作を行うことができる。また第２ロボットのエネルギー消費を抑えることができる。
【００３９】
請求項８記載の本発明に従えば、予め定める同期期間において、同期すべき各ロボットの同期動作を行うべき回数が異なる場合、点検手段が同期動作を行うべき回数が一致していないことを報知する。これによって作業者は、各ロボットのいずれかの動作プログラムに異常があることを判断することができ、各ロボットを同期動作する前に動作プログラムの異常を修正することができる。
【００４０】
請求項９記載の本発明に従えば、予め定める同期期間において、注目するロボットの注目する同期動作と、その同期動作に対して同時に動作すべき他のロボットの同期動作とが関連性を有しない場合に、照合手段がロボット制御手段による注目するロボットの注目する同期動作の制御を阻止する。これによって各ロボットの同期動作のうちで関連性のないそれぞれの同期動作が同時に行われることを防ぐことができ、ロボットが不所望な同期動作を行うことを防ぐことができる。たとえば関連性は、同期期間を開始してからの同期動作の順番によって規定されてもよい。
【００４１】
請求項１０記載の本発明に従えば、同期動作位置から同時に動作を行うべき各ロボットに対して、第１移動時間計算工程で各ロボットの基準可動部が移動開始位置から同期動作位置まで移動する最短時間として第１移動時間を計算する。次に、第２移動時間工程で各第１移動時間のうちで、最も長くなる第２移動時間を決定する。
【００４２】
第２移動時間が決定されると、動作計画生成工程で、各ロボットの基準可動部が、移動開始位置から同期動作位置まで停止せずに、第２移動時間をかけてそれぞれ移動するように、ロボット毎に動作計画を生成する。次に動作完了判断工程によって、同時に動作すべき全てのロボットが動作完了状態となったことを判断すると、ロボット制御工程で、動作計画生成工程によって生成される次の各動作計画に従って、各ロボットを制御する。これによって各ロボットの基準可動部は、移動開始位置から同時に移動を開始すると、同期動作位置までそれぞれ停止することなく移動し、同時に同期動作位置に到達する。そして同期動作位置に移動した状態で、各ロボットの動作を同時に行われる。
【００４３】
このように本発明によれば、各ロボットの基準可動部は、移動開始位置から同期動作位置に達するまでに停止することが防がれる。したがってロボット毎に、移動速度、移動距離などにばらつきがある場合であっても、各基準可動部を同期動作位置で待機させる必要がない。これによって各ロボットの移動速度が不必要に高くなることを防ぐことができ、エネルギー消費を減らして、エネルギー効率を改善することができる。また基準可動部を滑らかに移動させることができる。
【００４４】
さらに作業者は、各ロボットの基準可動部が各同期動作位置に同時に移動するように、各ロボットの移動速度を調整する必要がない。また移動開始位置および同期動作位置を変更したとしても、各ロボットの移動速度および移動距離などを調整する必要がない。したがって、ロボット動作を行うための準備作業に費やす時間を小さくすることができ、利便性を向上することができる。また本発明では、同時に動作すべき全てのロボットが動作完了状態となってから、同時に次の動作を開始するので、ロボットの制御周期ずれ、溶接作業などの動作完了時間のばらつきなどに起因する動作のずれを防ぐことができる。これによって同時に動作すべき動作を連続して複数回行っても、各ロボット同士の動作のずれが累積することがなく、各ロボットの同期動作を安定して行うことができる。
【発明を実施するための最良の形態】
【００４５】
図１は、本発明の実施の一形態であるプレス設備２０を示すブロック図である。プレス設備２０は、複数のプレス装置２２と、プレス装置２２間にわたってワーク２４を搬送する複数のロボット２１と、各ロボット２１をそれぞれ制御するロボットコントローラ２３と、各ロボットコントローラ２３を通信可能に接続するための通信手段を構成するハブ（Ｈｕｂ）２５とを含んで構成される。本実施の形態では、プレス設備２０は、３つのプレス装置２２Ａ〜２２Ｃと、４つのロボット２１Ａ〜２１Ｄとが設けられる。
【００４６】
ロボット２１は、多軸ロボットであって、本実施の形態では６軸垂直多関節型ロボットによって実現される。ロボット２１は、床上に設置される基台上に、旋回体が設けられる。旋回体には、複数のアームが各軸まわりに角変位可能に設けられる。最も遊端部のアームの先端部には、手首が設けられる。この手首にはワーク２４を着脱可能に把持するロボットハンド１９が設けられる。ロボットハンド１９は、ロボット２１に設けられる基準可動部となる。
【００４７】
各ロボット２１は、各アームの回転軸毎にサーボモータがそれぞれ設けられる。各サーボモータは、各アームをそれぞれ個別に動作させる。各サーボモータがそれぞれ個別に角変位して各アームを変位駆動することによって、ロボットハンド１９を任意の位置および姿勢に移動させることができる。
【００４８】
各ロボット２１および各プレス装置２２は、ワーク２４の搬送方向４０に並んで配置される。また各プレス装置２２は、ロボット２１間に配置される。具体的には、第１プレス装置２２Ａは、第１ロボット２１Ａと第２ロボット２１Ｂとの間に配置される。第２プレス装置２２Ｂは、第２ロボット２１Ｂと第３ロボット２１Ｃとの間に配置される。第３プレス装置２２Ｃは、第３ロボット２１Ｃと第４ロボット２１Ｄとの間に配置される。ワーク２４は、各ロボットによって、搬送方向４０に搬送されるうちに、第１〜第３プレス装置２２Ａ〜２２Ｃによって順番にプレス加工される。
【００４９】
各プレス装置２２Ａ〜２２Ｃは、プレス加工動作のタイミングが同じとなるように設定される。すなわち各プレス装置２２Ａ〜２２Ｃは、上型と下型とが近接してワークをプレスするプレス期間と、上型と下型とが離れてワークの回収および供給を施わせる準備期間とがそれぞれ一致する。たとえば各プレス装置２２は、１つの動力源からの動力が、動力伝達機構によって伝達されて、下型に対して上型がそれぞれ同時に往復動作するように構成される。
【００５０】
第１ロボット２１Ａは、取り台２６に複数用意されるワーク２４のうちから１つを把持し、把持したワーク２４を第１プレス装置２２Ａに供給する。第２ロボット２１Ｂは、第１プレス装置２２Ａでプレスされたワーク２４を把持し、把持したワーク２４を第２プレス装置２２Ｂに供給する。第３ロボット２１Ｃは、第２プレス装置２２Ｂでプレスされたワーク２４を把持し、第３プレス装置２２Ｃに供給する。第４ロボット２１Ｄは、第３プレス装置２２Ｃでプレスされたワーク２４を把持し、把持したワーク２４を置き台２７に移載する。
【００５１】
各ロボット２１は、各プレス装置２２の上型と下型とが離反した準備期間のうちに、取り台２６または搬送方向上流側のプレス装置２２からワーク２４を回収して、回収したワーク２４を置き台２７または搬送方向下流側のプレス装置２２に供給する。ワーク供給後にプレス期間に移行して、プレス装置２２の上型と下型とが近接することで、プレス装置２２に配置されたワーク２４がプレスされる。次に準備期間に移行することで、プレスされたワーク２４が次のプレス装置２２または置き台２７に配置される。このように準備期間とプレス期間とが繰返され、準備期間のうちにロボット２１によるプレス装置間搬送が行われることで、第１〜第３プレス装置２２によってプレスされたプレス後のワーク２４が、置き台２７に順次搬送される。
【００５２】
各ロボットコントローラ（以下、単にコントローラと称する）２３は、ロボット毎に設けられ、それぞれ対応するロボット２１を制御するロボットの制御装置となる。各コントローラ２３は、イーサネット（登録商標）規格に従って、ＬＡＮケーブルによってハブ２５に接続される。これによって各コントローラ２３は、相互に通信可能となる。ここで「イーサネット」とは、米国電気学会（略称ＩＥＥＥ；Institute of Electrical and
Electronic Engineers）および国際標準化機構（略称ＩＳＯ；International
Organization for Standardization）によって、ＩＥＥＥ８０２．３およびＩＳＯ８８０２−３として標準化されたＬＡＮ（Local Area Network）の通信規格である。
【００５３】
第１プレス装置２２Ａに関して、上型と下型とが離反した準備期間のうちに、第２ロボット２１Ｂがワーク２４を回収するとともに、第１ロボット２１Ａがワーク２４を供給する。したがってロボット２１の動作タイミングが不適切であると、第１ロボット２１Ａと第２ロボット２１Ｂとが第１プレス装置２２Ａ近傍で干渉するおそれがある。このことは、第２プレス装置２２Ｂ、第３プレス装置２２Ｃに関しても同様に生じる。本実施形態では、各コントローラ２３が対応するロボット２１の移動速度を最適に設定することによって、プレス装置近傍でのロボット同士の干渉を防ぐことができる。
【００５４】
図２は、コントローラ２３の機能的構成を示すブロック図である。本実施の形態では、ロボット２１毎に設けられる各コントローラ２３は、それぞれ同様の構成を有する。したがって第１コントローラ２３Ａについて説明し、残余のコントローラ２３Ｂ〜２３Ｄについての説明は省略する。
【００５５】
コントローラ２３は、予め記憶されるプログラムに従ってロボットハンド１９を移動させるために必要なロボット２１の各サーボモータの動作量を決定する。そしてその動作量を、たとえば電流値として各サーボモータにそれぞれ与えることによって、ロボットハンド１９を、予め定められる移動経路、移動速度および移動姿勢で移動させることができる。
【００５６】
コントローラ２３は、インターフェース部３０と、ロボット動作演算部３１と、制御部３６とを有する。インターフェース部３０は、外部装置または作業者に対する情報の受渡しを行う。ロボット動作演算部３１は、予め定められる制御時間間隔毎にロボットハンド１９が移動すべき移動位置を演算する。また制御部３６は、ロボットハンド１９が制御時間間隔毎に移動位置に移動するように、各サーボモータ４５に電流を供給する。なお、コントローラ２３内の各構成は、バスラインなどによって相互に通信可能に接続される。
【００５７】
インターフェース部３０は、第１ＣＰＵ３２と、第１メモリ３３と、入出力部３４とを含んで構成される。入出力部３４は、コントローラ２３と外部装置との情報の入出力動作、またはコントローラ２３と作業者との情報の入出力動作を行う。本実施の形態では、入出力部３４には、ティーチペンダントがケーブルによって接続される。ティーチペンダントは、作業者がロボット２１に動作位置を教示するための入力部となる。
【００５８】
また入出力部３４は、ティーチペンダントのほかに、他の外部装置に接続可能に構成されることで、コントローラ２３と外部装置との情報の入出力動作を行うことができる。このようにコントローラ２３は、ティーチペンダント以外の装置からも、ロボット動作情報を取得可能である。またティーチペンダントと同様の機能を有する操作部および表示部がコントローラ２３の筐体部に設けられてもよい。
【００５９】
第１ＣＰＵ３２は、入出力部３４の入出力動作を制御し、たとえば中央演算回路（
Central Processing Unit）によって実現される。第１メモリ３３は、第１ＣＰＵ３２の演算プログラムおよびロボット動作情報を記憶する。また第１メモリ３３は、第１ＣＰＵ３２から与えられる演算結果を記憶する。
【００６０】
第１ＣＰＵ３２は、第１メモリ３３に記憶される演算プログラムを実行することによって、第１メモリ３３に記憶されるロボット動作情報を解読し、ロボット動作情報に従ったロボット動作計画を生成する。そして第１ＣＰＵ３２は、生成したロボット動作計画をロボット動作演算部３１に与える。
【００６１】
たとえばロボット動作情報には、ロボットハンド１９の移動開始位置、移動終了位置、通過位置、移動経路を決定するために必要な移動経路決定情報、移動速度、ロボットハンド１９の開閉位置と開閉指令、ロボットが次の動作計画を実行可能となる動作完了条件などのロボットを動作するために必要な情報によって構成される。本実施形態では、ロボット動作情報は、ロボットハンド１９の往路動作を示すロボット往路動作プログラムと、復路動作を示すロボット復路動作プログラムとを含む。
【００６２】
ロボット往路動作プログラムは、取り台２６または搬送方向上流側のプレス装置２１からワーク２４を回収して、回収したワーク２４を搬送方向下流側のプレス装置２１または置き台２７に供給するまでのロボットハンド１９の動作プログラムである。またロボット復路動作プログラムは、ワーク２４を供給した後で、搬送方向下流側のプレス装置２１から搬送方向上流側のプレス装置２１に移動するまでのロボットハンド１９の動作プログラムである。
【００６３】
また第１ＣＰＵ３２によって生成されるロボット動作計画は、ロボット動作プログラムがコンピュータ処理可能に解読された情報である。本実施の形態では移動開始位置および移動終了位置のそれぞれの座標と、移動経路を示す情報と、ロボットハンド１９の移動速度の時間変化を示す情報を含む。
【００６４】
ロボット動作演算部３１は、コントローラ通信部３７と、パワーシーケンス部３８と、第２ＣＰＵ３９と、第２メモリ４０とを含んで構成される。コントローラ通信部３７は、他のコントローラの通信部とに対して通信可能に設けられる。パワーシーケンス部３８は、各サーボモータ４５の始動手順および終了手順など、ロボットの動作計画とは無関係に設定されるロボット動作プログラムを記憶および実行する。
【００６５】
第２ＣＰＵ３９は、第１ＣＰＵ３２からロボット動作計画が与えられると、ロボット動作計画に基づいて、移動経路の補間処理を行い、ロボットハンド１９が移動する移動経路上の複数の移動位置を演算する。具体的には、第２ＣＰＵ３９は、ロボット動作計画に示される移動速度と、加減速時における加速度と、移動開始位置と移動終了位置とに基づいて、各移動位置を演算する。ここで移動位置は、ロボットハンド１９を予め定められる移動経路に沿って移動させるときの、予め定められる制御時間間隔毎にロボットハンド１９が順次移動する位置である。本実施形態では、ロボットハンド１９の移動位置は、ロボットハンド１９の位置と姿勢とを表わす同時変換行列によって表わされる。また第２ＣＰＵ３９は、計算したロボットハンド１９の移動位置を逆変換演算して、ロボットハンド１９を目的とする移動位置に移動させるような、各ロボットアームの目標変位位置をそれぞれ求める。第２メモリ４０は、第２ＣＰＵ３９の演算プログラムを記憶するとともに、第２ＣＰＵ３９から与えられる演算結果を記憶する。
【００６６】
制御部３６は、第３ＣＰＵ４２と、第３メモリ４３と、アンプ４４とを含んで構成される。第３メモリ４３は、第３ＣＰＵ４２の演算プログラムを記憶するとともに、第３ＣＰＵ４２から与えられる演算結果を記憶する。また第３メモリ４３は、第２ＣＰＵ３９が制御時間間隔毎に求めた目標変位位置を順番に記憶する。
【００６７】
第３ＣＰＵ４２は、第３メモリ４３から目標変位位置を順番に読出して、各ロボットアームが前記目標変位位置に移動するような、各サーボモータ４５の動作量指令値を決定する。具体的には、第３ＣＰＵ４２は、各サーボモータ４５に設けられるエンコーダからそれぞれ検出される各アームの検出変位位置を取得し、前記目標変位位置と検出変位位置とに基づいて、フィードバック制御によって各サーボモータ４５の動作量指令値を求める。
【００６８】
このようにして第３ＣＰＵ４２は、制御時間間隔毎に各サーボモータ４５の動作量指令値を演算し、各サーボモータの動作量指令値を対応する各アンプ４４に個別に与える。各アンプ４４は、第３ＣＰＵ４２から与えられる動作量指令値に基づいて、サーボモータ４５の動作量指令値にしたがった電流を、対応するサーボモータ４５に与える。これによって各サーボモータ４５は、第３ＣＰＵ４２が演算した目標変位位置にロボットアームを移動させ、ロボットハンド１９を移動位置に移動させることができる。このようにしてロボットハンド１９の移動位置を制御時間間隔毎に順時変化させることによって、ロボットハンド１９を移動経路に沿って移動させることができる。
【００６９】
本実施の形態では、各コントローラ２３は、ロボットハンド１９を、ロボット毎に設定される移動開始位置から同期動作位置に移動させた状態で、各ロボットの動作を同時に行わせることができる。この場合、第１ＣＰＵ３２は、移動開始位置から同期動作位置まで、ロボットハンド１９を最短時間で移動させるときの第１移動時間を計算する。したがって第１ＣＰＵ３２は、第１移動時間を計算する第１移動時間計算手段を兼ねる。第１ＣＰＵ３２は、計算した第１移動時間を第２ＣＰＵ３９に与える。
【００７０】
第２ＣＰＵ３９は、計算した第１移動時間の情報を、コントローラ通信部３７を介して、ハブ２５に与える。ハブ２５は、各コントローラ２３Ａ〜２３Ｄから与えられるすべての第１移動時間の情報を、コントローラ通信部３７を介して、各コントローラ２３Ａ〜２３Ｄの第２ＣＰＵ３９に与える。これによって各第２ＣＰＵ３９は、ロボット毎に計算されるすべての第１移動時間の情報を取得することができる。
【００７１】
第２ＣＰＵ３９は、取得したすべての第１移動時間の情報うちから、移動時間が最も長くなる第１移動時間を第２移動時間として決定する。したがって第２ＣＰＵ３９は、第２移動時間を決定する第２移動時間決定手段を兼ねる。第２ＣＰＵ３９は、停止せずに第２移動時間を費やして、ロボットハンド１９が移動開始位置から同期動作位置まで移動するような、ロボットハンド１９の速度変化の動作計画を生成する。したがって第２ＣＰＵ３９は、動作計画生成手段を兼ねる。具体的には、第２ＣＰＵ３９は、第１ＣＰＵ３２から与えられた動作計画を補正する演算を行うことになる。このようにして第２ＣＰＵ３９は、第２移動時間に応じたロボット動作計画を生成する。
【００７２】
また第２ＣＰＵ３９は、制御すべきロボットについて、予め定める動作完了条件が満たされたことを判断すると、ロボットが次の動作計画を実行可能となる動作完了状態を判断する。したがって第２ＣＰＵ３９は、動作完了状態を判断する動作完了判断手段を兼ねる。
【００７３】
本実施の形態では、動作完了条件として、（１）ロボットハンド１９が対応する同期動作位置に到達する、（２）ロボットハンド１９の次の動作における動作計画の計算が完了している、（３）ロボットハンド１９の信号待ちなどの待機条件が解除されているといった、（１）〜（３）の条件を全て満たす。なお、このような動作完了条件は、一例示であって他の条件であってもよい。
【００７４】
第２ＣＰＵ３９は、注目するロボットが行う現在の動作を終えて、動作完了状態となったことを判断すると、注目するロボットが動作完了状態に移行したことを示す情報を、コントローラ通信部３７を介して、ハブ２５に与える。ハブ２５は、各コントローラ２３Ａ〜２３Ｄから与えられる全ての動作完了状態の情報を、コントローラ通信部３７を介して、各コントローラ２３Ａ〜２３Ｄの第２ＣＰＵ３９に与える。これによって各第２ＣＰＵ３９は、ロボット毎に判断される全ての動作完了状態の情報を取得することができる。
【００７５】
第２ＣＰＵ３９は、注目するロボットが複数のロボットと同期動作する場合、同期動作すべき全てのロボットが動作完了状態に移行したことを判断すると、次の動作計画を実行する。また第２ＣＰＵ３９は、注目するロボットが単独動作する場合、注目するロボットが動作完了状態に移行したことを判断すると、次の動作計画を実行する。
【００７６】
第２ＣＰＵ３９は、次の動作計画を実行すると、その次の動作計画に基づいて、移動経路の補間処理を行い、ロボットハンド１９が移動する移動経路上の複数の移動位置を演算する。そして第２ＣＰＵ３９は、演算した移動位置を第３ＣＰＵ４２に順次与える。第３ＣＰＵ４２は、与えられた移動位置に移動するように、各サーボモータ４５の動作量指令値を決定し、サーボモータ４５を制御する。これによってロボット動作演算部３１および制御部３６は、ロボットを制御するロボット制御手段となる。
【００７７】
また本実施の形態では、コントローラ２３には、ロボットの動作停止を指令する停止スイッチ４５が設けられる。停止スイッチ４５は、作業者または各センサなどから与えられる情報によって、ロボットの停止指令の入力を判断すると、停止信号をパワーシーケンス部３８に与える。パワーシーケンス部３８は、停止信号が与えられると、ロボットを停止する停止動作を実行する。またパワーシーケンス部３８は、コントローラ通信部３７およびハブ２５を介して、他のコントローラ２３に停止信号を与える。そして各コントローラ２３は、自身が制御するロボットに対して同期動作すべきロボットを制御するコントローラから停止信号が与えられると、ロボットの動作を停止させる。
【００７８】
たとえば指令スイッチ４５は、ロボットの異常状態を検出する異常状態検出手段であってもよい。この場合、停止スイッチ４５は、作業者または各センサなどから与えられる情報によってロボットの異常を判断すると、停止信号をパワーシーケンス部３８に与える。
【００７９】
また入出力部３４は、作業者または各センサなどから与えられる情報によって、ロボットの再開指令の入力を判断すると、再開信号をパワーシーケンス部３８に与える。パワーシーケンス部３８は、コントローラ通信部３７およびハブ２５を介して、他のコントローラ２３に再開信号を与える。そして各コントローラ２３は、自身が制御するロボットに対して同期動作すべきロボットを制御するコントローラから再開信号が与えられると、ロボットの動作を再開させる。たとえば作業者などから、異常状態が解消されたことを示す再開信号が入出力部３４から与えられると、各ロボットは、停止前の動作を継続するように動作を再開する。したがって停止スイッチ４５および入出力部３４は、ロボットの動作停止および動作再開を指令する動作指令手段となる。
【００８０】
図３は、コントローラ２３によるロボット制御手順を示すフローチャートである。ロボットハンド１９の移動経路に沿って配置される複数の教示位置、ロボットハンドの速度設定、加速度設定、ロボットハンドの開閉位置、動作完了条件などの情報を示すロボット往路動作プログラムが第１メモリ３３に記憶された状態で、入出力部３４に、作業者または外部装置からロボットハンド１９の動作開始指令が与えられると、ステップａ１に進み、ロボット制御動作を開始する。ここで、複数の教示位置は、ロボットハンド１９の移動開始位置、第１〜第ｍ通過位置および移動終了位置を含む。往路動作プログラムは、ロボットが往路動作を行う場合に行うべき複数の動作ステップが動作順に記載されるプログラムである。
【００８１】
ステップａ１では、第１ＣＰＵ３２が、ロボットハンド１９を次に移動させるべき動作ステップを第１メモリ３３から読み出す。そして第１ＣＰＵ３２は、教示位置のうちで注目すべき動作ステップにおける移動開始位置と移動終了位置とを抽出し、その間を最短で移動するロボットハンド１９の速度変化と、移動に費やす最短時間となる第１移動時間とを含む第１動作計画を計算する。そして計算した第１動作計画を第１メモリ３３に記憶させ、ステップａ２に進む。このようにステップａ１では、第１ＣＰＵ３２は、現時点でロボット２１が行っている動作ステップよりも１つ後の動作ステップにおける第１動作計画を計算する。そして第１ＣＰＵ３２は計算した動作計画を第２ＣＰＵ３９に与える。
【００８２】
たとえばロボットハンド１９が移動開始前であれば、移動開始位置から第１通過位置までの第１動作計画を求め、第１メモリ３３に記憶させる。またロボットハンド１９が第ｎ−１通過位置から第ｎ通過位置を通過中であれば、第ｎ通過位置から第ｎ＋１通過位置までの第１動作計画を求め、第１メモリ３３に記憶させる。またロボットハンド１９が第ｍ−１通過位置から第ｍ通過位置を通過中であれば、第ｍ通過位置から移動終了位置までの第１動作計画を求め、第１メモリ３３に記憶させる。ここでｎ，ｍは、自然数である。
【００８３】
ステップａ２では、第１ＣＰＵ３２は、現時点でロボット２１が行っている動作ステップよりも、１つ後の動作ステップにおいて、他のロボットと同期動作を行うよう設定されているか否かを判断する。同期動作を行うよう設定されていると判断すると、ステップａ３に進み、そうでないとステップａ１１に進む。
【００８４】
ステップａ３では、第２ＣＰＵ３９は、ステップａ１で計算した第１動作計画のうち、第１移動時間の情報をＬＡＮケーブルおよびハブ２５を介して、他のコントローラ２３の第２ＣＰＵ３９に送信する。また第２ＣＰＵ３９は、他のコントローラ２３の第２ＣＰＵ３９から与えられる他のロボットの第１動作計画のうち第１移動時間の情報を受信する。このようにして、同期すべき各ロボットを制御する各コントローラ２３が、同期すべきロボット毎の各第１移動時間の情報を取得すると、ステップａ４に進む。
【００８５】
ステップａ４では、第２ＣＰＵ３９は、ステップａ３で取得した各第１移動時間の情報のうちで、最も長くなる第２移動時間を決定し、ステップａ５に進む。ステップａ５では、第２ＣＰＵ３９は、ステップａ１で計算した第１動作計画に代えて、ステップａ４で決定した第２移動時間を費やして、各ロボットハンド１９を移動開始位置から移動終了位置に停止させずに移動させるような、第２動作計画を再計算し、ステップａ６に進む。
【００８６】
ステップａ６では、第２ＣＰＵ３９は、同期動作すべき各ロボット２１のロボットハンド１９が、ステップａ５で再計算した動作計画における同期動作位置に到達するなどして、注目するロボットが動作完了状態に移行したことを判断すると、動作完了状態に移行したことを示す情報を、ＬＡＮケーブルおよびハブ２５を介して、他のコントローラ２３の第２ＣＰＵ３９に送信し、ステップａ７に進む。
【００８７】
ステップａ７では、第２ＣＰＵ３９は、他のコントローラ２３の第２ＣＰＵ３９が判断した他のロボットの動作完了状態の情報を受信する。そして同期動作すべき各ロボットの準備が完了して、動作完了状態に移行したことを判断すると、ステップａ８に進む。本実施の形態では、第２ＣＰＵ３９は、ステップａ７で、（１）同期すべき各ロボットハンドが対応する同期動作位置に到達する、（２）同期すべき全ロボットハンドの次の動作ステップにおける動作計画の計算が完了している、（３）同期すべき全ロボットハンドの信号待ちなどの待機条件が解除されているといった、条件を全て満たしたことを判断すると、ステップａ８に進む。
【００８８】
ステップａ８では、第２ＣＰＵ３９は、第２動作計画に従った移動位置を補間演算し、演算結果を第３ＣＰＵ４２に与える。第３ＣＰＵ４２は、第２動作計画に従うような、サーボモータの電流指令値をサーボアンプに与える。したがって第２動作計画に従うように、ロボット２１が動作する。第２ＣＰＵ３９は、ステップａ５で再計算した第２動作計画に従った移動位置を補間演算した演算結果を第３ＣＰＵ４２に順次与える。第３ＣＰＵ４２は、第２動作計画に従うような、サーボモータの電流指令値をサーボアンプに与える。したがって第２動作計画に従うように、ロボット２１が動作する。このように第２ＣＰＵ３９が演算結果を第３ＣＰＵ４２に与えると、ステップａ９に進む。
【００８９】
ステップａ９では、第１ＣＰＵ３２は、往路動作プログラムに含まれる動作ステップのうち最後の動作ステップに関する動作計画を第２ＣＰＵ３９に与えたか否かを判断し、与えていないと判断すれば、ステップａ１に戻る。与えていると判断すればステップａ１０に進み、動作を終了する。
【００９０】
またステップａ２において、第１ＣＰＵ３２は、現時点でロボット２１が行っている動作ステップよりも、１つ後の動作ステップにおいて、他のロボットと同期動作を行うよう設定されていないと判断すると、ステップａ１１に進む。ステップａ１１では、第２ＣＰＵ３９は、ロボットハンド１９がステップａ１で計算した第１動作計画における動作目標位置に到達するなどして、注目するロボットが動作完了状態に移行したことを判断すると、動作完了状態に移行したことを示す情報を、ＬＡＮケーブルおよびハブ２５を介して、他のコントローラ２３の第２ＣＰＵ３９に送信し、ステップａ１２に進む。
【００９１】
ステップａ１２では、第２ＣＰＵ３９は、注目すべきロボットの準備が完了して、そのロボットが動作完了状態に移行したことを判断して、ステップａ１３に進む。本実施の形態では、第２ＣＰＵ３９は、ステップａ１２で、（１）自ロボットハンドが対応する動作目標位置に到達する、（２）自ロボットハンドの次の動作ステップにおける動作計画の計算が完了している、（３）自ロボットハンドの信号待ちなどの待機条件が解除されているといった、条件を全て満たし、自ロボットの準備が完了すると、ステップａ１３に進む。
【００９２】
ステップａ１３では、第２ＣＰＵ３９は、ステップａ１で計算した第１動作計画に従った移動位置を補間演算した演算結果を第３ＣＰＵ４２に与える。第３ＣＰＵ４２は、第１動作計画に従うような、サーボモータの電流指令値をサーボアンプに与える。したがって第１動作計画に従うように、ロボット２１が動作する。このように第２ＣＰＵ３９が、演算結果を第３ＣＰＵ４２に与えると、ステップａ９に進む。
【００９３】
このように第１ＣＰＵ３２、第２ＣＰＵ３９および第３ＣＰＵ４２が動作することによって、各ロボットハンド１９が同期動作位置に到達する時刻を同じにすることができる。言い換えると、第２ＣＰＵ３９が、ステップａ５で動作計画を再計算することによって、各ロボットハンド１９が同期動作位置に到達する時刻を同じにするために、作業者は手作業によって各ロボットのタイミング調整を行う必要がない。
【００９４】
図４および図５は、ステップａ５における動作計画の再計算を説明するためのグラフである。第１ロボット２１Ａのロボットハンド１９と、第２ロボット２１Ｂとのロボットハンド１９とを同期動作位置から同時に移動させる場合について説明する。図４は、ステップａ１において計算される第１動作計画を示す。また図５は、ステップａ５において計算される第２動作計画を示す。各ロボット２１の動作計画は、各ロボット２１の移動開始位置、同期動作位置、移動経路、設定速度、設定加速度、設定減速度、各軸の加速度能力、各軸の最高速度能力、各軸の減速度能力によって定まる。したがってそれぞれに設定される移動開始位置から同時に移動を開始したとしても、各ロボット２１Ａ，２１Ｂのロボットハンド１９が最短時間となる第１移動時間ｔｏｔ１，ｔｏｔ２で同期動作位置に到達する時刻が異なる。たとえば図４に示すように、第１ロボット２１Ａの第１移動時間ｔｏｔ１のほうが、第２ロボット２１Ｂの第１移動時間ｔｏｔ２よりも長い。
【００９５】
この場合、第１ロボット２１Ａの動作計画は、図４（１）および図５（１）に示すように、第１動作計画と第２動作計画とで同じとなる。これに対して第２ロボット２１Ｂの動作計画は、図４（２）および図５（２）に示すように、第２移動時間ｔｏｔ_ｍａｘは、第１移動時間ｔｏｔ２に比べて延長されて、第１ロボット２１Ａの第１移動時間ｔｏｔ１と等しくなるよう設定される。また第２動作計画では、また移動時間が延長された分、移動を開始してから停止するまでの平均移動速度が小さくなるよう設定される。これによって第１ロボット２１Ａのロボットハンド１９が同期動作位置に到達したときに、第２ロボット２１Ｂのロボットハンド１９を同期動作位置に到達させることができる。本実施の形態では、平均移動速度を低下させるために、移動時における最大移動速度のほかに、加速度および減速度も低下させる。
【００９６】
具体的には、ロボットハンド１９は、移動開始位置から同期動作位置まで移動するにあたって、加速、等速、減速移動を順に行って移動し、それぞれ加速時間ｔａ、等速時間ｔｓおよび減速時間ｔｄが設定される。ロボットハンド１９は、移動開始位置から移動を開始してから加速時間ｔａの間、予め定める加速度で加速し、予め定める速度Ｖに達する。また加速時間ｔａに達してから等速時間ｔｓの間、予め定める速度Ｖで等速移動する。また等速時間ｔｓに達してから減速時間ｔｄの間、減速する。そして減速時間ｔｄに達すると同期動作位置に到達して停止する。
【００９７】
図４（１）に示すように、第１動作計画における第１ロボット２１Ａのロボットハンド１９の、加速時間をｔａ１、等速時間をｔｓ１、減速時間をｔｄ１、等速時の速度をＶ１とする。また図４（２）に示すように、第１動作計画における第２ロボット２１Ｂのロボットハンド１９の、加速時間をｔａ２、等速時間をｔｓ２、減速時間をｔｄ２、等速時の速度をＶ２とする。また第１ロボットの第１移動時間をｔｏｔ１とし、第２ロボットの第１移動時間をｔｏｔ２とする。
【００９８】
また図５（１）に示すように、第２動作計画における第１ロボット２１Ａのロボットハンド１９の、加速時間をｔａ１１、等速時間をｔｓ１１、減速時間をｔｄ１１、等速時の速度をＶ１１とする。また図５（２）に示すように、第２動作計画における第２ロボット２１Ｂのロボットハンド１９の、加速時間をｔａ２１、等速時間をｔｓ２１、減速時間をｔｄ２１、等速時の速度をＶ２１とする。また第１ロボット２１Ａと第２ロボット２１Ｂとの第１移動時間ｔｏｔ１，ｔｏｔ２のうち、最大となる第１移動時間が第２移動時間となり、第２移動時間をｔｏｔ_ｍａｘとする。
【００９９】
この場合、第２ＣＰＵ３９は、以下の演算式を計算することによって、各ロボット２１の第２動作計画を計算することができる。
ｔａ１１＝ｔａ１・ｔｏｔ_ｍａｘ／ｔｏｔ１
ｔｓ１１＝ｔｓ１・ｔｏｔ_ｍａｘ／ｔｏｔ１
ｔｄ１１＝ｔｄ１・ｔｏｔ_ｍａｘ／ｔｏｔ１
Ｖ１１＝Ｖ１・ｔｏｔ１／ｔｏｔ_ｍａｘ
ｔａ２１＝ｔａ２・ｔｏｔ_ｍａｘ／ｔｏｔ２
ｔｓ２１＝ｔｓ２・ｔｏｔ_ｍａｘ／ｔｏｔ２
ｔｄ２１＝ｔｄ２・ｔｏｔ_ｍａｘ／ｔｏｔ２
Ｖ２１＝Ｖ２・ｔｏｔ２／ｔｏｔ_ｍａｘ
【０１００】
このような演算式に従うことによって、第２動作計画における、各ロボットの加速時間ｔａ１１，ｔａ２１、等速時間ｔｓ１１，ｔｓ２１、減速時間ｔｄ１１，ｔｄ２１、移動速度Ｖ１１，Ｖ２１を計算することで、ロボット毎にそれぞれ設定される同期動作位置に、各ロボットハンド１９を同時に到達させることができる。
【０１０１】
本実施形態では、第２ロボット２１Ｂの動作計画のように、決定される第２移動時間ｔｏｔ_ｍａｘが、第１移動時間ｔｏｔ２よりも長い場合、第１移動時間ｔｏｔ２で移動させる場合に比べて、ロボットハンド１９の速度とともに、加速度および減速度を低下させるよう第２動作計画を生成する。これによって移動開始位置から同期動作位置に移動させるうちの速度のみを低下する場合に比べて、エネルギー消費をさらに低下させることができる。また上述する簡単な演算式を用いることによって、第２動作計画を短時間で計算することができる。
【０１０２】
なお、このような演算式は、本発明の一例である。たとえば等速時の移動速度を低減して加速度および減速度を再計算前と同じにした場合、加速度および減速度を低減して等速時の移動速度を再計算前と同じにした場合であっても、各ロボットハンド１９を同期動作位置に同時に到達させることができる。すなわち各ロボットハンド１９が、移動開始位置から同時に移動を開始して、同期動作位置に同時に到達するような速度変化であればどのような速度変化であってもよい。また２つのロボットの同期について説明したが、同期させるロボットの数が３つ以上である場合であっても、同様の演算式によって求めることができる。
【０１０３】
図６は、本実施の形態の各ロボットの動作を示す図である。各ロボットは、図６（１）〜図６（４）の順に動作を行い、図６（４）に示す動作を終えると、図６（１）の動作に戻って、再び図６（１）〜図６（４）の順に動作を行う。
【０１０４】
プレス装置２２の上型と下型とが離れた準備期間において、第１段階として、図６（１）に示すように、各ロボット２１は、取り台２６または搬送方向４０上流側のプレス装置２２に配置されるワーク２４を把持する。次に第２段階として、図６（２）に示すように、各ロボット２１は、把持したワーク２４を搬送方向４０下流側に搬送する。次に第３段階として、図６（３）に示すように、各ロボット２１は、把持したワーク２４を搬送方向下流側のプレス装置２２または置き台２７に配置されるワーク２４を供給する。
【０１０５】
このような動作が完了して、各ロボット２１が各プレス装置２２の近傍から離反したあとで、各プレス装置２２は、準備期間からプレス期間に移行する。これによって上型と下型とが近接して、プレス位置に配置されたワーク２４をプレスする。この間に各ロボット２１は、搬送方向４０上流側に向かって移動する。ワーク２４のプレス加工が完了すると、プレス期間から準備期間に移行して上型と下型とが離反する。そして準備期間におけるロボットの動作、すなわち第１段階〜第３段階の動作が再び行われる。各ロボット２１は、第１〜第３段階において、移動開始位置と同期動作位置とがそれぞれロボット毎に設定され、ロボットハンド１９を移動開始位置から同期動作位置に移動させた状態で、各ロボットの動作が同時に行われる。
【０１０６】
図７は、第１ロボット２１Ａと第２ロボット２１Ｂとのロボットハンド１９の移動速度変化を示すグラフである。図７（１）は、第１ロボット２１Ａのロボットハンド１９の移動速度の時間変化を示す。図７（２）は、第２ロボット２１Ｂのロボットハンド１９の移動速度の時間変化を示す。図７に図示する破線は、第１動作計画における各ロボットハンド１９の移動速度の時間変化を示す。また図７に図示する実線は、第２動作計画における各ロボットハンド１９の移動速度の時間変化を示す。
【０１０７】
図１に示すように、第１コントローラ２３Ａは、待機位置ａｘと初期位置ａ０と第１〜第３位置ａ１〜ａ３とが予め教示される。待機位置ａｘは、第１ロボット２１Ａのロボットハンド１９が待機する位置である。初期位置ａ０は、第１ロボット２１Ａが取り台２６からワーク２４を把持する把持位置である。また第１位置ａ１は、初期位置ａ０からワーク搬送経路に沿って、搬送方向４０に所定距離移動した位置である。第２位置ａ２は、第１位置ａ１からワーク移動経路に沿って、搬送方向４０に所定距離移動した位置である。第３位置ａ３は、第２位置ａ２から第１プレス装置２２Ａにワーク２４を配置する配置位置である。
【０１０８】
また第２コントローラ２３Ｂは、待機位置ｂｘと初期位置ｂ０と第１〜第３位置ｂ１〜ｂ３とが予め教示される。待機位置ｂｘは、第２ロボット２１Ｂのロボットハンド１９が待機する位置である。初期位置ｂ０は、第２ロボット２１Ｂが第１プレス装置２２Ａからワーク２４を把持して所定距離移動した位置である。また第１位置ｂ１は、初期位置ｂ０からワーク搬送経路に沿って、搬送方向４０に所定距離移動した位置である。第２位置ｂ２は、第１位置ｂ１からワーク移動経路に沿って、搬送方向４０に所定距離移動した位置である。第３位置ｂ３は、第２位置ｂ２から第２プレス装置２２Ｂにワーク２４を配置してから、搬送方向４０下流側に所定距離移動した位置である。
【０１０９】
各ロボットハンド１９が初期位置ａ０，ｂ０から第１位置ａ１，ｂ１に移動する動作ステップにおいては、初期位置ａ０，ｂ０が移動開始位置となり、第１位置ａ１，ｂ１が同期動作位置となる。同様に各ロボットハンド１９が第ｎ位置ａｎ，ｂｎから第ｎ＋１位置ａｎ＋１，ｂｎ＋１に移動する動作ステップにおいては、第ｎ位置ａｎ，ｂｎが移動開始位置となり、第ｎ＋１位置ａｎ＋１，ｂｎ＋１が同期動作位置となる。ここで、ｎは自然数である。各コントローラ２３は、各ロボットのロボットハンド１９が、それぞれ設定される第１〜第３位置ａ１〜ａ３，ｂ１〜ｂ３に達すると、同時に移動を開始するようにロボットを制御する。
【０１１０】
各コントローラ２３は、動作指令が与えられると、ロボットハンド１９を待機位置ａｘ，ｂｘから初期位置ａ０，ｂ０に移動させる最短時間の第１動作計画を演算する（ステップａ１）。待機位置ａｘ，ｂｘから初期位置ａ０，ｂ０に移動させる場合には、同期動作すべきことが定められていないので、第１動作計画に従ってロボットハンドを初期位置ａ０，ｂ０にそれぞれ移動させる（ステップａ１１）。各ロボットハンド１９は、移動距離、搬送経路などが異なるので、初期位置ａ０，ｂ０に到達する時間ｔａ０，ｔｂ０が異なる。
【０１１１】
各コントローラ２３は、ロボットハンドを待機位置ａｘ，ｂｘから初期位置ａ０，ｂ０に移動させる間に、次の動作ステップ、すなわち初期位置ａ０，ｂ０から第１位置ａ１，ｂ１に移動させる動作ステップにおける動作計画を計算する（ステップａ１）。初期位置ａ０，ｂ０から第１位置ａ１，ｂ１に移動させる場合には、第１位置ａ１，ｂ１にそれぞれ同時に到達させるための動作を行って第２動作計画を計算する（ステップａ３〜ａ５）。これによって初期位置ａ０，ｂ０から移動を開始してから第１位置ａ１，ｂ１に到達するまでの移動時間が、ロボットハンド毎に同じになる。このとき図７（１）に示すように、第１ロボットハンド１９の第２移動時間ｔ４が、第１移動時間ｔ３よりも長く設定された場合には、第２動作計画における移動速度Ｖ４は、第１動作計画における移動速度Ｖ３よりも低く設定される。
【０１１２】
各コントローラ２３は、ロボットハンド１９を初期位置ａ０，ｂ０から第１位置ａ１，ｂ１に移動させる間に、次の動作、すなわち第１位置ａ１，ｂ１から第２位置ａ２，ｂ２に移動させる動作計画を計算する（ステップａ１）。第１位置ａ１，ｂ１から第２位置ａ２，ｂ２から移動させる場合には、第２位置ａ２，ｂ２にそれぞれ同時に到達させるための動作を行って動作計画を再計算する（ステップａ３〜ａ５）。これによって第１位置ａ１，ｂ１から移動を開始してから第２位置ａ２，ｂ２に移動するまでの移動時間が、ロボット毎に同じになる。
【０１１３】
このようにして本実施形態では、同期動作位置から各ロボット２１の動作を同時に行わせる場合、コントローラ２３が同期動作位置まで到達するロボットハンド１９の速度を調整して、各ロボット２１が同時に同期動作位置に到達するように、その前の動作ステップのうちに動作計画を計算しておく。これによって不必要にロボットハンド１９を停止させる必要がない。
【０１１４】
図８は、各ＣＰＵの同期処理機能を説明するための図である。本実施の形態では、各コントローラ２３に設けられるＣＰＵは、制御周期のずれを抑えるよう構成される。各ＣＰＵは、同様な同期処理機能を有する。本実施の形態では、複数のコントローラ２３のうちの１つのコントローラ２３の第２ＣＰＵ３９が送信側ＣＰＵとなり、残余の第２ＣＰＵが受信側ＣＰＵとなる。また送信側ＣＰＵによって制御されるロボットが送信側ロボットとなり、受信ＣＰＵによって制御されるロボットが受信側ロボットとなる。送信側ＣＰＵから所定の制御周期Ｗで時刻ｔａ１，ｔａ２，ｔａ３，…毎に送信された指令信号は、ケーブルなどを介して受信側ＣＰＵに前回の受信側ロボットへの制御時刻ｔｂ０，ｔｂ１，ｔｂ２…から所定時間Δｔ１，Δｔ２，Δｔ３，…経過後の各時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…において時系列的に受信される。
【０１１５】
このような送信側ＣＰＵから受信側ＣＰＵへの動作指令のケーブルを介する送信では、各ＣＰＵに内蔵される水晶発振器の個体差による発振周波数の微小な誤差に起因する受信時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…の送信時刻ｔａ１，ｔａ２，ｔａ３…に対する通信遅れ時間が存在するため、前記送信側ＣＰＵによって制御される送信側ロボットの動作に対して受信側ＣＰＵによって制御される受信側ロボットの動作のずれが発生し、同一時刻における各ロボット間の相対位置のずれは、作業精度上、無視できなくなってしまう。
【０１１６】
上記通信遅れ時間は、図８において、送信側ＣＰＵが送信時刻ｔａ１で指令１を送信すると、送信された指令１は受信側ＣＰＵに受信時刻（ｔｂ０＋Δｔ１）で受信される。この受信時刻（ｔｂ０＋Δｔ１）は、受信側ＣＰＵが自己が制御対象とするロボットに対する前回の制御時刻ｔｂ０から所定時間Δｔ１が経過した時刻であり、受信側ＣＰＵの最小割込み周期Ｔｓ（ｂ）を４カウント目のタイミング信号の発振時刻で受信している。
【０１１７】
次に、１制御周期が経過した後の時刻ｔａ２で、送信側ＣＰＵが指令２を送信し、この指令２は受信側ＣＰＵによって、次の受信時刻（ｔｂ１＋Δｔ２）で受信されるが、上記のように受信側ＣＰＵに内蔵される水晶発振器は、送信側ＣＰＵに内蔵される水晶発振器に対して、各ＣＰＵ毎に水晶発振器の個体差による発振周波数の微小な誤差が存在するため、最小割込み周期Ｔｓ（ｂ）の１カウント目と２カウント目との間に到達した指令２は、前回の制御時刻ｔｂ１からみて２カウント目の時刻（ｔｂ１＋Δｔ２）で受信される。このように前回の制御時刻ｔｂ１からタイミング信号が３カウント未満で指令２を受信したときには、受信側の制御装置Ｃｂは自己の最小割込み周期Ｔｂ（ｂ）を短くし、受信時刻（ｔｂ１＋Δｔ２）が３カウント目以上でかつ５カウント目以下になるように制御する。
【０１１８】
また、送信側ＣＰＵが時刻ｔａ３で送信した指令３は、受信側ＣＰＵに前回の制御時刻ｔｂ２からみて５カウント目と６カウント目との間に到達しているため、６カウント目で受信され、受信側ＣＰＵは受信側ロボットに対して制御時刻ｔｂ３で制御する。したがって受信側ＣＰＵは、自己の最小割込み周期Ｔｓ（ｂ）を長くして、受信時刻（ｔｂ２＋Δｔ３）が前回の制御時刻ｔｂ２から３カウント目以上でかつ５カウント目以下になるように制御する。
【０１１９】
このようにして受信側ＣＰＵは、送信側ＣＰＵから各指令１，２，３,…が送信される時刻ｔａ１、ｔａ２，ｔａ３，…から、受信側ＣＰＵによって受信されて、この受信側ＣＰＵが受信側ロボットの制御を開始する時刻ｔｂ１,ｔｂ２,ｔｂ３,…までの時間（ｔｂ１−ｔａ０）,（ｔｂ２−ｔａ１）,（ｔｂ３−ｔａ２）,…が、制御周期Ｗを超えてしまうことが防がれる。これによって受信側ＣＰＵは、受信側ＣＰＵの１制御周期Ｗ内に、送信側ＣＰＵから複数の動作指令を受信してしまい、あるいは１制御周期Ｗ内に動作指令が受信されないという不具合が発生を確実に防止し、送信側ロボットと受信側ロボットとを高精度で協調動作させることができる。また１つのコントローラ内でも、同様の動作を行う。すなわち、コントローラ内の各ＣＰＵのいずれか１つ、たとえば第２ＣＰＵを送信側ＣＰＵとし、残余のＣＰＵである第１ＣＰＵ、第３ＣＰＵなどを受信側ＣＰＵとして、制御の実行動作の開始タイミングの同期を図ることができる。
【０１２０】
以上のように本実施の形態のロボットコントローラ２３は、各ロボットハンド１９が、移動開始位置から同期動作位置まで停止せずに、第２移動時間ｔｏｔ_ｍａｘをかけてそれぞれ移動するように、ロボット毎に第２動作計画を生成する。そして生成される第２動作計画に従って、各ロボットを制御する。これによって各ロボットハンド１９は、移動開始位置から同期動作位置まで、それぞれ停止することなく移動し、同時に同期動作位置に到達する。そして第３ＣＰＵ４２が、同期動作位置に移動した状態で、各ロボットの動作を同時に行わせる。
【０１２１】
本実施形態によれば、各ロボットハンド１９は、移動開始位置から同期動作位置に達するまでに停止することが防がれる。これによってロボットハンド毎の移動速度、移動距離、ワーク把持姿勢などにばらつきがある場合であっても、各ロボットハンドを同期動作位置で待機させることなく、各同期動作位置にロボットハンド１９を同時に到達させることができる。したがってロボット２１を最高速度で移動させて同期動作位置で待機させてしまう場合に比べて、ロボットのサイクルタイムを増加させることなく、ロボット２１を低速度で移動させることができ、各ロボットの移動速度が不必要に高くなることを防いで、エネルギー消費を低減して、エネルギー効率を改善することができる。
【０１２２】
またコントローラ２３が、動作計画演算時にロボットの速度、加速度および減速度を再計算するので、作業者は、各ロボットハンド１９が各同期動作位置に同時に移動するように、各ロボット２１の移動速度などの動作タイミングを調整する必要がない。また作業者は、各ロボットハンド１９の移動開始位置および同時移動位置を変更した場合であっても、変更に併せて各ロボット２１の移動速度を調整する必要がない。したがってロボット動作を行うための準備作業に費やす時間を小さくすることができ、利便性を向上することができる。
【０１２３】
またステップａ７およびステップａ８に示すように、同時に動作すべき全てのロボットが動作完了状態となってから、同時に次の動作を開始する。これによってロボットの制御周期ずれ、動作完了時間のばらつきなどに起因する動作のずれを防ぐことができる。したがって同時に動作すべき動作を連続して複数回行っても、各ロボット同士の動作のずれが累積することがなく、各ロボットの同期動作を安定して行うことができる。また図８に示すように、コントローラ毎のＣＰＵが互いの時間ずれを制限する機能を有することによって、ＣＰＵ毎の制御周期のずれに起因する時間ずれを抑えることができる。これによって各ロボットを同期動作位置により正確に同時に到達させることができる。
【０１２４】
また本実施形態では、コントローラ２３がロボット毎にそれぞれ設けられる。したがってロボット２１が複数設けられるプレス設備２０に関して、ロボット２１の増減に応じてコントローラ２３を増減することで各ロボット２１に同期動作を行わせることができる。たとえばロボット２１をさらに１つ追加する場合には、ロボット２１ともにコントローラ２３を追加することで、既存のロボット２１に対応するコントローラ２３の制御プログラムを大きく変更する必要がない。同様にロボット２１を１つ削減する場合にも、残すべきロボット２１に対応するコントローラ２３の制御プログラムを大きく変更する必要がない。したがってロボット２１の増減を容易に行うことができる。また既存のロボットにおいても、ロボットに対応して１つのコントローラが設けられる場合が多い。このような場合に、コントローラのプログラムを書換えることによって、本実施の形態のコントローラを実現することができる。これによって既存のコントローラの流用が容易であって、本実施の形態の各コントローラを安価に実現することができる。またロボットを同期動作するための専用のコントローラを設ける必要がない。
【０１２５】
また本実施の形態の各コントローラ２３は、制御同期のずれを抑える機能を有するものの主従関係が存在しておらず、それぞれ独立している。したがって各コントローラ２３によって同期制御されるロボットの動作の自由度を広げることができる。たとえば比較例として、他のコントローラを支配するマスタコントローラと、マスタコントローラに支配されるスレーブコントローラとによって、複数のロボットを同期制御する場合、スレーブコントローラによって制御される受信側ロボットは、マスタコントローラによって制御される送信側ロボットに対応した動作しか行えない。具体的には送信側ロボットが直線移動する場合には、受信側ロボットもまた直線移動することになり、受信側ロボットを曲線移動させることが困難である。
【０１２６】
これに対して本実施の形態の各コントローラに制御される各ロボットは、その移動速度が調整されるだけで、独立して個別動作を行うことができる。したがって一方のロボットが直線移動しつつ、他方のロボットが曲線移動した状態で、同期動作位置に到達する時間を一致させることができる。また同期動作する一方のロボットと他のロボットについて、全く異なる動作を行わせることも可能である。このように本実施の形態では、ロボットの同期動作の自由度を広げることができる。
【０１２７】
また各コントローラ２３は、複数のロボット２１を同期動作させる場合には、図３のステップａ３〜ａ５に示すように対応するロボット２１について同期動作計画となる第２動作計画を生成する。また複数のロボット２１のうちで他のロボット２１にかかわらずに単独で動作させる場合には、図３のステップａ１１〜ａ１３に示すように対応するロボット２１について単独動作計画を生成する。
【０１２８】
このようにロボット２１の同期動作と単独動作との動作計画を生成することができることによって、１つの動作プログラムにおける複数の動作ステップのうち、同期動作ステップと単独動作ステップとを含ませることができる。たとえば他のロボットに無関係に移動しても干渉のおそれがない場合には、それぞれ単独動作させることで、効率よくロボット２１を動作させることができる。上述したプレス設備２０においては、取り台２６からワーク２４を回収する動作ステップと、置き台２７にワーク２４を配置する動作ステップとは、他のロボット２１との干渉のおそれがないので、単独動作によって動作させてもよい。
【０１２９】
また本実施の形態では、同期動作を行うために他のコントローラ２３から与えられる第１移動時間の情報は、同期動作を行う前に与えられる。したがって実際に同期動作を行うときには、他のコントローラ２３から与えられる情報に拘わらずに動作することができ、各ロボットハンドを円滑に動作させることができる。また本実施の形態では、各ロボット２１のうちで、最も動作が遅いロボット２１に併せて動作することを自動的に計算する。したがって最も動作が遅いロボット２１の移動速度を改善することで、他のロボットの各プログラムを変更することなく、全体のサイクルタイムを容易に改善することができる。
【０１３０】
また本実施の形態では、停止スイッチ４５がロボットの停止指令の入力を判断すると、同期動作する各ロボットの動作を停止させることができる。これによってロボット同士の干渉を防ぐことができる。また作業者は、１つのロボット２１の停止指令を与えた後に、同期動作している他のロボット２１の動作を停止させる指令をコントローラ毎に個別に与える必要がなく、利便性を向上することができる。同様に、入出力部４２がロボットの再会指令の入力を判断すると、同期動作すべき各ロボットの動作を再開させることができる。これによって再開時におけるロボット同士の干渉を防止することができる。また作業者は、１つのロボット２１の再開指令を与えた後に、同期動作している他のロボット２１の動作を再開させる指令をコントローラ毎に個別に与える必要がなく、利便性を向上することができる。  図９は、精度範囲が設定される各ロボットハンド１９の移動経路を示す図である。図９（１）は、第１ロボット２１Ａのロボットハンド１９の移動経路を示す図である。また図９（２）は、第２ロボット２１Ｂのロボットハンド１９の移動経路を示す図である。
【０１３１】
第１ロボット２１は、待機位置ａ０から第１位置ａ１の近傍を通過し、第２位置ａ２、第３位置ａ３を順に通過する。第２ロボットは、待機位置ｂ０から第１位置ｂ１の近傍を通過し、第２位置ｂ２、第３位置ｂ３を順に通過する。
【０１３２】
各ロボット２１は、予め定める精度範囲Ｐ１，Ｐ２が第１位置ａ１，ｂ１にそれぞれ設定される。各ロボット２１は、第１位置ａ１，ｂ１に向かって移動する間に、第１位置ａ１，ｂ１を中心とする精度範囲Ｐ１，Ｐ２内に入ると、第１位置ａ１，ｂ１に向かう動作とともに第２位置ａ２，ｂ２に進む動作を行う。これによってロボットハンド１９は、図９に示すように、第１位置ａ１，ｂ１を通過せずに、第１位置ａ１，ｂ１の近傍を滑らかに移動して待機位置ａ０，ｂ０から第２位置ａ２，ｂ２に移動する。
【０１３３】
図１０は、精度範囲が設定されている場合におけるコントローラ２３の制御手順を示すフローチャートである。図１１は、各ロボットが第１位置ａ１，ｂ１の近傍を通過する時刻、第２位置ａ２，ｂ２、第３位置ａ３，ｂ３を通過する時刻が同じになるようにロボットを制御した場合の各ロボットハンド１９の速度変化を示すグラフである。図１１（１）は、第１ロボット２１Ａのロボットハンド１９の速度変化を示し、図１１（２）は、第２ロボット２１Ｂのロボットハンド１９の速度変化を示す。また図１１には、精度範囲が設定されていない場合における、第１位置ａ１から第２位置ａ２に移動するハンドの速度変化を２点差線で示す。
【０１３４】
本実施の形態では、第２ＣＰＵ３９は、ロボットハンド１９が予め定められる精度範囲Ｐ１，Ｐ２に入ったときに、同期動作位置に達したと判断する。精度範囲Ｐ１，Ｐ２が設定されている場合とそうでない場合とでは、その動作手順が類似しているので、同様の手順については説明を省略する。図３と同様の動作を行って、ステップａ６で、動作完了状態に移行したことを示す情報を、他のコントローラ２３の第２ＣＰＵ３９に送信する。本実施の形態では、ステップａ７の動作完了条件は、（１）ロボットハンド１９が予め定められる精度範囲に入る、（２）ロボットハンド１９の次の動作における動作計画の計算が完了している、（３）ロボットハンド１９の信号待ちなどの待機条件が解除されているといった、（１）〜（３）の条件を全て満たす。
【０１３５】
またステップａ８で第２動作計画を第２ＣＰＵ３９に与えた後、ステップａ１４に進む。ステップａ１４では、第２ＣＰＵ３９は、ステップａ５で再計算した第２動作計画に対して、１つ前の動作をロボットが行っていると、ステップａ１５に進む。ステップａ１５では、第２ＣＰＵ３９は、１つ前の動作で実行している動作計画と、ステップａ５で再計算した第２動作計画とを重ね合わせた移動位置を作成し、その移動位置を補間演算して演算結果を第３ＣＰＵ４２に与え、ステップａ９に進む。その他の動作手順については、図３に示す手順と同様の手順で行うことができる。
【０１３６】
たとえばステップａ６において、第１コントローラは、第１ロボット２１Ａが第１位置ａ１の精度範囲Ｐ１に入った第１ロボット精度範囲到達時刻ｔ２で動作完了信号を出力する。また第２コントローラは、第２ロボット２１Ｂが第１位置ｂ１の精度範囲Ｐ２に入った第２ロボット精度範囲到達時刻ｔ１で動作完了信号を出力する。各ロボット精度範囲到達時刻ｔ１，ｔ２がずれている場合、ステップａ７では、後の時刻ｔ２に達すると、第１および第２ロボットの動作準備が完了したとして、ステップａ８に進む。
【０１３７】
ステップａ１５によって、重ね合わせ指令が与えられた第２ＣＰＵ３９は、現時点の動作ステップにおける旧動作計画に従った各移動位置と、ステップａ５で再計算した第２動作計画に従った各移動位置とを合わせた複数の合成移動位置を計算する。そして複数の合成移動位置を補間演算し、演算結果を第３ＣＰＵ４２に与える。
【０１３８】
たとえば図９において、初期位置ａ０から第１位置ａ１に移動する旧動作計画に従った場合に、第１および第２ロボットハンド１９がともに精度範囲Ｐ１，Ｐ２に到達した時刻ｔ２から予め定められる第１時間ｔｉが経過したときの移動位置の位置ベクトルをＡｉとする。また第１位置ａ１から第２位置ａ２に移動する動作計画に従った場合に、第１位置ａ１から予め定める第１時間ｔｉが経過したときの移動位置の位置ベクトルをＢｉとする。また第１位置ａ１の位置ベクトルをａ１とする。
【０１３９】
この場合、第１および第２ロボットハンド１９がともに精度範囲Ｐ１，Ｐ２に到達した時刻ｔ２から、旧動作計画において第１位置ａ１に到達するであろう時刻ｔ３までの間における合成位置は、Ａｉ＋（Ｂｉ−ａ１）で表わされる。ここでＡｉ，Ｂｉ，ａ１は、位置ベクトルを表す値である。したがって前式の計算は、ベクトル演算式となる。また旧動作計画において第１位置ａ１に到達するであろう時刻ｔ３を過ぎた場合における合成位置は、Ｂｉで表わされる。
【０１４０】
これによって図１１に示すように、全ての各動作完了信号が送信された時刻ｔ２から、初期位置ａ０から第１位置ａ１までハンドを移動させる動作計画においてロボットハンド１９が第１位置ａ１に到達するであろう時刻ｔ３までは、現時点での動作ステップにおける速度Ｖ２０と、次の動作ステップの速度Ｖ２３を全ての各動作完了信号が送信された時刻ｔ２から開始した場合における速度Ｖ２１とを合計した速度Ｖ２２でロボットハンド１９が移動する。ここで速度は、方向と大きさを含む速度ベクトルを意味する。
【０１４１】
このように本実施の形態に従えば、ロボット毎にそれぞれ設定される移動開始位置から予め定める同期動作位置の近傍となる同期動作範囲内に移動させた状態で、各ロボットの動作を同時に行わせることができる。また上述した効果を達成できるとともに、滑らかに動作させることができる。また第１位置ａ１，ｂ１でハンドを停止させることなく移動させることができ、精度範囲が設定されていない場合に比べて、第２位置ａ２，ｂ２に到着する時間を短縮することができる。表１に、図１に示すプレス設備２０において、第１ロボット２１Ａと、第２ロボット２１Ｂとが精度範囲が設定される場合の動作プログラムを示す。
【０１４２】
【表１】
2006263850.tif 000003
【０１４３】
表１に示すようなプログラムを第１および第２ロボットコントローラに実行させることで、ワーク２４をプレス間搬送することができる。このとき、初期位置ａ０，ｂ０、第１位置ａ１，ｂ１、第２位置ａ２，ｂ２、第３位置ａ３，ｂ３の動作位置に到達する時間を一致させて同期動作を行う。本実施形態による同期を行うことで、手作業によるタイミング調整が不要で、エネルギー消費を減らして、各ロボットの同期動作を同時に行わせることができる。また精度範囲が設定されることで、滑らかに動作するとともに、ロボットの速度低下を抑えさらにエネルギー消費を減らすことができる。
【０１４４】
表１に示すように本実施の形態では、同期動作命令であるＳＹＮＣ命令を実行してから同期解除命令であるＡＬＯＮＥ命令を実行するまでが、予め定める同期期間となる。この同期期間のうちに、各ロボットの同期動作を複数回、連続して行わせる。本実施の形態では、同期期間において、初期位置ａ０，ｂ０に移動する移動命令、第１位置ａ１，ｂ１に移動する移動命令、第２位置ａ２，ｂ２に移動する移動命令、第３位置ａ３，ｂ３に移動する移動命令などのＬＭＯＶＥ命令が同期動作に相当する。
【０１４５】
第１ＣＰＵ３２は、注目するロボットの動作プログラムを解読する。そして注目するロボットの動作において、同期期間が設定される場合には、同期期間に行うべき同期動作の回数をカウントする。そして動作計画を生成する前に、コントローラ通信部３７およびハブ２５を介して他のコントローラの第１ＣＰＵ３２にカウントした回数を示す情報を与える。そして第１ＣＰＵ３２は、対応する同期期間について、同期動作すべき各ロボットの同期動作の回数が一致するか否かを判断する。同期動作の回数が一致していないことを判断すると、ロボットの動作計画を生成する前に、同期動作を行うべき回数が一致していないことを報知する。すなわち第１ＣＰＵ３２は、プログラムのエラーを点検する点検手段となる。これによって作業者は、各ロボットのいずれかの動作プログラムに異常があることを判断することができ、各ロボットを同期動作する前に動作プログラムの異常を修正することができる。
【０１４６】
また第２ＣＰＵ３９は、補間演算を行っているロボットの動作が、同期動作であることを判断すると、ＳＹＮＣ命令を実行してから何番目の同期動作であるかを調べる。そして何番目かであることを示す情報を、コントローラ通信部３７およびハブ２５を介して他のコントローラの第２ＣＰＵ３９に与える。そして第２ＣＰＵ３９は、注目するロボットにおける複数の同期動作のうちで、補間演算を行っているロボットの同期動作と、他のロボットにおける複数の同期動作のうちで、補間演算と同時に補間演算が行われている他のロボットの同期動作とが、ＳＹＮＣ命令を実行してからの順番が同じであるかどうかを判断する。
【０１４７】
たとえば第１ロボットの第２ＣＰＵ３９がＳＹＮＣ命令から数えて２番目の同期動作であるＬＭＯＶＥ  ａ１命令における補間演算を行っている場合に、第２ロボットの第２ＣＰＵ３９がＳＹＮＣ命令から数えて３番目の同期動作であるＬＭＯＶＥ  ｂ２命令における補間演算を行っていることを判断すると、それら２つの同期動作に関連性がないと判断する。そして関連性がないことを判断すると、ロボットの補間演算を中止し、ロボットの制御を停止する。すなわち第２ＣＰＵ３９は、関連性を有していないことが判断すると、ロボット制御手段による注目するロボットの注目する同期動作の制御を阻止する照合手段となる。
【０１４８】
これによって各ロボットの同期動作のうちで関連性のないそれぞれの同期動作が同時に行われることを防ぐことができ、ロボットが不所望な同期動作を行うことを防ぐことができる。また本実施の形態では、関連性として、同期期間を開始してからの同期動作の順番によって規定したが、他の条件によって関連性を規定してもよい。たとえば関連性をあらわす情報をプログラムに付加したりしてもよい。
【０１４９】
また本実施の形態では、第２ＣＰＵ３９のほかに、第１ＣＰＵ３２もまた照合手段となる。この場合、動作計画の生成を行っているロボットの動作が、同期動作であることを判断すると、ＳＹＮＣ命令を実行してから何番目の同期動作であるかを調べる。そして何番目かであることを示す情報を、コントローラ通信部３７およびハブ２５を介して他のコントローラの第１ＣＰＵ３２に与える。そして第１ＣＰＵ３２は、注目するロボットにおける複数の同期動作のうちで、動作計画の生成を行っているロボットの同期動作と、他のロボットにおける複数の同期動作のうちで、動作計画の生成と同時に動作形角の生成が行われている他のロボットの同期動作とが、ＳＹＮＣ命令を実行してからの順番が同じであるかどうかを判断する。
【０１５０】
たとえば第１ロボットの第２ＣＰＵ３９がＳＹＮＣ命令から数えて２番目の同期動作であるＬＭＯＶＥ  ａ１命令における動作計画の生成を行っている場合に、第２ロボットの第２ＣＰＵ３９がＳＹＮＣ命令から数えて３番目の同期動作であるＬＭＯＶＥ  ｂ２命令における動作計画の生成を行っていることを判断すると、それら２つの同期動作に関連性がないと判断する。そして関連性がないことを判断すると、ロボットの動作計画の生成を中止し、ロボットの制御を停止させる。このような場合も、第２ＣＰＵ３９によってロボットの制御を中止した場合と同様の効果を得ることができる。
【０１５１】
図１２は、本発明の他の実施の形態であるスポット溶接設備５０を簡略化して示す図である。他の実施形態であるスポット溶接設備５０は、複数の溶接ロボット５１Ａ，５１Ｂによって、ワーク５４に設定される複数の溶接箇所ｃ１〜ｃ３，ｄ１〜ｄ３にスポット溶接を行う。本実施の形態では、スポット溶接設備５０は、複数のロボット５１Ａ，５１Ｂと、各ロボット５１Ａ，５１Ｂを制御するロボットコントローラ５３Ａ，５３Ｂと、ロボットコントローラ５３Ａ，５３Ｂ同士を通信可能に接続するハブ５５とを含んで構成される。
【０１５２】
各ロボット５１の動作範囲が小さく溶接箇所ｃ１〜ｃ３，ｄ１〜ｄ３が広範囲に広がる場合、各ロボット５１は、自身に近接した溶接箇所ｃ１〜ｃ３，ｄ１〜ｄ３のスポット溶接をそれぞれ行う。溶接箇所ｃ１〜ｃ３、ｄ１〜ｄ３が予め定められる第１方向５６に並ぶとともに、各ロボットが第１方向５６に並ぶことによって、溶接箇所ｃ１〜ｃ３，ｄ１〜ｄ３のうち第１ロボット寄りの溶接箇所ｃ１〜ｃ３が第１ロボット５１Ａによって溶接される。また溶接箇所ｃ１〜ｃ３，ｄ１〜ｄ３のうち第２ロボット寄りの溶接箇所ｄ１〜ｄ３が第２ロボット５１Ｂによって溶接される。
【０１５３】
図１３は、比較例の各コントローラ５３の動作手順を示すフローチャートである。第１ロボット５１Ａが第２ロボット寄りの溶接箇所ｃ３を溶接しているときに、第２ロボット５１Ｂが第１ロボット寄りの溶接箇所ｄ１を溶接しようとすると、ロボット同士またはロボットに搭載している付属部品が干渉してしまう。したがって第１ロボット５１Ａが第１ロボット５１近傍の溶接箇所ｃ１〜ｃ３を溶接した後で、第２ロボット５１Ｂが第２ロボット５１近傍の溶接箇所ｄ１〜ｄ３を溶接する。
【０１５４】
この場合、第１コントローラ５３Ａは、溶接開始指令が与えられると、ステップｂ１に進み、溶接動作を開始する。ステップｂ１〜ｂ３では、第１コントローラ５３Ａは、第１ロボット５１Ａによって、溶接箇所ｃ１〜ｃ３を順番に溶接するよう指令を与える。そしてステップｂ４では、第１ロボット５１Ａが溶接すべき溶接箇所の溶接が完了したことを判断すると、完了信号を第２コントローラ５３Ｂに与え、動作を終了する。
【０１５５】
第２コントローラ５３Ｂは、溶接開始指令が与えられると、ステップｃ１に進み、溶接動作を開始する。ステップｃ１では、第１コントローラ５３Ａから完了信号が与えられるまで待機し、完了信号が与えられるとステップｃ２に進む。ステップｃ２〜ステップｃ４では、第２コントローラ５３Ｂは、第２ロボット５１Ｂによって、溶接箇所ｄ１〜ｄ３を順番に溶接するよう指令を与える。そして第２ロボット５１Ｂが溶接すべき溶接箇所の溶接が完了したことを判断すると、動作を終了する。このように比較例のコントローラ５３では、第１ロボット５１Ａと第２ロボット５１Ｂとの干渉を防止するために、一方のロボット５１を動作させているときに、他方のロボット５１の動作を停止させる。したがって並列して各ロボット５１を動作させることができず、ロボット５１による作業時間が長くなってしまう。
【０１５６】
図１４は、本発明のコントローラ５３の動作手順を示すフローチャートである。本実施の形態では、上述したように第１ロボット５１Ａと、第２ロボット５１Ｂとを、干渉しないように同期動作させることが可能である。具体的には、第１ロボット５１Ａが第２ロボット５１Ｂから最も離れた第１ロボット第１溶接箇所ｃ１を溶接している際に、第２ロボット５１Ｂが第１ロボット５１Ａに最も近い第２ロボット第１溶接箇所ｄ１を溶接する。また次に、第１ロボット５１Ａが第２ロボット５１Ｂから次に離れた第１ロボット第２溶接箇所ｃ２を溶接している際に、第２ロボット５１Ｂが第１ロボット５１Ａに次に近い第２ロボット第２溶接箇所ｄ２を溶接する。また次に、第１ロボット５１Ａが第２ロボット５１Ｂから次に離れた第１ロボット第３溶接箇所ｃ３を溶接している際に、第２ロボット５１Ｂが第１ロボット５１Ａに次に近い第２ロボット第３溶接箇所ｄ３を溶接する。このように各ロボット５１Ａ，５１Ｂが動作するように、各コントローラ５３が各ロボット５１を制御する。
【０１５７】
本実施の形態では、各コントローラ５３ａ，５３Ｂは、溶接装置から溶接が完了したことを示す完了信号が与えられる。このような完了信号を受信することも動作完了条件に含まれる。スポット接合する場合には、接合すべき２つの板の板厚のばらつき、板の隙間、教示誤差などによって接合が完了する時間が異なる。本実施の形態では、上述したように溶接装置から完了信号を受信することを動作完了条件に含めることで、各ロボットが溶接を完了する時間にばらつきがある場合であっても、次の動作を開始するタイミングを同じにすることができ、各ロボットの同期動作を安定して行うことができる。
【０１５８】
具体的には、各コントローラ５３Ａ，５３Ｂは、溶接開始指令が与えられると、ステップｄ１に進み、溶接動作を同時に開始する。ステップｄ１〜ｄ３では、各コントローラ５３Ａ，５３Ｂは、対応するロボットによって溶接箇所ｃ１，ｄ１；ｃ２，ｄ２；ｃ３，ｄ３を順番に溶接するよう指令を与える。このとき上述したように各コントローラ５３Ａ，５３Ｂは、第１ロボット第１溶接箇所ｃ１と第２ロボット第１溶接箇所ｄ１とに到達する時刻、第１ロボット第２溶接箇所ｃ２と第２ロボット第２溶接箇所ｄ２とに到達する時刻、第１ロボット第３溶接箇所ｃ３と第２ロボット第３溶接箇所ｄ３とに到達する時刻の時刻ずれを少なくすることができる。これによってロボット同士の干渉を防いで、２つのロボット５１による溶接動作を並列して行うことができるとともに、作業時間を短縮することができる。また本実施の形態では、上述したように第１ロボットと第２ロボットとの両方の溶接が完了した場合に、次の動作に移行するので、溶接を完了する時間にばらつきがあっても、同期動作を正確に行うことができる。
【０１５９】
また本実施の形態では、同期動作を行う２つのロボットのうち、一方のロボットが溶接を行い、他方のロボットがハンドを移動させてもよい。図１５〜図１７は、第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。図１５〜図１７には、第２ロボット５１Ｂの第１移動時間が、第１ロボット５１Ａの第１移動時間よりも長い場合を示す。
【０１６０】
図１５は、第１の比較例を示すグラフである。また図１６は、第２の比較例を示すグラフである。また図１７は、本発明の実施例を示すグラフである。図１５（１）、図１６（１）、図１７（１）は、第１ロボット５１Ａの速度変化を示し、図１５（２）、図１６（２）、図１７（２）は、第２ロボット５１Ｂの速度変化を示す。
【０１６１】
図１５に示す第１比較例では、それぞれ各ロボット５１Ａ，５１Ｂが、同期動作位置に到達する時刻が、第１ロボット５１Ａと第２ロボット５１Ｂとでばらつく。第１ロボット５１Ａは、同期動作位置に到達してから溶接の開始を指令し、溶接が完了した状態で待機する。そして第２ロボット５１Ｂが同期動作位置に達すると、各ロボット５１Ａ，５１Ｂは、同時に次の位置に移動する。この場合、従来技術と同様に、第１ロボット５１Ａは、溶接を終了して同期動作位置から移動するまで待機する待機時間が生じる。このように第１ロボット５１Ａを最高速で同期動作位置に移動させて溶接を行い、そのあとで待機させるので、エネルギー効率が悪い。
【０１６２】
図１６に示す第２比較例では、同期動作位置に到達する到達時刻を第１ロボット５１Ａと第２ロボット５１Ｂとで一致させる。第１ロボット５１Ａは、同期動作位置に到達してから溶接を開始する。第２ロボット５１Ｂは、第１ロボット５１Ａによる溶接が完了するまで待機する。そして第１ロボット５１Ａによる溶接が完了すると、各ロボット５１Ａ，５１Ｂは、同時に次の位置に移動する。この場合、第２ロボット５１Ｂが同期動作位置に到達してから、第１ロボット５１Ａによる溶接が開始される。そして第２ロボット５１Ｂは、同期動作位置に到達してから溶接時間経過すると、次の位置に移動することになり、ロボット５１のサイクルタイムが増加してしまう。
【０１６３】
図１７に示す本発明の実施例では、第１ロボット５１Ａが同期動作位置に移動する移動時間と、溶接が完了するであろう溶接見込み時間とを合わせた動作時間が、第２ロボット５１Ｂの移動時間と等しくなるように、第１ロボット５１Ａの移動時間が設定される。本実施の形態では、溶接見込み時間は、溶接を開始してから溶接が完了するまでの溶接時間のうち、最大溶接時間に設定される。これによって動作開始位置から動作を開始してから、同期動作位置で各ロボットの動作を同時に行わせる準備が完了するまでの時間がほぼ同じになるように、各ロボットの移動速度が調整される。
【０１６４】
第１ロボット５１Ａは、第２ロボット５１Ｂが同期動作位置に移動する時刻から、溶接見込み時間分手前の時刻に同期動作位置に到達する。そして同期動作位置に到達してから溶接を開始する。そして同期動作位置に到達してから溶接見込み時間が経過した時刻と、第２ロボット５１Ｂが同期動作位置に移動する時刻とが一致する。これによって、第１ロボットの待機時間をできるだけ小さくすることができ、第１ロボット５１Ａのエネルギー効率を向上することができるとともに、サイクルタイムの増加を防ぐことができる。
【０１６５】
図１８〜図２０は、第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。図１８〜図２０には、第１ロボット５１Ａの第１移動時間が、第２ロボット５１Ｂの第１移動時間よりも長い場合を示す。
【０１６６】
図１８は、第１の比較例を示すグラフである。また図１９は、第２の比較例を示すグラフである。また図２０は、本発明の実施例を示すグラフである。図１８（１）、図１９（１）、図２０（１）は、第１ロボット５１Ａの速度変化を示し、図１８（２）、図１９（２）、図２０（２）は、第２ロボット５１Ｂの速度変化を示す。
【０１６７】
図１８に示す第１比較例では、それぞれ各ロボット５１Ａ，５１Ｂが、同期動作位置に到達する時刻が、第１ロボット５１Ａと第２ロボット５１Ｂとでばらつく。第２ロボット５１Ｂは、それぞれ最短速度で動作するので、同期動作位置に到達してから第１ロボットの溶接が完了するまで待機する。そして第１ロボット５１Ａが同期動作位置に到達して、同期動作位置での溶接が完了すると、各ロボット５１Ａ，５１Ｂは、同時に次の位置に移動する。この場合、従来技術と同様に、第２ロボット５１Ｂは、同期動作位置に到達してから、次に移動を開始するまで待機する待機時間が生じる。このように第２ロボット５１Ｂを最高速で同期動作位置に移動させてから、第１ロボットの溶接が完了するまで待機させるので、エネルギー効率が悪い。
【０１６８】
図１９に示す第２比較例では、同期動作位置に到達する到達時刻を第１ロボット５１Ａと第２ロボット５１Ｂとで一致させる。第２ロボット５１Ｂは、第１ロボット５１Ａによる溶接が完了するまで待機する。そして第１ロボット５１Ａによる溶接が完了すると、各ロボット５１Ａ，５１Ｂは、同時に次の位置に移動する。この場合であっても、第２ロボット５１Ｂを最高速で同期動作位置に移動させてから、第１ロボットの溶接が完了するまで待機させるので、エネルギー効率が悪い。
【０１６９】
図２０に示す本発明の実施例では、見込み作業時間を設定し、第１ロボット５１Ａが同期動作位置に移動する移動時間と、溶接が完了するであろう溶接見込み時間とを合わせた動作時間が、第２ロボット５１Ｂの移動時間と等しくなるように、第１ロボット５１Ａの移動時間が設定される。これによって動作開始位置から動作を開始してから、同期動作位置で各ロボットの動作を同時に行わせる準備が完了するまでの時間がほぼ同じになるように、各ロボットの移動速度が調整される。
【０１７０】
第２ロボット５１Ｂは、第１ロボット５１Ａが同期動作位置に移動した時刻から、溶接見込み時間分後の時刻に同期動作位置に到達する。これによって第２ロボット５１Ｂの待機時間を無くすことができるとともに、第１ロボットの待機時間をできるだけ小さくすることができ、第１ロボット５１Ａのエネルギー効率を向上することができるとともに、サイクルタイムの増加を防ぐことができる。このように各ロボット５１の第１移動時間として、溶接装置が移動開始位置から移動を開始して、同期動作位置まで移動する到達時間と、同期動作位置で行う溶接見込み時間とを含むように設定することによって、同期動作位置で溶接などの単独動作を行ったとしても、サイクルタイムの増加を防ぐことができる。
【０１７１】
ここでロボット５１は、同期動作位置で行う独立動作として溶接以外の独立動作を行ってもよい。この場合、各ロボットの第１移動時間は、前記到達時間と、他のロボットと同期動作を行わせる前に同期動作位置でロボットハンドが行うべき独立動作に費やす独立動作時間の見込み時間とを含む。
【０１７２】
図１５〜図１７に示すように、独立動作を行う第１ロボット５１Ａと独立動作を行わない第２ロボット５１Ｂとが同時動作位置から同時に動作する場合であって、第２ロボット５１Ｂの第１移動時間が、第１ロボット５１Ａの第１移動時間よりも長いと、第２ロボット５１Ｂが同時動作位置に到達した時刻に、第１ロボット５１Ａの独立動作が完了する。したがって各ロボット５１同時動作位置で待機せずに、同時動作位置から同時に動作を行うことができる。また第１ロボット５１Ａのエネルギー消費を抑えることができる。
【０１７３】
また図１８〜図２０に示すように、独立動作を行う第１ロボット５１Ａと独立動作を行わない第２ロボット５１Ｂとが同時動作位置から同時に動作する場合であって、第１ロボット５１Ａの第１移動時間が、第２ロボット５１Ｂの第１移動時間よりも長いと、第１ロボット５１Ａが独立動作を終えた時刻に、第２ロボット５１Ｂが同時動作位置に到達する。したがって各ロボット５１は同時動作位置で待機せずに、同時動作位置から同時に動作を行うことができる。また第２ロボット５１Ｂのエネルギー消費を抑えることができる。なお、本実施の形態では、溶接見込み時間として、溶接が完了するであろう最大溶接時間に設定された。これに対して他の形態として、溶接見込み時間は、平均溶接時間に設定されていてもよく、また最短溶接時間に設定されていてもよい。
【０１７４】
図２１は、第２ロボットに精度範囲が設定される場合を示すグラフである。本実施の形態では、第１ロボットは、溶接見込み時間として、溶接が完了するであろう最大溶接時間に設定される。第２ロボットに精度範囲が設定されることで、第２ロボットのハンドは、第１ロボットが同期動作位置に到達してから溶接見込み時間が経過する前に、次の動作を開始する準備が完了する。
【０１７５】
第１ロボットのコントローラは、溶接装置から溶接完了信号を受信したときに他のコントローラに動作完了状態の情報を他のコントローラに与える。これによって溶接見込み時間よりも手前の時間に溶接が完了すると、第２ロボットのハンドは、完全に停止することなく、次の動作を開始することができ、第２ロボットの速度低下をさらに抑えて、エネルギー効率をさらに向上することができる。
【０１７６】
図２２は、本発明のさらに他の実施形態のコントローラ１２０の機能的構成を示す図である。本実施の形態のコントローラ１２０は、各ロボット２１を統括的に制御する。したがってロボット２１の数にかかわらずに１つ設けられる。このような場合であっても、コントローラ１２３が第１ＣＰＵ３２、第２ＣＰＵ３９、第３ＣＰＵ４２が行う機能を有していれば、上述したようにロボット２１を制御することができ、手作業によるタイミング調整が不要で、各ロボット２１の動作を同時に行わせることができる。
【０１７７】
本実施例では、第１ＣＰＵ３２および第２ＣＰＵ３９は、ロボットの数に拘わらずに１つ設けられ、第３ＣＰＵ４２がロボット毎に設けられる。すなわち１つの主制御装置１２３と、ロボット毎に設けられる副制御装置６０とを含む。ここで主制御装置１２３は、各ロボットに設定されるロボットハンド１９が移動する移動経路上の移動位置をそれぞれ演算する。また副制御装置６０は、対応するロボットに関するロボットハンドの移動経路上の移動位置に基づいて、対応するロボットのロボットハンドが移動経路上を移動するような各アクチュエータの動作量を演算して求め、その動作量でロボットの各アクチュエータを制御する。このような場合であっても、上述したロボットコントローラ２３を用いた場合と同様の効果を得ることができる。
【０１７８】
上述した各本実施形態は、発明の例示に過ぎず、発明の範囲内で構成を変更することができる。たとえばプレス設備、スポット溶接設備に、本発明のロボットコントローラが用いられるとしたが、それらの設備に限らずに複数のロボットが同時に動作するような設備に対して適用可能である。たとえば複数のロボットによってワークを塗装する塗装設備、複数のロボットによってワークを搬送する搬送装置などにも適用可能である。またコントローラが制御するロボットは、６軸垂直多関節ロボット以外のロボットであってもよい。
【０１７９】
また本実施形態では、ロボットの基準可動部をロボットハンドであるとしたが、ロボットの他の部分であってもよい。またロボットに装着される他の装着装置であってもよい。またコントローラ２３は、機能的説明を説明したものであって、同様の機能を有するものは本発明に含まれる。たとえばＣＰＵが３つに分かれている必要はなく、１つのＣＰＵによってロボットの制御を行ってもよい。また各ロボットコントローラ２３は、ＬＡＮケーブルで通信可能に接続されるとしたが、互いに通信可能であればよく、ＩＯケーブル等の他の手段を用いて互いに通信可能に接続されてもよい。
【図面の簡単な説明】
【０１８０】
【図１】本発明の実施の一形態であるプレス設備２０を示すブロック図である。
【図２】コントローラ２３の機能的構成を示すブロック図である。
【図３】コントローラ２３によるロボット制御手順を示すフローチャートである。
【図４】ステップａ５における動作計画の再計算を説明するためのグラフである。
【図５】ステップａ５における動作計画の再計算を説明するためのグラフである。
【図６】本実施の形態の各ロボットの動作を示す図である。
【図７】第１ロボット２１Ａと第２ロボット２１Ｂとのロボットハンド１９の移動速度変化を示すグラフである。
【図８】各ＣＰＵの同期処理機能を説明するための図である。
【図９】精度範囲が設定される各ロボットハンド１９の移動経路を示す図である。
【図１０】精度範囲が設定されている場合におけるコントローラ２３の制御手順を示すフローチャートである。
【図１１】各ロボットが第１位置ａ１，ｂ１の近傍を通過する時刻、第２位置ａ２，ｂ２、第３位置ａ３，ｂ３を通過する時刻が同じになるようにロボットを制御した場合の各ロボットハンドの速度変化を示すグラフである。
【図１２】本発明の他の実施の形態であるスポット溶接設備５０を簡略化して示す図である。
【図１３】比較例のコントローラの動作手順を示すフローチャートである。
【図１４】本発明のコントローラの動作手順を示すフローチャートである。
【図１５】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【図１６】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【図１７】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【図１８】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【図１９】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【図２０】第１ロボット５１Ａが同期動作位置で溶接を行った後で、第１ロボット５１Ａと第２ロボット５１Ｂとが同期動作位置から同時に移動する場合を説明するためのグラフである。
【０１８１】
【図２１】第２ロボットに精度範囲が設定される場合を示すグラフである。
【図２２】本発明のさらに他の実施形態のコントローラ１２０の機能的構成を示す図である。
【図２３】従来技術のプレス設備６を説明するための図である。
【図２４】各ロボット１，２におけるワーク８，９の速度の時間変化を示すグラフである。
【符号の説明】
【０１８２】
２０  プレス設備
２１  ロボット
２２  プレス装置
２５  ハブ
２３  コントローラ
３２  第１ＣＰＵ
３３  第２ＣＰＵ
３４  第３ＣＰＵ
４５  停止スイッチ
【図１】
2006263850.tif 000004
【図２】
2006263850.tif 000005
【図３】
2006263850.tif 000006
【図４】
2006263850.tif 000007
【図５】
2006263850.tif 000008
【図６】
2006263850.tif 000009
【図７】
2006263850.tif 000010
【図８】
2006263850.tif 000011
【図９】
2006263850.tif 000012
【図１０】
2006263850.tif 000013
【図１１】
2006263850.tif 000014
【図１２】
2006263850.tif 000015
【図１３】
2006263850.tif 000016
【図１４】
2006263850.tif 000017
【図１５】
2006263850.tif 000018
【図１６】
2006263850.tif 000019
【図１７】
2006263850.tif 000020
【図１８】
2006263850.tif 000021
【図１９】
2006263850.tif 000022
【図２０】
2006263850.tif 000023
【図２１】
2006263850.tif 000024
【図２２】
2006263850.tif 000025
【図２３】
2006263850.tif 000026
【図２４】
2006263850.tif 000027