(57)【要約】【課題】ワークを把持するロボットと、作業ツールを取り付けたロボットの協調動作において、補間動作中においても作業ツールに希望する位置・姿勢をとることを容易にすること。【解決手段】先導ロボット１に取り付けた作業ツール２に対して設定したツール座標系３の位置及び姿勢が、追従ロボット６の把持するワーク４に対して設定したツール座標系５の上で所望の軌跡を描くように、複数台のロボットを協調制御する。両ロボット１、６に教示を行い、再生運転時には、先導ロボット１についての補間位置データ、両ロボット１、６の相対位置データなどから、追従ロボット６についての補間位置データが算出される。手動送りの動作にも適用できる。補間位置データにフィルタリング処理を施せば軌跡が滑らかになる。【選択図】          図４
2006099474.tif 000002
【特許請求の範囲】
【請求項１】
作業ツールを取り付けたロボットと、前記作業ツールの作業対象となるワークを把持した少なくとも1台のロボットが協調して作業を行う際のロボットの軌跡制御方法において、
前記作業ツールを取り付けたロボットに対して設定されたツール座標系の位置及び姿勢が、前記ワークを把持したロボットに対して設定されたツール座標系の上で所望の軌跡を描くように、前記作業ツールを取り付けたロボットを先導ロボットとする一方、前記ワークを把持したロボットを追従ロボットとし、前記先導ロボットの位置及び姿勢の変化に応じて、前記追従ロボットの位置及び姿勢を制御することを特徴とする、ロボットの軌跡制御方法。
【請求項２】
前記先導ロボット及び前記追従ロボットの各々の作業位置を教示して教示点列を作成し、
再生運転時には、補間時間毎に前記先導ロボットの教示点におけるツール座標系の位置及び姿勢を補間して、前記補間時間での前記先導ロボットのツール座標系の補間位置及び補間姿勢を算出すると共に、
教示点における前記追従ロボットのツール座標系に対する前記先導ロボットのツール座標系の相対位置及び相対姿勢を補間して、前記補間時間での該相対位置及び相対姿勢を求め、
前記先導ロボットのツール座標系の補間位置及び補間姿勢と前記補間時間での相対位置及び相対姿勢から前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出し、
該算出された前記先導ロボット及び前記追従ロボットのツール座標系の位置及び姿勢を保つように前記先導ロボット及び前記追従ロボットの各関節を制御することを特徴とする、請求項１に記載のロボットの軌跡制御方法。
【請求項３】
前記先導ロボットの位置及び姿勢を手動送りにより変化させた時、前記追従ロボットの位置及び姿勢を前記先導ロボットとの相対位置及び相対姿勢を保つように制御することを特徴とする、請求項１に記載のロボットの軌跡制御方法。
【請求項４】
前記先導ロボットに対して設定されたツール座標系上で前記追従ロボットに対して設定されたツール座標系を所望の方向へ並進及び回転させるよう、前記追従ロボットを手動送りすることを特徴とする、請求項１に記載のロボットの軌跡制御方法。
【請求項５】
１台の先導ロボットの動作に対して、複数台の追従ロボットが追従して協調作業することを特徴とする、請求項１乃至請求項４に記載のロボットの軌跡制御方法。
【請求項６】
前記先導ロボットと前記追従ロボットの全てのロボットを、１台の制御装置により協調制御することを特徴とする、請求項１乃至請求項５に記載のロボットの軌跡制御方法。
【請求項７】
前記先導ロボットと前記追従ロボットを複数台の制御装置により制御し、各制御装置間で通信を行うことにより協調制御を行なうことを特徴とする、請求項１乃至請求項５に記載のロボットの制御方法。
【請求項８】
前記先導ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すと共に、
前記フィルタリング処理を施す前の先導ロボットのツール座標系の補間位置及び補間姿勢を表わすデータと前記補間時間での相対位置及び相対姿勢から前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出後に、前記追従ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すことを特徴とする、請求項１乃至請求項７に記載のロボットの軌跡制御方法。
【請求項９】
前記先導ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すと共に、
前記補間時間での相対位置及び相対姿勢を表わす時系列のデータにフィルタリング処理を施し、
前記フィルタリング処理を施した後の先導ロボットの補間位置及び補間姿勢と、前記フィルタリング処理を施した後の相対位置及び相対姿勢から、前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出することを特徴とする、請求項１乃至請求項７に記載のロボットの軌跡制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数台のロボットの協調動作により作業を行う際のロボットの軌跡制御方法に関し、例えば複数台のロボットの協調動作により溶接作業を行う際に、溶接トーチを取り付けたロボットと溶接作業の対象となるワークを把持したロボットとの間で所望の軌跡を実現させるための軌跡制御方法に関する。
【背景技術】
【０００２】
近年、１台のロボットでは不可能であった作業を、複数台のロボットが協調動作するように制御すること（以下、「協調制御」とも言う）によって遂行することが多くなってきている。典型的な作業例としては、溶接トーチを取り付けたロボットと溶接対象ワークを把持するロボットの協調制御により、ワーク上の所定の軌跡（溶接線に対応）に沿って溶接を行なう作業が挙げられる。このような協調制御にあたって、従来の技術、例えば下記特許文献１の方法においては、ロボットに把持されたワークに対して所定のワーク基準点を設定し、そのワーク基準点に対して別のロボットに取付けられた作業ツールの位置姿勢を定める方法が提案されている。
【０００３】
つまり、図１に示すようにワーク４を把持したロボット６が協調作業を先導し、作業ツール２を取り付けたロボット１がロボット６の動作に追従するという制御方法がとられている。  
また、下記特許文献２では、図２に示すように、ツール２を大地に対し一定の位置に固定する装置７により固定し、ツールに対して設定されたツール座標系３が、ワーク４に対して設定された座標系５の上で所望の軌跡を描くようにワーク４を把持するロボット６を制御する方法が提案されている。
【０００４】
なお、この他に、後述する本発明の第５実施形態に関連して、複数のロボット制御装置間で複数ロボットを制御する際の通信方法を記した公知文献として、下記特許文献３がある。
【０００５】
【特許文献１】特許第３０９８６１８号公報
【特許文献２】特許第２６９１９８５号公報
【特許文献３】特許第３５３８３６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかるに、上記した従来技術には以下のような問題点があった。  
先ず上記特許文献１で提案された制御方法では、各教示された点においては所望の作業ツールの位置及び姿勢をとらせることができるが、再生運転時においては、大地に対して所望の作業ツールの姿勢を保つことは非常に困難であった。これは、各教示点列間の作業ツールの補間姿勢はワークを把持するロボットの各教示点列間の補間位置及び姿勢に追従して決まってしまうためである。
【０００７】
図３はこの事情を説明する図で、（ａ）は教示点８における状態を表わし、（ｂ）は教示点８と教示点９の間の補間点における状態を表わし、（ｃ）は教示点９における状態を表わしている。教示点８（（ａ）の状態）及び教示点９（図（ｃ）の状態）においては、大地に固定された座標系（ワールド座標系）１０に対して作業ツール２を所望の姿勢に教示すること、例えばθa ＝θc とすること、は可能である。ところが、その教示点８、９間の補間動作（（ｂ）の状態）においては、作業ツール２を取り付けたロボットが追従側であるため、ワーク４と作業ツール２の相対姿勢を維持することは出来ても、大地に固定された座標系１０に対する作業ツール２の姿勢を維持するように教示を行なうことは、教示点を大幅に増やして隣り合う教示点間の間隔を非常に狭いものとしない限り、一般に困難であった。
【０００８】
言うまでもなく、教示点を大幅に増やすことは作業効率上大きな問題となるので、実際には採用し難かった。溶接作業において高い溶接品質を保つためには、大地に対する作業ツールの姿勢を一定に保つことが重要であるが、上記特許文献１で提案された制御方法はこの要求に十分に応えているとは言えない。
【０００９】
また、上記特許文献２で提案された制御方法では、確かに、作業ツールの姿勢を大地に対し一定に保ちながら、作業ツールに対し設定された座標系を、ワークに対し設定された座標系の上で所望の軌跡を描かせることは可能である。しかし、作業ツールが限られた位置及び姿勢に固定されるため、単純な形状のワークにしか対応できないという問題点があった。  
本発明の目的は、従来技術に含まれるこれらの問題点を鑑み、複数台のロボットにより協調作業を行う際に、補間動作中においても、作業ツールを取り付けたロボットの所望の位置及び姿勢をとることを容易に実現可能とするロボットの軌跡制御方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、従来の考え方を改め、ワークを把持したロボット（複数台の場合あり）と、作業ツールを取付けたロボットの協調動作によりアーク溶接等の作業を行わせるに際して、作業ツールを取り付けたロボットを先導ロボットとし、ワークを把持するロボットを追従ロボットとし、先導ロボットに対して設定されたツール座標系の位置及び姿勢が、追従ロボットに対して設定されたツール座標系に対して所望の軌跡を描くように、それらロボットを制御するロボットの軌跡制御方法を採用することで、上記課題を解決するものである。
【００１１】
この手法に導入により、隣合う教示点間の補間点においても作業ツールの位置及び姿勢を所望のものとなるように教示することが容易となる。なお、本明細書において、「先導ロボットに設定されたツール座標系」は、同先導ロボットに取り付けた作業ツールの位置、姿勢を代表する座標系で、同作業ツールに対する相対的な位置・姿勢が固定された原点と座標軸を有している。周知のように、ツール座標系の原点はツール先端点と呼ばれ、必ずしも作業ツール上になくても良い。ツール先端点を方向を持つ点と考えれば、ツール座標系の位置と姿勢（即ち、先導ロボットに取り付けられた作業ツールの位置と姿勢）を代表している。以下の説明においては、このツール座標系を「作業ツールに対して設定された座標系」とも言う。
【００１２】
一方、「追従ロボットに設定されたツール座標系」は、同追従ロボットに把持されたワークを通常のロボット学で言うところの“ツール”に見立て、その位置、姿勢を代表する座標系であり、同ワークに対する相対的な位置・姿勢が固定された原点と座標軸を有している。先導ロボットに対して設定されたツール座標系と同じく、その原点はツール先端点と呼ばれ、これを方向を持つ点と考えれば、ツール座標系の位置と姿勢（即ち、追従ロボットに把持されたワークの位置と姿勢）を代表している。以下の説明においては、このツール座標系を「ワークに対して設定された座標系」とも言う。
【００１３】
より具体的に言えば、本発明は、作業ツールを取り付けたロボットと、前記作業ツールの作業対象となるワークを把持した少なくとも１台のロボットが協調して作業を行う際のロボットの軌跡制御方法に適用される。  
そして、先ず請求項１に係る発明は、前記作業ツールを取り付けたロボットに対して設定されたツール座標系の位置及び姿勢が、前記ワークを把持したロボットに対して設定されたツール座標系の上で所望の軌跡を描くように、前記作業ツールを取り付けたロボットを先導ロボットとする一方、前記ワークを把持したロボットを追従ロボットとし、前記先導ロボットの位置及び姿勢の変化に応じて、前記追従ロボットの位置及び姿勢を制御することを特徴としている。
【００１４】
ここで、前記先導ロボット及び前記追従ロボットの各々の作業位置を教示して教示点列を作成し、再生運転時には、補間時間毎に前記先導ロボットの教示点におけるツール座標系の位置及び姿勢を補間して、前記補間時間での前記先導ロボットのツール座標系の補間位置及び補間姿勢を算出すると共に、教示点における前記追従ロボットのツール座標系に対する前記先導ロボットのツール座標系の相対位置及び相対姿勢を補間して、前記補間時間での該相対位置及び相対姿勢を求め、前記先導ロボットのツール座標系の補間位置及び補間姿勢と前記補間時間での相対位置及び相対姿勢から前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出し、該算出された前記先導ロボット及び前記追従ロボットのツール座標系の位置及び姿勢を保つように前記先導ロボット及び前記追従ロボットの各関節を制御することができる（請求項２）。
【００１５】
また、前記先導ロボットの位置及び姿勢を手動送りにより変化させた時、前記追従ロボットの位置及び姿勢を前記先導ロボットとの相対位置及び相対姿勢を保つように制御することもできる（請求項３）。  
更に、前記先導ロボットに対して設定されたツール座標系上で前記追従ロボットに対して設定されたツール座標系を所望の方向へ並進及び回転させるよう、前記追従ロボットを手動送りすることができる（請求項４）。  
これらいずれの発明においても、１台の先導ロボット（作業ツールを取り付けたロボット）の動作に対して、複数台の追従ロボット（ワークを把持するロボット）が追従して協調作業を行なうようにすることが可能である（請求項５）。
【００１６】
制御装置の使用台数に関しては、前記先導ロボットと前記追従ロボットの全てのロボットを、１台の制御装置により協調制御することができるが（請求項６）、前記先導ロボットと前記追従ロボットを複数台の制御装置により制御しても良い。後者の場合、各制御装置間で通信を行うことにより協調制御を行なうようにすることができる（請求項７）。
【００１７】
協調動作による軌跡制御についてフィルタリング処理による円滑化の手法を適用しても良い。例えば、請求項８で規定しているように、前記先導ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すと共に、前記フィルタリング処理を施す前の先導ロボットのツール座標系の補間位置及び補間姿勢を表わすデータと前記補間時間での相対位置及び相対姿勢から前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出後に、前記追従ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すことができる。
【００１８】
また、請求項９で規定しているように、前記先導ロボットのツール座標系の補間位置及び補間姿勢を表わす時系列のデータにフィルタリング処理を施すと共に、前記補間時間での相対位置及び相対姿勢を表わす時系列のデータにフィルタリング処理を施し、前記フィルタリング処理を施した後の先導ロボットの補間位置及び補間姿勢と、前記フィルタリング処理を施した後の相対位置及び相対姿勢から、前記追従ロボットのツール座標系の補間位置及び補間姿勢を算出することもできる。
【発明の効果】
【００１９】
本発明に係るロボットの軌跡制御方法によれば、作業ツールを取り付けたロボットを先導ロボット、ワークを把持するロボットを追従ロボットとして、動作補間時間単位で作業ツールの位置及び姿勢を所望のものとしながら、なおかつ、ワークに対して固定された座標系の上で、作業ツールに関して固定座標系が所望の軌跡を描くよう協調動作が実現可能となる。  
また、本発明によれば以下の特有の効果を期待できる。
（１） 本発明を溶接作業に適用した場合、溶接トーチの位置及び姿勢を教示に困難を伴うことなく所望のものに合わせることができ、溶接の高品質化が期待できる。  
（２）本発明によれば、作業ツールに対して設定された座標系とワークに対して設定された座標系との相対位置及び相対姿勢を動作補間時間単位で算出するため、動作中常に相対位置及び姿勢を所望の軌跡で制御することが出来る。  
（３）本発明によれば、先導ロボットと追従ロボットの相対位置及び相対姿勢を保ちつつ先導ロボットを手動送りすること、及び先導ロボットのツールに対して設定された座標系上でワークに対して設定された座標系を任意の方向に並進及び回転させるよう手動送りすることが可能になる。そのため、手動送りで複数台のロボットを操作する際の操作性が向上する。
（４）先導ロボットに対し複数のロボットを追従制御することにより、より多様な作業を行うことが出来るようになる。  
（５）協調作業する各ロボットを制御する制御装置は、複数台であっても良いし、１台であっても良い。従って、制御装置が１台であればシステムの装置コストを低減することができ、複数台とすれば、既存の独立した制御装置を協調制御システムに転用することが可能である。
【発明を実施するための最良の形態】
【００２０】
以下、図４〜図１７を順次参照して本発明に従ったいくつかの実施形態について説明する。なお、先導ロボットに取り付けられる作業ツール（適宜、単に“ツール”ともいう）はアーク溶接用の溶接トーチ（適宜、単に“トーチ”ともいう）であるとして説明するが、作業の種類に応じて他の作業ツール（例えばレーザ加工ヘッド、シーリングガン等）に置き換えることももちろん可能である。
【００２１】
先ず、図４は第１の実施形態で採用されるシステムの概略構成を表わしている。システムは、作業ツール２として溶接トーチを取り付けた６自由度を有する多関節ロボット１と、溶接対象となるワーク４を把持する６自由度を有する多関節ロボット６と、ロボット１及びロボット６を制御するための制御装置１１を含んでいる。制御装置１１には教示作業を行うための教示操作盤１２が接続される。
【００２２】
また、ロボットの軌跡を制御するために用いられる座標系として、ツール２を取り付けたロボット１の位置の基準となり、ロボット１の設置位置によって一意的に決まる基準座標系（ロボット１のベースに固定された座標系）１３と、ワーク４を把持するロボット６の位置の基準となり、ロボット６の設置位置によって一意的に決まる基準座標系（ロボット６のベースに固定された座標系）１４と、ツール２に対して設定され、ツール２とともに移動する座標系（ロボット１のツール先端点の位置と姿勢を表わす座標系）３と、ワーク４に対して設定され、ワーク４とともに移動する座標系（ワーク４をロボット６の“ツール”に見立てて設定されたツール座標系で、ロボット６のツール先端点の位置と姿勢を表わす）５が定義される。なお、符号１０で示された座標系は、大地に対して固定された座標系（ワールド座標系）である。
【００２３】
図５は、ロボット制御装置１１及びロボット機構部２５の構成を示す。なお、ロボット機構部２５はロボット１とロボット６の機構部をまとめて簡略描示したもので、各ロボットのサーボモータが１軸分づつ例示されている。  
ロボット制御装置１１は、中央演算処理装置（以下ＣＰＵという）１５を有している。ＣＰＵ１５にはバス２０を介して、ＲＯＭからなるメモリ１６、ＲＡＭからなるメモリ１７、不揮発性メモリ１８、外部装置用の入出力装置１９、教示操作盤１２のためのインターフェイス２１、サーボ制御部２３とＣＰＵ１５の共有メモリ２２が接続されている。ＲＯＭ１６にはロボット制御装置１１自身を含むシステム全体を制御するプログラムが格納される。ＲＡＭ１７はＣＰＵ１５が行う処理のためのデータの一時記憶に使用される。不揮発性メモリ１８には、後述する動作文を含むロボット１、６の動作プログラムデータ、システム各部の動作に関連した諸設定値等が格納される。
【００２４】
また、サーボ制御部２３は、ロボット機構部２５の各アーム（ロボット１の各アームとロボット６の各アーム）２７の関節部に取り付けられた各モータ２６の位置情報を各モータに取り付けられた各センサ（パルスエンコーダ）２８から取得し、ＣＰＵ１５において生成される動作指令とセンサ２８からのフィードバックデータに基づいて、各モータ２６の動作をサーボアンプ２４を介して制御する。
【００２５】
次に、図６のフローチャートに従って、ロボットの設置及び設定について説明する。ステップＳ１０１において、図４中のツール２を取り付けるロボット１とワーク４を把持するロボット６を準備（用意）し、ステップＳ１０２で、前記ツール２により前記ワーク４に対して作業が行える距離にこれらのロボットを設置する。ロボットを設置すると、前述の各ロボットの基準座標系１３及び１４の位置及び姿勢が大地に対して一定に定まる。
【００２６】
続くステップＳ１０３において、協調して作業するロボットの主従関係を設定する。既述の通り、本発明の特徴に従い、ツール２を取り付けたロボット１が協調作業における先導ロボット、ツール２の作業対象となるワーク４を把持するロボット６が協調作業における追従ロボットとなる。この主従関係を設定し、図５中の不揮発性メモリ１８に記憶しておく。更に、ステップＳ１０４において、図４中のロボット１及び６の相対位置関係をキャリブレーションによって求める。
【００２７】
このようなキャリブレーション自体は周知である。即ち、従来から行われているように、キャリブレーションをしようとする２台のロボットの手首にキャリブレーション用の棒を取り付け、その先端がツールセンタポイントとなるように設定した後、同一直線上にない空間上の３点（３点を頂点とする三角形となる）で、前記キャリブレーション用の棒の先端を合わせ、それぞれのロボットの基準座標系でその位置を求める。
【００２８】
そして、求められた先導ロボット１の基準座標系１３上の３つの位置データと、追従ロボット６の基準座標系１４上の３つの位置データから、ロボット６の基準座標系１４に対するロボット１の基準座標系１３の相対位置及び相対姿勢が算出される。これを図５の不揮発性メモリ１８に同次座標系変換行列［BASE_XF］として格納する。行列［BASE_XF］の行列要素を記せば（式１）のようになる。ここで、ｌx 〜ｌz に夫々上付添字base_xf を付したものが、基準座標系１４に対する基準座標系１３の相対位置を表わしている。また、ｎx 〜ｎz 、ｏx 〜ｏz 、ａx 〜ａz に夫々上付添字base_xf を付したものが、基準座標系１４に対する基準座標系１３の相対姿勢を表わしている。
【００２９】
【数１】
2006099474.tif 000003
次に、教示作業について作業の流れを図７に示したフローチャートに従って説明する。先ず、ステップＳ２０１において、これから作成する動作プログラムの名前を決定する。決定した動作プログラム名は図５中の不揮発性メモリ１８に記憶される。次いで、ステップＳ２０２で各教示点に付加されるインデックスが初期化される。そして、ステップＳ２０３において、図４中のツール２を取り付けたロボット１を、教示操作盤１２の操作による手動送りで動作させ、ツール２が所望の位置及び姿勢となるようロボット１を位置決めする。
【００３０】
続くステップＳ２０４では、ステップＳ３にて位置決めしたツール２に対し、図４中の作業対象であるワーク４が所望の位置及び姿勢となるよう、ロボット６を教示操作盤１２の操作による手動送りで動作させ、ロボット６を位置決めする。ステップＳ２０５において、図４中のツール２を取り付けたロボット１とワーク４を把持するロボット６が所望の位置に位置決めされているか確認し、所望の位置であればステップＳ２０６へと進む。所望の位置でなければステップＳ２０３へ戻り、位置の修正を行う。ステップＳ２０６において、第ｋ番目（ｋ＝１、２・・・）の教示点を記憶する。
【００３１】
この時、図５中の不揮発性メモリ１８に記憶されるデータについて図８を用いて説明する。図８中、（ａ）は第ｋ番目の教示点についての描示、（ｂ）は第ｋ＋１番目の教示点についての描示である。  
先ず、第ｋ番目の教示点２９の記憶作業により、第ｋ番目の教示点におけるツール２に対して設定した座標系３の、ツール２を取り付けたロボットの基準座標系１３に対する同次座標系変換行列［ＲＬ（ｋ）］は下記（式２）となる。ここで、ｌ(k)x〜ｌ(k)zに夫々上付添字RLを付したものは、基準座標系１３上で表わした座標系３の位置であり、ｎ(k)x〜ｎ(k)z、ｏ(k)x〜ｏ(k)z、ａ(k)x〜ａ(k)zに夫々上付添字RLを付したものが、基準座標系１３上で表わした座標系３の姿勢である。言うまでもなく、これらはロボット１の現在位置データから求められる。
【００３２】
また、第ｋ番目の教示点における、ワーク４に対して設定した座標系５の、ワーク４を把持するロボットの基準座標系１４に対する同次座標系変換行列［ＲＦ（ｋ）］は下記（式３）で表わされる。ここで、（式３）中の各行列要素は、（式２）の場合と同様、ロボット６の現在位置データから求められる。
【００３３】
【数２】
2006099474.tif 000004
更に、（式１）〜（式３）を用いると、第ｋ番目の教示点における、ツール２に対して設定した座標系３の、ワーク４に対して設定した座標系５に対する同次座標系変換行列［Ｔ（ｋ）］が下記（式４）により算出できる。（式４）の右辺を（式５）で表わす。
【００３４】
【数３】
2006099474.tif 000005
このようにして、ステップＳ２０６における第ｋ番目の教示点の記憶操作により、図５中の不揮発性メモリ１８に、先導ロボットの位置及び姿勢データ、及び先導ロボットと追従ロボットの相対位置及び相対姿勢データが、動作プログラム中に教示点のインデックスｋに対応付けられて記憶される。続くステップＳ２０７で、前記教示点へ向かう際の動作形式と速度を指定する。動作形式には、教示した点が協調動作を要する点であることを示すデータも付加する。動作形式及び動作速度のデータも図５中の不揮発性メモリ１８に、教示点のインデックスｋに対応付けられて記憶される。
【００３５】
更に、ステップＳ２０８において、教示点の追加が必要であるかを判断し、教示点の追加が必要であれば、インデックスｋ＋１の教示点に対し、ステップＳ２０３からの作業を繰り返す。これにより、図８中、第（ｋ＋１）番目の教示点３０に対して、上記（式２）、（式３）、（式５）に対応する行列［ＲＬ（ｋ）］、［ＲＦ（ｋ）］、［Ｔ（ｋ）］が算出され、図５中の不揮発性メモリ１８に［ＲＬ（ｋ）］、［Ｔ（ｋ）］、が記憶される。  
以上述べたステップＳ２０３からステップＳ２０８までを必要な教示点数分だけ繰り返し、ステップＳ２０８において、教示点の追加が必要でないと判断された時点で教示作業は終了となる。
【００３６】
次に、再生動作時の処理の流れを図９に示したフローチャートに従って説明する。  
先ず、ステップＳ３０１において、指定した動作プログラム（ここでは、上記の教示したプログラム）を図５中の不揮発性メモリ１８から読み出し、ステップＳ３０２で、読み出されたプログラムの先頭から１行ずつプログラム行を読み出していく。  
ステップＳ３０３において、プログラム行が存在しなければ、その時点でプログラムの再生は終了となり、行が存在すればステップＳ３０４へと進む。ステップＳ３０４において、読み出された行が動作文であるか否かを判定し、動作文であればステップＳ３０６以降へと進む。動作文でなければステップＳ３０５によりロジック処理を実行し、次の行の読み出しのためステップＳ３０２へ戻る。
【００３７】
続くステップＳ３０６では、経路計画を行なうが、経路計画の方法については、図１０に示したフローチャートを用いて説明する。先ず、ステップＳ４０１において、当該行にプログラムされている先導ロボットの教示目標位置から移動開始位置（現在位置）を減じて、先導ロボットの移動距離を算出する。ここで、プログラムされた教示目標位置とは、前述の教示作業において記録された（図７中のステップＳ２０６において記録された）先導ロボットの位置のことである。
【００３８】
次に、ステップＳ４０２において、ステップＳ４０１で算出された先導ロボットの移動距離をプログラムされた動作速度で除して先導ロボットの移動時間を算出する。ここで、プログラムされた動作速度とは、前述の教示作業において記録された（図７中のステップＳ２０７において記録された）先導ロボットの指令動作速度のことである。  
さて、読み出したプログラムの動作文が協調動作であった場合、追従ロボットの教示目標位置は先導ロボットとの相対位置として記憶されている。そこで、ステップＳ４０４において、先導ロボットの教示目標位置と教示されている相対位置から追従ロボットの教示目標位置を算出する。算出には前述の（式４）を用いれば良い。  
動作文が協調動作でない場合は、２台目のロボットの教示目標位置が記録されているのでステップＳ４０４は不要である。
【００３９】
更に、ステップＳ４０５及びＳ４０６において、先導ロボットの時と同様にして追従ロボットの移動時間を算出する。即ち、追従ロボットの教示目標位置から移動開始位置（現在位置）を減じて、追従ロボットの移動距離を算出し、算出された追従ロボットの移動距離をプログラムされた動作速度で除して追従ロボットの移動時間を算出する。なお、協調動作でない場合は、ステップＳ４０５及びＳ４０６の代わりに、ステップＳ４０７及びＳ４０８となるが計算方法は同じである。
【００４０】
ここで、２台のロボットの同期を取るために、移動時間を合わせる処理が行われる。ステップＳ４０９において、２台のロボットの移動時間が同じと判定されると、その値を最終的な移動時間とする。２台のロボットの移動時間が異なる時は、ステップＳ４１０において、２台のロボットの移動時間のうち、長い方を最終的な移動時間とする。経路計画の最後に、ステップＳ４１１において、算出された移動時間を計算周期（動作補間単位時間のことであり、通常は数ｍｓに設定される；ＩＴＰと呼ばれる）で除して動作補間点数を算出する。以上が経路計画の実施方法である。
【００４１】
ここで、再生動作時の処理の流れ（フローチャート図９）に戻る。ステップＳ３０６において前述の経路計画が行われると、ステップＳ３０７において現在の補間点を示す変数ｉが初期化される。ステップＳ３０８で現在までの補間点数が経路計画で算出された補間点数に達していなければステップＳ３０９以降の動作補間の処理が行われる。
【００４２】
ステップＳ３０９で行う動作補間の方法については、図１１のフローチャートを参照する。先ず、ステップＳ５０１において、経路計画のステップＳ４０１で求めた先導ロボットの移動距離を補間点数で除した値に現在の補間点数のインデックスｉに１を加算した値（ｉ＋１）を乗じた値を、当該行における先導ロボットの移動開始位置に加算して先導ロボットの補間位置データを算出する。
【００４３】
次に、ステップＳ５０２において協調動作であるか否かを判断し、協調動作であればステップＳ５０３において、先導ロボットと追従ロボットの相対位置に対してステップＳ５０１と同様にして補間した相対位置データを算出する。協調動作でない場合は、ステップＳ５０３は不要である。最後にステップＳ５０４において、前記の先導ロボットの補間位置データ及び補間した相対位置データから追従ロボットの補間位置データを算出する。補間位置データは、処理周期（ＩＴＰ）毎に時系列で出力されるが、それに対してフィルタリング処理（スムージング処理）を施してからサーボ制御部へ渡すことで、両ロボットの軌跡の滑らかさを確保することができる。
【００４４】
フィルタリング処理自体は種々の方式が周知であるが、ここでは２つのフィルタリング方式（第１及び第２のフィルタリング方式）を考える。先ず、第１のフィルタリング方式を採用する場合には、ステップＳ５０４において、先導ロボットと追従ロボットの前記算出された補間位置データに対してフィルタリング処理を施す。
【００４５】
また、第２のフィルタ方式を用いる場合については、図１２に示したフローチャートを用いて簡単に説明する。先ず、第１のフィルタリング方式を用いる場合と比較して、ステップＳ６０１において、先導ロボットの補間位置データに対してフィルタリング処理を施し、更にステップＳ６０３において相対位置データに対してフィルタリング処理を施す。そして、これら夫々フィルタリング処理を施された先導ロボットの補間位置データと、補間相対位置データを用いて、ステップＳ６０４において追従ロボットの補間位置データを算出する。従って、第２のフィルタリング方式のフローチャート（図１２）には、第１のフィルタ方式のフローチャート図１１中のステップＳ５０５に相当するステップは不要となる。
動作補間が終わると図９のステップＳ３１０において、先導ロボットと追従ロボットの各補間位置データに基づいて第ｉ補間点におけるロボットアーム各軸の移動量（前回の補間点からの移動量）を求め、サーボ制御部へ指令（ステップＳ３１１）し、現在の補間点数を示すインデックスに１を加算（ステップＳ３１２）する。
【００４６】
以上、ステップＳ３０９からＳ３１２までが１動作補間時間内に行われる処理であり、補間点数分だけこれを繰り返し、動作プログラム中の該当行に関する動作補間が終了する。動作補間終了後は、ステップＳ３０２に戻り、プログラム中の次の行の読み出しを行い、プログラムの終了行に到達するまでステップＳ３０２からＳ３１２を繰り返し、プログラムの終了行に到達したならば、プログラム再生終了となる。  
以上が本発明の第１の実施形態に関する説明である。以下、第１の実施形態の変形に相当する第２〜第５実施形態について説明する。なお、第１の実施形態と共通する要素については共通した符号で指示し、共通する事項については、繰り返し説明を省略する。  
本発明の第２の実施形態では、手動送りによる動作について述べる。ここでは、図１３において、ツール２を取り付けた先導ロボット１のツール２に対して設定された座標系３を、先導ロボット１の基準座標系１３に対して手動送りにより直交動作させることを考える。
【００４７】
このような手動送りに対応させて、追従ロボット６が把持するワーク４に対して設定された座標系５が、ツール２に対して設定された座標系３との相対位置及び相対姿勢を保つように、追従ロボット６を制御することができる。本実施形態における制御は、先導ロボット１についての移動指令が教示されたプログラムではなく、教示操作盤１２からの指令に基づくものである点を除けば、基本的にはプログラムの再生動作と変わるところは無く、処理の流れの概要は、図１４のフローチャートのようになる。
【００４８】
手動送りの場合、教示操作盤１２の手動送り釦の押下によりロボットが動作する。ステップＳ７０１において、教示操作盤の手動送り釦が押されているか否かを判定し、釦が押されている場合、釦の押下時間及び指定した手動送りの方向に応じて経路計画（ステップＳ７０２）がなされる。ステップＳ７０５の動作補間は前述の図１１中のステップＳ５０３または図１２中のステップＳ６０３において相対位置データが常に一定に保たれるように行われる。
【００４９】
本発明の第３の実施形態では、図１５に示したように、ツール２を取り付けた先導ロボット１のツール２に対して設定された座標系３上で、追従ロボット６が把持するワーク４に対して設定された座標系５を、手動送りにより所望の方向へ並進（方向１）及び回転（方向２）させるよう、追従ロボット６を制御する。追従ロボット６の動作の基準となる座標系が先導ロボット１に取り付けたツール２に対して設定されていることが本実施形態の特徴である。本実施形態における処理のフローは図１４に示したものと同じである。但し、ステップＳ７０５の動作補間は前述の図１１中のステップＳ５０３または図１２中のステップＳ６０３において、手動送り釦により指定された動作方向から相対位置データが算出される。
【００５０】
本発明の第４の実施形態は、第１の実施形態において、図１６に示したように、協調作業における追従側のロボット６を複数台にしたものである。これらロボットは全て１台のロボット制御装置１１で制御される。本実施形態における諸事項は、先導ロボット１と追従ロボット６の設置関係のキャリブレーション、教示作業、再生処理において追従ロボットに関する処理が複数台分になることを除けば、第１の実施形態と同様である。
最後に、本発明の第５の実施形態は、第１乃至第４の実施形態において、図１７に示したように、先導ロボット１と追従ロボット６を複数台の制御装置１１で制御するようにし、各制御装置１１間で通信を行うことにより、同期をとって協調して制御するようにしたものである。通信の方法としては、例えば特許第３５３８３６２号公報にある方法を用いれば良い。
【図面の簡単な説明】
【００５１】
【図１】ロボット２台の協調動作による溶接作業について、従来技術による方法の一例を説明する図である。
【図２】ロボット２台の協調動作による溶接作業について、従来技術による方法の別の例を説明する図である。
【図３】従来技術による協調制御において大地に対する作業ツールの姿勢を保つことが困難であることを説明する図で、（ａ）は教示点８における状態を表わし、（ｂ）は教示点８と教示点９の間の補間点における状態を表わし、（ｃ）は教示点９における状態を表わしている。
【図４】本発明の第１の実施形態で採用されるシステムの概略構成図である。
【図５】ロボット制御装置及びロボット機構部のブロック図である。
【図６】ロボットの設置及び設定作業の手順の概要を記したフローチャートである。
【図７】教示作業時の手順の概要を記したフローチャートである。
【図８】教示作業について説明する図で、（ａ）は第ｋ番目の教示点についての描示、（ｂ）は第ｋ＋１番目の教示点についての描示である。
【図９】再生動作時の処理について説明するフローチャートである。
【図１０】再生動作時の経路計画について説明するフローチャートである。
【図１１】再生動作時の動作補間において、第１のフィルタリング方式を採用した場合の処理の概要を説明するフローチャートである。
【図１２】再生動作時の動作補間において、第２のフィルタリング方式を採用した場合の処理の概要を説明するフローチャートである。
【図１３】本発明の第２の実施形態について説明する図である。
【図１４】手動送りの際の処理の概要を説明するフローチャートである。
【図１５】本発明の第３の実施形態について説明する図である。
【図１６】本発明の第４の実施形態について説明する図である。
【図１７】本発明の第５の実施形態について説明する図である。
【符号の説明】
【００５２】
１  作業ツールを取り付けたロボット
２  作業ツール
３  作業ツールを取り付けたロボットに対して設定されたツール座標系
４  ワーク（作業ツールの作業対象）
５  ワークを把持するロボットに対して設定されたツール座標系
６  ワークを把持するロボット
７  大地に対しツールを固定する装置
８  教示位置１
９  教示位置２
１０  大地に対して設定された座標系
１１  ロボット制御装置
１２  教示操作盤
１３  ツールを取り付けたロボットの基準座標系
１４  ワークを把持したロボットの基準座標系
１５  中央演算処理装置（ＣＰＵ）
１６  ＲＯＭ
１７  ＲＡＭ
１８  不揮発性メモリ
１９  入出力装置（I/O）
２０  バス
２１  教示操作盤インターフェイス
２２  中央演算処理装置とサーボ制御部の共有メモリ
２３  サーボ制御部
２４  サーボアンプ
２５  ロボット機構部
２６  ロボットの各アームを駆動するためのモータ
２７  ロボットアーム
２８  各モータの位置情報を得るためのセンサ
２９  第k番目の教示点
３０  第(k+１)番目の教示点
[RL]  ツールに対して設定した座標系の、ツールを取り付けたロボットの基準座標系に対する座標変換行列
[RF]  ワークに対して設定した座標系の、ワークを把持するロボットの基準座標系に対する座標変換行列
[BASE_XF]  ツールを取り付けたロボットの基準座標系の、ワークを把持するロボットの基準座標系に対する座標変換行列
[T]    ツールに対して設定した座標系の、ワークに対して設定した座標系に対する座標変換行列
【図１】
2006099474.tif 000006
【図２】
2006099474.tif 000007
【図３】
2006099474.tif 000008
【図４】
2006099474.tif 000009
【図５】
2006099474.tif 000010
【図６】
2006099474.tif 000011
【図７】
2006099474.tif 000012
【図８】
2006099474.tif 000013
【図９】
2006099474.tif 000014
【図１０】
2006099474.tif 000015
【図１１】
2006099474.tif 000016
【図１２】
2006099474.tif 000017
【図１３】
2006099474.tif 000018
【図１４】
2006099474.tif 000019
【図１５】
2006099474.tif 000020
【図１６】
2006099474.tif 000021
【図１７】
2006099474.tif 000022