(57)【特許請求の範囲】
【請求項１】
アームと、前記アームに設けられたエンドエフェクターと、前記アームに設けられていて力を検出する力検出器と、を有するロボットを制御する制御装置であって、
前記エンドエフェクターの第１部分を作業面に接近させて、前記力検出器からの出力に基づいて前記第１部分と前記作業面との接触を検出した後、前記第１部分とは異なる前記エンドエフェクターの第２部分を前記作業面に接近させて、前記力検出器からの出力に基づいて前記第２部分と前記作業面との接触を検出し、前記作業面に対する前記エンドエフェクターの位置を前記ロボットに教示させ、
前記第２部分を前記作業面に接触させた後、前記第１部分および前記第２部分とは異なる前記エンドエフェクターの第３部分を前記作業面に接近させて、前記力検出器からの出力に基づいて前記第３部分と前記作業面との接触を検出することを特徴とする制御装置。
【請求項２】
前記第２部分の前記作業面への接近は、前記第１部分を前記作業面に接触させた状態で、前記第１部分を支点として前記エンドエフェクターの姿勢を変化させる動作を含む請求項１に記載の制御装置。
【請求項３】
前記第１部分が前記作業面に接触したときの前記力検出器の出力と、前記第２部分が前記作業面に接触したときの前記力検出器の出力とから、教示点を求める請求項１または２に記載の制御装置。
【請求項４】
前記第１部分が前記作業面に接触したときの前記力検出器の出力と、前記第２部分が前記作業面に接触したときの前記力検出器の出力とから、前記エンドエフェクターの姿勢を求める請求項１ないし３のいずれか１項に記載の制御装置。
【請求項５】
前記作業面上の少なくとも３つの箇所において、前記作業面に対する前記エンドエフェクターの位置を検出する請求項１ないし４のいずれか１項に記載の制御装置。
【請求項６】
前記少なくとも３つの箇所における教示点をそれぞれ求め、少なくとも３つの前記教示点から、前記作業面の座標系を求める請求項５に記載の制御装置。
【請求項７】
前記少なくとも３つの箇所における前記エンドエフェクターの姿勢をそれぞれ求め、少なくとも３つの前記エンドエフェクターの姿勢から、前記作業面が平面であるか否かを判断する請求項５または６に記載の制御装置。
【請求項８】
前記ロボットが有する前記アームは、第１回動軸周りに回動可能な第１アームと、前記第１アームに設けられていて前記第１回動軸の軸方向とは異なる軸方向である第２回動軸周りに回動可動な第２アームと、を有する請求項１ないし７のいずれか１項に記載の制御装置。
【請求項９】
請求項１ないし８のいずれか１項に記載の制御装置により制御されることを特徴とするロボット。
【請求項１０】
請求項１ないし８のいずれか１項に記載の制御装置と、
前記制御装置により制御されるロボットと、を備えることを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、ロボットおよびロボットシステムに関するものである。
【背景技術】
【０００２】
従来から、例えば精密機器等の製造において各種部品の把持や組立等の作業を行うロボットと、このロボットを制御する制御装置とを備えたロボットシステムが知られている。このようなロボットシステムにおいて、ロボットに作業をさせる際には、一般的に、ロボットが作業する作業面をロボットにティーチングする。
【０００３】
ロボットのティーチング方法の一例が、例えば、特許文献１に開示されている。
特許文献１には、部品の把持等を行うハンドを先端部に取り付けることができるアームを有するロボット本体と、ロボット本体を制御する制御装置とを備えるロボット（ロボットシステム）について開示されている。この特許文献１では、ハンドの代わりにアームの先端部にティーチングペンダントを接続し、ティーチングペンダントを用いてロボットに対して作業面のティーチングを行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３６７１６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、このような従来のティーチングペンダントを用いたティーチング方法では、一般的に、ユーザー（作業者）が作業面とティーチングペンダントとの接触を確認するため、ユーザーによって接触の判断に差が生じてしまう。
【０００６】
また、実際に部品の把持等を行うハンドとは異なるティーチングペンダントを用いてティーチングを行っているため、作業面に対するハンドの位置や姿勢を高精度にティーチングすることができないという問題がある。例えば、ハンドと作業面が接触していない状態で作業面が特定された場合、ロボットが正確に作業を行うことができないという問題がある。
【課題を解決するための手段】
【０００７】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の本発明により実現することが可能である。
【０００８】
本発明の制御装置は、アームと、前記アームに設けられたエンドエフェクターと、前記アームに設けられていて力を検出する力検出器と、を有するロボットを制御する制御装置であって、
前記エンドエフェクターの第１部分を作業面に接近させて、前記力検出器からの出力に基づいて前記第１部分と前記作業面との接触を検出した後、前記第１部分とは異なる前記エンドエフェクターの第２部分を前記作業面に接近させて、前記力検出器からの出力に基づいて前記第２部分と前記作業面との接触を検出し、前記作業面に対する前記エンドエフェクターの位置を前記ロボットに教示させることを特徴とする。
【０００９】
このような制御装置によれば、力検出器を備えたロボットを制御することにより、作業面に対するエンドエフェクターの位置をより高精度に教示させることができる。
【００１０】
また、本発明の制御装置によれば、教示において、エンドエフェクターの第１部分を作業面に接触させた後、第１部分とは異なる第２部分を作業面に接触させるため、ロボットに、作業面に対するエンドエフェクターの位置および姿勢を高精度に教示することができる。
【００１１】
本発明の制御装置では、前記第２部分の前記作業面への接近は、前記第１部分を前記作業面に接触させた状態で、前記第１部分を支点として前記エンドエフェクターの姿勢を変化させる動作を含むことが好ましい。
【００１２】
これにより、ロボットに、作業面に対するエンドエフェクターの位置および姿勢を特に高精度に教示することができる。
【００１３】
本発明の制御装置では、前記第１部分が前記作業面に接触したときの前記力検出器の出力と、前記第２部分が前記作業面に接触したときの前記力検出器の出力とから、教示点を求めることが好ましい。
【００１４】
このように、複数の検出結果を基に教示点を求めることができるので、教示点の位置の精度をより高めることができる。その結果、ロボットに、作業面に対するエンドエフェクターの位置をより高精度に教示することができる。
【００１５】
本発明の制御装置では、前記第１部分が前記作業面に接触したときの前記力検出器の出力と、前記第２部分が前記作業面に接触したときの前記力検出器の出力とから、前記エンドエフェクターの姿勢を求めることが好ましい。
【００１６】
このように、複数の検出結果を基に教示点を求めることができるので、作業面に対するエンドエフェクターの姿勢の精度をより高めることができる。その結果、ロボットに、作業面に対するエンドエフェクターの姿勢をより高精度に教示することができる。
【００１７】
本発明の制御装置では、前記第２部分を前記作業面に接触させた後、前記第１部分および前記第２部分とは異なる前記エンドエフェクターの第３部分を前記作業面に接近させて、前記力検出器からの出力に基づいて前記第３部分と前記作業面との接触を検出することが好ましい。
【００１８】
これにより、ロボットに、作業面に対するエンドエフェクターの位置および姿勢をより高精度に教示することができる。
【００１９】
本発明の制御装置では、前記作業面上の少なくとも３つの箇所において、前記作業面に対する前記エンドエフェクターの位置を検出することが好ましい。
これにより、作業面の座標系をより高精度に求めることができる。
【００２０】
本発明の制御装置では、前記少なくとも３つの箇所における教示点をそれぞれ求め、少なくとも３つの前記教示点から、前記作業面の座標系を求めることが好ましい。
これにより、作業面の座標系をより高精度に求めることができる。
【００２１】
本発明の制御装置では、前記少なくとも３つの箇所における前記エンドエフェクターの姿勢をそれぞれ求め、少なくとも３つの前記エンドエフェクターの姿勢から、前記作業面が平面であるか否かを判断することが好ましい。
これにより、作業面の状態をより正確に把握することができる。
【００２２】
本発明の制御装置では、前記ロボットが有する前記アームは、第１回動軸周りに回動可能な第１アームと、前記第１アームに設けられていて前記第１回動軸の軸方向とは異なる軸方向である第２回動軸周りに回動可動な第２アームと、を有することが好ましい。
【００２３】
このような構成のロボットに対して、特に、本発明の制御装置による効果を顕著に発揮することができる。
【００２４】
本発明のロボットは、本発明の制御装置により制御されることを特徴とする。
これにより、作業面に対するエンドエフェクターの位置および姿勢を高精度に教示することができる制御装置により制御されるロボットを提供することができる。
【００２５】
本発明のロボットシステムは、本発明の制御装置と、
前記制御装置により制御されるロボットと、を備えることを特徴とする。
【００２６】
これにより、作業面に対するエンドエフェクターの位置および姿勢を高精度に教示することができる制御装置と、その制御装置により制御されるロボットとを備えるロボットシステムを提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本発明のロボットシステムの好適な実施形態を示す図である。
【図２】図１に示すロボットシステムのブロック図である。
【図３】図１に示すロボットの概略図である。
【図４】図１に示すロボットが有するハンドの概略図である。
【図５】図１に示すロボットに教示する作業面を示す図である。
【図６】図１に示すロボットに対する作業面の教示について説明するためのフローチャートである。
【図７】図６に示す教示点の算出を説明するためのフローチャートである。
【図８】ハンドの第１部分と作業面とが接触した状態を示す図である。
【図９】ハンドの第２部分と作業面とが接触した状態を示す図である。
【図１０】ハンドの第２部分と作業面とが接触した状態を示す図である。
【図１１】ハンドの第３部分と作業面とが接触した状態を示す図である。
【発明を実施するための形態】
【００２８】
以下、本発明の制御装置、ロボットおよびロボットシステムを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【００２９】
《ロボットシステム》
図１は、本発明のロボットシステムの好適な実施形態を示す図である。図２は、図１に示すロボットシステムのブロック図である。図３は、図１に示すロボットの概略図である。図４は、図１に示すロボットが有するハンドの概略図である。図５は、図１に示すロボットに教示する作業面を示す図である。図６は、図１に示すロボットに対する作業面の教示について説明するためのフローチャートである。図７は、図６に示す教示点の算出を説明するためのフローチャートである。図８は、ハンドの第１部分と作業面とが接触した状態を示す図である。図９および図１０は、それぞれ、ハンドの第２部分と作業面とが接触した状態を示す図である。図１１は、ハンドの第３部分と作業面とが接触した状態を示す図である。
【００３０】
なお、以下では、説明の都合上、図１中の上側を「上」または「上方」、下側を「下」または「下方」と言う。また、図１中の基台側を「基端」または「上流」、その反対側（ハンド側）を「先端」または「下流」と言う。また、図１中の上下方向を「鉛直方向」とし、左右方向を「水平方向」とする。
【００３１】
図１に示すロボットシステム１００は、ロボット１と、ロボット１の作動を制御する制御装置５と、を備えている。このロボットシステム１００は、例えば、腕時計のような精密機器等を製造する製造工程等で用いることができる。
【００３２】
〈ロボット〉
図１に示すロボット１は、精密機器やこれを構成する部品（対象物）の給材、除材、搬送および組立等の作業を行うことができる。
【００３３】
ロボット１は、６軸の垂直多関節ロボットであり、基台１１と、基台１１に接続されたロボットアーム２０と、ロボットアーム２０の先端部に設けられた力検出器４０とハンド３０と、を有する。また、図２に示すように、ロボット１は、ロボットアーム２０を駆動させる動力を発生させる複数の駆動源１３や複数のモータードライバー１２を備えている。
【００３４】
図１に示す基台１１は、ロボット１を任意の設置箇所に取り付ける部分である。なお、基台１１の設置箇所は、特に限定されず、例えば、床、壁、天井、移動可能な台車上などが挙げられる。
【００３５】
ロボットアーム２０は、第１アーム２１（アーム）と、第２アーム２２（アーム）と、第３アーム２３（アーム）と、第４アーム２４（アーム）と、第５アーム２５（アーム）と、第６アーム２６（アーム）とを有する。第１アーム２１と第２アーム２２と第３アーム２３と第４アーム２４と第５アーム２５と第６アーム２６とは、基端側から先端側に向ってこの順に連結されている。第１アーム２１は、基台１１に接続されている。第６アーム２６の先端には、例えば、各種部品等を把持するハンド３０（エンドエフェクター）が着脱可能に取り付けられている。
【００３６】
図３に示すように、基台１１と第１アーム２１とは、関節１７１（ジョイント）を介して連結されている。第１アーム２１は、基台１１に対し、鉛直方向と平行な第１回動軸Ｏ１を回動中心として回動可能となっている。
【００３７】
第１アーム２１と第２アーム２２とは、関節１７２（ジョイント）を介して連結されている。第２アーム２２は、第１アーム２１に対し、水平方向と平行な第２回動軸Ｏ２を回動中心として回動可能となっている。第２回動軸Ｏ２は、第１回動軸Ｏ１と直交している。
【００３８】
第２アーム２２と第３アーム２３とは、関節１７３（ジョイント）を介して連結されている。第３アーム２３は、第２アーム２２に対し、水平方向と平行な第３回動軸Ｏ３を回動中心として回動可能となっている。第３回動軸Ｏ３は、第２回動軸Ｏ２と平行である。
【００３９】
第３アーム２３と第４アーム２４とは、関節１７４（ジョイント）を介して連結されている。第４アーム２４は、第３アーム２３に対し、第３アーム２３の中心軸方向と平行な第４回動軸Ｏ４を回動中心として回動可能となっている。
【００４０】
第４アーム２４と第５アーム２５とは、関節１７５（ジョイント）を介して連結されている。第５アーム２５は、第４アーム２４に対し、第５回動軸Ｏ５を回動中心として回動可能となっている。第５回動軸Ｏ５は、第４回動軸Ｏ４と直交している。
【００４１】
第５アーム２５と第６アーム２６とは、関節１７６（ジョイント）を介して連結されている。第６アーム２６は、第５アーム２５に対し、第６回動軸Ｏ６を回動中心とて回動可能となっている。第６回動軸Ｏ６は、第５回動軸Ｏ５と直交している。
【００４２】
図２に示すように、各アーム２１〜２６には、それぞれ、サーボモーター等のモーターおよび減速機を有する複数の駆動源１３が設けられている。すなわち、ロボット１は、アーム２１〜２６に対応した数（本実施形態では６つ）の駆動源１３を有している。そして、各アーム２１〜２６は、それぞれ、対応する駆動源に電気的に接続された複数（本実施形態では６つ）のモータードライバー１２を介して制御装置５により制御されている。なお、モータードライバーは、基台１１内に収納されている。
【００４３】
また、各駆動源１３には、例えば、エンコーダー、ロータリーエンコーダー等の角度センサー（図示せず）が設けられている。これにより、各駆動源１３が有するモーターまたは減速機の回転軸の回転角度を検出することができる。
【００４４】
図１に示すように、力検出器４０は、円形の板状をなし、第６アーム２６の先端部に設けられている。この力検出器４０は、第６アーム２６とハンド３０との間に位置している。
【００４５】
図４に示すように、力検出器４０は、互いに直交する３つの軸（ｘ軸、ｙ軸、ｚ軸）方向の並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび３つの軸（ｘ軸、ｙ軸、ｚ軸）周りの回転力成分（モーメント）Ｍｘ、Ｍｙ、Ｍｚの６成分を検出することができる６軸力覚センサーである。３つの軸（ｘ軸、ｙ軸、ｚ軸）は、ｘ軸およびｙ軸が力検出器４０の先端面（基端面）に平行であり、ｚ軸が力検出器４０の厚さ方向に平行である。
【００４６】
このような力検出器４０によって、ロボット１は、ハンド３０にかかる力やモーメントを検出することができる。
【００４７】
なお、本実施形態では、力検出器４０は、第６アーム２６の先端部に設けられているが、力検出器４０の設置箇所は、ハンド３０にかかる力やモーメントを検出することができる位置であれば如何なる箇所であってもよい。例えば、力検出器４０は、第６アーム２６の基端部に設けられていてもよい。
【００４８】
図１および図４に示すように、第６アーム２６の先端部（ロボットアーム２０の先端部）には、力検出器４０を介して、ハンド３０（エンドエフェクター）が着脱可能に取り付けられている。このハンド３０は、２本の指３１、３２を有しており、指３１、３２で例えば各種部品等を把持することができる。
【００４９】
図４に示すように、本実施形態では、ハンド３０は、その基端面の中心Ｏ３０（および、２つの指３１、３２の間の領域の中心）が、アーム２６の第６回動軸Ｏ６上に位置するようにロボットアーム２０に取り付けられている。
【００５０】
なお、本実施形態では、前述したように、ハンド３０は、ロボットアーム２０に対して着脱可能に設けられているが、ロボットアーム２０に対して固設されていてもよい。また、本実施形態では、ハンド３０は、２本の指３１、３２を有しているが、ハンド３０の指の数は、任意であり、例えば、３本や４本等であってもよい。また、本実施形態では、エンドエフェクターとしてハンド３０を用いているが、エンドエフェクターとしては、ハンド３０以外の構成であってもよく、各種部品等に対する作業（例えば、把持、持ち上げまたは吸着）を行うことができる構成であれば如何なる構成であってもよい。また、エンドエフェクターのロボットアーム２０に対する数や配置は、図示のものに限定されない。
【００５１】
以上、ロボット１の構成について簡単に説明した。このような構成のロボット１は、前述したように、６つ（複数）のアーム２１〜２６を有する垂直多関節ロボットであるため、駆動範囲が広く、高い作業性を発揮することができる。
【００５２】
〈制御装置〉
図１に示す制御装置５は、ロボット１の各部を制御する。この制御装置５は、例えば、ＣＰＵ（Central Processing Unit）やＲＯＭ（read only memory）およびＲＡＭ（Random Access Memory）が内蔵されたパーソナルコンピューター（ＰＣ）等で構成することができる。
【００５３】
図２に示すように、制御装置５は、駆動制御部５１と、情報取得部５２と、接触判断部５３と、処理部５４と、記憶部５５と、を備える。
【００５４】
駆動制御部５１は、各アーム２１〜２６の駆動を担う各駆動源１３の駆動を制御する。例えば、駆動制御部５１は、力検出器４０および角度センサー（図示せず）の検出結果（信号）に基づき、各アーム２１〜２６をそれぞれ独立して駆動させたり停止させたりすることができる。
【００５５】
情報取得部５２は、力検出器４０で検出された検出結果を取得する。
接触判断部５３は、情報取得部５２で取得した検出結果（並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび回転力成分Ｍｘ、Ｍｙ、Ｍｚ）と、後述する記憶部５５に記憶されている情報（ハンド３０と作業面６０とが接触したときに力検出器４０から出力される検出結果）とを基に、ハンド３０が作業面６０（図５参照）に接触したか否かを判断する。
【００５６】
処理部５４は、情報取得部５２で取得した検出結果を基に、ハンド３０の教示点や姿勢を求めたりする。
【００５７】
記憶部５５は、制御装置５０が各種処理を行うためのプログラムやデータ等を記憶する。また、記憶部５５には、例えば、ハンド３０が作業面６０に接触したときに力検出器４０から出力される検出結果等の情報（データベース）が予め記憶されている。
【００５８】
なお、このような制御装置５は、本実施形態では、図１に示すように、ロボット１とは、別体で設けられているが、ロボット１に内蔵されていてもよい。
以上、ロボットシステム１００の基本的な構成について簡単に説明した。
【００５９】
このようなロボットシステム１００では、ロボット１が作業面６０において各種部品の把持等の作業を行うに際し、ロボット１に、図５に示すような作業面６０に対するハンド３０の位置や姿勢を教示（ティーチング）する。
【００６０】
ロボット１の作業では、ハンド３０（具体的には、指３１の先端面および指３２の先端面）を作業面６０に対してほぼ平行にすることで、ハンド３０による作業性が向上する。作業面６０は、例えば、作業台上の面や、ロボット１が組立等を行う部品が有する面である。このロボット１が作業をする作業面６０は一定の向きになっているとは限らない。そこで、ロボット１に、図５に示すような作業面６０に対するハンド３０の位置や姿勢を教示する。
【００６１】
図６に示すように、ロボット１の教示は、教示点の算出（ステップＳ１００）と、作業面の座標系の算出（ステップＳ２００）と、作業面に対するハンドの位置および姿勢の教示（ステップＳ３００）と、を有している。
【００６２】
なお、以下の説明では、図５に示すように、最終的に求める作業面６０の座標系が、Ｘ軸およびＹ軸を含むＸ−Ｙ面に平行で、Ｚ軸を法線とする場合について説明する。
【００６３】
［教示点の算出（ステップＳ１００）］
まず、教示点の算出（ステップＳ１００）を行う。
図７に示すフローを参照しつつ、教示点の算出（ステップＳ１００）について説明する。この教示点の算出（ステップＳ１００）では、作業面６０上の互いに離れた任意の３つの箇所Ａ、Ｂ、Ｃ（３つの測定点）におけるハンド３０の教示点を算出する。
【００６４】
まず、箇所Ａにおける教示点を求める。
図７に示すように、駆動制御部５１の指令によりロボットアーム２０を駆動して、ハンド３０の箇所Ａ（目的箇所）への接近（移動）を開始する（ステップＳ１）。ここで、ハンド３０を箇所Ａへ接近させる際、作業面６０に対してハンド３０を傾けた状態で接近させる。
【００６５】
上記のようにしてハンド３０を箇所Ａへ接近させていき、情報取得部５２にて取得した力検出器４０からの検出結果を基に、接触判断部５３にてハンド３０が作業面６０に接触したか否かを判断する（ステップＳ２）。接触したと判断されるまでハンド３０の箇所Ａへの接近を続け、接触したと判断された場合には、駆動制御部５１の指令によりロボットアーム２０の駆動を停止する（ステップＳ３）。
【００６６】
ハンド３０が作業面６０に接触した場合、例えば、ハンド３０は、図８に示すような状態となる。ここで、ハンド３０の作業面６０に最初に接触した部分を「第１部分３ａ」とする。本実施形態では、第１部分３ａは、指３１の先端面のうちの一端とする。また、この１回目の接触では、指３２が作業面６０に接触していない。
【００６７】
次に、第１部分３ａが作業面６０に接触したときの力検出器４０の検出結果（並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび回転力成分Ｍｘ、Ｍｙ、Ｍｚ）を記憶部５５にて記憶（記録）する（ステップＳ４）。
【００６８】
次に、ハンド３０の、第１軸周りの姿勢の変更を開始する（ステップＳ５）。ここでは、第１部分３ａを作業面６０に接触させた状態のまま、第１部分３ａを支点としてハンド３０を第１軸（図示の場合、ｙ軸）周りに、かつ、ハンド３０の先端部が作業面６０に接触する方向に回動させる。
【００６９】
上記のようにしてハンド３０を回動させていき、情報取得部５２にて取得した力検出器４０からの検出結果を基に接触判断部５３にてハンド３０の第１部分３ａとは異なる第２部分３ｂが作業面６０に接触したか否かを判断する（ステップＳ６）。第２部分３ｂが接触したと判断されるまでハンド３０を第１軸周りに回動させ、第２部分３ｂが接触したと判断された場合には、駆動制御部５１の指令によりロボットアーム２０の駆動を停止する
（ステップＳ７）。
【００７０】
第２部分３ｂが接触すると、ハンド３０は、例えば、図９および図１０に示すような状態となる。本実施形態では、第２部分３ｂは、指３１の先端面のうちの第１部分３ａとは反対側の端とする。また、図１０に示すように、２回目の接触では、指３２が作業面６０に接触していない。
【００７１】
次に、第１部分３ａおよび第２部分３ｂが作業面６０に接触したときの力検出器４０の検出結果（並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび回転力成分Ｍｘ、Ｍｙ、Ｍｚ）を記憶部５５にて記憶（記録）する（ステップＳ８）。
【００７２】
次に、ハンド３０の、第２軸周りの姿勢の変更を開始する（ステップＳ９）。ここでは、第１部分３ａおよび第２部分３ｂを作業面６０に接触させた状態のまま、第１部分３ａおよび第２部分３ｂを通る線分（仮想線）を支軸としてハンド３０を第２軸（図示の場合、ｙ軸）周りに、かつ、ハンド３０の先端部が作業面６０に接触する方向に回動させる。
【００７３】
上記のようにしてハンド３０を回動させていき、情報取得部５２にて取得した力検出器４０からの検出結果を基に接触判断部５３にてハンド３０の第１部分３ａおよび第２部分３ｂとは異なる第３部分３ｃが作業面６０に接触したか否かを判断する（ステップＳ１０）。第３部分３ｃが接触したと判断されるまでハンド３０を第２軸周りに回動させ、第３部分３ｃが接触したと判断された場合には、駆動制御部５１の指令によりロボットアーム２０の駆動を停止する（ステップＳ１１）。
【００７４】
第３部分３ｃが接触すると、例えば、ハンド３０は、図１１に示すような状態となる。本実施形態では、第３部分３ｃは、指３２の先端面とする。この３回目のハンド３０の接触で、ハンド３０の先端面（指３１および指３２の各先端面）全体が作業面６０に接触する。
【００７５】
次に、第１部分３ａ、第２部分３ｂおよび第３部分３ｃが作業面６０に接触したときの力検出器４０の検出結果（並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび回転力成分Ｍｘ、Ｍｙ、Ｍｚ）を記憶部５５にて記憶（記録）する（ステップＳ１２）。
【００７６】
次に、ステップＳ４、Ｓ８、Ｓ１２にて記憶（記録）した力検出器４０の検出結果（並進力成分Ｆｘ、Ｆｙ、Ｆｚおよび回転力成分Ｍｘ、Ｍｙ、Ｍｚ）を基に、処理部５４にて、教示点Ｘ１０の位置と、作業面６０に対するハンド３０の姿勢とを求める（ステップＳ１３）。なお、本実施形態では、ハンド３０の先端部の中心（具体的には、２つの指３１、３２の間の領域の中心）を教示点Ｘ１０として求める。
【００７７】
そして、求めた教示点Ｘ１０の位置と、作業面６０に対するハンド３０の姿勢とを記憶部５５に記憶（記録）する（ステップＳ１４）。
【００７８】
以上のようにして、箇所Ａにおける教示点Ｘ１０および作業面６０に対するハンド３０の姿勢が算出される。このように、複数の部分（第１部分３ａ、第２部分３ｂおよび第３部分３ｃ）から教示点Ｘ１０および作業面６０に対するハンド３０の姿勢を求めているため、教示点Ｘ１０の位置の精度および作業面６０に対するハンド３０の姿勢の精度をより高めることができる。
【００７９】
また、同様にして、箇所Ｂおよび箇所Ｃにおける各教示点Ｘ１０および作業面６０に対するハンド３０の姿勢についても求める。これにより、３つの箇所（箇所Ａ、Ｂ、Ｃ）における教示点Ｘ１０および作業面６０に対するハンド３０の姿勢が算出される。
【００８０】
［作業面の座標系の算出（ステップＳ２００）］
次に、図６に示すように、作業面の座標系の算出（ステップＳ２００）を行う。
【００８１】
作業面の座標系の算出（ステップＳ２００）では、処理部５４にて、３の箇所Ａ、Ｂ、Ｃにおける各教示点Ｘ１０を基にして作業面６０の座標系を求める。３の箇所Ａ、Ｂ、Ｃで、それぞれ、前述したように、複数の部分から教示点Ｘ１０を算出しているため、作業面６０の座標系をより高精度に求めることができる。
【００８２】
また、作業面の座標系の算出（ステップＳ２００）では、処理部５４にて、３の箇所Ａ、Ｂ、Ｃにおけるハンド３０の姿勢から、作業面６０が平面であるか否かを判断する。例えば、３つの箇所Ａ、Ｂ、ＣにおけるＸ軸周りに回転力成分ＭｘとＹ軸周りの回転力成分Ｍｙとが、所定の差以内であれば作業面６０が平面であると判断する。すなわち、３つの箇所Ａ、Ｂ、Ｃにおける各回転力成分Ｍｘ、Ｍｙが、ほぼ同等であれば、作業面６０が平面であると判断する。一方、３つの箇所Ａ、Ｂ、Ｃにおける各回転力成分Ｍｘ、Ｍｙが、所定の範囲外である場合、作業面６０は平面でなく、曲面であったり、凹凸等があったりすると判断する。これにより、作業面６０の状態をより正確に把握することができる。
【００８３】
［作業面に対するハンドの位置の教示（ステップＳ３００）］
次に、図６に示すように、作業面に対するハンドの位置の教示（ステップＳ３００）に行う。
【００８４】
作業面に対するハンドの位置の教示（ステップＳ３００）では、作業面６０の座標系を基にロボット１に作業面６０に対するハンド３０の位置および姿勢を教示する。
【００８５】
以上のような作業面の教示（ステップＳ３００）を経て、ロボット１の教示は終了する（図６参照）。
以上、ロボット１の教示について説明した。
【００８６】
以上説明したように、ロボットシステム１００では、制御装置５が、力検出器４０を備えたロボット１を制御しているため、作業面６０に対するハンド３０の位置をより高精度に教示させることができる。このため、ティーチングペンダントのような教示専用のツールを用いることを省くことができ、ユーザー（作業者）による作業面６０とハンド３０との接触の判断を省くことができる。
【００８７】
また、本実施形態では、前述したように、ロボット１の教示において、ハンド３０の第１部分３ａを作業面６０に接触させた後、第１部分３ａを作業面６０に接触させたまま、第１部分３ａとは異なる第２部分３ｂを作業面６０に接触させている。その後、第１部分３ａおよび第２部分３ｂを作業面６０に接触させたまま、第１部分３ａおよび第２部分３ｂとは異なる第３部分３ｃを作業面６０に接触させている。このように、本実施形態では、ロボット１の教示において、第１部分３ａ、第２部分３ｂおよび第３部分３ｃと、この順にハンド３０を作業面６０に接触させていく、いわゆる倣い動作を行っている。そのため、第１部分３ａ、第２部分３ｂおよび第３部分３ｃをより確実に接触させることができるので、ロボット１に、作業面６０に対するハンド３０の位置および姿勢を高精度に教示することができる。
【００８８】
特に、第２部分３ｂを接触させる際、第１部分３ａを支点としてハンド３０を第１軸周りに、すなわち、１つの軸回りに回動させている。同様に、第３部分３ｃを接触させる際、第１部分３ａおよび第２部分３ｂを通る仮想線を支軸としてハンド３０を第２軸周りに、すなわち、前述した第１軸とは異なる１つの軸回りに回動させている。このように、本実施形態では、ハンド３０の異なる部分（第１部分３ａ、第２部分３ｂおよび第３部分３ｃ）を順に接触させていくので、各部分をより確実に接触させることができ、よって、ハンド３０の先端面全体を作業面６０により容易にかつより確実に接触させることができる。そのため、作業面６０の座標系およびハンド３０の姿勢をより高精度に求めることができ、その結果、ロボット１に、作業面６０に対するハンド３０の位置および姿勢をより高精度に教示することができる。
【００８９】
また、前述したように、ハンド３０を箇所Ａに最初に接近させる際、作業面６０に対してハンド３０を傾けた状態で接近させている。すなわち、作業面６０に対してハンド３０を１回目に接触させる際に、作業面６０のＸ、Ｙ、Ｚ軸に対して交差する方向にハンド３０を傾けた状態で接近させている。これにより、作業面６０に対してハンド３０を１回目に接触させる際に、作業面６０に対してハンド３０の第１部分３ａのみを接触させることができる。そのため、その後、第２部分３ｂと第３部分３ｃとをこの順に接触させ易くなり、よって、ハンド３０の先端面全体をより容易かつより確実に作業面６０に接触させることができる。
【００９０】
また、本実施形態では、前述したように、教示されるロボット１が、垂直多関節ロボットである。このような構成のロボット１が作業を行う作業面６０は、一定な箇所であるとは限らないことが多い。そのため、垂直多関節ロボットであるロボット１に対して、前述したような教示を行うことで、ロボット１の作業性をより高めることができる。
【００９１】
なお、前述したように、ロボット１の教示において、求めた教示点の数は３つであるが、教示点の数は、ロボット１が垂直多関節ロボットである場合には、少なくとも３つ以上であればよく、その数は限定されず任意である。
【００９２】
また、本実施形態では、ロボット１が垂直多関節ロボットである場合を例に説明したが、水平多関節ロボットである場合には、第３部分３ｃの接触を省略してもよい。また、水平多関節ロボットである場合には、箇所Ｃの接触を省略してもよい。すなわち、少なくとも２つの接触部分から１つの教示点を求め、そして、少なくとも２つ教示点を算出すればよい。
【００９３】
なお、水平多関節ロボットとしては、例えば、基台と、基台に接続され、水平方向に延びている第１アーム（第ｎアーム）と、第１アームに接続され、水平方向に延びる部分を有する第２アーム（第（ｎ＋１）アーム）とを有する構成が挙げられる。
【００９４】
また、前述したロボット１の教示では、ステップＳ２００にて、作業面６０の座標系を算出したが、予め設定されている基準面（仮想面）の座標系に対する作業面６０全体の座標を求めてもよい。
【００９５】
以上、本発明の制御装置、ロボットおよびロボットシステムを、図示の実施形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。また、本発明は、前記各実施形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【００９６】
また、前記実施形態では、ロボットが有するロボットアームの回動軸の数は、６つであるが、本発明では、これに限定されず、ロボットアームの回動軸の数は、例えば、２つ、３つ、４つ、５つまたは７つ以上でもよい。また、前記実施形態では、ロボットが有するアームの数は、６つであるが、本発明では、これに限定されず、ロボットが有するアームの数は、例えば、２つ、３つ、４つ、５つ、または、７つ以上でもよい。
【００９７】
また、前記実施形態では、ロボットが有するロボットアームの数は、１つであるが、本発明では、これに限定されず、ロボットが有するロボットアームの数は、例えば、２つ以上でもよい。すなわち、ロボットは、例えば、双腕ロボット等の複数腕ロボットであってもよい。
【符号の説明】
【００９８】
１００…ロボットシステム、１…ロボット、３ａ…第１部分、３ｂ…第２部分、３ｃ…第３部分、５…制御装置、１１…基台、１２…モータードライバー、１３…駆動源、２０…ロボットアーム、２１…第１アーム、２２…第２アーム、２３…第３アーム、２４…第４アーム、２５…第５アーム、２６…第６アーム、３０…ハンド、３１…指、３２…指、４０…力検出器、５０…制御装置、５１…駆動制御部、５２…情報取得部、５３…接触判断部、５４…処理部、５５…記憶部、６０…作業面、１７１…関節、１７２…関節、１７３…関節、１７４…関節、１７５…関節、１７６…関節、Ａ…箇所、Ｂ…箇所、Ｃ…箇所、Ｏ１…第１回動軸、Ｏ２…第２回動軸、Ｏ３…第３回動軸、Ｏ４…第４回動軸、Ｏ５…第５回動軸、Ｏ６…第６回動軸、Ｏ３０…中心、Ｓ１００…ステップ、Ｓ２００…ステップ、Ｓ３００…ステップ、Ｓ１…ステップ、Ｓ２…ステップ、Ｓ３…ステップ、Ｓ４…ステップ、Ｓ５…ステップ、Ｓ６…ステップ、Ｓ７…ステップ、Ｓ８…ステップ、Ｓ９…ステップ、Ｓ１０…ステップ、Ｓ１１…ステップ、Ｓ１２…ステップ、Ｓ１３…ステップ、Ｓ１４…ステップ、Ｘ１０…教示点
【図１】
0006661925.tif 000002
【図２】
0006661925.tif 000003
【図３】
0006661925.tif 000004
【図４】
0006661925.tif 000005
【図５】
0006661925.tif 000006
【図６】
0006661925.tif 000007
【図７】
0006661925.tif 000008
【図８】
0006661925.tif 000009
【図９】
0006661925.tif 000010
【図１０】
0006661925.tif 000011
【図１１】
0006661925.tif 000012