(57)【要約】【課題】工業用ロボットにおいて、補助装置の独立動作時にマニピュレータとの同期を可能とする。【解決手段】制御装置１３は、メインプログラム３１によりマニピュレータ１１を動作せさるマニピュレータ制御部３２と、ポジショナ用プログラム３６Ａ，３６Ｂによりポジショナ１２Ａ，１２Ｂを制御するポジショナ制御部３３Ａ，３３Ｂを備える。メインプログラム３５は参照切換手段４２Ａ，４２Ｂによりポジショナ用プログラム３６Ａ，３６Ｂが算出したポジショナ１２Ａ，１２Ｂの目標関節角度Ｊｐ_nowを参照可能である。【選択図】図１
2008207274.tif 000002
【特許請求の範囲】
【請求項１】
先端にツールを備え、かつこのツールの位置及び姿勢を三次元空間内で変化させるマニピュレータと、前記ツールによって加工されるワーク及び／又は前記マニピュレータを前記三次元空間内で移動させる補助装置と、前記マニピュレータと前記補助装置を動作させる制御装置とを備える工業用ロボットであって、
前記制御装置は、
前記マニピュレータ自体に設定されたマニピュレータ座標系で与えられる前記マニピュレータの位置及び姿勢と、前記補助装置自体に設定された補助装置座標系で与えられる前記補助装置の位置及び姿勢として教示される第１の教示位置から、前記ワークに設定されたワーク座標系におけるツール先端の最終目標位置及び姿勢を計算する第１の演算手段と、
第１の検出器で検出された前記マニピュレータ座標系における前記マニピュレータの位置及び姿勢と、第２の検出器で検出された前記補助装置座標系における前記補助装置の位置及び姿勢とである第１の現在位置及び姿勢から、前記ワーク座標系における前記ツール先端の現在位置及び姿勢を計算する第２の演算手段と、
前記ワーク座標系におけるツール先端の最終目標位置及び姿勢と、前記ワーク座標系におけるツール先端の現在位置及び姿勢と、予め入力された前記ツール先端の移動特性とに基づいて、前記現在位置及び姿勢から前記最終目標位置及び姿勢までの前記ワーク座標系における前記ツール先端の位置及び姿勢の時系列変化を規定するツール経路方程式を計算する第１の経路算出手段と、
前記第１の教示位置とは別に前記補助装置座標系における前記補助装置の位置及び姿勢として教示される第２の最終目標位置及び姿勢と、前記第２の検出器で検出された前記補助装置座標系における前記補助装置の位置及び姿勢とである第２の現在位置及び姿勢と、予め入力された前記補助装置の移動特性とに基づいて、前記第２の現在位置及び姿勢から前記第２の最終目標位置及び姿勢までの前記補助装置の位置及び姿勢の時系列変化を規定する独立補助装置経路方程式を計算する第２の経路算出手段と、
前記独立補助装置経路方程式によって算出される前記補助装置の位置及び姿勢を使用して、前記ツール経路方程式から算出される前記ワーク座標系における前記ツール先端の位置及び姿勢を、前記マニピュレータの基部に設定され、かつ前記三次元空間に対して固定されたベース座標系におけるツール先端の位置及び姿勢に変換する座標変換処理手段と、
前記座標変換処理手段により算出された前記ベース座標系におけるツール先端の位置及び姿勢を前記マニピュレータ座標系におけるマニピュレータの位置及び姿勢に変換する逆キネマティクス処理手段と、
前記逆キネマティクス処理手段により算出された前記マニピュレータ座標系におけるマニピュレータの位置及び姿勢に基づいて、前記マニピュレータを駆動するマニピュレータ駆動手段と、
前記独立補助装置経路方程式によって算出される前記補助装置の位置及び姿勢に基づいて、前記補助装置を駆動する補助装置駆動手段と
を備えることを特徴とする工業用ロボット。
【請求項２】
前記ワーク座標系における前記ツール先端の位置及び姿勢の時系列変化と同期するように前記補助装置の位置及び姿勢の時系列変化を規定する従属補助装置経路方程式を計算する第３の経路算出手段を備え、
前記座標変換手段は、前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれか一方によって算出される前記補助装置の位置及び姿勢を使用して前記ツール経路方程式から算出される前記ワーク座標系における前記ツール先端の位置及び姿勢を前記ベース座標系におけるツール先端の位置及び姿勢に変換可能であり、
前記補助装置駆動手段は、前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれか一方によって算出される前記補助装置の位置及び姿勢に基づいて、前記補助装置を駆動し、
前記座標変換手段と前記補助装置駆動手段が前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれによって算出される前記補助装置の位置及び姿勢を使用するかを切り換える切換手段を備えることを特徴とする、請求項１に記載の工業用ロボット。
【請求項３】
前記補助装置を１台備え、前記マニピュレータを複数台備え、
前記制御装置は、個々の前記複数のマニピュレータ毎に前記第１の演算手段、前記第２の演算手段、前記第１の経路算出手段、前記座標変換手段、前記逆キネマティクス処理手段、及び前記マニピュレータ駆動手段を備えることを特徴とする、請求項１に記載の工業用ロボット。
【請求項４】
前記補助装置として、前記ワークを保持し、かつ前記ワークを単一又は複数の軸周りに回転させるポジショナを備えることを特徴とする請求項１から請求項３のいずれか１項に記載の工業用ロボット。
【請求項５】
前記補助装置として、前記マニピュレータを保持し、かつ前記マニピュレータを単一又は複数の軸線方向に直進移動させるスライダを備えることを特徴とする請求項１から請求項４のいずれか１項に記載の工業用ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は工業用ロボットに関する。特に、本発明は、ツールを備えるマニピュレータと、ワークを位置決めするポジショナやマニピュレータを移動させるスライダのような補助装置とを備える工業用ロボットに関する。
【背景技術】
【０００２】
工業用ロボットのマニピュレータは複数の自由度を有し、この自由度により手首先端に取り付けた溶接トーチ、塗装ガン等のツール（加工具）を任意の位置及び姿勢に位置決めしてワーク（加工対象物）を加工する。工業用ロボットには、マニピュレータに加え、ワークの姿勢変更やツールの作業領域拡大のための補助装置を備えるものがある。この補助装置には、図１０に示すワーク４を単一又は複数の軸周りに回転させるポジショナ（位置決め装置）２や、図１１に示すマニピュレータ１を単一又は複数の軸方向に直進移動させるスライダ（移動装置）３がある。
【０００３】
作業時間短縮と加工品質の向上を図るには、マニピュレータ１と補助装置の動作を同期させ、両者を同時に動作させながら加工作業を行う必要がある。例えば、アーク溶接の場合、ワーク４に対してツール５（溶接トーチ）が最適な下向きの姿勢を維持するようにマニピュレータ１に対してポジショナ２を同期して動作させることで連続溶接が可能となり、溶接作業時間の短縮と溶接品質の向上を図ることができる。また、スライダ３とマニピュレータ１を同期して動作させることで、マニピュレータ１のみでは作業領域が不足するような大型のワーク４の連続溶接が可能となる。
【０００４】
例えば特許文献１，２には、ＰＴＰ型の工業用ロボットについてマニピュレータと補助装置を同期運転する方法が開示されている。これらの方法はティーチングプレイバック型を基本としており、可搬型ペンダント等の教示装置を使用した教示操作によってマニピュレータと補助装置を同期制御するためのプログラムが作成される。
【０００５】
特許文献１，２に記載の制御方法（同期運転）を概説すると、教示位置としてツール先端の位置及び姿勢と補助装置（ポジショナやスライダ）の関節位置が与えられる。また、マニピュレータと補助装置の配置及び各リンク情報は既知である。さらに、ワークに設定されたワーク座標系（ポジショナによって回転・移動される）とマニピュレータについて設定された固定のベース座標系との間の座標変換手段を有している。ワーク座標系におけるツール先端の位置及び姿勢と補助装置の関節位置とについてそれぞれ経路（現在位置から教示位置までの補間経路）を計算し、ツール先端の位置及び姿勢（ワーク座標系）と補助装置の関節位置とを制御周期毎に更新する。そして、更新されたワーク座標系におけるツール先端の位置及び姿勢と更新された補助装置の目標の関節位置とに基づいて、前述の座標変換手段によって目標となるマニピュレータの関節位置を計算し、マニピュレータと補助装置の各関節位置を駆動する。
【０００６】
しかし、同期運転とは別に、補助装置をマニピュレータとは独立して動作させたい場合もある。例えば、図１２を参照すると、２台のポジショナ２Ａ，２Ｂのうち一方のポジショナ２Ａはマニピュレータ１と同期して加工作業を実行中であるが、他方のポジショナ２Ｂは次に加工対象となるワーク４の搬入動作をマニピュレータとは無関係に独立して実行する必要がある。また、ポジショナ２Ａで保持されたワーク４に対する加工が完了すると、ポジショナ２Ａはマニピュレータ１とは独立して加工済みのワーク４の搬出動作を実行する一方、ポジショナ２Ｂは加工作業のためにマニピュレータ１との同期動作を開始する。このように補助装置はラインの稼動状態によってマニピュレータと共に動作する「同期モード」とロボットの動作とは無関係に動作する「独立モード」を切り換えて使用できることが要求される。
【０００７】
従来、補助装置をマニピュレータと独立して動作させる場合には、教示操作で作成されるロボット用プログラムとは別に補助装置専用プログラムを作成している。例えば、特許文献３には、教示操作によるプログラム作成方法とは別の手段により、マニピュレータに対して非同期に各補助装置を独立に制御するための「コンカレント入出力プログラム」を作成することが開示されている。
【０００８】
【特許文献１】特公平７−１２５９７号公報
【特許文献２】特許第３０９８６１８号
【特許文献３】特許第３２８７３０４号
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、従来の技術には以下の問題がある。
【００１０】
第１に、補助装置の独立動作時には、マニピュレータと補助装置の同期運転ができない。詳細には、前述のように従来のマニピュレータと補助装置の同期制御はティーチングプレイバック型を基本としており、教示位置としてマニピュレータの位置及び姿勢と補助装置の関節位置の両方が必要である。また、補間経路もマニピュレータの位置及び姿勢と補助装置の関節位置の両方について求める必要がある。そのため、マニピュレータと独立して補助装置が動作させている状態で、マニピュレータと補助装置の動作を同期させることは不可能である。換言すれば、マニピュレータと補助装置を同期して動作させる場合には、補助装置の動作をマニピュレータの動作に従属させる必要がある。また、補助装置を同期運転と独立運転で自由に切り換えることも不可能である。
【００１１】
第２に、従来のマニピュレータと補助装置を同期運転する制御方法は、１台のマニピュレータと１台の補助装置を同期させることが前提であり、１台の補助装置に対して２台以上のマニピュレータを同期させることは不可能であった。
【００１２】
第３に、補助装置を独立運転させるためのプログラムは、マニピュレータの制御用のプログラムとは全く異なる手法で作成する必要があった。詳細には、一般的にティーチングプレイバック型であるマニピュレータの制御用のプログラムは、前述の教示操作を使用する方法で作成される。一方、補助装置をマニピュレータと独立して動作させるには、ＰＬＣ（Programmable Logic Controller）やコンカレントI/Oのラダープログラム等のプログラムが必要であり、これらのプログラムは教示操作を使用するマニピュレータの制御用のプログラムとは全く異なる方法で作成される。そのため、操作者は２つの異なるプログラミング方法を習得する必要がある。また、全く異なる手法で作成された２種類のプログラムが同時に１台の補助装置を駆動する「競合」が発生する可能性があり、この「競合」を回避するための複雑な処理が必要である。
【００１３】
前記工業用ロボットにおける従来の課題に鑑み、本発明は、補助装置の独立動作時にマニピュレータとの同期を可能とすること、補助装置の同期運転と独立運転を自由に切り換え可能とすること、１台の補助装置に対する複数台のマニピュレータの同期動作を実現すること、マニピュレータの制御プログラムと同様の手法で補助装置の独立制御用のプログラムを作成可能とすること、及び補助装置についてマニピュレータの同期制御用のプログラムと独立制御用のプログラムとの競合をなくすことを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、先端にツールを備え、かつこのツールの位置及び姿勢を三次元空間内で変化させるマニピュレータと、前記ツールによって加工されるワーク及び／又は前記マニピュレータを前記三次元空間内で移動させる補助装置と、前記マニピュレータと前記補助装置を動作させる制御装置とを備える工業用ロボットであって、前記制御装置は、前記マニピュレータ自体に設定されたマニピュレータ座標系で与えられる前記マニピュレータの位置及び姿勢と、前記補助装置自体に設定された補助装置座標系で与えられる前記補助装置の位置及び姿勢として教示される第１の教示位置から、前記ワークに設定されたワーク座標系におけるツール先端の最終目標位置及び姿勢を計算する第１の演算手段と、第１の検出器で検出された前記マニピュレータ座標系における前記マニピュレータの位置及び姿勢と、第２の検出器で検出された前記補助装置座標系における前記補助装置の位置及び姿勢とである第１の現在位置及び姿勢から、前記ワーク座標系における前記ツール先端の現在位置及び姿勢を計算する第２の演算手段と、前記ワーク座標系におけるツール先端の最終目標位置及び姿勢と、前記ワーク座標系におけるツール先端の現在位置及び姿勢と、予め入力された前記ツール先端の移動特性とに基づいて、前記現在位置及び姿勢から前記最終目標位置及び姿勢までの前記ワーク座標系における前記ツール先端の位置及び姿勢の時系列変化を規定するツール経路方程式を計算する第１の経路算出手段と、前記第１の教示位置とは別に前記補助装置座標系における前記補助装置の位置及び姿勢として教示される第２の最終目標位置及び姿勢と、前記第２の検出器で検出された前記補助装置座標系における前記補助装置の位置及び姿勢とである第２の現在位置及び姿勢と、予め入力された前記補助装置の移動特性とに基づいて、前記第２の現在位置及び姿勢から前記第２の最終目標位置及び姿勢までの前記補助装置の位置及び姿勢の時系列変化を規定する独立補助装置経路方程式を計算する第２の経路算出手段と、前記独立補助装置経路方程式によって算出される前記補助装置の位置及び姿勢を使用して、前記ツール経路方程式から算出される前記ワーク座標系における前記ツール先端の位置及び姿勢を、前記マニピュレータの基部に設定され、かつ前記三次元空間に対して固定されたベース座標系におけるツール先端の位置及び姿勢に変換する座標変換処理手段と、前記座標変換処理手段により算出された前記ベース座標系におけるツール先端の位置及び姿勢を前記マニピュレータ座標系におけるマニピュレータの位置及び姿勢に変換する逆キネマティクス処理手段と、前記逆キネマティクス処理手段により算出された前記マニピュレータ座標系におけるマニピュレータの位置及び姿勢に基づいて、前記マニピュレータを駆動するマニピュレータ駆動手段と、前記独立補助装置経路方程式によって算出される前記補助装置の位置及び姿勢に基づいて、前記補助装置を駆動する補助装置駆動手段とを備えることを特徴とする工業用ロボットを提供する。
【００１５】
座標変換手段がツール経路方程式で算出されたワーク座標系におけるツール先端の位置及び姿勢をベース座標系におけるツール先端の位置及び姿勢に変換する際に、第２の経路算出手段で算出された独立補助装置経路方程式によって算出される補助装置の位置及び姿勢が使用される。換言すれば、ツール経路方程式によってツール先端の位置及び姿勢を算出する際に、ツール経路方程式とは別途に求めた独立補助装置経路方程式により算出された補助装置の位置及び姿勢を使用する。かかる制御により、補助装置がマニピュレータとは独立に動作している状態で、マニピュレータと補助装置を同期して動作させることが可能である。また、マニピュレータの制御プログラムと同様の手法、すなわち最終目標位置を教示すると共に移動特性を与えることにより、マニピュレータの制御プログラムとは別途に補助装置の独立制御用のプログラムを作成できる。
【００１６】
前記ワーク座標系における前記ツール先端の位置及び姿勢の時系列変化と同期するように前記補助装置の位置及び姿勢の時系列変化を規定する従属補助装置経路方程式を計算する第３の経路算出手段を備え、前記座標変換手段は、前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれか一方によって算出される前記補助装置の位置及び姿勢を使用して前記ツール経路方程式から算出される前記ワーク座標系における前記ツール先端の位置及び姿勢を前記ベース座標系におけるツール先端の位置及び姿勢に変換可能であり、前記補助装置駆動手段は、前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれか一方によって算出される前記補助装置の位置及び姿勢に基づいて、前記補助装置を駆動し、前記座標変換手段と前記補助装置駆動手段が前記独立補助装置経路方程式及び前記従属補助装置経路方程式のうちのいずれによって算出される前記補助装置の位置及び姿勢を使用するかを切り換える切換手段を備えることが好ましい。
【００１７】
切換手段で独立補助装置経路方程式と従属補助装置経路方程式のうちのいずれによって算出された補助装置の位置及び姿勢を使用するかを切り換えることにより、補助装置をマニピュレータとは独立に動作させている状態（補助装置をマニピュレータ制御用のプログラムとは別の独立制御用プログラムで動作させている状態）と、補助装置をマニピュレータに従属して動作させている状態（補助装置をマニピュレータ制御用のプログラムで動作させている状態）を自由に切り換えることができる。また、補助装置についてマニピュレータに対して独立制御用プログラムと同期制御用のプログラムとの競合も防止できる。
【００１８】
本発明により、１台の補助装置に対する複数台のマニピュレータの同期動作を実現することもできる。すなちわ、本発明に係る工業用ロボットは、前記補助装置を１台備え、前記マニピュレータを複数台備え、前記制御装置は、個々の前記複数のマニピュレータ毎に前記第１の演算手段、前記第２の演算手段、前記第１の経路算出手段、前記座標変換手段、前記逆キネマティクス処理手段、及び前記マニピュレータ駆動手段を備えるものであってもよい。
【００１９】
前記補助装置は、前記ワークを保持し、かつ前記ワークを単一又は複数の軸周りに回転させるポジショナであっても、前記マニピュレータを保持し、かつ前記マニピュレータを単一又は複数の軸線方向に直進移動させるスライダであってもよい。
【発明の効果】
【００２０】
本発明に係る工業用ロボットによれば、補助装置がマニピュレータとは独立して動作している状態で、マニピュレータと補助装置を同期して動作させることができる。また、補助装置をマニピュレータとは独立に動作させている状態と、補助装置をマニピュレータに従属して動作させている状態とを自由に切り換えることができる。さらに、補助装置についてマニピュレータに対する独立制御用プログラムと同期制御用のプログラムとの競合を防止できる。さらに、１台の補助装置に対する複数台のマニピュレータの同期動作をできる。さらにまた、マニピュレータの制御プログラムと同様の手法で補助装置の独立制御用のプログラムを作成できる。
【発明を実施するための最良の形態】
【００２１】
次に、添付図面を参照して本発明の実施形態を詳細に説明する。
【００２２】
（第１実施形態）
図１から図３に示す第１実施形態は、１台のマニピュレータと２台のポジショナを備えるＰＴＰ型の工業用ロボットに本発明を適用した例である。本実施形態の工業用ロボットは、１台のマニピュレータ１１、２台のポジショナ１２Ａ，１２Ｂ、制御装置１３、及び教示装置１４を備える。
【００２３】
マニピュレータ１１は先端にツール１６を備え、かつツール１６の位置及び姿勢を三次元空間内で変化させる。マニピュレータ１１は６個の回転関節ＲＪｍ１，ＲＪｍ２，ＲＪｍ３，ＲＪｍ４，ＲＪｍ５，ＲＪｍ６を有する。回転関節ＲＪｍ１〜ＲＪｍ６間はリンクで連結され、最も基端側の回転関節ＲＪｍ１は台座１１ａに取り付けられている。各回転関節ＲＪｍ１〜ＲＪｍ６は、回転駆動のためのモータＭＯｍ１〜ＭＯｍ６と、関節角度θｍ１〜θｍ２を検出するための角度センサＳＥｍ１〜ＳＥｍ６を備える。
【００２４】
個々のポジショナ１２Ａ，１２Ｂはワーク１７を保持するテーブル１２ａと、ワーク１７の位置及び姿勢を三次元空間内で変化させるための２個の回転関節ＲＪｐ１，ＲＪｐ２を備える。回転関節ＲＪｐ１，ＲＪｐ２は、回転駆動のためのモータＭＯｐ１，ＭＯｐ２と、関節角度θｐ１，θｐ２を検出するための角度センサＳＥｐ１，ＳＥｐ２を備える。
【００２５】
次に、マニピュレータ１１及びポジショナ１２Ａ，１２Ｂの制御に使用する座標を説明する。
【００２６】
マニピュレータ１１に関し、２つの座標系を設定する。まず、６個の関節角度θｍ１〜θｍ６で与えられる回転関節座標系（マニピュレータ座標系）を設定する。マニピュレータ座標系でのマニピュレータ１１の位置及び姿勢（ツール先端１６ａの位置及び姿勢）は、関節角度Ｊｍ（θｍ１，θｍ２，θｍ３，θｍ４，θｍ５，θｍ６）で表記する。また、原点がマニピュレータ１１の台座１１ａに設定され、かつ三次元空間に対して固定された直交座標系（ベース座標系Σbase）を設定する。ベース座標系Σbaseにおけるマニピュレータ１１の位置及び姿勢（ツール先端１６ａの位置及び姿勢）、すなわちベース座標系Σbaseでの座標と座標軸周りの回転角をbaseＰ（Ｘｂ，Ｙｂ，Ｚｂ，αｂ，βｂ，γｂ）で表記する。
【００２７】
ポジショナ１２Ａ，１２Ｂに関しては、２個の関節角度θｐ１，θｐ１で与えられる回転関節座標系（ポジショナ座標系）を設定する。ポジショナ座標系でのポジショナ１２の位置及び姿勢は、関節角度Ｊｐ（θｐ１，θｐ２）で表記する。
【００２８】
ワーク１７に対して固定された直交座標系（ワーク座標系Σwork）を設定する。ワーク座標系Σworkにおける座標と座標軸周りの回転角をworkＰ（Ｘｗ，Ｙｗ，Ｚｗ，αｗ，βｗ，γｗ）で表記する。
【００２９】
制御装置１３は、予め記憶されたプログラムに従って、教示装置１４及び角度センサＳＥｍ１〜ＳＥｍ６，ＳＥｐ１，ＳＥｐ２からの入力に基づいて、モータＭＯｍ１〜ＭＯｍ６，ＭＯｐ１，ＭＯｐ２を駆動する。制御装置１３からマニピュレータ１１及びポジショナ１２Ａ，１２ＢのモータＭＯｍ１〜ＭＯｍ６，ＭＯｐ１，ＭＯｐ２に対して出力される指令は、関節角度Ｊｍ（θｍ１〜θｍ６），Ｊｐ（θｐ１，θｐ２）である。
【００３０】
図１及び図２を参照すると、制御装置１３は、記憶部３１、マニピュレータ制御部３２、及びポジショナ制御部３３Ａ，３３Ｂを備えている。制御部１３はプロセッシングユニット、ＲＡＭ、ＲＯＭ等の種々の記憶装置、入出力ポート等のハードウェアと、それに実装されるソフトウェアとにより構築されている。
【００３１】
記憶部３１には、マニピュレータ３２を駆動するためのメインプログラム３５と、それぞれポジショナ１２Ａ，１２Ｂを駆動するためのポジショナ用プログラム３６Ａ，３６Ｂとが記憶されている。
【００３２】
マニピュレータ制御部３２はメインプログラム３５を実行してマニピュレータ１１を動作させる。個々のポジショナ制御部３３Ａ，３３Ｂは、ポジショナ用プログラム３６Ａ，３６Ｂ又はメインプログラム３５を実行して対応するポジショナ１２Ａ，１２Ｂを動作させる。
【００３３】
制御装置１３は、一方のポジショナ制御部３３Ａがポジショナ用プログラム３６Ａとメインプログラム３５のうちのいずれを実行するか（ポジショナ用プログラム３６Ａとメインプログラム３５のうちのいずれに基づいてポジショナ１２Ａを動作させるか）を切り換えるためのプログラム切換手段を備えている（図１において符号４１Ａにより概念的に示す）。また、制御装置１３は、他方のポジショナ制御部３３Ｂがポジショナ用プログラム３６Ｂとメインプログラム３５のうちのいずれを実行するかを切り替えるためのプログラム切換手段４１Ｂを備える。これらのプログラム切換手段４１Ａ，４１Ｂは、物理的なスイッチではなく、メインプログラム３５やポジショナ用プログラム３６Ａ，３６Ｂを実行することにより実現されるソフトウェア的機能である。
【００３４】
制御装置１３は、ポジショナ１２Ａ，１２Ｂの位置情報である後述する目標関節角度Ｊｐ_nowを個々のポジショナ制御部３３Ａ，３３Ｂからマニピュレータ制御部３２に出力するか否か（マニピュレータ制御部３２がポジショナ制御部３３Ａ，３３Ｂで算出される目標関節角度Ｊｐ_nowを参照するか否か）を切り換える参照切換手段４２Ａ，４２Ｂを備える。これらの参照切替手段４２Ａ，４２Ｂも、物理的なスイッチではなく、メインプログラム３５やポジショナ用プログラム３６Ａ，３６Ｂを実行することにより実現されるソフトウェア的機能である。
【００３５】
プログラム切換手段４１Ａ，４１Ｂや参照切換手段４２Ａ，４２Ｂの操作等の分岐条件の実行に必要な情報を含む種々の情報や命令が、マニピュレータ制御部３２と個々のポジショナ動作部３３Ａ，３３Ｂとの間で送受信される。
【００３６】
教示装置１４を使用して制御装置１３に対して制御に必要な条件が入力され、前述のメインプログラム３５とポジショナ用プログラム３６Ａ，３６Ｂが作成される。作成されたプログラムは記憶部３１に記憶される。メインプログラム３５については、教示位置Ｐｔｅに加え、ワーク座標系Σbaseにおけるツール先端１６ａの移動経路と移動速度Ｖsetを含む移動特性、及びその他のパラメータが教示装置１４から入力される。教示位置Ｐｔｅは、マニピュレータ１１の関節角度Ｊｍｔｅ（θｍｔｅ１，θｍｔｅ２，θｍｔｅ３，θｍｔｅ４，θｍｔｅ５，θｍｔｅ６）とポジショナ１２Ａ又は１２Ｂの関節角度Ｊｐｔｅ（θｐｔｅ１，θｐｔｅ２）として入力される。一方、ポジショナ用プログラム３６Ａ，３６Ｂについては、教示位置Ｊｐｔｅ（θｐｔｅ１，θｐｔｅ２）に加え、関節角度θｐ１，θｐ２の変化特性が含まれる。
【００３７】
本実施形態の工業用ロボットでは、以下の３種類のモードでマニピュレータ１１とポジショナ１２Ａ，１２Ｂを動作させることができる。以下の説明では、理解を容易にするため、ポジショナ１２Ａ，１２Ｂを特に特に区別する必要がない場合、ポジショナ１２Ａにのみ言及する。
【００３８】
第１のモードとしては、メインプログラム３５でマニピュレータ１１とポジショナ１２Ａの両方を動作させる。このモードでは、マニピュレータ１１とポジショナ１２Ａは同期して動作する。また、マニピュレータ１１を制御するためのメインプログラム３５でポジショナ１２Ａも併せて制御している点で、ポジショナ１２Ａの動作はマニピュレータ１１の動作に従属している。図２に示すように、第１のモードでは、プログラム切換手段４１Ａはメインプログラム３５側に切り換えられ、ポジショナ制御部３３Ａはメインプログラム３５を実行する。また、参照切換手段４２Ａは、マニピュレータ制御部３２（メインプログラム３５）がポジショナ制御部３３Ａ（ポジショナ用プログラム３６Ａ）で算出された目標関節角度Ｊｐ_nowを参照しない状態に設定されている。
【００３９】
第２のモードとしては、メインプログラム３５でマニピュレータ１１を動作させる一方、ポジショナ用プログラム３６Ａでポジショナ１２Ａを動作させる。また、この第２のモードでは、メインプログラム３５がポジショナ用プログラム３６Ａで算出されるポジショナ１２Ａの目標関節角度Ｊｐ_nowを参照することにより、マニピュレータ１１とポジショナ１２Ａが同期して制御される。換言すれば、第２のモードでは、ポジショナ１２Ａとマニピュレータ１１とは互いに独立に制御されているが、マニピュレータ１１とポジショナ１２Ａは同期して動作する。図１に示すように、第２のモードでは、プログラム切換手段４１Ａはポジショナ用プログラム３６Ａに切り換えられ、ポジショナ制御部３３Ａはポジショナ用プログラム３６Ａを実行する。また、参照切換手段４２Ａは、マニピュレータ制御部３２がポジショナ制御部３３Ａで算出された目標関節角度Ｊｐ_nowを参照する状態に設定されている。
【００４０】
第３のモードとしては、メインプログラム３５でマニピュレータ１１を動作させる一方、ポジショナ用プログラム３６Ａでポジショナ１２Ａを動作させる。また、この第３のモードでは、メインプログラム３５はポジショナ用プログラム３６Ａで算出されるポジショナ１２Ａの目標関節角度Ｊｐ_nowを参照しない。換言すれば、第３のモードでは、ポジショナ１２Ａとマニピュレータ１１とは互いに独立に制御され、かつポジショナ１２Ａの動作はマニピュレータ１１の動作に対して非同期である。図１及び図２において、他方のポジショナ１２Ｂについては、プログラム切換手段４２Ｂがポジショナ用プログラム３６Ｂに切り換えられ、ポジショナ制御部３３Ｂはポジショナ用プログラム３６Ｂを参照する。また、参照切換手段４２Ｂはマニピュレータ制御部３２がポジショナ制御部３３Ｂで算出された目標関節角度Ｊｐ_nowを参照しない状態に設定されている。従って、マニピュレータ１１とポジショナ１２Ｂに着目した場合、図１及び図２は第３のモードを示している。この第３のモードでは、ポジショナ１２Ａ，１２Ｂはマニピュレータ１１に対して完全に独立して動作するため、図１及び図２において矢印Ａで模式的に示すポジショナ１２Ａ，１２Ｂへのワーク１７の搬入動作や、矢印Ｂでポジショナ１２Ａ，１２Ｂからの加工済みのワーク１７の搬出動作の実行に適している。
【００４１】
次に、図５から図６Ｂのフローチャートを参照して、制御装置１３により実行されるマニピュレータ１１及びポジショナ１２Ａの制御を説明する。理解を容易にするために、図４に示すようにワーク１７上の直線の作業線Ｌに沿ってツール先端１６ａが現在位置から目標位置まで等速で移動する場合を例に説明する。また、ポジショナ１２Ａ，１２Ｂを特に特に区別する必要がない場合、ポジショナ１２Ａにのみ言及する。
【００４２】
図５は、ポジショナ制御部３３Ａ（ポジショナ用プログラム３６Ａ）による、ポジショナ１２Ａの動作の制御を示す。また、図６Ａ，６Ｂはマニピュレータ制御部３２（メインプログラム３５）による、マニピュレータ１１の動作の制御を示す。前述のように、第２及び第３のモードでは、ポジショナ制御部３３Ａが図５に示すポジショナ用プログラム３６Ｂを実行することでポジショナ１２Ａを制御し、図５のフローと図６Ａ，６Ｂのフローは同時に実行される。一方、第１のモードでは、マニピュレータ制御部３２とポジショナ制御部３３Ａの両方が図６Ａ，６Ｂのフローを実行し、図５のフローは実行されない。
【００４３】
ポジショナ用プログラム３６Ａについて説明すると、図５のステップＳ５−１において、教示位置Ｊｐｔｅ（θｐｔｅ１，θｐｔｅ２）を取得する。次に、ステップＳ５−２において、ポジショナ１２Ａの現在の関節角度Ｊｐ０（θｐ１０，θｐ２０）を角度センサＳＥｐ１，ＳＥｐ２から取得する。
【００４４】
続いて、ステップＳ５−３において、現在の関節角度Ｊｐ０からステップＳ５−１で取得した教示位置Ｊｐｔｅ（第２の最終目標位置及び姿勢）までのポジショナ１２Ａの関節角度Ｊｐの時系列変化を規定する独立ポジショナ経路方程式Ｊｐｉｄ（ｔ）を計算する（符号ｔは時刻を示す。）。機能の面から見ると、ステップＳ５−３は本発明における第２の経路算出手段を構成している。
【００４５】
本実施形態では、現在の関節角度Ｊｐ０から教示位置Ｊｐｔｅまでポジショナ１２Ａの関節角度Ｊｐが等速度で変化するものとして独立ポジショナ経路方程式Ｊｐｉｄ（ｔ）を計算する。まず、現在の関節角度Ｊｐ０から教示位置Ｊｐｔｅまでのポジショナ１２Ａの関節角度の変化Ｄｐは以下の式（１）で表される。
【００４６】
【数１】
2008207274.tif 000003
【００４７】
また、ポジショナ座標系におけるポジショナ１２Ａの関節角度Ｊｐの変化速度の設定値をＶＪｐｓｅｔとすると、ポジショナ１２Ａが現在の関節角度Ｊｐ０から教示位置Ｊｐｔｅまで移動するのに要する時間（移動時間Ｔｐｎ）は、以下の式（２）で表される。
【００４８】
【数２】
2008207274.tif 000004
【００４９】
式（１），（２）より、現在の関節角度Ｊｐ０から教示位置Ｊｐｔｅまでの、ポジショナ１２Ａの関節角度Ｊｐの変化速度ΔＪｐは、以下の式（３）で表される。
【００５０】
【数３】
2008207274.tif 000005
【００５１】
従って、独立ポジショナ経路方程式Ｊｐｉｄ（ｔ）は以下の式（４）に示す通りである。
【００５２】
【数４】
2008207274.tif 000006
【００５３】
次に、ステップＳ５−４において、時刻ｔを初期化する（ｔ＝０）。
【００５４】
ステップＳ５−５からステップＳ５−１０は、制御周期Ｔｃ毎に繰り返される。まず、ステップＳ５−５において時刻ｔを時刻ｔ＋Ｔｃに更新する。
【００５５】
次に、ステップＳ５−６において、ステップＳ５−５で更新した時刻ｔ（現在の制御周期）におけるポジショナ１２Ａの関節角度Ｊｐの目標値（目標関節角度Ｊｐ_now）を独立ポジショナ経路方程式Ｊｐｉｄ（ｔ）により計算する。本実施形態では、更新した時刻ｔを式（４）に代入することで、目標関節角度Ｊｐ_nowが得られる。
【００５６】
次に、ステップＳ５−７において、マニピュレータ１１とポジショナ１２Ａが同期中であるか、すなわちポジショナ制御部３３Ａ（ポジショナ用プログラム３６Ａ）で算出されるポジショナ１２Ａの目標関節角度Ｊｐ_nowをマニピュレータ制御部３２（メインプログラム３１）が参照切換手段４２Ａを介して参照中であるかを判断する。
【００５７】
ステップＳ５−７においてマニピュレータ１１とポジショナ１２Ａが同期中であれば（第２のモード）、ステップＳ５−８において、目標関節角度Ｊｐ_nowをポジショナ制御部３３Ａからマニピュレータ制御部３２に出力する。一方、ステップＳ５−７においてマニピュレータ１１とポジショナ１２Ａが同期中でなければ（第３のモード）、ステップＳ５−９に移行する。
【００５８】
ステップＳ５−９では、目標関節角度Ｊｐ_nowを指令としてポジショナ１２Ａに出力する。この指令によりポジショナ１２のモータＭＯｐ１，ＭＯｐ２が作動し、ポジショナ１２が動作する。このステップＳ５−９のポジショナ１２Ａへの指令の出力及び駆動は、後述するステップＳ６−１６のマニピュレータ１１への指令の出力及び駆動と同時に実行される。機能の面から見ると、ステップＳ５−９は本発明における補助装置駆動手段を構成している。
【００５９】
ステップＳ５−１０において、教示位置Ｊｐｔｅに到着するまで、ステップＳ５−５からステップＳ５−９の処理が繰り返される。
【００６０】
次に、メインプログラム３５について説明すると、まず、図６ＡのステップＳ６−１において、教示位置Ｐｔｅ（Ｊｍｔｅ＋Ｊｐｔｅ）からワーク座標系Σworkにおけるツール先端１６ａの最終目標位置及び姿勢workＰｔｅ（Ｘｗｔｅ，Ｙｗｔｅ，Ｚｗｔｅ，αｗｔｅ，βｗｔｅ，γｗｔｅ）を計算する。具体的には、まず、教示位置Ｐｔｅでのマニピュレータ１１の関節角度Ｊｍｔｅの順キネマティクスを計算し、ベース座標系Σbaseにおけるツール先端１６ａの位置及び姿勢baseＰｔｅ（Ｘｂｔｅ，Ｙｂｔｅ，Ｚｂｔｅ，αｂｔｅ，βｂｔｅ，γｂｔｅ）に変換する。次に、教示位置Ｐｔｅにおけるポジショナ１２Ａの関節角度Ｊｐｔｅを使用し、ベース座標系Σbaseにおける教示位置Ｐｔｅでのツール先端１６ａの位置及び姿勢baseＰｔｅを、ワーク座標系Σworkにおけるツール先端１６ａの目標位置及び姿勢workＰｔｅに座標変換する。順キネマティクス及び座標変換は、それぞれ公知の算出式と座標変換手段で実行可能である。機能の面から見ると、ステップＳ６−１は本発明における第１の演算手段を構成している。
【００６１】
次に、ステップＳ６−２において、現在位置Ｐ０におけるマニピュレータ１１の関節角度Ｊｍ０（θｍ１０，θｍ２０，θｍ３０，θｍ４０，θｍ５０，θｍ６０）とポジショナ１２Ａの関節角度Ｊｐ０（θｐ１０，θｐ２０）を角度センサＳＥｍ１〜ＳＥｍ６，ＳＥｐ１，ＳＥｐ２から取得する。また、ステップＳ６−２と同様の順キネマティクスと座標変換により、現在位置Ｐ０（Ｊｍ０＋Ｊｐ０）からワーク座標系Σworkにおけるツール先端１６ａの現在位置及び姿勢workＰ０（Ｘｗ０，Ｙｗ０，Ｚｗ０，αｗ０，βｗ０，γｗ０）を計算する。機能の面から見ると、ステップＳ６−２は本発明における第２の演算手段を構成している。
【００６２】
続いて、ステップＳ６−３において、ワーク座標系Σworkにおける現在位置及び姿勢workＰ０から最終目標位置及び姿勢workＰｔｅまでのツール先端１６ａの位置及び姿勢workＰの時系列変化を規定するツール経路方程式workＰ（ｔ）を算出する。機能の面から見ると、ステップＳ６−３は本発明における第１の経路算出手段を構成している。
【００６３】
本実施形態では前述のようにツール先端１６ａは作業線Ｌ上を直線かつ等速で移動するので、ツール経路方程式workＰ（ｔ）は以下のように計算される。まず、ワーク座標系Σworkにおける現在位置及び姿勢workＰ０から最終目標位置及び姿勢workＰｔｅの間の距離Ｄｍは以下の式（５）で表される。
【００６４】
【数５】
2008207274.tif 000007
【００６５】
ワーク座標系Σworkにおけるツール先端１６ａの移動速度の設定値（設定速度）をＶｍｓｅｔとすると、ツール先端１６ａが作業線Ｌに沿って現在位置及び姿勢workＰ０から目標位置及び姿勢workＰｔｅまで移動するのに要する時間（移動時間Ｔｍｎ）は、以下の式（６）で表される。
【００６６】
【数６】
2008207274.tif 000008
【００６７】
また、ワーク座標系Σworkにおけるツール先端１６ａの位置及び姿勢workＰの変化の速度ΔworkＰは以下の式（７）で表される。
【００６８】
【数７】
2008207274.tif 000009
【００６９】
従って、ツール経路方程式workＰ（ｔ）は以下の式（８）に示す通りである。
【００７０】
【数８】
2008207274.tif 000010
【００７１】
次に、ステップＳ６−４において、メインプログラム３５でマニピュレータ１１のみでなくポジショナ１２Ａも制御していれば（第１のモード）、ステップＳ６−５において、従属ポジショナ経路方程式Ｊｐｄ（ｔ）を計算する。一方、ステップＳ６−４においてメインプログラム３５でポジショナ１２Ａを制御していなければ（第２又は第３のモード）、ステップＳ６−６に移行する。機能の面から見ると、ステップＳ６−５は本発明における第３の経路算出手段を構成している。
【００７２】
従属ポジショナ経路方程式Ｊｐｄ（ｔ）は、ツール経路方程式workＰ（ｔ）で規定されるワーク座標系Σworkにおけるツール先端１６ａの位置及び姿勢の時系列変化と同期するように、ポジショナ座標系における現在位置Ｐ０から教示位置Ｐｔｅまでのポジショナ１２の関節角度Ｊｐの時系列変化を規定する。ポジショナ１２Ａの関節角度の変化の速度ΔＪｐは、現在位置Ｐ０でのポジショナ１２の関節角度Ｊｐ０、教示位置Ｐｔｅでのポジショナ１２の関節角度Ｊｐｔｅ、及び移動時間Ｔｍｎを用いて以下の式（９）で表される。
【００７３】
【数９】
2008207274.tif 000011
【００７４】
従って、従属ポジショナ経路方程式Ｊｐｄ（ｔ）は、以下の式（１０）に示す通りである。
【００７５】
【数１０】
2008207274.tif 000012
【００７６】
ステップＳ６−６では、時刻ｔを初期化する（ｔ＝０）。
【００７７】
ステップＳ６−７からステップＳ６−１８は、制御周期Ｔｃ毎に繰り返される。まず、ステップＳ６−７において時刻ｔを時刻ｔ＋Ｔｃに更新する。
【００７８】
次に、ステップＳ６−８において、ステップＳ６−７で更新した時刻ｔでのワーク座標系Σworkにおけるツール先端１６ａの目標位置及び姿勢workＰを、ツール経路方程式workＰ（ｔ）により計算する。本実施形態では、更新した時刻ｔを式（８）に代入することで、ツール先端１６ａの目標位置及び姿勢workＰが得られる。
【００７９】
次に、ステップＳ６−９において、メインプログラム３５でマニピュレータ１１のみでなくポジショナ１２Ａも制御していれば（第１のモード）、ステップＳ６−１０において従属ポジショナ経路方程式Ｊｐｄ（ｔ）からポジショナ１２Ａの目標関節角度Ｊｐ_nowを計算する。具体的には、ステップＳ６−７で更新した時刻ｔを式（１０）に代入することで、目標関節角度Ｊｐ_nowが得られる。
【００８０】
一方、ステップＳ６−９においてメインプログラム３５でポジショナ１２Ａを制御していないが、ステップＳ６−１１においてマニピュレータ１１とポジショナ１２Ａを同期制御していれば（第２のモード）、ステップＳ６−１２においてポジショナ制御部３３Ａからポジショナ１２Ａの目標関節角度Ｊｐ_nowを取得する。
【００８１】
ステップＳステップＳ６−９においてメインプログラム３５でポジショナ１２Ａを制御しておらず、かつステップＳ６−１１でマニピュレータ１１とポジショナ１２Ａを同期制御していなければ（第３のモード）、ポジショナ制御部３３Ａからのポジショナ１２Ａの目標関節角度Ｊｐ_nowを取得は行わない。
【００８２】
次に、ステップＳ６−１３において、ポジショナの目標関節角度Ｊｐ_nowを使用し、ワーク座標系Σworkにおけるツール先端１６ａの目標位置及び姿勢workＰnowをベース座標系Σbaseにおけるツール先端１６ａの目標位置及び姿勢baseP_now(Ｘb_now，Ｙb_now，Ｚb_now，αb_now，βb_now，γb_now)に座標変換する。機能の面から見ると、ステップＳ６−１３は本発明における座標変換手段を構成する。
【００８３】
続いて、ステップＳ６−１４において、ベース座標系Σbaseにおけるツール先端１６ａの目標位置及び姿勢baseP_nowの逆キネマティクスを計算してマニピュレータ１１の目標関節角度Jm_nowに変換する。機能の面から見ると、ステップＳ６−１４は本発明における逆キネマティクス手段を構成する。
【００８４】
次に、ステップＳ６−１５においてメインプログラム３５でポジショナ１２Ａを制御していれば（第１のモード）、ステップＳ６−１６において目標関節角度Jm_nowを指令としてマニピュレータ１１に出力し、この指令によりマニピュレータのモータＭＯｍ１〜ＭＯｍ６が作動し、マニピュレータ１１が作動する。同時に、目標関節角度Ｊｐ_nowを指令としてポジショナ１２Ａに出力する。この指令によりポジショナ１２ＡのモータＭＯｐ１，ＭＯｐ２が作動し、ポジショナ１２が動作する。
【００８５】
一方、ステップＳ６−１５においてメインプログラム３５でポジショナ１２Ａを制御していなければ（第２又は第３のモード）、ステップＳ６−１７において、マニピュレータ１１への目標関節角度Jm_nowの出力及び駆動のみを実行し、ポジショナ１２Ａへの目標関節角度Ｊｐ_nowの出力は実行しない。機能の面から見ると、ステップＳ６−１６，Ｓ６−１７は本発明におけるマニピュレータ駆動手段を構成する。
【００８６】
ステップＳ６−１８において、教示位置Ｊｐｔｅに到着するまで、ステップＳ６−７からステップＳ６−１７の処理が繰り返される。
【００８７】
以上詳説した本実施形態の工業用ロボットは、以下の特徴を有する。まず、ポジショナ制御部３３Ａ（ポジショナ用プログラム３６Ａ）で算出した目標関節角度Ｊｐ_nowをマニピュレータ制御部１３（メインプログラム３５）が参照し、ワーク座標系Σworkにおけるツール先端１６ａの目標位置及び姿勢workＰnowをベース座標系Σbaseに座標変換する際に使用することにより（ステップＳ５−８，Ｓ６−１２，Ｓ６−１３）、ポジショナ１２Ａがマニピュレータ１１とは独立して動作している状態で、マニピュレータ１１とポジショナ１２Ａを同期して動作させることができる。また、ポジショナ１２Ａをマニピュレータ１１とは独立に動作させている状態（第２又は第３のモード）と、ポジショナ１２Ａをマニピュレータ１１に従属して動作させている状態（第１のモード）とを自由に切り換えることができる。さらに、ポジショナ１２Ａに対するポジショナ用プログラム３６Ａからの指令と、ポジショナ１２Ａに対するメインプログラム３１からの指令が競合するのを防止できる。さらにまた、ポジショナ１２Ａを制御するためのポジショナ用プログラム３６Ａは、マニピュレータ１１を制御するためのメインプログラム３５と同様の手法、すなわち最終目標位置の教示や移動特性の入力等により作成可能である。
【００８８】
（第２実施形態）
図７及び図８に示す本発明の第２実施形態に係る工業用ロボットは、補助装置として１台のポジショナ１２を備え、かつ２台のマニピュレータ１１Ａ，１１Ｂを備える。制御装置３３はポジショナ用プログラム３６を実行して単一のポジショナ１２を駆動するポジショナ制御部３３に加え、別個のメインプログラム３５Ａ，３５Ｂを実行してそれぞれ対応するマニピュレータ１１Ａ，１１Ｂを制御する２つのマニピュレータ制御部３２Ａ，３２Ｂを備える。換言すれば、個々のマニピュレータ１１Ａ，１１Ｂに毎に前述の第１の演算手段（ステップＳ６−１）、第２の演算手段（ステップＳ６−２）、第１の経路算出手段（ステップＳ６−３）、座標変換手段（ステップＳ６−１３）、逆キネマティクス処理手段（ステップＳ６−１４）、及びマニピュレータ駆動手段（ステップＳ６−１６，６−１７）を備える
【００８９】
制御装置１３は、ポジショナ制御部３３がポジショナ用プログラム３６と一方のマニピュレータ１１Ａのメインプログラム３５Ａのうちのいずれを実行するか（ポジショナ用プログラム３６とメインプログラム３５Ａのうちのいずれに基づいてポジショナ１２を動作させるか）を切り換えるためのプログラム切換手段４１を備える。また、制御装置１３は、ポジショナ１２の目標関節角度Ｊｐ_nowをポジショナ制御部３３から一方のマニピュレータ１１Ａのマニピュレータ制御部３２Ａに出力するか否か（マニピュレータ制御部３２Ａがポジショナ制御部３３で算出される目標関節角度Ｊｐ_nowを参照するか否か）を切り換える参照切換手段４２を備える。これに対して、制御装置１３は他方のマニピュレータ１１Ｂ用のプログラム切換手段と参照切換手段は備えていない。
【００９０】
ポジショナ１２と一方のマニピュレータ１１Ａに着目した場合、第１実施形態と同様の制御（図５から図６Ｂ）により、前述の３種類のモードが実行可能である。まず、図７に示すように、プログラム切換手段４１をメインプログラム３５Ａ側に設定し、かつ参照切換手段４２をオフ（非参照）に設定することにより、ポジショナ制御部３３がメインプログラムを参照してポジショナ１２を駆動し、メインプログラム３５でマニピュレータ１１とポジショナ１２Ａの両方を動作させる第１のモードを実行できる。また、図８に示すように、プログラム切換手段４１をポジショナ用プログラム３６側に設定し、かつ参照切換手段４２をオン（参照）に設定することにより、メインプログラム３５Ａでマニピュレータ１１Ａを動作させる一方、ポジショナ用プログラム３６でポジショナ１２を動作させつつ、マニピュレータ１１とポジショナ１２Ａを同期して制御する第２のモードを実行できる。さらに、図８に示す状態から参照切換手段４１をオフ（非参照）に設定すれば、メインプログラム３５Ａでマニピュレータ１１Ａを動作させる一方、ポジショナ用プログラム３６でポジショナ１２を動作させ、かつポジショナ１２をマニピュレータ１１Ａに対して非同期とする第３のモードが実行可能である。
【００９１】
前述のようにポジショナ１２と一方のマニピュレータ１１Ａについて３種類のモードのいずれかを実行するのと同時に、ポジショナ１２と他方のマニピュレータ１１Ｂについては、マニピュレータ制御部３２Ｂ（メインプログラム３５Ｂ）はポジショナ制御部３３から目標関節角度Ｊｐ_nowを参照してポジショナ１２と同期するようにマニピュレータ１１Ｂを動作させる。換言すれば、マニピュレータ制御部３２Ｂは一方のマニピュレータ１１Ａのプログラム切換手段４１の設定（マニピュレータ制御部３２Ａがメインプログラム３５Ａとポジショナ用プログラム３６のいずれを参照しているか）とは無関係に、常に目標関節角度Ｊｐ_nowを参照してポジショナ１２と他方のマニピュレータ１１Ｂしている。マニピュレータ制御部３２Ｂの動作（メインプログラム３５Ｂ）は、図６Ａ，６ＢからステップＳ６−４、Ｓ６−５、Ｓ６−９〜Ｓ６−１１、Ｓ６−１５、及びＳ６−１６を除去したフローで表される。
【００９２】
このように、本発明によって１台の補助装置に対する複数台のマニピュレータの同期動作を実現できる。
【００９３】
（第３実施形態）
本発明は、第１及び第２実施形態のように補助装置がポジショナ１２〜１２Ｂである場合に限定されず、図９に示すようなマニピュレータ１１を保持して単一又は複数の軸線方向に直進移動させるスライダ２２を補助装置として備える場合にも適用できる。
【００９４】
スライダ２２は、互いに直交する方向に直進移動する３個の直動関節ＳＪ１，ＳＪ２，ＳＪ３を備え、直動関節ＳＪ１にマニピュレータ１１の台座１１ａが保持されている。スライダ２２に関し、座標軸がそれぞれ直動関節ＳＪｐ１〜ＳＪｐ３の移動方向に対応し、かつ三次元空間に固定された直交座標系（スライダ座標系）を設定する。スライダ座標系でのスライダ２２の位置及び姿勢は、関節位置Ｊｓ（Ｓｘ，Ｓｙ，Ｓｚ）で表記する。スライダ座標系の各軸の向きはベース座標系Σbaseの各軸の向きと一致している。各直動関節ＳＪｐ１〜ＳＪｐ３は、それぞれ駆動用のモータＭＯｓ１〜ＭＯＳ３と、関節位置Ｊｓを検出するための位置センサＳＥｓ１〜ＳＥｓ３を備える。ワーク１７は三次元空間に固定されている。ワーク座標系Σworkの各軸の向きは、ベース座標系Σbase及びスライダ座標系の各軸の向きと一致している。
【００９５】
教示装置１４から制御装置１３には、教示位置Ｐｔｅに加え、ワーク座標系Σbaseにおけるツール先端１６ａの移動経路と移動速度Ｖset、スライダ２２のモータＭＯｓ１〜ＭＯｓ３の限界加減速度Ａｐ等を含む制御に必要な条件が入力される。教示位置Ｐｔｅは、マニピュレータ１１の関節角度Ｊｍｔｅ（θｍｔｅ１，θｍｔｅ２，θｍｔｅ３，θｍｔｅ４，θｍｔｅ５，θｍｔｅ６）とスライダ２２の関節位置Ｊｓｔｅ（Ｓｘｔｅ，Ｓｙｔｅ，Ｓｚｔｅ）として入力される。
【００９６】
ポジショナ１２Ａの回転関節ＲＪｐ１，ＲＪｐ２、モータＭＯｐ１，ＭＯｐ２、関節角度θｐ１，θｐ２、及び角度センサＳＥｐ１，ＳＥｐ２が、スライダ２２の直動関節ＳＪ１，ＳＪ２，ＳＪ３、モータＭＯs１，ＭＯs２，ＭＯs3、関節位置Ｊｓ（Ｓｘ，Ｓｙ，Ｓｚ）、及び位置センサＳＥｓ１，ＳＥｓ２，ＳＥｓ３に置き換えられる点を除き、図５から図６Ｂのフローチャートで示す第１実施形態と同様の制御が実行される。この制御により、メインプログラムでマニピュレータ１１とスライダ２２の両方を動作させる第１のモード、メインプログラムでマニピュレータ１１を動作させる一方、スライダ２２を専用のプログラムで動作させ、かつこの専用のプログラムで算出されるスライダ２２の目標位置及び姿勢を参照することによりマニピュレータ１１とスライダ２２を同期して制御する第２のモード、及びメインプログラムでマニピュレータ１１を動作させる一方、スライダ２２を専用のプログラムで動作させて両者を非同期とする第３のモードを実行できる。
【図面の簡単な説明】
【００９７】
【図１】本発明の第１実施形態に係る工業用ロボットを示す模式図（ポジショナ１２Ａ，１２Ｂは個々のポジショナ用プログラム３６Ａ，３６Ｂによって駆動されている。）。
【図２】本発明の第１実施形態に係る工業用ロボットを示す模式図（ポジショナ１２Ａはメインプログラム３５により駆動され、ポジショナ１２Ｂはポジショナ用プログラム３６Ｂによって駆動されている）。
【図３】本発明の第１実施形態に係る工業用ロボットが備える１台のマニピュレータと２台のポジショナの機構を示す模式的な斜視図。
【図４】本発明の第１実施形態に係る工業用ロボットによるワークの加工の一例を示す模式図。
【図５】本発明の第１実施形態に係る工業用ロボットが備えるポジショナの動作を説明するためのフローチャート。
【図６Ａ】本発明の第１実施形態に係る工業用ロボットが備えるマニピュレータの動作を説明するためのフローチャート。
【図６Ｂ】本発明の第１実施形態に係る工業用ロボットが備えるマニピュレータの動作を説明するためのフローチャート。
【図７】本発明の第２実施形態に係る工業用ロボットを示す模式図（ポジショナ１２はマニピュレータ１１Ａのメインプログラム３５Ａで駆動されている。）。
【図８】本発明の第２実施形態に係る工業用ロボットを示す模式図（ポジショナ１２はポジショナ用プログラム３６によって駆動されている。）。
【図９】本発明の第３実施形態に係る工業用ロボットが備えるマニピュレータ１１とスライダ２２の機構を示す模式的な斜視図。
【図１０】マニピュレータとポジショナを備える従来の工業用ロボットを示す模式的な斜視図。
【図１１】マニピュレータとスライドを備える従来の工業用ロボットを示す模式的な斜視図。
【図１２】１台のマニピュレータと２台のポジショナの同期及び非同期について説明するための工業用ロボットの模式的な平面図。
【符号の説明】
【００９８】
１１，１１Ａ，１１Ｂ  マニピュレータ
１１ａ  台座
１２，１２Ａ，１２Ｂ  ポジショナ
１２ａ  テーブル
１３  制御装置
１４  教示装置
１６  ツール
１６ａ  ツール先端
１７  ワーク
２２  スライダ
３１  記憶部
３２，３２Ａ，３２Ｂ  マニピュレータ制御部
３３，３３Ａ，３３Ｂ  ポジショナ制御部
３５，３５Ａ，３５Ｂ  メインプログラム
３６Ａ，３６Ｂ  ポジショナ用プログラム
４１，４１Ａ，４１Ｂ  プログラム切換手段
４２Ａ，４２Ｂ  参照切換手段
【図１】
2008207274.tif 000013
【図２】
2008207274.tif 000014
【図３】
2008207274.tif 000015
【図４】
2008207274.tif 000016
【図５】
2008207274.tif 000017
【図６Ａ】
2008207274.tif 000018
【図６Ｂ】
2008207274.tif 000019
【図７】
2008207274.tif 000020
【図８】
2008207274.tif 000021
【図９】
2008207274.tif 000022
【図１０】
2008207274.tif 000023
【図１１】
2008207274.tif 000024
【図１２】
2008207274.tif 000025