(57)【特許請求の範囲】
【請求項１】
複数のロボットアームを備えたロボットのダイレクト教示方法であって、
前記複数のロボットアームのうち１本をマスタアームに指定し、余のロボットアームのうち少なくとも１本をスレイブアームに指定し、前記マスタアームに標準点を規定し、
初期位置にある前記マスタアームのリスト部と前記スレイブアームのリスト部との相対的位置及び姿勢を求めてこれを所定の関係として記憶し、
教示者がツールを含む前記マスタアームの任意の箇所に直接的に力を加えることによって前記マスタアームを前記初期位置から任意の教示位置へ動かしている間に、前記マスタアームの制御軸の軸角度を検出し、前記軸角度に基づいて前記標準点の現在位置を求め、前記標準点の現在位置を目標位置へ移動させるマスタアーム位置指令値を生成し、前記マスタアームのリスト部と前記スレイブアームのリスト部との相対的位置及び姿勢が前記所定の関係となるように前記マスタアーム位置指令値に基づいてスレイブアーム位置指令値を生成し、前記マスタアーム位置指令値に基づいて前記マスタアームの前記制御軸を駆動するとともに、前記スレイブアーム位置指令値に基づいて前記スレイブアームの制御軸を駆動することにより前記スレイブアームを前記マスタアームに対し協調動作させ、
前記マスタアームが前記任意の教示位置に到達したときの前記マスタアーム及び前記スレイブアームの位置情報を記憶する、
ロボットのダイレクト教示方法。
【請求項２】
前記標準点の移動が前記所定の移動経路に制限される制限モードと、前記標準点の移動が前記所定の移動経路に限定されないフリーモードとを選択可能である、請求項１に記載のロボットのダイレクト教示方法。
【請求項３】
前記標準点の移動を前記所定の移動経路上に制限し、
前記現在位置を前記所定の移動経路に投影した位置を前記目標位置とする前記マスタアーム位置指令値を生成し、
前記スレイブアームの制御軸を駆動するとともに前記マスタアームの前記制御軸を駆動することを、前記マスタアームの前記制御軸の各々について前記マスタアーム位置指令値と対応する軸角度と検出された軸角度との偏差がゼロになるまで繰り返し、
前記偏差がゼロになったあとで前記マスタアーム及び前記スレイブアームの位置情報を記憶する、
請求項２に記載のロボットのダイレクト教示方法。
【請求項４】
前記マスタアームの前記制御軸の位置ゲイン及び速度ゲインが任意に設定可能である、
請求項１〜３のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項５】
前記マスタアームの前記制御軸のうち少なくとも一つに対して重力補償演算を行い、その演算結果を当該制御軸のトルク指令値に加算する、
請求項１〜４のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項６】
前記マスタアームを動かす前に、前記マスタアームの前記制御軸の軸角度に基づいて前記マスタアームに取り付けられた前記ツールの初期姿勢を求め、前記教示者が前記マスタアーム又はそれに取り付けられた前記ツールを動かしている間に前記ツールの前記初期姿勢が維持されるように前記マスタアーム位置指令値を生成する、請求項１〜５のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項７】
前記標準点の前記所定の移動経路が、基本座標系でのｘｙｚ直交３軸方向のいずれか、又は、ツール座標系のｘｙｚ直交３軸方向のいずれかと平行な直線上である、請求項１〜６のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項８】
前記標準点の前記所定の移動経路が、基本座標系でのｘｙｚ直交３軸のうち２つの組み合わせ、又は、ツール座標系のｘｙｚ直交３軸のうち２つの組み合わせにより規定される平面と平行な平面上である、請求項１〜６のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項９】
前記標準点の前記所定の移動経路が、基本座標系でのｘｙｚ直交３軸のいずれか、又は、ツール座標系のｘｙｚ直交３軸のいずれかを回転の中心とする回転軌跡上である、
請求項１〜６のいずれか一項に記載のロボットのダイレクト教示方法。
【請求項１０】
前記現在位置から前記マスタアーム位置指令値を生成することが、
前記所定の移動経路上の移動ベクトルを求め、
前記移動ベクトルが新たな座標系のｘｙｚ直交３軸のいずれかと平行となるように、基本座標系を前記新たな座標系に変換する座標変換行列を求め、
前記基本座標系の前記標準点の前記現在位置を前記新たな座標系に座標変換し、
前記新たな座標系の前記現在位置を前記所定の移動経路に投影した位置を前記新たな座標系の目標位置とし、その目標位置を前記基本座標系に座標変換して前記目標位置を求めることを含む、
請求項１〜６のいずれか一項に記載のロボットのダイレクト教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のロボットアームを備えたロボットのダイレクト教示方法に関する。
【背景技術】
【０００２】
従来、産業用ロボットの動作プログラムはロボットへの教示によって作成され、ロボットはティーチングプレイバック機能を有する。上記のような産業用ロボットの教示方式の一つとして、ダイレクト教示方式が知られている。ダイレクト教示方式では、教示者がロボットのアームを教示したい位置まで手動で動かし、ロボット自身が位置センサの位置情報（即ち、教示位置）を記憶することによって教示が行われる。特許文献１では、この種のロボットの教示に関する技術が示されている。
【０００３】
特許文献１に係るダイレクト教示方式ロボットは、リスト部に加わる力を検出する力覚センサが該リスト部に設けられ、この検出信号を入力とするコンプライアンス制御によって動作し、教示者がツールに力を加えることによってロボットを移動させ、教示者の意図する位置に手操作でツールを位置づけて位置情報をロボットに入力するものである。このロボットでは、ツールの先端の移動に際し、ロボットの動作を拘束されない自由な動きと、特定の直線上、或いは面上に拘束される動きを選択できる。
【０００４】
ところで、複数のロボットが協調しながら作業するマルチロボットシステムが構築されることがある。複数のロボットの協調作業には、複数のロボットの互いに衝突を回避しながらの動作、複数のロボットで一つの対象物をハンドリングする動作、などがある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１４１５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１の技術では、リスト部やツールに加わる外力を検出又は推定して、その外力に応じてツールを移動させるようにロボットが動作する。そのために、ロボットは力覚センサを備えており、制御が複雑となる。また、ロボットが検出された外力に基づいて動作するので、教示者がロボットアーム又はツールを直接的に力を与えて動かすにあたり、ロボットアーム又はツールの位置の微調整が難しい。
【０００７】
通常、ロボットのダイレクト教示作業では、ロボットアームを１本ずつ教示することが想定されているが、複数のロボットアームをダイレクト教示するとなると、１本のロボットアームでさえ前述の通り位置の微調整が難しいのであるから、複数のロボットアームの相対的な位置や姿勢を厳密に調整する作業は専門性が高く、非常に煩雑な作業となりうる。
【０００８】
本発明は以上の事情に鑑みてされたものであり、その目的は、複数のロボットアームを備えたロボットにおいて、複数のロボットアームを連係させながらダイレクト教示するにあたり、その教示作業を簡易とする技術を提案することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様に係るロボットのダイレクト教示方法は、複数のロボットアームを備えたロボットのダイレクト教示方法であって、
前記複数のロボットアームのうち１本をマスタアームに指定し、余のロボットアームの内少なくとも１本をスレイブアームに指定し、前記マスタアームに標準点を規定し、
初期位置にある前記マスタアームのリスト部と前記スレイブアームのリスト部との相対的位置及び姿勢を求めてこれを所定の関係として記憶し、教示者がツールを含む前記マスタアームの任意の箇所に直接的に力を加えることによって前記マスタアームを前記初期位置から任意の教示位置へ動かしている間に、前記マスタアームの制御軸の軸角度を検出し、前記軸角度に基づいて前記標準点の現在位置を求め、前記標準点の現在位置を目標位置へ移動させるマスタアーム位置指令値を生成し、前記マスタアームのリスト部と前記スレイブアームのリスト部との相対的位置及び姿勢が所定の関係となるように前記マスタアーム位置指令値に基づいてスレイブアーム位置指令値を生成し、前記マスタアーム位置指令値に基づいて前記マスタアームの前記制御軸を駆動するとともに、前記スレイブアーム位置指令値に基づいて前記スレイブアームの制御軸を駆動することにより前記スレイブアームを前記マスタアームに対し協調動作させ、
前記マスタアームが前記任意の教示位置に到達したときの前記マスタアーム及び前記スレイブアームの位置情報を記憶することを特徴としている。  
【００１０】
上記ロボットのダイレクト教示方法によれば、教示者によって直接的に動かされているマスタアームの動きに追従して、マスタアームのリスト部とスレイブアームのリスト部との相対的位置及び姿勢が所定の関係を維持するようにスレイブアームが自動的に協調動作する。これにより、複数のロボットアームの教示作業において、複数のロボットアームの相対的な位置及び姿勢を調整するための煩雑で専門性の高い作業を省略することができ、教示作業が単純となる。また、教示者はロボットアームの位置及び姿勢の関係を視覚的に捉えることができるので、教示者は複数のロボットアームの状況を容易に確認することができる。
【発明の効果】
【００１１】
本発明によれば、複数のロボットアームを備えたロボットにおいて、複数のロボットアームを連係させながらダイレクト教示するにあたり、その教示作業を簡易とすることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態に係る多関節ロボットの全体的な構成を示す概略正面図である。
【図２】図２は、ロボットの模式的平面図である。
【図３】図３は、ロボットの制御系統の概略構成を示す図である。
【図４】図４は、ロボットの制御系統の概略構成を示す図である。
【図５】図５は、サーボ制御部を中心とした具体的な電気的構成を示す図である。
【図６】図６は、ロボットアームの標準点の移動を説明する概念図である。
【図７】図７は、座標変換行列Ｑによる座標変換を説明する図である。
【図８】図８は、ダイレクト教示動作時の制御装置の処理の流れを示す図である。
【発明を実施するための形態】
【００１３】
次に、図面を参照して本発明の実施の形態を説明する。本発明の一実施形態に係る多関節ロボット（以下、単に「ロボット１」ということがある）は、例えば、ライン生産方式又はセル生産方式で、電気・電子部品等を組み立てて製品を生産する生産工場で利用され、この生産工場に設けられた作業台に沿って配置され、作業台上のワークに対して、移送、パーツの組み付けや配置換え、姿勢変換などの作業のうち少なくとも１つを行うことができる。但し、本発明に係るロボットの実施態様は上記に限定されず、水平多関節型・垂直多関節型を問わず多関節ロボットに広く適用することができる。
【００１４】
まず、ロボット１の概略構成から説明する。図１は本発明の一実施形態に係るロボット１の全体的な構成を示す正面図であり、図２はその模式的平面図である。図１及び２に示すように、ロボット１は、台車１７と、台車１７に支持された一対のロボットアーム（以下、単に「アーム」という）１０Ａ，１０Ｂと、各アーム１０Ａ，１０Ｂの先端に装着されたツール５（エンドエフェクタ）と、アーム１０Ａ，１０Ｂ及びツール５の動作を制御する制御装置６とを備えている。
【００１５】
実施形態に係るロボット１は、左右のアーム１０Ａ，１０Ｂを備えた双腕ロボットである。左右のアーム１０Ａ，１０Ｂは、独立して動作したり、互いに関連して動作したりすることができる。左右のアーム１０Ａ，１０Ｂは実質的に同じ構造であり、左右のアーム１０Ａ，１０Ｂを区別しないときは「アーム１０」と添え字のアルファベットを省いて示す。
【００１６】
各アーム１０は水平多関節型ロボットアームであって、第１リンク１１と、第２リンク１２と、ツール５が取り付けられるメカニカルインターフェースを有するリスト部１３とを備え、これらが直列的に連結されている。
【００１７】
第１リンク１１は、台車１７の上面に固定された基軸１６と回転関節により連結されている。第１リンク１１は、基軸１６の軸心を通る垂直な回転軸線Ｌ１まわりに回動可能である。また、第２リンク１２は、第１リンク１１の先端と回転関節により連結されている。第２リンク１２は、第１リンク１１の先端に規定された垂直な回転軸線Ｌ２まわりに回動可能である。
【００１８】
リスト部１３は、第２リンク１２の先端と直進関節及び回転関節を介して連結されている。リスト部１３は、直進関節によって、第２リンク１２に対し昇降移動可能である。また、リスト部１３は、回転関節によって、第２リンク１２に対し垂直な回転軸線まわりに回動可能である。
【００１９】
上記構成のアーム１０は、各関節に対応して設けられた４つの制御軸Ｊ１〜Ｊ４を有する。そして、アーム１０には、各制御軸Ｊ１〜Ｊ４に対応付けられるように、駆動用のサーボモータＭ１〜Ｍ４、及び、サーボモータＭ１〜Ｍ４の回転角を検出するエンコーダＥ１〜Ｅ４（図４、参照）が設けられている。なお、各制御軸Ｊ１〜Ｊ４を特に区別しないときは「制御軸Ｊ」と添え字の数字を省いて示し、各サーボモータＭ１〜Ｍ４を特に区別しないときは「サーボモータＭ」と添え字の数字を省いて示し、各エンコーダＥ１〜Ｅ４を特に区別しないときは「エンコーダＥ」と添え字の数字を省いて示すこととする。
【００２０】
上記構成の２本のアーム１０Ａ，１０Ｂの第１リンク１１の回転軸線Ｌ１は同一直線上にあり、一方のアーム１０Ａの第１リンク１１と他方のアーム１０Ｂの第１リンク１１は上下に高低差を設けて配置されている。ロボット１の基本座標系の原点は第１リンク１１の回転軸線Ｌ１上に規定されている。これにより、２本のアーム１０Ａ，１０Ｂを連係させて動作させるにあたり、その制御・演算が単純となる。
【００２１】
続いて、制御装置６について説明する。制御装置６は、ロボット１の通常動作及び教示動作を制御する。図３及び図４は、ロボット１の制御系統の概略構成を示す図である。左右のアーム１０Ａ，１０Ｂの制御系統の構成は実質的に同一であるので、図４ではそのうち一つのアーム１０の制御系統の構成についてより詳細に示されている。
【００２２】
図３及び図４に示すように、制御装置６は、ホスト制御部２２と、各アーム１０Ａ，１０Ｂに対応したサーボ制御部２３Ａ，２３Ｂと、各アーム１０Ａ，１０Ｂに対応した駆動部２４Ａ，２４Ｂとを備えている。なお、本実施形態では、１つのホスト制御部２２で２本のアーム１０Ａ，１０Ｂの動作を制御するようにしているが、各アーム１０Ａ，１０Ｂにつきホスト制御部が設けられてもよい。２つのサーボ制御部２３Ａ，２３Ｂは実質的に同一の構成を有しており、各サーボ制御部２３Ａ，２３Ｂを特に区別しないときは「サーボ制御部２３」と添え字の数字を省いて示すこととする。また、２つの駆動部２４Ａ，２４Ｂは実質的に同一の構成を有しており、各駆動部２４Ａ，２４Ｂを特に区別しないときは「駆動部２４」と添え字の数字を省いて示すこととする。
【００２３】
駆動部２４は、アーム１０の制御軸Ｊ１〜Ｊ４の各々に対応して設けられている。但し、図４では１本のアーム１０に対して設けられた４つの駆動部２４のうち一つが詳細に示され、他は省略されている。各駆動部２４にはサーボ制御部２３が接続され、サーボ制御部２３にはホスト制御部２２が接続され、これらにより制御装置６が構成されている。
【００２４】
ホスト制御部２２へ操作指令を入力する入力装置６２として、グラフィカルインターフェースを有するタブレット型コンピュータが用いられる。入力装置６２と制御装置６とは無線で通信可能であり、教示者（操作者）が入力装置６２に入力した指令は制御装置６に入力される。この入力装置６２は、ロボット１を教示する際の制御装置６への入力手段であるティーチペンダントとしての機能も併せ備えている。
【００２５】
制御装置６は、いわゆるコンピュータであって、ＣＰＵ等の演算処理部と、ＲＯＭ、ＲＡＭ等の記憶部を有している（いずれも図示せず）。記憶部には、演算処理部が実行するプログラム、各種固定データ等が記憶されている。演算処理部は、例えば入力装置６２などの外部装置とデータの送受信を行う。また、演算処理部は、各種センサからの検出信号の入力や各制御対象への制御信号の出力を行う。制御装置６では、記憶部に記憶されたプログラム等のソフトウェアを演算処理部が読み出して実行することにより、ロボット１の各種動作を制御するための処理が行われる。特に、制御装置６のホスト制御部２２は、ロボット１を教示する際にロボット１の動作を制御するための処理を行う教示制御部２２ａとしての機能を少なくとも備えている。なお、制御装置６は単一のコンピュータによる集中制御により各処理を実行してもよいし、複数のコンピュータの協働による分散制御により各処理を実行してもよい。また、制御装置６は、マイクロコントローラ、プログラマブルロジックコントローラ（ＰＬＣ）等から構成されていてもよい。
【００２６】
ホスト制御部２２は、位置指令値を生成しサーボ制御部２３へ出力する。サーボ制御部２３は、ホスト制御部２２から取得した位置指令値に基づいて駆動指令値（トルク指令値）を生成し、増幅回路２６へ出力する。増幅回路２６は、入力された駆動指令値に対応した駆動電流をサーボモータＭへ供給する。サーボモータＭには、その出力回転角などを検出するエンコーダＥが設けられている。エンコーダＥで検出された回転角は、ホスト制御部２２及びサーボ制御部２３へ伝達される。
【００２７】
図５は、サーボ制御部２３を中心とした具体的な電気的構成を示す図である。図５に示すように、ホスト制御部２２からサーボ制御部２３へ位置指令値が入力されると、入力された位置指令値は減算器２９のプラス側の入力に与えられる。この減算器２９のマイナス側の入力には、エンコーダＥで検出された回転角を表す信号が与えられる。減算器２９では、位置指令値から回転角が減算される。
【００２８】
減算器２９の出力は係数器３１に与えられ、ここで位置ゲインＫｐで増幅されてから、加算器３２の一方の入力に与えられる。この加算器３２の他方の入力には、エンコーダＥからの回転角が微分回路３３で微分され、更に係数器３４で速度ゲインＫｖで増幅されたものが与えられる。加算器３２の出力は、積分器３５に与えられ、積分演算が行われる。積分器３５のゲインＧ１は、次の第１式で示される。なお、第１式（１）において、Ｋｘは定数であり、ｓは演算子である。
【００２９】
【数１】
0006706489.tif 000002
【００３０】
上記積分器３５の出力は位相補償器３６に与えられて位相制御動作時に位相補償の演算が行われる。位相補償器３６の位相補償の演算のゲインＧ２は、次の第２式で示される。なお、第２式においてαは定数である。
【００３１】
【数２】
0006706489.tif 000003
【００３２】
位相補償器３６の出力は、もう１つの加算器３７の一方の入力に与えられる。この加算器３７の他方の入力には、エンコーダＥの出力に応答する重力補償演算器２２ｂからの出力（重力補償値）が与えられて加算され、その加算出力は駆動指令値として増幅回路２６へ入力される。
【００３３】
なお、本実施形態に係るアーム１０では、複数の制御軸Ｊのうち第３制御軸Ｊ３に重力による負荷が作用する。そこで、第３制御軸Ｊ３の制御系統ではホスト制御部２２に重力補償演算器２２ｂを備えている。他の制御軸の駆動部２４の制御系統では、重力補償演算器２２ｂは備えられないか、又は、備えられても出力がゼロとされる。重力補償演算器２２ｂは、エンコーダＥで検出した第３制御軸Ｊ３の回転角に基づき予め記憶された計算式によって重力補償値を演算する。これにより、第３制御軸Ｊ３の制御系統では、サーボ制御部２３から出力される駆動指令値には、重力補償演算器２２ｂから出力された重力補償値が加味されており、その結果、重力補償トルクが発生するように第３制御軸Ｊ３の駆動部２４が動作する。
【００３４】
〔ダイレクト教示に係る制御〕
ここで、ロボット１の教示動作時の制御装置６の処理の流れを説明する。まず、教示者は、入力装置６２を用いて、教示に係る各種情報を制御装置６へ入力する。
【００３５】
例えば、入力装置６２には、２本のアーム１０Ａ，１０Ｂのうちいずれか一方を単独で教示する単独教示か、２本のアーム１０Ａ，１０Ｂが協調動作するように２本のアーム１０を連係させて教示する協調教示かを選択する、単独・協調選択画面が示される。単独・協調選択画面で単独の選択が入力されると、続いて、２本のアーム１０Ａ，１０Ｂのうちいずれか一本を教示するアームとして選択するアーム選択画面が入力装置６２に示される。また、単独・協調選択画面で協調の選択が入力されると、続いて、２本のアーム１０Ａ，１０Ｂのうちいずれか一方をマスタアーム１０Ｍとして選択するアーム選択画面が入力装置６２に示される。いずれのアーム選択画面でも、２本のアーム１０Ａ，１０Ｂのうちいずれか一方の選択を入力することができる。
【００３６】
次に、入力装置６２には、教示方式を選択する教示方式選択画面が示される。教示者は、この教示方式選択画面で、入力装置６２をティーチングペンダントとして用いた遠隔操作教示、ダイレクト教示などの複数の教示方式からいずれか一つを選択することができる。ここでダイレクト教示が選択された場合には、入力装置６２にはアーム移動モードを選択するアーム移動モード選択画面が表示される。教示者は、このアーム移動モード選択画面で、アーム１０又はツール５に規定された所定の標準点Ｋが自在に動くフリーモードと、標準点Ｋの移動経路が所定の直線上、所定の平面上、又は、所定の軸回りに制限される制限モードとのいずれか一方を選択することができる。標準点Ｋは、例えば、リスト部１３のメカニカルインターフェース座標系において定めたツールの代表点、手首標準点などの任意の点に規定される。ここで制限モードが選択された場合には、入力装置６２には移動制限指定画面が表示される。教示者は、この移動制限指定画面で、アーム１０の標準点Ｋの移動が拘束される直線、平面、又は軸を選択することができる。
【００３７】
以下では、２本のアーム１０Ａ，１０Ｂの、協調・制限モード・ダイレクト教示動作時の制御装置６の処理の流れの一例を説明する。この例では、２本のアーム１０Ａ，１０Ｂのうち一方をマスタアーム１０Ｍとし他方をスレイブアーム１０Ｓとし、標準点Ｋはマスタアーム１０Ｍの先端に規定される。そして、図６に示すように、この標準点Ｋの移動経路が初期位置ＰSから移動ベクトルＶと平行な方向に制限される。そして、教示者がマスタアーム１０Ｍ又はそのツール５に直接的に力を与えて、初期位置ＰSでのツール５の初期姿勢Ｓを保持したまま、標準点Ｋを初期位置ＰSから図中二点鎖線で示す所定の移動経路に沿って移動させる。
【００３８】
ロボット１の教示中は、マスタアーム１０Ｍの制御軸Ｊのうち動作が許容される制御軸Ｊの位置及び速度の各ゲインが十分に低く設定される。そのため、教示者がマスタアーム１０Ｍ又はそのツール５に外力を与えてマスタアーム１０Ｍを動かすと、標準点Ｋに変位が生じる。このことがエンコーダＥによって検出されると、標準点Ｋの変位を所定の移動経路に投影することにより求めた目標位置Ｐcom、換言すれば、所定の移動経路が有する方向成分のみ標準点Ｋの現在位置Ｐrを置き換えた目標位置Ｐcomが、ホスト制御部２２によって求められる。ホスト制御部２２は、この目標位置Ｐcomに対応したマスタアーム位置指令値Ｔcomを生成してサーボ制御部２３へ出力する。以下、制御装置６のホスト制御部２２で行われる具体的な処理の流れについて、図８を用いて説明する。
【００３９】
前述のように、入力装置６２に入力された教示に係る各種情報は、制御装置６へ伝達され、ホスト制御部２２はこれらの情報を取得して、位置指令値Ｔcomを生成するための演算処理を開始する。教示に係る各種情報には、マスタアーム１０Ｍの選択情報、標準点Ｋの移動が拘束される直線、平面、又は軸などの移動制限情報が含まれている。
【００４０】
処理を開始したホスト制御部２２は、先ず、アーム選択画面で入力された情報に基づき、２本のアーム１０Ａ，１０Ｂのうち選択された一方のアームをマスタアーム１０Ｍに指定し、他方のアームをスレイブアーム１０Ｓに指定する（ステップＳ１）。そして、ホスト制御部２２は、マスタアーム１０ＭのエンコーダＥから各制御軸Ｊの回転角を取得し、これに基づいて各制御軸Ｊの初期の軸角度θ0を検出する（ステップＳ２）。次に、ホスト制御部２２は、マスタアーム１０Ｍの各軸角度θ0に基づいて標準点Ｋの基本座標系の初期位置ＰS、及び、そのツール５の初期姿勢Ｓを求め、更に、マスタアーム１０Ｍの初期位置ＰS及び姿勢Ｓを表す姿勢回転行列Ｒ（θ0）を求める（ステップＳ３）。
【００４１】
続いて、ホスト制御部２２は、移動ベクトルＶを算出する（ステップＳ４）。移動ベクトルＶは、標準点Ｋの許容される移動方向を表す単位ベクトルである。制御装置６は、取得した移動制限情報（即ち、移動が拘束される直線、平面、又は軸などの移動経路を特定する情報）に基づいて移動ベクトルＶを求める。例えば、標準点Ｋの移動経路が或る直線上に拘束される場合、移動ベクトルＶはその直線と平行な単位ベクトルである。
【００４２】
また、ホスト制御部２２は、姿勢回転行列Ｒ（θ0）などを用いて、座標変換行列Ｑを算出する（ステップＳ５）。座標変換行列Ｑは、基準座標系の座標を新たなＱ座標系の座標へ座標変換する行列である。座標変換行列Ｑは、移動ベクトルＶがＱ座標系のｘ’ｙ’ｚ’直交３軸のうちの一つ、例えばｘ’軸と平行になるような変換を表す行列であることが望ましい。
【００４３】
図７は、座標変換行列Ｑによる座標変換を説明する図である。図７に示すように、座標変換行列Ｑは、移動ベクトルＶと、基本座標系のｘ軸をＱ座標系に変換したｘ’軸とが平行になるような変換を行う行列である。このように移動ベクトルＶがＱ座標系のｘ’ｙ’ｚ’直交３軸のいずれか１軸に平行であれば、Ｑ座標系での演算が容易となる。
【００４４】
続いて、ホスト制御部２２は、サーボ制御部２３の制御パラメータの値を変更する（ステップＳ６）。具体的には、マスタアーム１０Ｍの制御軸Ｊのうち動作が許容された制御軸Ｊに対応するサーボ制御部２３の、係数器３１の位置ゲインＫｐ及び係数器３４の速度ゲインＫｖを十分に小さく設定し、積分器３５のゲインＫｘをゼロとし、その積分器３５の内容をゼロにクリアし、更に位相補償器３６の機能を停止する。つまり、加算器３２の出力がそのまま加算器３７に与えられるようにする。なお、制御パラメータの値の変更（ステップＳ６）は、ステップＳ１の後から後述するステップＳ８の前までの間に行われればよいのであって、その処理の順序は本実施形態に限定されない。
【００４５】
更に、ホスト制御部２２は、重力補償の必要な制御軸Ｊについて重力補償を開始する（ステップＳ７）。本実施形態では、制御軸Ｊ３を駆動するサーボモータＭ３の制御系統において重力補償の演算が開始される。
【００４６】
ここで、教示者がマスタアーム１０Ｍ又はそのツール５の任意の箇所に直接的に力を加えてマスタアーム１０Ｍを動かし、標準点Ｋを所望の教示点へ徐々に移動させる。この移動の間に標準点Ｋの位置は刻々と変化するが、標準点Ｋの移動が所定の移動経路上に規制され、且つ、教示者がマスタアーム１０Ｍ又はそのツール５に与える力をアシストするように、マスタアーム１０Ｍの各制御軸Ｊが動作する。
【００４７】
ステップＳ８において、ホスト制御部２２は、標準点Ｋが変位したときのマスタアーム１０Ｍの各制御軸Ｊの軸角度θ1を検出する。ホスト制御部２２は、検出された各制御軸Ｊの軸角度θ1に基づいて、標準点Ｋの基本座標系の現在位置Ｐrを算出する（ステップＳ９）。更に、ステップＳ１０において、ホスト制御部２２は、算出した標準点Ｋの現在位置Ｐrを、Ｑ座標系の標準点Ｋの現在位置Ｐr’に座標変換する（Ｐr’＝Ｑ・Ｐr）。
【００４８】
ステップＳ１１において、ホスト制御部２２は、算出された標準点Ｋの基本座標系の現在位置Ｐrに基づいて、基本座標系における標準点Ｋの移動量ｄＰrを求める。更に、ホスト制御部２２は、移動量ｄＰrをＱ座標系における標準点Ｋの移動量ｄＰr’に変換する（ステップＳ１２）。
【００４９】
ステップＳ１３において、ホスト制御部２２は、現在位置Ｐr’を所定の移動経路に投影した位置をＱ座標系の目標位置Ｐcom’とする（図６、参照）。換言すれば、ホスト制御部２２は、所定の移動経路が有する方向成分を現在位置に置き換えた、Ｑ座標系の目標位置Ｐcom’を求める。例えば、ｘ’方向へのみ移動が許容されている場合の目標位置Ｐcom’は、ｙ’成分及びｚ’成分が０であり、ｘ’成分は移動量ｄＰr’のｘ’成分である。また、例えば、ｘ’ｙ’平面内でのみ移動が許容されている場合の目標位置Ｐcom’は、ｚ’成分が０であり、ｘ’成分及びｙ’成分はそれぞれ移動量ｄＰr’のｘ’成分、ｙ’成分である。
【００５０】
ステップＳ１４において、ホスト制御部２２は、Ｑ座標系の目標位置Ｐcom’を基本座標系に逆変換し（Ｐcom＝Ｑ−１・Ｐcom’）、基本座標系での目標位置Ｐcomを求める。
【００５１】
ステップＳ１５において、ホスト制御部２２は、目標位置Ｐcom及び姿勢Ｓと対応するマスタアーム位置指令値Ｔcomを生成する。更に、ホスト制御部２２は、このマスタアーム位置指令値Ｔcomに基づいて、スレイブアーム位置指令値Ｔcom’を生成する（ステップＳ１６）。
【００５２】
マスタアーム位置指令値Ｔcom（位置及び姿勢）と、スレイブアーム位置指令値Ｔcom’（位置及び姿勢）とは、予め記憶された関係（所定の関係）を有する。この「所定の関係」は、予めホスト制御部２２に記憶されている。或いは、初期のマスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的な位置及び姿勢を求め、これが所定の関係としてホスト制御部２２に記憶されていてもよい。ホスト制御部２２は、この所定の関係を表す変換行列などを用いて、マスタアーム位置指令値Ｔcomに基づいてスレイブアーム位置指令値Ｔcom’を生成することができる。
【００５３】
ホスト制御部２２は、上記のように生成したマスタアーム位置指令値Ｔcomをマスタアーム１０Ｍのサーボ制御部２３Ａへ出力するとともに、生成したスレイブアーム位置指令値Ｔcom’をスレイブアーム１０Ｓのサーボ制御部２３Ｂへ出力する（ステップＳ１７）。
【００５４】
上記のようにマスタアーム位置指令値Ｔcomを取得したマスタアーム１０Ｍのサーボ制御部２３Ａは、マスタアーム位置指令値Ｔcomに基づいて各制御軸Ｊを駆動し、これによりマスタアーム１０Ｍが動作する。これと同時に、スレイブアーム位置指令値Ｔcom’を取得したスレイブアーム１０Ｓのサーボ制御部２３Ｂは、スレイブアーム位置指令値Ｔcom’に基づいて各制御軸Ｊを駆動し、これによりスレイブアーム１０Ｓが動作する。上記のように動作するマスタアーム１０Ｍとスレイブアーム１０Ｓでは、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的な位置及び姿勢が所定の関係に維持される。
【００５５】
アーム１０の標準点Ｋが変位し続ける間は、上記のステップＳ８からＳ１７までの処理が所定時間間隔で繰り返される。この間、マスタアーム位置指令値Ｔcomと対応する指令角度θcomと検出された各制御軸Ｊの軸角度θとに偏差が生じているので、この偏差がゼロになるように各駆動部２４が負帰還制御される。これにより、教示者がマスタアーム１０Ｍを動かすためにアーム１０へ与える力がアシストされる。
【００５６】
そして、マスタアーム１０Ｍの標準点Ｋが教示者の所望の教示位置に至り、教示者が外力の付与を止めると、指令角度θcomと検出された各制御軸Ｊの軸角度θとの偏差がゼロとなり（ステップＳ１８でＮＯ）、マスタアーム１０Ｍの動作が停止し、ロボット１によるアシスト力が止む。同時に、スレイブアーム１０Ｓも停止する。
【００５７】
マスタアーム１０Ｍが変位しなくなると、ホスト制御部２２は、入力装置６２を介して教示者に位置教示指令の入力を促す。教示者が入力装置６２を介してホスト制御部２２に入力された位置教示指令を取得すると（ステップＳ１９でＹＥＳ）、ホスト制御部２２は標準点Ｋの現在位置情報（或いは、マスタアーム１０Ｍの位置情報及びスレイブアーム１０Ｓの位置情報）を教示位置の一つとして記録し（ステップＳ２０）、重力補償演算を終了し（ステップＳ２１）、制御系統のゲイン等の制御パラメータを元に戻す（ステップＳ２２）。
【００５８】
以上に説明した通り、本実施形態に係るロボット１のダイレクト教示方法では、制御装置６が、２本のアーム１０にマスタアーム１０Ｍとスレイブアーム１０Ｓとを割り当て、教示者がツール５を含むマスタアーム１０Ｍの任意の箇所に直接的に力を加えることによってマスタアーム１０Ｍを任意の教示位置へ動かしている間に、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢が所定の関係となるように、スレイブアーム１０Ｓをマスタアーム１０Ｍに対し協調動作させる。そして、制御装置６は、マスタアーム１０Ｍが任意の教示位置に到達したときのマスタアーム１０Ｍ及びスレイブアーム１０Ｓの位置情報を記憶する。
【００５９】
上記方法によれば、教示者によって直接的に動かされているマスタアーム１０Ｍの動きに追従して、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢が所定の関係を維持するようにスレイブアーム１０Ｓが自動的に協調動作する。これにより、２本のアーム１０の教示作業において、２本のアーム１０の相対的な位置及び姿勢を調整するための煩雑で専門性の高い作業を省略することができ、教示作業が単純となる。また、教示者はアーム１０の位置及び姿勢の関係を視覚的に捉えることができるので、教示者は２本のアーム１０の状況を容易に確認することができる。
【００６０】
また、本実施形態に係るロボット１のダイレクト教示方法では、制御装置６が、マスタアーム１０Ｍ及びスレイブアーム１０Ｓが動く前のマスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢を所定の関係として記憶し、これを教示制御に利用している。
【００６１】
これによれば、教示作業の開始時に、マスタアーム１０Ｍとスレイブアーム１０Ｓとで、例えば、ハンドリングされるワークを持たせるだけで、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢の関係を設定することができ、教示作業が簡易となる。
【００６２】
また、本実施形態に係るロボット１のダイレクト教示方法では、マスタアーム１０Ｍに標準点Ｋを規定し、標準点Ｋの移動が所定の移動経路に制限される制限モードと、標準点Ｋの移動が所定の移動経路に限定されないフリーモードとを選択可能である。
【００６３】
このように、ダイレクト教示において制限モードとフリーモードとが選択可能であるので、教示者はその状況に応じてモードを選択することができ、マスタアーム１０Ｍ及び／又はツール５に教示者の意図に応じた移動をさせることが容易となる。
【００６４】
また、本実施形態に係るロボット１のダイレクト教示方法では、教示者がマスタアーム１０Ｍを動かしている間に、マスタアーム１０Ｍの制御軸Ｊの軸角度θ1を検出し、軸角度θ1に基づいて標準点Ｋの現在位置Ｐrを求め、現在位置Ｐrを所定の移動経路（移動方向）に投影した位置を目標位置Ｐcomとするマスタアーム位置指令値Ｔcomを生成し、マスタアーム位置指令値Ｔcomと所定の関係とに基づいてスレイブアーム位置指令値Ｔcom’を生成し、スレイブアーム位置指令値Ｔcom’に基づいてスレイブアーム１０Ｓの制御軸Ｊを駆動するとともにマスタアーム位置指令値Ｔcomに基づいてマスタアーム１０Ｍの制御軸Ｊを駆動することを、マスタアーム１０Ｍの制御軸Ｊの各々についてマスタアーム位置指令値Ｔcomと対応する軸角度（指令角度θcom）と検出された軸角度θとの偏差がゼロになるまで繰り返し、偏差がゼロになったあとでマスタアーム１０Ｍ及びスレイブアーム１０Ｓの少なくとも一方の位置情報を制御装置６に記憶する。ここで、ロボット１のダイレクト教示中のマスタアーム１０Ｍの標準点Ｋの移動は、所定の移動経路上に制限されている。
【００６５】
上記では、ロボット１のダイレクト教示中に、制御装置６が、マスタアーム１０Ｍの各軸角度θ1を検出し、これに基づいて現在位置Ｐrを算出し、現在位置Ｐrを予め定める移動経路（移動方向）に投影して目標位置Ｐcomを求め、この目標位置Ｐcomに基づいてマスタアーム位置指令値Ｔcomを生成する演算処理を繰り返す。
【００６６】
このように、ロボット１のダイレクト教示中に、マスタアーム１０Ｍの各制御軸Ｊがマスタアーム位置指令値Ｔcomに基づいて駆動されることによって、教示者がマスタアーム１０Ｍ又はツール５に与えた外力をアシストするようにマスタアーム１０Ｍ自身が動作する。ここで、マスタアーム位置指令値Ｔcomは逐次変化するマスタアーム１０Ｍの各軸角度θ1に基づいて逐次変更されるので、標準点Ｋが教示者の意図を超えて移動することはない。従って、標準点Ｋを所望の教示位置に位置決めするにあたり、マスタアーム１０Ｍ及び／又はツール５の位置の微調整が容易である。また、ロボット１は、従来備えている機能を発揮させることによって上記動作を行うことができるので、マスタアーム１０Ｍに付与された外力を検出する外力検出手段及びそのための制御が不要である。
【００６７】
また、ロボット１のダイレクト教示中に、標準点Ｋの移動は所定の移動経路（所定の移動方向）に制限されるので、例え教示者がマスタアーム１０Ｍ又はツール５に与えた外力の方向が標準点Ｋの移動方向と一致しなくとも、標準点Ｋは所定の移動経路に沿って移動する。よって、標準点Ｋを教示者の所望する位置へ移動させることが容易となる。また、ダイレクト教示中のマスタアーム１０Ｍの各制御軸Ｊの動作によって教示者がマスタアーム１０Ｍ又はツール５に与える力がアシストされるので、教示者は、静摩擦力が大きい軸（例えば、基端側の第１制御軸Ｊ１）などをも、比較的小さな力で動かすことができる。なお、本実施形態においては、１本のマスタアーム１０Ｍにつき４本の制御軸Ｊ１〜Ｊ４を備えたロボット１のダイレクト教示方法について説明したが、マスタアーム１０Ｍの制御軸Ｊの数は上記に限定されない。
【００６８】
また、上記実施形態に係るロボット１のダイレクト教示方法では、マスタアーム１０Ｍの制御軸Ｊの位置ゲイン及び速度ゲインが任意に設定可能である。本実施形態においては、マスタアーム１０Ｍの制御軸Ｊのうち、ダイレクト教示中に動作が許容される制御軸Ｊの位置及び速度の各ゲインが十分に低く設定される。
【００６９】
これにより、教示者がマスタアーム１０Ｍ又はツール５に与えた力によって軸が変位しやすくなる。更に、教示者がマスタアーム１０Ｍ又はツール５に与える僅かの力に対してもアシスト力を生じさせることができる。
【００７０】
また、上記実施形態に係るロボット１のダイレクト教示方法では、マスタアーム１０Ｍの制御軸Ｊのうち少なくとも一つ（第３制御軸Ｊ３）に対して重力補償演算を行い、その演算結果を当該制御軸のトルク指令値（駆動指令値）に加算している。
【００７１】
これにより、ロボット１のダイレクト教示中に、マスタアーム１０Ｍの制御軸Ｊの姿勢が変化しても、その姿勢に対応した重力補償を正確に行うことが可能になる。
【００７２】
また、上記実施形態に係るロボット１のダイレクト教示方法では、教示者がマスタアーム１０Ｍを動かす前に、マスタアーム１０Ｍの制御軸Ｊの軸角度θ0に基づいてツール５の初期姿勢Ｓを求め、教示者がマスタアーム１０Ｍを動かしている間にツール５の初期姿勢が維持されるようにマスタアーム位置指令値Ｔcomが生成される。
【００７３】
これにより、ロボット１のダイレクト教示中に、ツール５の初期姿勢Ｓを維持したまま、マスタアーム１０Ｍだけを移動させることができる。つまり、ツール５の初期姿勢Ｓを維持したまま、ツール５の位置だけを変化させることができる。なお、上記実施形態では、ロボット１のダイレクト教示中にツール５の初期姿勢Ｓを維持するようにしたが、ロボット１のダイレクト教示中に、マスタアーム１０Ｍの移動に伴ってツール５の位置及び姿勢を変化させたり、ツール５の位置を固定してツール５の姿勢のみを変化させたりするようにしてもよい。
【００７４】
なお、上記実施形態に係るロボット１のダイレクト教示方法では、図７に示すように、標準点Ｋの所定の移動経路が、基本座標系でのｘｙｚ直交３軸においてｘ−ｙ平面と平行な或る直線上に規定されている。但し、本発明において所定の移動経路（移動方向）はこれに限定されず、標準点Ｋの初期位置ＰSと、次の教示位置との関係に基づいて適宜決定される。  
【００７５】
例えば、標準点Ｋの所定の移動経路が、基本座標系でのｘｙｚ直交３軸方向のいずれか、又は、ツール座標系のｘｙｚ直交３軸方向のいずれかと平行な直線上であってよい。また、例えば、標準点Ｋの所定の移動経路が、基本座標系でのｘｙｚ直交３軸のうち２つの組み合わせ、又は、ツール座標系のｘｙｚ直交３軸のうち２つの組み合わせにより規定される平面と平行な平面上であってよい。また、例えば、標準点Ｋの所定の移動経路が、基本座標系でのｘｙｚ直交３軸のいずれか、又は、ツール座標系のｘｙｚ直交３軸のいずれかを回転の中心とする回転軌跡上であってよい。
【００７６】
また、上記実施形態に係るロボット１のダイレクト教示方法では、現在位置Ｐrからマスタアーム位置指令値Ｔcomを生成するにあたり、所定の移動経路上の移動ベクトルＶを求め、移動ベクトルＶが新たなＱ座標系のｘ’ｙ’ｚ’直交３軸のいずれかと平行となるように基本座標系をＱ座標系に変換する座標変換行列Ｑを求め、基本座標系の標準点Ｋの現在位置ＰrをＱ座標系に座標変換し、Ｑ座標系の現在位置Ｐr’を所定の移動経路に投影した位置をＱ座標系の目標位置Ｐcom’とし、その目標位置Ｐcom’を基本座標系に座標変換して目標位置Ｐcomを求めている。
【００７７】
このように座標変換を利用することで、制御装置６の演算処理を単純化することができる。
【００７８】
以上の通り、本実施形態に係るロボット１のダイレクト教示方法によれば、複数のアーム１０を備えたロボット１において、複数のアーム１０を連係させながらダイレクト教示するにあたり、その教示作業を簡易とすることができる。
【００７９】
以上に本発明の好適な実施の形態を説明したが、上記の構成は例えば以下のように変更することができる。
【００８０】
上記実施形態では、ロボット１は２本のアーム１０Ａ，１０Ｂを備えた双腕ロボットであるが、ロボット１が備えるアーム１０の数は３本以上の複数であってもよい。この場合、前述のステップＳ１において、複数のアーム１０のうち１本をマスタアーム１０Ｍと指定し、余のアーム１０のうち少なくとも１本をスレイブアーム１０Ｓと指定する。ここで、スレイブアーム１０Ｓが２本以上の場合には、各スレイブアーム１０Ｓにつき、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢を所定の関係として制御装置６に記憶されている。そして、ロボット１のダイレクト教示中に、制御装置６は、マスタアーム１０Ｍのリスト部１３とスレイブアーム１０Ｓのリスト部１３との相対的位置及び姿勢が所定の関係となるように、各スレイブアーム１０Ｓをマスタアーム１０Ｍに対し協調動作させる。なお、複数のアーム１０のうちマスタアーム１０Ｍ及びスレイブアーム１０Ｓのいずれにも指定されなかったアーム１０は、ロボット１のダイレクト教示中に静止させておいてよい。
【００８１】
以上の説明から、当業者にとっては、本発明の多くの改良や他の実施形態が明らかである。従って、上記説明は、例示としてのみ解釈されるべきであり、本発明を実行する最良の態様を当業者に教示する目的で提供されたものである。本発明の精神を逸脱することなく、その構造及び／又は機能の詳細を実質的に変更できる。
【符号の説明】
【００８２】
１          ：ロボット
５          ：ツール
６          ：制御装置
１０，１０Ａ，１０Ｂ        ：ロボットアーム
２２        ：ホスト制御部
２２ｂ      ：重力補償演算器
２３（２３Ａ，２３Ｂ）      ：サーボ制御部
２４（２４Ａ，２４Ｂ）      ：駆動部
２６        ：増幅回路
６２        ：入力装置
Ｅ（Ｅ１〜Ｅ４）          ：エンコーダ
Ｊ（Ｊ１〜Ｊ４）          ：制御軸
Ｋ          ：標準点
Ｍ（Ｍ１〜Ｍ４）          ：サーボモータ
【図１】
0006706489.tif 000004
【図２】
0006706489.tif 000005
【図３】
0006706489.tif 000006
【図４】
0006706489.tif 000007
【図５】
0006706489.tif 000008
【図６】
0006706489.tif 000009
【図７】
0006706489.tif 000010
【図８】
0006706489.tif 000011