(57)【要約】【課題】作業者による微調整作業を必要とせず、低精度な治具でも高精度にロボットの座標系と視覚センサの座標系を校正することができるようにする。【解決手段】ロボットアーム１の可動範囲を含む計測範囲を計測する固定カメラ３と、ロボットアーム１の先端に位置決めされる手先カメラ７と、ロボットアーム１を制御する制御装置４を備える。固定カメラ３で複数のマーク８１を計測させて得た第１の計測データと、手先カメラ７によりマーク８１を各々計測する複数の校正用の位置姿勢にロボットアーム１の位置姿勢を制御する校正姿勢データと、複数の校正用の位置姿勢の各々にロボットアーム１を位置決めした状態で手先カメラ７によりマーク８１を計測して得た第２の計測データと、用いて、固定カメラ３の計測値とロボットアーム１に与える指令値とを関係づける校正関数を算出する。【選択図】図２
2018202608.tif 000002
【特許請求の範囲】
【請求項１】
ロボットアームと、
前記ロボットアームの設置面に対して一定の位置関係を有する配置位置に配置され、前記ロボットアームの可動範囲を含む計測範囲を計測する第１の視覚センサと、
前記ロボットアームの先端に位置決めされる第２の視覚センサと、
前記ロボットアームの位置姿勢を制御する制御装置と、を備え、
前記制御装置は、
前記第１の視覚センサにより前記計測範囲に配置された複数の特徴部を計測させて得た第１の計測データと、
前記第２の視覚センサにより前記特徴部を各々計測する複数の校正用の位置姿勢に前記ロボットアームの位置姿勢を制御するための校正姿勢データと、
前記校正姿勢データに基づき前記複数の校正用の位置姿勢の各々に前記ロボットアームを位置決めした状態で前記第２の視覚センサにより前記特徴部を計測させて得た第２の計測データと、
を用いて、前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正関数を算出し、
前記第１の視覚センサの計測値に基づき前記ロボットアームの位置姿勢を制御する際、算出した前記校正関数を用いて前記ロボットアームに与える指令値を生成する制御を行うことを特徴とするロボット装置。
【請求項２】
請求項１に記載のロボット装置において、前記制御装置は、前記第１の計測データと、前記ロボットアームの座標系と前記第１の視覚センサの座標系の関係について予め設定された初期値データと、に基づいて前記校正姿勢データを算出し、算出した前記校正姿勢データに基づき前記複数の校正用の位置姿勢の各々に前記ロボットアームを位置決めした状態で、前記第２の視覚センサにより前記特徴部を計測する制御を行うことを特徴とするロボット装置。
【請求項３】
前記第１の計測データは前記第１の視覚センサから前記特徴部の少なくとも３点以上の座標値を計測した座標データであり、前記第２の計測データは、前記特徴部のうち、前記複数の校正用の位置姿勢の各々に対して前記第２の視覚センサの計測領域の内部に含まれた前記特徴部を少なくとも１点以上ずつ計測した座標データであって、前記制御装置は前記第１の計測データと前記第２の計測データの座標データを対応づけることによって前記校正関数を算出する制御を行うことを特徴とする請求項１または２に記載のロボット装置。
【請求項４】
前記制御装置は、前記第１の計測データ、前記校正姿勢データ、および前記第２の計測データに加え、さらに前記ロボットアームの手先座標系と前記第２の視覚センサの座標系とを関係づける校正データを用いて前記校正関数を算出する制御を行うことを特徴とする請求項１から３のいずれか１項に記載のロボット装置。
【請求項５】
請求項１から４のいずれか１項に記載のロボット装置において、前記ロボットアームに設けられワークに対して作業を行うロボットハンドと、前記ロボットアームを介して移動される前記ロボットハンドの可動範囲内に設けられ前記ワークが配置されるワーク配置エリアを有し、前記第１の視覚センサは前記計測範囲が前記ワーク配置エリアを含むよう配置されるとともに、複数の前記特徴部を結ぶ多角形が、前記ワーク配置エリアにおいて前記ワークを把持する前記ロボットハンドの把持中心が取りうる範囲を含むよう、複数の前記特徴部が配置されることを特徴とするロボット装置。
【請求項６】
請求項５に記載のロボット装置において、前記ロボットハンドが前記第２の視覚センサを把持することにより前記第２の視覚センサが前記ロボットアームの先端に位置決めされることを特徴とするロボット装置。
【請求項７】
ロボットアームと、
前記ロボットアームの設置面に対して一定の位置関係を有し、かつ前記ロボットアームの可動範囲を含む計測範囲を計測する第１の配置位置、または前記ロボットアームの先端の第２の配置位置に配置される視覚センサと、
前記ロボットアームの位置姿勢を制御する制御装置と、を備え、
前記制御装置は、
前記第１の配置位置に配置された前記視覚センサにより前記計測範囲に配置された複数の特徴部を計測させて得た第１の計測データと、
前記第２の配置位置に配置された前記視覚センサにより前記特徴部を各々計測する複数の校正用の位置姿勢に前記ロボットアームの位置姿勢を制御するための校正姿勢データと、
前記校正姿勢データに基づき前記複数の校正用の位置姿勢の各々に前記ロボットアームを位置決めした状態で前記第２の配置位置に配置された前記視覚センサにより前記特徴部を計測して得た第２の計測データと、
を用いて前記第１に配置された視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正関数を算出し、
前記第１に配置された視覚センサの計測値に基づき前記ロボットアームの位置姿勢を制御する際、算出した前記校正関数を用いて前記ロボットアームに与える指令値を生成する制御を行うことを特徴とするロボット装置。
【請求項８】
請求項１から７のいずれか１項に記載の制御を前記制御装置に行わせるためのロボット制御プログラム。
【請求項９】
請求項８に記載のロボット制御プログラムを格納したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１０】
ロボットアームと、前記ロボットアームの設置面に対して一定の位置関係を有する配置位置に配置され、前記ロボットアームの可動範囲を含む計測範囲を計測する第１の視覚センサと、前記ロボットアームの先端に位置決めされる第２の視覚センサと、前記ロボットアームの位置姿勢を制御する制御装置と、を備えたロボット装置の制御方法において、
前記制御装置が、前記第１の視覚センサにより前記計測範囲に配置された複数の特徴部を計測させ第１の計測データを得る第１の計測工程と、
前記制御装置が、前記第２の視覚センサにより前記特徴部を各々計測する複数の校正用の位置姿勢に前記ロボットアームの位置姿勢を制御するための校正姿勢データに基づき前記複数の校正用の位置姿勢の各々に前記ロボットアームを位置決めした状態で前記第２の視覚センサにより前記特徴部を計測させ第２の計測データを得る第２の計測工程と、
前記制御装置が、前記第１の計測データ、前記校正姿勢データ、および前記第２の計測データを用いて前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正関数を算出する校正工程と、
前記第１の視覚センサの計測値に基づき前記ロボットアームの位置姿勢を制御する際、前記校正工程で算出した前記校正関数を用いて前記ロボットアームに与える指令値を生成する制御工程と、
を含むことを特徴とするロボット装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットアームの設置面に対して一定の位置関係を有する配置位置に配置されロボットアームの可動範囲を含む計測範囲を計測する視覚センサを用いてロボットアームの位置姿勢を制御するロボット装置、およびロボット装置の制御方法に関する。
【背景技術】
【０００２】
工業製品の生産現場で、ロボット装置が広く用いられるようになっている。この種のロボット装置において、ワークのピッキングや組立の作業を自動的に精度よく行うために、ロボットと視覚センサによる計測を組合せたシステム構成が知られている。ここでいう視覚センサとは、対象物の位置や姿勢を２次元的または３次元的に計測可能なセンサのことである。
【０００３】
この種の視覚センサとしては、カメラのような光学センサを含み、その光学センサで撮像した画像に対する画像認識などの画像処理を介して、対象物の位置や姿勢を２次元的または３次元的に計測する。例えば、一般的な単眼の工業用カメラ、特定の視差関係で３次元計測を行うカメラを複数配置したステレオカメラ、対象物にシート状のレーザ光やパターン光を投影する光学系とカメラを組み合わせた三次元計測センサなどが視覚センサとして用いられている。一般に、このようなロボット用途の視覚センサを表す言葉として「ビジョン」「ロボットビジョン」「カメラ」などの表現が用いられることがある。
【０００４】
例えば、ワークのピッキングを行うロボット装置のロボットビジョンシステムでは、ワーク供給エリア（コンベアやトレイ・部品箱など）の上方に視覚センサを設置する構成が知られている。この視覚センサは、ロボットアームの動作とは独立してロボットアームの設置面に対して固定的な一定の位置関係を有する配置位置に配置され、ワーク供給エリアの比較的広い範囲（例えばその全体）を計測範囲として有する。
【０００５】
ピッキング動作においては、この視覚センサによって、まず、平置きや山積みされたワークの位置や姿勢を計測する。そして、その位置姿勢情報に基づいてロボットアームの動作を補正し、ロボットアーム先端に設けられたロボットハンド（グリッパや吸着パッドなど）をワーク上方からアプローチさせて部品を取得する。
【０００６】
このようなロボットビジョンシステムに作業を行わせるにあたっては、事前にロボットの座標系と視覚センサの座標系の関係を校正（キャリブレーション）により求めておくことが多い。視覚センサの計測値からロボットの動作目標値を得るために、視覚センサの座標系で得られた計測値を、ロボットアームの制御の基準となるロボット座標系の値に座標変換する必要があるためである。
【０００７】
従来の代表的な校正方法として、インチングによる座標位置合わせがある。空間に固定されたワークやマーカーなどの３点以上の特徴点を視覚センサから計測しながら、その３点以上の特徴点にロボットアーム先端のツール頂点などの代表点の座標が一致するようにロボットアームを作業者がインチング操作し、位置決めする。そして、視覚センサの計測値とロボットアームを位置決めした時のロボットアームの位置姿勢から、ロボットの座標系と視覚センサの座標系の関係を表す校正値を求める。
【０００８】
また、ロボットアームの先端に校正用のマーカーを施したボードを取り付けて校正する方法も知られている（例えば下記の特許文献１）。この手法では、ロボットアームを複数の校正姿勢に位置決めするとともに、各々の校正姿勢において視覚センサからマーカーの計測値を取得し、校正値を算出する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１７２９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来のインチングによる座標合わせの方法においては、作業者のインチング操作を介してロボットアームの位置姿勢を微調整する作業を要するため、自動化された作業に比べ座標合わせのために長い作業時間が必要になる、という問題があった。また、精度に関しても作業者の熟練度に依存するため、精度が安定しない問題があった。
【００１１】
また、特許文献１に記載されているような校正治具は、治具の特徴点（マーカー）間の位置関係を高精度に製作するか、または製作後に高精度に計測しておく必要があり、コストアップを招いていた。特に、工場内の複数の工程でロボットビジョンシステムを用いるような場合には、視覚センサの計測視野に応じて適切なサイズの治具を用いる必要があるため、高精度で高価な治具を複数用意しなければならず、影響が大きかった。
【００１２】
さらに、特許文献１のようにロボット先端に校正用のマーカーを付与する方法では、作業姿勢によってはロボットアームに付与したマーカーが視覚センサから隠れてしまう可能性があった。例えば、視覚センサの計測方向とロボットハンドのアプローチ方向が概同じである場合などにおいて、マーカーの隠れが生じる可能性がある。例えば、前述のような視覚センサ配置で上方から視覚センサでワークを計測して上方からピッキングを行う場合、ピッキング時の姿勢においてはロボット自身が視覚センサの視線を遮るため、視覚センサからロボット先端部を計測することができない。
【００１３】
そのため、やむを得ず校正時のロボット姿勢を実作業時とは大きく異なる姿勢にしてロボット先端部のマーカーを見えるようにしたり、マーカーの特徴点位置がロボット先端から大きく離れた位置になるように固定治具を設計したりする必要があった。しかし、ロボットの姿勢や視覚センサから計測するマーカーの特徴点位置をピッキング等の実作業時の条件と大きく変えた場合は、ロボットアームの動作誤差や視覚センサの計測誤差の影響が大きくなり、校正の精度が低下するという問題を生じる。一般的に、ロボットの絶対的な位置精度はロボットの繰返位置再現性に比べて低いため、実作業の姿勢に近い姿勢でかつ実作業時の動作範囲をなるべく広くカバーできるように、ロボットを動作させて校正を行うことが精度上望ましい。
【００１４】
本発明の課題は、上記の問題に鑑み、作業者による微調整作業を必要とせずに低精度な治具でも高精度にロボットの座標系と視覚センサの座標系を校正することができるロボット装置を提供することを目的とする。また、本発明においては、視覚センサの計測方向とロボットハンドのアプローチ方向が概ね同方向であっても隠れの影響を受けずに高精度な校正が可能なロボットビジョンシステムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
以上の課題を解決するため、本発明においては、ロボットアームと、前記ロボットアームの設置面に対して一定の位置関係を有する配置位置に配置され、前記ロボットアームの可動範囲を含む計測範囲を計測する第１の視覚センサと、前記ロボットアームの先端に位置決めされる第２の視覚センサと、前記ロボットアームの位置姿勢を制御する制御装置と、を備え、前記制御装置は、前記第１の視覚センサにより前記計測範囲に配置された複数の特徴部を計測させて得た第１の計測データと、前記第２の視覚センサにより前記特徴部を各々計測する複数の校正用の位置姿勢に前記ロボットアームの位置姿勢を制御するための校正姿勢データと、前記校正姿勢データに基づき前記複数の校正用の位置姿勢の各々に前記ロボットアームを位置決めした状態で前記第２の視覚センサにより前記特徴部を計測させて得た第２の計測データと、を用いて、前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正関数を算出し、前記第１の視覚センサの計測値に基づき前記ロボットアームの位置姿勢を制御する際、算出した前記校正関数を用いて前記ロボットアームに与える指令値を生成する制御を行う構成を採用した。
【発明の効果】
【００１６】
上記構成によれば、第１および第２の視覚センサの双方から基準マークを計測するようにしているので、ロボット先端をマーカーに厳密に微調整する必要が無く短時間で校正処理を行うことができる。また、校正値の算出においては第１および第２の視覚センサの計測値を用い、マーカーの座標値に関する設計寸法などの事前情報を用いないため、マーカー位置精度が低精度であっても高精度な校正が可能である。また、第１の視覚センサの計測方向とロボットハンドのアプローチ方向が概ね同じであっても隠れの影響を受けずに校正できるため、実作業時に近い姿勢かつ充分広い範囲でロボットを動作させて高精度に校正を行うことができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施例１のロボット装置の構成をピッキング動作時の状態で示した説明図である。
【図２】本発明の実施例１のロボット装置の構成を校正時の状態で示した説明図である。
【図３】本発明の基準部材の配置の一例を示した説明図である。
【図４】本発明の基準部材の配置の異なる一例を示した説明図である。
【図５】本発明の実施例１における校正制御手順を示したフローチャート図である。
【図６】本発明の実施例１における各座標系の関係を示した説明図である。
【図７】本発明の実施例２のロボット装置の構成を校正時の状態で示した説明図である。
【図８】本発明の実施例２における校正制御手順を示したフローチャート図である。
【図９】本発明の実施例２における各座標系の関係を示した説明図である。
【図１０】本発明の実施例３のロボット装置の構成を各座標系の関係とともに校正時の状態で示した説明図である。
【図１１】本発明の実施例３における校正制御手順を示したフローチャート図である。
【発明を実施するための形態】
【００１８】
以下、添付図面に示す実施例を参照して本発明を実施するための形態につき説明する。以下に示す実施例はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。
【実施例１】
【００１９】
まず、本明細書における数式表現について説明する。以下の数式表現は、本実施例のみならず、後述の実施例についても通用する。
【００２０】
（本明細書における数式表現の定義）
本明細書内では各要素の６自由度位置姿勢を表現するために３次元の座標系を用い、２つの座標系の相対姿勢を座標変換行列（同次変換行列）によって表現する。本明細書において、任意の座標系Ａから任意の座標系Ｂに向かう相対位置姿勢を表す座標変換行列をＡＨＢの形式で記述する。また、その座標変換行列が表す相対姿勢のことを単純に『相対姿勢ＡＨＢ』のように記述することがある。ここで、ＡＨＢは４×４の同次変換行列であって、回転行列ｒと並進ベクトルｔを用いて以下のように定義される。
【００２１】
【数１】
2018202608.tif 000003
ここで、ｒは３次元の回転を表す３×３の回転行列であり、ｔは３×１の３次元の並進ベクトルである。座標変換行列の性質として、任意の座標系Ａ，Ｂ，Ｃに対して、下記の関係が成立する。
【００２２】
【数２】
2018202608.tif 000004
すなわち、座標系Ａに対する座標系Ｂの相対姿勢ＡＨＢと座標系Ｂに対する座標系Ｃの相対姿勢ＢＨＣから、行列の掛け算により座標系Ａに対する座標系Ｃの相対姿勢ＡＨＢを求めることができる。
【００２３】
また、座標系Ｂに対する座標系Ａの相対姿勢ＢＨＡを求めるためには、下記のように逆行列を計算すればよい。
【００２４】
【数３】
2018202608.tif 000005
また三次元空間上の任意の点Ｐを座標系Ａから見た座標値の同次ベクトルをＡＰと表現する。その座標値を（Ｘ，Ｙ，Ｚ）とすると同次ベクトルＡＰは
【００２５】
【数４】
2018202608.tif 000006
のように表わされる。
点ＰをＢ座標系から見た座標値ＢＰに変換するためには以下のように相対姿勢ＢＨＡ（同次変換行列）を左から掛けることにより、座標変換することができる。
【００２６】
【数５】
2018202608.tif 000007
【００２７】
次に、本実施例１で用いられるロボット装置のハードウェア的な構成および、校正手順につき説明する。図１は、本発明の本実施例に係るロボット装置のハードウェア構成の一例を示している。図１はロボットビジョンシステム（以下、ロボットシステムと記載）１０の構成をピッキング作業時の状態で示している。また、図２は、本発明の本実施例に係るロボットシステム１０の校正時のシステム構成図である。
【００２８】
図１ないし図２に示すように、ロボットシステム１０は、ロボットアーム１、およびロボットアーム１の手先に固定されたロボットハンド２と、固定カメラ３（第１の視覚センサ）と、制御装置４と、ワーク配置エリア５と、架台９を備えている。また、校正時には、さらに手先カメラ７（第２の視覚センサ）とマーカー８（基準部材）を用いる（図２）。
【００２９】
固定カメラ３は、架台９の設置面に配置した支持脚上のマウントや雲台上に設置される。あるいは、架台９を配置する室内の天井から吊り下げたマウントなどに配置してもよい。いずれにしても、固定カメラ３は、これらの適当な固定カメラ支持部を介して、ロボットアーム１の動作とは独立してロボットアーム１を支持する架台９の設置面に対して固定的な一定の位置関係を有する配置位置に配置される。
【００３０】
ワーク配置エリア５は、固定カメラ３や手先カメラ７の計測対象となるワーク６ないしマーカー８が配置される計測領域を構成する。当然ながら、この計測領域は、ロボットアーム１の可動範囲を含み、また、ロボットアーム１を支持する架台９の設置面に対して固定的な一定の位置関係を有する。
【００３１】
制御装置４はロボットシステム１０全体の動作を制御する制御手段であって、演算を行うＣＰＵ４１と、ＲＯＭ４２およびＲＡＭ４３から成るメモリ部と、外部と通信を行うインターフェース（Ｉ／Ｆ）部４４を有している。これらの各ブロックは制御装置内部の通信に用いられるバス４５を介して相互に接続される。
【００３２】
後述の校正処理において生成される手先カメラ７の計測に必要な校正姿勢データ、最終的な校正値（校正関数）を格納するためのメモリ領域は、例えばＲＯＭ４２やＲＡＭ４３に配置する。例えば、この校正姿勢データや校正値（校正関数）を格納するＲＯＭ４２の領域は、好ましくはＥＥＰＲＯＭのような書き換え可能なＲＯＭデバイスから構成する。あるいは、校正姿勢データ、校正値（校正関数）を格納する領域は、適当な電源で主電源が遮断された状態でも記憶内容がバックアップされたＲＡＭ４３の領域に配置するようにしてもよい。このような構成により、一度生成した校正姿勢データや校正値（校正関数）を主電源の遮断を狭んでも利用できるようになる。この種の校正姿勢データや校正値（校正関数）は、ある程度のスパンを通して、固定的にメモリに格納しておく運用となるはずであるから、その格納領域は上記のように不揮発性を有するメモリとするのが好ましい。これらのデータの格納には、ＲＯＭ４２や、ＲＡＭ４３の不揮発領域の他、もちろんＨＤＤやＳＳＤなどの外部記憶デバイスを用いてもよい。
【００３３】
図１では、ＣＰＵ４１の制御機能を４１１〜４１４の各部によって示してある。これらの制御部や演算部は、あたかもハードウェアブロックであるかのごとく図示してあるが、実際には、例えばＣＰＵ４１がＲＯＭ４２に記憶されたプログラムを読み込み、実行することによって実現される。これらの制御部および演算部は、ロボット制御部４１１と、校正演算部４１２と、視覚センサ制御部４１３と、特徴位置演算部４１４である。
【００３４】
なお、本実施例では、ロボット制御部４１１、校正演算部４１２、視覚センサ制御部４１３および特徴位置演算部４１４を一台の制御装置４の内部に備える場合を例として説明する。しかしながら、これらの各ブロックについては、別個に設けられた複数の制御装置を組み合わせることによって同等の機能を実現しても構わない。
【００３５】
ロボットアーム１は架台９に固定された例えば６軸垂直多関節のロボットアームであり、制御装置４のインターフェース部４４に電気的に接続されている。ロボットアーム１は、ロボット制御部４１１の指令値によって位置姿勢を制御され、先端部を６自由度に動作させることができる。ロボットアーム１の基端部には、架台９に対するロボットアーム１の取付位置姿勢を代表する座標系としてロボット座標系Ｒが設定されている。ロボット制御部４１１は、インターフェース部４４を介してロボットアーム１およびロボットハンド２と通信し、これらの動作を制御する。
【００３６】
図１、図２では、インターフェース部４４は簡略化のため１つのブロックで示してあるが、実際には外部と通信するためのいくつかの異なる通信方式のインターフェース部によって構成することができる。例えば、インターフェース部４４は、後述の固定カメラ３や手先カメラ７との入出力にも用いられるが、これらカメラとの通信方式は、ロボットアーム１との通信で用いられる通信方式と異なっていて構わない。さらに、図１、図２では、インターフェース部４４にはネットワーク５０が接続されている。ＣＰＵ４１は、インターフェース部４４〜ネットワーク５０を介して生産工程を管理するサーバや、プラント中の他のロボット装置と通信することができる。
【００３７】
ＲＯＭ４２は、例えばＣＰＵ４１が実行するプログラムを格納するためのプログラムメモリ、いわゆるコンピュータ読み取り可能な記録媒体として用いられる。このようなプログラムメモリはＲＯＭ４２に限らず他の記憶デバイスから構成することができる。ＣＰＵ４１が実行するプログラムを格納するための記憶デバイスとしては、固定式あるいは着脱式のＨＤＤやＳＳＤのような外部記憶装置、着脱式の各種フラッシュメモリや光ディスクを用いることができる（いずれも不図示）。特に着脱式の記憶デバイスは、ＣＰＵ４１の制御プログラムを導入、ないし供給し、または更新する目的で用いることができる。あるいは、本実施例のロボットシステム１０制御プログラムは、インターフェース部４４に接続されたネットワーク５０を介してダウンロードし、上述の各種プログラムメモリに導入、供給（あるいは更新）することもできる。
【００３８】
さらに、インターフェース部４４には、ロボットアーム１の動作を教示するための教示装置としてティーチングペンダント（不図示）が接続される。周知のように、ティーチングペンダント（ＴＰ）は、各種ファンクションキーとディスプレイなどを有し、手動操作によってロボットアーム１を動作させ例えば複数の教示点を順次、教示することによりロボットアーム１の位置姿勢をプログラムすることができる。下記の校正処理においては、複数のマーカー８を手先カメラ７で計測できる位置姿勢をロボットアーム１に教示するために用いられる。
【００３９】
また、インターフェース部４４には、不図示のディスプレイ（ＬＣＤパネルなどを用いた表示装置）が接続される。このディスプレイは、後述の校正処理において、例えばティーチングペンダントを用いた教示操作中、固定カメラ３ないし手先カメラ７の撮影した画像を表示するのに用いることができる。
【００４０】
ロボットハンド２は、ワーク６を把持するためにロボットアーム１の先端部に設けられている。このロボットハンド２もインターフェース部４４を介して制御装置４に接続されている。ロボットハンド２は制御装置４のロボット制御部４１１によって制御され、フィンガー２１の開閉によってワーク６を把持およびリリースする動作を行うことができる。また、ロボットハンド２は、後述する手先カメラ７を再現性良く取り付けるための手先カメラ取付部２２を備えている。なお、本実施例においてはフィンガー２１の開閉によってワーク６を把持するロボットハンド２を例示しているが、ワーク６に対して作用を行うエンドエフェクタであれば他の構成のものを用いて構わない。例えば、真空吸着によってワーク６を取得する吸着パッドや、磁力を用いてワーク６を取得する電磁石ツールなどをロボットハンド２の代わりに用いてもよい。ロボットハンド２の掌部には、ロボットハンド２の位置姿勢を表す手先座標系Ｔが設定されている。
【００４１】
ロボットアーム１は、制御装置４のロボット制御部４１１から出力される指令値に基づき各関節を駆動して、ロボットハンド２の位置姿勢を調整するようになっている。ロボット制御部４１１は、ロボット座標系Ｒを基準とする手先座標系Ｔの相対位置姿勢の目標値に対して、ロボットアーム１の各関節の取るべき角度目標値を算出する（逆運動学計算）。そして、ロボットアーム１の各関節に設けられた不図示のエンコーダが出力する現在角度が角度目標値に一致するようにサーボ制御を行う。また、ロボット制御部４１１は、エンコーダから各関節の現在角度情報を取得し、ロボット座標系Ｒに対する手先座標系Ｔの現在の相対位置姿勢を算出することができる。
【００４２】
ワーク配置エリア５は、ピッキング時にワーク６を配置するためのエリアである。ワーク６の供給、という観点から考えると、ワーク配置エリアは上述のワーク供給エリアと考えてもよい。供給すべきワーク６は、図１のようにワーク配置エリアの上面にバラバラな向きに平置きされる。なお、本実施例においては平置きの場合について例示するが、ワーク６は専用のトレイに１個ずつ仕切られて供給されてもよいし、ワーク６が箱やトレイに山積みされた状態で供給されてもよい。
【００４３】
図１、図２において、本実施例の固定カメラ３は、例えばワーク６やマーカー８を３次元的に計測可能なステレオカメラから構成される。固定カメラ３の撮影距離や光学系の焦点距離は、ワーク配置エリア５内でワーク６が存在し得る範囲全域を計測できるよう、定められる。
【００４４】
固定カメラ３はインターフェース部４４を介して制御装置４に接続されており、視覚センサ制御部４１３からの指令を受けてワーク配置エリア５を撮影し、画像データを制御装置４に送信する。特徴位置演算部４１４は、固定カメラ３の撮像した画像データに対して画像処理を行い、ワーク６のエッジや角などの特徴部位を認識するとともに、ステレオ法のアルゴリズムを用いてワーク６の位置または位置姿勢を三次元的に算出する。固定カメラ３からの３次元計測を行うにあたって必要な、ステレオ画像上の２次元座標値と３次元の座標を対応づけるためのカメラ校正パラメータは、固定カメラ３単体で事前に校正されており、ＲＯＭ４２に記憶されているものとする。
【００４５】
より具体的には、例えばステレオカメラを構成するカメラそれぞれについて２次元の画像座標と３次元の視線ベクトルを対応づけるためのカメラ内部パラメータと、カメラ間の相対位置姿勢を表すカメラ相対位置姿勢パラメータを事前に校正しておく。ステレオカメラの校正方法に関しては種々の方法が公知であるのでここでは詳述しない。例えば、ステレオカメラを構成する複数のカメラのうちの一台のレンズ主点位置に、固定カメラ３の位置姿勢を代表する固定カメラ座標系Ｆが仮想的に設定されている。固定カメラ３から上述のように計測を行った際の計測値は、固定カメラ座標系Ｆを基準として表現された座標値または座標変換行列の形で出力されるものとする。
【００４６】
手先カメラ７は、ロボットシステム１０の校正時にロボットアーム１の手先カメラ取付部２２に取り付けられる着脱可能なステレオカメラである。手先カメラ取付部２２を介してロボットハンド２に機械的に支持されるとともに、ロボットアーム１の体内に設けた不図示の配線によってインターフェース部４４に電気的に接続され、制御装置４と互いに通信できるよう構成されている。手先カメラ７は固定カメラ３と同様に、視覚センサ制御部４１３からの撮像指令によって撮像を行い、画像データを制御装置４に送信する。
【００４７】
手先カメラ７に関しても、ステレオ画像上の２次元座標値と３次元の座標を対応づけるために必要なカメラ校正パラメータは事前に求められており、ＲＯＭ４２に予め記憶されている。特徴位置演算部４１４は、手先カメラ７が計測した画像データに対しても固定カメラ３の場合と同様に、画像処理を行って対象物の特徴部位を認識し、特徴部の位置または位置姿勢を３次元的に算出することが出来る。手先カメラ７に対しても、例えばステレオカメラを構成する複数のカメラのうちの一台のレンズ主点位置に、手先カメラ７の位置姿勢を代表する手先カメラ座標系Ｖが仮想的に設定されている。手先カメラ７の画像データに基づいて演算された位置または位置姿勢の計測値は、手先カメラ座標系Ｖを基準にした値として出力される。
【００４８】
マーカー８はロボットシステム１０の校正時にワーク配置エリア５に取り付けられる基準部材であって、固定カメラ３および手先カメラ７から計測可能な特徴部として、円形のマーク８１が黒色で印刷されている。本実施例では、マーカー８の印刷精度や加工精度、ワーク配置エリア５に対する設置の精度は、後述する校正の際にマーク８１が固定カメラ３および手先カメラ７の視野内に入れば良く、高精度の加工や位置調整を必要としない。例えば、図示しないメネジ部をワーク配置エリア５の上面に設けておき、ネジ固定する、といった手法によりマーカー８を装着することができる。
【００４９】
マーカー８は、実際にワーク６をピッキングする際にワーク６の特徴部が存在し得る範囲およびロボットハンド２がワーク６をピッキングする際に取りうる手先位置の動作範囲を極力広くカバーするように配置することが望ましい。その理由としては、ピッキング精度の向上にある。例えば、第一に、固定カメラ３にはカメラ校正の誤差があるため、被計測部位の座標に応じた系統的な誤差が存在する。第二には、ロボットアーム１にも、ロボットアーム１の製作誤差や自重による撓み、熱膨張等による誤差が存在するため、位置姿勢に応じた系統的な誤差を持っている。
【００５０】
上記の誤差の影響により、ロボット座標系Ｒと固定カメラ座標系Ｆの関係を厳密に一致させることはできない。特に狭い領域にマーカー８を設置して校正した場合には、座標系の角度ずれが大きくなり、校正を行った領域外にてピッキング作業を行う場合には、比較的大きい誤差を発生することになる。従って、上記の理由により、校正範囲は、ワーク６を実際にピッキングする際にワーク６の特徴点が取りうる範囲およびロボットアーム１が取りうる範囲を極力広くカバーすることが望ましい。また、校正を行う際のロボットアーム１の姿勢は、実際にワーク６をピッキングする際の姿勢と極力近い姿勢であることが望ましい。
【００５１】
図３は、マーカー８の配置範囲が、ロボットアーム１ないしロボットハンド２の可動範囲との関係において満たすべき設計条件を例示している。例えば、同図に示すように、ワーク配置エリア５を上面から見た際にマーク８１の特徴点（例えばその円の中心）群を囲う最小の多角形が、ロボットハンド２がワーク６を把持する際の把持中心６１を包含するように定めることが望ましい。
【００５２】
ここで「把持中心」には、ロボットハンドやワークの形状によって種々の定義が考えられるが、例えば「ロボットハンド２がワーク６を取得する際に、ロボットハンド２が設計上ワーク６に当接する点群を包含する最小球体の中心」と定義することができる。本実施例のロボットシステム１０においては、把持時にフィンガー２１とワーク６が接触する２つの接触面の対称中心が把持中心６１である。
【００５３】
なお、図３において、各々の把持中心６１の周囲に直交する矢印を２つ示してあるが、これらは各ワーク６をその姿勢で把持した際のロボットハンド２の手先座標系Ｔの２座標軸（Ｘ軸、Ｙ軸）に相当する。
【００５４】
以上のようにして、本実施例においては、第１の視覚センサは計測範囲がワーク配置エリア５を含むよう配置される。また、複数のマーカー８は、その各特徴部を結ぶ多角形がワーク配置エリア５でワーク６を把持するロボットハンド２の把持中心６１が取りうる範囲を含むよう配置される。
【００５５】
なお、マーカー８は図２および図３に記載するようにワーク配置エリア５の上面に校正時のみ一時的に設置してもよいし、図４に例示するようにワーク配置エリア５の外周部に、常に設置しておいてもよい。また例えば、ワーク６による擦れやキズの心配がない場合は、ワーク配置エリア５の上面にマーク８１を印刷しておき、マーカー８としても構わない。
【００５６】
ロボットシステム１０にピッキング作業を行わせる場合、まず、固定カメラ３よりワーク６を計測して、ワーク６の特徴部の位置または位置姿勢を表す計測値を得る。次に、計測値に基づいて、ロボットハンド２でワーク６を取得するためのロボットアーム１の目標位置（指令値）を演算する。目標位置の演算結果に基づいてロボット制御部４１１がロボットアーム１を制御し、ロボットハンド２をワーク６に上方からアプローチさせる。このアプローチ動作が完了すると、ロボット制御部４１１はロボットハンド２のフィンガー２１を制御して閉じ、ワーク６を把持させる。その後、再度ロボットアーム１およびロボットハンド２を制御してワーク６をワーク置き位置（図示しない）に搬送し、１つのワーク６に対するピッキング動作を完了する。上記の動作をワーク配置エリア５にワーク６が無くなるまで繰り返すことによって、ピッキング作業を実現する。
【００５７】
なお、ロボットハンド２がワーク配置エリア５内のワーク６にアプローチしている際は、ワーク６がロボットアーム１およびロボットハンド２によって隠れるため、固定カメラ３からワーク６を計測することが出来ない。そのためピッキング作業を繰り返し行う際には、ロボットアーム１がワーク配置エリア５上空の外に存在するタイミングで固定カメラ３の撮影を行う必要がある。
【００５８】
上記のピッキング作業の流れの中で固定カメラ３からワーク６を計測した計測値に基づいてロボットアーム１の目標値を算出するためには、固定カメラ３の計測値とロボットアーム１の指令値の関係を予め求めた校正関数が必要である。なぜなら、固定カメラ３から計測した計測値は固定カメラ座標系Ｆを基準に表現された座標値または座標変換行列であるが、ロボットアーム１を制御するためにはロボット座標系Ｒを基準とした指令値が必要だからである。本実施例においては、ロボット座標系Ｒと固定カメラ座標系Ｆの相対位置姿勢を表す座標変換行列ＲＨＦを校正関数とし、この座標変換行列ＲＨＦを校正によって求める。
【００５９】
以下、図５を参照しつつ本実施例における校正処理の流れについて説明する。図５はロボットシステム１０に対して校正を実施する際の制御手順を示している。図５の制御手順は、ＣＰＵ４１の制御プログラムとして例えばＲＯＭ４２（ないし上述の他のプログラムメモリ）に格納しておくことができる。また、図６は本実施例の校正処理において用いられる各座標系、座標変換行列および座標値の関係を示している。
【００６０】
校正処理の大まかな流れとしては、校正準備段階のステップＳ１１〜Ｓ１３は主に作業者が行う準備作業のステップであり、ステップＳ１５〜Ｓ１８は自動プログラムによってロボットシステム１０が実行することのできる校正自動実行のステップである。校正自動実行のステップＳ１５〜Ｓ１８では、まず、ステップＳ１５にて座標値ＦＰ［ｉ］（第１の計測データ）を固定カメラ３からの計測によって取得する。次にステップＳ１６において、ステップＳ１３でティーチングされた校正姿勢ＲＨＴ［ｉ］（校正姿勢データに相当する座標変換行列）を用いてロボットアーム１を制御する。そして、ステップＳ１７において、座標値ＶＰ［ｉ］（第２の計測データ）を手先カメラ７からの計測により取得する。そして、ステップＳ１８において、目的の校正値（校正関数）として座標変換行列ＲＨＦを算出する。即ち、上述のステップで既知となった座標値ＦＰ［ｉ］、校正姿勢ＲＨＴ［ｉ］、座標値ＶＰ［ｉ］と、予め取得済みの座標変換行列ＴＨＶを用いて、座標変換行列ＲＨＦを算出する。以上が、校正の大まかな流れである。
【００６１】
なお、上記の第１の計測データは、第１の視覚センサ（固定カメラ３）から特徴部の少なくとも３点以上の座標値を計測した座標データである。また、第２の計測データは、マーク（特徴部）８１のうち、校正姿勢データで示される複数の校正用の位置姿勢の各々に対して第２の視覚センサ（手先カメラ７）の計測領域内に含まれた特徴部を少なくとも１点以上ずつ計測した座標データであるものとする。
【００６２】
以下、図５の校正の各ステップについて、より詳細に説明する。なお、以下では図５中のステップ番号は括弧書きの場合「Ｓ１１」のように略記する（後述の実施例でも同様）。
【００６３】
まず、ロボットハンド２の手先カメラ取付部２２に対して、手先カメラ７を取り付ける（Ｓ１１）。ロボットハンド２および手先カメラ取付部２２は、手先カメラ７をロボットハンド２（ないしロボットアーム１）に対して、所定の装着位置に再現性良く装着できるよう構成しておく。例えば、手先カメラ取付部２２に不図示の突き当て部を設け、手先カメラ７を再現性良くネジ（不図示）等で固定できるよう構成しておく。
【００６４】
なお、手先カメラ７を取り外さなくても周囲に干渉する心配が無い場合や、ロボットシステム１０が行う別の作業において手先カメラ７を使用する場合は、手先カメラ７は常にロボットハンド２に取り付けておいてもよい。例えば、ワーク６をピッキングしてワーク置き位置に置いた後に、手先カメラ７を用いてワーク６を検査したい場合などは、手先カメラ７を常時取りつけておく。その場合は、特に手先カメラ７を設置する作業を行う必要はない。
【００６５】
次に、マーカー８をワーク配置エリア５に配置する（Ｓ１２）。設置の際の配置の要件は、例えば前述の図３に示した通りである。ワーク配置エリア５上に予め設けられたマーカー固定用のネジ穴等を用いて、Ｎ個のマーカー８を固定する。図４において例示したように、ワーク配置エリア５に常にマーカー８を取り付けておく場合は、この作業は不要である。
【００６６】
次に、Ｎ個のマーカー８に対して、Ｎ個の校正姿勢ＲＨＴ［ｉ］（Ｎ＝１，２，３，…，Ｎ）をティーチングする（Ｓ１３）。ここで、ｉ番目の校正姿勢ＲＨＴ［ｉ］は、ｉ番目のマーカー８を手先カメラ７から計測できるロボットアーム１の位置姿勢である。例えば、ピッキング作業時の姿勢を基準としてロボットアーム１をティーチングペンダント（不図示）を用いて手動操作し、ディスプレイ（不図示）で手先カメラ７の画像を確認しつつ各マーカー８を計測可能なロボットアーム１の位置姿勢を教示し、登録する。このティーチングは高精度に実施する必要はなく、１つのマーカー８については、少なくとも手先カメラ７の計測範囲にそのマーカー８が含まれていればよい。
【００６７】
ステップＳ１３のティーチング（教示）の結果、生成されたＮ個の校正姿勢ＲＨＴ［ｉ］は、校正姿勢データとしてメモリ（ＲＯＭ４２またはＲＡＭ４３）に格納される。この教示作業は一度だけ実施すればよく、例えばロボットアーム１や固定カメラ３を交換した後、再校正を行うような場合は、過去にティーチングした結果をそのまま用いてもよい。
【００６８】
次に、固定カメラ３からマーカー８を計測可能となるように、ロボットアーム１をワーク配置エリア５の上空から退避させる（Ｓ１４）。
【００６９】
以上のようにして、作業者が行う準備段階が終了し、以降はロボットシステム１０をプログラム動作させることによって自動で校正を行う。まず、固定カメラ３から各マーカー８上のマーク８１の中心座標を計測する（Ｓ１５）。より具体的には、視覚センサ制御部４１３から固定カメラ３に撮像指令を出し、固定カメラ３から撮像したステレオ画像データを取得する。取得したこのステレオ画像データの各々に対して特徴位置演算部４１４が公知の円抽出処理（マークが円形の場合）を行い、マーク８１の中心点の画像座標を認識する。そして、このマーク８１の３次元の座標値ＦＰ［ｉ］（ｉ＝１，２，３，．．．，Ｎ）を固定視覚センサ計測データ（第１の計測データ）として算出する。即ち、認識したマーク８１中心点をステレオ画像間で対応づけ、ＲＯＭ４２より読み出したカメラ校正パラメータを用いてステレオ法によってマーク８１の３次元の座標値ＦＰ［ｉ］（ｉ＝１，２，３，．．．，Ｎ）を算出する。ここで、Ｎはマーカー８の個数を表す正の整数であり、例えば図２および図３に示すようにマーカーが５個の場合はＮ＝５である。また、ｉはマーカーの個体を区別するためのインデックス（通し番号）で、下記のステップＳ１６、Ｓ１７のループ制御では、このインデックスｉがループを制御する変数として用いられる。
【００７０】
その後、ｉ番目の校正姿勢ＲＨＴ［ｉ］にロボットアーム１を動作させて（Ｓ１６）、手先カメラからマーカー８を計測する処理（Ｓ１７）を、マーカー８の個数Ｎ回分だけ繰り返す。ここでは、ステップＳ１３で生成したＮ個の校正姿勢ＲＨＴ［ｉ］を格納した校正姿勢データをメモリから読み出して用いる。なお、ステップＳ１６、Ｓ１７を狭むように配置されたステップＳ１０１、Ｓ１０２は、上記のインデックスｉを１からＮまで順次インクリメントするための制御構造を、例えばＣ言語などにおける記述様式に準じて示したものである。実際のプログラムの実行時には、ステップＳ１０１の位置ではインデックスｉが１に初期化される。また、ステップＳ１０２の位置ではステップＳ１６、Ｓ１７をＮ回実行済みか否かを判定し、Ｎ回実行済みでなければインデックスｉをインクリメントしてステップＳ１６にループし、Ｎ回実行済みであればステップＳ１８に移行する。
【００７１】
ｉ番目の校正姿勢ＲＨＴ［ｉ］において、手先カメラ７からｉ番目のマーカー８を計測する処理に関しては、前述の固定カメラ３における計測の処理と同一である。ただし、手先カメラ７の計測可能な視野範囲は固定カメラ３の視野範囲に比べて一般に狭いため、本実施例においては、各校正姿勢ＲＨＴ［ｉ］に対して一回に計測可能なマーカー８の個数は１つであるものとする。よって、ｉ番目のマーカー８上のマーク８１に対する一回の計測ごとに、手先カメラ座標系Ｖを基準とした計測された座標値ＶＰ［ｉ］（手先視覚センサ計測データ）が算出される。ロボットアーム１の動作（Ｓ１６）と、手先カメラ７からの計測（Ｓ１７）をＮ回繰り返すことにより、Ｎ組のデータが取得される。
【００７２】
最後に、上記の処理で取得したデータを用いて校正値算出処理を行う（Ｓ１８）。以下、本実施例における校正処理の原理を数式を用いて説明する。以下の数式に対応する演算は、校正演算部４１２によって実行される。より具体的には、この校正演算部４１２の演算機能は、ＣＰＵ４１が対応する演算制御プログラムを実行することにより実現される。
【００７３】
まず、ロボット座標系Ｒを基準としたマーク８１の座標値ＲＰ［ｉ］を、未知の校正値である座標変換行列ＲＨＦと固定カメラ３からマーカーを計測（Ｓ１５）した座標値ＦＰ［ｉ］を用いて記述すると、次式のようになる。
【００７４】
【数６】
2018202608.tif 000008
【００７５】
また、座標値ＲＰ［ｉ］を、ロボットアーム１を動作（Ｓ１６）させた際の校正姿勢ＲＨＴ［ｉ］と、手先カメラ７からマーク８１を計測（Ｓ１７）した座標値ＶＰ［ｉ］を用いて記述すると、
【００７６】
【数７】
2018202608.tif 000009
となる。
【００７７】
ここで座標変換行列ＴＨＶは、ロボットアーム１の手先座標系Ｔと、手先カメラ７の手先カメラ座標系Ｖを関係づける相対位置姿勢を表す校正データである。この座標変換行列ＴＨＶは、ロボットアーム１の姿勢によって変化しない固定値の行列であるため、事前に求めておくことが可能である。本実施例においては座標変換行列ＴＨＶは事前に求められており、ＲＯＭ４２に記憶されているものとする。
【００７８】
なお、座標変換行列ＴＨＶを算出する一般的な手法としては、手先カメラ７をロボットハンド２に固定した状態で公知のハンドアイキャリブレーション手法を用いることができる。また手先カメラ７を専用の治具に固定し、ロボットシステム１０とは独立した状態で校正を行っておいてもよい。その場合は例えば、専用治具上に座標が既知な指標を設けておき、手先カメラ７から計測させることによって、手先カメラ取付部２２に対する突き当て面などを基準として手先カメラ座標系Ｖの位置姿勢を校正しておくことができる。
【００７９】
ここで、式（６）と式（７）でＲＰ［ｉ］が等しいので、両式から以下の等式が成り立つ。
【００８０】
【数８】
2018202608.tif 000010
上式（８）において、左辺のＲＨＦのみが未知の量（６自由度の座標変換行列）であって、その他のパラメータはすべてこれまでのステップにより既知の量である。実際のデータには誤差があるためＮ組全てのデータについて等式が厳密に成立する解は得られない。しかしながら、マーク８１の座標データが同一直線上に無い３点以上あれば、Ｎ個の式を連立して最小二乗法で解くことにより目的の校正パラメータとして座標変換行列ＲＨＦを算出することができる。
【００８１】
【数９】
2018202608.tif 000011
式（９）の最小二乗法を解くには、例えば同時変換行列としてのＲＨＦを３つの並進パラメータ（Ｘ，Ｙ，Ｚ）と３つの回転角度パラメータ（θ，φ，ψ）で記述し、式（９）左辺が最小となるようレーベンバーグ・マーカート法などを用い数値演算で求める。また、別の例としては、座標変換行列ＲＨＦの回転行列部分を四元数（ｑ１，ｑ２，ｑ３，ｑ４）を用いて表し、四元数ベクトルの長さが１であるという制約条件のもとに、制約条件付きの最小二乗アルゴリズムを用いて解を算出してもよい。
【００８２】
以上の校正処理により、目的の校正値、すなわち、ロボット座標系Ｒと固定カメラ座標系Ｆの相対位置姿勢を表す座標変換行列ＲＨＦを数値演算によって求めることができる。以上のようにして校正演算部４１２で算出した結果は校正パラメータファイルとしてＲＯＭ４２またはＲＡＭ４３（あるいは他の記憶装置）に記憶させる。そして、前述のピッキング作業を行う場合は、記憶させた校正パラメータファイルを用いて固定カメラ３の計測した固定カメラ座標系Ｆの座標値を必要に応じてロボット座標系Ｒの座標値に変換することができる。
【００８３】
例えば、固定カメラ３でワーク６の特定部位を計測し、上記座標変換行列ＲＨＦを用いた座標変換を行い、ロボットアーム１およびロボットハンド２の位置姿勢を制御する指令値を生成することができる。そして、生成した指令値をロボット制御部４１１を介してロボットアーム１およびロボットハンド２に送信し、例えば該当の部位を把持して取り出すピッキング動作を行うことができる。
【００８４】
本実施例のロボットシステム１０によれば、固定カメラ３と手先カメラ７の双方からマーク８１を計測する構成としたことにより、ロボットアーム１の先端を厳密に微調整する必要がなく短時間で校正が可能である。また、校正値の算出においてはマーク８１の座標値に関する設計寸法などの事前情報を用いないため、マーカー８自体の位置精度が低精度であっても高精度な校正が可能である。
【００８５】
また、固定カメラ３が例えば上方から計測を行い、ロボットハンド２がワーク６に上方からアプローチする構成であっても、固定カメラ３のみを用いる校正方式とは異なり、ロボットハンド２やロボットアーム１による隠蔽の影響を受けずに済む利点がある。すなわち、手先カメラ７でマーク８１を校正計測する時は、隠蔽の影響を受けず確実にマーク８１を計測することができる。そのため、実作業時に近い姿勢で、かつ充分広い範囲でロボットアーム１を動作させて校正演算のための計測値を取得することができ、その結果、ロボットアーム１の動作誤差や固定カメラ３の計測誤差の影響を軽減し、高精度な校正処理を行うことができる。
【実施例２】
【００８６】
次に、図７を参照して本発明の実施例２のロボットシステム１０ａの校正時のシステム構成について説明する。本実施例２は上記の実施例１に比べ、作業者が行う必要のある校正準備の作業負荷を低減することができる。
【００８７】
本実施例２のロボットシステム１０ａは実施例１に係るロボットシステム１０に対して、主として以下の３点が異なる。
【００８８】
第一に、手先カメラ７の代わりの手先視覚センサとして、ロボットハンド２によって把持可能な手先カメラ７ａを設けると共に、手先カメラ置き台７１ａを設けたこと。
【００８９】
第二に、校正の際に固定カメラ３および手先カメラ７ａより計測される基準部材が、作業者によって自在に配置可能なマーカー８ａとなっていること。
【００９０】
第三に、制御装置４のＣＰＵ４１の機能として、作業者が任意に配置するマーカー８ａの校正姿勢を演算する校正姿勢演算部４１５を設けたこと、である。
【００９１】
その他の構成要素はロボットシステム１０と同等であり、ピッキング作業時のシステム構成もロボットシステム１０と同等であるから、対応する部材には上記と同一の参照符号を用い、その詳細な説明は省略するものとする。なお、ＲＯＭ４２に予め記憶されるデータやプログラムは一部異なったものとなるが、その点については後述する。
【００９２】
本実施例の手先カメラ７ａは、ロボットハンド２によって把持できる形状を有するステレオカメラである。ロボットハンド２は、フィンガー２１の開閉動作によって手先カメラ７ａを着脱できる。手先カメラ７ａは、不図示の通信手段を用いて制御装置４と通信可能になっており、視覚センサ制御部４１３からの指令により画像を撮影し、画像データを制御装置４に送信することができる。この不図示の通信手段は、ロボットアーム１の体内または体外に配置された通信ケーブルなどにより構成できる。その場合、手先カメラ７ａとロボットハンド２の接触部には、手先カメラ７ａを精度よく把持するために位置決めピン等の位置決め機構や、通信を行うための電気接点を設けておくことができる。
【００９３】
また、制御装置４に対する手先カメラ７ａの計測データの入出力には、電磁波を用いた非接触の無線通信手段を用いることもできる。無線通信によるデータ転送は、例えば例えばＩＥＥＥ８０２．１１やＩＥＥＥ８０２．１５の無線ネットワーク規格を利用することができる。その場合、当該規格の無線ネットワークインターフェースは、インターフェース部４４の一部として設ける他、ネットワーク５０に接続された外部機器として配置することもできる。
【００９４】
手先カメラ置き台７１ａは、ロボットハンド２が手先カメラ７ａを装着していない間に手先カメラ７ａを支持しておくための台であって、ロボットアーム１の可動範囲内に設けられている。例えば、図７に示すように角穴形状を有する形状として、手先カメラ７ａのレンズ部を避けて手先カメラ７ａの本体部のみを支持可能な台であってもよい。
【００９５】
ロボットシステム１０ａは、手先カメラ置き台７１ａに手先カメラ７ａが設置された状態で、ロボットアーム１およびロボットハンド２を制御することによって、手先カメラ７ａを自動でロボットハンド２に装着させることができる。また逆に、手先カメラ７ａを手先カメラ置き台７１ａに戻す動作も自動で行うことができる。手先カメラ置き台７１ａの位置をロボット座標系（Ｒ）に対して定位置に決めておけば、システムプログラムの一部として手先カメラ７ａを装着し、あるいは手先カメラ置き台７１ａに戻す動作をプログラムしておくことができる。また、ロボットシステム１０ａの設置時などに、例えば不図示のティーチングペンダントを用いて管理者や作業者が手先カメラ７ａを装着し、あるいは手先カメラ置き台７１ａに戻す動作を教示する運用であってもよい。
【００９６】
本実施例では、マーカー８ａは、設置を行う作業者によってワーク配置エリア５上に自在な位置・向きで設置可能になっている。マーカー８ａ上には、上記実施例１と同様に円形のマーク８１ａが印刷されている。マーカー８ａは、後述する校正自動実行のステップでロボットアーム１を動作させる際に振動で位置がずれないことが望ましく、例えば粘着剤や磁力を用いてワーク配置エリア５に簡易的に固定する機構を採用してもよい。
【００９７】
校正姿勢演算部４１５は、ＣＰＵ４１の制御機能として設けられる。校正姿勢演算部４１５は、例えばＲＯＭ４２に記憶されたプログラムをＣＰＵ４１が実行することによって実現できる。校正姿勢演算部４１５は、固定カメラ３で撮影し、特徴位置演算部４１４が算出したマーク８１ａの計測結果に基づいて校正姿勢を演算しロボット制御部４１１に校正姿勢を出力する。その処理内容の詳細については後述する。
【００９８】
次に、ロボットシステム１０ａを用いた校正の流れについて、図８のフローチャートを参照しつつ説明する。図８の制御手順は、ＣＰＵ４１の制御プログラムとして例えばＲＯＭ４２（ないし上述の他のプログラムメモリ）に格納しておくことができる。また、図９は本実施例の校正処理において用いられる各座標系、座標変換行列および座標値の関係を示している。
【００９９】
本実施例では、大まかな流れとしては、主に作業者が行う準備作業のステップはステップＳ２１のみとなっており、ステップＳ２２〜Ｓ２９の校正自動実行処理は自動プログラムによってロボットシステム１０ａが実行することができる。ステップＳ２２〜Ｓ２９の校正自動実行処理はでは、主に以下の２点が実施例１と異なる。
【０１００】
第一に、手先カメラ７ａを自動制御でロボットハンド２が把持するようになっている（Ｓ２２）点。第二に、固定カメラ３からの計測（Ｓ２４）の結果と、校正初期値（Ｓ２５にて取得）に基づき、手先カメラ７ａの校正姿勢を自動で算出（Ｓ２６）するようになっており、作業者によるティーチングが不要となっている点である。
【０１０１】
以下、図８の各ステップについて、実施例１との相異点に重点を置いて詳細に説明する。
【０１０２】
まず、作業者がマーカー８ａをワーク配置エリア５に設置する（Ｓ２１）。前述したようになるべく広い範囲に設置することが望ましいが、ワーク配置エリア５内の任意の位置に同一直線上にない３点以上であれば任意の個数を設置してよく、事前に配置位置を厳密に設計する必要はない。ロボットアーム１を駆動した場合のワーク配置エリア５の振動が十分に小さい場合は、ワーク配置エリア５にマーカー８ａを単純に置くだけでもよいし、前述したように粘着剤や磁力によって仮固定を行ってもよい。
【０１０３】
作業者がロボットシステム１０ａに対して行う準備作業は以上であり、次のステップからはＲＯＭ４２に予め記憶されたプログラムを実行することによって自動実行される校正処理である。校正用の自動プログラムが起動されると、ロボットシステム１０ａは、ロボットアーム１とロボットハンド２を制御し、手先カメラ置き台７１ａに支持された手先カメラ７ａを把持して取得する（Ｓ２２）。
【０１０４】
次に、ロボットアーム１を制御して、固定カメラ３からワーク配置エリア５を計測するための固定カメラ３の視線をロボットアーム１およびロボットハンド２が遮らない位置までロボットアーム１を退避させる（Ｓ２３）。なお、前述のステップＳ２２の段階でロボットアーム１およびロボットハンド２が固定カメラ３に写り込まないような位置に手先カメラ置き台７１ａが設置されている場合は、特にこのステップでロボットアーム１を移動させる必要は無い。
【０１０５】
次に、固定カメラ３からマーカー８ａ上の円形マーク８１ａを計測し、マーク８１ａの個数Ｎおよび座標値ＦＰ［ｉ］（ｉ＝１，２，３，．．．，Ｎ）を取得する（Ｓ２４）。視覚センサ制御部４１３が固定カメラ３に撮像指令を行ってステレオ画像を取得した後、特徴位置演算部４１４が画像処理を行ってマーク８１ａの個数Ｎと座標値ＦＰ［ｉ］を算出する。実施例１と比較して、マーク８１ａの個数Ｎが作業者の任意となっているため、このステップでは特徴位置演算部４１４は座標値ＦＰ［ｉ］だけではなく、マーク８１ａの個数Ｎも画像解析により求めることになる。このステップで画像データに対して円抽出処理を行って座標値ＦＰ［ｉ］を３次元的に算出する処理は実施例１と同様であり、また、その過程でマーク８１ａの個数Ｎを求めることも容易であるため、その詳細は省略する。
【０１０６】
次に校正姿勢演算部４１５は、校正初期値ＲＨＦ０を、ＲＯＭ４２より読み出すことによって取得する（Ｓ２５）。ここで、校正初期値ＲＨＦ０はロボット座標系Ｒと固定カメラ座標系Ｆの関係を表す座標変換行列の仮の値であって、予めＲＯＭ４２に設定ファイルとして記憶しておく。校正初期値ＲＨＦ０としては、例えばロボットシステム１０ａを設計する際の設計値に基づいて、加工や組立の誤差が無い場合のロボット座標系Ｒと固定カメラ座標系Ｆの相対関係を表す値を入力しておけばよい。また、別の例として、校正作業を一度完了したロボットシステム１０ａに対して固定カメラ３やロボットアーム１を交換した後などには、前回校正時の校正結果を校正初期値ＲＨＦ０として用いてもよい。
【０１０７】
即ち、校正初期値ＲＨＦ０は、ロボット座標系Ｒと第１の視覚センサ（固定カメラ３）の固定カメラ座標系Ｆの関係について予め設定された初期値データである。本実施例では、第１の視覚センサ（固定カメラ３）で計測した第１の計測データと、初期値データである校正初期値ＲＨＦ０に基づき、校正姿勢データを算出する。
【０１０８】
さらに校正姿勢演算部４１５は、ステップＳ２４で取得したマーク８１ａの座標値ＦＰ［ｉ］とマーク個数Ｎ、およびステップＳ２５で取得した校正初期値ＲＨＦ０に基づき、Ｎ個の校正姿勢ＲＨＴ［ｉ］（ｉ＝１，２，３，．．．，Ｎ）を算出する（Ｓ２６）。このＮ個の校正姿勢ＲＨＴ［ｉ］は、手先カメラ７ａからマーク８１ａを撮影可能なロボットアーム１の位置姿勢として算出される。
【０１０９】
具体的な方法としては、例えば手先座標系Ｔに対する手先カメラ７ａの計測視野を設計値より算出しておき、計測視野の中心付近の代表点Ｑを定め、手先カメラ座標系Ｖにおける座標値ＴＱ（図９参照）として予めＲＯＭ４２に情報を保存しておく。ここで、ステップＳ２４において取得されたマーク８１ａの座標値ＦＰ［ｉ］と、ステップＳ２５において取得された校正初期値ＲＨＦ０を用いると、ロボット座標系Ｒにおけるマーク８１ａの中心点Ｐの座標値ＲＰ［ｉ］は、以下のように計算できる。
【０１１０】
【数１０】
2018202608.tif 000012
上式（１０）の演算により、ロボット座標系Ｒにおけるマーク８１ａの中心点Ｐの座標値が分かるので、手先に設定された計測視野代表点Ｑの座標値が、マーク８１ａの中心点Ｐに一致するようにロボットアーム１を制御すればよい。任意の姿勢ＲＨＴ［ｉ］をロボットアーム１に取らせた場合の、ロボット座標系Ｒに対する計測視野代表点Ｑの座標値ＲＱ［ｉ］は以下のようになる。
【０１１１】
【数１１】
2018202608.tif 000013
そして、計測視野代表点Ｑがマーク８１ａの中心点Ｐに一致するためには
【０１１２】
【数１２】
2018202608.tif 000014
であればよいから、式（１０）、式（１１）、式（１２）より
【０１１３】
【数１３】
2018202608.tif 000015
を満たすようにＮ個の校正姿勢ＲＨＴ［ｉ］を定めればよい。なお、式（１３）の制約だけでは校正姿勢は一意には定まらないので、実際に適用する際には例えば「ロボットハンド２の掌部が鉛直下向きになる」等の制約条件を付して校正姿勢が定まるアルゴリズムとして演算するとよい。その際のロボットアーム１やロボットハンド２の姿勢に関する制約条件は任意に設計し得る事項である。しかしながら、前述のように、実作業（ピッキング）時のロボットアーム１およびロボットハンド２の姿勢から乖離した姿勢にならないように定めることが精度の観点からは望ましい。校正姿勢演算部４１５は上記の演算を行い、Ｎ個の校正姿勢ＲＨＴ［ｉ］をロボット制御部４１１に出力する。
【０１１４】
その後、手先カメラ７ａによって第２の計測データを取得する。即ち、ステップＳ２６において算出された校正姿勢ＲＨＴ［ｉ］に基づいてロボット制御部４１１がロボットアーム１を制御して移動させ（Ｓ２７）、手先カメラ７ａからマーク８１ａの座標値ＶＰ［ｉ］を計測する（Ｓ２８）する処理をＮ回分繰り返す。なお、ステップＳ２７、Ｓ２８を狭むように配置されたステップＳ２０１、Ｓ２０２は、上述の実施例１同様、インデックスｉを１からＮまで順次インクリメントするための制御構造を、例えばＣ言語などにおける記述様式に準じて示したものである。
【０１１５】
この際、ステップＳ２６において算出された校正姿勢ＲＨＴ［ｉ］は校正初期値ＲＨＦ０が誤差を含んだ値であるため、各計測時に計測視野代表点Ｑはマーク８１ａに厳密には一致しない。しかし、手先カメラ７ａの計測視野を校正初期値ＲＨＦ０の誤差に対して十分広く設計しておけば、マーク８１ａが必ず手先カメラ７ａの計測視野内に含まれることとなり、問題無く校正を行うことができる。
【０１１６】
そして、ステップＳ２９において、目的の校正値（校正関数）として座標変換行列ＲＨＦを算出する。即ち、固定カメラ３から計測したマーク座標値ＦＰ［ｉ］と、ステップＳ２６で算出した校正姿勢ＲＨＴ［ｉ］と、ステップＳ２８で手先カメラ７ａから計測したマーク８１の座標値ＶＰ［ｉ］を用いて、座標変換行列ＲＨＦを算出する。座標変換行列ＲＨＦを算出する演算処理は第一の実施例と同様であるので説明は省略する。なお、レーベンバーグ・マーカート法などの初期値を必要とする繰り返し計算のアルゴリズムを用いて座標変換行列ＲＨＦを算出する場合には、ステップＳ２５で取得した校正初期値ＲＨＦ０をここでも数値計算の初期値として利用できる。
【０１１７】
上記の処理を実行することにより、ロボット座標系Ｒと固定カメラ座標系Ｆの関係を表す校正値として座標変換行列ＲＨＦを算出できる。すなわち、固定カメラ３の計測値に基づいてロボットアーム１を高精度に位置決めするために必要な校正を行うことができる。
【０１１８】
本実施例においては、校正時にロボットアーム１を移動させる校正姿勢ＲＨＴ［ｉ］を、校正初期値ＲＨＦ０と固定カメラ３からマーク８１ａを計測した座標値ＦＰ［ｉ］に基づいて算出する構成とした。この特徴的な構成により、作業者は事前にマーカー８の配置を厳密に設計せずに自由に配置できるとともに、配置後にロボットアーム１に対するティーチングを行わなくともロボットシステム１０ａを自動で動作させて校正することができる。従って、作業者の装置立ち上げの作業負荷を大幅に削減することが出来る。また、同じ工場内でワーク供給エリアの大きさ異なる複数のロボットシステムを校正したい場合などにおいても、配置を変えるだけで同一のマーカーを容易に流用できるので、個別に校正用の治具を用意する必要がない。
【０１１９】
また、本実施例においては、ロボットハンド２の開閉動作によって手先カメラ７ａを自動で着脱可能な構成とした。この特徴的な構成により、ロボットシステム１０ａを校正するにあたって作業者が手先カメラ７ａを着脱する作業負荷を低減した。また、ピッキング作業時にワークと当接するロボットハンド２のフィンガー２１によって手先カメラ７ａを支持することにより、ロボットハンド２の加工誤差の影響を小さくし、高精度にピッキングのための校正を行うことが出来る。さらには、ロボットハンド２の掌部に手先カメラ７ａの視点が配されることになり、ロボットハンド２の手首部等にカメラを設けた場合に比べて手先カメラ７ａがマーカー８ａにより正対する形で計測を実行することができ、高精度な校正を行うことができる。
【実施例３】
【０１２０】
次に、本発明の実施例３について説明する。実施例１および２は固定視覚センサと、手先視覚センサをそれぞれ独立した別体の固定カメラ３と、手先カメラ７、７ａによって構成した。これに対して、本実施例３では固定視覚センサ（ステレオカメラ３ｂ）を着脱しロボットアーム１の手先に付け替え、一時的に手先視覚センサとして用いることにより、カメラの共通化を図ったものである。以下、実施例１および実施例２の相異点に重点を置き本実施例につき説明する。
【０１２１】
図１０（ａ）、（ｂ）に本実施例３に係るロボットシステム１０ｂの装置構成、および本実施例で用いられる各座標系、座標値、および座標変換行列の関係を示す。なお、制御装置４に関しては上記実施例２と同様であるため、図示を省略している。
【０１２２】
図１０（ａ）に示すように、視覚センサとしてはロボットシステム１０ｂはステレオカメラ３ｂを１台のみ必要とする。このステレオカメラ３ｂはステレオカメラ取付部３１ｂを有しており、通常時はステレオカメラ取付部３１ｂを介して不図示の固定カメラ支持部材によって空間に固定に支持される（第１の配置位置）。ステレオカメラ３ｂはワーク配置エリア５に対向して配置されており、ワーク６やマーク８１ａを計測可能となっている。即ち、ステレオカメラ３ｂがロボットアーム１の動作とは独立してロボットアーム１を支持する架台９の設置面に対して固定的な位置関係を有する配置位置に配置される点は、これまでの実施例と同様である。
【０１２３】
ステレオカメラ取付部３１ｂは、例えば突き当て基準面や位置決めピン等の位置決め機構と、例えばネジなどの固定機構を有しており、固定カメラ支持部材に対して再現性良く着脱可能に構成される。
【０１２４】
また、ステレオカメラ取付部３１ｂは、ロボットハンド２に対しても取付可能な形状を有している。図１０（ｂ）に示すように、ロボットハンド２の先端にステレオカメラ３ｂを支持させることによって、一時的にステレオカメラ３ｂを手先カメラ（実施例２の７ｂ）として用いることができる（第２の配置位置）。ステレオカメラ３ｂをロボットハンド２の先端の所定位置に位置決めするには例えばロボットハンド２による把持やネジ止めなどの手法を用いることができる。
【０１２５】
本実施例における校正の流れについて、図１１のフローチャートを参照しつつ説明する。
【０１２６】
まず、作業者がマーカー８をワーク配置エリア５に設置し（Ｓ３１）、ロボットアーム１をワーク配置エリア５の上空から退避させる（Ｓ３２）。次に、固定カメラとして空間に固定された状態のステレオカメラ３ｂで第１の計測データを取得する。即ち、ステレオカメラ３ｂによってマーカー８上のマーク８１を計測し、その座標値ＦＰ［ｉ］およびマーク個数Ｎを計測する（Ｓ３３）。ここまでの各ステップの内容は、これまでの実施例２と同様の処理で実施することができる。
【０１２７】
次に、固定状態のステレオカメラ３ｂを、不図示の固定カメラ支持部材から取り外し、ロボットアーム１の先端に付け替える（Ｓ３４）。そして以降のステップＳ３５〜Ｓ３９では、ステレオカメラ３ｂを上述の手先カメラ７ｂとして用い第２の計測データを取得し、上述の実施例２と同様の校正演算を行って目的の校正関数を求める。なお、これらステップＳ３５〜Ｓ３９、Ｓ３０１、Ｓ３０２の内容に関しては、それぞれ実施例２のステップＳ２５〜Ｓ２９、Ｓ２０１、Ｓ２０２と同様であるため、ここでは詳細な説明は省略する。
【０１２８】
以上のようにして校正処理が完了すると、目的の校正値、すなわち、ロボット座標系Ｒと固定カメラ座標系Ｆの相対位置姿勢を表す座標変換行列ＲＨＦを校正パラメータファイルとして格納する。また、ステレオカメラ取付部３１ｂを介して不図示の固定カメラ支持部に再度ステレオカメラ３ｂを取り付ける。その後のピッキングなどの実作業時には、校正パラメータファイルの校正値を用いて、必要に応じてステレオカメラ３ｂの計測した固定カメラ座標系Ｆの座標値をロボット座標系Ｒの座標値に変換することができる。
【０１２９】
上記のように、本実施例においては、通常時は、固定カメラとして用いるステレオカメラ３ｂを、一時的に校正用の手先カメラ７ｂとして用いることによって、校正のときだけのために用いる手先カメラを別途、用意する必要がなくなっている。すなわち、校正専用の手先カメラを用意する場合に比べて、安価にロボット装置の校正処理を実施することができる。
【０１３０】
以上、本発明の実施例１〜３について説明したが、上述の構成はいずれも例示に過ぎず、本発明の実施に際しては、本発明の趣旨を逸脱しない範囲において当業者の適宜変更が可能である。
【０１３１】
例えば、ロボットアーム１として６軸垂直多関節のロボットアームについて例示したが、ロボットアームは７軸のロボットアームやパラレルリンク構造を有するもの、直動機構を有するものなど、各種のロボットアームを用いることができる。
【０１３２】
また、例えば、手先カメラ７および７ａは、ロボットハンド２の手首部または掌部に取り付ける構成について説明したが、ロボットハンドを一度取り外して手先視覚センサを交換的に取り付ける構成としてもよい。また、手先視覚センサをハンドに内蔵し、着脱しない構成としても構わない。
【０１３３】
また例えば、固定視覚センサおよび手先視覚センサとしてステレオカメラを例示したが、使用できる視覚センサはこれに限らず、カメラ座標系からみた特徴点の座標値を計測できる各種視覚センサを用いることが出来る。例えば、スリット上のレーザ光や各種のパターン光を対象物に投光して三角法の原理に基づいて３次元計測を行うものや、ＴＯＦ（Ｔｉｍｅ  Ｏｆ  Ｆｌｉｇｈｔ）法によって距離画像を得る視覚センサを用いてもよい。また、奥行き方向の情報を事前に公知の外部パラメータ校正手法を用いて校正した上で、通常の単眼カメラを用いることも可能である。
【０１３４】
また例えば、簡単のためにマーク８１およびマーク８１ａは黒色の円形マークであるものとして説明したが、形状や色はそれに限らず、特徴部の座標を固定視覚センサおよび手先視覚センサから特定できるものであれば構わない。各種多角形や、黒色部と白色部を並べたチェッカーマークなど、さまざまなマークを用いることが出来る。
【０１３５】
さらにマーカー８および８ａは、特徴部の座標を視覚センサより計測できればよいので、ピッキングで対象とするワーク自体の特徴点をマーカー８および８ａとして校正に用いてもよい。例えば図２に示したような直方体状ワーク６の各頂点をマーク８１および８１ａの代わりに用いて、固定カメラ３からの計測と手先カメラ７または７ａからの計測に用いて校正を行っても構わない。
【０１３６】
また複数の校正姿勢を取らせる際にロボットアーム１を自動プログラムにて制御する場合について例示して説明を行ったが、自動プログラムを実行せず、ティーチングペンダントを用いたインチング操作によって校正姿勢をとらせてもよい。その場合には校正を実施するたびに人手による操作が必要となるが、厳密な微調整は不要なので比較的短時間で実施できるとともに、本発明の精度面での効果は自動プログラムを用いた場合と同等に享受することができる。
【０１３７】
また、上述の各実施例においては、説明を簡単にするために手先座標系Ｔと手先カメラ座標系Ｖの関係は既知である例について説明した。しかし、座標変換行列ＴＨＶが未知の場合であっても、座標変換行列ＴＨＶと、目的の校正値である座標変換行列ＲＨＦを同時に算出することも出来る。その場合は、式（９）においてＲＨＦとＴＨＶの２つの座標変換行列が未知数となる。各座標変換行列は６自由度を持つので、合計１２のパラメータを求めることになるが、校正姿勢の数Ｎを充分に増やすことにより、式（９）の評価式が最小となるような１２パラメータを最小二乗法によって求めることが出来る。
【０１３８】
また、上述の各実施例においては、説明を簡単にするためにマーカー８や８ａと校正姿勢の数が同一（Ｎ）である場合について説明した。本発明を適用するにあたって、例えば一つのマーカーに対して角度を変えた複数の校正姿勢から手先カメラによる計測を行うようにしてもよい。また一つの校正姿勢に対して複数のマーカーが手先カメラの視野に含まれるように配置し、手先カメラからの一度の計測で複数の座標値を取得するようにしてもよい。その場合は例えば、上記のインデックスｉを校正姿勢用に関するインデックスｊとマークに関するインデックスｋに置き換えた上で、手先視覚センサからの計測を行ったｊとｋの組合せ１つごとに式（８）に相当する１つの等式を立てることができる。そして、実施例１〜実施例３と同様、取得したデータ数分の等式を連立して最小二乗解を求めることが出来る。
【０１３９】
また、上述の各実施例においては、校正関数としてロボット座標系Ｒと固定カメラ座標系Ｆの関係を表す座標変換行列として定めた例について説明を行った。校正関数は、固定カメラ３の計測値とロボットアーム１の指令値の関係を表現できる関数であれば良く、座標変換行列以外の表現形式を用いても構わない。例えば、並進を表す３次元ベクトルと回転を表す３自由度のオイラー角によって校正関数を表現してもよい。また別の例としては、固定カメラ３の計測座標値と、ロボットアーム１の指令値の関係を直接的に多項式で表した関数を校正関数として用いてもよい。特にロボットアーム１の指令値と固定カメラ３の座標値を２次以上のＭ次多項式で表すような場合には、校正範囲外での誤差が校正を実施した範囲から離れるにつれてＭ次関数的に大きくなる。従って、この構成では本発明の実作業時に近い姿勢かつ充分広い範囲でロボットを動作させて校正を行える、という特徴によって、大きな校正精度の向上を期待できる。
【０１４０】
本発明のロボット校正動作は、例えば上記各実施例の計測制御動作を実現する校正制御を含むロボット制御プログラムを制御装置４のコンピュータ（例えばＣＰＵ４１）がプログラムメモリ（例えばＲＯＭ４２）から読み出して実行することにより実現できる。この場合、記録媒体から読み出されたロボット制御プログラム自体が上述の実施例の機能を実現することになり、ロボット制御プログラムそれ自体、およびロボット制御プログラムを記録した記録媒体は本発明を構成することになる。
【０１４１】
また、上記実施例では、コンピュータ読み取り可能な記録媒体がＲＯＭ４２である場合について説明したが、本発明はこの構成に限定されるものではない。例えば、本発明を実現するプログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。ロボット制御プログラムを装置に実装するための記録媒体としては、図１のＲＯＭ４２以外の不図示の外部記憶装置等を用いてもよい。例えば、コンピュータ読み取り可能な記録媒体としては、記録媒体として、フレキシブルディスク、ハードディスク、各種光ディスク、光磁気ディスク、磁気テープ、書き換え可能な不揮発性のメモリ（例えばＵＳＢメモリ）、ＲＯＭ等を用いることができる。また、上記実施例におけるロボット制御プログラムを、ファイルサーバなどに格納しておき、ネットワーク５０を介してダウンロードしてＣＰＵ４１により実行するようにしてもよい。ネットワーク５０はいわゆるインターネットのような公共のネットワークの他、ロボット装置が設置される製造プラントやその運営組織（企業など）に閉じたいわゆるイントラネットのようなプライベートネットワークあってもよい。
【０１４２】
また、本発明の実施の形態は、コンピュータが読み出したロボット制御プログラムのコードを実行することにより、上記実施例の機能が実現されるだけに限定されるものではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【０１４３】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上記実施例の機能が実現される場合も含まれる。
【０１４４】
また、上記実施例では、コンピュータがＨＤＤ等の記録媒体に記録されたロボット制御プログラムを実行することにより、画像処理を行う場合について説明したが、これに限定するものではない。ロボット制御プログラムに基づいて動作する制御部の一部または全部の機能がＡＳＩＣやＦＰＧＡ等の専用ＬＳＩの形式で実装されていてもよい。
【符号の説明】
【０１４５】
１…ロボットアーム、２…ロボットハンド、３…固定カメラ、４…制御装置、６…ワーク、７、７ａ…手先カメラ、８…マーカー、１０…ロボットシステム、４１…ＣＰＵ、４２…ＲＯＭ、４３…ＲＡＭ、４４…インターフェース部、５０…ネットワーク、８１、８１ａ…マーク、４１１…ロボット制御部、４１２…校正演算部、４１３…視覚センサ制御部、４１４…特徴位置演算部。
【図１】
2018202608.tif 000016
【図２】
2018202608.tif 000017
【図３】
2018202608.tif 000018
【図４】
2018202608.tif 000019
【図５】
2018202608.tif 000020
【図６】
2018202608.tif 000021
【図７】
2018202608.tif 000022
【図８】
2018202608.tif 000023
【図９】
2018202608.tif 000024
【図１０】
2018202608.tif 000025
【図１１】
2018202608.tif 000026
【手続補正書】
【提出日】平成30年10月22日(2018.10.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ロボットアームと、
前記ロボットアームの基端部と所定の位置関係を有し、前記ロボットアームの可動範囲を含む計測範囲を計測する、前記ロボットアームに支持されていない第１の視覚センサと、
前記ロボットアームに支持された第２の視覚センサと、
前記ロボットアームの位置姿勢を制御する制御装置と、を備え、
前記制御装置は、
前記第１の視覚センサにより前記計測範囲に設けられた複数の特徴部を計測させて得た第１の計測データと、
前記ロボットアームが複数の位置姿勢を取り、前記第２の視覚センサにより前記特徴部を計測させて得た第２の計測データと、
前記ロボットアームの前記複数の位置姿勢の各々に対応する校正姿勢データと、
を用いて、前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正値を算出することを特徴とするロボット装置。
【請求項２】
請求項１に記載のロボット装置において、前記制御装置は、前記第１の視覚センサの計測値に基づき前記ロボットアームの位置姿勢を制御する際、算出した前記校正値を用いて前記ロボットアームに与える指令値を生成することを特徴とするロボット装置。
【請求項３】
請求項１または２に記載のロボット装置において、前記制御装置は、前記第１の計測データと、前記ロボットアームの座標系と前記第１の視覚センサの座標系の関係について予め設定された初期値データと、に基づいて前記校正姿勢データを算出し、算出した前記校正姿勢データに基づき前記ロボットアームが複数の位置姿勢を取り、前記第２の視覚センサにより前記特徴部を計測する制御を行うことを特徴とするロボット装置。
【請求項４】
請求項１から３のいずれか１項にロボット装置において、前記第１の計測データは前記第１の視覚センサから前記特徴部の少なくとも３点以上の座標値を計測した座標データであり、前記第２の計測データは、前記特徴部のうち、前記複数の位置姿勢の各々に対して前記第２の視覚センサの計測領域の内部に含まれた前記特徴部を少なくとも１点以上ずつ計測した座標データであって、前記制御装置は前記第１の計測データと前記第２の計測データの座標データを対応づけることによって前記校正値を算出する制御を行うことを特徴とするロボット装置。
【請求項５】
請求項１から４のいずれか１項に記載のロボット装置において、前記制御装置は、前記第１の計測データ、前記校正姿勢データ、および前記第２の計測データに加え、さらに前記ロボットアームの手先座標系と前記第２の視覚センサの座標系とを関係づける校正データを用いて前記校正値を算出する制御を行うことを特徴とするロボット装置。
【請求項６】
請求項４または５に記載のロボット装置において、前記ロボットアームに設けられワークに対して作業を行うロボットハンドと、前記ロボットアームを介して移動される前記ロボットハンドの可動範囲内に設けられ前記ワークが配置されるワーク配置エリアを有し、前記第１の視覚センサは前記計測範囲が前記ワーク配置エリアを含むよう配置されるとともに、複数の前記特徴部を結ぶ多角形が、前記ワーク配置エリアにおいて前記ワークを把持する前記ロボットハンドの把持中心が取りうる範囲を含むよう、複数の前記特徴部が配置されることを特徴とするロボット装置。
【請求項７】
請求項６に記載のロボット装置において、前記ロボットハンドが前記第２の視覚センサを把持することを特徴とするロボット装置。
【請求項８】
ロボットアームと、前記ロボットアームの基端部に対して所定の位置関係を有し、前記ロボットアームの可動範囲を含む計測範囲を計測する、前記ロボットアームに支持されていない第１の視覚センサと、前記ロボットアームに支持された第２の視覚センサと、前記ロボットアームの位置姿勢を制御する制御装置と、を備えたロボット装置の制御方法において、
前記制御装置が、前記第１の視覚センサにより前記計測範囲に設けられた複数の特徴部を計測させ第１の計測データを得る第１の計測工程と、
前記制御装置が、前記ロボットアームの複数の位置姿勢の各々に対応する校正姿勢データに基づき、前記ロボットアームが複数の位置姿勢を取り、前記第２の視覚センサにより前記特徴部を計測させて得た第２の計測データを得る第２の計測工程と、
前記制御装置が、前記第１の計測データ、前記校正姿勢データ、および前記第２の計測データを用いて前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正値を算出する校正工程と、
を含むことを特徴とするロボット装置の制御方法。
【請求項９】
請求項８に記載の制御方法をコンピュータに実行させるためのプログラム。
【請求項１０】
請求項９に記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、視覚センサを用いてロボットアームの位置姿勢を制御するロボット装置、ロボット装置の制御方法、プログラムおよび記録媒体に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
以上の課題を解決するため、本発明においては、ロボットアームと、前記ロボットアームの基端部と所定の位置関係を有し、前記ロボットアームの可動範囲を含む計測範囲を計測する、前記ロボットアームに支持されていない第１の視覚センサと、前記ロボットアームに支持された第２の視覚センサと、前記ロボットアームの位置姿勢を制御する制御装置と、を備え、前記制御装置は、前記第１の視覚センサにより前記計測範囲に設けられた複数の特徴部を計測させて得た第１の計測データと、前記ロボットアームが複数の位置姿勢を取り、前記第２の視覚センサにより前記特徴部を計測させて得た第２の計測データと、前記ロボットアームの前記複数の位置姿勢の各々に対応する校正姿勢データと、を用いて、前記第１の視覚センサの計測値と前記ロボットアームに与える指令値とを関係づける校正値を算出する構成を採用した。