"複数台のロボットを1台の制御装置によって制御するロボット装置の制御システムであって、独立して動作するロボットを複数台組み合わせて構成され、前記各ロボット間で作業を分担あるいは協働して一連の作業を行うロボット装置と、前記ロボットの関節部を駆動する各駆動軸の総数以上のサーボドライバを有し、前記ロボットの関節リンク機構を構成する一つの関節が一つの仮想上のモータで駆動される概念上の関節軸の組み合わせから構成される仮想ロボットを複数種類定義した運動制御処理系を有するロボット制御装置と、を備え、前記ロボット制御装置は、前記ロボットを任意に組み合わせて構成され、前記仮想ロボットに属するロボット群の中から任意のロボットを選択するロボット選択命令と、目標位置の指令を仮想ロボットの有する各関節軸に与えるロボット動作命令とを解析し、選択されたロボットの属する仮想ロボットの各関節軸に目標位置を与えるプログラム解析部と、前記ロボット選択命令に基づいて選択されたロボットについて、前記仮想ロボットの関節軸にそれぞれ対応している各駆動軸のサーボモータに割り当てられた各サーボドライバに、目標位置を指令するプログラム指令部と、を具備したことを特徴とするロボット装置の制御システム。前記ロボット制御装置は、制御可能な駆動軸の数が前記ロボットの駆動軸総数よりも少ない数に制限されているロボット制御装置であることを特徴とする請求項1に記載のロボット装置の制御システム。前記ロボット制御装置は、ロボットプログラムや通信コマンドの命令語処理系の制御可能な駆動軸の軸数が最大5軸であることを特徴とする請求項2に記載のロボット装置の制御システム。前記仮想ロボットは、前記ロボット制御装置の運動制御処理系上、関節リンク機構が同一である場合には、具体的なモータとの関係で駆動軸は異なっていても同一のロボットと扱うようにしたことを特徴とする請求項1に記載のロボット装置の制御システム。前記仮想ロボット1台の関節軸総数は、前記ロボットプログラムや通信コマンドの命令語処理系の制御可能な軸数の制限を受けないことを特徴とする請求項4に記載のロボット装置の制御システム。同一の仮想ロボットに属するロボット群の間では、同一の関節軸が共有されていることを特徴とする請求項1に記載のロボット装置の制御システム。しかしながら、ロボットを制御するコントローラでは、ロボット言語やロボット制御コマンドの仕様上、ロボットの制御軸の総数は、4軸あるいは5軸以下というような制限を受けるのが普通である。このため、ロボット言語やロボット制御コマンドの仕様制限を越える制御軸数をもつロボット装置を制御する場合には、コントローラシステムにおけるコマンド処理系を再設計し、コントローラシステムの仕様を大幅に拡張しなければならない。このようなコントローラシステムの使用の拡張には、膨大な開発労力を必要するという問題がある。そこで、本発明の目的は、前記従来技術の有する問題点を解消し、既存のロボットコントローラシステムの基本構造を大幅に変更することなく、制御軸の仕様制限を超えた軸数をもつロボット装置を1台のロボットコントローラで制御するシステムを容易に構築できるロボット装置の制御システムを提供することにある。前記の目的を達成するために、本発明は、複数台のロボットを1台の制御装置によって制御するロボット装置の制御システムであって、独立して動作するロボットを複数台組み合わせて構成され、前記各ロボット間で作業を分担あるいは協働して一連の作業を行うロボット装置と、前記ロボットの関節部を駆動する各駆動軸の総数以上のサーボドライバを有し、前記ロボットの関節リンク機構を構成する一つの関節が一つの仮想上のモータで駆動される概念上の関節軸の組み合わせから構成される仮想ロボットを複数種類定義した運動制御処理系を有するロボット制御装置と、を備え、前記ロボット制御装置は、前記ロボットを任意に組み合わせて構成され、前記仮想ロボットに属するロボット群の中から任意のロボットを選択するロボット選択命令と、目標位置の指令を仮想ロボットの有する各関節軸に与えるロボット動作命令とを解析し、選択されたロボットの属する仮想ロボットの各関節軸に目標位置を与えるプログラム解析部と、前記ロボット選択命令に基づいて選択されたロボットについて、前記仮想ロボットの関節軸にそれぞれ対応している各駆動軸のサーボモータに割り当てられた各サーボドライバに、目標位置を指令するプログラム指令部と、を具備したことを特徴とする。以下、本発明によるロボット装置の制御システムの一実施形態について、添付の図面を参照しながら説明する。図1は、本発明の制御システムが適用されるロボット装置の全体を示す斜視図である。この実施形態によるロボット装置は、塗装対象物であるワークWに塗装を施す1台の塗装ロボット100と、ワークWを保持してこのワークWを移動させる2台の被塗装物保持ロボット10a、10bの合計3台の独立して動作可能なロボットから構成されている。図1において、参照番号111は、略矩形状の底部フレームを示す。この底部フレーム111の左右両側にはそれぞれ脚柱112が立設されており、これら脚柱112には、支持梁113が架け渡されている。2台の被塗装物保持ロボット10a、10bは、架台114を介して底部フレーム111より高い位置に設置されている。他方、支持梁113の上には、塗装ロボット100が設置されている。そこで、被塗装物保持ロボット10a、10bについて説明する。なお、図1において、左右2台の被塗装物保持ロボット10a、10bは、互いに同一の構造を有しているロボットであるので、同一の構成要素には同一の参照番号を付して説明する。架台114の上には、ロボットのベース部20が設置されており、このベース部20には、第1アーム11と第2アーム12と第3アーム13とからなる多関節アームが支持されている。このうち、第1アーム11は、水平な第1軸J’1中心に旋回可能であり、第2アーム12は、第1軸J’1に平行な第2軸J’2を中心に旋回可能である。この実施形態では、第2アーム12はL字型に屈曲しているアームからなっている。第3アーム13は、第1軸J’1、第2軸J’2に垂直な第3軸J’3を中心に旋回自在である。第3アーム13の両端部には、それぞれ塗装対象物であるワークWを着脱可能に経字する第1保持部14と第2保持部15が設けられている。図1において、ベース部20には、第1アーム11を旋回させる第1サーボモータ21、第2アーム12を旋回させる第2サーボモータ22、第3アーム13を旋回させる第3サーボモータ23、第1保持部14および第2保持部15を回転させる第4サーボモータである。次に、塗装ロボット100について説明する。この塗装ロボット100は、支持梁113の上に設置されたサドル30を含む。このサドル30には、長手方向に移動する移動台32が設置されており、この移動台32からは鉛直方向に第1アーム115が垂下されている。この第1アーム115には、水平な姿勢で第2アーム116が上下方向に移動可能に設けられている。この第2アーム116の両端部には、塗料をワークWに向けて噴出する一対のスプレーガン120が取り付けられている。このような塗装ロボット100では、第1軸J’1が移動台32を走行させ、第1アーム115を水平方向に直線移動させる軸であり、第1サーボモータ117によって駆動される。第2軸J’2は、第2アーム116を上下方向に直線以上させる軸であり、第2サーボモータ図示せずによって駆動される。本実施の形態では、以上のような2台の被塗装物保持ロボット10a、10bと、塗装ロボット100を組み合わせ、運動制御上の観点から仮想ロボットを定義する。まず、図2は、仮想ロボットAとして定義された仮想ロボットを示す図である、この仮想ロボットAは、図1に示した塗装ロボット100と、被塗装物保持ロボット10a、10bのうちの一方のロボットとを組み合わせて運動制御系上一台のロボットとして扱う仮想ロボットである。この仮想ロボットAは、第1軸J1乃至第5軸J5からなる5軸の関節軸を備えている。ここで関節軸とは仮想ロボットを構成するリンク機構を駆動する軸であり、運動制御処理において、便宜上想定した概念的な可動軸である。これら第1軸J1乃至第5軸J5は、実際の被塗装物保持ロボット10a、10bや、塗装ロボット100の各関節部を駆動する実際の駆動軸とは必ずしも1対1で関係づけする必要はない。この実施形態では、左側の被塗装物保持ロボット10aと塗装ロボット100とを組み合わせたロボットと、右側の被塗装物保持ロボット10bと塗装ロボット100とを組み合わせたロボットとは、運動制御処理上、同じ仮想ロボットAとして扱われる。ロボット1とロボット2では、第1軸J1と第3軸J3が共有軸となっている。次に、図3は、仮想ロボットBとして定義された仮想ロボットを示す図である。この仮想ロボットBは、第1軸J1乃至第6軸J6からなる6軸の関節軸の軸を備えており、2台の被塗装物保持ロボット10a、10bを組み合わせて、ひとつの仮想的なロボットとして定義されたものである。次に、以上のような仮想ロボットA、Bを制御する命令である動作命令について説明する。この実施形態では、動作命令には、大きく分けて3種類の命令が用意されている。図4aは、タイプ1の動作命令の説明図であり、図4b、cは、タイプ2の動作命令の説明図、図4dは、タイプ3の動作命令の説明図である。これらの動作命令は、いずれも実際の被塗装物保持ロボット10a、10bや塗装ロボット100を直接制御する命令ではなく、コントローラの運動制御処理系上で仮想ロボットA、Bの各関節軸の目標位置を指令する命令である。まず、図4aに示すタイプ1の動作命令は、仮想ロボットAに対する動作命令である。このタイプ1の動作命令の場合、目標位置は、直交座標系X,Y,Z,Aで与えられる。ここでAは、オイラー角、あるいは固定角である。仮想ロボットAは、関節軸として第1軸J1乃至第5軸J5を備えているので、直交座標系の目標位置は逆変換されて第1軸J1乃至第5軸J5の各関節軸、に目標位置が与えられる。次に、図4bに示すタイプ2の動作命令は、仮想ロボットAに対する動作命令、図4cに示すタイプ2の動作命令は、仮想ロボットBに対する動作命令である。共に、ロボット関節系の目標位置を関節軸に直接指令する動作命令である。仮想ロボットAは、関節軸として第1軸J1乃至第5軸J5まで5軸を有しているが、タイプ2の動作命令は、関節軸のうち、第1軸J1、第2軸J2、第3軸J3、第4軸J4の各関節軸にそれぞれ目標位置T1、T2、T3、T4を与える。他方、仮想ロボットBは、関節軸として第1軸J1乃至第6軸J6まで6軸を有している。タイプ2の動作命令は、6軸ある関節軸のうち、第1軸J1、第2軸J2、第3軸J3、第4軸J4の各関節軸にそれぞれ目標位置T1、T2、T3、T4を与える。最後に、図4dに示すタイプ3の動作命令は、仮想ロボットBに対する動作命令で、6軸ある関節軸のうち、第1軸J1、第2軸J2、第5軸J5、第6軸J6の各関節軸にそれぞれ目標位置T1、T2、T3、T4を与える。図4dのタイプ3の動作命令とは、仮想ロボットBに対して直接各関節軸に目標位置を指令する点ではタイプ2の動作命令と同じであるが、指令する関節軸が違っている。上述したように、仮想ロボットA、Bは、コントローラの運動制御処理系上での処理のために仮想的に想定したロボットであって実在するロボットではない。このため、実際にロボットの動きを制御するためには、仮想ロボットA、Bの関節軸と実際のロボット1、2、3の駆動軸との間に対応関係が必要となる。図5aは、仮想ロボットAの関節軸とロボット1の駆動軸との対応関係を示し、図5bは、仮想ロボットAの関節軸とロボット2の駆動軸との対応関係を示し、図5cは仮想ロボットBの関節軸とロボット3の駆動軸との対応関係を示す。まず、図5aにおいて、ロボット1には、駆動軸は5軸あり、それぞれサーボモータM1乃至M5によって駆動される。ここで図1と対照すると、サーボモータM1は、塗装ロボットの第1軸J’1を駆動するサーボモータ117、サーボモータM3は、塗装ロボットの第2軸J‘2を駆動するサーボモータ図示せずである。サーボモータM2は、左側の被塗装物保持ロボット10aにおいて、第1アーム11を旋回させる第1サーボモータ21に、サーボモータM4は第2アーム12を旋回させる第2サーボモータ22に、サーボモータM5は第3アーム13を旋回させる第3サーボモータ23に対応している。ロボット1の場合、サーボモータM6乃至M8は関係がない。仮想ロボットAそのものでは、関節軸の第1軸J1乃至第5軸J5は具体的なサーボモータM1乃至M8によって駆動されているわけでないが、ロボット選択命令でロボット1が選択された場合には、図5aに示したように仮想ロボットAの関節軸J1乃至J5とロボット1の駆動軸のサーボモータM1乃至M5が1対1に関係付けられることになる。同様に、ロボット2には、駆動軸は5軸あり、それそれぞれサーボモータM1、M3、M6乃至M8によって駆動される。図1と対照すると、サーボモータM1は、塗装ロボットの第1軸J’1を駆動するサーボモータ117、サーボモータM3は、塗装ロボットの第2軸J‘2を駆動するサーボモータ図示せずである。サーボモータM6は、右側の被塗装物保持ロボット10bにおいて、第1アーム11を旋回させる第1サーボモータ21に、サーボモータM7は第2アーム12を旋回させる第2サーボモータ22に、サーボモータM8は第3アーム13を旋回させる第3サーボモータ23に対応している。ロボット2の場合、サーボモータM2、M4、M5は関係がない。このようなロボット2が選択された場合には、図5bに示したように、仮想ロボットAの関節軸J1乃至J5とロボット2の駆動軸のサーボモータM1、M3、M6乃至M8が1対1に関係付けられることになる。次に、ロボット3には、駆動軸は全部で6軸あり、それそれぞれサーボモータM2、M4、M5、M6乃至M8によって駆動される。ロボット3が選択された場合には、図5cに示したように、仮想ロボットBの関節軸J1乃至J6とロボット3の駆動軸のサーボモータM2、M4、M5、M6乃至M8が1対1に関係付けられることになる。次に、図6は、ロボットコントローラであるロボット制御装置140の構成を示すブロック図である。参照番号142は、ヒューマンマシンインターフェース部であり、各種操作スイッチやキーボードなどが接続される。参照番号144は記憶装置であり、この記憶装置144には、ロボットプログラムや仮想ロボットA、Bに関するデータが格納されている。参照番号146は、外部のパソコンや周辺機器との間でデータを入出力するためのI/O部である。このロボット制御装置140は、ロボットプログラムを処理してロボット装置を制御するために、プログラム解析部148と、プログラム指令部150と、駆動制御部152を備えている。駆動制御部152には、ロボット装置を構成しているロボットのすべての駆動軸をそれぞれ駆動するサーボモータM1乃至M8を制御するサーボドライバD1乃至D8が設けられている。プログラム解析部148は、プログラム中のロボット選択命令とロボット動作命令を解析し、ロボット1、2、3のうち、選択されたロボットの属する仮想ロボットの各関節軸に目標位置を与える処理を行う。プログラム指令部150は、仮想ロボットの各関節軸に対応する選択されたロボットの駆動軸を駆動するサーボモータの各サーボドライバに目標位置を指令する。以下、ロボット制御装置140によるロボット装置の制御動作について、図1乃至図3並びに図7を参照してよりくわしく説明する。図7は、ロボットプログラムにおいて、ロボット選択命令とロボット動作命令を組み合わせることで、具体的にどの駆動軸が動作するかを示す図である。ロボット1が選択された場合ロボット1は、図1において、左側の被塗装物保持ロボット10aと塗装ロボット100とを組み合わせたロボットで、図2の仮想ロボットAに属するロボットである。動作の内容は、左側の被塗装物保持ロボット10aでワークWを塗装ロボット10のスプレーガン120のところまで移動し、スプレーガン120から塗料を噴き付けて塗装する作業を行う。仮想ロボットAは、関節軸として第1軸J1乃至第5軸J5を備えており、タイプ1動作命令がプログラム解析部148で解析されると、直交座標系の目標位置は逆変換されて仮想ロボットAの第1軸J1乃至第5軸J5の各関節軸に目標位置が与えられる図4a参照。この段階では、各関節軸は仮想の軸であるので実際にロボット1が動くわけではない。そこで、プログラム指令部152は、図5aに示した仮想ロボットAの関節軸J1乃至J5とロボット1の駆動軸のサーボモータM1乃至M5の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD1乃至D5に指令する。この結果、ロボット1の駆動軸のサーボモータM1乃至M5が動作し、ロボット1は塗装作業を遂行する。同様にして、タイプ2動作命令がプログラム解析部148で解析されると、仮想ロボットAの第1軸J1乃至第4軸J4の各関節軸にロボット関節系上の目標位置が直接与えられる図4b参照。プログラム指令部150は、図5aに示した仮想ロボットAの関節軸J1乃至J5とロボット1の駆動軸のサーボモータM1乃至M5の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD1乃至D4に指令する。この結果、ロボット1の駆動軸のサーボモータM5が有効でサーボモータM1乃至M4が動作し、ロボット1は塗装作業を遂行する。ロボット2が選択された場合ロボット2は、図1において、右側の被塗装物保持ロボット10bと塗装ロボット100とを組み合わせたロボットで、仮想ロボットAに属するロボットである。動作の内容は、右側の被塗装物保持ロボット10bでワークWを塗装ロボット10のスプレーガン120のところまで移動し、スプレーガン120から塗料を噴き付けて塗装する作業を行う。仮想ロボットAは、関節軸として第1軸J1乃至第5軸J5を備えており、タイプ1動作命令がプログラム解析部148で解析されると、直交座標系の目標位置は逆変換されて仮想ロボットAの第1軸J1乃至第5軸J5の各関節軸に目標位置が与えられる。この段階までは、ロボット1が選択された場合と同じである。その後の処理が次のように相違している。プログラム指令部150は、図5bに示した仮想ロボットAの関節軸J1乃至J5とロボット2の駆動軸のサーボモータM1、M3、M6乃至M8の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD1、D3、D6乃至D8に指令する。この結果、ロボット1の駆動軸のサーボモータM1、M3、M6乃至M8が動作し、ロボット1は塗装作業を遂行する。同様にして、タイプ2動作命令がプログラム解析部148で解析されると、仮想ロボットAの第1軸J1乃至第4軸J4の各関節軸にロボット関節系上の目標位置が直接与えられる。駆動制御部152は、図5bに示した仮想ロボットAの関節軸J1乃至J5とロボット2の駆動軸のサーボモータM1、M2、M6、M7、M8の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD1、D2、D6、D7に指令する。この結果、ロボット1の駆動軸のサーボモータM8が有効でサーボモータM1、M2、M6、M7が動作し、ロボット1は塗装作業を遂行する。ロボット3が選択された場合ロボット3は、図1において、左側の被塗装物保持ロボット10aと右側の被塗装物保持ロボット10bとを組み合わせたロボットで、仮想ロボットBに属するロボットである。このロボット3の動作の内容は、一方の被塗装物保持ロボットで塗装が終わった場合に他方の被塗装物保持ロボットに入れ替える動作である。仮想ロボットBは、関節軸として第1軸J1乃至第6軸J6というように6軸を備えている。本実施形態では、仮想ロボットBに対する動作命令には、タイプ2の動作命令とタイプ3の動作命令の2種類の動作命令が用意されている。このうち、タイプ2動作命令は、図1において、右側の被塗装物ロボット10bで塗装が終わったので、替わりに左側の被塗装物ロボット10aのアームを塗装ロボット100まで移動させて段取り替えを行うための命令である。これに対して、タイプ3動作命令は、タイプ2動作命令とは逆に、左側の被塗装物ロボット10aで塗装が終わったので、替わりに右側の被塗装物ロボット10bのアームを塗装ロボット100まで移動させて段取り替えを行うための命令である。タイプ2動作命令がプログラム解析部148で解析されると、仮想ロボットBの第1軸J1乃至第4軸J4の各関節軸にロボット関節系上の目標位置が直接与えられる図4c参照。駆動御部152は、図5cに示した仮想ロボットBの関節軸J1乃至J4とロボット3の駆動軸のサーボモータM2、M4乃至M8の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD2、D4、D5、D6に指令する。この結果、ロボット1の駆動軸のサーボモータM7、M8が有効でサーボモータM2、M4、M5、M6が実際に動作し、ロボット1は段取り作業を遂行する。同様にして、タイプ3動作命令がプログラム解析部148で解析されると、仮想ロボットBの第1軸J1、第2軸J2、第5軸J5、第6軸J6の各関節軸にロボット関節系上の目標位置が直接与えられる図4d参照。駆動制御部152は、図5cに示した仮想ロボットBの関節軸J1乃至J6とロボット3の駆動軸のサーボモータM2、M4乃至M8の関係にしたがって、各関節軸について演算した目標位置をサーボドライバD2、D4、D7、D8に指令する。この結果、ロボット1の駆動軸のサーボモータM5、M6が有効でサーボモータM2、M4、M7、M8が動作し、ロボット1は段取り作業を遂行する。以上のようにして、仮想ロボットに対する動作命令と、ロボットを選択する選択命令を組み合わせることにより、4軸構成のプログラム構造やコマンド構造しかもたない運動制御処理系システムの制御装置であっても、その基本システムをそのまま活用して、8軸構成のロボット装置を制御することが可能になる。しかも、仮想ロボットを複数定義するとともに、動作命令を複数種類用意し、ロボット選択を組み合わせることで、多様な動作にも対応することが可能である。また、仮想ロボットに対する動作命令によって、関節軸に目標位置を指令しているので、同じ仮想ロボットに属する同一のリンク構造を有するロボット群の間で、同じ座標系における教示点を共有することも可能である。"