(57)【要約】      （修正有）【課題】  ロボットを複数同時に容易に動作させることができ、ロボットを制御するための負荷を小さくすることができるロボット制御システムを提供する。【解決手段】  各ロボット２１，２２のロボットハンド１３０が移動する移動経路上の複数の移動位置をそれぞれ演算する単一のコントローラ２４と、ロボット毎にそれぞれ設けられる逆変換処理部２５、２６とを有する。各逆変換処理部２５，２６は、対応するロボット２１，２２のロボットハンド１３０が移動経路上を移動するような各サーボモータの動作量を演算して求め、その動作量でロボット２１，２２の各ロボット２１，２を制御する。協調制御する場合、コントローラ２４は、他の装置と通信することなく、スレーブロボットの各通過点を演算することができる。またロボット毎に設けられる逆変換処理部２５，２６が、対応するロボット２１，２２に対するサーボモータの動作量の演算を分担する。【選択図】  図１
2006187826.tif 000002
【特許請求の範囲】
【請求項１】
複数のアクチュエータを有する多軸ロボットを複数同時に制御するロボット制御システムであって、
各ロボットに設定される基準可動部が移動する移動経路上の移動位置をそれぞれ演算する単一の主制御装置と、
ロボット毎にそれぞれ設けられ、対応するロボットに関する基準可動部の移動経路上の移動位置に基づいて、対応するロボットの基準可動部が移動経路上を移動するような各アクチュエータの動作量を演算して求め、その動作量でロボットの各アクチュエータを制御する複数の副制御装置とを有することを特徴とするロボット制御システム。
【請求項２】
主制御装置は、外部装置との信号の入出力動作を行う入出力部と、
入出力部における信号の入出力動作を制御する入出力制御処理回路と、
各ロボットの基準可動部の移動位置を求めるための動作計画を記憶する記憶部と、
入出力制御処理回路とは別体に設けられ、前記動作計画に基づいて、各ロボットの基準可動部が移動する移動経路上の移動位置をそれぞれ演算する移動経路演算処理回路とを含むことを特徴とする請求項１記載のロボット制御システム。
【請求項３】
前記主制御装置は、副制御装置を接続可能な最大接続数が設定されており、
最大接続数の副制御装置が接続される場合、演算結果を順番に予め定めるタイミングで各副制御装置にそれぞれ与え、
最大接続数より少ない副制御装置が接続される場合、最大接続数の副制御装置が接続される場合と同様のタイミングで、演算結果を順番に各副制御装置にそれぞれ与えることを特徴とする請求項１または２記載のロボット制御システム。
【請求項４】
主制御装置は、各ロボットの基準可動部の移動位置を求めるための動作計画を記憶する記憶部と、
前記動作計画に基づいて、各ロボットの基準可動部が移動する移動経路上の移動位置を演算する移動経路演算処理回路とを含み、
動作計画は、注目するロボットについて、予め定める基準動作をするマスタロボット、対応するマスタロボットに連動して動作するスレーブロボットのいずれのロボットであるかを示す協調動作情報と、注目するロボットがスレーブロボットである場合に対応するマスタロボットの動作に対する連動動作関係を示す連動関係情報とを含み、
移動経路演算処理回路は、スレーブロボットの基準可動部が移動する移動経路上の移動位置を演算する場合、対応するマスタロボットの移動位置と前記連動関係情報とに基づいて、スレーブロボットの基準可動部が移動する移動経路上の移動位置を演算することを特徴とする請求項１〜３のいずれか１つに記載のロボット制御システム。
【請求項５】
主制御装置と各副制御装置とは離れた位置に配置され、
主制御装置と各副制御装置とをそれぞれ接続する複数の通信ケーブルを有することを特徴とする請求項１〜４のいずれか１つに記載のロボット制御システム。
【請求項６】
主制御装置と各副制御装置とは、イーサネットを用いて互いに通信可能に設けられることを特徴とする請求項５記載のロボット制御システム。
【請求項７】
前記請求項１〜６のいずれか１つに記載のロボット制御システムと、前記ロボット制御システムによって制御される複数のロボットとを有するロボット設備。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットを同時に制御するロボット制御システムおよびロボット設備に関する。
【背景技術】
【０００２】
図２４は、第１の従来技術のロボット設備１を示すブロック図である。第１の従来技術のロボット設備１は、複数の産業用ロボット２〜４と、各ロボット２〜４にそれぞれ設けられて各ロボット２〜４を個別に制御する複数のロボット制御装置５〜７とを含んで構成される。各ロボット制御装置５〜７は、通信ケーブル８によって接続される（たとえば特許文献１参照）。
【０００３】
第１の従来技術のロボット設備１では、各ロボット２〜４に協調動作を行わせる場合、複数のうち１つのロボット２がマスタロボットとなり、マスタロボット以外のロボット３，４がスレーブロボットとなる。マスタロボット用のマスタ側ロボット制御装置５は、マスタロボット２の移動位置に関連したデータを、スレーブロボット用の各スレーブ側ロボット制御装置６，７へそれぞれ送信する。各スレーブ側ロボット制御装置６，７は、マスタ側ロボット制御装置５から与えられるデータに基づいて、各スレーブロボット３，４がマスタロボット２に対して協調動作するように、スレーブロボット６，７をそれぞれ制御する。
【０００４】
図２５は、第２の従来技術のロボット設備１０を示すブロック図である。第２の従来技術のロボット設備１０は、複数の産業用ロボット２〜４と、１つの主制御装置１１と、各ロボット２〜４にそれぞれ設けられる従制御装置１２〜１４とを含んで構成される。従制御装置１２〜１４は、ロボットに設けられる複数のアクチュエータごとにサーボアンプを有する。各従制御装置１２〜１４は、通信ケーブル１５によって主制御装置１１にそれぞれ接続される（たとえば特許文献２参照）。
【０００５】
第２の従来技術のロボット設備１０では、主制御装置１１は、各ロボット２〜４に設けられる各アクチュエータの動作量をそれぞれ演算し、演算結果を各従制御装置１２〜１４にそれぞれ送信する。従制御装置１２〜１４は、主制御装置１１から与えられる位置制御データに基づいて、サーボアンプから所定の電力を各アクチュエータに与える。これによって各サーボアンプに接続されるモータが動作して、ロボットが所望の変位動作を行う。
【０００６】
【特許文献１】特開２００１−１５０３７２号公報
【特許文献２】特開２００１−１００８０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
第１の従来技術のロボット設備１では、各ロボット制御装置５〜７にティーチペンダントがそれぞれ設けられている。したがって作業者は、対応するロボット２〜４の動作順序にあわせたロボット制御プログラムを各ティーチペンダントに個別に入力する必要がある。したがって作業者によるプログラムの入力動作が面倒となる。また各ロボット制御装置５〜７に個別にロボット制御プログラムが入力されるので、協調動作を行うときに、スレーブロボットの移動位置を演算するために、マスタロボットの移動位置を取得する必要がある。これによって各ロボット制御装置５〜７を相互に通信可能に構成しなければならず、ロボット設備１の構成が複雑化する。
【０００８】
またマスタロボット２とスレーブロボット３，４とを協調動作するにあたって、各ロボット制御装置５〜７を、相互に同期させる必要がある。この場合、各ロボット制御装置５〜７の動作同期の微小な差、送信周期と受信周期との微小な差の蓄積による制御周期のずれなどを解消することができず、複数のロボット制御装置５〜７を同期させた状態に維持することができないという問題がある。
【０００９】
第２の従来技術のロボット設備１０では、主制御装置１１が、外部から入力される動作計画に基づいて、各ロボット２〜４の移動位置をそれぞれ求め、移動位置に対応する各サーボモータの動作量を逆変換処理して求めて、副主制御装置１２〜１４にそれぞれ与える。主制御装置１１は、このような計算をロボットの台数に応じて計算する必要がある。またロボットの軸数が増えるほど、逆変換処理にかかる演算負荷が増加する。したがってロボットの台数および各ロボットの軸数が増えると、主制御装置１１の演算にかかる負荷が大きくなり、処理速度の低い処理回路を用いて主制御装置１１を実現すると、各ロボット２〜４を円滑に動作させることができない。
【００１０】
したがって本発明の目的は、ロボットを複数同時に容易に動作させることができ、ロボットを円滑に動作させることができるロボット制御システムを提供することである。
【課題を解決するための手段】
【００１１】
本発明は、複数のアクチュエータを有する多軸ロボットを複数同時に制御するロボット制御システムであって、
各ロボットに設定される基準可動部が移動する移動経路上の移動位置をそれぞれ演算する単一の主制御装置と、
主制御装置に接続され、ロボット毎にそれぞれ設けられて対応するロボットに関して主制御装置が演算した基準可動部の移動経路上の移動位置に基づいて、対応するロボットの基準可動部が移動経路上を移動するような各アクチュエータの動作量を演算して求め、その動作量でロボットの各アクチュエータを制御する複数の副制御装置とを有することを特徴とするロボット制御システムである。
【００１２】
また本発明は、主制御装置は、外部装置との信号の入出力動作を行う入出力部と、
入出力部における信号の入出力動作を制御する入出力制御処理回路と、
各ロボットの基準可動部の移動位置を求めるための動作計画を記憶する記憶部と、
前記動作計画に基づいて、各ロボットの基準可動部が移動する移動経路上の移動位置をそれぞれ演算する移動経路演算処理回路とを含むことを特徴とする。
【００１３】
また本発明は、前記主制御装置は、副制御装置を接続可能な最大接続数が設定されており、
最大接続数の副制御装置が接続される場合、演算結果を順番に予め定めるタイミングで各副制御装置にそれぞれ与え、
最大接続数より少ない副制御装置が接続される場合、最大接続数の副制御装置が接続される場合と同様のタイミングで、演算結果を順番に各副制御装置にそれぞれ与えることを特徴とする。
【００１４】
また本発明は、主制御装置は、各ロボットの基準可動部の移動位置を求めるための動作計画を記憶する記憶部と、
前記動作計画に基づいて、各ロボットの基準可動部が移動する移動経路上の移動位置を演算する移動経路演算処理回路とを含み、
動作計画は、注目するロボットについて、予め定める基準動作をするマスタロボット、対応するマスタロボットに連動して動作するスレーブロボットのいずれのロボットであるかを示す協調動作情報と、注目するロボットがスレーブロボットである場合に対応するマスタロボットの動作に対する連動動作関係を示す連動関係情報とを含み、
移動経路演算処理回路は、スレーブロボットの基準可動部が移動する移動経路上の移動位置を演算する場合、対応するマスタロボットの移動位置と前記連動関係情報とに基づいて、スレーブロボットの基準可動部が移動する移動経路上の移動位置を演算することを特徴とする。
【００１５】
また本発明は、主制御装置と各副制御装置とは離れた位置に配置され、
主制御装置と各副制御装置とをそれぞれ接続する複数の通信ケーブルを有することを特徴とする。
【００１６】
また本発明は、主制御装置と各副制御装置とは、イーサネットを用いて互いに通信可能に設けられることを特徴とする。
【００１７】
また本発明は、前記請求項１〜５のいずれか１つに記載のロボット制御システムと、前記ロボット制御システムによって制御される複数のロボットとを有するロボット設備である。
【発明の効果】
【００１８】
請求項１記載の本発明に従えば、主制御装置が、複数のロボットに設定される基準可動部、たとえばロボットハンドがそれぞれ移動する移動経路上の移動位置をそれぞれ演算する。主制御装置は、演算した各移動位置を対応する副制御装置に与える。各副制御装置は、主制御装置からそれぞれ個別に与えられた移動位置に基づいて、ロボットの基準可動部が移動経路上を移動するような各アクチュエータの動作量を演算する。言い換えると、副制御装置は、ロボットの移動位置に基づいて各アクチュエータの動作量をそれぞれ逆変換演算する。副制御装置は、主制御装置から移動位置をロボットの移動順に順次与えられることによって、逆変換演算した動作量で各アクチュエータを順次制御する。これによってロボットの基準可動部を予め定める移動経路に沿って移動させることができる。
【００１９】
副制御装置は、ロボット毎にそれぞれ設けられる。したがって各副制御装置が、対応するロボットの各アクチュエータをそれぞれ制御することによって、各ロボットの基準可動部をそれぞれ個別にかつ同時に動作させることができる。
【００２０】
本発明によれば、単一の主制御装置が、それぞれのロボットの基準可動部が移動する移動経路上の各移動位置をそれぞれ演算する。したがって作業者または主制御装置が接続される外部装置は、各ロボットの制御プログラムを主制御装置のみに入力するだけでよい。言い換えると、第１の従来技術のように各ロボットの制御プログラムを、複数の制御装置にそれぞれ個別に入力する必要がない。したがってロボット制御システムにおける入力作業の手間を省いて利便性を向上することができる。また作業者および外部装置に対する制御装置のインターフェースを単一の主制御装置に設けるだけでよく、ロボット毎にインターフェースを設ける必要がない。これによってロボット制御システムを小形化することができるとともに安価に形成することができる。
【００２１】
また協調制御する場合、単一の主制御装置は、他の装置と通信することなく、演算したマスタロボットの移動位置に基づいて、スレーブロボットの移動位置を演算することができる。このとき、逆変換演算を各ロボットに対応する副制御装置によって、それぞれ個別に行わせることによって、ロボット設備における制御周期を短くして、微少な時間間隔でアクチュエータの動作指令を与えることができる。したがってロボットを円滑に動作させることができる。
【００２２】
また本発明によれば、副制御装置は、ロボット毎に個別に必要な演算を行う。これによって主制御装置の負荷を低減することができる。同時動作するロボットの台数または各ロボットの軸数が増えれば増えるほど、各移動位置に基づいて各アクチュエータの動作量を演算するに必要な負荷が増加する。本発明では、上述したようにロボット毎に設けられる副制御装置が、対応するロボットに対するアクチュエータの動作量の演算を分担する。
【００２３】
このように主制御装置は、処理動作のうちで、ロボット毎の逆変換演算処理を省略することができる。これによって同時動作するロボットの台数または各ロボットの軸数が増えても、主制御装置にかかる演算負荷が増大することを防ぐことができ、各ロボットの移動位置を円滑にかつ短時間に求めることができ、ひいては各ロボットを安定して同時に動作させることができる。
【００２４】
また請求項２記載の本発明に従えば、入出力部から信号が与えられると、入出力制御処理回路が、入出力部を制御する。入出力制御処置回路による入出力部の入出力動作の制御は、常時行われているわけではなく、短期間について行われる。たとえば入出力部が表示部分と入力部分とを含む場合、入出力制御処理回路は、入力部分によって移動経路を示す移動経路情報の表示指令が与えられたことを判断すると、移動経路情報を表示部分に表示させる。また入力部分によって各ロボットに関する動作計画を示す動作計画入力指令が与えられたことを判断すると、入力部分から与えられた動作計画を記憶部に記憶させる。
【００２５】
移動経路演算処理回路は、記憶部に記憶される各ロボットに関する動作計画を読取り、その動作計画に基づいて各ロボットの基準可動部の移動位置を順に演算する。移動経路演算処理回路は、ロボット毎に演算した各移動位置を、対応する副制御装置にそれぞれ与える。
【００２６】
本発明によれば、ロボットの各移動位置を演算する移動経路演算処理回路と、その他の動作を制御する入出力制御処理回路とを別体に構成する。これによって作業者の操作などによって演算負荷が変動したとしても、移動経路演算処理回路が、演算結果を円滑に出力することができる。これによって各ロボットを複数同時に安定して動作させることができる。
【００２７】
また請求項３記載の本発明に従えば、主制御装置に接続される副制御装置に数に拘わらず、主制御装置から各副制御装置に演算結果がそれぞれ与えられるタイミングを同じにすることができる。したがって各ロボットの動作計画が決定された状態で、副制御装置が削除された場合であっても、主制御装置から残余の副制御装置に演算結果が与えられるタイミングが変化することがなく、残余の副制御装置によって制御される各ロボットの動作特性が変化することを防ぐことができる。同様に、各ロボットの動作計画が決定された状態で、副制御装置が追加された場合であっても主制御装置から既存の副制御装置に演算結果が与えられるタイミングが変化することがなく、既存の副制御装置によって制御される各ロボットの動作特性が変化することを防ぐことができる。
【００２８】
たとえば複数のロボットのうち１つのロボットが故障した場合、故障したロボットに対応する副制御装置を主制御装置から切り離しても、残余の副制御装置によって制御されるロボットの動作が変化することを防ぐことができる。これによって故障したロボットが行うべき作業を作業者が一時的に行うことで、生産性の低下を抑えることができる。また故障したロボットが修理された場合、修理されたロボットに対応する副制御装置を主制御装置に接続することで、複数のロボットによる作業を容易に再開させることができる。
【００２９】
また請求項４記載の本発明に従えば、移動経路演算処理回路は、協調動作情報に基づいて注目するロボットがマスタロボットであると判断すると、そのマスタロボットに対応する動作計画に基づいて基準可動部の移動位置を演算する。また協調動作情報に基づいて注目するロボットがスレーブロボットであると判断すると、注目するスレーブロボットが動作を従うマスタロボットを判断し、そのマスタロボットの各移動位置とスレーブロボットの連動動作関係とに基づいて、スレーブロボットの基準可動部の移動位置を演算する。
【００３０】
本発明によれば、移動経路演算処理回路が、協調動作情報と連動関係情報とに基づいて、スレーブロボットの基準可動部の各移動位置を演算する。これによって作業者がスレーブロボットの各移動位置を詳しく入力する必要がなく、作業者の手間を省略して協調動作を行うことができる。また上述したように単一の主制御装置に、各ロボットの動作計画が入力されることによって、他の制御装置と通信することなく、各ロボットのそれぞれの移動位置を容易に演算することができる。
【００３１】
また請求項５記載の本発明に従えば、主制御装置は、それぞれ異なるロボットの各移動位置を、通信ケーブルを介して対応する副制御装置にそれぞれ与える。各副制御装置は、通信ケーブルを介して与えられた基準可動部の移動位置に基づいて、対応するロボットの複数のアクチュエータを制御する。
【００３２】
本発明によれば、通信ケーブルによって接続されることで、主制御装置と副制御装置とを互いに離反させることができる。これによって主制御装置は、副制御装置で発生する電磁ノイズによる影響を小さくすることができる。また複数のロボットが互いに離れた位置に配置される場合であっても、ロボットに近接した位置に副制御装置を配置して、ロボットから離反した適当な位置に主制御装置を配置することができる。これによって使い勝手のよい位置に主制御装置を配置することができる。
【００３３】
なお、副制御装置は、ロボットに動力を与える動力線と、ロボットに信号を与えるまたはロボットから信号を取得する信号線とによってロボットに接続されることが多い。これに対して主制御装置と副制御装置とを接続するケーブルは、動力を伝達する必要がない信号線であることが多い。この場合、副制御装置とロボットとを接続するケーブルが太く、これに対して主制御装置と副制御装置とを接続するケーブルは細くなる。本発明によれば、副制御装置とロボットとを近接して配置することによって、副制御装置とロボットを接続する太いケーブルを短くすることができ、作業の邪魔になることを防ぐことができる。
【００３４】
また請求項６記載の本発明に従えば、イーサネット（登録商標）を用いて主制御装置と副制御装置とが通信する。なお、「イーサネット」とは、米国電気電子学会（略称ＩＥＥＥ；Institute of Electrical and Electronic Engineers）および国際標準化機構（略称ＩＳＯ；International Organization for Standardization）によって、ＩＥＥＥ８０２．３およびＩＳＯ８８０２−３として標準化されたＬＡＮ（Local Area Network）の通信規格である。
【００３５】
本発明によれば、イーサネットを用いることによってデータ通信を高速に行うことができ、通信ケーブルの長さの違いによるロボットの信号送信ずれの影響を小さくすることができ、協調制御を正確に行うことができる。またイーサネットを用いることによって、副制御装置と主制御装置とを離れた位置に配置することができる。
【００３６】
また請求項７記載の本発明に従えば、前記ロボット制御システムと、そのロボット制御システムによって制御される複数のロボットとを含むロボット設備である。
【００３７】
本発明によれば、上述したように単一の主制御装置によってロボットを制御することによって、制御システムの設置スペースを小さくすることができ、ひいてはロボット設備における設置スペースを削減することができ、ロボット間の距離を近接させることができる。これによって複数のロボットによって製造ラインを形成したとき、製造ラインを短くすることができ、施工時間を短縮することができる。さらに本発明では、ロボット毎に設けられる複数の副制御装置によって、各ロボットに必要な演算処理を分担させることによって、主制御装置の負荷を軽減することができ、複数のロボットを同時に動作する場合であっても、ロボットの動作を安定して行わせることができる。また単一の主制御装置に各ロボットの動作計画を教示するだけでよく、複数の制御装置に各ロボットの動作を個別に教示する場合に比べて、教示作業を簡単化することができ、利便性を向上することができる。
【発明を実施するための最良の形態】
【００３８】
図１は、本発明の実施の第１形態であるロボット設備２０の構成を示す系統図であり、図２は、ロボット設備２０の構成を示すブロック図である。本発明の第１形態のロボット設備２０は、複数の多軸ロボット２１，２２と、各多軸ロボット２１，２２を複数同時に制御可能なロボット制御システム２３とを含んで構成される。
【００３９】
複数のロボット２１，２２を有するロボット設備２０は、製造ラインに設けられ、複数のロボット２１，２２を同時に動作させる。たとえばワーク１２９が重量物または大形物である場合、複数台のロボット２１，２２を協調動作することによって、前記ワーク１２９を確実に把持した状態を維持しながら、予め設定された出発点から到達点にわたって、搬送させることがある。このような複数台のロボット２１，２２を用いるロボット制御システム２３においては、作業空間内におけるロボット２１，２２の配置位置に応じた複数箇所で前記ワーク１２９を把持することができるため、前記ワーク１２９が大形ものであっても、安定した搬送が可能である。また、前記ワーク１２９が重量物であっても、複数のロボット２１，２２にワーク１２９の重量が分散されるので、各ロボット２１，２２の重量負荷および慣性負荷が少なく、搬送速度を大きくして搬送時間を短縮することができる。
【００４０】
ロボット設備２０における複数の多軸ロボット２１，２２は、たとえば６軸垂直多関節型ロボットによって実現される。６軸多関節ロボット２１，２２は、所定の作業ステージに略平行な床１２２上に相互に間隔をあけて設置される基台１２３上に旋回体１２４が設けられる。旋回体１２４には、複数のアーム１２５，１２６，１２７が各軸まわりに角変位可能に設けられる。最も遊端側のアーム１２７の先端部には、手首１２８が設けられる。この手首１２８には手先装置、いわゆるエンドエフェクタが設けられる。本実施の形態では、手先装置は、ワーク１２９を着脱可能に把持するロボットハンド１３０によって実現される。
【００４１】
各ロボット２１，２２は、各アーム１２５〜１２７の回転軸毎にサーボモータ４５がそれぞれ設けられる。各サーボモータ４５は、各アーム１２５〜１２７をそれぞれ個別に動作させるアクチュエータとなる。各サーボモータ４５がそれぞれ個別に角変位して各アーム１２５〜１２７を変位駆動することによって、ロボットハンド１３０を任意の位置および姿勢に移動させることができる。
【００４２】
ロボット制御システム２３は、単一のロボットコントローラ２４（以下、単にコントローラ２４と称する）と、ロボット２１，２２毎にそれぞれ設けられる複数の逆変換処理部２５，２６とを含む。
【００４３】
コントローラ２４は、各ロボット２１，２２の移動する移動経路を演算する主制御装置となる。具体的には、コントローラ２４は、ロボットハンド１３０が移動する移動経路上の複数の移動位置を順に演算する。各ロボット２１，２２は、移動開始位置から移動終了位置に向かってロボットハンド１３０を移動させる。言い換えると各ロボット２１，２２は、移動経路に沿って並ぶ各移動位置にロボットハンド１３０を順番に移動させることによって、ロボットハンド１３０を移動経路に沿って移動させることができる。なお、ロボットハンド１３０は、ロボット２１，２２に設定される基準可動部となる。
【００４４】
また各逆変換処理部２５，２６は、通信ケーブル２７を介して、コントローラ２４とデータ通信可能に接続される。また各逆変換処理部２５，２６は、１対１で対応するロボット２１，２２にそれぞれ接続される。各逆変換処理部２５，２５は、サーボアンプ４４を有し、サーボアンプ４４によって接続されるロボットの各サーボモータ４５に動力を供給する。各逆変換処理部２５，２６は、コントローラ２４に対する副制御装置となる。
【００４５】
逆変換処理部２５，２５は、接続されるロボット２１，２２のロボットハンド１３０の移動位置が、コントローラ２４から順次与えられる。逆変換処理部２５，２６は、接続されるロボット２１，２２のロボットハンド１３０が、移動位置に移動するような各サーボモータ４５の動作量を演算して求め、その動作量で動作するように各サーボアンプ４４をそれぞれ制御する。
【００４６】
各ロボット２１，２２に６つのサーボモータ４５が設けられる場合、各ロボット２１，２２にそれぞれ個別に接続される逆変換処理部２５，２６は、６つのサーボモータ４５に動力を与える各アンプ４４について、それぞれ個別に制御する。具体的には、ロボットハンド１３０の移動位置に基づいて、各サーボモータ４５の目標角変位量をそれぞれ求める。そしてサーボモータ４５の目標角変位量と、そのサーボモータ４５に設けられるエンコーダからのフィードバック値とに基づいて、サーボモータ４５に動力を与えるアンプ４４をフィードバック制御する。
【００４７】
逆変換処理部２５は、サーボモータ４５毎に個別に各アンプ４４を制御する。このように逆変換処理部２５は、ロボットハンド１３０の移動位置に基づいて各サーボモータ４５の動作量を演算する逆変換演算処理と、逆変換演算結果に基づいてモータ４５を制御するサーボ処理とを行う。
【００４８】
本実施の形態では、ロボット設備２０は、第１ロボット２１および第２ロボット２２を有する。この場合、ロボット制御システム２３は、第１逆変換処理部２５および第２逆変換処理部２６を有する。第１逆変換処理部２５は、コントローラ２４から与えられる第１ロボット２１のロボットハンド１３０の移動位置に基づいて、第１ロボット２１の各サーボモータ４５の動作量を演算して求め、その動作量で第１ロボット２１の各サーボモータ４５をそれぞれ制御する。
【００４９】
第２逆変換処理部２６は、コントローラ２４から与えられる第２ロボット２２のロボットハンド１３０の移動位置に基づいて、第２ロボット２２の各サーボモータ４５の動作量を演算して求め、その動作量で第２ロボット２２の各サーボモータ４５をそれぞれ制御する。
【００５０】
コントローラ２４と各逆変換処理部２５，２６とは、通信ケーブル２７によって互いに通信可能に接続されて、通信ネットワークを構成する。本実施の形態では、通信ケーブル２７は、ＬＡＮ（Local Area Network）ケーブルによって実現され、具体的には、イーサネット（登録商標）を用いて、コントローラ２４と逆変換処理部２５，２６とが相互に通信する。
【００５１】
図２に示すように、コントローラ２４には、ティーチペンダント１４０が接続される。ティーチペンダント１４０は、ロボットの動作手順をコントローラ２４に教示する教示手段となる。ティーチペンダント１４０は、表示部および入力部を有し、ケーブルによってコントローラ２４と接続される。
【００５２】
たとえばティーチペンダント１４０の入力部は、タッチパネルおよびボタンによって実現される。入力部は、作業者に操作されることによって、作業者からの指示が入力される。またたとえば表示部は、液晶表示装置によって実現される。表示部は、ロボットの動作プログラムおよびロボット制御システムの操作案内などを示す画像を表示する。ティーチペンダント１４０とコントローラとを接続するケーブルは、可撓性を有する。したがって作業者は、コントローラ２４に対してティーチペンダント１４０を所望の位置に移動させた状態で、ロボットの動作手順の教示作業を行うことができる。また、コントローラ２４に上述した入力部および表示部が固定されていてもよい。
【００５３】
本実施の形態では、コントローラ２４は、パーソナルコンピュータ１４１（以下、ＰＣ１４１と称する。）に接続され、ＰＣ１４１とデータ通信可能に設けられる。またコントローラ２４は、製造ラインを統括的に管理する統括制御装置１４２に接続される。
【００５４】
コントローラ２４は、インターフェース部３０と、ロボット動作演算部３１とが設けられる。インターフェース部３０は、コントローラ２４に接続される外部装置および作業者と、コントローラ２４とのデータの受渡しを行う。具体的には、インターフェース部３０は、第１ＣＰＵ３２と、第１メモリ３３と、ＴＰインターフェース３４と、ＰＣインターフェース３５と、統括用インターフェース３６とを含んで構成される。
【００５５】
ＴＰインターフェース３４は、ティーチペンダント１４０から与えられるデータおよび動作指令を第１ＣＰＵ３２に与える。またＴＰインターフェース３４は、第１ＣＰＵ３２から与えられるデータおよび動作指令をティーチペンダント１４０に与える。たとえばティーチペンダント１４０の入力部を作業者が操作することによって、ティーチペンダント１４０は、その操作内容に従ったデータまたは動作指令を、ＴＰインターフェース３４を介して、第１ＣＰＵ３２に与える。
【００５６】
ＰＣインターフェース３５は、ＰＣ１４１から与えられるデータおよび動作指令を第１ＣＰＵ３２に与える。ＰＣ１４１は、ＰＣ１４１に設けられるＣＰＵによって出力したデータおよび動作指令を、ＰＣインターフェース３５を介して、第１ＣＰＵ３２に与える。またＰＣインターフェース３５は、第１ＣＰＵ３２から与えられるデータおよび動作指令をＰＣ１４１に与える。たとえば作業者がＰＣ３２の入力部を操作するなどしてＰＣ３２に入力情報が与えられると、ＰＣ３２は、その操作内容に従ったデータまたは動作指令を、ＰＣインターフェース３５を介して、第１ＣＰＵ３２に与える。
【００５７】
統括用インターフェース３６は、製造ライン全体を制御する統括制御装置１４２と接続される。統括制御装置１４２は、統括制御装置１４２から与えられるデータおよび動作指令を、統括用インターフェース３６を介して、第１ＣＰＵ３２に与える。また統括用インターフェース３６は、第１ＣＰＵ３２から与えられるデータおよび動作指令を統括制御装置１４２に与える。たとえば統括制御装置１４２は、ロボット設備２０の全体の動作開始指令、動作終了指令および動作停止指令などを、統括用インターフェース３６を介して第１ＣＰＵ３２に与える。またインターフェース部３０は、操作パネルを有していてもよい。操作パネルは、作業者から動作が入力される入力部と作業者に動作内容を表示させる表示部とを含む。
【００５８】
このように各インターフェース３４〜３６は、コントローラ２４と外部装置との信号の入出力動作、またはコントローラ２４と作業者との情報の入出力動作を行う入出力部となる。そして第１ＣＰＵ３２は、各インターフェース３４〜３６の入出力動作を制御する入出力制御処理回路となる。第１ＣＰＵ３２は、たとえば中央演算処理回路（Central
Processing Unit）によって実現される。また第１メモリ３３は、第１ＣＰＵ３２の動作プログラムを記憶するとともに、第１ＣＰＵ３２から与えられるデータおよび演算結果を記憶する。たとえば第１メモリ３３は、ＲＯＭ（Read Only Memory）およびＲＡＭ（
Random Access Memory）によって実現される。
【００５９】
第１ＣＰＵ３２は、各インターフェース３４〜３６を介して与えられるデータおよび動作指令を解読し、動作指令に従った動作を行う。たとえば第１ＣＰＵ３２は、動作指令の１つである表示指令がティーチペンダント１４０から与えられると、表示すべき画像を示す画像データを生成する。そして第１ＣＰＵ３２は、その画像データを、ＴＰインタフェース３４を介して、ティーチペンダント１４０に与える。ティーチペンダント１４０は、画像データが与えられると、画像データが表わす画像を表示部に表示する。
【００６０】
また第１ＣＰＵ３２は、各インターフェース３４〜３６を介して入力される動作指令およびデータのうち、ロボットの操作に関連するロボット関連情報が与えられると、そのロボット関連情報に基づいて、各ロボット２１，２２のロボットハンド１３０の移動位置を求めるためのロボット動作計画を生成し、生成したロボット動作計画を第１メモリ３３に記憶する。第１ＣＰＵ３２は、与えられる動作指令に基づいて、第１メモリ３３に記憶されるプログラムを実行することによって、与えられる動作指令に応じた動作、たとえばロボット関連情報から、ロボットの動作計画を生成する演算処理を行う。たとえばロボット関連情報は、ロボット言語によって表わされるロボット制御プログラムとして与えられる。
【００６１】
このようにインターフェース部３０は、ティーチペンダント１４０などによって作業者が入力したロボット関連情報を処理可能にする。またインターフェース部３０は、ロボット関連情報をティーチペンダント１４０の表示部に表示することよって、作業者がロボットの動作計画を確認可能にすることができる。したがってインターフェース部３０は、いわゆるＭＭＩ（Man Machine Interface）となる。またインターフェース部３０は、与えられるロボット関連情報について、言語処理してロボットの動作計画を演算する。
【００６２】
ロボット動作演算部３１は、コントローラ通信部３７と、パワーシーケンス部３８と、第２ＣＰＵ３９と、第２メモリ４０とを含んで構成される。コントローラ通信部３７は、後述するサーボ通信部４１に対してデータ通信可能に設けられる。パワーシーケンス部３８は、各サーボモータ４５の始動手順および終了手順など、ロボットの動作計画とは無関係に設定される動作プログラムを記憶および実行する。たとえばモータ電源が投入された場合に、予め定める位置に移動させてモータのブレーキを解除するといった、始動時の動作を制御する。またパワーシーケンス部３８には、各ロボットの動作を停止および緊急停止するための停止指令を入力するための停止スイッチ４５が設けられる。パワーシーケンス部３８と、モータまたはサーボアンプとが、別の信号線によって接続されることによって、非常停止時に確実にモータを停止させることができる。
【００６３】
第２ＣＰＵ３９は、第１ＣＰＵ３２からロボット動作計画が与えられ、ロボット動作計画に基づいて、ロボットハンド１３０が移動する移動経路上の移動位置を演算する。すなわち第２ＣＰＵ３９は、移動経路演算処理回路となる。第２ＣＰＵ３９は、たとえば中央演算処理回路によって実現される。また第２メモリ４０は、第２ＣＰＵ３９の動作プログラムを記憶するとともに、第２ＣＰＵ３９から与えられるデータおよび演算結果を記憶する。たとえば第２メモリ４０は、ＲＯＭおよびＲＡＭによって実現される。
【００６４】
また複数のロボット２１，２２を同時に制御する同期制御または協調制御を行わせる場合、第２ＣＰＵ３９は、マスタロボット２１に関して演算した演算結果に基づいて、スレーブロボット２２の移動位置を演算する。なお、コントローラ２４内の各構成３２〜４０は、バスラインなどによって相互に通信可能に接続される。
【００６５】
各逆変換処理部２５，２６は、同一の構成を有する。したがって１つの逆変換処理部２５について説明し、他の逆変換処理部２６についての説明を省略する。逆変換処理部２５は、サーボ通信部４１と、第３ＣＰＵ４２と、第３メモリ４３と、アンプ４４とを含んで構成される。サーボ通信部４１は、通信ケーブル２７を介してコントローラ通信部３７とデータ通信可能に設けられる。
【００６６】
第３ＣＰＵ４２は、コントローラ通信部３７からロボットハンド１３０の移動位置が順次与えられる。第３ＣＰＵ４２は、与えられたロボットハンド１３０の移動位置に基づいて、ロボットハンド１３０を移動位置に移動させるような、各サーボモータ４５の動作量を演算する。言い換えると第３ＣＰＵ４２は、ロボットハンド１３０の移動位置に基づいて、各サーボモータ４５の動作量を逆変換演算する。そしてサーボモータ４５の動作量をアンプ４４に与える。アンプ４４は、与えられる動作量を目標値としてロボット２１の各サーボモータ４５を制御する。
【００６７】
すなわち第３ＣＰＵ４２は、アクチュエータ制御回路となる。第３ＣＰＵ４２は、たとえば中央演算処理回路によって実現される。また第３メモリ４３は、第３ＣＰＵ４２の動作プログラムを記憶するとともに、第３ＣＰＵ４２から与えられるデータおよび演算結果を記憶する。たとえば第３メモリ４３は、ＲＯＭおよびＲＡＭによって実現される。
【００６８】
図３は、第１ＣＰＵ３２によるロボット関連情報の記憶動作の手順を示すフローチャートである。第１ＣＰＵ３２は、ロボット２１，２２を動作させるための準備工程としてロボットの動作計画を生成するためのロボット関連情報を記憶する動作を行う。たとえばティーチペンダント１４０が用いられて、ロボット２１，２２のロボット関連情報が入力される場合について説明する。
【００６９】
ステップａ０で、第１ＣＰＵ３２は、ティーチペンダント１４０が操作されて、ロボット関連情報の記憶指令が与えられると、ステップａ１に進み、ロボット関連情報の記憶動作を開始する。
【００７０】
ステップａ１では、第１ＣＰＵ３２は、ティーチペンダント１４０から動作計画を生成するためのロボット関連情報が与えられる。ロボット関連情報は、ロボットを移動させるために必要な情報となる。このロボット関連情報は、たとえば作業者によって入力され、ロボット言語を用いて表現される動作プログラムを含む。また動作プログラムにかかわず予め設定される設定情報を含んでもよい。
【００７１】
ロボット関連情報には、たとえばロボットハンド１３０が通過する複数の通過教示位置を示す情報、前記通過教示位置を結ぶロボットハンドの移動経路を示す情報、ロボットの速度を示す情報、ロボットの加速度を示す情報、ロボットの待機時間を示す情報、ロボットハンド１３０の開閉動作を示す手先装置の動作情報、および動作を行うロボットを示すロボット識別情報を含む。第１ＣＰＵ３２は、このようなロボット関連情報を取得すると、ステップａ２に進む。
【００７２】
ステップａ２では、第１ＣＰＵ３２は、取得したロボット関連情報を第１メモリ３３に記憶し、ステップａ３に進む。ステップａ３では、動作すべき全てのロボット２１，２２に対応するロボット関連情報をそれぞれ記憶したことを示す指令がＴＰインターフェース３４から与えられないと、ステップａ１に戻る。ステップａ１では、動作すべきロボットのロボット関連情報が入力されるまで待機する。
【００７３】
ステップａ３において、動作すべき全てのロボット２１，２２に対応するロボット関連情報をそれぞれ記憶したことを示す指令がＴＰインターフェース３４から与えられると、ステップａ４に進む。ステップａ４では、第１ＣＰＵ３２は、ロボット関連情報の記憶動作を終了する。
【００７４】
なお上述の記載では、ロボット関連情報をティーチペンダント１４０からコントローラ３０に入力するとしたが、ＰＣ１４１からロボット関連情報をコントローラ３０に入力してもよい。またコントローラ３０に設けられる入力部によって、ロボット関連情報を直接入力してもよい。
【００７５】
ロボットハンド１３０の通過教示位置の情報は、ティーチペンダント１４０によってロボットを操作して、ロボットハンド１３０を移動させて所望の位置に達したときの座標に基づいて決定してもよい。すなわちティーチペンダント１４０を用いたティーチング動作によってロボットハンドの通過教示位置の情報を決定してもよい。またティーチング動作を行うことなく、ロボットハンド１３０の通過教示位置の座標を直接入力してもよい。
【００７６】
また協調制御および同期制御を行う場合、ロボット関連情報には、協調動作情報と、主従識別情報と、対応マスタロボット識別情報と、連動関係情報とが含められる。協調動作情報は、注目するロボットが協調動作を行うか、単独動作を行うかを示す情報である。また主従識別情報は、注目するロボットが、基準動作を行うマスタロボットであるか、マスタロボットに対する従属動作を行うスレーブロボットであるかを示す情報である。また対応マスタロボット識別情報は、注目するロボットがスレーブロボットである場合、そのスレーブロボットが基準とするマスタロボットを示す情報である。連動関係情報は、注目するロボットがスレーブロボットである場合、そのスレーブロボットの動作と、基準とするマスタロボットの動作との関係を示す情報である。たとえば連動関係情報は、マスタロボットの動作に対して、予め定める方向に予め定める距離ずれてスレーブロボットを動作するといった情報である。
【００７７】
図４は、第１ＣＰＵ３２によるロボット動作計画生成動作の手順を示すフローチャートである。ステップｂ０で、第１ＣＰＵ３２は、ロボット関連情報が第１メモリ３３に記憶された状態で、ロボットの動作開始を示す指令が与えられると、ステップｂ１に進み、第１ＣＰＵ３２は、動作計画生成動作を開始する。たとえばロボットの動作開始指令は、統括制御装置１４２またはコントローラ２４の入力部から与えられる。
【００７８】
ステップｂ１では、第１ＣＰＵ３２は、第１メモリ３３からロボット毎にロボット関連情報を読出し、ステップｂ２に進む。ステップｂ２では、各ロボットのロボット関連情報を言語処理して解読し、解読したロボット関連情報に基づいてロボット動作計画を生成する。ロボット動作計画を生成するとステップｂ３に進む。ステップｂ３では、ロボット毎に生成した各動作計画を第２ＣＰＵ３９にそれぞれ与え、ステップｂ４に進む。ステップｂ４では、第１ＣＰＵ３２は、ロボット動作計画生成動作を終了する。
【００７９】
表１は、ロボット関連情報であるロボットの動作プログラムの一例と、各プログラムを構成する各コマンドを説明する表である。図５は、表１における動作プログラムに従って動作するロボットにおける、ロボットハンド１３０が移動する移動経路を示す図であり、図６は、表１における動作プログラムに従って動作するロボットにおける、ロボットハンド１３０の移動速度とハンドの開閉動作との時間変化を示すグラフである。図６（１）は、ハンドの開閉動作の時間変化を示し、図６（２）は、ハンドの移動速度の時間変化を示す。
【００８０】
【表１】
2006187826.tif 000003
【００８１】
表１におけるロボット動作プログラムに従ってロボットが動作すると、図５に示すようにロボットは、待機位置Ｑｈから第１動作位置Ｑ１に配置されるワークを把持して、第２動作位置Ｑ２に搬送し、待機位置Ｑｈに戻る。具体的には、動作プログラムが実行されると第１のステップで、ロボットハンド１３０が待機位置Ｑｈから第１動作位置Ｑ１へ向かって移動する。そして図６（２）に示すように動作開始から予め定める時間Ｔ３に達すると、ロボットハンド１３０が第１動作位置Ｑ１に移動する。
【００８２】
第２のステップで、予め定める第１設定時間Ｔ１秒だけ待機する。次に第３のステップで、ロボットハンド１３０を閉じて第１動作位置Ｑ１に配置されるワークを把持する。次に第４のステップで、予め定める第２設定時間Ｔ２秒だけ待機する。次に第５のステップで、ワークを把持したロボットハンド１３０が第１動作位置Ｑ１から第２動作位置Ｑ２へ向かって移動する。そして図６（２）に示すように、動作開始から予め定める時間Ｔ４に達すると、ロボットハンド１３０が第２動作位置Ｑ２に移動する。
【００８３】
次に第６のステップで、予め定める第１設定時間Ｔ１秒だけ待機する。次に第７のステップで、ロボットハンド１３０を開いてワークの把持を解除して、第２動作位置Ｑ２にワークを配置する。次に第８のステップで、予め定める第２設定時間Ｔ２秒だけ待機する。次に第９のステップで、ロボットハンド１３０が待機位置Ｑｈに移動する。動作開始から予め定める時間Ｔ５に達すると、ロボットハンド１３０が待機位置Ｑｈに移動する。このような動作プログラムを表わすロボット言語が、ロボット関連情報の一部を構成する。たとえば各動作位置Ｑ１，Ｑ２は、通過教示位置としてティーチング動作によって入力される。またロボット関連情報は、ロボットに設定される加速度情報および速度情報を含む。
【００８４】
また演算されるロボット動作計画は、図５に示すようにロボットハンド１３０の動作位置Ｑ１，Ｑ２の座標と、ロボットハンド１３０が各動作位置Ｑ１，Ｑ２を移動する順番、言い換えると移動経路を示す情報とを含む。またロボット動作計画は、図６（２）に示すように、ロボットハンド１３０の移動速度の時間変化を示す情報を含む。すなわちステップｂ２において、第１ＣＰＵ３２は、表１に示すロボットの動作プログラムに、予め設定される設定移動速度Ｖｍａｘ、加速時における最大加速度（Ｖｍａｘ／ｄｔ１）、減速時における負の方向における最大加速度（Ｖｍａｘ／ｄｔ２）などを関連付けて表わされる、ロボット動作計画を演算する。
【００８５】
図７は、第２ＣＰＵ３９によるロボットハンド１３０の移動位置演算動作の手順を示すフローチャートである。ステップｃ０で、第２ＣＰＵ３９は、ロボットの動作開始を示す指令が与えられると、ステップｃ１に進み、第２ＣＰＵ３９は、補間処理を行いロボットハンド１３０の移動位置の演算を開始する。
【００８６】
ステップｃ１では、第２ＣＰＵ３９は、第１ＣＰＵ３２から、ロボット毎のロボット動作計画がそれぞれ与えられる。このようにして第２ＣＰＵ３９が各ロボット動作計画を取得すると、ステップｃ２に進む。ステップｃ２では、第２ＣＰＵ３９は、ロボット動作計画に基づいて、補間処理を行う。具体的には、ティーチング動作などによって設定された複数の通過教示位置のうち、移動方向に沿って並ぶ２つの通過教示位置の間を補間する移動位置を演算する。すなわちロボットハンド１３０の移動経路上の移動位置をロボット毎にそれぞれ演算する。
【００８７】
このとき上述したロボットの動作プログラムと、予め設定される設定移動速度、加速時における最大加速度、減速時における負の方向における最大加速度とに基づくことによって、第２ＣＰＵ３９は、ロボットハンド１３０が予め定められる速度によって変化した場合に、単位時間毎の移動位置を順に演算する。言い換えると、第２ＣＰＵ３９は、以前に演算した移動位置に対して、予め定める単位時間経過したときに移動方向下流に１つずれた移動位置を、ロボットハンド１３０毎にそれぞれ演算する。このように以前に演算した移動位置に対して、単位時間経過したときにロボットハンド１３０が位置するであろう、１つ移動方向下流側の移動位置をロボットハンド毎にそれぞれ求めると、ステップｃ３に進む。なお、以前に演算した移動位置が存在しない場合には、移動開始位置から１つずれた移動位置を演算する。
【００８８】
ステップｃ３では、第２ＣＰＵ３９は、ロボットハンド１３０毎にそれぞれ演算した移動位置を、対応する逆変換処理部２５，２６にそれぞれ送信するように、コントローラ通信部３７を制御する。演算した移動位置をコントローラ通信部３７に与えると、ステップｃ４に進む。コントローラ通信部３７は、第２ＣＰＵ３９から与えられた移動位置を、通信ケーブル２７を介してサーボ通信部４１に与える。
【００８９】
ステップｃ４では、ステップｃ３でコントローラ通信部３７に与えた移動位置が、ロボットハンド１３０の移動終了位置であるか否かについて判断し、移動終了位置でない場合には、ステップｃ２に戻る。ステップｃ２では、次の移動位置をロボットハンド毎にそれぞれ求める。
【００９０】
また、ステップｃ４において、ステップｃ３でコントローラ通信部３７に与えた移動位置が、ロボットハンド１３０の移動終了位置であると判断すると、ステップｃ５に進む。ステップｃ５では、第２ＣＰＵ３９は、移動位置演算動作を終了する。
【００９１】
このように、第２ＣＰＵ３９は、第２メモリ４０に記憶される各ロボット２１，２２に関するロボット動作計画を読取り、そのロボット動作計画に基づいて各ロボットハンド１３０の移動位置を順に演算する。また上述した第１ＣＰＵ３２は、各インターフェース３４〜３６の入出力動作を制御する。第１ＣＰＵ３２による各インターフェース３４〜３６の入出力動作の制御は、常時行われているわけではなく、短期間について行われる。
【００９２】
本実施の形態では、ロボット２１，２２の各移動位置を演算する第２ＣＰＵ３９と、その他の動作を制御する第１ＣＰＵ３２とが別体に構成される。これによって、第２ＣＰＵ３９は、ロボットの移動位置の演算に特化して動作することができる。したがってコントローラ２４は、作業者の操作などによって短期的に演算負荷が変動した場合であっても、移動位置の演算について円滑に演算結果を出力することができる。これによって各ロボットを複数同時に安定して動作させることができる。すなわちロボット動作を安定させて、プログラム入力動作およびプログラム表示動作を行わせることができ、利便性を向上することができる。
【００９３】
図８は、表１における動作プログラムに従ってロボットハンド１３０が移動した場合に、隣接する２つの動作位置Ｑ１，Ｑ２と、補間演算される移動位置Ｑｃとを説明するための図である。図９は、移動位置Ｑｃを説明するために示すロボットハンド１３０の移動速度の時間変化を示すグラフである。図８において、２つの動作位置Ｑ１，Ｑ２を白丸○で表わし、補間演算された各移動位置Ｑｃを白三角△で表わす。また図９において、１つの移動位置から次の移動位置に移動するまでの単位時間毎の移動速度を白四角□で表わす。
【００９４】
ロボットが動作した場合に、ロボットハンド１３０が単位時間ｄｔあたりに移動する移動位置間の間の距離Ｄ1〜Ｄ９は、ロボットハンド１３０が加減速することによって変化する。具体的には、加速期間において移動位置間の距離Ｄ１〜Ｄ３は、移動方向下流に向かうにつれて徐々に大きくなる。また減速期間において移動位置間の距離Ｄ７〜Ｄ９は、移動方向下流に向かうにつれて徐々に小さくなる。また一定速度期間において移動位置間の距離Ｄ４〜Ｄ６は、一定となる。たとえば補間演算される各移動位置Ｑｃは、２つの動作位置のうち上流側の動作位置Ｑ１にロボットハンド１３０が配置されたときから、求めたい移動位置に達するまでの時間で、ロボットハンド１３０の移動速度を積分することによって求めることができる。上述したステップｃ２では、第２ＣＰＵ３９は、動作計画に従って、このように補間処理を行い、同じ時刻における各ロボットハンド１３０の各移動位置Ｑｃをそれぞれ計算する。
【００９５】
図１０は、ステップｃ３の補間処理の手順を示すフローチャートである。第２ＣＰＵ３９は、図７に示すステップｃ３に進むと、図１０に示すステップｄ１に進む。
【００９６】
ステップｄ１では、ロボット動作計画に協調動作させる協調動作信号が含まれているか否かを判断する。協調動作信号が含まれていないと、ステップｄ２に進む。ステップｄ２では、第２ＣＰＵ３９は、各ロボットが単独動作することを判断し、ロボット毎に補間動作を行い、ステップｄ６に進む。ステップｄ６では第２ＣＰＵ３９は、補間処理を終了する。
【００９７】
ステップｄ１において、ロボット動作計画に協調動作信号が含まれていると、ステップｄ３に進む。ステップｄ３では、第２ＣＰＵ３９は、マスタロボットにおけるロボットハンド１３０の補間処理を行う。第２ＣＰＵ３９は、補間処理によって求められたマスタロボットのハンドの移動位置を第２メモリ４０に記憶し、ステップｄ４に進む。ステップｄ４では、第２ＣＰＵ３９は、ロボット動作計画から、主従識別情報と、対応マスタロボット識別情報と連動情報とを抽出し、ステップｄ５に進む。
【００９８】
ステップｄ５では、第２メモリ４０からマスタロボットのロボットハンドの移動位置を抽出する。また第１メモリ３３に記憶されるロボット関連情報のうち、主従識別情報と、対応マスタロボット識別情報と連動情報を抽出する。第２ＣＰＵ３９は、これらの情報に基づいて、スレーブロボットの移動位置を求め、ステップｄ５に進む。ステップｄ６では、第２ＣＰＵ３９は、補間処理を終了する。これによって任意の時刻におけるマスタロボットおよびスレーブロボットの移動位置を、単一のコントローラ２４を用いて演算することができる。
【００９９】
図１１は、マスタロボットＲａとスレーブロボットＲｂとの協調動作を説明する図である。第１ロボット２１をマスタロボットＲａとし、第２ロボット２２をスレーブロボットＲｂとして、協調制御を行うことがロボット動作計画に示されている場合における補間処理について説明する。
【０１００】
マスタロボットＲａとスレーブロボットＲｂとの共通座標系Σ０において、マスタロボットＲａの動作開始位置Ｍｓと動作終了位置Ｍｅとが教示される。また共通座標系Σ０において、スレーブロボットＲｂの動作開始位置Ｓｓと動作終了位置Ｓｅとが教示される。マスタロボットＲａが動作教示位置Ｍｓから動作終了位置Ｍｅへ移動するとき、マスタロボットＲａの動作中間位置Ｍｉに対応するスレーブロボットＲｂの動作途中点位置Ｓｉを求める。
【０１０１】
マスタロボットＲａの動作途中点位置Ｍｉは、パラメータｓを用いて求められる。このパラメータｓの値は、ｓ＝１のとき、マスタロボットＲａが動作開始位置Ｍｓに到達し、ｓ＝０．０のとき動作終了位置Ｍｅに到達するものとする。また、マスタロボットＲａが動作途中位置Ｍｉにあるときのパラメータｓはｓｉで表し、このときのスレーブロボットＲｂの動作途中位置をＳｉとする。マスタロボットＲａの動作開始位置ＭｓからスレーブロボットＲｂの動作開始位置Ｓｓへの変換行列をＴAB（ｓ）とし、マスタロボットＲａの動作終了位置ＭｅからスレーブロボットＲｂの動作終了位置Ｓｅへの変換行列をＴAB（ｅ）とし、次式で表わすものとする。
ＴAB（ｓ）＝Ｓｓ・Ｍｓ-1                                          …（１）
ＴAB（ｅ）＝Ｓｅ・Ｍｅ-1                                          …（２）
【０１０２】
また上記の各変換行列ＴAB（ｓ）、ＴAB（ｅ）をＸＹＺオイラー角で表記するとき、ＴAB（ｓ）は（Ｘｓ，Ｙｓ，Ｚｓ，Ｏｓ，Ａｓ，Ｔｓ）とし、ＴAB（ｅ）は（Ｘｅ，Ｙｅ，Ｚｅ，Ｏｅ，Ａｅ，Ｔｅ）として、マスタロボットＲａの動作途中点位置Ｍｉに対する変換行列Ｔｉのオイラー角表記を、次式によって求める。
Ｘｉ＝Ｘｅ−（Ｘｅ−Ｘｓ）・ｓ                                  …（３）
Ｙｉ＝Ｙｅ−（Ｙｅ−Ｙｓ）・ｓ                                  …（４）
Ｚｉ＝Ｚｅ−（Ｚｅ−Ｚｓ）・ｓ                                  …（５）
Ｏｉ＝Ｏｅ−（Ｏｅ−Ｏｓ）・ｓ                                  …（６）
Ａｉ＝Ａｅ−（Ａｅ−Ａｓ）・ｓ                                  …（７）
Ｔｉ＝Ｔｅ−（Ｔｅ−Ｔｓ）・ｓ                                  …（８）
【０１０３】
これらの式１〜８を変換行列Ｔｉと表記し、マスタロボットＲａの動作途中点位置Ｍｉに対するスレーブロボットＲｂの動作途中点位置Ｓｉは、
Ｓｉ＝Ｔｉ・Ｍｉ                                                …（９）
によって求められる。
【０１０４】
このようなマスタロボットＲａの動作途中点位置Ｍｉに対するスレーブロボットＲｂの動作途中点位置Ｓｉの関係式は、ロボット関連情報として第１メモリ３３または第２メモリ４０に記憶されており、各ロボット２１，２２のうちで任意にマスタロボットおよびスレーブロボットを設定して、協調動作させることができるように構成されている。なお、一方のロボットの原点に対するベース座標系を、他方のロボットのベース座標に変換するための変換行列ＴABもまた、予め第１メモリ３３または第２メモリ４０に記憶されている。
【０１０５】
図１２は、第３ＣＰＵ４２によるモータ制御動作の手順を示すフローチャートである。ステップｅ０で、第３ＣＰＵ４２は、ロボットの動作開始を示す指令が与えられると、ステップｅ１に進み、第３ＣＰＵ４２は、逆変換処理処理とモータ４５のサーボ処理とを行うモータ制御動作を開始する。
【０１０６】
ステップｅ１では、第３ＣＰＵ４２は、第２ＣＰＵ３９から対応するロボットの移動位置を示す情報が与えられる。このようにして第３ＣＰＵ４２がロボットの移動位置を取得すると、ステップｅ２に進む。ロボットハンド１３０の移動位置は、たとえばロボットハンド１３０の位置と姿勢とを表わす同時変換行列によって表わされる。
【０１０７】
ステップｅ２では、第３ＣＰＵ４２は、取得した移動位置に基づいて、逆変換演算、すなわちロボットハンド１３０を目的とする位置および姿勢に移動させるような、各ロボットアーム関節角度をそれぞれ求める。言い換えるとアームを角変位するサーボモータ４５の動作指令量を演算する。このような逆変換演算は、既知の手順によって実現することができる。ステップｅ２において、第３ＣＰＵ４２は、ロボットハンド１３０の移動位置に基づいて、各サーボモータ４５の動作指令量を演算すると、ステップｅ３に進む。
【０１０８】
ステップｅ３では、ステップｅ２によって演算した各サーボモータ４５の動作指令量から、各アンプ４４の動作量をそれぞれ演算する。具体的には、サーボモータ４５に設けられるエンコーダからサーボモータ４５の動作位置を取得し、サーボモータ４５の動作位置とサーボモータ４５の動作指令量とから、アンプ４４の動作量をフィードバックして求める。したがってステップｅ３では、第３ＣＰＵ４２は、サーボ処理を行う。サーボ処理を行って、アンプ４４の動作量を演算すると、ステップｅ４に進む。
【０１０９】
ステップｅ４では、演算したそれぞれの動作量を対応するアンプ４４にそれぞれ個別に与え、ステップｅ１に戻る。ステップｅ１では、次に与えられたロボットハンドの移動位置を取得する。このようにして第３ＣＰＵ４２は、ステップｅ１〜ｅ４を順次繰返す。
【０１１０】
各アンプ４４は、第３ＣＰＵ４２からアンプ動作量が与えられると、その動作量にしたがった電力を対応するサーボモータ４５に与える。これによって各サーボモータ４５は、ステップｅ１で演算された関節角度にアームを移動させる。したがってロボットハンドを移動位置に移動させることができる。各第３ＣＰＵ４２は、対応するロボットのアンプ４４についてのアンプ動作量を演算する。第３ＣＰＵ４２は、第２ＣＰＵ４０から移動経路に従った移動位置が順次与えられることによって、ロボットハンド１３０を移動経路に沿って移動させる。したがって第１の逆変換処理部２５の第３ＣＰＵ４２は、第１ロボット２１の動作量を演算し、第２の逆変換処理部２５の第３ＣＰＵ４２は、第２ロボット２２の動作量を演算する。
【０１１１】
またアンプ４４がサーボ処理機能を有する場合には、第３ＣＰＵ４２は、ステップｅ２の動作を行って、各サーボモータ４５の動作指令量をそれぞれのアンプ４４に与え、ステップｅ１〜ステップｅ２の動作を繰返してもよい。この場合、各アンプ４４は、第３ＣＰＵ４２から与えられる各サーボモータ４５の動作指令量と、エンコーダからのエンコーダ値とに基づいて、アンプ４４の動作量を演算し、その動作量の電力を対応するサーボモータ４５に与える。
【０１１２】
ロボット設備１は、接続されるロボットの台数が増減しても柔軟に対応が可能に構成される。具体的には、接続されるロボットが増減したとしても、既に接続されているロボットについての、第２ＣＰＵ３９および第３ＣＰＵ４２から出力される演算結果の出力タイミングを一定に保つ。これによってロボットの増減に拘わらずにロボットの動作特性、たとえば速度、移動軌跡およびサイクルタイムなどを一定に保つことができる。
【０１１３】
ロボット設備１は、接続可能なロボットの最大台数が予め決定され、たとえば本実施の形態では８台のロボットが接続可能に設けられる。この場合、第２ＣＰＵ３９は、第１ＣＰＵ３２から動作計画が与えられると、８台の各ロボットへの移動位置を順次演算し、演算した移動位置を順番に各第３ＣＰＵ４２にそれぞれ与える。接続可能な８台のロボットのうち、２台のロボットしか接続されていない場合、第２ＣＰＵ３９は、２台分のロボットの移動位置を演算し、８台分接続されるであろうタイミングと同じタイミングで、２台のロボットの移動位置を各第３ＣＰＵ４２にそれぞれ与える。
【０１１４】
言い換えるとコントローラ２４は、逆変換処理部２６を接続可能な最大接続数が設定されており、最大接続数の逆変換処理部２６が接続される場合、第２ＣＰＵ３９による演算結果を順番に予め定めるタイミングで各逆変換処理部２６にそれぞれ与える。また最大接続数より少ない逆変換処理部２６が接続される場合、最大接続数の逆変換処理部２６が接続される場合と同様のタイミングで、第２ＣＰＵ３９による演算結果を順番に各逆変換処理部２６にそれぞれ与える。
【０１１５】
これによってコントローラ２４に接続される逆変換処理部２６に数に拘わらず、第２ＣＰＵ３９から各第３ＣＰＵ４２に演算結果がそれぞれ与えられるタイミングを同じにすることができる。したがって各ロボットの動作計画が決定された状態で、逆変換処理部２６が削除された場合であっても、コントローラ２４から残余の逆変換処理部２６の第３ＣＰＵ４２に演算結果が与えられるタイミングが変化することがなく、残余の逆変換処理部２６の第３ＣＰＵ４２によって制御される各ロボットの動作特性が変化することを防ぐことができる。同様に、各ロボットの動作計画が決定された状態で、逆変換処理部２６が追加された場合であってもコントローラ２４から既存の逆変換処理部２６の第３ＣＰＵ４２に演算結果が与えられるタイミングが変化することがなく、既存の逆変換処理部２６の第３ＣＰＵ４２によって制御される各ロボットの動作特性が変化することを防ぐことができる。
【０１１６】
これによってロボットを増した場合であっても、既に接続されているロボットのアンプ４４に与えられる動作指令のタイミングが異なることがなく、既に接続されているロボットの速度および移動位置などが変化することが防がれる。同様にロボットを減らした場合であっても、残余のロボットのアンプ４４に与えられる動作指令のタイミングが異なることがなく、残余のロボットの速度および移動位置などが変化することが防がれる。
【０１１７】
たとえば複数のロボットのうち１つのロボットが故障した場合、故障したロボットに対応する逆変換処理部２６をコントローラ２４から切り離しても、残余の逆変換処理部２６の第３ＣＰＵ４２によって制御されるロボットの動作が変化することを防ぐことができる。これによって故障したロボットが行うべき作業を作業者が一時的に行うことで、生産性の低下を抑えることができる。また故障したロボットが修理された場合、修理されたロボットに対応する逆変換処理部２６をコントローラ２４に接続することで、複数のロボットによる作業を容易に再開させることができる。
【０１１８】
図１３は、各ＣＰＵ３２，３９，４２の通信タイミングを示すタイミングチャートである。第１ＣＰＵ３２は、予め定める動作計画送信時間Ｔ１１ごとに、各ロボットの動作計画を第２ＣＰＵ３９にまとめて与える。第２ＣＰＵ３９は、与えられた動作計画に基づいて、各ロボットの移動位置を順番に演算する。ロボットが８台ある場合、第１ロボットＲ１から第８ロボットＲ８の移動位置を順に演算する。第２ＣＰＵ３９は、ロボットの移動位置を演算すると、対応する第３ＣＰＵ４２にその演算した移動位置を演算する毎に与える。
【０１１９】
すなわち、第１ＣＰＵ３２から動作計画を受取って移動位置の演算を開始する移動位置演算開始時刻Ｔ１０から、予め定める移動位置送信時間Ｔ２１が経過する毎に、第２ＣＰＵ３９は、ロボットの移動位置を第３ＣＰＵ４２に送信する。この移動位置送信時間Ｔ２１は、１つのロボットの移動位置を演算するのに費やす演算時間に設定される。第２ＣＰＵ３９は、第ｎロボットの移動位置を、移動位置演算開始時刻Ｔ１０から、（ｎ×Ｔ２１）時間経過後に送信する。ここで、ｎは自然数であり、Ｔ２１は移動位置送信時間である。たとえば第８ロボットＲ８の移動位置は、移動位置演算開始時刻Ｔ１０から、（８×Ｔ２１）時間経過後に送信される。このように第２ＣＰＵ３９は、移動位置を周期的に送信する。
【０１２０】
第１および第８ロボットＲ１，Ｒ８が、コントローラ２４に接続されており、第２〜第７ロボットＲ２〜Ｒ７がコントローラ２４に接続されていない場合、第２ＣＰＵ３２は、第２〜第７ロボットＲ２〜Ｒ７の移動位置については演算および送信しないが、第１および第８ロボットＲ１，Ｒ８の移動位置を送信するタイミングについては、第２〜第７ロボットＲ２〜Ｒ７が接続されている場合と同様となる。したがって第２ＣＰＵ３２は、第８ロボットＲ８の移動位置を、移動位置演算開始時刻Ｔ１０から、（８×Ｔ２１）時間経過後に送信する。
【０１２１】
第２ＣＰＵ３９から移動位置が与えられた各第３ＣＰＵ４２は、その移動位置に基づいて、逆変換演算して、各ロボットアーム関節角度を求め、その角度にアームが角変位するようなアンプ動作量をアンプ動作指令として各アンプに与える。たとえば第３ＣＰＵ４２が逆変換演算を開始してからアンプ動作指令をアンプに与える時間をアンプ動作指令送信時間Ｔ３１とすると、前記移動位置送信時間Ｔ２１を接続可能なロボット数ｍで乗算した値（Ｔ２１×ｍ）は、アンプ動作指令送信時間Ｔ３１以下に設定される。本実施の形態では移動位置送信時間Ｔ２１は、アンプ動作指令送信時間３１と等しく設定される。
【０１２２】
このようにすることで、ロボットの移動位置送信時間Ｔ２１に、制御可能なロボットの台数８を乗算した時間（８×Ｔ２１）の間隔で、各ロボットに対応する第３ＣＰＵ４２に移動すべき移動位置をそれぞれ送信することができる。これに対して１つのＣＰＵで、移動位置演算と逆変換演算とを行う場合には、ロボットの移動位置演算に費やす時間Ｔ２０とロボットの逆変換演算に費やす時間Ｔ３０とをあわせた時間（Ｔ２０＋Ｔ３０）に、制御可能なロボットの台数８を乗算した時間（８×（Ｔ２０＋Ｔ３０））の間隔で、ロボットを移動させることになってしまう。
【０１２３】
このように本発明の実施形態では、逆変換に費やす時間Ｔ３０にかかわらずに、移動すべき移動位置を送信してロボットを協調動作させることができる。したがって逆変換演算が複雑になっても、微少な時間間隔でアンプの動作指令を与えることができ、ロボットを円滑に協調動作させることができる。
【０１２４】
第３ＣＰＵ４２は、アンプを動作させるタイミングをずらしてもよい。たとえば第１ロボットＲ１と第８ロボットＲ８とで協調動作を行う場合、第１ロボットの第３ＣＰＵ４２は、アンプ動作指令送信時間Ｔ３１で送信してから（８×Ｔ２１）時間経過するとアンプを動作させるようにし、第８ロボットの第３ＣＰＵ４２は、アンプ動作指令送信時間Ｔ３１で送信してから直ちにアンプを動作させるようにする。これによって、第１ロボットＲ１と第８ロボットＲ８とを同時に動作させることができる。これによって各ロボットの協調動作における動作のずれをさらに防ぐことができる。
【０１２５】
また、第２ＣＰＵ３９は、第１ＣＰＵ３２から動作計画を受取る前に、移動位置の演算を開始すると、移動位置を演算することができない場合がある。これを防止するために、本実施の形態では、第１ＣＰＵ３２が第２ＣＰＵ３９に動作計画を与える時刻Ｔ４１よりも、第２ＣＰＵ３９が移動位置の演算を開始する時刻Ｔ１０を予め定める遅延時間Ｔ４２遅らせる。これによって、第１ＣＰＵ３２と第２ＣＰＵ３９との間の制御周期に微小なずれがある場合であっても、確実に演算を行うことができる。
【０１２６】
本実施の形態では、各ＣＰＵの制御周期、通信遅れを解消する同期機能を有する。これによってさらに正確に各ロボットを協調動作させることができる。図１４は、各ＣＰＵ３２，３９，４２の同期処理機能を説明するための図である。各ＣＰＵ３２，３９，４２は、上述したように制御周期のずれを解消するための同期処理機能を有する。この場合、第２ＣＰＵ３９は、マスタ側装置として設定され、第１ＣＰＵ３２および第３ＣＰＵ４２は、スレ−ブ側装置として設定される。
【０１２７】
第２ＣＰＵ３９は、動作指令を送信した時刻ｔａから第３ＣＰＵ４２または第１ＣＰＵ３２が前記動作指令を受信して演算を開始する時刻ｔｂまでの通信遅れ時間（ｔｂ−ｔａ）が予め定める時間Ｔになるように、第２ＣＰＵ３９の最小割込み周期Ｔｓ（ｂ）を変化させ、第２ＣＰＵ３９と第３ＣＰＵ４２および第２ＣＰＵ３９と第１ＣＰＵ３２とを同期させる。以下、第２ＣＰＵ３９と第３ＣＰＵ４２との動作について具体的に、説明し、第２ＣＰＵ３９と第１ＣＰＵ３２との動作については省略する。
【０１２８】
第２ＣＰＵ３９から所定の制御周期Ｗで時刻ｔａ１，ｔａ２，ｔａ３，…毎に送信された指令信号は、第３ＣＰＵ４２における制御時刻ｔｂ０，ｔｂ１，ｔｂ２…から所定時間Δｔ１，Δｔ２，Δｔ３，…経過後の各時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…において時系列的に受信される。
【０１２９】
このような第２ＣＰＵ３９から第３ＣＰＵ４２への動作指令の送信では、各ＣＰＵ３９，４２に内蔵される水晶発振器の個体差による発振周波数の微小な誤差に起因する受信時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…の送信時刻ｔａ１，ｔａ２，ｔａ３…に対する第１の通信遅れ時間と、ケーブルを介することによる通信遅れ時間および第３ＣＰＵ４２が第２ＣＰＵ３９からの動作指令１，２，３，…を受信時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…で受信してから制御を開始する制御時刻ｔｂ１，ｔｂ２，ｔｂ３，…までのタイムラグによる第２の通信遅れ時間とが存在するため、前記第２ＣＰＵ３９による演算動作指令に対して、第３ＣＰＵ４２による演算動作の微小なずれが発生してしまう。
【０１３０】
上記第１の通信遅れ時間は、図１４において、第２ＣＰＵ３９が送信時刻ｔａ１で指令１を送信すると、送信された指令１は第３ＣＰＵ４２に受信時刻（ｔｂ０＋Δｔ１）で受信される。この受信時刻（ｔｂ０＋Δｔ１）は、第３ＣＰＵ４２が制御対象とする前回の制御時刻ｔｂ０から所定時間Δｔ１が経過した時刻であり、第３ＣＰＵ４２の最小割込み周期Ｔｓ（ｂ）を４カウント目のタイミング信号の発振時刻で受信している。
【０１３１】
次に、１制御周期が経過した後の時刻ｔａ２で、第２ＣＰＵ３９が指令２を送信し、この指令２は第３ＣＰＵ４２によって、次の受信時刻（ｔｂ１＋Δｔ２）で受信されるが、上記のように第３ＣＰＵ４２に内蔵される水晶発振器は、第２ＣＰＵ３９に内蔵される水晶発振器に対して、個体差による発振周波数の微小な誤差が存在するため、最小割込み周期Ｔｓ（ｂ）の１カウント目と２カウント目との間に到達した指令２は、前回の制御時刻ｔｂ１からみて２カウント目の時刻（ｔｂ１＋Δｔ２）で受信される。このように前回の制御時刻ｔｂ１からタイミング信号が３カウント未満で指令２を受信したときには、第３ＣＰＵ４２は自己の最小割込み周期Ｔｂ（ｂ）を短くし、受信時刻（ｔｂ１＋Δｔ２）が予め定めるカウント範囲、たとえば３カウント目以上でかつ５カウント目以下になるように制御する。
【０１３２】
また、第２ＣＰＵ３９が時刻ｔａ３で送信した指令３は、第３ＣＰＵ４２に前回の制御時刻ｔｂ２からみて５カウント目と６カウント目との間に到達しているため、６カウント目で受信され、第３ＣＰＵ４２は制御時刻ｔｂ３で制御する。したがって第３ＣＰＵ４２は、自己の最小割込み周期Ｔｓ（ｂ）を長くして、受信時刻（ｔｂ２＋Δｔ３）が前回の制御時刻ｔｂ２から３カウント目以上でかつ５カウント目以下になるように制御する。
【０１３３】
このようにすることで第３ＣＰＵ４２は、第２ＣＰＵ３９から各指令１，２，３,…が送信される時刻ｔａ１、ｔａ２，ｔａ３，…から、第３ＣＰＵ４２によって受信されて、この第３ＣＰＵ４２が自己のロボットＲａの制御を開始する時刻ｔｂ１,ｔｂ２,ｔｂ３,…までの時間（ｔｂ１−ｔａ０）,（ｔｂ２−ｔａ１）,（ｔｂ３−ｔａ２）,…が、第３ＣＰＵ４２の制御周期Ｗを超えてしまうことが防がれる。これによって第３ＣＰＵ４２は、第３ＣＰＵ４２の１制御周期Ｗ内に、第２ＣＰＵ３９から複数の動作指令を受信してしまい、あるいは１制御周期Ｗ内に動作指令が受信されないという不具合が発生を確実に防止し、第２ＣＰＵ３９と第３ＣＰＵ４２と高精度で同期させることができる。
【０１３４】
さらに、第２ＣＰＵ３９と第３ＣＰＵ４２とを完全に同期させるためには、ケーブルを介することによる第１の通信遅れと、第３ＣＰＵ４２が第２ＣＰＵ３９からの動作指令１，２，３，…を受信時刻（ｔｂ０＋Δｔ１），（ｔｂ１＋Δｔ２），（ｔｂ２＋Δｔ３），…で受信してからスレーブロボットＲｂの制御を開始する制御時刻ｔｂ１，ｔｂ２，ｔｂ３，…までのタイムラグによる第２の通信遅れを解消する必要がある。
【０１３５】
そこで、第１の通信遅れを解消するために、上記のように制御される第３ＣＰＵ４２の最小割込み周期Ｔｓ（ｂ）のｎ倍（たとえばｎ＝８）が前記制御周期Ｗに相当するとしたとき、第２ＣＰＵ３９の制御時刻ｔａ１１，ｔａ１２，ｔａ１３，…を第３ＣＰＵ４２の制御時刻ｔｂ１,ｔｂ２,ｔｂ３,…に一致させる必要がある。そのため、第２ＣＰＵ３９は、制御時刻ｔａ１１，ｔａ１２，ｔａ１３，…を、各送信時刻ｔａ１，ｔａ２，ｔａ３，…から予め定める時間Ｔだけ遅延させる。このように同期動作を行うことによって、第２および第３ＣＰＵ３９，４２の同期を図ることができる。同様にして第１ＣＰＵ３２および第２ＣＰＵ３９の同期を図ることができる。また、第２ＣＰＵ３９をマスタ側装置とし、第１ＣＰＵ３２および第３ＣＰＵ４２をスレーブ側装置とすることによって、第１ＣＰＵ３２および第３ＣＰＵ４２をマスタ側装置とするよりも、第１ＣＰＵ３２と第３ＣＰＵ４２とを無関係に協調制御することができ、より正確に同期を図ることができる。
【０１３６】
本実施の形態のロボット制御システム２３は、搬送ラインに沿って移動するワークを加工する複数のロボットを１つのコントローラ２４で制御する場合を含む。たとえば各ロボットが溶接ロボットなどの場合、１つのコントローラに接続されるロボットのうち、１つのロボットが故障することがある。このような場合、故障したロボットを搬送ラインから外し、残余のロボットによってワークに加工を行い、搬送ラインを通過した後のワークに対して、故障したロボットの変わりに作業者が手動で加工する場合がある。
【０１３７】
本実施の形態のロボット制御システム２３では、接続されるロボットの１つを取外しても、上述したように、第２ＣＰＵ３９から各第３ＣＰＵ４２へ指令が送信されるタイミングが同じに設定されるので、残余のロボットの動作特性を維持することができる。このような場合、ロボット制御システム２３は、電源投入時に接続されるロボットを確認する初期動作を行う。
【０１３８】
図１５は、コントローラ２４の電源投入時の第１ＣＰＵ３２の初期動作を示すフローチャートである。第１ＣＰＵ３２は、ロボット制御システム２３の電源が投入されると、ステップｆ１に進み、初期動作を開始する。ステップｆ１では、各ロボット２１，２２、各ロボットに対応する逆変換処理部２５，２６、コントローラ２４が起動する。コントローラ２４は、接続されているロボットを確認するために、逆変換処理部２５，２６を介してロボット２１，２２に通信要求信号を送信し、ステップｆ２に進む。通信要求信号を受けたロボット２１，２２は、返信信号をコントローラ２４に向けて送信する。
【０１３９】
ステップｆ２では、第１ＣＰＵ３２は、接続されるロボット２１，２２をカウントし、ステップｆ３に進む。ステップｆ３では、第１ＣＰＵ３２は、接続されるロボット２１，２２と、接続が解除されたロボットを判断し、それらのロボットの情報を記憶する。ステップｆ４では、接続されていないロボットの移動位置の演算およびそれに対応する逆変換処理部への送信を停止する通信設定を設定し、ステップｆ５に進む。ステップｆ５では、第１ＣＰＵ３２の初期動作を終了する。初期動作終了後、第１ＣＰＵ３２は、ステップｆ４で設定した通信設定にしたがって、接続されるロボットを制御する。これによって故障などによってロボットが減少した場合であっても、新たにプログラムを変更することなく、残余のロボットについて接続前と同様の動作をさせることができる。  以上のように本発明の実施の第１形態であるロボット設備２０に従えば、コントローラ２４が、複数のロボット２１，２２にそれぞれ設定されるロボットハンド１３０の移動経路上の移動位置をそれぞれ演算する。具体的には、２つの通過教示位置の間の補間点となる移動位置を求める。逆変換処理部２５，２６は、コントローラ２４から与えられた移動位置を表わす行列に基づいて、逆変換処理を行うとともに、各サーボモータ４５の動作量をそれぞれ演算する。演算結果に従って各サーボモータ４５を制御することによって、各ロボット２１，２２のロボットハンド１３０を動作プログラムに設定される移動経路に沿って個別にかつ同時に移動させることができる。
【０１４０】
逆変換処理部２５，２６は、ロボット毎に個別に必要な演算を行い、各ロボット２１，２２に必要な逆変換処理を分担する。これによって、第２の従来技術に比べて、コントローラ２４の負荷を軽減することができる。したがって同時動作させるロボット２１，２２の台数または各ロボット２１，２２の軸数が増えたとしても、コントローラ２４にかかる演算負荷が増大することを防いで、各ロボット２１，２２の移動位置を円滑にかつ短時間に求めることができ、ひいては各ロボット２１，２２を安定して同時に動作させることができる。また第２ＣＰＵのサンプリング周期を短くすることができ、教示位置間の補間位置を増やすことができ、さらにロボットの移動を滑らかに行わせることができる。
【０１４１】
コントローラ２４は、単位時間毎に移動すべき移動位置を逆変換処理部２５、２６にそれぞれ与える。これによって、第１の従来技術のようにロボット毎にコントローラがある場合に比べて、各ロボットの協調動作における動作のずれが累積することを防いで、協調動作を正確に行うことができる。また各ロボット２１，２２は、１つのコントローラ２４から与えられる指令に基づいて、それぞれ異なる動作を行うので、各ロボット同士の応答時期のずれを低減することができる。
【０１４２】
また、単一のコントローラ２４が、それぞれのロボット２１，２２のロボットハンド１３０が移動する移動経路上の各移動位置をそれぞれ演算する。したがって作業者は、１つのコントローラ２４に各ロボットの動作関連情報を教示するだけでよい。これによって第１の従来技術のように、複数の制御装置に各ロボットの動作を個別にそれぞれ教示する必要がなく、教示作業を簡単化することができ、利便性を向上することができる。
【０１４３】
また単一のコントローラ２４は、全てのロボット２１，２２に関する制御プログラムが入力される。したがってコントローラ２４は、他の装置と通信することなく、各ロボットハンド１３０の移動位置を演算することができる。したがって、複数のロボットを協調制御する場合、コントローラ２４は、自身が演算したマスタロボットＲａの各移動位置に基づいて、スレーブロボットＲｂの各移動位置を演算することができる。したがって通信に起因するロボット同士の協調動作のずれを防ぐことができる。
【０１４４】
またインターフェース３４〜３５を単一のコントローラ２４に設けるだけでよく、ロボット毎にインターフェース３４〜３６を設ける必要がない。これによってロボット制御システム２３を小形化することができるとともに安価に形成することができる。
【０１４５】
さらに本実施の形態では、ロボット２１，２２の台数にかかわらず、単一のコントローラ２４を用いるだけでよいので、ロボット制御システム２３の設置面積を低減して、省スペース化を実現することができる。このようにロボット制御システム２３の設置スペースを小さくすることで、ひいてはロボット設備２０における設置スペースを削減することができ、ロボット間の距離を近接させることができる。これによって複数のロボット２１，２２によって製造ラインを形成したとき、製造ラインを短くすることができ、施工時間を短縮することができる。また、接続されるロボットが増減した場合であっても、既に接続されるロボットの動作特性を維持することができるので、製造ラインの変更などに対して柔軟に対応することができる。さらに各ＣＰＵ３２，３９，４２の制御周期がそれぞれ同期する構成であるので、各ロボットの同期制御および協調制御を精度よく行わせることができる。
【０１４６】
また本実施の形態では、第２ＣＰＵ３９は、ロボット動作計画に含まれる協調動作情報に基づいて注目するロボットがスレーブロボットＲｂであると判断すると、注目するスレーブロボットＲｂが動作を従うマスタロボットＲａを判断する。そしてそのマスタロボットＲａの移動位置を第２メモリ４０から抽出するとともに、ロボット動作計画からスレーブロボットＲｂの連動動作関係を抽出する。そして第２ＣＰＵ３９は、マスタロボットＲａの移動位置と、マスタロボットＲａとスレーブロボットＲｂとの連動動作関係とに基づいて、スレーブロボットＲｂのロボットハンド１３０の移動位置を演算する。
【０１４７】
これによって作業者がスレーブロボット１３０の各移動位置を詳しく入力する必要がなく、作業者の手間を省略して協調動作を行うことができる。
【０１４８】
また本実施の形態に従えば、コントローラ２４は、それぞれ異なるロボット２１，２２のロボットハンド１３０の移動位置を、通信ケーブル２７を介して対応する逆変換処理部２５，２６にそれぞれ与える。各逆変換処理部２５，２６は、通信ケーブル２７を介して与えられたロボットハンド１３０の移動位置に基づいて、対応するロボットの複数のサーボモータ４５を制御する。
【０１４９】
このように通信ケーブルによって接続されることで、コントローラ２４と逆変換処理部２５，２６とを互いに離反させることができる。これによってコントローラ２４は、逆変換処理部２５，２６で発生する電磁ノイズの影響を小さくすることができる。また複数のロボット２１，２２が互いに離れた位置に配置される場合であっても、ロボット２１，２２に近接した位置に逆変換処理部２５，２６を配置して、ロボット２１，２２から離反した適当な位置にコントローラ２４を配置することができる。これによって使い勝手のよい位置にコントローラ２４を配置することができる。
【０１５０】
なお、逆変換処理部２５，２６は、ロボット２１，２２に動力を与える動力線と、ロボット２１，２２に信号を与え、ロボットから信号を取得する信号線とを含むケーブル２８によってロボット２１，２２に接続される。これに対してコントローラ２４と逆変換処理部２５，２６とを接続するケーブル２７は、動力を伝達する必要がない信号線であることが多い。
【０１５１】
この場合、逆変換処理部２５、２６とロボット２１，２２とを接続するケーブル２８が太く、これに対してコントローラ２４と逆変換処理部２５，２６とを接続するケーブル２７が細くなる。逆変換処理部２５，２６とロボット２１，２２とを近接して配置することによって、逆変換処理部２５，２６とロボット２１，２２を接続する太いケーブル２８を短くすることができ、作業の邪魔になることを防ぐことができる。
【０１５２】
またコントローラ２４と逆変換処理部２５、２６を接続するケーブルは、イーサネット（登録商標）に従って標準化されたＬＡＮケーブルが用いられる。これによってデータ通信を遠距離でも高速に行うことができ、通信ケーブルの長さの違いによるロボットの信号送信ずれの影響を小さくすることができ、協調制御を正確に行うことができる。さらにＬＡＮケーブルを用いることによって、コントローラ２４と逆変換処理部２５，２６との間の距離が離れている場合であっても、十分な信号伝達速度を保つことができる。
【０１５３】
また第２ＣＰＵ３９は、各ロボットのロボットハンドが移動する移動経路上の各移動位置に基づいて、ロボット動作時におけるロボット同士の干渉の有無を判断してもよい。本実施の形態では、単一のコントローラ２４に各ロボットのロボット関連情報がそれぞれ与えられるとともに、各ロボットの移動位置を演算するので、他の装置と通信することなく、ロボット同士が干渉するかどうかを容易に判断することができる。これによって実際にロボットを動作させずとも、ロボットの干渉の有無を判断することができ、利便性を向上することができる。
【０１５４】
図１６は、協調動作部位を教示する手順を説明するための各ロボットＲａ，Ｒｂのアーム先端部分９４ａ，９４ｂの移動経路を示す斜視図である。同図において実線はマスタロボットＲａのアーム先端部分９４ａの移動経路を示し、破線はスレーブロボットＲｂのアーム先端部分９４ｂの移動経路を示す。図１７は、図１６に示される各教示位置に対応してマスタロボットＲａおよびスレーブロボットＲｂを協調動作させるための協調動作プログラムの一例を示す図である。
【０１５５】
各協調動作のためのプログラムの作成および位置の教示を行う場合、このプログラムは、一方のロボットＲａによって実行されるプログラム「.PROGRAM  master(  )」と、他方のロボットＲｂによって実行されるプログラム「.PROGRAM  slave(  )」とが作成される。
【０１５６】
一方のロボットＲａ側に設定されるプログラム「.PROGRAM.  master(  )」は、１〜２０のステップを有し、図１６の実線で示される動作目標位置Ｐｍ０から各目標位置Ｐｍ１〜Ｐｍ９を経て動作終了位置Ｐａ１０に至る動作を、一方のロボットＲａに実行させるために、次のように構成される。
【０１５７】
まず、ステップ１は、一方のロボットＲａの各軸を動作開始位置Ｐｍ０へ移動させるための動作命令であり、「JMOVE #1c1#0」と入力される。「JMOVE」はロボットを指定した目標位置への各軸の補間動作における移動させるための命令である。「#1c1#0」は動作目標位置Ｐｍ０を指示する変数名である。
【０１５８】
ステップ２は、動作開始位置Ｐｍ０から次の目標位置Ｐｍ１へ一方のロボットＲａを移動させるための命令であり、「LMOVE #1c1#1」と入力される。「LMOVE」は直線動作を指示する予約語であり、「#1c1#1」は目標位置Ｐｍ１を指示する変数名である。
【０１５９】
ステップ３は、前記ステップ２で指定した位置Ｐｍ１でハンド３０を閉じさせるための命令であり、「CLOSE」と記載される。以上がマスタロボットＲａの単独動作のプログラムである。
【０１６０】
次に、ステップ４は、協調動作を宣言する命令であり、「MASTER」と記載される。この命令によって、一方のロボットＲａがマスタロボットに設定され、他方のロボットＲｂ側がスレーブロボットに設定されて、協調動作が開始する。本実施の形態では、単一のコントローラに、マスタロボットとスレーブロボットのプログラムがそれぞれ入力されるので、第２ＣＰＵ３９は、容易にスレーブロボットの移動位置を演算することができる。
【０１６１】
ステップ５は、マスタロボットＲａに対してハンド３０を閉じるための命令であり、「SIGNAL  2」と記載される。
【０１６２】
ステップ６は、スレーブロボットＲｂのハンド３０を閉じるための命令であり、「SIGNAL  2:2」と記載される。
【０１６３】
ステップ７は、各ロボットＲａ，Ｒｂを協調動作させながら次の目標位置Ｐｍ２，Ｐｓ２へ移動させるための命令であり、「MLLMOVE #1c2#2,#1c2#2」と記載される。
【０１６４】
ステップ８は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ３，Ｐｓ３へ移動させるための命令であり、「MLLMOVE #1c1#3,#1c2#3」と記載される。
【０１６５】
ステップ９は、マスタロボットＲａを次の指令を満足するまで待機させるための命令であり、「SWAIT 1001」と記載される。
【０１６６】
ステップ１０は、スレーブロボットＲｂを入出力回路４８ｂに次の指令を入力するまで待機させるための命令であり、「SWAIT  2:1001」と記載される。
【０１６７】
ステップ１１は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ４，Ｐｓ４へ移動させるための命令であり、「MLC1MOVE  #1c1#4,#1c2#4」と記載される。
【０１６８】
ステップ１２は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ５，Ｐｓ５へ移動させるための命令であり、「MLC1MOVE  #1c1#5,#1c2#5」と記載される。
【０１６９】
ステップ１３は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ６，Ｐｓ６へ移動させるための命令であり、「MLC2MOVE  #1c1#6,#1c2#6」と記載される。
【０１７０】
ステップ１４は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ７，Ｐｓ７へ移動させるための命令であり、「MLLMOVE #1c1#7,#1c2#7」と記載される。
【０１７１】
ステップ１５は、各ロボットＲａ，Ｒｂを次の目標位置Ｐｍ８，Ｐｓ８へ移動させるための命令であり、「MLLMOVE#1c1#8,#1c2#8」と記載される。
【０１７２】
ステップ１６は、マスタロボットＲａの協調動作を解除するための命令であり、「ALONE」と記載される。
【０１７３】
ステップ１７は、一方のロボットＲａのハンド３０を開くための命令であり、「OPEN」と記載される。
【０１７４】
ステップ１８は、一方のロボットＲａに対して、タイマが変数名「1002」で指示された状態を満足するまで待機させるための命令であり、「SWAIT 1002」と記載される。
【０１７５】
ステップ１９は、一方のロボットＲａを変数名「#1c1#9」で指示させるも目標位置Ｐｍ９へ直線移動させるための命令であり、「LMOVE #1c1#9」と記載される。
【０１７６】
ステップ２０は、一方のロボットＲａを動作終了位置Ｐｍ１０へ移動させるための命令であり、「HOME」と記載される。
【０１７７】
次に、他方のロボットＲｂに対して設定されるプログラムについて説明する。この他方のロボットＲｂ用プログラム「.PROGRAM slave(  )」は、１〜１０のステップを有し、図１６の破線で示される動作目標位置Ｐｓ０から各位置Ｐｓ１〜Ｐｓ９を経て動作終了位置Ｐｓ１０に至る動作を、スレーブロボットＲｂに実行させるために、次のように構成される。
【０１７８】
まず、ステップ１は、他方のロボットＲａの各軸を動作目標位置Ｐｓ０へ移動させるための動作命令であり、「JMOVE #1c1#0」と入力される。「JMOVE」はロボットを指定した位置への補間動作における移動させるための命令である。「#1c1#0」は動作目標位置Ｐｓ０の座標である。
【０１７９】
ステップ２は、動作開始位置Ｐｓ０から次の位置Ｐｓ１へ他方のロボットＲｂを移動させるための命令であり、「LMOVE #1c1#1」と記載される。「LMOVE」は直線動作命令であり、「#1c1#1」は次の位置Ｐｓ１の座標である。
【０１８０】
ステップ３は、前記ステップ２で指定した位置Ｐｓ１でハンド３０を閉じさせるための命令であり、「CLOSE」と記載される。以上がスレーブロボットの単独動作のプログラムである。
【０１８１】
次に、ステップ４は、他方のロボットＲｂを変数名「1002」で指示される条件を満足するまで待機させるための命令であり、「SWAIT 1002」と記載される。
【０１８２】
ステップ５は、自己がスレーブロボットとして動作することを宣言するための命令であり、「SLAVE」と記載される。このプログラムの実行時においては、スレーブロボットＲｂは、マスタロボットＲａ側からの各ステップ５〜１５の命令に応答して協調動作を行う。この協調動作時は、前述したように、他方のロボットＲｂはネットワーク通信接続手段２１によって一方のロボットＲａに接続されるので、制御周期のずれを修正しながら相互に正確に同期して協調動作させることができる。
【０１８３】
ステップ６は、協調動作を解除して、単独動作に戻ったことを宣言するための命令であり、「ALONE」と記載される。
【０１８４】
ステップ７は、他方のロボットＲｂのハンド３０を開くための命令であり、「OPEN」と記載される。
【０１８５】
ステップ８は、マスタロボットＲａおよびスレーブロボットＲｂの双方に対して指令を個別に設定するための命令であり、「SIGNAL  2」と記載される。
【０１８６】
ステップ９は、他方のロボットＲｂを変数名「#1c2#9」で指示される目標位置Ｐｓ９へ移動させるための命令であり、「LMOVE #1c2#9」と記載される。
【０１８７】
ステップ１０は、他方のロボットＲｂを動作終了位置Ｐｓ１０へ移動させるための命令であり、「HOME」と記載される。
【０１８８】
このようにして各ロボットが実行する一連の作業のうちで、協調動作する行程については、各ロボットをマスタロボットＲａとスレーブロボットＲｂとに設定して、前記通信接続手段を介して相互に通信し、高精度で同期させて協調動作させることができる。
【０１８９】
図１８は、本発明の実施の第２形態であるロボット設備２０の構成を示す系統図である。第２の実施の形態であるロボット設備２２０は、第１形態のロボット設備２０に対して、制御すべきロボットが異なるだけであり、ロボット制御システム２２３については、第１形態のロボット設備２０と同様の構成を示す。したがって同様の構成については説明を省略し、同様の参照符号を付する。
【０１９０】
ロボット設備２２０の備える複数のロボット２２１，２２２は、直列に設けられる複数のアーム体ｃ１〜ｃ６と、隣接する２つのアーム体を同軸回転自在に連結する同軸関節部ｄ１，ｄ３，ｄ５と、一方のアーム体を他方アーム体に対して円錐回転自在に連結する傾斜関節部ｄ２，ｄ４，ｄ６とを含んでそれぞれ構成される。
【０１９１】
このような同軸関節および傾斜関節を含む多軸ロボット２２１，２２２は、複数のアーム体ｃ１〜ｃ６をサーボモータ４５によって回転させることによって、蛇のような動きをさせて、遊端部の姿勢および位置を変更することができる。したがって他の装置などが複雑に入り組んで作業経路が複雑な場合、また天井と床との間隔が小さく低姿勢での作業が必要な場合であっても、好適に遊端部の移動および姿勢を変更させることができる。
複数のアーム体ｃ１〜ｃ６は、直列方向に並んで配置される。そのうち一端部に第１アーム体ｃ１が配置され、第２〜第６アーム体ｃ２〜ｃ６が順に連結される。第６のアーム体ｃ６には、手先装置が連結される。第１〜第６のアーム体ｃ１〜ｃ６は、図１５に示すように、それぞれの軸線が同軸に配置されて位置直線状に延びる状態に変形可能である。
【０１９２】
多軸ロボット２２１，２２２は、遊端部に各種手先装置、いわゆるエンドエフェクタを連結し、手先装置を目標位置および姿勢に配置することによって、狭隘なさ行空間におけるハンドリング、シーリング、塗装またはアーク溶接などを行うことができる。
【０１９３】
第１のアーム体ｃ１は、その位置端部が同軸関節部ｄ１によって、予め定める基台４２１に連結される。第１アーム体ｃ１は、どの軸線と同軸の回転軸線まわりに基台２１に対して回転自在に連結される。また第１アーム体ｃ１のうち、基台２１と反対側の端部には、傾斜間接部ｄ２によって第２アームｃ２が連結される。この傾斜関節部ｄ２は、第１アーム体ｃ１および第２アーム体ｃ２の軸線に対して、４５度の角度をなして傾斜する傾斜回転軸線まわりに回転自在に連結される。
【０１９４】
同様に第２アームｃ２と第３アームｃ３とは、同軸関節部ｄ３によって連結される。第３アームｃ３と第４アームｃ４とは、傾斜関節部ｄ４によって連結される。第４アームｃ４と第５アームｃ５とは、同軸関節部ｄ５によって連結される。第５アームｃ５と第６アームｃ６とは、傾斜関節部ｄ６によって連結される。また第６アームｃ６と手先装置とは、同軸関節部によって連結されてもよい。
【０１９５】
各アーム体ｃ１〜ｃ６は、各アームを回転するサーボモータ４５をそれぞれ内蔵する。サーボモータ４５は、回転伝達機構を介して回転力を各アームに伝達する。回転伝達機構は、たとえば波動歯車機構、たとえばハーモニックドライブ（登録商標）である。回転伝達機構は、入力側部材と出力側部材とを備え、それらが噛合して相対的に回転する。一方のアーム体は、入力側部材が連結され、他方のアームは、出力側部材が連結される。これによってサーボモータ４５が入力側部材に動力を伝達することによって、出力側部材とともに他方のアーム体が回転する。
【０１９６】
図１９〜図２１は、多軸ロボット２２１，２２２の変形状態を示す斜視図である。図１９（１）と図１９（２）とは、異なる向きから見て示す。
【０１９７】
このような、多軸ロボットを用いた場合であっても、第１実施形態で示すロボット制御システム２３と同様のシステム２２３を用いることによって、同様の効果を得ることができる。すなわち多軸ロボットを複数同時に容易に動作させることができる。またこのような多関節ロボットの場合は、逆変換演算の解を数学的に一意に求めることが困難な場合が多い。このような場合、数値的な繰り返し演算を行って最適な逆演算解を求める演算法、たとえば収束演算法によって求められる。収束演算法によって求める場合には、収束回数を増やせば増やすほど、逆変換処理を行うために高い演算処理能力が必要であるが、本発明の実施形態のように、逆変換処理用の第３ＣＰＵ４２を別途設けることによって、制御周期を短くしてロボットを円滑に動作させることができる。またたとえばロボットの関節が、７軸以上である場合など、ロボットハンドを１つの位置および姿勢に移動させるための各アームの配置状態が複数考えられる場合、いわゆる冗長軸を有する場合にも、逆変換演算の解を求めるのに高い演算処理能力が必要になる。この場合にも、逆変換処理用の第３ＣＰＵ４２を別途設けることによって、制御周期を短くしてロボットを円滑に動作させることができる。
【０１９８】
図２２は、本発明の実施の第３形態であるロボット設備４２０の構成を示す形と渦である。第３の実施の形態であるロボット設備４２０は、第１形態のロボット設備２０に対して、制御すべきロボットが異なるだけであり、ロボット制御システム４２３については、第１形態のロボット設備２０と同様の構成を示す。したがって同様の構成については説明を省略し、同様の参照符号を付する。
【０１９９】
ロボット設備２２０の備える複数のロボット４２１，４２２は、スリーロール型手首４３０が設けられる多関節ロボットであり、たとえば塗装ロボットなどに用いられる。スリーロール型手首４３０は、アーム４３４に連結されて予め定める第１軸線まわりに角変位する第１角変位部４３１と、第１角変位部４３１に連結されて第１軸線に交差する第２軸線まわりに角変位する第２角変位部４３２と、第２角変位部４３２に連結されて第１角変位軸線に平行に延びる第３軸線周りに角変位する第３角変位部４３３とが設けられる。塗装ロボットに用いられる場合、第３角変位部４３３には、スプレーガンが連結される。
【０２００】
このようなスリーロール型手首を有するロボットも、逆変換演算の解を求めるには、数値的な繰り返し演算によって求める必要があり、逆変換処理を行うために高い演算処理能力が必要である。本発明のように逆変換処理用の第３ＣＰＵ４２を別途も受けることによって、ロボットを円滑に動作させることができる。
【０２０１】
図２３は、本発明の実施の第４形態であるロボット設備３２０の構成を示す系統図である。第４の実施の形態であるロボット設備３２０は、第１形態のロボット設備に対して逆変換処理部２５が各コントローラ２４に含まれる。すなわちバスラインなどによってロボット動作演算部３１と各逆変換処理部２５，２６とが接続される。このように本発明は、コントローラ内に逆変換処理用の第３ＣＰＵ４２が設けられる場合も含む。なお、第４形態のロボット設備３２０は、ロボットの種類について限定されず、図１８，図２２に示す多軸ロボットを複数同時に制御してもよい。このような第４形態であるロボット設備３２０についても、第１形態と同様の効果を得ることができる。
【０２０２】
以上のような、本発明の各実施形態は、発明の例示に過ぎず本発明の範囲内で構成を変更することができる。たとえば制御するロボットとして垂直多関節ロボット図１８に示す傾斜関節軸を有する多軸ロボット、図２２に示すスリーロール手首を有する多関節ロボットを例示したが、逆変換処理が必要なロボットであればよい。たとえば直角座標型、曲座標型の多関節ロボットを用いてもよい。また本実施の形態では、２つのロボットを同時に制御する場合について説明したが、２つ以上たとえば８つのロボットを同時に制御してもよい。また、種類の異なるロボットを同時に制御してもよい。
【０２０３】
また手先装置として、ロボットハンド１３０を動作させるとしたが、ロボットハンド１３０以外、たとえば溶接装置、塗装装置などの他の手先装置をロボットの遊端部に設け、その手先装置を動作させるとともに移動させてもよい。たとえばワークに溶接を行う場合、ワークを把持してワークの位置および姿勢を変更させるワーク把持ロボットと、溶接トーチを保持して溶接トーチの位置および姿勢を変更させるツール把持ロボットとを双方同時に動作させながら作業を行う場合がある。このような協調動作を複数のロボットに行わせる場合であっても、本発明のロボット制御システム２３を用いることができる。本発明のロボット制御システム２３を用いることによって、ロボットを円滑に協調動作させることができ、複雑な形状のワークに対して溶接作業を行うことができる。
【０２０４】
またロボットを動作させるアクチュエータとしてサーボモータ４５を用いたが、他のアクチュエータを用いてもよい。また第１ＣＰＵ３２と第２ＣＰＵ３９とを１つのＣＰＵによって実現してもよい。
【図面の簡単な説明】
【０２０５】
【図１】本発明の実施の第１形態であるロボット設備２０の構成を示す系統図である。
【図２】ロボット設備２０の構成を示すブロック図である。
【図３】第１ＣＰＵ３２によるロボット関連情報の記憶動作の手順を示すフローチャートである。
【図４】第１ＣＰＵ３２によるロボット動作計画生成動作の手順を示すフローチャートである。
【図５】表１における動作プログラムに従って動作するロボットにおける、ロボットハンド１３０が移動する移動経路を示す図である。
【図６】表１における動作プログラムに従って動作するロボットにおける、ロボットハンド１３０の移動速度とハンドの開閉との時間変化を示すグラフである。
【図７】第２ＣＰＵ３９によるロボットハンド１３０の移動位置演算動作の手順を示すフローチャートである。
【図８】表１における動作プログラムに従ってロボットハンド１３０が移動した場合に、隣接する２つの動作位置Ｑ１，Ｑ２と、補間演算される移動位置Ｑｃとを説明するための図である。
【図９】移動位置Ｑｃを説明するために示すロボットハンド１３０の移動速度の時間変化を示すグラフである。
【図１０】ステップｃ３の補間処理の手順を示すフローチャートである。
【図１１】マスタロボットＲａとスレーブロボットＲｂとの協調動作を説明する図である。
【図１２】第３ＣＰＵ４２によるモータ制御動作の手順を示すフローチャートである。
【図１３】各ＣＰＵ３２，３９，４２の通信タイミングを示すタイミングチャートである。
【図１４】各ＣＰＵ３２，３９，４２の同期処理機能を説明するための図である。
【図１５】コントローラ２４の電源投入時の第１ＣＰＵ３２の初期動作を示すフローチャートである。
【図１６】協調動作部位を教示する手順を説明するための各ロボットＲａ，Ｒｂのアーム先端部分９４ａ，９４ｂの移動経路を示す斜視図である。
【図１７】図１６に示される各教示点に対応してマスタロボットＲａおよびスレーブロボットＲｂを協調動作させるための協調動作プログラムの一例を示す図である。
【図１８】本発明の実施の第２形態であるロボット設備２０の構成を示す系統図である。
【図１９】多軸ロボット２２１，２２２の変形状態を示す斜視図である。
【図２０】多軸ロボット２２１，２２２の変形状態を示す斜視図である。
【０２０６】
【図２１】多軸ロボット２２１，２２２の変形状態を示す斜視図である。
【図２２】本発明の実施の第３形態であるロボット設備４２０の構成を示す形と渦である。
【図２３】本発明の実施の第４形態であるロボット設備３２０の構成を示す系統図である。
【図２４】第１の従来技術のロボット設備１を示すブロック図である。
【図２５】第２の従来技術のロボット設備１０を示すブロック図である。
【符号の説明】
【０２０７】
２０，２２０，３２０，４２０  ロボット設備
２１，２２  多軸ロボット
２３  ロボット制御システム
２４  コントローラ
２５，２６  逆変換処理部
２７  通信ケーブル
３２  第１ＣＰＵ
３９  第２ＣＰＵ
４３  第３ＣＰＵ
４４  アンプ
４５  モータ
１３０  ロボットハンド
【図１】
2006187826.tif 000004
【図２】
2006187826.tif 000005
【図３】
2006187826.tif 000006
【図４】
2006187826.tif 000007
【図５】
2006187826.tif 000008
【図６】
2006187826.tif 000009
【図７】
2006187826.tif 000010
【図８】
2006187826.tif 000011
【図９】
2006187826.tif 000012
【図１０】
2006187826.tif 000013
【図１１】
2006187826.tif 000014
【図１２】
2006187826.tif 000015
【図１３】
2006187826.tif 000016
【図１４】
2006187826.tif 000017
【図１５】
2006187826.tif 000018
【図１６】
2006187826.tif 000019
【図１７】
2006187826.tif 000020
【図１８】
2006187826.tif 000021
【図１９】
2006187826.tif 000022
【図２０】
2006187826.tif 000023
【図２１】
2006187826.tif 000024
【図２２】
2006187826.tif 000025
【図２３】
2006187826.tif 000026
【図２４】
2006187826.tif 000027
【図２５】
2006187826.tif 000028