(57)【要約】【課題】ステレオカメラ２のキャリブレーション時に、ターゲットマーク５を検出するためのパラメータ設定をカメラ毎に重複して行わずに済むことを可能とする。【解決手段】ステレオカメラ２の備える第１のカメラ２１の画像座標系における位置情報と、第２のカメラ２２の画像座標系における位置情報と、ロボット４のロボット座標系における位置情報と、を対応づけるキャリブレーション装置１であって、第１のカメラ２１により撮像される画像データからロボット４に取り付けられたターゲットマーク５を検出するための第１パラメータを設定する第１パラメータ設定部１０２と、第２のカメラ２２により撮像される画像データからターゲットマーク５を検出するための第２パラメータを第１パラメータに基づいて設定する第２パラメータ設定部１０４と、を備えるキャリブレーション装置。【選択図】図１
2018111165.tif 000002
【特許請求の範囲】
【請求項１】
ステレオカメラの備える第１のカメラの画像座標系における位置情報と前記ステレオカメラの備える第２のカメラの画像座標系における位置情報の少なくとも一方と、ロボットのロボット座標系における位置情報と、を対応づけるキャリブレーション装置であって、
ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成部と、
前記モデルパターンに基づいて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定部と、
前記モデルパターンに基づいて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定部により設定された前記第１パラメータに基づいて設定する第２パラメータ設定部と、
前記ロボットにより移動させられる前記ロボットに取り付けられたターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御部と、
前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出部と、
前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系での座標位置を計測する第２検出部と、
前記第１検出部により計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出部により計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークの前記ロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーション部と、
を備えるキャリブレーション装置。
【請求項２】
前記ターゲットマークは、前記ロボットのアーム先端に取り付けられ、前記ロボットの手先座標系における３次元での位置及び姿勢が予め求められた請求項１に記載のキャリブレーション装置。
【請求項３】
前記第１パラメータ及び前記第２パラメータは、単一の数値、オンオフ値、又は範囲を有するパラメータを含む、請求項１又は請求項２に記載のキャリブレーション装置。
【請求項４】
前記第２パラメータ設定部により初期設定される前記第２パラメータは、前記第１パラメータ設定部により設定される前記第１パラメータで前記第１のカメラにより撮像される画像データから検出できる前記ターゲットマークは全て、前記第２のカメラにより撮像される画像から検出できるように設定される、請求項１乃至請求項３の何れか１項に記載のキャリブレーション装置。
【請求項５】
前記第２パラメータ設定部は、前記第１パラメータが所定の範囲を有する場合には、第２パラメータの範囲として、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出することができたときに用いた前記第２パラメータの値を中心として、前記第１パラメータにおける中心値からの偏差の大きさの範囲に設定する、請求項４に記載のキャリブレーション装置。
【請求項６】
前記第１パラメータ及び前記第２パラメータは、それぞれ、前記ターゲットマークのモデルパターン、サイズ、及び変形に関するパラメータを含む、請求項１乃至請求項５の何れか１項に記載のキャリブレーション装置。
【請求項７】
前記第１パラメータ及び前記第２パラメータは、それぞれ前記ターゲットマークのモデルパターンに適用されるパラメータであって、
前記第１検出部は、
前記第１のカメラにより撮像される画像データから、前記第１パラメータを適用したモデルパターンによりターゲットマークを検出し、
前記第２検出部は、
前記第２のカメラにより撮像される画像データから、前記第２パラメータを適用したモデルパターンによりターゲットマークを検出する、請求項４乃至請求項６の何れか１項に記載のキャリブレーション装置。
【請求項８】
前記第１パラメータ及び前記第２パラメータは、それぞれ前記第１のカメラにより撮像される画像データ及び前記第２のカメラにより撮像される画像データに適用されるパラメータであって、
前記第１検出部は、
前記第１のカメラによる撮像される画像データに前記第１パラメータを適用した画像データから、前記ターゲットマークを検出し、
前記第２検出部は、
前記第２のカメラによる撮像される画像データに前記第２パラメータを適用した画像データから、前記ターゲットマークを検出する、請求項１乃至請求項６の何れか１項に記載のキャリブレーション装置。
【請求項９】
ステレオカメラの備える第１のカメラの画像座標系における位置情報と、前記ステレオカメラの備える第２のカメラの画像座標系における位置情報と、ロボットのロボット座標系における位置情報と、を対応づけるキャリブレーション装置によるキャリブレーション方法であって、
前記キャリブレーション装置により、
ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成ステップと、
前記モデルパターンに基づいて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定ステップと、
前記モデルパターンに基づいて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定ステップにより設定された前記第１パラメータに基づいて設定する第２パラメータ設定ステップと、
前記ロボットにより移動させられる前記ロボットに取り付けられたターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御ステップと、
前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出ステップと、
前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置を計測する第２検出ステップと、
前記第１検出ステップにより計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出ステップにより計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークの前記ロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーションステップと、
を備えるキャリブレーション方法。
【請求項１０】
ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成ステップと、
前記モデルパターンに基づいて、第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定ステップと、
前記モデルパターンに基づいて、第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定ステップにより設定された前記第１パラメータに基づいて設定する第２パラメータ設定ステップと、
前記ロボットにより移動させられる前記ロボットに取り付けられたターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御ステップと、
前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出ステップと、
前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置を計測する第２検出ステップと、
前記第１検出ステップにより計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出ステップにより計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークのロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーションステップと、をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視覚センサのキャリブレーションに関し、特に複数のカメラを備えるステレオカメラを使用したキャリブレーション時においてターゲットマークを検出するキャリブレーション装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
ロボットシステムではロボットに視覚機能を持たせ、その視覚機能によって対象物の位置を認識させて、ワークのハンドリングや加工などの作業が行われている。その視覚機能はロボットのハンド付近に取り付けられた視覚センサやロボットの周辺に設置された視覚センサが対象物を撮像することによって実現される。このようなロボットシステムにおいては、ロボットから見た対象物の位置を取得するには、画像上の対象物の位置を、ロボットから見た対象物の位置に変換するためのキャリブレーションデータが必要になる。
【０００３】
従来、キャリブレーションデータを求める方法は様々なものがある。例えば、特許文献１では、格子状のパターンをロボットのアーム先端に取り付け、固定設置された視覚センサで計測する方法（「方法Ａ」という）が提案されている。また、特許文献２では、予めロボットの手先座標系において位置姿勢が求まっているターゲットマークをアーム先端にとりつけ、そのターゲットマークを視覚センサで撮像した画像内での位置を複数箇所で求めることによりキャリブレーションする方法（「方法Ｂ」という）が提案されている。
【０００４】
方法Ａでキャリブレーションする場合には、予めキャリブレーションに使用するパターンを用意する必要がある。カメラの視野が用意したパターンに対して広過ぎる場合や狭過ぎる場合には、精度良くキャリブレーションできないという問題がある。
それに対して、方法Ｂでキャリブレーションをする場合には、方法Ａと比べて、より広い視野をキャリブレーションしたり、より狭い視野をキャリブレーションしたりすることが可能となり、キャリブレーションの自由度をより向上させることができるというメリットがある。
なお、３次元的な計測をする際には、例えば、特許文献３に記載されているように、視覚センサとしてステレオカメラを使うことがある。ステレオカメラには対象物のテクスチャを使って対応点のマッチングを行うパッシブステレオ方式や対象物に投影したパターンを使って対応点のマッチングを行うアクティブステレオ方式がある。いずれの場合でも、ステレオカメラを構成する２つ以上のカメラをキャリブレーションすることが必要となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第２６９０６０３号公報
【特許文献２】特開２０１５−１７４１９１号公報
【特許文献３】特開２０１０−１７２９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
このようなステレオカメラのように複数のカメラをキャリブレーションするときには、それぞれのカメラを独立してキャリブレーションすることが必要となる。しかしながら、複数のカメラはそれぞれ離れた場所に取り付けられていることから、カメラに映るターゲットマークの形状はそれぞれ異なる歪みかたをする。例えば、複数のカメラがそれぞれ異なる傾きで取り付けられている場合には、カメラに映るターゲットマークの形状はそれぞれ異なる歪み方をする。
【０００７】
複数のカメラに映るターゲットマークの形状がそれぞれ異なる歪みをしている場合、一つのカメラで作成したモデルパターンを別のカメラに対して用いることはできないことが多い。このため、カメラに映るターゲットマークの形状がそれぞれ異なる歪みをしている場合において、複数のカメラ毎にモデルパターンを作成するとともに、ターゲットマークを検出できるように、例えば、露光時間、画像中のキャリブレーションする範囲、ターゲットマークの形状モデル、検出パラメータ等のターゲットマークを検出するためのパラメータ設定を複数のカメラ毎に行う必要がある。
しかしながら、キャリブレーション時に複数のカメラ毎にモデルパターンを作成するとともに、検出するためのパラメータの設定を行うことは、オペレータの操作性に大きな影響を与え、余計な時間を要し、効率を落としてしまう。このため、複数のカメラをキャリブレーションするときにおいても、キャリブレーション時に行うパラメータ設定をカメラ毎に重複して行わずに済むことが望まれる。
【０００８】
この点、特許文献２に記載のキャリブレーションは、単一のカメラをキャリブレーションするに過ぎず、ステレオカメラのような複数のカメラをキャリブレーションするものではない。また、特許文献３に記載のキャリブレーションは、基礎行列算出用治具としてのチェッカーボードをロボットのアーム先端に取り付け、それをステレオカメラで撮像することで、キャリブレーションするものであり、ターゲットマークをアーム先端にとりつけ、そのターゲットマークをステレオカメラで撮像した画像内での位置を複数箇所で求めることによりキャリブレーションするものではない。
【０００９】
本発明は、複数のカメラを備えるステレオカメラのキャリブレーション時において、モデルパターンの作成及びターゲットマークを検出するためのパラメータ設定をカメラ毎に重複して行わずに済むことを可能とする、キャリブレーション装置、方法、及びプログラムを提供する。
【課題を解決するための手段】
【００１０】
（１）本発明に係るキャリブレーション装置（例えば、後述の「視覚センサ制御装置１」）は、ステレオカメラの備える第１のカメラの画像座標系における位置情報と、前記ステレオカメラの備える第２のカメラの画像座標系における位置情報の少なくとも一方とロボットのロボット座標系における位置情報と、を対応づけるキャリブレーション装置であって、ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成部（例えば、後述の「モデルパターン生成部１０１」）と、前記モデルパターンに基づいて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定部（例えば、後述の「第１パラメータ設定部１０２」）と、前記モデルパターンに基づいて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定部により設定された前記第１パラメータに基づいて設定する第２パラメータ設定部（例えば、後述の「第１パラメータ設定部１０２」）と、前記ロボットにより移動させられる前記ロボットに取り付けられたターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御部（例えば、後述の「撮像制御部１００」）と、前記第１パラメータに含まれる前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出部（例えば、後述の「第１検出部１０３」）と、前記第２パラメータに含まれる前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系での座標位置を計測する第２検出部（例えば、後述の「第２検出部１０５」）と、前記第１検出部により計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出部により計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークの前記ロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーション部（例えば、後述の「キャリブレーション部１０６」）と、を備える。
【００１１】
（２）（１）に記載のキャリブレーション装置において、前記ターゲットマークは、前記ロボットのアーム先端に取り付けられ、前記ロボットの手先座標系における３次元での位置及び姿勢が予め求められるように構成してもよい。
【００１２】
（３）（１）又は（２）に記載のキャリブレーション装置において、パラメータ及び前記第２パラメータは、単一の数値、オンオフ値、又は範囲を有するパラメータを含むように構成してもよい。
【００１３】
（４）（１）乃至（３）の何れかに記載のキャリブレーション装置において、前記第２パラメータ設定部により初期設定される前記第２パラメータは、前記第１パラメータ設定部により設定される前記第１パラメータで前記第１のカメラにより撮像される画像データから検出できる前記ターゲットマークは全て、前記第２のカメラにより撮像される画像から検出できるように設定されるように構成してもよい。
【００１４】
（５）（４）に記載のキャリブレーション装置において、前記第２パラメータ設定部は、前記第１パラメータが所定の範囲を有する場合には、第２パラメータの範囲として、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出することができたときに用いた前記第２パラメータの値を中心として、前記第１パラメータにおける中心値からの偏差の大きさの範囲に設定するように構成してもよい。
【００１５】
（６）（１）乃至（５）の何れかに記載のキャリブレーション装置において、前記第１パラメータ及び前記第２パラメータは、それぞれ、前記ターゲットマークのモデルパターン、サイズ、及び変形に関するパラメータを含むように構成してもよい。
【００１６】
（７）（４）乃至（６）の何れかに記載のキャリブレーション装置において、前記第１パラメータ及び前記第２パラメータは、それぞれ前記ターゲットマークのモデルパターンに適用されるパラメータであって、前記第１検出部は、前記第１のカメラにより撮像される画像データから、前記第１パラメータを適用したモデルパターンによりターゲットマークを検出し、前記第２検出部は、前記第２のカメラにより撮像される画像データから、前記第２パラメータを適用したモデルパターンによりターゲットマークを検出するように構成してもよい。
【００１７】
（８）（１）乃至（６）の何れかに記載のキャリブレーション装置において、前記第１パラメータ及び前記第２パラメータは、それぞれ前記第１のカメラによる撮像される画像データ及び前記第１のカメラによる撮像される画像データに適用されるパラメータであって、前記第１検出部は、前記第１のカメラにより撮像される画像データに前記第１パラメータを適用した画像データから、前記ターゲットマークを検出し、前記第２検出部は、前記第２のカメラにより撮像される画像データに前記第２パラメータを適用した画像データから、前記ターゲットマークを検出するように構成してもよい。
【００１８】
（９）本発明に係るキャリブレーション方法（例えば、後述の「視覚センサ制御方法」）は、ステレオカメラの備える第１のカメラの画像座標系における位置情報と、前記ステレオカメラの備える第２のカメラの画像座標系における位置情報と、ロボットのロボット座標系における位置情報と、を対応づけるキャリブレーション装置（後述の「視覚センサ制御装置」）によるキャリブレーション方法であって、前記キャリブレーション装置により、ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成ステップと、前記モデルパターンに基づいて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定ステップと、前記モデルパターンに基づいて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定ステップにより設定された前記第１パラメータに基づいて設定する第２パラメータ設定ステップと、前記ロボットにより移動させられる前記ロボットに取り付けられたターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御ステップと、前記第１パラメータに含まれる前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出ステップと、前記第２パラメータに含まれる前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置を計測する第２検出ステップと、前記第１検出ステップにより計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出ステップにより計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークの前記ロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーションステップと、を備える。
【００１９】
（１０）本発明に係るプログラム（例えば、後述の「プログラム」）は、ロボットに取り付けられたターゲットマークのモデルパターンを生成するモデルパターン生成ステップと、前記モデルパターンに基づいて、第１のカメラにより撮像される画像データから前記ターゲットマークを検出するための第１パラメータを設定する第１パラメータ設定ステップと、前記モデルパターンに基づいて、第２のカメラにより撮像される画像データから前記ターゲットマークを検出するための第２パラメータを前記第１パラメータ設定ステップにより設定された前記第１パラメータに基づいて設定する第２パラメータ設定ステップと、前記ロボットにより移動させられる前記ロボットに取り付けられた前記ターゲットマークを、複数の移動先で前記第１のカメラ及び前記第２のカメラにより撮像する撮像制御ステップと、前記第１パラメータに含まれる前記第１パラメータの値を用いて、前記第１のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置を計測する第１検出ステップと、前記第２パラメータに含まれる前記第２パラメータの値を用いて、前記第２のカメラにより撮像される画像データから前記ターゲットマークを検出し、検出された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置を計測する第２検出ステップと、前記第１検出ステップにより計測された前記ターゲットマークの前記第１のカメラの画像座標系における座標位置と、前記第２検出ステップにより計測された前記ターゲットマークの前記第２のカメラの画像座標系における座標位置と、前記第１のカメラ及び前記第２のカメラにより撮像される時の前記ターゲットマークの前記ロボット座標系における座標位置と、に基づいて前記第１のカメラ及び前記第２のカメラのキャリブレーションを行うキャリブレーションステップと、をコンピュータに実行させる。
【発明の効果】
【００２０】
本発明によれば、複数のカメラを備えるステレオカメラのキャリブレーション時において、モデルパターンの作成及びターゲットマークを検出するためのパラメータ設定をカメラ毎に重複して行わずに済むことを可能とする、キャリブレーション装置、方法、及びプログラムを提供することができる。
【図面の簡単な説明】
【００２１】
【図１】ロボットシステム１０００の全体の構成図である。
【図２Ａ】ステレオカメラ２の配置状態の一例を示す図である。
【図２Ｂ】ステレオカメラ２の配置状態の一例を示す図である。
【図３】ターゲットマーク５の一例を示す図である。
【図４】ターゲットマーク５の３次元位置を計測する点Ｐの一例を示す。
【図５Ａ】複数のカメラにより撮像される対象物の画像上の歪みについて一例を示す図である。
【図５Ｂ】複数のカメラにより撮像される対象物の画像上の歪みについて一例を示す図である。
【図６Ａ】キャリブレーションする範囲内をアームの先端部分に取り付けられたターゲットマーク５を移動させる場合の軌道の一例を示す図である。
【図６Ｂ】キャリブレーションする範囲内をアームの先端部分に取り付けられたターゲットマーク５を移動させる場合の軌道の一例を示す図である。
【図６Ｃ】キャリブレーション範囲の一例を示す図である。
【図７】視覚センサ制御装置１の機能構成を示す機能ブロック図である。
【図８】視覚センサ制御装置１におけるＣＰＵ１０の機能構成を示すブロック図である。
【図９】モデルパターンの一例を示す。
【図１０】モデルパターンを生成するフローチャートを示す。
【図１１】ステレオカメラ２のキャリブレーションの処理における視覚センサ制御装置１の処理を示すフローチャートである。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態の一例について説明する。
本実施形態では、キャリブレーション装置として、視覚センサ制御装置を例示する。
図１は、視覚センサのキャリブレーションに関し、特に複数のカメラを備えるステレオカメラを使用したキャリブレーションを実施するためのロボットシステム１０００の全体の構成図である。
図１に示すように、ロボットシステム１０００は、２台のカメラ（第１のカメラ２１及び第２のカメラ２２）を備えるステレオカメラ２と、ステレオカメラ２により撮像される画像データを画像処理して３次元計測を行う視覚センサ制御装置１と、先端部にターゲットマーク５が取り付けられたアーム４１を有するロボット４と、ロボット４を制御するロボット制御装置３と、を備える。ステレオカメラを構成するカメラは２台に限らず、２台以上であればよい。また、ステレオカメラを構成するそれぞれのカメラは単一のカメラとしても使用できることは言うまでもない。
【００２３】
図２Ａ及び図２Ｂは、ステレオカメラ２の配置状態を示す図である。ステレオカメラ２は、架台（図示せず）に固定される。第１のカメラ２１及び第２のカメラ２２は、図２Ａに示すように平行に配置してもよい。また、図２Ｂに示すように、第１のカメラ２１及び第２のカメラ２２をそれぞれ傾けて配置してもよい。
なお、第１のカメラ２１及び第２のカメラ２２をそれぞれ傾けて配置することで、第１のカメラ２１及び第２のカメラ２２を平行に配置する場合に比較して、第１のカメラ２１による撮像領域と第２のカメラ２２による撮像領域との重なり領域を大きくとることが可能となる。すなわち、ステレオカメラ２による３次元計測の可能な領域を、第１のカメラ２１及び第２のカメラ２２を平行に配置する場合に比較して、大きくとることができる。
逆に、第１のカメラ２１及び第２のカメラ２２をそれぞれ傾けて配置することで、第１のカメラ２１及び第２のカメラ２２を平行に配置する場合に比較して、第１のカメラ２１により撮像される対象物（ターゲットマーク５）と第２のカメラ２２により撮像される対象物（ターゲットマーク５）の画像上の歪みの差が大きくなる。
なお、第１のカメラ２１及び第２のカメラ２２の視野範囲、レンズ等を同じ構成にすることが望ましい。そうすることで、ターゲットマーク５の見え方が同じようになることが期待できる。
【００２４】
図３は、ターゲットマーク５の一例を示す図である。ターゲットマーク５は、この例に限定されない。ターゲットマーク５は任意の形状のものを使用できる。ただし、モデルパターンとして使用するターゲットマーク５の特徴が２次元平面上にあるようにすることが望ましい。
ターゲットマーク５として、例えば、紙やシールに印刷したものをロボット４のアームの先端に貼り付けるようにしてもよい。
アーム４１の先端部分に取り付けられたターゲットマーク５について、ターゲットマーク５の３次元位置を計測する点が予め指定され、ロボット４の手先座標系における３次元での位置及び姿勢が予め求められているものとする。
図４にターゲットマーク５の３次元位置を計測する点Ｐの一例を示す。図４に示すように、ターゲットマーク５の３次元位置を計測する点Ｐを明示的に指定しない場合には、ターゲットマーク５の中心点を計測するようにしてもよい。
【００２５】
図５Ａ及び図５Ｂに複数のカメラにより撮像される対象物の画像上の歪みについて一例を示す。図５Ａは、撮像される対象物の画像がそれぞれ、逆方向に歪んでいる例を示している。図５Ｂは、撮像される対象物の画像のサイズが異なるため、ターゲットマーク５が画像上で異なるサイズで映っている例を示している。
【００２６】
ロボット制御装置３はロボット座標系におけるアーム４１の先端の座標位置を現在位置として認識する。したがって、ロボット座標系におけるアーム４１の先端の座標位置と、ターゲットマーク５のロボット４の手先座標系における既知の３次元での位置及び姿勢と、に基づいてロボット制御装置３は、アーム４１を駆動制御した時のターゲットマーク５のロボット座標系における座標位置を常に認識することができる。
ロボット制御装置３は、全体を統括制御するためのＣＰＵ（図示せず）を備え、外部機器インタフェース（図示せず）を介して、視覚センサ制御装置１が接続され、視覚センサ制御装置１にターゲットマーク５のロボット座標系における座標位置を送信したり、視覚センサ制御装置１における画像処理（例えば、ターゲットマーク５の検出処理等）によって得られた画像処理結果等を受信する。
【００２７】
ロボット制御装置３は、キャリブレーション実行時に、予め設定されたキャリブレーションする範囲（「キャリブレーション範囲」という）内でアーム４１の先端に取り付けられたターゲットマーク５を移動させるようにアーム４１を駆動制御する。この際、アーム４１が設定されたキャリブレーション範囲を万遍なく移動することが望ましい。例えば、図６Ａ又は図６Ｂに示す軌道をターゲットマーク５が移動するように制御してもよい。
【００２８】
ここで、キャリブレーション範囲とは、アーム４１の先端部分に取り付けられたターゲットマーク５をキャリブレーション時に移動させる空間であって、第１のカメラ２１又は第２のカメラ２２の少なくともいずれかのカメラの撮像範囲内（画角内）に、移動させたターゲットマーク５が撮像される、当該ターゲットマーク５の移動範囲を指す。図６Ｃにキャリブレーション範囲の一例を示す。
キャリブレーション範囲は、例えば、当該空間内の平面上に矩形で指定することができる。キャリブレーション範囲を矩形で指定する場合には、当該矩形の４隅のロボット座標系での座標位置を計測すればよい。また、アーム４１の先端部分に取り付けられたターゲットマーク５が移動する空間上に障害物等が存在する場合には、当該障害物を避けるように、複数の線分により構成される閉じた図形によりキャリブレーション範囲を指定してもよい。
【００２９】
また、ロボット制御装置３は、ロボット４のアーム４１の先端に取り付けられたターゲットマーク５のロボット座標系における座標位置を計測する。すなわち、ターゲットマーク５の移動先のロボット座標系での座標位置を計測することができる。
【００３０】
視覚センサ制御装置１には、第１のカメラ２１及び第２のカメラ２２を備えるステレオカメラ２が接続されており、第１のカメラ２１及び第２のカメラ２２によりターゲットマーク５を撮像し、第１のカメラ２１及び第２のカメラ２２のキャリブレーションを行う。このように、本実施例においては、視覚センサ制御装置１がキャリブレーション装置の機能を果たす。
【００３１】
図７は、視覚センサ制御装置１の機能構成を示す機能ブロック図である。
視覚センサ制御装置１は、図７に示すように、全体を統括制御するためのＣＰＵ（中央演算処理装置）１０を備えている。ＣＰＵ１０にはバス１１を介して、複数のフレームメモリ１２、ＲＯＭ（読み出し専用メモリ）１３、ＲＡＭ（ランダムアクセスメモリ）１４、不揮発性ＲＡＭ１５が接続されている。また、バス１１には、カメラインタフェース１６を介してステレオカメラ２（第１のカメラ２１及び第２のカメラ２２）が接続されると共に、モニタインタフェース１７を介してモニタ１９が接続されている。さらに、ＣＰＵ１０には、バス１１を介して外部機器インタフェース１８が接続されている。
【００３２】
ＲＯＭ１３には、視覚センサ制御装置１で行われる様々な処理のためのプログラムが格納される。また、一般にＲＡＭへのアクセスはＲＯＭへのアクセスよりも高速であることから、ＣＰＵ１０は、ＲＯＭ１３に格納されたプログラムを予めＲＡＭ１４上に展開しておき、ＲＡＭ１４からプログラムを読み込んで実行してもよい。また、ＲＡＭ１４には、プログラムの実行時に必要な一時待避データが格納される。
不揮発性ＲＡＭ１５は、磁気記憶装置、フラッシュメモリ、ＭＲＡＭ、ＦＲＡＭ（登録商標）、ＥＥＰＲＯＭ、又はバッテリでバックアップされるＳＲＡＭ若しくはＤＲＡＭ等であり、視覚センサ制御装置１の電源がオフされても記憶状態が保持される不揮発性メモリとして構成される。不揮発性ＲＡＭ１５には、プログラム実行時に必要な設定などが記憶される。
フレームメモリ１２には画像データが格納される。
【００３３】
［モデルパターンについて］
不揮発性ＲＡＭ１５は、基準情報記憶部１５１と、検出結果記憶部１５２と、を備える。
基準情報記憶部１５１は、対象物（ターゲットマーク５）を表す基準情報（「モデルパターン」又は「テンプレート」ともいう）を記憶する。基準情報としては、例えば対象物（ターゲットマーク５）のエッジ点からなる集合（「エッジ点群」ともいう）を採用してもよい。エッジ点とは、画像上での輝度変化が大きな点である。
例えば、対象物（ターゲットマーク５）に公知のＳｏｂｅｌフィルタをかけてエッジ画像へ変換し、エッジ画像中から予め定められた閾値以上の強度を有する画素（エッジ点）を抽出し、エッジ点群とすることができる。このように、検出すべき対象物（ターゲットマーク５）を含む画像から抽出したエッジ点群をモデルパターンとして基準情報記憶部２２１に記憶しておく。
なお、モデルパターンはエッジ点に限定されない。例えば、公知のＳＩＦＴのような特徴点を使用してもよい。また、対象物（ターゲットマーク５）の輪郭線に合うように線分、矩形、円などの幾何図形を配置することでモデルパターンを生成してもよい。その場合、輪郭線を構成する幾何図形上に適当な間隔で特徴点を設ければよい。または、モデルパターンは、ターゲットマーク５を撮像した画像からモデルパターン指定領域の箇所を切り抜いたテンプレート画像でもよい。
また、前述したように、アーム４１の先端に取り付けられたターゲットマーク５の３次元位置を計測する点Ｐが予め指定され、ロボット４の手先座標系における３次元での位置及び姿勢を予め求められているものとする。
このように生成されたモデルパターンを基準情報記憶部１５１に予め記憶することを、「モデルパターンを教示する」ともいう。
モデルパターンの教示については後述する。
【００３４】
検出結果記憶部１５２は、ターゲットマーク５を設定されたキャリブレーションする範囲を移動させた場合、それぞれの移動先において、教示されたモデルパターンを使用して第１のカメラ２１及び第２のカメラ２２により撮像される画像データからターゲットマーク５を検出した結果を記憶する。
【００３５】
第１のカメラ２１及び第２のカメラ２２は、それぞれＣＰＵ１０からの指令に従って、対象物を撮像して画像を取得し、取得した画像に関する信号を出力する。カメラインタフェース１６は、ＣＰＵ１０からの指令に従って第１のカメラ２１及び第２のカメラ２２に対して露光のタイミングを制御するための同期信号を発生する機能や、第１のカメラ２１及び第２のカメラ２２から受信した信号を増幅する機能を有している。このような第１のカメラ２１及び第２のカメラ２２やカメラインタフェース１６は市販される一般的なものであり、特に限定されるものではない。
【００３６】
第１のカメラ２１及び第２のカメラ２２から取り込まれた画像に関する信号は、カメラインタフェース１６においてＡ／Ｄ変換され、バス１１を介してディジタル画像データとしてフレームメモリ１２に一時的に格納される。視覚センサ制御装置１では、フレームメモリ１２、ＲＯＭ１３、ＲＡＭ１４及び不揮発性ＲＡＭ１５に格納されているデータを用いてＣＰＵ１０が画像処理を行い、画像処理の結果データが再度フレームメモリ１２に格納される。ＣＰＵ１０は、指令により、フレームメモリ１２に格納されているデータをモニタインタフェース１７に転送してモニタ１９上に表示させ、オペレータなどがデータの内容を確認することを可能にさせるようにしてもよい。
【００３７】
外部機器インタフェース１８は様々な外部機器に接続される。例えば、外部機器インタフェース１８にはロボット制御装置３が接続され、ロボット制御装置３からターゲットマーク５のロボット座標系における座標位置を受けたり、画像処理によって得られた位置情報データ等をロボット制御装置３に供給する。また、外部機器インタフェース１８には、オペレータのための入力装置３３としてキーボードやマウスなどを接続してもよい。
【００３８】
次に、ＣＰＵ１０の有する機能を各処理部の観点から説明する。なお、各処理ステップ（方法）の観点に基づく説明は、「部」を「ステップ」に置き換えることで説明できるため、省略する。
図８は、視覚センサ制御装置１におけるＣＰＵ１０の機能構成を示すブロック図である。
ＣＰＵ１０は、撮像制御部１００と、モデルパターン生成部１０１と、第１パラメータ設定部１０２と、第１検出部１０３と、第２パラメータ設定部１０４と、第２検出部１０５と、キャリブレーション部１０６と、を備える。
これらの各機能部は、ＲＯＭ１３に格納されたシステムプログラムをＣＰＵ１０が実行することにより実現される。
【００３９】
［撮像制御部１００］
撮像制御部１００は、ロボット４によりキャリブレーションする範囲内を移動させられるロボット４のアーム４１の先端に取り付けられたターゲットマーク５を第１のカメラ及び第２のカメラにより撮像する。特に、キャリブレーション時にはターゲットマーク５を複数の移動先の位置で撮像する。ここで複数の移動先の個数としては、キャリブレーションができるだけの最小個数より大きな個数（例えば、２０以上）とすることが望ましい。そうすることで、キャリブレーションの精度を高めることが可能となる。
【００４０】
［モデルパターン生成部１０１］
モデルパターン生成部１０１は、例えば第１のカメラ２１により、モデルパターンを生成する。
図９にモデルパターンの一例を示す。また、図１０にモデルパターンを生成するフローチャートを示す。モデルパターン生成部１０１は、図９に示すようなモデルパターンを生成する。図１０を参照しながら、モデルパターン生成部１０１の機能を説明する。
【００４１】
ステップＳ１において、モデルパターン生成部１０１は、第１のカメラ２１の視野内に配置されたターゲットマーク５を第１のカメラ２１により撮像する制御を行う。なお、このときの第１のカメラ２１とターゲットマーク５の位置関係は、ターゲットマーク５を検出するときと同じになるようにして行うことが望ましい。
【００４２】
ステップＳ２において、モデルパターン生成部１０１は、ターゲットマーク５を撮像した画像において、ターゲットマーク５が写った領域を矩形、円形等によりモデルパターン指定領域として設定するとともに、モデルパターン指定領域内にモデルパターン座標系を定義する。なお、モデルパターン生成部１０１は、オペレータにより指示された領域をモデルパターン指定領域として設定してもよい。また、モデルパターン生成部１０１が、画像における輝度勾配の大きい個所をターゲットマーク５の像の輪郭として算出して、当該ターゲットマーク５の像の輪郭を内部に含むように、モデルパターン指定領域を設定してもよい。
【００４３】
ステップＳ３において、モデルパターン生成部１０１は、モデルパターン指定領域内でエッジ点を特徴点として抽出し、エッジ点の位置、輝度勾配の方向、輝度勾配の大きさなどの物理量を求め、モデルパターン指定領域内に定義されたモデルパターン座標系で表現される値に変換する。
また、モデルパターン生成部１０１は、オペレータにより指示された点を、ターゲットマーク５の３次元位置を計測する点Ｐとして設定し、基準情報記憶部１５１に記憶する。なお、モデルパターン生成部１０１は、例えば、モデルパターンの中心点を、ターゲットマーク５の３次元位置を計測する点Ｐとして設定してもよい。
なお、前述したように、モデルパターンはエッジ点に限定されない。例えば、公知のＳＩＦＴのような特徴点を使用してもよい。また、対象物（ターゲットマーク５）の輪郭線に合うように線分、矩形、円などの幾何図形を配置することでモデルパターンを生成してもよい。その場合、輪郭線を構成する幾何図形上に適当な間隔で特徴点を設ければよい。または、モデルパターンは、ターゲットマーク５を撮像した画像からモデルパターン指定領域の箇所を切り抜いたテンプレート画像でもよい。
【００４４】
ステップＳ４において、モデルパターン生成部１０１は、生成したモデルパターンを基準情報記憶部１５１に記憶する。
以上のように、モデルパターンは、一方のカメラ（第１のカメラ２１）により撮像される画像を使って生成される。第２のカメラ２２に対するモデルパターンとしては、第１のカメラにより撮像される画像を使って生成されたモデルパターンを流用する。
【００４５】
次に、基準情報記憶部１５１に記憶されたモデルパターンを使用して、第１のカメラ２１により撮像される画像データからターゲットマーク５を検出する際の問題点について説明する。
【００４６】
キャリブレーション時において、第１のカメラ２１によるターゲットマーク５の画像の撮影環境がそれぞれ異なることが想定される。撮影環境の違いとしては、例えば、移動先の位置の違いより第１のカメラ２１とターゲットマーク５の相対位置関係が変わる。このため、第１のカメラ２１によるアーム４１の先端部分に取り付けられたターゲットマーク５の撮像される画像は、キャリブレーションする範囲内におけるターゲットマーク５の移動先によって、モデルパターン生成部１０１により生成されたモデルパターンとはその大きさが異なったり、明るさが異なったり、回転やひずみの生じたアピアランスの相違するものになることがある。このため、モデルパターンと完全に一致するものを検出しようとした場合、第１のカメラ２１により撮像される画像データから対象物（ターゲットマーク５）を検出することができないという状況が発生しうる。
【００４７】
［第１パラメータ設定部１０２］
このような状況においても、第１のカメラ２１により撮像される画像データから、キャリブレーションする範囲内におけるターゲットマーク５の移動先に関わらず、モデルパターンを検出することができるように、第１パラメータ設定部１０２は、第１のカメラ２１により撮像される画像データからターゲットマーク５のモデルパターンを検出するための第１パラメータを設定する。
より具体的には、第１パラメータ設定部１０２により設定される第１パラメータは、検出アルゴリズムに依存するものであり、例えば、モデルに対するサイズ、回転、歪み、検出する位置の範囲、角度の範囲等の所定の範囲を有するように構成したり、単一の数値やオンオフ値で構成したりすることができる。なお、第１パラメータは、ここで例示したものに限らない。
そうすることで、ターゲットマーク５の移動先に関わらず、モデルパターンを検出することができるように、後述の第１検出部１０３は、撮像データから、単一の数値やオンオフ値又は所定の範囲内のパラメータの値でモデルパターンと一致するものを検出できるように構成する。そうすることで、適切なパラメータの値を適用することにより、撮像データからモデルパターンを検出することができる。
第１パラメータは、第１のカメラ２１により撮像される画像データに適用されるパラメータとしてもよい。この場合、第１検出部１０３は、第１のカメラ２１により撮像される画像データに第１パラメータを適用した画像データから、ターゲットマーク５のモデルパターンを検出するように構成される。例えば、画像データにガウシアンフィルタを掛けて平滑化した画像データからモデルパターンを検出できる。
また、第１パラメータは、ターゲットマーク５のモデルパターンに適用されるパラメータとしてもよい。この場合、第１検出部１０３は、第１のカメラ２１により撮像される画像データから、第１パラメータを適用したモデルパターンによりターゲットマーク５を検出するように構成される。
【００４８】
第１パラメータ設定部１０２が設定する第１パラメータの一つとして、例えば、射影変換、アフィン変換、相似変換等の変換行列をモデルパターンに適用してもよい。
例えば、第１パラメータの値を単一の数値で構成した場合には、単一の変換行列を選択し、第１パラメータの値を所定の範囲を有するように構成した場合には、所定の範囲の変換行列を選択可能とするようにすることができる。具体的には、所定の範囲を有するように第１パラメータを構成したときには、例えば、射影変換行列の場合、１つの射影変換行列に基づいて、当該射影変換行列のそれぞれの要素との偏差が所定の閾値以下になるような射影変換行列をパラメータの範囲に含むように構成してもよいし、回転の場合には、１つの回転角度に基づいて、回転角度の範囲を設定してもよい。また、相似変換についても同様に、１つの相似比に基づいて、相似比の範囲を設定してもよい。
こうすることで、例えば、ターゲットマーク５の移動先が異なることによるターゲットマーク５のアピアランスの相違にロバストな検出を可能とすることができる。
なお、露光時間についても、例えば、第１のカメラ２１とターゲットマーク５の置かれる平面との角度、照明との関係等により、パラメータの値を設定することが望ましい。
【００４９】
［第１検出部１０３］
第１検出部１０３は、第１のカメラ２１により撮像される画像データからターゲットマーク５を検出し、検出されたターゲットマーク５の第１のカメラ２１の画像座標系における座標位置を計測する。
具体的には、第１検出部１０３は、単一の数値、オンオフ値又は第１パラメータの所定の範囲からパラメータを選択する。なお、パラメータを所定の範囲から選択する際には、例えば、パラメータ範囲の値のなかで中心となる値を最初に選択してもよい。その後、例えば、中心の値から、プラスマイナスの方にそれぞれ、ずらしながら、次のパラメータを選択するようにしてもよい。
【００５０】
第１検出部１０３は、前述したように第１パラメータが第１のカメラ２１による撮像される画像データに適用されるパラメータの場合、単一の数値、オンオフ値又はパラメータの所定の範囲からパラメータを選択した後に、第１のカメラ２１により撮像される画像データからターゲットマーク５を検出することができるように、当該パラメータにより、画像データを変換する。そうすることで、第１検出部１０３は、公知の検出手法により、変換後の画像データからターゲットマーク５を検出することができる。
【００５１】
具体的には、第１検出部１０３は、第１パラメータを適用した画像データから、教示されたモデルパターンの特徴点を抽出したのと同じ方法で特徴点を抽出し、特徴点とモデルパターンを構成する特徴点との間で公知のマッチングを行うことで、ターゲットマーク５を検出する。
【００５２】
また、逆に、第１検出部１０３は、ターゲットマーク５のモデルパターンを当該パラメータにより変換するようにしてもよい。この場合、第１検出部１０３は、前述した公知の検出手法により、撮像データから変換後のモデルパターンと一致するターゲットマーク５を検出することができる。
具体的には、第１検出部１０３は、第１のカメラ２１によって撮像される画像データから、教示されたモデルパターンの特徴点を抽出したのと同じ方法で特徴点を抽出し、特徴点と当該パラメータを適用したモデルパターンの特徴点との間で公知のマッチングを行うことで、ターゲットマーク５を検出する。
第１検出部１０３は、検出されたターゲットマーク５の第１のカメラ２１の画像座標系における座標位置を計測する。
【００５３】
［第２パラメータ設定部１０４］
次に、第１のカメラ２１により生成されたターゲットマーク５のモデルパターンを使用して、第２のカメラ２２により撮像される画像データから当該モデルパターンを検出するための第２パラメータを設定する第２パラメータ設定部１０４について説明する。
第２パラメータ設定部１０４は、第２のカメラ２２による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第２パラメータを第１パラメータ設定部１０２により設定された第１パラメータに基づいて設定する。
より具体的には、第２パラメータ設定部１０４は、第２パラメータの値を初期設定する際に第１パラメータをそのまま使用する。
または、第２パラメータの値を初期設定する際に、例えば、第２パラメータを所定の範囲とする場合には、第２パラメータ設定部１０４は、第１パラメータの範囲と同一の範囲を設定したり、第２パラメータの範囲が、第１パラメータ設定部１０２により設定される第１パラメータの所定の範囲を含む広い範囲として設定することができる。このような場合には、後述する第２検出部１０５により、ある第２パラメータの値を適用することで、第２のカメラ２２により撮像される画像データからターゲットマーク５のモデルパターンを検出することができた場合、第２パラメータ設定部１０４は、当該第２パラメータを中心として、第１パラメータの所定の範囲における中心値からの偏差に基づいて、第２パラメータの値の範囲を設定し直すことができる。
例えば、第１のカメラ２１に対して第１パラメータにより、サイズの範囲を０．９から１．１に設定していた場合、中心値は１．０であって、第１パラメータの所定の範囲における中心値からの偏差は０．１となる。
他方、第２のカメラ２２の対象物（ターゲットマーク５）について、第２のカメラ２２において第２パラメータにおけるサイズを０．９５とすることで対象物（ターゲットマーク５）を最初に検出することができた場合、第２パラメータの中心値を０．９５とし、第１パラメータの偏差を第２パラメータに指定する。すなわち、第２パラメータの値の範囲は、中心値を０．９５とする範囲［０．８５〜１．０５］に設定する。
このように、第２パラメータの値の範囲を初期設定時の範囲を見直すことが可能となり、第２のカメラ２２の撮像データからのモデルパターンの検出をより効率的に実施することが可能となる。
【００５４】
［第２検出部１０５］
第２検出部１０５は、第２のカメラ２２により撮像される画像データからターゲットマークのモデルパターンを検出し、検出されたターゲットマーク５の第２のカメラ２２の画像座標系における座標位置を計測する。
なお、第２検出部１０５の検出処理については、前述した第１検出部１０３の検出処理の説明において、第１のカメラ２１、第１パラメータ設定部１０２及び第１パラメータをそれぞれ、第２のカメラ２２、第２パラメータ設定部１０４、及び第２パラメータに読み替えることで説明できるため、省略する。
【００５５】
［キャリブレーション部１０６］
キャリブレーション部１０６は、ロボット制御装置３により移動させられた、ロボット４のアーム４１の先端に取り付けられたターゲットマーク５の複数の移動先における、第１のカメラ２１により撮像される画像データ中のターゲットマーク５の第１のカメラ２１の画像座標系における座標位置と、第２のカメラ２２により撮像される画像データ中のターゲットマーク５の第２のカメラ２２の画像座標系における座標位置と、第１のカメラ２１又は第２のカメラ２２により撮像される時のターゲットマーク５のロボット座標系における座標位置と、を検出結果記憶部１５２に記憶する。
キャリブレーション部１０６は、検出結果記憶部１５２に記憶された、ターゲットマーク５の第１のカメラ２１の画像座標系における座標位置と、ターゲットマーク５の第２のカメラ２２の画像座標系における座標位置と、第１のカメラ２１及び第２のカメラ２２により撮像される時のターゲットマーク５のロボット座標系における座標位置と、に基づいて第１のカメラ２１及び第２のカメラ２２のキャリブレーションを行う。第１のカメラ２１と第２のカメラ２２は個別にキャリブレーションできることは言うまでもない。
【００５６】
図１１は、本実施形態に係る第１のカメラ２１及び第２のカメラ２２を備えるステレオカメラ２のキャリブレーション処理における視覚センサ制御装置１（ＣＰＵ１０）の処理を示すフローチャートである。なお、キャリブレーションする範囲は予め設定されているものとする。
【００５７】
ステップＳ１１において、ＣＰＵ１０（モデルパターン生成部１０１）は、オペレータの操作により、第１のカメラ２１によりモデルパターンを生成する。
【００５８】
ステップＳ１２において、ＣＰＵ１０（第１パラメータ設定部１０２）は、オペレータの指定により、第１のカメラ２１に対する第１パラメータを設定する。
【００５９】
ステップＳ１３において、ＣＰＵ１０（第２パラメータ設定部１０４）は、第２のカメラ２２による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第２パラメータを第１パラメータ設定部１０２により設定された第１パラメータに基づいて設定する。
【００６０】
ステップＳ１４において、ＣＰＵ１０（キャリブレーション部１０６）は、計測回数をカウントするための計測カウンタに１を設定する。
【００６１】
ステップＳ１５において、ＣＰＵ１０（キャリブレーション部１０６）は、ロボット制御装置３により計測されたターゲットマーク５のロボット座標系における３次元座標位置を取得する。
【００６２】
ステップＳ１６において、ＣＰＵ１０（第１検出部１０３）は、第１のカメラ２１により撮像される画像データから、ターゲットマーク５を検出し、検出されたターゲットマーク５の第１のカメラ２１の画像座標系における座標位置を計測する。
【００６３】
ステップＳ１７において、ＣＰＵ１０（第２検出部１０５）は、第２のカメラ２２により撮像される画像データから、ターゲットマーク５を検出し、検出されたターゲットマーク５の第２のカメラ２２の画像座標系における座標位置を計測する。
【００６４】
ステップＳ１８において、ＣＰＵ１０（キャリブレーション部１０６）は、現在位置におけるターゲットマーク５のロボット座標系における３次元座標位置、第１のカメラ２１の画像座標系における座標位置、及び第２のカメラ２２の画像座標系における座標位置を関係付ける。
【００６５】
ステップＳ１９において、ＣＰＵ１０（キャリブレーション部１０６）は、計測回数をカウントするための計測カウンタに１を加算する。
【００６６】
ステップＳ２０において、計測カウンタが所定の値を超えない場合、ステップＳ２１に移る。計測カウンタが所定の値を超える場合（Ｙｅｓ）、ステップＳ２２に移る。計測カウンタが所定の値を超えなかった場合（Ｎｏ）、ステップＳ２１に移る。
【００６７】
ステップＳ２１において、ロボット制御装置３は、ロボット４のアーム４１の先端に取り付けられたターゲットマーク５を、予め設定されたキャリブレーションする範囲内の第１のカメラ２１又は第２のカメラ２２から計測できる場所に移動する。その後、ステップＳ１５に移る。
【００６８】
ステップＳ２２において、ＣＰＵ１０（キャリブレーション部１０６）は、ステップ１８において記憶された、ターゲットマーク５のロボット座標系における３次元座標位置、第１のカメラ２１の画像座標系における座標位置及び第２のカメラ２２の画像座標系における座標位置の関係に基づいて、第１のカメラ２１と第２のカメラ２２のキャリブレーションを実行する。
【００６９】
なお、本処理フローは一例であり、これに限定されない。
【００７０】
本実施形態によれば、視覚センサ制御装置１は、ロボット４により移動させられるロボット４に取り付けられたターゲットマーク５を、複数の移動先で第１のカメラ２１及び第２のカメラ２２により撮像する撮像制御部１００と、第１のカメラ２１による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第１パラメータを設定する第１パラメータ設定部１０２と、第２のカメラ２２による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第２パラメータを第１パラメータ設定部１０２により設定された第１パラメータに基づいて設定する第２パラメータ設定部１０４と、を備える。
これにより、ステレオカメラ２のような複数のカメラをキャリブレーションする際に、例えば、第１のカメラ２１に対してのみ、第１パラメータを設定し、第２のカメラ２２に対しては、第２パラメータ設定部１０４により、第１パラメータに基づいて第２パラメータが設定されるため、複数のカメラ毎にモデルパターンの作成及びターゲットマークを検出するためのパラメータ設定を行わずに済むことができ、効率が向上する。
【００７１】
ターゲットマーク５は、ロボット４のアーム先端に取り付けられ、ロボット４の手先座標系における３次元での位置及び姿勢が予め求められる。
これにより、種々のターゲットマーク５を検出することができる。
【００７２】
第１パラメータ及び第２パラメータは、単一の数値、オンオフ値、又は範囲を有するパラメータを含む。
これにより、種々のターゲットマーク５を検出することができる。
【００７３】
第２パラメータ設定部１０４により初期設定される第２パラメータは、第１パラメータ設定部１０４により設定される第１パラメータで第１のカメラ２１により撮像される画像データから検出できるターゲットマークは全て、第２のカメラ２２により撮像される画像から検出できるように設定される。
これにより、種々のターゲットマーク５を検出することができる。
【００７４】
第２パラメータ設定部１０４は、第１パラメータが所定の範囲を有する場合には、第２パラメータの範囲として、第２のカメラ２２により撮像される画像データからターゲットマーク５を検出することができたときに用いた当該第２パラメータの値を中心として、当該第１パラメータの所定の範囲における中心値からの偏差の大きさの範囲に設定する。
これにより、第２のカメラ２２により撮像される画像データからロボット４に取り付けられたターゲットマーク５を検出する処理を効率化することができる。
【００７５】
また、第１パラメータ及び第２パラメータは、それぞれ、ターゲットマーク５のモデルパターン、サイズ、及び変形に関するパラメータを含む。
これにより、第２のカメラ２２により撮像される画像データからロボット４に取り付けられたターゲットマーク５を検出する処理を効率化することができる。
【００７６】
また、第１パラメータ及び第２パラメータは、それぞれターゲットマーク５のモデルパターンに適用されるパラメータとすることができる。
また、第１パラメータ及び第２パラメータは、それぞれ第１のカメラ２１による撮像される画像データ及び第１のカメラ２１による撮像される画像データに適用されるパラメータとすることができる。
これにより、種々のターゲットマーク５を検出することができる。
【００７７】
本実施形態におけるキャリブレーション方法は、ロボット４により移動させられるロボット４に取り付けられたターゲットマーク５を、複数の移動先で第１のカメラ２１及び第２のカメラ２２により撮像する撮像制御ステップと、第１のカメラ２１による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第１パラメータを設定する第１パラメータ設定ステップと、第２のカメラ２２による撮像される画像データからターゲットマーク５のモデルパターンを検出するための第２パラメータを第１パラメータ設定ステップにより設定された第１パラメータに基づいて設定する第２パラメータ設定ステップと、を備える。
これにより、視覚センサ制御装置１と同様の効果を奏する。
【００７８】
本実施形態におけるプログラムはロボット４により移動させるロボット４に取り付けられたターゲットマーク５を、複数の移動先で第１のカメラ２１及び第２のカメラ２２により撮像する撮像制御ステップと、第１のカメラ２１により撮像される画像データからターゲットマーク５を検出するための第１パラメータを設定する第１パラメータ設定ステップと、第２のカメラ２２により撮像される画像データからターゲットマーク５を検出するための第２パラメータを第１パラメータ設定ステップにより設定された第１パラメータに基づいて設定する第２パラメータ設定ステップをコンピュータに実行させる。
これにより、視覚センサ制御装置１と同様の効果を奏する。
【００７９】
以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
本実施形態においては、キャリブレーション装置として、視覚センサ制御装置１を適用したが、これに限定されない。視覚センサ制御装置１とロボット制御装置３とを一体とする制御装置として、キャリブレーション装置としてもよい。また、キャリブレーション装置として、情報処理装置（コンピュータ）全般を指すことができる。キャリブレーション装置には、例えば、サーバ、ＰＣ、各種制御装置などを適用してもよい。
【００８０】
視覚センサ制御装置１によるキャリブレーション方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、コンピュータ（視覚センサ制御装置１）にインストールされる。また、これらのプログラムは、リムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。
【符号の説明】
【００８１】
１０００  ロボットシステム
１  視覚センサ制御装置
１０  ＣＰＵ
１００  撮像制御部
１０１  モデルパターン生成部
１０２  第１パラメータ設定部
１０３  第１検出部
１０４  第２パラメータ設定部
１０５  第２検出部
１０６  キャリブレーション部
１１  バス
１２  フレームメモリ
１３  ＲＯＭ
１４  ＲＡＭ
１５  不揮発性ＲＡＭ
１５１  基準情報記憶部
１５２  検出結果記憶部
１６  カメラインタフェース
１７  モニタインタフェース
１８  外部機器インタフェース
１９  モニタ
２  ステレオカメラ
２１  第１のカメラ
２２  第２のカメラ
３  ロボット制御装置
４  ロボット
４１  アーム
５  ターゲットマーク
【図１】
2018111165.tif 000003
【図２Ａ】
2018111165.tif 000004
【図２Ｂ】
2018111165.tif 000005
【図３】
2018111165.tif 000006
【図４】
2018111165.tif 000007
【図５Ａ】
2018111165.tif 000008
【図５Ｂ】
2018111165.tif 000009
【図６Ａ】
2018111165.tif 000010
【図６Ｂ】
2018111165.tif 000011
【図６Ｃ】
2018111165.tif 000012
【図７】
2018111165.tif 000013
【図８】
2018111165.tif 000014
【図９】
2018111165.tif 000015
【図１０】
2018111165.tif 000016
【図１１】
2018111165.tif 000017