ロボットシステムの制御方法およびロボットシステム

申请号 JP2015506605 申请日 2014-03-17 公开(公告)号 JPWO2014148032A1 公开(公告)日 2017-02-16
申请人 パナソニックIpマネジメント株式会社; 发明人 嵩宙 小松; 嵩宙 小松; 池田 達也; 達也 池田;
摘要 本開示のロボットシステムの制御方法は、第1のステップ〜第5のステップを有する。特に、第2のステップでは、第1のスレーブロボットと第2のスレーブロボットとの 位置 関係を表す第2の変換行列を生成し、第2の変換行列をマスタロボットに記憶する。第4のステップでは、マスタロボットは、第1の変換行列および第2の変換行列を用いて求めた第2の指令に基づいて、第2のスレーブロボットの動作を指示する。第5のステップでは、第1のスレーブロボットおよび第2のスレーブロボットは、マスタロボットと協調して動作する。これにより、他のロボット全てとはTCP位置合わせが行えない作業ロボットを、マスタロボットとし、全てのロボットを協調動作することが可能となる。
权利要求

マスタロボットと第1のスレーブロボットとの位置関係を表す第1の変換行列を生成し、前記第1の変換行列を前記マスタロボットに記憶する第1のステップと、 前記第1のスレーブロボットと第2のスレーブロボットとの位置関係を表す第2の変換行列を生成し、前記第2の変換行列を前記マスタロボットに記憶する第2のステップと、 前記マスタロボットは、前記第1の変換行列を用いて求めた第1の指令に基づいて、前記第1のスレーブロボットの動作を指示する第3のステップと、 前記マスタロボットは、前記第1の変換行列および前記第2の変換行列を用いて求めた第2の指令に基づいて、前記第2のスレーブロボットの動作を指示する第4のステップと、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作する第5のステップと、を備えたロボットシステムの制御方法。前記第1のステップでは、前記マスタロボットのTCPと前記第1のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第1の変換行列を生成する請求項1に記載のロボットシステムの制御方法。前記第2のステップでは、前記第1のスレーブロボットのTCPと前記第2のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第1の変換行列を生成する請求項1または2に記載のロボットシステムの制御方法。前記マスタロボットと前記第2のスレーブロボットとは、前記マスタロボットのTPCと前記第1のスレーブロボットのTCPとを一致させることができないように離れて配置されている請求項3に記載のロボットシステムの制御方法。前記第5のステップでは、前記マスタロボットと前記第1のスレーブロボットと前記第2のスレーブロボットとは、軌跡に沿うように制御される補間制御を繰り返すように動作する請求項1〜4のいずれかに記載のロボットシステムの制御方法。前記マスタロボットおよび前記第2のスレーブロボットは溶接作業を行い、前記第1のスレーブロボットはワークを保持する請求項1〜5のいずれかに記載のロボットシステムの制御方法。第1の記憶部と、第2の記憶部と、第1の演算部とを有するマスタロボットと、 前記マスタロボットに接続された第1のスレーブロボットと、 前記マスタロボットに接続された第2のスレーブロボットとを備え、 前記第1の記憶部は、前記マスタロボットと前記第1のスレーブロボットとの位置関係を表す第1の変換行列を記憶し、 前記第2の記憶部は、前記第1のスレーブロボットと前記第2のスレーブロボットとの位置関係を表す第2の変換行列を記憶し、 前記第1の演算部は、前記第1の変換行列を用いて第1の指令を求め、前記第1のスレーブロボットの動作を指示し、 前記第1の演算部は、前記第1の変換行列および前記第2の変換行列を用いて第2の指令を求め、前記第2のスレーブロボットの動作を指示し、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作するロボットシステム。

マスタロボットと第1のスレーブロボットとの位置関係を表す第1の変換行列を生成し、前記第1の変換行列を前記マスタロボットに記憶する第1のステップと、 前記第1のスレーブロボットと第2のスレーブロボットとの位置関係を表す第2の変換行列を生成し、前記第2の変換行列を前記マスタロボットに記憶する第2のステップと、 前記マスタロボットは、前記第1の変換行列を用いて求めた第1の指令に基づいて、前記第1のスレーブロボットの動作を指示する第3のステップと、 前記マスタロボットは、前記第1の変換行列および前記第2の変換行列を用いて求めた第2の指令に基づいて、前記第2のスレーブロボットの動作を指示する第4のステップと、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作する第5のステップと、を備えたロボットシステムの制御方法。前記第1のステップでは、前記マスタロボットのTCPと前記第1のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第1の変換行列を生成する請求項1に記載のロボットシステムの制御方法。前記第2のステップでは、前記第1のスレーブロボットのTCPと前記第2のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第2の変換行列を生成する請求項1または2に記載のロボットシステムの制御方法。前記マスタロボットと前記第2のスレーブロボットとは、前記マスタロボットのTCPと前記第1のスレーブロボットのTCPとを一致させることができないように離れて配置されている請求項3に記載のロボットシステムの制御方法。前記第5のステップでは、前記マスタロボットと前記第1のスレーブロボットと前記第2のスレーブロボットとは、軌跡に沿うように制御される補間制御を繰り返すように動作する請求項1〜4のいずれかに記載のロボットシステムの制御方法。前記マスタロボットおよび前記第2のスレーブロボットは溶接作業を行い、前記第1のスレーブロボットはワークを保持する請求項1〜5のいずれかに記載のロボットシステムの制御方法。第1の記憶部と、第2の記憶部と、第1の演算部とを有するマスタロボットと、 前記マスタロボットに接続された第1のスレーブロボットと、 前記マスタロボットに接続された第2のスレーブロボットとを備え、 前記第1の記憶部は、前記マスタロボットと前記第1のスレーブロボットとの位置関係を表す第1の変換行列を記憶し、 前記第2の記憶部は、前記第1のスレーブロボットと前記第2のスレーブロボットとの位置関係を表す第2の変換行列を記憶し、 前記第1の演算部は、前記第1の変換行列を用いて第1の指令を求め、前記第1のスレーブロボットの動作を指示し、 前記第1の演算部は、前記第1の変換行列および前記第2の変換行列を用いて第2の指令を求め、前記第2のスレーブロボットの動作を指示し、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作するロボットシステム。マスタロボットと第1のスレーブロボットとの位置関係を表す第1の変換行列を生成し、前記第1の変換行列を前記マスタロボットに記憶する第1のステップと、 前記第1のスレーブロボットと第2のスレーブロボットとの位置関係を表す第2の変換行列を生成し、前記第2の変換行列を前記マスタロボットに記憶する第2のステップと、 前記マスタロボットは、前記第1の変換行列を用いて求めた第1の指令に基づいて、前記第1のスレーブロボットの動作を指示する第3のステップと、 前記マスタロボットは、前記第1の変換行列および前記第2の変換行列を用いて求めた第2の指令に基づいて、前記第2のスレーブロボットの動作を指示する第4のステップと、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作する第5のステップと、を備えたロボットシステムの制御方法。前記第1のステップでは、前記マスタロボットのTCPと前記第1のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第1の変換行列を生成する請求項1に記載のロボットシステムの制御方法。前記第2のステップでは、前記第1のスレーブロボットのTCPと前記第2のスレーブロボットのTCPとを、3箇所の異なる位置において一致させることで前記第2の変換行列を生成する請求項1または2に記載のロボットシステムの制御方法。前記マスタロボットと前記第2のスレーブロボットとは、前記マスタロボットのTCPと前記第2のスレーブロボットのTCPとを一致させることができないように離れて配置されている請求項3に記載のロボットシステムの制御方法。前記第5のステップでは、前記マスタロボットと前記第1のスレーブロボットと前記第2のスレーブロボットとは、軌跡に沿うように制御される補間制御を繰り返すように動作する請求項1〜4のいずれかに記載のロボットシステムの制御方法。前記マスタロボットおよび前記第2のスレーブロボットは溶接作業を行い、前記第1の スレーブロボットはワークを保持する請求項1〜5のいずれかに記載のロボットシステムの制御方法。第1の記憶部と、第2の記憶部と、第1の演算部とを有するマスタロボットと、 前記マスタロボットに接続された第1のスレーブロボットと、 前記マスタロボットに接続された第2のスレーブロボットとを備え、 前記第1の記憶部は、前記マスタロボットと前記第1のスレーブロボットとの位置関係を表す第1の変換行列を記憶し、 前記第2の記憶部は、前記第1のスレーブロボットと前記第2のスレーブロボットとの位置関係を表す第2の変換行列を記憶し、 前記第1の演算部は、前記第1の変換行列を用いて第1の指令を求め、前記第1のスレーブロボットの動作を指示し、 前記第1の演算部は、前記第1の変換行列および前記第2の変換行列を用いて第2の指令を求め、前記第2のスレーブロボットの動作を指示し、 前記第1のスレーブロボットおよび前記第2のスレーブロボットは、前記マスタロボットと協調して動作するロボットシステム。

说明书全文

本開示は、産業用ロボット等を用いたロボットシステムの制御方法およびロボットシステムに関し、特に、複数のロボットが協調して作業を行うロボットシステムに関する。

近年、ロボットシステムには、多種多様で、かつ、複雑なワークへの作業が求められている。特に、ロボットシステムには、多品種少量生産への適用や、ロボットを含む設備の数や設置面積の抑制が求められている。そのため、ワークごとに固有の治具を用いず、作業用ツールを把持するロボットと、ワークを把持するロボットとを協調して動作させる(以下、協調動作という)ロボットシステムが導入されている。

図9は、2台のロボットを用いた従来のロボットシステムの一例を示す図である。図9において、ロボットDは、作業ツール31を把持しているマスタロボットである。ロボットEは、ハンドリング装置34を把持しているスレーブロボットである。ロボットDは、ロボットEがハンドリング装置34で把持しているワークWに対して、ロボットEと協調して作業を行う。以下、作業ツールを把持しているロボットを「作業ロボット」、ハンドリング装置を把持しているロボットを「ハンドリングロボット」とする。また、スレーブロボットに動作を指示するロボットを「マスタロボット」、マスタロボットの指示に従って動作するロボットを「スレーブロボット」とする。

作業ロボットであるロボットDとハンドリングロボットであるロボットEとを協調動作させるためには、ロボットDのロボット座標系ΣdとロボットEのロボット座標系Σeとの位置関係を示す変換行列TDEが必要である。ロボットDおよびロボットEはそれぞれ、制御点であるツールセンターポイント(以下、TCP)を有しており、従来は、ロボットDのTCPとロボットEのTCPを、一直線上ではない3点で一致させることで、変換行列TDEを算出していた。この作業を「TCP位置合わせ」という。ロボットEが把持するワークは、ロボットEのロボット座標系Σeで示されるため、変換行列TDEにより、協調動作時には、ロボットDを、ロボットEのTCPを座標原点とするワーク座標系Σwによって示される軌跡や速度で、動作させることができる。

このロボットシステムに、さらに作業ロボットFを追加し、より効率よく作業させるためには、追加した作業ロボットFと既存のロボットDおよびロボットEと間での変換行列TDFおよび変換行列TEFを新たに生成し、それぞれのロボットが自らに関係する変換行列を制御装置に記憶する必要がある。

この問題を解決するための方法の1つとして、以下のものが知られている。1台のマスタロボットが複数台のスレーブロボットそれぞれとTCP位置合わせを行い、スレーブロボットの台数分の変換行列を生成し、制御装置に記憶する。このとき、スレーブロボット同士でのTCP位置合わせを行う必要はない。自動運転時には、マスタロボットは、マスタロボットの教示点や補間点の位置データを複数台のスレーブロボットに送信する。複数台のスレーブロボットそれぞれは、マスタロボットから送信された教示点や補間点の位置データに基づき、スレーブロボット自身のプログラムの教示点または補間点を補正する。これにより、3台以上のロボットを協調して動作させる(例えば、特許文献1参照)。

特開2001−150372号公報

特許文献1に記載されている方法を用いる場合、マスタロボットのTCPを、複数台のスレーブロボットのTCPと、位置合わせをする必要がある。しかし、ロボットシステムを構成する複数台のロボットの配置により、作業ロボット同士のTCP位置合わせが困難な場合もある。この場合、全ての作業ロボットとTCPの位置合わせが行えるハンドリングロボットをマスタロボットにしなければならない。しかし、ロボットシステムの稼働中に作業者が最も頻繁に使用するロボットはマスタロボットであり、教示作業といったロボットシステムの準備段階で作業者が最も頻繁に使用するロボットは作業ロボットである。ハンドリングロボットがマスタロボットであると、作業者は、ロボットシステムの準備段階と稼働中で、操作するロボットを変更しなければならず、作業効率が悪かった。

本開示は、上記課題に鑑み、3台以上のロボットを使用する場合でも、作業効率が良いロボットシステムの制御方法およびロボットシステムを提供する。

上記課題を解決するために、本開示のロボットシステムの制御方法は、第1のステップ〜第5のステップを有する。第1のステップでは、マスタロボットと第1のスレーブロボットとの位置関係を表す第1の変換行列を生成し、第1の変換行列をマスタロボットに記憶する。第2のステップでは、第1のスレーブロボットと第2のスレーブロボットとの位置関係を表す第2の変換行列を生成し、第2の変換行列をマスタロボットに記憶する。第3のステップでは、マスタロボットは、第1の変換行列を用いて求めた第1の指令に基づいて、第1のスレーブロボットの動作を指示する。第4のステップでは、マスタロボットは、第1の変換行列および第2の変換行列を用いて求めた第2の指令に基づいて、第2のスレーブロボットの動作を指示する。第5のステップでは、第1のスレーブロボットおよび第2のスレーブロボットは、マスタロボットと協調して動作する。

また、本開示のロボットシステムは、マスタロボットと、第1のスレーブロボットと、第2のスレーブロボットとを有する。マスタロボットは、第1の記憶部と、第2の記憶部と、第1の演算部とを有する。第1のスレーブロボットおよび第2のスレーブロボットは、マスタロボットに接続されている。第1の記憶部は、マスタロボットと第1のスレーブロボットとの位置関係を表す第1の変換行列を記憶する。第2の記憶部は、第1のスレーブロボットと第2のスレーブロボットとの位置関係を表す第2の変換行列を記憶する。第1の演算部は、第1の変換行列を用いて第1の指令を求め、第1のスレーブロボットの動作を指示する。第1の演算部は、第1の変換行列および第2の変換行列を用いて第2の指令を求め、第2のスレーブロボットの動作を指示する。第1のスレーブロボットおよび第2のスレーブロボットは、マスタロボットと協調して動作する。

以上のように、本開示によれば、他のロボット全てとはTCP位置合わせが行えない作業ロボットを、マスタロボットとし、全てのロボットを協調動作することが可能となる。これにより、作業者の作業効率を向上できる。

図1は、本開示の実施の形態1におけるロボットシステムの概略構成を示す図である。

図2は、本開示の実施の形態1における制御装置間の接続の概要を示す図である。

図3は、本開示の実施の形態1における変換行列を生成するためのTCP位置合わせを説明する図である。

図4は、本開示の実施の形態1における目標位置命令の構成を示す図である。

図5は、本開示の実施の形態1におけるプログラム実行処理のフローチャートである。

図6は、本開示の実施の形態1における各ロボットの座標系を説明するための図である。

図7は、本開示の実施の形態1における補間制御処理のフローチャートである。

図8は、本開示の実施の形態1におけるシステムの構成を説明するための図である。

図9は、従来のロボットシステムを示す図である。

以下、本発明を実施するための形態について、図1から図8を用いて説明する。

(実施の形態1) 図1は、本実施の形態における、3台のロボットを協調動作させることで溶接作業を行うロボットシステムを示す図である。このロボットシステムにおいて、ロボットA(マスタロボット)とロボットB(第2のスレーブロボット)とは、溶接作業を行う作業ロボットであり、ロボットC(第1のスレーブロボット)は、ワークを把持するハンドリングロボットである。

ロボットAは、マニピュレータ10A、溶接トーチ11A、溶接ワイヤ送給装置12A、溶接ワイヤ13A、溶接機14A、制御装置16Aを有する。溶接機14Aは、溶接トーチ11Aに電気的に接続され、溶接電流や溶接電圧を制御している。また、溶接機14Aは、溶接ワイヤ送給装置12Aに電気的に接続され、溶接ワイヤ13Aの送給速度を制御する。

ロボットBは、マニピュレータ10B、溶接トーチ11B、溶接ワイヤ送給装置12B、溶接ワイヤ13B、溶接機14B、制御装置16Bを有する。溶接機14Bは、溶接トーチ11Bに電気的に接続され、溶接電流や溶接電圧を制御している。また、溶接機14Bは、溶接ワイヤ送給装置12Bに電気的に接続され、溶接ワイヤ13Bの送給速度を制御する。

ロボットCは、マニピュレータ10C、ハンドリング装置15C、制御装置16Cを有し、ハンドリング装置15Cによって、ワークWを把持することが可能である。

また、ロボットAは制御装置16Aによって制御され、ロボットBは制御装置16Bによって制御されている。より具体的には、制御装置16A、16Bは、溶接電圧、溶接電流、ワイヤ送給速度といった溶接条件を溶接機14A、14Bに指示すると共に、マニピュレータ10A、10Bの動きを指示する。ロボットA、Bは、この指示を実行することで、ワークWに溶接作業を行う。ロボットCは、制御装置16Cによって制御されている。より具体的には、制御装置16Cは、ハンドリング装置15Cのハンドの開閉をハンドリング装置15Cに指示すると共に、マニピュレータ10Cの動きを指示する。ロボットCは、この指示を実行することで、ハンドリング装置15Cのハンドの開閉を行い、ワークWの保持、手放し、移動を行う。

本実施の形態のロボットシステムでは、ロボットAをマスタロボットとし、ロボットBとロボットCをスレーブロボットとして動作させる。マスタロボットは、スレーブロボットに対して、協調動作を行わせるための通信を行う。そのため、制御装置16Aと制御装置16Bとを、光ファイバケーブル17ABによって接続している。また、制御装置16Aと制御装置16Cとを、光ファイバケーブル17ACによって接続している。

なお、本実施の形態のロボットシステムでは、制御装置間をつなぐ通信線として、電気ノイズに強い光ファイバケーブルを用いている。しかし、通信線としては、LAN(Local Area Network)やシリアル通信などのケーブルを用いても構わないし、通信線を用いない無線通信であっても構わない。

また、制御装置16A、16B、16Cそれぞれは、入装置であるティーチペンダント18A、18B、18Cに接続される。作業者は、ティーチペンダントを用いて、ロボットの操作や、マスタモードとスレーブモードとのモード切り替えなどを制御装置に設定する。ティーチペンダント18A、18B、18Cは、ロボット操作部(図示せず)、スレーブロボットの状態とマスタロボットの状態とを切り替えるモード切替部(図示せず)、溶接電流やワイヤ送給速度といった各種データを表示するデータ表示部(図示せず)、各種データを設定するデータ設定部(図示せず)等を有している。

図2は、制御装置16A、16B、16Cの構成を示している。

マスタロボットであるロボットAの制御装置16Aは、演算部20Aと、教示データ記憶部21Aと、マニピュレータ制御部22Aと、溶接条件指令部23Aと、通信部24Aと、スレーブロボット通信部25AB、25ACと、キャリブレーションポイント記憶部26AC、26BCと、変換行列記憶部27AC(第1の記憶部)、27BC(第2の記憶部)を有する。

演算部20Aは、様々な内部演算等を行うCPUや、メモリなどで構成される。教示データ記憶部21Aは、自動運転時にプレイバック動作させるために教示されたデータを記憶する。マニピュレータ制御部22Aは、演算部20Aで演算された結果に基づいてマニピュレータ10Aを制御する。溶接条件指令部23Aは、溶接機14Aに溶接電流などの溶接条件を指令する。通信部24Aは、ティーチペンダント18Aとの通信を行う。スレーブロボット通信部25ABは、スレーブロボットであるロボットBへの動作指令や溶接指令を送信すると共に、ロボットBからの情報を受信する。スレーブロボット通信部25ACは、スレーブロボットであるロボットCへの動作指令やハンドリング指令を送信すると共に、ロボットCからの情報を受信する。ロボットAからロボットBへの指示を第2の指令、ロボットAからロボットCへの指示を第1の指令とする。キャリブレーションポイント記憶部26ACは、ロボットAとロボットCとの協調動作に必要となる、それぞれのロボットのTCP位置とTCP方向ベクトルを記憶する。変換行列記憶部27ACは、キャリブレーションポイント記憶部26ACのデータから計算されるロボットAとロボットCとの変換行列TCA(第1の変換行列)を記憶する。キャリブレーションポイント記憶部26BCは、ロボットBとロボットCとの協調動作に必要となる、それぞれのロボットのTCP位置とTCP方向ベクトルを記憶する。変換行列記憶部27BCは、キャリブレーションポイント記憶部26BCのデータから計算されるロボットBとロボットCとの変換行列TCB(第2の変換行列)を記憶する。

一方、スレーブロボットであるロボットBの制御装置16Bは、演算部20Bと、マニピュレータ制御部22Bと、溶接条件指令部23Bと、通信部24Bと、マスタロボット通信部25BAを有する。演算部20B、マニピュレータ制御部22B、溶接条件指令部23B、通信部24Bなどは制御装置16Aと同様の機能である。また、マスタロボット通信部25BAは、本実施の形態においては、マスタロボットであるロボットAからの動作指令や溶接指令を受信し、ロボットBの情報を送信する。しかし、マスタロボット通信部25BAが送受信するデータの内容はロボットBの役割によって異なっていても構わず、また、ロボットBがマスタロボットとして機能することができるように、制御装置16Bは制御装置16Aと同様の構成であっても構わない。

一方、スレーブロボットであるロボットCの制御装置16Cは、演算部20Cと、マニピュレータ制御部22Cと、ハンドリング指令部26Cと、通信部24Cと、マスタロボット通信部25CAを有する。演算部20C、マニピュレータ制御部22C、通信部24Cなどは制御装置16Aと同様の機能である。また、マスタロボット通信部25CAは、本実施の形態においては、マスタロボットであるロボットAからの動作指令やハンドリング指令を受信し、ロボットCの情報を送信する。しかし、マスタロボット通信部25CAが送受信するデータの内容はロボットCの役割によって異なっていても構わず、また、ロボットCがマスタロボットとして機能することができるように、制御装置16Cは制御装置16Aと同様の構成であっても構わない。

本実施の形態において、マスタロボットであるロボットAの制御装置16Aは、教示データ記憶部21Aに、ロボットAとロボットBとロボットCが1つの組となった教示点を記憶している。教示データ記憶部21Aに記憶されているデータは、プレイバック動作時に演算部20Aによって読み出される。演算部20Aでは、各ロボットの動作量を算出し、ロボットAの動作と溶接は、マニピュレータ制御部22Aと溶接条件指令部23Aを介して制御される。

また、スレーブロボットであるロボットBの動作と溶接は、スレーブロボット通信部25ABを介して、制御装置16Aから制御装置16Bに送信された指令によって制御される。具体的には、制御装置16Bは、マスタロボット通信部25BAで受信した制御装置16Aからの指令を演算部20Bにより処理する。そして、ロボットBの動作と溶接は、マニピュレータ制御部22Bおよび溶接条件指令部23Bを介して制御される。また、制御装置16Bは、現在のロボットBの姿勢や溶接出力状態などの情報を、マスタロボット通信部25BAを介して、制御装置16Aに送信する。

同様に、スレーブロボットであるロボットCの動作とハンドリングは、スレーブロボット通信部25ACを介して、制御装置16Aから制御装置16Cに送信された指令によって制御される。具体的には、マスタロボット通信部25CAで受信した制御装置16Aからの指令を演算部20Cにより処理する。そして、ロボットCの動作とハンドリングは、マニピュレータ制御部22Cおよびハンドリング指令部26Cを介して制御される。また、制御装置16Cは、現在のロボットCの姿勢やハンドリング装置15Cの出力状態などの情報を、マスタロボット通信部25CAを介して、制御装置16Aに送信する。

上記構成により、溶接機を有する2台のロボットと、ハンドリング装置を有する1台のロボットを同時に制御できる。

次に、ロボットA〜Cが協調動作するために必要となる変換行列を生成する方法について説明する。変換行列とは、異なる2つの座標系の関係を示すもので、これにより、一方の座標系で示された位置ベクトルをもう一方の座標系で示される位置ベクトルに変換することができる。本実施の形態においては、作業ロボットであるロボットAとロボットBが、ハンドリングロボットであるロボットCに協調して動作する必要がある。従って、変換行列を生成するためには、ロボットAとロボットCの位置関係と、ロボットBとロボットCの位置関係とが必要となる。

始めに、ロボットAとロボットCの変換行列TCAを生成する方法について、図3を用いて説明する。図3に示すように、ロボットAのマニピュレータ10Aの先端に取り付けられた溶接トーチ11Aに教示用チップC1を取り付ける。そして、ロボットAの手首先端(マニピュレータ10Aの先端)から教示用チップC1の先端までのオフセットを正しく設定しておく。このようにすることで、教示用チップC1の先端がロボットAのTCPとなる。なお、TCPとは、ロボットの制御点である。

また、ロボットCは、マニピュレータ10Cの先端に取り付けられたハンドリング装置15Cの一部を基準点とし、ロボットCの手首先端(マニピュレータ10Cの先端)から基準点までのオフセット値を正しく設定しておく。例えば、ハンドリング装置15Cの両ハンドの先端の中心を基準値とする。なお、ハンドリング装置15Cに適切な基準点をとることができない場合は、図3に示すように、ハンドリング装置15Cを取り外し、基準点を確実にとれる治具C2をロボットCのマニピュレータ10Cの先端に取り付けてもよい。いずれかの方法で設けられた基準点がロボットCのTCPとなる。

次に、作業者がティーチペンダント18Cを操作し、制御装置16Cをスレーブロボットのモードに切り替える。そして、マスタロボットであるロボットAのティーチペンダント18Aを用いて、作業者がマスタロボットであるロボットAおよびスレーブロボットであるロボットCの両方を操作する。そして、図3に示すように、ロボットAのTCPとロボットCのTCPとを、両TCPの方向ベクトルを変更しない状態で、同一直線上にない空間上の3点(P1、P2、P3)で一致させる。

このとき、3点に関して、ロボットA、Cの基準点を原点とするロボット座標系Σa、Σcにおける、それぞれのロボットのTCP位置とTCP方向ベクトルをキャリブレーションポイント記憶部26ACに記憶する。そして、求められたロボットAの3つのTCP位置データおよび方向ベクトルデータと、ロボットCの3つのTCP位置データおよび方向ベクトルデータとから、ロボットCのロボット座標系ΣcからロボットAのロボット座標系Σaへの変換行列TCAを演算部20Aで計算によって求めることができる。変換行列TCAは、変換行列記憶部27ACに記憶される。

次に、ロボットBとロボットCとの変換行列TCBを生成する方法について説明する。基本的には、前述のロボットAとロボットCとの間で変換行列TCAを求める方法と同様である。先ず、ロボットBのマニピュレータ10Bの先端に取り付けられた溶接トーチ11Bに、教示用チップC1を取り付ける。そして、ロボットBの手首先端(マニピュレータ10Bの先端)から教示用チップC1の先端までのオフセットを正しく設定しておく。このようにすることで、教示用チップC1の先端がロボットBのTCPとなる。

次に、作業者がティーチペンダント18Bとティーチペンダント18Cを操作し、制御装置16Bと制御装置16Cとをスレーブロボットのモードに切り替える。そして、作業者がマスタロボットであるロボットAのティーチペンダント18Aを用いて、スレーブロボットであるロボットBおよびロボットCの両方を操作する。そして、ロボットAとロボットCの変換行列を求めた時と同様に、ロボットBのTCPとロボットCのTCPとを、両TCPの方向ベクトルを変更しない状態で、同一直線上にない空間上の3点で合わせる。

このとき、3点に関して、ロボットB、Cの基準点を原点とするロボット座標系Σb、Σcにおける、それぞれのロボットのTCP位置とTCP方向ベクトルをキャリブレーションポイント記憶部26BCに記憶する。そして、求められたロボットBの3つのTCP位置データおよび方向ベクトルデータと、ロボットCの3つのTCP位置データおよび方向ベクトルデータとから、ロボットCのロボット座標系ΣcからロボットBのロボット座標系Σbへの変換行列TCBを演算部20Aで計算によって求めることができる。変換行列TCBは、変換行列記憶部27BCに記憶される。

これら変換行列TCAと変換行列TCBを用いることで、ロボットAとロボットBのTCPを、ロボットCのマニピュレータ10Cの先端を座標原点としたワーク座標系Σwで表すことが可能となる。そして、ロボットAおよびロボットBのTCPを、ワーク座標系Σwで示される速度や軌跡で、ロボットCと協調動作させることが可能となり、複雑なワークを溶接するのに適している。

次に、上記構成を用いて、3台のロボットを協調して動作させる方法の詳細について、図面を参照して説明する。

演算部20Aは、教示データ記憶部21AからロボットA〜Cを協調して動作させる動作プログラムを呼び出す。そして、演算部20Aは、動作プログラムで示される作業手順に従って、ロボットA〜Cへの指示やロボットA〜Cから集められた情報の処理などを行う。動作プログラムは、協調動作において特徴的な命令である目標位置命令を含んだ、さまざまな命令から構成されている。目標位置命令には、図4に示すように、ロボットA〜Cのマニピュレータ10A〜10Cを構成する各軸の目標度と動作速度(回転速度)、2点間をTCPに直線動作させるか曲線動作させるか、複数のロボットでの協調動作をさせるかさせないか、などのマニピュレータの動作に関する指令が記録されている。

図5に、演算部20Aが動作プログラムを処理するときのフローチャートを示す。演算部20Aは、教示データ記憶部21Aから動作プログラムを読み出し、動作プログラムの命令が目標位置命令かどうかを判別する。そして、図5では、協調動作を行う目標位置命令を読み出したときの処理について、詳しく説明する。

演算部20Aは、読み出した命令が目標位置命令であれば、ロボットA〜Cの現在のTCP位置と現在のTCPの方向ベクトルを表す、「現在位置ベクトルSni(i=a,b,c)」と、目標位置命令に記載されたマニピュレータの各軸の角度から計算されるロボットA〜Cの目標となるTCP位置と目標となるTCPの方向ベクトルを表す「目標位置ベクトルSri(i=a,b,c)」を計算する。この現在位置ベクトルと目標位置ベクトルを算出する工程をSTEP1とする。

ロボットAのTCPの現在位置ベクトルSnaは、ロボットAのロボット座標系が3次元であり、各次元についてのロボットAのTCPの位置および角度を示すため、6つのパラメータで表される。例えば、図6に示すように、現在位置ベクトルSnaは、ロボットAのロボット座標系Σaでは、(Xan,Yan,Zan,Uan,Van,Wan)とあらわされる。同じように、ロボットBおよびロボットCについても、現在位置ベクトルSnbや現在位置ベクトルSncがそれぞれのロボットのロボット座標系Σb、Σcにおいて6つのパラメータで示される。ロボットAの目標位置ベクトルSra、ロボットBの目標位置ベクトルSrb、ロボットCの目標位置ベクトルSrcについても、それぞれのロボットのロボット座標系Σa、Σb、Σcにおいて6つのパラメータで示される。

次に、既に求めてあり、変換行列記憶部27ACに記憶されている変換行列TCAを用いて、ロボットAの現在位置ベクトルSnaおよび目標位置ベクトルSraを変換する。変換行列TCAによって、ロボットAのロボット座標系Σaを、ワーク座標系Σwにまで変換することができる。これにより、ロボットAの現在位置ベクトルSnaおよび目標位置ベクトルSraは、それぞれ、ワーク座標系Σwでの変換現在位置ベクトルSwnaおよび変換目標位置ベクトルSwraに変換される。同様に、変換行列記憶部27BCに記憶されている変換行列TCBを用いて、ロボットBの現在位置ベクトルSnbおよび目標位置ベクトルSrbを変換する。変換行列TCBによって、ロボットBのロボット座標系Σbを、ワーク座標系Σwにまで変換することができる。これにより、ロボットBの現在位置ベクトルSnbおよび目標位置ベクトルSrbは、それぞれ、ワーク座標系Σwでの変換現在位置ベクトルSwnbおよび変換目標位置ベクトルSwrbに変換される。なお、ロボットCのロボット座標系Σcとワーク座標系ΣwとはすでにロボットCのTCPにおいて関連付けられているため、変換は不要である。この変換現在位置ベクトルと変換目標位置ベクトルを算出する工程をSTEP2とする。

次に、変換現在位置ベクトルSwnaから変換目標位置ベクトルSwraへ指定した速度でロボットAのTCPを動作させるための補間分割数Nを算出する。補間分割数Nを算出する工程をSTEP3とする。

通常、ロボットは、固定の補間時間Ts毎に各軸の角度を制御しており(以下、補間制御とする)、この補間制御を繰り返すことで、指定された動作を完了するものである。補間制御により、ロボットは動作の軌跡に沿うように制御される。そのため、指定された速度で動作するためには、何回の補間制御を繰り返すことで、現在位置ベクトルSna、Snb、Sncから目標位置ベクトルSra、Srb、SrcまでのTCPの動作を完了できるかを算出する必要がある。本実施の形態では、マスタロボットであるロボットAのTCPが現在位置ベクトルSnaから目標位置ベクトルSraまで直線で動作する動きを基準として補間制御の回数を算出する。補間分割数Nは次の計算式で求めることができる。

N=(Swra−Swna)÷動作速度÷Ts なお、基準となるロボットは、マスタロボットであるロボットAではなく、スレーブロボットであるロボットBであっても構わない。その場合は、SwnaおよびSwraを、SwnbおよびSwrbに置き換えるだけでよい。スレーブロボットであるロボットCについても、ロボットBと同様である。

補間分割数Nが求まった後は、補間制御の繰り返し処理となる。補間制御の繰り返し処理をSTEP4とする。すなわち、補間制御をN回繰り返すことで、ロボットA〜CのTCPそれぞれについて、現在位置ベクトルから目標位置ベクトルまでの移動が行われ、目標位置命令が完了される。

以上のように、制御装置16Aは、1つの目標位置命令を完了すると、次命令の有無を判断し、次命令がある場合は、次命令を読み出して実行する。次命令が目標位置命令であれば、STEP1〜4を再度実行する。そして、次命令がなくなると、動作プログラムが完了される。

ここで、STEP4の補間制御について、図7を用いて詳細に説明する。

補間制御の繰り返しをするには、1回の補間制御について、図7に示すように、軌跡制御の元となるワーク座標系Σwでの変換目標位置ベクトルを算出する。ロボットAおよびロボットBに関しては、ワーク座標系Σwでの軌跡を算出するため、ワーク座標系Σwでの変換現在位置ベクトルSwna、Swnbと変換目標位置ベクトルSwra、Swrbを用いた計算を行う。ロボットAにおいて、補間制御繰り返しのうちのj回目の補間制御の変換軌跡目標位置ベクトルSwajは次のように求めることができる。

Swaj=Swra−(Swra−Swna)×(N−j)÷N (式1) 同様に、ロボットBにおいて、j回目の補間制御の変換軌跡目標位置ベクトルSwbjは次のように求めることができる。

Swbj=Swrb−(Swrb−Swnb)×(N−j)÷N (式2) (式1)と(式2)は、補間開始時のロボットAおよびBの変換現在位置ベクトルSwnaおよびSwnbから、補間制御回数を重ねるごとにロボットAおよびBの変換目標位置ベクトルSwraおよびSwrbに向かっていくことを示している。そして(式1)と(式2)は、最後のN回目の補間制御を完了すると、ロボットAおよびBのTCPがそれぞれの変換目標位置ベクトルSwraおよびSwrbに到着することを意味している。

一方、ロボットCにおいては、ワーク座標系Σwを基準とした動作を行わないため、ロボットCのロボット座標系Σcでの軌跡目標位置ベクトルScjを次式で求める。

Scj=Src−(Src−Snc)×(N−j)÷N (式3) これは、ロボットCのTCPは、ロボットCのロボット座標系Σcにおいて、N回の補間制御を完了するとロボットCの目標位置ベクトルSrcに到着することを意味している。この変換軌跡目標位置ベクトルを算出する工程をSTEP4−1とする。

ロボットA、Bについて、ワーク座標系Σwでの変換軌跡目標位置ベクトルSwaj、Swbjを算出すると、次に、ロボット座標系Σa、Σbでの軌跡目標位置ベクトルSaj、Sbjへの変換を行う。STEP4−1で算出したロボットAの変換軌跡目標位置ベクトルSwaj、ロボットBの変換軌跡目標位置ベクトルSwbjは、ワーク座標系Σwでの値である。そして、ワーク座標系Σwは、ロボットCのロボット座標系Σcを関連付けられている。そのため、変換軌跡目標位置ベクトルSwaj、Swbjは、変換行列TCAおよび変換行列TCBなどから、ロボット座標系Σa、Σbでの軌跡目標位置ベクトルSaj、Sbjに変換できる。この軌跡目標位置ベクトルを算出する工程をSTEP4−2とする。

ロボット座標系Σa、Σb、Σcでの軌跡目標位置ベクトルSaj、Sbj、Scjを算出すると、次に、軌跡目標位置ベクトルSaj、Sbj、Scjからマニピュレータ10A、10B、10Cの各軸の角度への変換が行なわれる。この変換は、一般的に用いられる逆運動学を演算することで行われ、この変換工程をSTEP4−3とする。

それぞれの軸角度への変換が完了した後、モータ駆動の加減速の調整などが行なわれ、制御装置16AからロボットA〜Cへ動作指令が行われる。この動作指令をSTEP4−4とする。

ロボットAに関しては、制御装置16Aの演算部20Aで計算されたマニピュレータ10Aの各軸の目標角度がマニピュレータ制御部22Aに指令される。マニピュレータ制御部22Aは、補間時間Tsで目標角度に到達するようにマニピュレータ10Aのモータの制御を行う。

ロボットBには、制御装置16Aの演算部20Aで計算されたマニピュレータ10Bの各軸の目標角度が、スレーブロボット通信部25ABを通じて、制御装置16Bの演算部20Bに送信される。演算部20Bは、受信したマニピュレータ10Bの軸角度をマニピュレータ制御部22Bに指令する。マニピュレータ制御部22Bは、補間時間Tsで目標角度に到達するようにマニピュレータ10Bのモータの制御を行う。

ロボットCに関しても、ロボットBと同様に、マスタロボットであるロボットAの制御装置16Aからの指令に基づき、ロボットCがマニピュレータ10Cのモータの制御を行う。

この補間制御をN回繰り返すことで、ロボットA〜Cを変換現在位置ベクトルSwna、Swnb、Sncから、変換軌跡目標位置ベクトルSwaj、Swbj、Scjを経由して、変換目標位置ベクトルSwra、Swrb、Srcに到達させる。これは、ロボットA、Bについては、現在位置ベクトルSna、Snbから軌跡目標位置ベクトルSaj、Sbjを経由して目標位置ベクトルSra、Srbに到達させていることになる。

以上が、補間制御に関する説明である。次に、本実施の形態の作用について説明する。

本実施の形態では、1台のマスタロボット(ロボットA)に2台のスレーブロボット(ロボットB、C)を接続している。そして、マスタロボットであるロボットAの制御装置16Aは、ハンドリングロボットである第1のスレーブロボット(ロボットC)とマスタロボット(ロボットA)との変換行列TCAだけでなく、第2のスレーブロボット(ロボットB)と第1のスレーブロボット(ロボットC)との変換行列TCBも記憶している。また、3台のロボットA〜Cのマニピュレータ10A,10B,10Cの各軸の目標角度を記憶した動作プログラムが一括して処理されることで、3台のロボットA〜Cの同期をスムーズに行なうことができ、高い精度で協調動作を行うことも可能である。

ここで、スレーブロボット同士の変換行列を、マスタロボットに記憶させる利点について、図8を用いて説明する。図8は、ワークを把持するハンドリングロボットに対して、両サイドから、2台の作業ロボットが溶接作業を行うロボットシステムを示している。このロボットシステムにおいて、1台のマスタロボットが2台のスレーブロボットとの変換行列を生成するためには、1台のマスタロボットは、2台のスレーブロボットそれぞれと、前述のTCP位置合わせが必要となる。しかし、ロボットAとBの配置間隔が大きいといったロボットシステムの構成によっては、マスタロボットである溶接ロボットとスレーブロボットである溶接ロボットとのTCP位置合わせが、不可能な場合がある。なお、スレーブロボットであるハンドリングロボットは、マスタロボットである溶接ロボットおよびスレーブロボットである溶接ロボットの両方とTCP位置合わせが可能な位置に配置されている。

この場合、ハンドリングロボットをマスタロボットとし、2台の溶接ロボットとの変換行列を生成することは可能である。しかし、マスタロボットは、作業者が最も頻繁に使用するロボットが好ましく、具体的作業を伴う溶接ロボットは、作業条件の変更などを行なう頻度が多い。従って、マスタロボットは、溶接ロボットであることが望ましい。

図8のようにロボットが配置されたロボットシステムであっても、本実施の形態の制御方法を用いると、スレーブロボット同士でTCP位置合わせによって生成された変換行列をマスタロボットが記憶する。そのため、スレーブロボットとTCP位置合わせを直接行うことができないロボットをマスタロボットとして協調動作をさせることが可能となる。

このように、本実施の形態を用いることで、より自由度の高い協調動作を行うことができ、3台以上のロボットを有するロボットシステムを構築できる。

なお、上記では、2台の溶接ロボットと1台のハンドリングロボットとが協調動作する例を示した。しかし、溶接ロボットは3台以上でも構わない。その場合は、本実施の形態と同様に、スレーブロボット同士の変換行列の生成を複数回行なうことで、協調動作を実現できる。

なお、本実施の形態では、現在位置ベクトルから目標位置ベクトルまで単純にワーク座標系Σwを直線で動作する例を示した。しかし、現在位置ベクトルから目標位置ベクトルに向かう軌跡は、円弧状など任意の形状も可能である。

なお、本実施の形態では、具体的作業として溶接作業の例を示した。しかし、溶接だけでなく、塗装や搬送などの作業も可能である。

本開示によれば、3台以上のロボットを高い自由度で協調動作させることができ、例えば1台のハンドリングロボットが把持したワークに複数台の溶接ロボットが協調動作をしながら溶接を行うロボットシステムおよびその制御方法として産業上有用である。

A,B,C,D,E ロボット 10A,10B,10C マニピュレータ 11A,11B 溶接トーチ 12A,12B 溶接ワイヤ送給装置 13A,13B 溶接ワイヤ 14A,14B 溶接機 15C,34 ハンドリング装置 16A,16B,16C 制御装置 17AB,17AC 光ファイバケーブル 18A,18B,18C ティーチペンダント 20A,20B,20C 演算部 21A 教示データ記憶部 22A,22B,22C マニピュレータ制御部 23A,23B 溶接条件指令部 24A,24B,24C 通信部 25AB,25AC スレーブロボット通信部 25BA,25CA マスタロボット通信部 26C ハンドリング指令部 26AC,26BC キャリブレーションポイント記憶部 27AC,27BC 変換行列記憶部 Sna,Snb,Snc 現在位置ベクトル Swna,Swnb 変換現在位置ベクトル Sra,Srb,Src 目標位置ベクトル Swra,Swrb 変換目標位置ベクトル Swaj,Swbj 変換軌跡目標位置ベクトル Saj,Sbj,Scj 軌跡目標位置ベクトル

QQ群二维码
意见反馈