(57)【特許請求の範囲】
【請求項１】
マスタロボットと第１のスレーブロボットとの位置関係を表す第１の変換行列を生成し、前記第１の変換行列を前記マスタロボットに記憶する第１のステップと、
前記第１のスレーブロボットと第２のスレーブロボットとの位置関係を表す第２の変換行列を生成し、前記第２の変換行列を前記マスタロボットに記憶する第２のステップと、
前記マスタロボットは、前記第１の変換行列を用いて求めた第１の指令に基づいて、前記第１のスレーブロボットの動作を指示する第３のステップと、
前記マスタロボットは、前記第１の変換行列および前記第２の変換行列を用いて求めた第２の指令に基づいて、前記第２のスレーブロボットの動作を指示する第４のステップと、
前記第１のスレーブロボットおよび前記第２のスレーブロボットは、前記マスタロボットと協調して動作する第５のステップと、を備えたロボットシステムの制御方法。
【請求項２】
前記第１のステップでは、前記マスタロボットのＴＣＰと前記第１のスレーブロボットのＴＣＰとを、３箇所の異なる位置において一致させることで前記第１の変換行列を生成する請求項１に記載のロボットシステムの制御方法。
【請求項３】
前記第２のステップでは、前記第１のスレーブロボットのＴＣＰと前記第２のスレーブロボットのＴＣＰとを、３箇所の異なる位置において一致させることで前記第２の変換行列を生成する請求項１または２に記載のロボットシステムの制御方法。
【請求項４】
前記マスタロボットと前記第２のスレーブロボットとは、前記マスタロボットのＴＣＰと前記第２のスレーブロボットのＴＣＰとを一致させることができないように離れて配置されている請求項３に記載のロボットシステムの制御方法。
【請求項５】
前記第５のステップでは、前記マスタロボットと前記第１のスレーブロボットと前記第２のスレーブロボットとは、軌跡に沿うように制御される補間制御を繰り返すように動作する請求項１〜４のいずれかに記載のロボットシステムの制御方法。
【請求項６】
前記マスタロボットおよび前記第２のスレーブロボットは溶接作業を行い、前記第１の
スレーブロボットはワークを保持する請求項１〜５のいずれかに記載のロボットシステムの制御方法。
【請求項７】
第１の記憶部と、第２の記憶部と、第１の演算部とを有するマスタロボットと、
前記マスタロボットに接続された第１のスレーブロボットと、
前記マスタロボットに接続された第２のスレーブロボットとを備え、
前記第１の記憶部は、前記マスタロボットと前記第１のスレーブロボットとの位置関係を表す第１の変換行列を記憶し、
前記第２の記憶部は、前記第１のスレーブロボットと前記第２のスレーブロボットとの位置関係を表す第２の変換行列を記憶し、
前記第１の演算部は、前記第１の変換行列を用いて第１の指令を求め、前記第１のスレーブロボットの動作を指示し、
前記第１の演算部は、前記第１の変換行列および前記第２の変換行列を用いて第２の指令を求め、前記第２のスレーブロボットの動作を指示し、
前記第１のスレーブロボットおよび前記第２のスレーブロボットは、前記マスタロボットと協調して動作するロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、産業用ロボット等を用いたロボットシステムの制御方法およびロボットシステムに関し、特に、複数のロボットが協調して作業を行うロボットシステムに関する。
【背景技術】
【０００２】
近年、ロボットシステムには、多種多様で、かつ、複雑なワークへの作業が求められている。特に、ロボットシステムには、多品種少量生産への適用や、ロボットを含む設備の数や設置面積の抑制が求められている。そのため、ワークごとに固有の治具を用いず、作業用ツールを把持するロボットと、ワークを把持するロボットとを協調して動作させる（以下、協調動作という）ロボットシステムが導入されている。
【０００３】
図９は、２台のロボットを用いた従来のロボットシステムの一例を示す図である。図９において、ロボットＤは、作業ツール３１を把持しているマスタロボットである。ロボットＥは、ハンドリング装置３４を把持しているスレーブロボットである。ロボットＤは、ロボットＥがハンドリング装置３４で把持しているワークＷに対して、ロボットＥと協調して作業を行う。以下、作業ツールを把持しているロボットを「作業ロボット」、ハンドリング装置を把持しているロボットを「ハンドリングロボット」とする。また、スレーブロボットに動作を指示するロボットを「マスタロボット」、マスタロボットの指示に従って動作するロボットを「スレーブロボット」とする。
【０００４】
作業ロボットであるロボットＤとハンドリングロボットであるロボットＥとを協調動作させるためには、ロボットＤのロボット座標系ΣｄとロボットＥのロボット座標系Σｅとの位置関係を示す変換行列ＴＤＥが必要である。ロボットＤおよびロボットＥはそれぞれ、制御点であるツールセンターポイント（以下、ＴＣＰ）を有しており、従来は、ロボットＤのＴＣＰとロボットＥのＴＣＰを、一直線上ではない３点で一致させることで、変換行列ＴＤＥを算出していた。この作業を「ＴＣＰ位置合わせ」という。ロボットＥが把持するワークは、ロボットＥのロボット座標系Σｅで示されるため、変換行列ＴＤＥにより、協調動作時には、ロボットＤを、ロボットＥのＴＣＰを座標原点とするワーク座標系Σｗによって示される軌跡や速度で、動作させることができる。
【０００５】
このロボットシステムに、さらに作業ロボットＦを追加し、より効率よく作業させるためには、追加した作業ロボットＦと既存のロボットＤおよびロボットＥと間での変換行列ＴＤＦおよび変換行列ＴＥＦを新たに生成し、それぞれのロボットが自らに関係する変換行列を制御装置に記憶する必要がある。
【０００６】
この問題を解決するための方法の１つとして、以下のものが知られている。１台のマスタロボットが複数台のスレーブロボットそれぞれとＴＣＰ位置合わせを行い、スレーブロボットの台数分の変換行列を生成し、制御装置に記憶する。このとき、スレーブロボット同士でのＴＣＰ位置合わせを行う必要はない。自動運転時には、マスタロボットは、マスタロボットの教示点や補間点の位置データを複数台のスレーブロボットに送信する。複数台のスレーブロボットそれぞれは、マスタロボットから送信された教示点や補間点の位置データに基づき、スレーブロボット自身のプログラムの教示点または補間点を補正する。これにより、３台以上のロボットを協調して動作させる（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１５０３７２号公報
【発明の概要】
【０００８】
特許文献１に記載されている方法を用いる場合、マスタロボットのＴＣＰを、複数台のスレーブロボットのＴＣＰと、位置合わせをする必要がある。しかし、ロボットシステムを構成する複数台のロボットの配置により、作業ロボット同士のＴＣＰ位置合わせが困難な場合もある。この場合、全ての作業ロボットとＴＣＰの位置合わせが行えるハンドリングロボットをマスタロボットにしなければならない。しかし、ロボットシステムの稼働中に作業者が最も頻繁に使用するロボットはマスタロボットであり、教示作業といったロボットシステムの準備段階で作業者が最も頻繁に使用するロボットは作業ロボットである。ハンドリングロボットがマスタロボットであると、作業者は、ロボットシステムの準備段階と稼働中で、操作するロボットを変更しなければならず、作業効率が悪かった。
【０００９】
本開示は、上記課題に鑑み、３台以上のロボットを使用する場合でも、作業効率が良いロボットシステムの制御方法およびロボットシステムを提供する。
【００１０】
上記課題を解決するために、本開示のロボットシステムの制御方法は、第１のステップ〜第５のステップを有する。第１のステップでは、マスタロボットと第１のスレーブロボットとの位置関係を表す第１の変換行列を生成し、第１の変換行列をマスタロボットに記憶する。第２のステップでは、第１のスレーブロボットと第２のスレーブロボットとの位置関係を表す第２の変換行列を生成し、第２の変換行列をマスタロボットに記憶する。第３のステップでは、マスタロボットは、第１の変換行列を用いて求めた第１の指令に基づいて、第１のスレーブロボットの動作を指示する。第４のステップでは、マスタロボットは、第１の変換行列および第２の変換行列を用いて求めた第２の指令に基づいて、第２のスレーブロボットの動作を指示する。第５のステップでは、第１のスレーブロボットおよび第２のスレーブロボットは、マスタロボットと協調して動作する。
【００１１】
また、本開示のロボットシステムは、マスタロボットと、第１のスレーブロボットと、第２のスレーブロボットとを有する。マスタロボットは、第１の記憶部と、第２の記憶部と、第１の演算部とを有する。第１のスレーブロボットおよび第２のスレーブロボットは、マスタロボットに接続されている。第１の記憶部は、マスタロボットと第１のスレーブロボットとの位置関係を表す第１の変換行列を記憶する。第２の記憶部は、第１のスレーブロボットと第２のスレーブロボットとの位置関係を表す第２の変換行列を記憶する。第１の演算部は、第１の変換行列を用いて第１の指令を求め、第１のスレーブロボットの動作を指示する。第１の演算部は、第１の変換行列および第２の変換行列を用いて第２の指令を求め、第２のスレーブロボットの動作を指示する。第１のスレーブロボットおよび第２のスレーブロボットは、マスタロボットと協調して動作する。
【００１２】
以上のように、本開示によれば、他のロボット全てとはＴＣＰ位置合わせが行えない作業ロボットを、マスタロボットとし、全てのロボットを協調動作することが可能となる。これにより、作業者の作業効率を向上できる。
【図面の簡単な説明】
【００１３】
【図１】図１は、本開示の実施の形態１におけるロボットシステムの概略構成を示す図である。
【図２】図２は、本開示の実施の形態１における制御装置間の接続の概要を示す図である。
【図３】図３は、本開示の実施の形態１における変換行列を生成するためのＴＣＰ位置合わせを説明する図である。
【図４】図４は、本開示の実施の形態１における目標位置命令の構成を示す図である。
【図５】図５は、本開示の実施の形態１におけるプログラム実行処理のフローチャートである。
【図６】図６は、本開示の実施の形態１における各ロボットの座標系を説明するための図である。
【図７】図７は、本開示の実施の形態１における補間制御処理のフローチャートである。
【図８】図８は、本開示の実施の形態１におけるシステムの構成を説明するための図である。
【図９】図９は、従来のロボットシステムを示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について、図１から図８を用いて説明する。
【００１５】
（実施の形態１）
図１は、本実施の形態における、３台のロボットを協調動作させることで溶接作業を行うロボットシステムを示す図である。このロボットシステムにおいて、ロボットＡ（マスタロボット）とロボットＢ（第２のスレーブロボット）とは、溶接作業を行う作業ロボットであり、ロボットＣ（第１のスレーブロボット）は、ワークを把持するハンドリングロボットである。
【００１６】
ロボットＡは、マニピュレータ１０Ａ、溶接トーチ１１Ａ、溶接ワイヤ送給装置１２Ａ、溶接ワイヤ１３Ａ、溶接機１４Ａ、制御装置１６Ａを有する。溶接機１４Ａは、溶接トーチ１１Ａに電気的に接続され、溶接電流や溶接電圧を制御している。また、溶接機１４Ａは、溶接ワイヤ送給装置１２Ａに電気的に接続され、溶接ワイヤ１３Ａの送給速度を制御する。
【００１７】
ロボットＢは、マニピュレータ１０Ｂ、溶接トーチ１１Ｂ、溶接ワイヤ送給装置１２Ｂ、溶接ワイヤ１３Ｂ、溶接機１４Ｂ、制御装置１６Ｂを有する。溶接機１４Ｂは、溶接トーチ１１Ｂに電気的に接続され、溶接電流や溶接電圧を制御している。また、溶接機１４Ｂは、溶接ワイヤ送給装置１２Ｂに電気的に接続され、溶接ワイヤ１３Ｂの送給速度を制御する。
【００１８】
ロボットＣは、マニピュレータ１０Ｃ、ハンドリング装置１５Ｃ、制御装置１６Ｃを有し、ハンドリング装置１５Ｃによって、ワークＷを把持することが可能である。
【００１９】
また、ロボットＡは制御装置１６Ａによって制御され、ロボットＢは制御装置１６Ｂによって制御されている。より具体的には、制御装置１６Ａ、１６Ｂは、溶接電圧、溶接電流、ワイヤ送給速度といった溶接条件を溶接機１４Ａ、１４Ｂに指示すると共に、マニピュレータ１０Ａ、１０Ｂの動きを指示する。ロボットＡ、Ｂは、この指示を実行することで、ワークＷに溶接作業を行う。ロボットＣは、制御装置１６Ｃによって制御されている。より具体的には、制御装置１６Ｃは、ハンドリング装置１５Ｃのハンドの開閉をハンドリング装置１５Ｃに指示すると共に、マニピュレータ１０Ｃの動きを指示する。ロボットＣは、この指示を実行することで、ハンドリング装置１５Ｃのハンドの開閉を行い、ワークＷの保持、手放し、移動を行う。
【００２０】
本実施の形態のロボットシステムでは、ロボットＡをマスタロボットとし、ロボットＢとロボットＣをスレーブロボットとして動作させる。マスタロボットは、スレーブロボットに対して、協調動作を行わせるための通信を行う。そのため、制御装置１６Ａと制御装置１６Ｂとを、光ファイバケーブル１７ＡＢによって接続している。また、制御装置１６Ａと制御装置１６Ｃとを、光ファイバケーブル１７ＡＣによって接続している。
【００２１】
なお、本実施の形態のロボットシステムでは、制御装置間をつなぐ通信線として、電気ノイズに強い光ファイバケーブルを用いている。しかし、通信線としては、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やシリアル通信などのケーブルを用いても構わないし、通信線を用いない無線通信であっても構わない。
【００２２】
また、制御装置１６Ａ、１６Ｂ、１６Ｃそれぞれは、入力装置であるティーチペンダント１８Ａ、１８Ｂ、１８Ｃに接続される。作業者は、ティーチペンダントを用いて、ロボットの操作や、マスタモードとスレーブモードとのモード切り替えなどを制御装置に設定する。ティーチペンダント１８Ａ、１８Ｂ、１８Ｃは、ロボット操作部（図示せず）、スレーブロボットの状態とマスタロボットの状態とを切り替えるモード切替部（図示せず）、溶接電流やワイヤ送給速度といった各種データを表示するデータ表示部（図示せず）、各種データを設定するデータ設定部（図示せず）等を有している。
【００２３】
図２は、制御装置１６Ａ、１６Ｂ、１６Ｃの構成を示している。
【００２４】
マスタロボットであるロボットＡの制御装置１６Ａは、演算部２０Ａと、教示データ記憶部２１Ａと、マニピュレータ制御部２２Ａと、溶接条件指令部２３Ａと、通信部２４Ａと、スレーブロボット通信部２５ＡＢ、２５ＡＣと、キャリブレーションポイント記憶部２６ＡＣ、２６ＢＣと、変換行列記憶部２７ＡＣ（第１の記憶部）、２７ＢＣ（第２の記憶部）を有する。
【００２５】
演算部２０Ａは、様々な内部演算等を行うＣＰＵや、メモリなどで構成される。教示データ記憶部２１Ａは、自動運転時にプレイバック動作させるために教示されたデータを記憶する。マニピュレータ制御部２２Ａは、演算部２０Ａで演算された結果に基づいてマニピュレータ１０Ａを制御する。溶接条件指令部２３Ａは、溶接機１４Ａに溶接電流などの溶接条件を指令する。通信部２４Ａは、ティーチペンダント１８Ａとの通信を行う。スレーブロボット通信部２５ＡＢは、スレーブロボットであるロボットＢへの動作指令や溶接指令を送信すると共に、ロボットＢからの情報を受信する。スレーブロボット通信部２５ＡＣは、スレーブロボットであるロボットＣへの動作指令やハンドリング指令を送信すると共に、ロボットＣからの情報を受信する。ロボットＡからロボットＢへの指示を第２の指令、ロボットＡからロボットＣへの指示を第１の指令とする。キャリブレーションポイント記憶部２６ＡＣは、ロボットＡとロボットＣとの協調動作に必要となる、それぞれのロボットのＴＣＰ位置とＴＣＰ方向ベクトルを記憶する。変換行列記憶部２７ＡＣは、キャリブレーションポイント記憶部２６ＡＣのデータから計算されるロボットＡとロボットＣとの変換行列ＴＣＡ（第１の変換行列）を記憶する。キャリブレーションポイント記憶部２６ＢＣは、ロボットＢとロボットＣとの協調動作に必要となる、それぞれのロボットのＴＣＰ位置とＴＣＰ方向ベクトルを記憶する。変換行列記憶部２７ＢＣは、キャリブレーションポイント記憶部２６ＢＣのデータから計算されるロボットＢとロボットＣとの変換行列ＴＣＢ（第２の変換行列）を記憶する。
【００２６】
一方、スレーブロボットであるロボットＢの制御装置１６Ｂは、演算部２０Ｂと、マニピュレータ制御部２２Ｂと、溶接条件指令部２３Ｂと、通信部２４Ｂと、マスタロボット通信部２５ＢＡを有する。演算部２０Ｂ、マニピュレータ制御部２２Ｂ、溶接条件指令部２３Ｂ、通信部２４Ｂなどは制御装置１６Ａと同様の機能である。また、マスタロボット通信部２５ＢＡは、本実施の形態においては、マスタロボットであるロボットＡからの動作指令や溶接指令を受信し、ロボットＢの情報を送信する。しかし、マスタロボット通信部２５ＢＡが送受信するデータの内容はロボットＢの役割によって異なっていても構わず、また、ロボットＢがマスタロボットとして機能することができるように、制御装置１６Ｂは制御装置１６Ａと同様の構成であっても構わない。
【００２７】
一方、スレーブロボットであるロボットＣの制御装置１６Ｃは、演算部２０Ｃと、マニピュレータ制御部２２Ｃと、ハンドリング指令部２６Ｃと、通信部２４Ｃと、マスタロボット通信部２５ＣＡを有する。演算部２０Ｃ、マニピュレータ制御部２２Ｃ、通信部２４Ｃなどは制御装置１６Ａと同様の機能である。また、マスタロボット通信部２５ＣＡは、本実施の形態においては、マスタロボットであるロボットＡからの動作指令やハンドリング指令を受信し、ロボットＣの情報を送信する。しかし、マスタロボット通信部２５ＣＡが送受信するデータの内容はロボットＣの役割によって異なっていても構わず、また、ロボットＣがマスタロボットとして機能することができるように、制御装置１６Ｃは制御装置１６Ａと同様の構成であっても構わない。
【００２８】
本実施の形態において、マスタロボットであるロボットＡの制御装置１６Ａは、教示データ記憶部２１Ａに、ロボットＡとロボットＢとロボットＣが１つの組となった教示点を記憶している。教示データ記憶部２１Ａに記憶されているデータは、プレイバック動作時に演算部２０Ａによって読み出される。演算部２０Ａでは、各ロボットの動作量を算出し、ロボットＡの動作と溶接は、マニピュレータ制御部２２Ａと溶接条件指令部２３Ａを介して制御される。
【００２９】
また、スレーブロボットであるロボットＢの動作と溶接は、スレーブロボット通信部２５ＡＢを介して、制御装置１６Ａから制御装置１６Ｂに送信された指令によって制御される。具体的には、制御装置１６Ｂは、マスタロボット通信部２５ＢＡで受信した制御装置１６Ａからの指令を演算部２０Ｂにより処理する。そして、ロボットＢの動作と溶接は、マニピュレータ制御部２２Ｂおよび溶接条件指令部２３Ｂを介して制御される。また、制御装置１６Ｂは、現在のロボットＢの姿勢や溶接出力状態などの情報を、マスタロボット通信部２５ＢＡを介して、制御装置１６Ａに送信する。
【００３０】
同様に、スレーブロボットであるロボットＣの動作とハンドリングは、スレーブロボット通信部２５ＡＣを介して、制御装置１６Ａから制御装置１６Ｃに送信された指令によって制御される。具体的には、マスタロボット通信部２５ＣＡで受信した制御装置１６Ａからの指令を演算部２０Ｃにより処理する。そして、ロボットＣの動作とハンドリングは、マニピュレータ制御部２２Ｃおよびハンドリング指令部２６Ｃを介して制御される。また、制御装置１６Ｃは、現在のロボットＣの姿勢やハンドリング装置１５Ｃの出力状態などの情報を、マスタロボット通信部２５ＣＡを介して、制御装置１６Ａに送信する。
【００３１】
上記構成により、溶接機を有する２台のロボットと、ハンドリング装置を有する１台のロボットを同時に制御できる。
【００３２】
次に、ロボットＡ〜Ｃが協調動作するために必要となる変換行列を生成する方法について説明する。変換行列とは、異なる２つの座標系の関係を示すもので、これにより、一方の座標系で示された位置ベクトルをもう一方の座標系で示される位置ベクトルに変換することができる。本実施の形態においては、作業ロボットであるロボットＡとロボットＢが、ハンドリングロボットであるロボットＣに協調して動作する必要がある。従って、変換行列を生成するためには、ロボットＡとロボットＣの位置関係と、ロボットＢとロボットＣの位置関係とが必要となる。
【００３３】
始めに、ロボットＡとロボットＣの変換行列ＴＣＡを生成する方法について、図３を用いて説明する。図３に示すように、ロボットＡのマニピュレータ１０Ａの先端に取り付けられた溶接トーチ１１Ａに教示用チップＣ１を取り付ける。そして、ロボットＡの手首先端（マニピュレータ１０Ａの先端）から教示用チップＣ１の先端までのオフセットを正しく設定しておく。このようにすることで、教示用チップＣ１の先端がロボットＡのＴＣＰとなる。なお、ＴＣＰとは、ロボットの制御点である。
【００３４】
また、ロボットＣは、マニピュレータ１０Ｃの先端に取り付けられたハンドリング装置１５Ｃの一部を基準点とし、ロボットＣの手首先端（マニピュレータ１０Ｃの先端）から基準点までのオフセット値を正しく設定しておく。例えば、ハンドリング装置１５Ｃの両ハンドの先端の中心を基準値とする。なお、ハンドリング装置１５Ｃに適切な基準点をとることができない場合は、図３に示すように、ハンドリング装置１５Ｃを取り外し、基準点を確実にとれる治具Ｃ２をロボットＣのマニピュレータ１０Ｃの先端に取り付けてもよい。いずれかの方法で設けられた基準点がロボットＣのＴＣＰとなる。
【００３５】
次に、作業者がティーチペンダント１８Ｃを操作し、制御装置１６Ｃをスレーブロボットのモードに切り替える。そして、マスタロボットであるロボットＡのティーチペンダント１８Ａを用いて、作業者がマスタロボットであるロボットＡおよびスレーブロボットであるロボットＣの両方を操作する。そして、図３に示すように、ロボットＡのＴＣＰとロボットＣのＴＣＰとを、両ＴＣＰの方向ベクトルを変更しない状態で、同一直線上にない空間上の３点（Ｐ１、Ｐ２、Ｐ３）で一致させる。
【００３６】
このとき、３点に関して、ロボットＡ、Ｃの基準点を原点とするロボット座標系Σａ、Σｃにおける、それぞれのロボットのＴＣＰ位置とＴＣＰ方向ベクトルをキャリブレーションポイント記憶部２６ＡＣに記憶する。そして、求められたロボットＡの３つのＴＣＰ位置データおよび方向ベクトルデータと、ロボットＣの３つのＴＣＰ位置データおよび方向ベクトルデータとから、ロボットＣのロボット座標系ΣｃからロボットＡのロボット座標系Σａへの変換行列ＴＣＡを演算部２０Ａで計算によって求めることができる。変換行列ＴＣＡは、変換行列記憶部２７ＡＣに記憶される。
【００３７】
次に、ロボットＢとロボットＣとの変換行列ＴＣＢを生成する方法について説明する。基本的には、前述のロボットＡとロボットＣとの間で変換行列ＴＣＡを求める方法と同様である。先ず、ロボットＢのマニピュレータ１０Ｂの先端に取り付けられた溶接トーチ１１Ｂに、教示用チップＣ１を取り付ける。そして、ロボットＢの手首先端（マニピュレータ１０Ｂの先端）から教示用チップＣ１の先端までのオフセットを正しく設定しておく。このようにすることで、教示用チップＣ１の先端がロボットＢのＴＣＰとなる。
【００３８】
次に、作業者がティーチペンダント１８Ｂとティーチペンダント１８Ｃを操作し、制御装置１６Ｂと制御装置１６Ｃとをスレーブロボットのモードに切り替える。そして、作業者がマスタロボットであるロボットＡのティーチペンダント１８Ａを用いて、スレーブロボットであるロボットＢおよびロボットＣの両方を操作する。そして、ロボットＡとロボットＣの変換行列を求めた時と同様に、ロボットＢのＴＣＰとロボットＣのＴＣＰとを、両ＴＣＰの方向ベクトルを変更しない状態で、同一直線上にない空間上の３点で合わせる。
【００３９】
このとき、３点に関して、ロボットＢ、Ｃの基準点を原点とするロボット座標系Σｂ、Σｃにおける、それぞれのロボットのＴＣＰ位置とＴＣＰ方向ベクトルをキャリブレーションポイント記憶部２６ＢＣに記憶する。そして、求められたロボットＢの３つのＴＣＰ位置データおよび方向ベクトルデータと、ロボットＣの３つのＴＣＰ位置データおよび方向ベクトルデータとから、ロボットＣのロボット座標系ΣｃからロボットＢのロボット座標系Σｂへの変換行列ＴＣＢを演算部２０Ａで計算によって求めることができる。変換行列ＴＣＢは、変換行列記憶部２７ＢＣに記憶される。
【００４０】
これら変換行列ＴＣＡと変換行列ＴＣＢを用いることで、ロボットＡとロボットＢのＴＣＰを、ロボットＣのマニピュレータ１０Ｃの先端を座標原点としたワーク座標系Σｗで表すことが可能となる。そして、ロボットＡおよびロボットＢのＴＣＰを、ワーク座標系Σｗで示される速度や軌跡で、ロボットＣと協調動作させることが可能となり、複雑なワークを溶接するのに適している。
【００４１】
次に、上記構成を用いて、３台のロボットを協調して動作させる方法の詳細について、図面を参照して説明する。
【００４２】
演算部２０Ａは、教示データ記憶部２１ＡからロボットＡ〜Ｃを協調して動作させる動作プログラムを呼び出す。そして、演算部２０Ａは、動作プログラムで示される作業手順に従って、ロボットＡ〜Ｃへの指示やロボットＡ〜Ｃから集められた情報の処理などを行う。動作プログラムは、協調動作において特徴的な命令である目標位置命令を含んだ、さまざまな命令から構成されている。目標位置命令には、図４に示すように、ロボットＡ〜Ｃのマニピュレータ１０Ａ〜１０Ｃを構成する各軸の目標角度と動作速度（回転速度）、２点間をＴＣＰに直線動作させるか曲線動作させるか、複数のロボットでの協調動作をさせるかさせないか、などのマニピュレータの動作に関する指令が記録されている。
【００４３】
図５に、演算部２０Ａが動作プログラムを処理するときのフローチャートを示す。演算部２０Ａは、教示データ記憶部２１Ａから動作プログラムを読み出し、動作プログラムの命令が目標位置命令かどうかを判別する。そして、図５では、協調動作を行う目標位置命令を読み出したときの処理について、詳しく説明する。
【００４４】
演算部２０Ａは、読み出した命令が目標位置命令であれば、ロボットＡ〜Ｃの現在のＴＣＰ位置と現在のＴＣＰの方向ベクトルを表す、「現在位置ベクトルＳｎｉ（ｉ＝ａ，ｂ，ｃ）」と、目標位置命令に記載されたマニピュレータの各軸の角度から計算されるロボットＡ〜Ｃの目標となるＴＣＰ位置と目標となるＴＣＰの方向ベクトルを表す「目標位置ベクトルＳｒｉ（ｉ＝ａ，ｂ，ｃ）」を計算する。この現在位置ベクトルと目標位置ベクトルを算出する工程をＳＴＥＰ１とする。
【００４５】
ロボットＡのＴＣＰの現在位置ベクトルＳｎａは、ロボットＡのロボット座標系が３次元であり、各次元についてのロボットＡのＴＣＰの位置および角度を示すため、６つのパラメータで表される。例えば、図６に示すように、現在位置ベクトルＳｎａは、ロボットＡのロボット座標系Σａでは、（Ｘａｎ，Ｙａｎ，Ｚａｎ，Ｕａｎ，Ｖａｎ，Ｗａｎ）とあらわされる。同じように、ロボットＢおよびロボットＣについても、現在位置ベクトルＳｎｂや現在位置ベクトルＳｎｃがそれぞれのロボットのロボット座標系Σｂ、Σｃにおいて６つのパラメータで示される。ロボットＡの目標位置ベクトルＳｒａ、ロボットＢの目標位置ベクトルＳｒｂ、ロボットＣの目標位置ベクトルＳｒｃについても、それぞれのロボットのロボット座標系Σａ、Σｂ、Σｃにおいて６つのパラメータで示される。
【００４６】
次に、既に求めてあり、変換行列記憶部２７ＡＣに記憶されている変換行列ＴＣＡを用いて、ロボットＡの現在位置ベクトルＳｎａおよび目標位置ベクトルＳｒａを変換する。変換行列ＴＣＡによって、ロボットＡのロボット座標系Σａを、ワーク座標系Σｗにまで変換することができる。これにより、ロボットＡの現在位置ベクトルＳｎａおよび目標位置ベクトルＳｒａは、それぞれ、ワーク座標系Σｗでの変換現在位置ベクトルＳｗｎａおよび変換目標位置ベクトルＳｗｒａに変換される。同様に、変換行列記憶部２７ＢＣに記憶されている変換行列ＴＣＢを用いて、ロボットＢの現在位置ベクトルＳｎｂおよび目標位置ベクトルＳｒｂを変換する。変換行列ＴＣＢによって、ロボットＢのロボット座標系Σｂを、ワーク座標系Σｗにまで変換することができる。これにより、ロボットＢの現在位置ベクトルＳｎｂおよび目標位置ベクトルＳｒｂは、それぞれ、ワーク座標系Σｗでの変換現在位置ベクトルＳｗｎｂおよび変換目標位置ベクトルＳｗｒｂに変換される。なお、ロボットＣのロボット座標系Σｃとワーク座標系ΣｗとはすでにロボットＣのＴＣＰにおいて関連付けられているため、変換は不要である。この変換現在位置ベクトルと変換目標位置ベクトルを算出する工程をＳＴＥＰ２とする。
【００４７】
次に、変換現在位置ベクトルＳｗｎａから変換目標位置ベクトルＳｗｒａへ指定した速度でロボットＡのＴＣＰを動作させるための補間分割数Ｎを算出する。補間分割数Ｎを算出する工程をＳＴＥＰ３とする。
【００４８】
通常、ロボットは、固定の補間時間Ｔｓ毎に各軸の角度を制御しており（以下、補間制御とする）、この補間制御を繰り返すことで、指定された動作を完了するものである。補間制御により、ロボットは動作の軌跡に沿うように制御される。そのため、指定された速度で動作するためには、何回の補間制御を繰り返すことで、現在位置ベクトルＳｎａ、Ｓｎｂ、Ｓｎｃから目標位置ベクトルＳｒａ、Ｓｒｂ、ＳｒｃまでのＴＣＰの動作を完了できるかを算出する必要がある。本実施の形態では、マスタロボットであるロボットＡのＴＣＰが現在位置ベクトルＳｎａから目標位置ベクトルＳｒａまで直線で動作する動きを基準として補間制御の回数を算出する。補間分割数Ｎは次の計算式で求めることができる。
【００４９】
Ｎ＝（Ｓｗｒａ−Ｓｗｎａ）÷動作速度÷Ｔｓ
なお、基準となるロボットは、マスタロボットであるロボットＡではなく、スレーブロボットであるロボットＢであっても構わない。その場合は、ＳｗｎａおよびＳｗｒａを、ＳｗｎｂおよびＳｗｒｂに置き換えるだけでよい。スレーブロボットであるロボットＣについても、ロボットＢと同様である。
【００５０】
補間分割数Ｎが求まった後は、補間制御の繰り返し処理となる。補間制御の繰り返し処理をＳＴＥＰ４とする。すなわち、補間制御をＮ回繰り返すことで、ロボットＡ〜ＣのＴＣＰそれぞれについて、現在位置ベクトルから目標位置ベクトルまでの移動が行われ、目標位置命令が完了される。
【００５１】
以上のように、制御装置１６Ａは、１つの目標位置命令を完了すると、次命令の有無を判断し、次命令がある場合は、次命令を読み出して実行する。次命令が目標位置命令であれば、ＳＴＥＰ１〜４を再度実行する。そして、次命令がなくなると、動作プログラムが完了される。
【００５２】
ここで、ＳＴＥＰ４の補間制御について、図７を用いて詳細に説明する。
【００５３】
補間制御の繰り返しをするには、１回の補間制御について、図７に示すように、軌跡制御の元となるワーク座標系Σｗでの変換目標位置ベクトルを算出する。ロボットＡおよびロボットＢに関しては、ワーク座標系Σｗでの軌跡を算出するため、ワーク座標系Σｗでの変換現在位置ベクトルＳｗｎａ、Ｓｗｎｂと変換目標位置ベクトルＳｗｒａ、Ｓｗｒｂを用いた計算を行う。ロボットＡにおいて、補間制御繰り返しのうちのｊ回目の補間制御の変換軌跡目標位置ベクトルＳｗａｊは次のように求めることができる。
【００５４】
Ｓｗａｊ＝Ｓｗｒａ−（Ｓｗｒａ−Ｓｗｎａ）×（Ｎ−ｊ）÷Ｎ    （式１）
同様に、ロボットＢにおいて、ｊ回目の補間制御の変換軌跡目標位置ベクトルＳｗｂｊは次のように求めることができる。
【００５５】
Ｓｗｂｊ＝Ｓｗｒｂ−（Ｓｗｒｂ−Ｓｗｎｂ）×（Ｎ−ｊ）÷Ｎ    （式２）
（式１）と（式２）は、補間開始時のロボットＡおよびＢの変換現在位置ベクトルＳｗｎａおよびＳｗｎｂから、補間制御回数を重ねるごとにロボットＡおよびＢの変換目標位置ベクトルＳｗｒａおよびＳｗｒｂに向かっていくことを示している。そして（式１）と（式２）は、最後のＮ回目の補間制御を完了すると、ロボットＡおよびＢのＴＣＰがそれぞれの変換目標位置ベクトルＳｗｒａおよびＳｗｒｂに到着することを意味している。
【００５６】
一方、ロボットＣにおいては、ワーク座標系Σｗを基準とした動作を行わないため、ロボットＣのロボット座標系Σｃでの軌跡目標位置ベクトルＳｃｊを次式で求める。
【００５７】
Ｓｃｊ＝Ｓｒｃ−（Ｓｒｃ−Ｓｎｃ）×（Ｎ−ｊ）÷Ｎ    （式３）
これは、ロボットＣのＴＣＰは、ロボットＣのロボット座標系Σｃにおいて、Ｎ回の補間制御を完了するとロボットＣの目標位置ベクトルＳｒｃに到着することを意味している。この変換軌跡目標位置ベクトルを算出する工程をＳＴＥＰ４−１とする。
【００５８】
ロボットＡ、Ｂについて、ワーク座標系Σｗでの変換軌跡目標位置ベクトルＳｗａｊ、Ｓｗｂｊを算出すると、次に、ロボット座標系Σａ、Σｂでの軌跡目標位置ベクトルＳａｊ、Ｓｂｊへの変換を行う。ＳＴＥＰ４−１で算出したロボットＡの変換軌跡目標位置ベクトルＳｗａｊ、ロボットＢの変換軌跡目標位置ベクトルＳｗｂｊは、ワーク座標系Σｗでの値である。そして、ワーク座標系Σｗは、ロボットＣのロボット座標系Σｃを関連付けられている。そのため、変換軌跡目標位置ベクトルＳｗａｊ、Ｓｗｂｊは、変換行列ＴＣＡおよび変換行列ＴＣＢなどから、ロボット座標系Σａ、Σｂでの軌跡目標位置ベクトルＳａｊ、Ｓｂｊに変換できる。この軌跡目標位置ベクトルを算出する工程をＳＴＥＰ４−２とする。
【００５９】
ロボット座標系Σａ、Σｂ、Σｃでの軌跡目標位置ベクトルＳａｊ、Ｓｂｊ、Ｓｃｊを算出すると、次に、軌跡目標位置ベクトルＳａｊ、Ｓｂｊ、Ｓｃｊからマニピュレータ１０Ａ、１０Ｂ、１０Ｃの各軸の角度への変換が行なわれる。この変換は、一般的に用いられる逆運動学を演算することで行われ、この変換工程をＳＴＥＰ４−３とする。
【００６０】
それぞれの軸角度への変換が完了した後、モータ駆動の加減速の調整などが行なわれ、制御装置１６ＡからロボットＡ〜Ｃへ動作指令が行われる。この動作指令をＳＴＥＰ４−４とする。
【００６１】
ロボットＡに関しては、制御装置１６Ａの演算部２０Ａで計算されたマニピュレータ１０Ａの各軸の目標角度がマニピュレータ制御部２２Ａに指令される。マニピュレータ制御部２２Ａは、補間時間Ｔｓで目標角度に到達するようにマニピュレータ１０Ａのモータの制御を行う。
【００６２】
ロボットＢには、制御装置１６Ａの演算部２０Ａで計算されたマニピュレータ１０Ｂの各軸の目標角度が、スレーブロボット通信部２５ＡＢを通じて、制御装置１６Ｂの演算部２０Ｂに送信される。演算部２０Ｂは、受信したマニピュレータ１０Ｂの軸角度をマニピュレータ制御部２２Ｂに指令する。マニピュレータ制御部２２Ｂは、補間時間Ｔｓで目標角度に到達するようにマニピュレータ１０Ｂのモータの制御を行う。
【００６３】
ロボットＣに関しても、ロボットＢと同様に、マスタロボットであるロボットＡの制御装置１６Ａからの指令に基づき、ロボットＣがマニピュレータ１０Ｃのモータの制御を行う。
【００６４】
この補間制御をＮ回繰り返すことで、ロボットＡ〜Ｃを変換現在位置ベクトルＳｗｎａ、Ｓｗｎｂ、Ｓｎｃから、変換軌跡目標位置ベクトルＳｗａｊ、Ｓｗｂｊ、Ｓｃｊを経由して、変換目標位置ベクトルＳｗｒａ、Ｓｗｒｂ、Ｓｒｃに到達させる。これは、ロボットＡ、Ｂについては、現在位置ベクトルＳｎａ、Ｓｎｂから軌跡目標位置ベクトルＳａｊ、Ｓｂｊを経由して目標位置ベクトルＳｒａ、Ｓｒｂに到達させていることになる。
【００６５】
以上が、補間制御に関する説明である。次に、本実施の形態の作用について説明する。
【００６６】
本実施の形態では、１台のマスタロボット（ロボットＡ）に２台のスレーブロボット（ロボットＢ、Ｃ）を接続している。そして、マスタロボットであるロボットＡの制御装置１６Ａは、ハンドリングロボットである第１のスレーブロボット（ロボットＣ）とマスタロボット（ロボットＡ）との変換行列ＴＣＡだけでなく、第２のスレーブロボット（ロボットＢ）と第１のスレーブロボット（ロボットＣ）との変換行列ＴＣＢも記憶している。また、３台のロボットＡ〜Ｃのマニピュレータ１０Ａ，１０Ｂ，１０Ｃの各軸の目標角度を記憶した動作プログラムが一括して処理されることで、３台のロボットＡ〜Ｃの同期をスムーズに行なうことができ、高い精度で協調動作を行うことも可能である。
【００６７】
ここで、スレーブロボット同士の変換行列を、マスタロボットに記憶させる利点について、図８を用いて説明する。図８は、ワークを把持するハンドリングロボットに対して、両サイドから、２台の作業ロボットが溶接作業を行うロボットシステムを示している。このロボットシステムにおいて、１台のマスタロボットが２台のスレーブロボットとの変換行列を生成するためには、１台のマスタロボットは、２台のスレーブロボットそれぞれと、前述のＴＣＰ位置合わせが必要となる。しかし、ロボットＡとＢの配置間隔が大きいといったロボットシステムの構成によっては、マスタロボットである溶接ロボットとスレーブロボットである溶接ロボットとのＴＣＰ位置合わせが、不可能な場合がある。なお、スレーブロボットであるハンドリングロボットは、マスタロボットである溶接ロボットおよびスレーブロボットである溶接ロボットの両方とＴＣＰ位置合わせが可能な位置に配置されている。
【００６８】
この場合、ハンドリングロボットをマスタロボットとし、２台の溶接ロボットとの変換行列を生成することは可能である。しかし、マスタロボットは、作業者が最も頻繁に使用するロボットが好ましく、具体的作業を伴う溶接ロボットは、作業条件の変更などを行なう頻度が多い。従って、マスタロボットは、溶接ロボットであることが望ましい。
【００６９】
図８のようにロボットが配置されたロボットシステムであっても、本実施の形態の制御方法を用いると、スレーブロボット同士でＴＣＰ位置合わせによって生成された変換行列をマスタロボットが記憶する。そのため、スレーブロボットとＴＣＰ位置合わせを直接行うことができないロボットをマスタロボットとして協調動作をさせることが可能となる。
【００７０】
このように、本実施の形態を用いることで、より自由度の高い協調動作を行うことができ、３台以上のロボットを有するロボットシステムを構築できる。
【００７１】
なお、上記では、２台の溶接ロボットと１台のハンドリングロボットとが協調動作する例を示した。しかし、溶接ロボットは３台以上でも構わない。その場合は、本実施の形態と同様に、スレーブロボット同士の変換行列の生成を複数回行なうことで、協調動作を実現できる。
【００７２】
なお、本実施の形態では、現在位置ベクトルから目標位置ベクトルまで単純にワーク座標系Σｗを直線で動作する例を示した。しかし、現在位置ベクトルから目標位置ベクトルに向かう軌跡は、円弧状など任意の形状も可能である。
【００７３】
なお、本実施の形態では、具体的作業として溶接作業の例を示した。しかし、溶接だけでなく、塗装や搬送などの作業も可能である。
【産業上の利用可能性】
【００７４】
本開示によれば、３台以上のロボットを高い自由度で協調動作させることができ、例えば１台のハンドリングロボットが把持したワークに複数台の溶接ロボットが協調動作をしながら溶接を行うロボットシステムおよびその制御方法として産業上有用である。
【符号の説明】
【００７５】
Ａ，Ｂ，Ｃ，Ｄ，Ｅ    ロボット
１０Ａ，１０Ｂ，１０Ｃ    マニピュレータ
１１Ａ，１１Ｂ    溶接トーチ
１２Ａ，１２Ｂ    溶接ワイヤ送給装置
１３Ａ，１３Ｂ    溶接ワイヤ
１４Ａ，１４Ｂ    溶接機
１５Ｃ，３４    ハンドリング装置
１６Ａ，１６Ｂ，１６Ｃ    制御装置
１７ＡＢ，１７ＡＣ    光ファイバケーブル
１８Ａ，１８Ｂ，１８Ｃ    ティーチペンダント
２０Ａ，２０Ｂ，２０Ｃ    演算部
２１Ａ    教示データ記憶部
２２Ａ，２２Ｂ，２２Ｃ    マニピュレータ制御部
２３Ａ，２３Ｂ    溶接条件指令部
２４Ａ，２４Ｂ，２４Ｃ    通信部
２５ＡＢ，２５ＡＣ    スレーブロボット通信部
２５ＢＡ，２５ＣＡ    マスタロボット通信部
２６Ｃ    ハンドリング指令部
２６ＡＣ，２６ＢＣ    キャリブレーションポイント記憶部
２７ＡＣ，２７ＢＣ    変換行列記憶部
Ｓｎａ，Ｓｎｂ，Ｓｎｃ    現在位置ベクトル
Ｓｗｎａ，Ｓｗｎｂ    変換現在位置ベクトル
Ｓｒａ，Ｓｒｂ，Ｓｒｃ    目標位置ベクトル
Ｓｗｒａ，Ｓｗｒｂ    変換目標位置ベクトル
Ｓｗａｊ，Ｓｗｂｊ    変換軌跡目標位置ベクトル
Ｓａｊ，Ｓｂｊ，Ｓｃｊ    軌跡目標位置ベクトル
【図１】
0006010776.tif 000002
【図２】
0006010776.tif 000003
【図３】
0006010776.tif 000004
【図４】
0006010776.tif 000005
【図５】
0006010776.tif 000006
【図６】
0006010776.tif 000007
【図７】
0006010776.tif 000008
【図８】
0006010776.tif 000009
【図９】
0006010776.tif 000010