(57)【要約】【課題】ロボットの教示精度を向上させる。【解決手段】ロボットに対して着脱可能なステレオカメラ３００をロボットから取り外した状態で、ステレオカメラ３００の視野領域に基準パターン部９０５が含まれるようにステレオカメラ３００を基準パターン部９０５に対して位置決めする。そして、ステレオカメラ３００を用いて基準パターン部９０５を計測し、センサ座標系Ｖとベース座標系Ｂとの相対関係である回転行列ＲＣ及び並進ベクトルｔＣを校正する。このように校正した回転行列ＲＣ及び並進ベクトルｔＣを参照して、ステレオカメラ３００を用いたロボットの教示を行う。【選択図】図７
2018126835.tif 000002
【特許請求の範囲】
【請求項１】
視覚センサを用いて基準物を計測し、前記視覚センサのセンサ部と前記視覚センサの係合部との相対関係を校正する校正ステップと、
前記校正ステップの後に前記視覚センサの係合部をロボットに装着する装着ステップと、
前記相対関係を参照し、前記視覚センサを用いて前記ロボットの教示を行う教示ステップと、
を備えたことを特徴とするロボットの教示方法。
【請求項２】
前記装着ステップでは、前記ロボットのロボットハンドが前記視覚センサを把持することを特徴とする請求項１に記載のロボットの教示方法。
【請求項３】
前記装着ステップでは、前記ロボットハンドが前記視覚センサを把持することで、前記視覚センサの係合部と前記ロボットハンドの係合部とを係合させて、前記視覚センサを前記ロボットハンドに位置決めすることを特徴とする請求項２に記載のロボットの教示方法。
【請求項４】
前記校正ステップでは、前記相対関係として、回転行列及び並進ベクトルを求めることを特徴とする請求項１乃至３のいずれか１項に記載のロボットの教示方法。
【請求項５】
前記視覚センサは、３次元の位置姿勢を計測可能なセンサであることを特徴とする請求項１乃至４のいずれか１項に記載のロボットの教示方法。
【請求項６】
前記視覚センサは、前記センサ部として第１のカメラ及び第２のカメラを有するステレオカメラであり、
前記校正ステップでは、前記第１のカメラ及び前記第２のカメラのうち一方を基準に前記相対関係を校正することを特徴とする請求項５に記載のロボットの教示方法。
【請求項７】
前記教示ステップでは、前記ロボットの姿勢を調整して、調整後の前記ロボットの姿勢を教示点としてメモリに記憶させることを特徴とする請求項１乃至６のいずれか１項に記載のロボットの教示方法。
【請求項８】
前記視覚センサのセンサ部を基準とする座標系を第１の座標系、前記視覚センサの係合部を基準とする座標系を第２の座標系とし、
前記教示ステップでは、前記視覚センサから得られた視覚情報に含まれる特徴点の前記第１の座標系を基準とする座標値を、前記相対関係により前記第２の座標系を基準とする計測値に変換し、前記計測値と予め設定された目標値とのずれ量に関する情報を、ユーザに提示して、ユーザにより操作された操作装置からの指令に従って前記ロボットの姿勢を調整することを特徴とする請求項７に記載のロボットの教示方法。
【請求項９】
前記視覚センサのセンサ部を基準とする座標系を第１の座標系、前記視覚センサの係合部を基準とする座標系を第２の座標系とし、
前記教示ステップでは、前記視覚センサから得られた視覚情報に含まれる特徴点の前記第１の座標系を基準とする座標値を、前記相対関係により前記第２の座標系を基準とする計測値に変換し、前記計測値と予め設定された目標値とのずれ量に基づいて、前記ロボットの姿勢を調整することを特徴とする請求項７に記載のロボットの教示方法。
【請求項１０】
ロボットと、
前記ロボットに対して着脱可能な視覚センサと、
制御部と、を備え、
前記制御部は、
前記視覚センサを用いて基準物を計測し、前記視覚センサのセンサ部と前記視覚センサの係合部の相対関係を校正する校正処理と、
前記視覚センサを前記ロボットに装着した後に、前記相対関係を参照し、前記視覚センサを用いて前記ロボットの教示を行う教示処理と、
を実行することを特徴とするロボットシステム。
【請求項１１】
コンピュータに、
視覚センサを用いて基準物を計測し、前記視覚センサのセンサ部と前記視覚センサの係合部の相対関係を校正する校正ステップと、
前記視覚センサをロボットに装着した後に、前記相対関係を参照し、前記視覚センサを用いて前記ロボットの教示を行う教示ステップと、を実行させるプログラム。
【請求項１２】
請求項１１に記載のプログラムが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの教示に関する。
【背景技術】
【０００２】
工場において部品の移載や組立、加工などの作業を自動化するために、多自由度のロボットを有するロボットシステムが用いられている。多自由度のロボットとしては、例えば垂直多関節型、水平多関節型、直交型、パラレルリンクなどがある。ロボットをロボットプログラムに従って動作させることにより、目的に応じたさまざまな作業をロボットに行わせることができる。
【０００３】
ロボットにワークの移載や組立など生産のための作業を行わせるには、ロボットの姿勢を予め教示しておく必要がある。一般的なロボットの教示は、ユーザがティーチングペンダントを用いてロボットをジョグ送りして作業のための姿勢をロボットに取らせ、その姿勢を記憶部に記憶させるというものである。精密な作業をロボットに行わせる場合は、ワークやワークを保持する治工具などの物体と、ロボットに装着されたハンドやツールなどのエンドエフェクタとの相対的な位置姿勢を、高精度に位置決めして教示する必要がある。
【０００４】
特許文献１には、溶接用ロボットに対して、溶接トーチの代わりに、または溶接トーチと並列に３次元の視覚センサを取り付け、作業対象物に設けたマークを視覚センサを用いて計測することにより、ロボットの教示位置を補正する方法が提案されている。特許文献１では、ロボットに視覚センサを装着した状態で、ロボットと視覚センサとの関係を校正し、視覚センサからみたマーク位置の情報を用いて教示位置を補正している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−８４６３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ロボットには姿勢の誤差があるため、ロボットに装着された視覚センサの位置姿勢にも誤差が生じる。したがって、特許文献１の方法では、ロボットの姿勢の誤差が校正精度に影響を与えるため、ロボットの教示精度が低下するという問題があった。
【０００７】
そこで、本発明は、ロボットの教示精度を向上させることを目的とする。
【課題を解決するための手段】
【０００８】
本発明のロボットの教示方法は、視覚センサを用いて基準物を計測し、前記視覚センサのセンサ部と前記視覚センサの係合部との相対関係を校正する校正ステップと、前記校正ステップの後に前記視覚センサの係合部をロボットに装着する装着ステップと、前記相対関係を参照し、前記視覚センサを用いて前記ロボットの教示を行う教示ステップと、を備えたことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ロボットの教示精度が向上する。
【図面の簡単な説明】
【００１０】
【図１】第１実施形態に係るロボットシステムを示す説明図である。
【図２】（ａ）は第１実施形態におけるワーク保持治具の斜視図である。（ｂ）は第１実施形態におけるワーク保持治具、第１のワーク及び第２のワークの斜視図である。
【図３】（ａ）及び（ｂ）は第１実施形態におけるステレオカメラの斜視図である。（ｃ）は第１実施形態におけるステレオカメラの断面図である。
【図４】（ａ）、（ｂ）及び（ｃ）は第１実施形態におけるロボットハンド及びステレオカメラの斜視図である。
【図５】第１実施形態に係るロボットの教示方法を示すフローチャートである。
【図６】第１実施形態に係るロボットの教示方法を示すフローチャートである。
【図７】（ａ）は第１実施形態における校正治具の説明図である。（ｂ）は第１実施形態における基準パターン部の平面図である。
【図８】特徴点の目標値と計測値との関係を説明するための模式図である。
【図９】（ａ）及び（ｂ）はロボットアームの先端におけるツール座標系とステレオカメラのベース座標系との関係を示す説明図である。
【図１０】第２実施形態に係るロボットシステムを示す説明図である。
【図１１】（ａ）は第２実施形態におけるロボットハンドがステレオカメラを把持している状態を示す正面図である。（ｂ）は第２実施形態におけるロボットハンドがステレオカメラを把持している状態を示す側面図である。
【図１２】第２実施形態に係るロボットの教示方法を示すフローチャートである。
【図１３】（ａ）は第３実施形態における校正治具の説明図である。（ｂ）は第３実施形態におけるロボットの説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
［第１実施形態］
図１は、第１実施形態に係るロボットシステムを示す説明図である。ロボットシステム１００は、ロボット２００、視覚センサの一例であるステレオカメラ３００、ワーク保持治具４００、ロボット制御装置５００、センサ制御装置６００及びディスプレイ７００を備えている。また、ロボットシステム１００は、操作装置の一例であるティーチングペンダント８００及び入力装置８５０を備えている。ロボット２００は、ロボットアーム２０１、及びエンドエフェクタの一例であるロボットハンド２０２を備えている。ロボットアーム２０１は、垂直多関節のロボットアームである。ロボット２００の基端、即ちロボットアーム２０１の基端は、架台１５０に固定されている。
【００１２】
ロボットアーム２０１の先端には、直接、又は不図示の力覚センサを介してロボットハンド２０２が取り付けられている。つまり、ロボット２００の手先である先端がロボットハンド２０２で構成されている。ロボットハンド２０２は、ハンド本体である掌部２１０と、掌部２１０に対して開閉動作が可能な複数、第１実施形態では２本のフィンガ２１１，２１２と、を有し、ワークを把持又は把持解放することができる。掌部２１０は、ハウジングと、ハウジングの内部に配置され、フィンガ２１１，２１２を駆動する駆動機構と、を有する。
【００１３】
ワーク保持治具４００は、ワークが架台１５０に対して動かないようにワークをチャックする治具であり、架台１５０に固定されている。ワーク保持治具４００は、ロボット２００の先端、即ちロボットハンド２０２の可動範囲内に配置されている。ロボット２００の先端、即ちロボットハンド２０２は、ロボット２００の基端を原点とするロボット座標系Ｏにおいて６自由度の動作が可能である。具体的には、ロボットハンド２０２は、ロボットアーム２０１が動作することにより、ロボット座標系Ｏにおいて互いに直交する３軸の並進方向と、３軸まわりの回転方向の動作が可能である。
【００１４】
ティーチングペンダント８００は、ユーザの操作によってロボット制御装置５００に指令を送る。この指令の入力を受けたロボット制御装置５００は、指令に従ってロボット２００を動作させる。即ち、ユーザは、ティーチングペンダント８００を操作することによってロボットアーム２０１を動作させ、ロボットハンド２０２を任意の方向及び任意の速度でジョグ送りすることができる。また、ユーザは、ティーチングペンダント８００を操作することによって、ロボットハンド２０２のフィンガ２１１，２１２を開閉させることもできる。
【００１５】
ロボット制御装置５００は、主にロボット２００の動作を制御する。センサ制御装置６００は、主にステレオカメラ３００の動作を制御するとともに、画像処理や計測処理等の演算処理を行う。
【００１６】
ロボット制御装置５００はコンピュータであり、ＣＰＵ（Central  Processing  Unit）５０１を備えている。また、ロボット制御装置５００はメモリの一例として内部記憶装置としてのＲＯＭ（Read  Only  Memory）５０２、ＲＡＭ（Random  Access  Memory）５０３及びＨＤＤ（Hard  Disk  Drive）５０４を備えている。また、ロボット制御装置５００は、インターフェース（Ｉ／Ｆ）５０５とバス５０６を備えている。ＣＰＵ５０１、ＲＯＭ５０２、ＲＡＭ５０３、ＨＤＤ５０４及びインターフェース５０５は、互いに通信可能にバス５０６を介して接続されている。
【００１７】
センサ制御装置６００はコンピュータであり、ＣＰＵ６０１を備えている。また、センサ制御装置６００は、メモリの一例として内部記憶装置としてのＲＯＭ６０２、ＲＡＭ６０３及びＨＤＤ６０４を備えている。また、センサ制御装置６００は、記録ディスクドライブ６０５、インターフェース（Ｉ／Ｆ）６０６、及びバス６０７を備えている。ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３、ＨＤＤ６０４、ディスクドライブ６０５及びインターフェース６０６は、互いに通信可能にバス６０７を介して接続されている。
【００１８】
ロボット制御装置５００のインターフェース５０５には、ロボット２００、ワーク保持治具４００及びティーチングペンダント８００が通信線で電気的に接続されている。センサ制御装置６００のインターフェース６０６には、ステレオカメラ３００、ディスプレイ７００及び入力装置８５０が通信線で電気的に接続されている。なお、第１実施形態においては、ディスプレイ７００の表示画面をユーザが見ながらティーチングペンダント８００を操作する構成のため、ロボット制御装置５００とセンサ制御装置６００とは通信線等で電気的に接続されていなくてもよい。
【００１９】
ロボット制御装置５００のＲＯＭ５０２には、基本プログラムが格納されている。ＲＡＭ５０３は、ＣＰＵ５０１の演算処理の結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ５０４には、ロボット２００の動作を規定するロボットプログラム５１０が格納されている。ロボットプログラム５１０には、教示点の情報５１１とコマンドの情報５１２とが含まれている。ＣＰＵ５０１は、ロボットプログラム５１０に従ってロボット２００の動作を制御し、ロボット２００にワークの組付作業等の作業を行わせる。また、ＣＰＵ５０１は、教示点の情報５１１の設定を行うとき、即ち教示作業を行うときには、ティーチングペンダント８００の指令に従ってロボット２００の動作を制御する。また、ＣＰＵ５０１は、ロボット２００を実際に動作させたときの姿勢の情報を教示点の情報５１１として新規作成又は更新が可能である。
【００２０】
センサ制御装置６００のＲＯＭ６０２には、基本プログラムが格納されている。ＲＡＭ６０３は、ＣＰＵ６０１の演算処理結果等、各種データを一時的に記憶する記憶装置である。ＨＤＤ６０４には、教示を行う際のプログラム６１０が格納されている。ディスクドライブ６０５は、ディスク６１１に記録された各種データやプログラム等を読み出すことができる。ＣＰＵ６０１は、ロボット２００の教示を行うときには、プログラム６１０に従って、ステレオカメラ３００の動作を制御し、ロボット２００の動作をロボット制御装置５００を介して制御する。また、ＣＰＵ６０１は、ディスプレイ７００の表示動作を制御する。例えば、ＣＰＵ６０１は、ステレオカメラ３００が撮像した画像データや、画像処理を実行した結果データなどをディスプレイ７００に表示させ、ユーザに情報を提示する。入力装置８５０は、例えばキーボードやマウスであり、ユーザがディスプレイ７００を見ながら操作することより、文字、数値、ポインタ位置などの情報を、センサ制御装置６００に入力することができる。
【００２１】
ロボット制御装置５００のインターフェース５０５及びセンサ制御装置６００のインターフェース６０６には、不図示の外部記憶装置が電気的に接続可能である。なお、第１実施形態では、コンピュータ読み取り可能な記録媒体がＨＤＤ６０４であり、ＨＤＤ６０４にプログラム６１０が格納される場合について説明するが、これに限定するものではない。プログラム６１０は、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。例えば、プログラム６１０を供給するための記録媒体としては、ＲＯＭ６０２や、ディスク６１１、不図示の外部記憶装置等を用いてもよい。具体例を挙げて説明すると、記録媒体として、フレキシブルディスク、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等の光ディスク、光磁気ディスク、磁気テープ、ＵＳＢメモリ等の不揮発性メモリ、ＳＳＤ等を用いることができる。
【００２２】
また、第１実施形態では、ロボット制御装置５００とセンサ制御装置６００とがそれぞれ１台のコンピュータで構成され、ロボットシステム１００は合計２台のコンピュータを備えている場合について説明したが、これに限定するものでない。ロボット制御装置５００及びセンサ制御装置６００の双方の機能を１台のコンピュータで実現してもよいし、ロボット制御装置５００及びセンサ制御装置６００の機能を３台以上のコンピュータで分散処理して実現してもよい。また、センサ制御装置６００は、ステレオカメラ３００の筐体の外部に配置されているが筐体に内蔵されたスマートカメラによって同等の機能を実現することも可能である。
【００２３】
図２（ａ）は、ワーク保持治具４００の斜視図である。図２（ｂ）は、ワーク保持治具４００、第１のワークであるワークＷ１及び第２のワークであるワークＷ２の斜視図である。図２（ａ）に示すようにワーク保持治具４００は、ベース部４０１、ベース部４０１に固定されたワーク突当部４０２，４０３、及び治具フィンガ４０４，４０５を有している。ワーク保持治具４００は、ロボットプログラム５１０に従って治具フィンガ４０４，４０５を開閉動作することができる。ワークＷ１をベース部４０１に載置した状態で治具フィンガ４０４，４０５を閉じることにより、ワークＷ１をチャックすることができる。
【００２４】
図２（ｂ）には、ワーク保持治具４００にワークＷ１が保持されている状態が図示されている。第１実施形態では、ワークＷ２をワークＷ１に組み付ける組付作業として、ワークＷ１とワークＷ２との嵌合作業を行う。具体的には、ワークＷ１をワーク保持治具４００に保持させ、ワークＷ２をロボットハンド２０２に把持させてロボットアーム２０１を動作させることにより嵌合作業を行う。嵌合作業を行う際には、図２（ｂ）に示すように、ワークＷ１の真上に位置する作業開始位置ＰＡにワークＷ１を把持したロボットハンド２０２を移動させ、この作業開始位置ＰＡからワークＷ１を真下に移動させることにより、嵌合作業を行う。したがって、作業開始位置ＰＡにロボットハンド２０２、即ちワークＷ１を正確に位置決めさせるために正確な教示が必要となる。
【００２５】
第１実施形態ではワーク保持治具４００は教示作業を行うときの計測対象物である。図２（ａ）に示すワーク保持治具４００には、ステレオカメラ３００によって計測可能な、特徴点の一例である複数のマークＭＫ１〜ＭＫ３が付与されている。マークＭＫ１〜ＭＫ３は、ワーク保持治具４００の機械的基準、例えばワーク突当部４０２，４０３に対して高精度に位置決めされている。マークＭＫ１〜ＭＫ３は、ベース部４０１の上面に、高さ方向に所定の精度範囲内の厚み又は深さで形成されている。マークＭＫ１〜ＭＫ３は、特徴点として画像処理で高精度に認識できるように、ベース部４０１に対してコントラストが得られるよう、黒色である。なお、マークＭＫ１〜ＭＫ３をベース部４０１に付与する方法は任意であるが、例えばレーザー加工、印刷、エッチング、めっき処理、シール添付などの方法によりマークを付与することができる。また、ワーク保持治具４００に直接的にマークＭＫ１〜ＭＫ３を付与する場合について例示しているが、別部材のマーク付き基準プレートをワーク保持治具４００に取り付け、教示時のみ一時的にマークＭＫ１〜ＭＫ３を配置するようにしてもよい。
【００２６】
第１実施形態では、ステレオカメラ３００を用いてロボット２００の教示を行う。ステレオカメラ３００は、ロボット２００に対して着脱可能となっている。具体的に説明すると、ステレオカメラ３００は、ロボットハンド２０２に対して位置決めされた状態でロボットハンド２０２に把持されるように構成されている。
【００２７】
図３（ａ）及び図３（ｂ）は、ステレオカメラ３００の斜視図である。図３（ｃ）は、ステレオカメラ３００の断面図である。ステレオカメラ３００は、計測対象物の３次元の位置姿勢を計測可能にステレオ法により計測対象物を撮像するカメラである。ステレオカメラ３００は、センサ制御装置６００からの撮像指令の入力を受けて撮像を行い、取得した画像データをセンサ制御装置６００に送信することができる。ステレオカメラ３００は、センサ部３０５を有する。センサ部３０５は、第１のカメラであるカメラ３０１と、第２のカメラであるカメラ３０２とを有している。２つのカメラ３０１，３０２は、筐体３１０の内部に配置されている。カメラ３０１，３０２は、ＣＣＤイメージセンサ又はＣＭＯＳイメージセンサ等の撮像素子を有するデジタルカメラである。筐体３１０は、アタッチメント部３４０を介して板状のベース部３１１に固定されている。ベース部３１１は、ロボットハンド２０２に装着される部材である。ベース部３１１には、ロボットハンド２０２との着脱機構として係合部である位置決めピン３２１，３２２と、テーパ部３３１，３３２とが設けられている。
【００２８】
図３（ｃ）に示すように、カメラ３０１及びカメラ３０２は、これらの光学系の対称面Ａ−Ａに対して輻輳角αだけ光軸を傾けて対称に配置されている。輻輳角αを設けることにより、比較的近いワークディスタンスでステレオカメラ３００の共通視野を広く確保している。ベース部３１１の底面は対称面Ａ―Ａに対して直交しており、また、位置決めピン３２１，３２２及びテーパ部３３１，３３２も対称面Ａ−Ａに対して対象配置となるように配置されている。
【００２９】
ステレオカメラ３００に対するカメラパラメータは、事前のステレオカメラ校正によって計測されている。即ち、カメラ３０１及びカメラ３０２の画像上でピクセル単位で表される画素座標値と、３次元空間における視線ベクトルとの関係を示すカメラ内部パラメータが、カメラ３０１及びカメラ３０２のそれぞれに対して計測済みである。また、カメラ３０１とカメラ３０２の相対的な位置姿勢を表すステレオカメラ外部パラメータも計測済みである。すなわち、カメラ３０１の位置姿勢を代表するセンサ座標系Ｖ１と、カメラ３０２の位置姿勢を代表するセンサ座標系Ｖ２の相対的な位置姿勢を表す座標変換行列が計算済みである。センサ座標系Ｖ１，Ｖ２は、カメラ３０１，３０２のレンズ主点を原点とする座標系である。ステレオカメラの校正に関しては、さまざま公知の手法で行うことができる。
【００３０】
ＣＰＵ６０１は、カメラ３０１の画像データとカメラ３０２の画像データから特徴点を抽出することで、センサ座標系を基準とする特徴点の３次元の座標値を求めることができる。第１実施形態においてはカメラ３０１が基準カメラである。つまり、第１実施形態において、センサ部３０５のセンサ座標系Ｖ１，Ｖ２のうち、センサ座標系Ｖ１が、センサ部３０５を代表する第１の座標系としてのセンサ座標系Ｖである。ステレオ計測の結果はカメラ３０１のセンサ座標系Ｖを基準とする座標値で表現されるものとする。センサ座標系Ｖを基準とする特徴点の位置姿勢は、公知のステレオカメラ校正手法により３次元で高精度に計測可能であるが、外部から特徴点の位置姿勢を直接的に測定することはできない。そこで第１実施形態においては、ベース部３１１に対するセンサ座標系Ｖの位置姿勢を特定するためのベース−カメラ間の校正も行い、ベース−カメラ間の校正データをセンサ制御装置６００のメモリであるＨＤＤ６０４に記憶させておく。
【００３１】
図４（ａ）、図４（ｂ）及び図４（ｃ）は、第１実施形態におけるロボットハンド２０２及びステレオカメラ３００の斜視図である。図４（ａ）及び図４（ｂ）はロボットハンド２０２がステレオカメラ３００を把持解放した状態、図４（ｃ）はロボットハンド２０２がステレオカメラ３００を把持した状態を示している。
【００３２】
ロボットハンド２０２の掌部２１０の平面２１０Ａには、ステレオカメラ３００の位置決めピン３２１，３２２に対応する位置に、係合部である丸穴２２１及び長穴２２２が設けられている。ロボットハンド２０２の掌部２１０の平面２１０Ａ、丸穴２２１及び長穴２２２は、ロボットハンド２０２の機械的基準となっており、フィンガ２１１，２１２はこれらの機械的基準に対して所定の公差範囲内で取り付けられている。具体的には、掌部２１０の平面２１０Ａ、丸穴２２１及び長穴２２２を用いて不図示のフィンガ調整治具を掌部２１０に対して位置決めした状態で、フィンガ２１１，２１２の開閉方向の取り付け位置が不図示のフィンガ調整治具に対して調整されている。フィンガ２１１，２１２の開閉方向の寸法は、不図示の開閉機構に対して厚みの異なるシムを挟んで取り付けることにより調整ができるようになっている。このように、フィンガ２１１，２１２は、掌部２１０を基準に調整されている。ロボットハンド２０２の掌部２１０に対してステレオカメラ３００のベース部３１１を押し当てると、掌部２１０の平面２１０Ａとベース部３１１の平面３１１Ａとが突き当たると共に位置決めピン３２１，３２２と丸穴２２１及び長穴２２２がそれぞれ嵌合する。このステレオカメラ３００の係合部である位置決めピン３２１，３２２とロボットハンド２０２の係合部である穴２２１，２２２との係合により、ロボットハンド２０２に対してステレオカメラ３００を高精度に位置決めすることができる。フィンガ２１１，２１２の内側には、テーパ部２３１，２３２が配置されている。ベース部３１１を掌部２１０に押し当てた状態でフィンガ２１１，２１２を閉じると、ロボットハンド２０２のテーパ部２３１，２３２とステレオカメラ３００のテーパ部３３１，３３２がそれぞれ噛み合う。テーパ部２３１，２３２及びテーパ部３３１，３３２により、ベース部３１１を掌部２１０に押しつける力が発生し、ロボットハンド２０２に対してステレオカメラ３００を安定して固定することができる。このように着脱機構は、ステレオカメラ３００をロボットハンド２０２に対して直接装着する構成となっている。
【００３３】
以上の構成により、ロボットハンド２０２に対してステレオカメラ３００の着脱を行うときには、ロボットハンド２０２のフィンガ２１１，２１２を開閉動作するだけでよい。また、ロボットハンド２０２にステレオカメラ３００を把持させるだけで、ロボットハンド２０２に対してステレオカメラ３００を高精度に位置決めすることができる。また、ロボットハンド２０２の機械的基準である丸穴２２１および長穴２２２に対してステレオカメラ３００を直接的に装着する構成となっている。そのため、教示作業の際に、ロボットアーム２０１の誤差や、ロボットアーム２０１の先端であるフランジ面から掌部２１０までのロボットハンド２０２の製作誤差の影響を低減して高精度に教示を行うことができる。
【００３４】
ステレオカメラ３００をテーパ部３３１，３３２を介してロボットハンド２０２の掌部２１０に押しつける構成により、ロボットハンド２０２の姿勢が変わる場合でも、把持が緩むことなく安定して教示を行うことができる。また、ステレオカメラ３００の光学系の対称面Ａ−Ａが、位置決めピン３２１，３２２及びテーパ部３３１，３３２の対称面と一致している。このような配置にすることにより、仮にテーパ部２３１，２３２によりテーパ部３３１，３３２が掌部２１０の方向に押しつけられてベース部３１１に撓みが発生した場合でも、その変形が対称に影響するために教示時の誤差が発生しづらい。また筐体３１０とベース部３１１とが、独立した部材で構成され、アタッチメント部３４０を介して接続されている。このような構成のため、ベース部３１１に上記のような撓みが発生した場合でも、ステレオカメラ３００を構成するカメラ３０１とカメラ３０２との相対的な位置姿勢はほとんど変化しない。一対のカメラの相対的な位置姿勢が微小に変化するだけでステレオカメラの計測値には大きな誤差が発生するが、第１実施形態のステレオカメラ３００の構成により、筐体３１０を直接的にロボットハンド２０２で把持する構成に比べて、誤差が低減される。したがって、ステレオカメラ３００を軽量な、即ち低剛性な設計にしても、教示時の誤差を低減することができる。また、筐体３１０とベース部３１１との間に断熱層となる空隙ができるため、ロボットハンド２０２で発生した熱が筐体３１０に伝わりにくく、ステレオカメラ３００の熱変形による誤差を低減することができる。また更に、ロボットハンド２０２の設計が変更になった場合や、別のロボットに対してステレオカメラ３００を装着する場合に、ベース部３１１の設計を変更して同一のステレオカメラ３００を使用することができる。
【００３５】
図５及び図６は、第１実施形態に係るロボット２００の教示方法を示すフローチャートである。なお、図５及び図６に示すフローチャートには、ＣＰＵ５０１，６０１の処理のほか、ユーザの操作も含まれる。図５において、まず、ステレオカメラ３００をロボット２００に装着するステレオカメラ３００の係合部を基準とする第２の座標系としてのベース座標系Ｂと、センサ座標系Ｖとの相対関係を校正する（Ｓ１０１：校正ステップ）。第１実施形態ではベース座標系Ｂは、ステレオカメラ３００のベース部３１１において、係合部である位置決めピン３２１，３２２のいずれか一方、例えば位置決めピン３２１の根元の部分に設定されている。
【００３６】
ステレオカメラ３００のセンサ部３０５と位置決めピン３２１との相対関係の校正、即ちセンサ座標系Ｖとベース座標系Ｂとの相対関係の校正は、ステレオカメラ３００をロボット２００から取り外して、校正治具に設置した状態で行う。センサ座標系Ｖを基準とする特徴点の位置姿勢は、３次元で高精度に計測することが可能であるが、センサ座標系Ｖはカメラ３０１のレンズ主点を原点とする座標系である。第１実施形態においては、ＣＰＵ６０１は、ベース座標系Ｂとセンサ座標系Ｖとの相対的な位置姿勢を特定する校正を行い、その校正データをＨＤＤ６０４に記憶させる。以下、校正の方法について具体的に説明する。
【００３７】
図７（ａ）は、校正に用いる校正治具９００の説明図である。校正治具９００は、ベース部９０１、支柱部９０２，９０３、上板部９０４、及び基準物である基準パターン部９０５を有する。ベース部９０１と上板部９０４とは、互いに対向するように配置された板状の部材であり、支柱部９０２，９０３で接続されている。ベース部９０１には、掌部２１０の丸穴２２１及び長穴２２２と同様に、ステレオカメラ３００のピン３２１，３２２に対応する位置に穴部９０６，９０７が設けられており、ステレオカメラ３００を基準パターン部９０５に対して高い再現性で位置決めできる。ステレオカメラ３００を校正治具９００に設置することにより、ステレオカメラ３００の視野領域に基準パターン部９０５が含まれることになる。
【００３８】
図７（ｂ）は、基準パターン部９０５の平面図である。上板部９０４の内面には基準パターン部９０５が配置されている。基準パターン部９０５は、板状の部材である。基準パターン部９０５の表面には、エッチング等で高精度に加工されたＮ個のマーク９０８がアレイ状に形成されている。ベース部９０１の上面、穴部９０６，９０７及び基準パターン部９０５のマーク９０８の各位置は、校正治具９００の製作後に不図示の計測器により高精度に計測されている。さらにベース部９０１の上面及び穴部９０６，９０７の計測値を基準としてベース座標系Ｂが設定されている。マーク９０８の各点の３次元座標値ｍ［ｉ］（ｉ＝１〜Ｎ）は、ベース座標系Ｂを基準とする３次元の座標値Ｂｍ［ｉ］（ｉ＝１〜Ｎ）に座標変換されて、ＨＤＤ６０４に記憶されている。ＣＰＵ６０１は、校正治具９００に対してステレオカメラ３００を位置決めした状態で基準パターン部９０５のマーク９０８をステレオ計測することにより、ベース座標系Ｂとセンサ座標系Ｖとの相対関係を校正する。
【００３９】
第１実施形態では、ＣＰＵ６０１は、ベース座標系Ｂとセンサ座標系Ｖとの相対関係として、座標変換行列である回転行列ＲＣ及び並進ベクトルｔＣを求める。マーク９０８をステレオ計測して得られる、センサ座標系Ｖを基準とするマーク９０８の座標値Ｖｍ［ｉ］（ｉ＝１〜Ｎ）に対して、各種の誤差がない場合は、以下の式（１）が成り立つ。
【数１】
2018126835.tif 000003
【００４０】
実際の計測データを用いる場合には誤差があるため、式（１）の左辺と右辺は厳密には一致しない。したがって、ＣＰＵ６０１は、以下の式（２）が最小値となる回転行列ＲＣ及び並進ベクトルｔＣを求める。即ち、ＣＰＵ６０１は、以下の式（２）の最小二乗解を求める。
【数２】
2018126835.tif 000004
【００４１】
この問題は、点集合同士のマッチング問題として知られており、例えば特異値分解を用いた手法によって解くことができる。以上の手法により、センサ座標系Ｖとベース座標系Ｂとの相対関係である回転行列ＲＣ及び並進ベクトルｔＣが高精度に校正される。センサ制御装置６００のＨＤＤ６０４には、このようにして校正された回転行列ＲＣ及び並進ベクトルｔＣのデータが記憶される。
【００４２】
次に、ユーザは、センサ制御装置６００に、教示を行うための座標の目標値を設定する（Ｓ１０２）。第１実施形態では、図２（ｂ）に示すようにワークＷ２を位置ＰＡに位置決めする目標値を設定する。目標値の設定は、ベース部３１１の面及び位置決めピン３２１，３２２に代表されるステレオカメラ３００の機械的基準と、ワーク保持治具４００に付与されたマークＭＫ１〜ＭＫ３の設計上の位置関係を入力することによって行う。即ち、ベース座標系Ｂを基準とする設計上のマークＭＫ１〜ＭＫ３の３次元座標の目標値Ｂｐ［ｉ］（ｉ＝１〜３）を設定する。ここで目標値Ｂｐ［ｉ］（ｉ＝１〜３）は、ＸＹＺの３成分を持つベクトルで表される３次元の座標値である。目標値Ｂｐ［ｉ］は、目標値のリストをセンサ制御装置６００のＨＤＤ６０４に予め記憶させておき、ユーザがリストの中から選択して設定するようにしてもよいし、ユーザが入力装置８５０を操作して数値を入力することで設定するようにしてもよい。ユーザが入力装置８５０を用いて数値を入力する場合は、入力操作をより簡便に行えるようにするため、マークＭＫ１〜ＭＫ３の位置姿勢を代表するマーカー座標系Ｍを導入してもよい。この場合、マーカー座標系Ｍを基準とするマークＭＫ１〜ＭＫ３の各点の３次元の座標値Ｍｐ［ｉ］（ｉ＝１〜３）と、ベース座標系Ｂに対するマーカー座標系Ｍの相対的な位置姿勢の設計値を入力する。その回転成分をＢＲＭ，並進成分をＢｔＭとすると、マークＭＫ１〜ＭＫ３の３次元の座標値Ｂｐ［ｉ］（ｉ＝１〜３）は以下の式（３）のように表される。
【数３】
2018126835.tif 000005
【００４３】
マーカー座標系Ｍで入力操作を行えるようにすることで、マークＭＫ１〜ＭＫ３の形状のみで決まる配置と、マーカー座標系Ｍに対するロボットハンド２０２の位置姿勢を別個に設定できるため、マークＭＫ１〜ＭＫ３の点数が多い場合に設定が簡便になる。以上、ステップＳ１０２により、センサ制御装置６００のＨＤＤ６０４には、ベース座標系Ｂを基準とするマークＭＫ１〜ＭＫ３の目標値Ｂｐ［ｉ］が記憶される。
【００４４】
さらに、ユーザは、センサ制御装置６００に閾値δを設定する（Ｓ１０３）。閾値δは、後述する収束の判定に用いる閾値である。ユーザは、自由に閾値δを設定することができるが、用途に応じた必要精度を勘案して閾値δを設定すればよい。以上、ステップＳ１０３により、センサ制御装置６００のＨＤＤ６０４には、閾値δが記憶される。
【００４５】
次に、ステレオカメラ３００をロボット２００に装着する（Ｓ１０４：装着ステップ）。具体的には、ロボットハンド２０２にステレオカメラ３００を把持させる。具体的な操作としては、ユーザがティーチングペンダント８００を操作してロボットアーム２０１をジョグ送りしてロボットハンド２０２の掌部２１０を上向きにし、ユーザがステレオカメラ３００を掌部２１０の掌面である平面２１０Ａに置く。そして、ユーザがティーチングペンダント８００を操作してロボットハンド２０２のフィンガ２１１，２１２を閉じることによってステレオカメラ３００をロボットハンド２０２にチャックさせる。ステレオカメラ３００は、ロボットハンド２０２に把持されることによりロボットハンド２０２に対して高精度に位置決められるので、ベース座標系Ｂは、ロボットハンド２０２に高精度に位置決めされることになる。
【００４６】
次に、ＣＰＵ５０１及びＣＰＵ６０１が協働することにより、ＨＤＤ６０４に記憶された校正済の相対関係ＲＣ，ｔＣを参照して、ステレオカメラ３００を用いてロボット２００の教示を行う（Ｓ１０５〜Ｓ１０９、Ｓ２０１〜Ｓ２０８）。以下、この教示ステップについて具体的に説明する。ＣＰＵ５０１は、ロボット２００、即ちロボットアーム２０１を、教示を開始する姿勢に動作させる（Ｓ１０５）。つまり、ステレオカメラ３００を、教示を開始する位置に移動させる。教示を開始するロボット２００の姿勢とは、ステレオカメラ３００の視野領域に計測対象物であるワーク保持治具４００が含まれるロボット２００の姿勢である。つまり、ロボット２００、即ちロボットアーム２０１は、ワーク保持治具４００のマークＭＫ１〜ＭＫ３をステレオカメラ３００により撮像できる姿勢であれば、どのような姿勢であってもよい。この場合、ＣＰＵ５０１は、ユーザがティーチングペンダント８００を操作したときの指令に従ってロボット２００を動作させてもよいし、予めオフラインティーチングなどで設定された姿勢にロボット２００を動作させてもよい。教示点へロボット２００を動作させた後、マークＭＫ１〜ＭＫ３がステレオカメラ３００の視野領域から外れている場合は、ユーザがステレオカメラ３００の画像をディスプレイ７００で確認しながら、ロボットアーム２０１をジョグ送りさせればよい。このステップＳ１０５により、ステレオカメラ３００の視野領域内に３点のマークＭＫ１〜ＭＫ３が含まれることになる。
【００４７】
次に、ユーザが入力装置８５０でオン操作すると（Ｓ１０６）、センサ制御装置６００のＣＰＵ６０１は、図６に示す処理を、ユーザが入力装置８５０でオフ操作するまで繰り返し実行する。このオンオフの操作は、ディスプレイ７００に表示されたソフトウェアキーにカーソルを移動させてマウス等でクリックするようにしてもよいし、入力装置８５０のボタンを押下するようにしてもよい。
【００４８】
以下、オン操作されたときの繰り返し処理について説明する。ＣＰＵ６０１は、ステレオカメラ３００に対して撮像指令を送信し、ステレオカメラ３００にマークＭＫ１〜ＭＫ３を含むワーク保持治具４００を撮像させて、ステレオカメラ３００から画像を取得する（Ｓ２０１）。このように、ＣＰＵ６０１は、カメラ３０１とカメラ３０２の双方の画像（ステレオ画像）を取得する。即ち、ＣＰＵ６０１は、ステレオカメラ３００から視覚情報を取得する。
【００４９】
次に、ＣＰＵ６０１は、取得したステレオ画像に対して画像処理及びステレオ計算処理を行い、マークＭＫ１〜ＭＫ３の位置を計測する（Ｓ２０２）。マークＭＫ１〜ＭＫ３の位置を計測するための画像処理は、種々の公知手法を用いることができる。例えば、ステレオ画像それぞれの画像全体に対してエッジ抽出処理を行い、抽出したエッジの真円度や外接円半径などの形状特徴量を用いて、マークＭＫ１〜ＭＫ３のエッジのみを選択する。その後、マークＭＫ１〜ＭＫ３の画像上のエッジに対して楕円フィッティング処理を行い、マークＭＫ１〜ＭＫ３の中心の画素座標を求める。円フィッティングでなく楕円フィッティング処理を用いたのは、ステレオカメラ３００と円形のマークＭＫ１〜ＭＫ３との相対的な配置によって、投影された際に円が歪んで楕円形状に近くなる可能性があるためである。マークＭＫ１〜ＭＫ３の円中心の画素座標上を求めた後、カメラ３０１の画像の画素座標とカメラ３０２の画像の画素座標の対応づけを行い、３次元の座標値の計算を行う。カメラ３０１及びカメラ３０２のカメラ内部パラメータとカメラ外部パラメータを用いることにより、センサ座標系Ｖを基準にマークＭＫ１〜ＭＫ３の座標値を算出することができる。この座標値を、Ｖｑ［ｉ］（ｉ＝１〜３）とする。このように、ＣＰＵ６０１は、ステレオカメラ３００から得られた視覚情報に含まれる特徴点を抽出する。
【００５０】
次にＣＰＵ６０１は、ＨＤＤ６０４に記憶されている回転行列ＲＣ及び並進ベクトルｔＣを参照して、マークＭＫ１〜ＭＫ３の座標値Ｖｑ［ｉ］（ｉ＝１〜３）をベース座標系Ｂを基準とする計測値Ｂｑ［ｉ］（ｉ＝１〜３）に座標変換する（Ｓ２０３）。即ち、ＣＰＵ６０１は、ステレオカメラ３００を用いた計測の結果として、以下の式（４）を用いて計測値Ｂｑ［ｉ］（ｉ＝１〜３）を求める。
【数４】
2018126835.tif 000006
【００５１】
次に、ＣＰＵ６０１は、ベース座標系Ｂに座標変換された計測値Ｂｑ［ｉ］（ｉ＝１〜３）と、目標値Ｂｐ［ｉ］（ｉ＝１〜３）とを用いて、目標値に対する計測値のずれ量を演算する（Ｓ２０４）。これらの座標値Ｂｐ［ｉ］，Ｂｑ［ｉ］はベース座標系Ｂを基準とする座標値に座標変換されているため、比較が容易である。まずＣＰＵ６０１は、式（５）を用いて、目標値Ｂｐ［ｉ］と計測値Ｂｑ［ｉ］との差分ベクトルΔｐ［ｉ］（ｉ＝１〜３）を演算する。
【数５】
2018126835.tif 000007
【００５２】
また、ＣＰＵ６０１は、別のずれ量の指標として、ベース座標系Ｂの動くべき移動量についても演算する。ベース座標系Ｂが回転行列Ｒ、並進ベクトルｔだけ移動した後の座標系をＢ’とすると、移動後の目標値Ｂｐ’［ｉ］は以下の式（６）のように表される。
【数６】
2018126835.tif 000008
【００５３】
よって、移動後の目標値Ｂｐ’［ｉ］がマークＭＫ１〜ＭＫ３の計測値Ｂｑ［ｉ］と一致するようにベース座標系Ｂを動かすためには、以下の式（７）が最小値となるような回転行列Ｒと並進ベクトルｔの最小二乗解を求めればよい。即ち、各マークＭＫ１〜ＭＫ３の計測値Ｂｑ［ｉ］には、ステレオカメラ３００やマークＭＫ１〜ＭＫ３の個体差に依存する互いに異なる計測誤差が含まれているため、回転行列Ｒと並進ベクトルｔの最小二乗解を求めることになる。ここで、特徴点であるマークの数をＮ、１からＮまでの整数をｉとしている。即ち、ＣＰＵ６０１は、式（７）が最小値となるように回転行列Ｒ及び並進ベクトルｔを求める。
【数７】
2018126835.tif 000009
【００５４】
この演算は、ベース−カメラ間の校正で用いた点集合同士のマッチング問題と同様の手法で解くことができる。以上の演算処理により、ベース座標系Ｂのずれを示す回転行列Ｒ及び並進ベクトルｔが求まる。図８は、特徴点の目標値Ｂｐ［ｉ］と計測値Ｂｑ［ｉ］との関係を説明するための模式図である。なお、図８において、目標値Ｂｐ［ｉ］（ｉ＝１〜３）をｐ１，ｐ２，ｐ３、計測値をＢｑ［ｉ］（ｉ＝１〜３）をｑ１，ｑ２，ｑ３で表している。ＣＰＵ６０１は、目標値ｐ１，ｐ２，ｐ３がそれぞれ計測値ｑ１，ｑ２，ｑ３に重なるように座標変換するための回転行列Ｒ及び並進ベクトルｔを求める。
【００５５】
次に、ＣＰＵ６０１は、ステップＳ２０４で求めたずれ量を閾値δと比較する（Ｓ２０５）。即ち、ＣＰＵ６０１は、ずれ量が閾値以下であるか否かを判定する。第１実施形態では、ＣＰＵ６０１は、ずれ量として、差分ベクトルΔｐ［ｉ］のノルム｜Δｐ［ｉ］｜と、並進ベクトルｔのノルム｜ｔ｜とを求める。そして、ＣＰＵ６０１は、｜Δｐ［ｉ］｜及び｜ｔ｜のうち最も大きい値と閾値δとを比較する。具体的には、ＣＰＵ６０１は、以下の式（８）を満たすか否かを判定する。
【数８】
2018126835.tif 000010
【００５６】
このような指標を用いることにより、マークＭＫ１〜ＭＫ３の位置におけるずれ量とベース部３１１におけるずれ量の両方が所望の精度範囲内に入るように、マークＭＫ１〜ＭＫ３に対するステレオカメラ３００の傾きまで加味した教示ができる。なお、以上の閾値判定法は一例であって、ずれ量に基づいたほかの指標を用いて判定を行ってもよい。例えばマークＭＫ１〜ＭＫ３の位置座標におけるずれ量Δｐ［ｉ］のみで閾値判定を行ってもよいし、回転行列Ｒ及び並進ベクトルｔによるずれ量のみで閾値判定を行ってもよい。
【００５７】
ＣＰＵ６０１は、ステップＳ２０５の判定の結果、ずれ量が閾値以下であれば（Ｓ２０５：Ｙｅｓ）、「ＯＫ」である旨をディスプレイ７００に表示させる（Ｓ２０６）。ＣＰＵ６０１は、ずれ量が閾値を超えていれば（Ｓ２０５：Ｎｏ）、演算したずれ量や方向などをディスプレイ７００に表示させる（Ｓ２０７）。このように、ＣＰＵ６０１は、ずれ量に関する情報を、ディスプレイ７００によりユーザに提示する。なお、撮像画像をディスプレイ７００に表示させ、表示画像上にロボットアーム２０１を動かすべき方向と量を示す矢印を表示させてもよい。また、例えばステップＳ２０４で演算した並進ベクトルｔと回転行列Ｒを、ディスプレイ７００に表示させてもよく、この場合、マーク位置ではなく、ロボットハンド２０２の掌部２１０の位置に換算した移動量が表示され、ユーザは直観的に理解しやすい。また、ずれ量に関する情報をユーザに提示する方法として、ディスプレイ７００への表示以外に、ランプの点滅、スピーカから発する音などでユーザに提示してもよい。
【００５８】
ディスプレイ７００への表示が終わると、ＣＰＵ６０１は、ユーザがオフ操作したか否かを判定する（Ｓ２０８）。ＣＰＵ６０１は、オフ操作されたならば（Ｓ２０８：Ｙｅｓ）、処理を終了し、オフ操作されていなければ（Ｓ２０８：Ｎｏ）、オフ操作されるまで、ステップＳ２０１〜Ｓ２０７の処理を繰り返し実行する。
【００５９】
センサ制御装置６００のＣＰＵ６０１が図６に示す処理を実行中、ユーザは、ディスプレイ７００に表示されている表示画面を確認する（Ｓ１０７）。即ち、ユーザは、ディスプレイ７００に「ＯＫ」である旨が表示されているか否かを確認する。
【００６０】
ユーザは、「ＯＫ」である旨がディスプレイ７００に表示されていない場合は（Ｓ１０７：Ｎｏ）、ロボット２００、即ちロボットアーム２０１の姿勢を、ティーチングペンダント８００を操作して調整する（Ｓ１０８）。つまり、ＣＰＵ５０１は、ユーザにより操作されたティーチングペンダント８００からの指令に従ってロボット２００、即ちロボットアーム２０１の姿勢を調整する。ＣＰＵ６０１は、図６に示す処理を実行中であるため、ユーザがティーチングペンダント８００でロボット２００を動作させている最中に、リアルタイムにディスプレイ７００の表示を更新することになる。
【００６１】
ユーザは、ロボット２００の姿勢を調整した結果、ずれ量が閾値δ以下となってディスプレイ７００に「ＯＫ」である旨が表示されたら（Ｓ１０７：Ｙｅｓ）、調整後のロボット２００の姿勢を教示点としてＨＤＤ５０４に記憶させる（Ｓ１０９）。このステップＳ１０９では、例えばユーザがティーチングペンダント８００のボタンを押下するなどして、ＨＤＤ５０４に教示点のデータを記憶させる。ロボット２００の教示が終了したので、ユーザは、入力装置８５０にてオフ操作する（Ｓ１１０）。
【００６２】
教示点のデータは、ロボットアーム２０１の各関節の関節角度、即ち関節のモータの回転角度の角度指令値である。例えば、ロボットアーム２０１が６関節の場合、１つの教示点のデータは、６つの角度指令値で構成されている。なお、教示点のデータは、６つの角度指令値を順運動学計算により変換して得られる、ロボット座標系Ｏを基準とする、ロボットアーム２０１の先端の位置姿勢を示す６つの指令値で構成されていてもよい。この場合、ロボットアーム２０１を教示点に従って動作させるときには、教示点のデータを逆運動学計算により角度指令値に変換する作業が必要である。
【００６３】
以上、第１実施形態では、ロボットハンド２０２にステレオカメラ３００を装着した状態で校正するのではなく、ステップＳ１０１において、ロボットハンド２０２からステレオカメラ３００を取り外した状態で校正を行っている。より具体的には、ステレオカメラ３００をロボットハンド２０２に装着する際の機械的基準である位置決めピン３２１，３２２の箇所に定義したベース座標系Ｂに対して校正治具９００で校正を行っている。したがって、校正を行う際に、ロボット２００の姿勢の誤差が校正結果に含まれることがない。即ち、ロボットアーム２０１は、姿勢に応じて関節やリンクにおいて撓みが生じ、またロボットアーム２０１の製作誤差を含んでいるため、ロボット２００の手先の位置姿勢には誤差が発生する。ロボットハンド２０２においても、製作誤差等がある。仮にロボット２００にステレオカメラ３００を装着した状態で校正を行うと、ロボット２００の手先に連結されたステレオカメラ３００の位置姿勢の誤差が校正結果に大きく影響し、校正データである相対関係ＲＣ，ｔＣの精度が低下する。これに対し、第１実施形態によれば、ステレオカメラ３００をロボット２００から取り外した状態で校正を行っているため、相対関係ＲＣ，ｔＣにロボット２００の姿勢誤差が影響するのを防止することができる。よって、相対関係ＲＣ，ｔＣの精度が高まり、その結果、ロボット２００を高精度に教示することができる。
【００６４】
上記の校正結果が高精度であるため、マークＭＫ１〜ＭＫ３とベース座標系Ｂの相対的な位置関係（計測値Ｂｑ［ｉ］）を正確に計測することができる。言い換えれば、ワーク保持治具４００に対するベース座標系Ｂの位置姿勢を正確に知ることができる。そのため、ベース座標系Ｂを基準として数値的に設定した目標値Ｂｐ［ｉ］に対して、ベース座標系Ｂのずれ量を、ステップＳ２０４においてロボット２００の誤差による影響を受けずに正確に演算することができる。
【００６５】
さらに、ベース座標系Ｂは、ロボットハンド２０２にステレオカメラ３００を装着する際の機械的基準と一致している。このため、ステレオカメラ３００をロボットハンド２０２に装着することで、ロボットハンド２０２に対してベース座標系Ｂを高精度に位置決めできる。よって、ロボットハンド２０２をワーク保持治具４００に対して高精度に位置決めした状態で教示できる。このように、数値的に指定した目標値Ｂｐ［ｉ］を用いることで、予め基準画像を用意しなくても、ロボット２００を教示することができ、教示の作業性が向上する。
【００６６】
図９（ａ）及び図９（ｂ）は、ロボットアーム２０１の先端におけるツール座標系Ｔとステレオカメラ３００のベース座標系Ｂとの関係を示す説明図である。図９（ａ）と図９（ｂ）とは、ロボットアーム２０１に対するロボットハンド２０２の位置姿勢が異なっている。即ち、図９（ａ）では、ロボットアーム２０１の先端であるフランジ面にロボットハンド２０２が直接取り付けられているが、図９（ｂ）では、ロボットアームの先端であるフランジ面に取付治具２０４を介して取り付けられている。ロボットアーム２０１のフランジ面の座標系をツール座標系Ｔとする。
【００６７】
第１実施形態では、ベース座標系Ｂに対するワーク保持治具４００のマークＭＫ１〜ＭＫ３の目標値Ｂｐ［ｉ］を用いて教示を行っており、ロボットアーム２０１に対するロボットハンド２０２の位置姿勢の情報は教示時に用いていない。即ち、ツール座標系Ｔとベース座標系Ｂとの間の関係を求める必要がない。そのためツール座標系Ｔを教示のために新規に設定する必要はない。したがって、製造ラインの組換えなどの際に、例えば図９（ａ）の状態から図９（ｂ）の状態にロボットハンド２０２をロボットアーム２０１に対して違う向きに取り付けるといったケースが発生しても、対応が容易である。即ち、ステレオカメラ３００が取り付けられるロボットハンド２０２から見たワーク保持治具４００の相対的な位置姿勢に変更がない場合には、目標値Ｂｐ［ｉ］の設定を変更しなくてもロボット２００を再度教示することができる。このような場合でも、簡便かつ高精度にロボット２００を教示することができる。
【００６８】
［第２実施形態］
次に、第２実施形態に係るロボットシステムにおけるロボットの教示方法ついて説明する。図１０は、第２実施形態に係るロボットシステムを示す説明図である。ロボットシステム１００Ｂは、ロボット２００Ｂ、視覚センサの一例であるステレオカメラ３００Ｂ、ワーク保持治具４００、ロボット制御装置５００、センサ制御装置６００、及びディスプレイ７００を備えている。また、ロボットシステム１００Ｂは、操作装置の一例であるティーチングペンダント８００、及び入力装置８５０を備えている。
【００６９】
第２実施形態では、以下の点で第１実施形態と構成が異なる。第１実施形態では、ロボット２００のロボットハンド２０２が２指であったが、第２実施形態では、ロボット２００Ｂのロボットハンド２０２Ｂは、３指である。また、第１実施形態では、ロボット制御装置５００とセンサ制御装置６００とが接続されていない場合について説明したが、第２実施形態では、ロボット制御装置５００とセンサ制御装置６００とが通信線で互いに通信可能に電気的に接続されている。これにより、ロボット２００、即ちロボットアーム２０１に対して教示を行う際に、ユーザのティーチングペンダント８００の操作によるジョグ送りでなく、ロボット２００Ｂの自動動作で行えるようになっている。
【００７０】
図１１（ａ）は、第２実施形態におけるロボットハンド２０２Ｂがステレオカメラ３００Ｂを把持している状態を示す正面図である。図１１（ｂ）は、第２実施形態におけるロボットハンド２０２Ｂがステレオカメラ３００Ｂを把持している状態を示す側面図である。ロボットハンド２０２Ｂは、例えば円筒状のワークなどを把持するのに適した３指のロボットハンドである。ロボットハンド２０２Ｂは、ハンド本体である掌部２１０Ｂと、掌部２１０Ｂに対して開閉動作が可能な複数、第３実施形態では３本のフィンガ２１１Ｂ，２１２Ｂ，２１３Ｂと、を有し、ワークを把持又は把持解放することができる。掌部２１０Ｂは、ハウジングと、ハウジングの内部に配置され、フィンガ２１１Ｂ，２１２Ｂ，２１３Ｂを駆動する駆動機構と、を有する。
【００７１】
ステレオカメラ３００Ｂは、第１のカメラであるカメラ３０１Ｂと、第２のカメラであるカメラ３０２Ｂとを有している。２つのカメラ３０１Ｂ，３０２Ｂは、筐体３１０Ｂの内部に配置されている。カメラ３０１Ｂ，３０２Ｂは、ＣＣＤイメージセンサ又はＣＭＯＳイメージセンサ等の撮像素子を有するデジタルカメラである。筐体３１０Ｂは、アタッチメント部３４０Ｂを介して板状のベース部３１１Ｂに固定されている。ベース部３１１Ｂには、３指のロボットハンド２０２Ｂに対応して、テーパ部３３１Ｂ，３３２Ｂ，３３３Ｂが設けられている。ベース部３１１Ｂを掌部２１０Ｂに押し当てた状態でフィンガ２１１Ｂ，２１２Ｂ，２１３Ｂを閉じると、ロボットハンド２０２Ｂのテーパ部２３１Ｂ，２３２Ｂ，２３３Ｂとステレオカメラ３００Ｂのテーパ部３３１Ｂ，３３２Ｂ，３３３Ｂが噛み合う。これにより、ロボットハンド２０２Ｂに対してステレオカメラ３００Ｂをチャックすることができる。ロボットハンド２０２Ｂの掌部２１０Ｂには、係合部として、第１実施形態と同様、図４（ａ）に示すような丸穴２２１及び長穴２２２が設けられている。ステレオカメラ３００Ｂのベース部３１１Ｂには、係合部として、第１実施形態と同様、図４（ｂ）に示すような位置決めピン３２１，３２２が設けられている。ロボットハンド２０２Ｂがステレオカメラ３００Ｂを把持することで位置決めピン３２１，３２２と穴２２１，２２２とが係合、即ち嵌合し、ステレオカメラ３００Ｂがロボットハンド２０２Ｂに対して高精度に位置決めされる。
【００７２】
第２実施形態では、３指のロボットハンド２０２Ｂであっても、ステレオカメラ３００Ｂのステレオ光学系の対称面と、ロボットハンド２０２Ｂに対するステレオカメラ３００Ｂの位置決め機構の対称面は面Ｄ−Ｄで共通している。そのため、第１実施形態で述べたような対称性により、ベース部３１１Ｂの撓みなどの変形に対して誤差が生じづらいという効果を奏する。
【００７３】
第２実施形態では、ロボット制御装置５００のインターフェース５０５とセンサ制御装置６００のインターフェース６０６とが通信線で接続されている。よって、ＣＰＵ５０１とＣＰＵ６０１とは互いに通信可能となっている。第２実施形態では、２つのＣＰＵ５０１，６０１によって制御部として機能する。
【００７４】
図１２は、第２実施形態に係るロボット２００の教示方法を示すフローチャートである。なお、図１２に示すフローチャートには、ＣＰＵ５０１，６０１の処理のほか、ユーザの操作も含まれる。図１２において、まず、ＣＰＵ６０１は、ステレオカメラ３００Ｂをロボット２００Ｂに装着する部分を基準とするベース座標系Ｂと、センサ座標系Ｖとの相対関係を校正する（Ｓ３０１：校正ステップ、校正処理）。この校正処理は、第１実施形態のステップＳ１０１と同様、ステレオカメラ３００Ｂをロボット２００Ｂから取り外して、図７（ａ）に示す校正治具９００に設置した状態で行う。第２実施形態においても、ＣＰＵ６０１は、ベース座標系Ｂとセンサ座標系Ｖとの相対的な位置姿勢を特定する校正を行い、その校正データである回転行列ＲＣ及び並進ベクトルｔＣをＨＤＤ６０４に記憶させる。また、第１実施形態のステップＳ１０２，Ｓ１０３と同様、目標値Ｂｐ［ｉ］及び閾値δを設定する（Ｓ３０２，Ｓ３０３）。
【００７５】
次に、ＣＰＵ５０１は、ロボット２００Ｂを動作させて、ロボットハンド２０２Ｂにステレオカメラ３００Ｂを把持させる（Ｓ３０４：装着ステップ、装着処理）。ロボットアーム２０１の可動範囲内に、不図示の載置台を設けておき、載置台にステレオカメラ３００Ｂを予め設置しておく。ＣＰＵ６０１は、ロボットアーム２０１及びロボットハンド２０２Ｂをロボットプログラム５１０に従って動作させて、自動でロボットハンド２０２Ｂにステレオカメラ３００Ｂを把持させる。これにより、ステレオカメラ３００Ｂは、ロボットハンド２０２Ｂに高精度に位置決めされる。以上、ＣＰＵ５０１は、ロボット２００Ｂの動作を制御することにより、ステレオカメラ３００Ｂをロボット２００Ｂに装着する。
【００７６】
次に、ＣＰＵ５０１及びＣＰＵ６０１が協働することにより、ＨＤＤ６０４に記憶された校正済の相対関係ＲＣ，ｔＣを参照して、ステレオカメラ３００Ｂを用いてロボット２００Ｂの教示を行う（Ｓ３０５〜Ｓ３１３：教示ステップ、教示処理）。
【００７７】
以下、具体的に説明すると、ＣＰＵ５０１は、予めオフラインティーチングで教示された教示点にロボットアーム２０１を動作させる（Ｓ３０５）。これにより、ロボット２００Ｂ、具体的にはロボットアーム２０１を、教示を開始する姿勢に動作させる。即ち、第１実施形態では、ユーザがティーチングペンダント８００を用いてロボット２００を動作させたが、第２実施形態では、ＣＰＵ５０１が自動でロボット２００Ｂを動作させる。次に、ＣＰＵ６０１は、第１実施形態で説明したステップＳ２０１〜Ｓ２０４と同様、撮像（Ｓ３０６）、マーク位置計測（Ｓ３０７）、座標変換（Ｓ３０８）、ずれ量計算（Ｓ３０９）の処理を行う。第１実施形態で説明したステップＳ２０５と同様、ずれ量が閾値以下であるか否かを判定する（Ｓ３１０）。
【００７８】
第２実施形態では、ロボット制御装置５００とセンサ制御装置６００とが通信線で電気的に接続されているため、ＣＰＵ５０１は、ＣＰＵ６０１の各処理結果データを参照することができる。そこで、ＣＰＵ５０１は、ずれ量が閾値を超える場合には（Ｓ３１０：Ｎｏ）、ずれ量の計算データ、回転行列Ｒ及び並進ベクトルｔを用いて、ロボット２００の姿勢の調整量である姿勢情報を計算する（Ｓ３１１）。そして、ＣＰＵ５０１は、姿勢情報に従ってロボット２００の姿勢を調整する（Ｓ３１２）。即ち、ＣＰＵ５０１は、ずれ量に基づいてロボット２００の姿勢を調整する。ここで、ロボット２００の姿勢を調整するとは、ロボットアーム２０１の各関節の角度の調整、即ちロボット座標系Ｏにおけるロボットハンド２０２の位置姿勢を調整することである。
【００７９】
以下、ステップＳ３１１の計算について具体的に説明する。ロボット制御装置５００には、ロボット２００の先端、即ちロボットハンド２０２Ｂを原点とするツール座標系Ｔが設定されている。また、ツール座標系Ｔに対するベース座標系Ｂの位置姿勢も予め設定されている。ロボット座標系Ｏに対するツール座標系Ｔの位置姿勢を行列ＯＨＴとする。さらに、ツール座標系Ｔに対するベース座標系Ｂの位置姿勢を行列ＴＨＢとする。調整後のロボット２００Ｂの姿勢を行列ＯＨＴ’とすると、行列ＯＨＴ’は、以下の式（９）で記述できる。
【数９】
2018126835.tif 000011
【００８０】
行列ＢＨＢ’は、ステップＳ２０３において計算した回転行列Ｒ及び並進ベクトルｔを元に計算した、ベース座標系Ｂの現在位置から計測位置への座標変換を表す同次変換行列であり、以下の式（１０）で表される。
【数１０】
2018126835.tif 000012
【００８１】
即ち、ＣＰＵ５０１は、ステップＳ３１１では、式（９）及び式（１０）を用いて、ロボット２００Ｂの先端の位置姿勢を示す行列ＯＨＴ’を計算する。次に、ＣＰＵ５０１は、行列ＯＨＴ’からロボット２００Ｂの姿勢情報、即ちロボットアーム２０１の各関節の角度指令を計算する。そして、ＣＰＵ５０１は、ステップＳ３１２において、姿勢情報に従ってロボット２００を動作させ、ロボット２００の姿勢を調整する。
【００８２】
ロボット２００の姿勢を調整した後は、再びステップＳ３０６〜Ｓ３０９の処理を行い、ステップＳ３１０にて閾値δによる収束判定を行う。そして、ステップＳ３１０にて収束していなければ、再びステップＳ３１１、Ｓ３１２、Ｓ３０６〜Ｓ３０９の処理を行う。このように、ずれ量が閾値δ以下に収束するまで、ステップＳ３０６〜Ｓ３１２を繰り返す。つまり、ロボット２００Ｂの姿勢調整の動作を繰り返し実行する。ロボットアーム２０１の動作の誤差やステレオカメラ３００による計測の誤差があるため、１度の姿勢調整では教示を完了できないことが多い。第１実施形態によれば、繰り返し姿勢調整を行うことによって、ロボットハンド２０２Ｂを高精度に位置決めすることができる。以上、第２実施形態では、ＣＰＵ５０１及びＣＰＵ６０１が協働することにより、自動でロボット２００の姿勢を調整する。即ち、ＣＰＵ５０１及びＣＰＵ６０１は、ステレオカメラ３００Ｂを用いて計測した座標値Ｖｑ［ｉ］を、相対関係ＲＣ，ｔＣにより計測値Ｂｑ［ｉ］に変換し、計測値Ｂｑ［ｉ］と目標値Ｂｐ［ｉ］とのずれ量に基づいて、ロボット２００の姿勢の調整を行う。
【００８３】
ＣＰＵ５０１は、ずれ量が閾値以下となった場合（Ｓ３１０：Ｙｅｓ）、調整後のロボット２００、即ちロボットアーム２０１の姿勢を、教示点としてＨＤＤ５０４に記憶させ（Ｓ３１３）、教示ステップ、即ち教示処理を終了する。
【００８４】
以上、第２実施形態によれば、ロボットアーム２０１の自動動作によって、ワーク保持治具４００に対するロボットハンド２０２Ｂの相対的な位置姿勢を自動で位置決めすることができる。
【００８５】
また、第２実施形態では、ＣＰＵ６０１は、ステレオカメラ３００Ｂから得られた視覚情報とＨＤＤ６０４に記憶された相対関係ＲＣ，ｔＣとを用いて、ベース座標系Ｂを基準とするマークＭＫ１〜ＭＫ３の計測値Ｂｑ［ｉ］を求めている。そして、ＣＰＵ５０１は、ベース座標系Ｂを基準とする計測値Ｂｑ［ｉ］と目標値Ｂｐ［ｉ］とのずれ量に基づき、ロボット２００Ｂの姿勢を調整して教示を行っている。このロボット２００の姿勢を調整するのに用いるずれ量は、ロボットアーム２０１の動作の誤差やロボットハンド２０２の製作誤差による影響を受けずに求めることができるので、高精度にロボット２００を教示することができる。
【００８６】
なお、第２実施形態では、ステップＳ３１１において、ロボットアーム２０１のツール座標系Ｔに対するベース座標系Ｂの相対位置姿勢を示す行列ＴＨＢを事前に設定するようにしたがこれに限定するものではない。上述のようにずれ量に応じた調整量に基づいて繰り返し動作を行っているため、設定する行列ＴＨＢについては高精度に求めなくてもよい。設計値に対して例えば３０度程度傾けた行列ＴＨＢを設定しても、繰り返し動作によってずれ量が収束して教示可能となる。
【００８７】
また、行列ＴＨＢを事前に設定しなくてもよい。例えば、教示を開始する前に公知のハンドアイキャリブレーション手法を自動で実行して行列ＴＨＢを算出するようにしてもよい。この場合、大まかな位置と向きが合っていればよいので、ロボットアーム２０１をハンドアイキャリブレーションする時の動作量は、第２実施形態で説明した校正に比べて微小で構わない。そのため、ロボットの周辺に構造物があり、ロボットの可動範囲が狭い場合などでも、校正して教示することが可能である。
【００８８】
また別の方法として、行列ＴＨＢを使用せず、公知の画像ベースのビジュアルサーボ手法を用いて、ＣＰＵ６０１が演算するずれ量が小さくなるようにロボットアーム２０１をサーボ制御するような構成にしてもよい。
【００８９】
［第３実施形態］
次に、第３実施形態に係るロボットシステムにおけるロボットの教示方法について説明する。図１３（ａ）は、第３実施形態における校正治具９００Ｃの説明図である。図１３（ｂ）は、第３実施形態におけるロボット２００Ｃの説明図である。第１及び第２実施形態では、ロボットハンド２０２，２０２Ｂに対してステレオカメラ３００，３００Ｂが着脱可能である場合について説明した。第３実施形態では、視覚センサの一例がステレオカメラ３００Ｃ、エンドエフェクタの一例がロボットハンド２０２Ｃである。そして、ステレオカメラ３００Ｃとロボットハンド２０２Ｃとは一体に固定されている。ステレオカメラ３００Ｃと一体のロボットハンド２０２Ｃが、ロボット２００Ｃの先端であるフランジ面２０１Ｃに対して着脱可能となっている。第３実施形態ではロボット２００Ｃは垂直多関節のロボットアームである。ロボットハンド２０２Ｃがロボット２００Ｃに装着されることで、ロボットハンド２０２Ｃと一体のステレオカメラ３００Ｃがロボット２００Ｃに装着されることになる。したがって、ロボット２００Ｃの先端であるフランジ面２０１Ｃとロボットハンド２０２Ｃとの接続部分が、ステレオカメラ３００Ｃをロボット２００Ｃに装着する部分である。
【００９０】
校正治具９００Ｃは、ベース部９０１Ｃ、支柱部９０２Ｃ，９０３Ｃ、上板部９０４Ｃ、及び第１実施形態で説明した基準パターン部９０５と同様の構成の基準物である基準パターン部９０５Ｃを有する。ベース部９０１Ｃと上板部９０４Ｃとは、互いに対向するように配置された板状の部材であり、支柱部９０２Ｃ，９０３Ｃで接続されている。第３実施形態では、図１３（ａ）に示すように、ロボットハンド２０２Ｃ及びステレオカメラ３００Ｃを基準パターン部９０５Ｃに対して位置決めし、ステレオカメラ３００Ｃで基準パターン部９０５Ｃを撮像することにより校正を行う。
【００９１】
第３実施形態においてベース座標系Ｂの原点は、ロボット２００Ｃに対するロボットハンド２０２Ｃの装着位置、即ちロボットハンド２０２Ｃをロボット２００Ｃに装着したときに、ツール座標系Ｔと同じ位置姿勢となる位置に設定されている。第１実施形態と同様、校正治具９００Ｃ内においてベース座標系Ｂと基準パターン部９０５Ｃのマークの位置関係を計測する。これにより、ベース座標系Ｂに対するセンサ座標系Ｖの相対的な位置姿勢である相対関係、即ち回転行列ＲＣ及び並進ベクトルｔＣを高精度に求めることができる。
【００９２】
ロボットハンド２０２Ｃには、係合部である位置決めピン３２１Ｃ，３２２Ｃが設けられ、ロボット２００Ｃのフランジ面２０１Ｃには、係合部である丸穴２２１Ｃ及び長穴２２２Ｃが設けられている。ベース部９０１Ｃには、丸穴２２１Ｃ及び長穴２２２Ｃと同様に、ピン３２１Ｃ，３２２Ｃに対応する位置に穴部９０６Ｃ，９０７Ｃが設けてあり、ステレオカメラ３００Ｃを基準パターン部９０５Ｃに対して高い再現性で位置決めすることができる。センサ座標系Ｖとベース座標系Ｂとの間の校正を行う際には、ステレオカメラ３００Ｃを校正治具９００Ｃに設置することにより、ステレオカメラ３００Ｃの視野領域に基準パターン部９０５Ｃが含まれることになる。ロボットハンド２０２Ｃをロボット２００Ｃに装着するときには、ピン３２１Ｃ，３２２Ｃと穴２２１Ｃ，２２２Ｃとを係合させることにより、ステレオカメラ３００Ｃ、即ちベース座標系Ｂをロボット２００Ｃに高精度に位置決めることができる。
【００９３】
なお、本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【００９４】
上記第１〜第３実施形態では、相対関係を示す校正データである回転行列ＲＣ及び並進ベクトルｔＣがＨＤＤ６０４等のメモリに記憶され、教示点のデータが、ＨＤＤ６０４等のメモリとは別のＨＤＤ５０４等のメモリに記憶される場合について説明した。つまり、校正データと教示点のデータがそれぞれ別のメモリに記憶される場合について説明した。しかし、本発明は、これに限定するものではなく、共通のメモリに、校正データと教示点のデータとが記憶される場合であってもよい。また、校正データや教示点のデータが記憶されるメモリが、内部記憶装置である場合について説明したが、これに限定するものではなく、外部記憶装置であってもよい。外部記憶装置としては、ロボット制御装置５００又はセンサ制御装置６００に直接接続されるメモリであってもよいし、ネットワークを介して接続されるメモリであってもよい。
【００９５】
また、上記第１及び第２実施形態では、視覚センサが、ロボットのロボットハンドに直接装着され、上記第３実施形態では、中間部材であるエンドエフェクタを介してロボットに装着される場合について説明したが、これに限定するものではない。例えば視覚センサが、ロボットのロボットアームの先端に直接装着される場合であってもよい。
【００９６】
また、上記第１及び第２実施形態では、視覚センサの係合部が２つの位置決めピンであり、ロボットハンドの係合部が丸穴及び長穴である場合について説明したがこれに限定するものではない。ロボットハンドの機械的な取付基準に対して、視覚センサを位置決めできる構成であれば、ロボットの係合部と視覚センサの係合部は、どのような形状であってもよい。例えば、ロボットハンド又は視覚センサの一方に３面の突き当て面を設け、他方に３面の突き当て面に突き当たる突起部を設けてもよい。
【００９７】
また、上記第１〜第３実施形態において、ロボットハンドのフィンガの本数が２本又は３本の場合について例示して説明したが、４本以上の場合であってもよい。また、エンドエフェクタがロボットハンドの場合が好適であるが、ロボットハンド以外のエンドエフェクタ、例えば溶接トーチやドライバ等であってもよい。
【００９８】
また、上記第１〜第３実施形態では、計測対象物に付与するマークＭＫ１〜ＭＫ３の数が３点である場合について説明したがこの数に限定するものではない。計測対象物の位置と姿勢を特定できるためには、３点以上の特徴点があればよく、例えば４点以上の特徴点を設けても同様に教示が可能である。マークの特徴点数を増やすと、最小二乗法で位置姿勢を求める際に誤差が平滑化され、教示の精度が向上する。
【００９９】
また、上記第１〜第３実施形態では、垂直多関節のロボットアームについて説明したが、これに限定するものではなく、パラレルリンクのロボットアーム、水平多関節のロボットアームや直交型のロボットなどへの適用も可能である。
【０１００】
また、上記第１〜第３実施形態では、３次元の位置姿勢を計測可能な視覚センサとして、ステレオカメラ３００，３００Ｂ，３００Ｃである場合について説明したが、これに限定するものではない。例えば視覚センサとして、プロジェクタによるパターン投光法、レーザー切断法、Ｔｉｍｅ−Ｏｆ−Ｆｌｉｇｈｔ法などの方式を用いた視覚センサを用いてもよい。
【０１０１】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０２】
１００…ロボットシステム、２００…ロボット、３００…ステレオカメラ（視覚センサ）、５０１，６０１…ＣＰＵ（制御部）、９００…校正治具、９０５…基準パターン部（基準物）、Ｂ…ベース座標系、ＲＣ，ｔＣ…相対関係、Ｖ…センサ座標系
【図１】
2018126835.tif 000013
【図２】
2018126835.tif 000014
【図３】
2018126835.tif 000015
【図４】
2018126835.tif 000016
【図５】
2018126835.tif 000017
【図６】
2018126835.tif 000018
【図７】
2018126835.tif 000019
【図８】
2018126835.tif 000020
【図９】
2018126835.tif 000021
【図１０】
2018126835.tif 000022
【図１１】
2018126835.tif 000023
【図１２】
2018126835.tif 000024
【図１３】
2018126835.tif 000025