(57)【要約】【課題】カメラの搭載個数の低減による生産性の向上と装置の小型化を図る。【解決手段】  撮像により画像データを取得する撮像手段２０と、アーム先端部に撮像手段を保持するロボット３０とを備える物体位置認識装置１００による物体位置認識方法であって、少なくとも二以上の撮像位置に順番に撮像手段を位置合わせして目標物の目標点の撮像を行う工程と、各撮像位置の画像データから撮像座標系における目標位置の位置座標を求める工程と、各撮像位置での撮像座標系における目標位置の位置座標と、ロボット座標系における各撮像位置の位置座標とにより、目標位置の前記ロボット座標系における位置座標を算出する工程とを備える、という構成を採っている。【選択図】図１
2007171018.tif 000002
【特許請求の範囲】
【請求項１】
目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共に前記アーム先端部に前記撮像手段を保持するロボットとを備える物体位置認識装置による物体位置認識方法であって、
前記ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に前記撮像手段を位置合わせした上で前記各撮像位置から前記目標物の目標点の撮像を行う工程と、
前記各撮像位置で得られた画像データから撮像座標系における前記目標位置の位置座標を求める工程と、
前記各撮像位置での撮像座標系における目標位置の位置座標と、前記ロボット座標系における各撮像位置の位置座標とにより、前記目標位置の前記ロボット座標系における位置座標を算出する工程とを備えることを特徴とする物体位置認識方法。
【請求項２】
目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共に前記アーム先端部に前記撮像手段を保持するロボットとを備える物体位置認識装置による物体位置認識方法であって、
前記ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に前記撮像手段を位置合わせした上で前記各撮像位置から前記目標物の目標点の撮像を行う工程と、
前記各撮像位置で得られた画像データから撮像座標系における前記目標位置の位置座標を求める工程と、
前記各撮像位置での撮像座標系における目標位置の位置座標と、前記ロボット座標系における各撮像位置の位置座標とにより、前記目標位置の前記ロボット座標系における位置座標を算出する工程とを備え、
前記各撮像位置で目標点の撮像を行う工程で、当該各撮像位置の間での前記撮像手段の移動を行いつつ連続的又は間欠的に前記目標点の撮像を行うと共に、当該移動中の各位置での撮像による画像データをその前の位置の撮像による画像データと比較して目標点を追跡する処理を行うことを特徴とする物体位置認識方法。
【請求項３】
目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、
アーム先端部の位置及び姿勢を任意に変化させると共に前記アーム先端部に前記撮像手段を保持するロボットと、
前記ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に前記撮像手段を位置合わせした上で前記各撮像位置から前記目標物の目標点の撮像を行わせる撮像制御手段と、
前記各撮像位置で得られた画像データから撮像座標系における前記目標位置の位置座標を求める撮像位置座標算出手段と、
前記各撮像位置での撮像座標系における目標位置の位置座標と、前記ロボット座標系における各撮像位置の位置座標とにより、前記目標位置の前記ロボット座標系における位置座標を算出する三次元位置算出手段とを備えることを特徴とする物体位置認識装置。
【請求項４】
目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、
アーム先端部の位置及び姿勢を任意に変化させると共に前記アーム先端部に前記撮像手段を保持するロボットと、
前記ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に前記撮像手段を位置合わせした上で前記各撮像位置から前記目標物の目標点の撮像を行わせる撮像制御手段と、
前記各撮像位置で得られた画像データから撮像座標系における前記目標位置の位置座標を求める撮像位置座標算出手段と、
前記各撮像位置での撮像座標系における目標位置の位置座標と、前記ロボット座標系における各撮像位置の位置座標とにより、前記目標位置の前記ロボット座標系における位置座標を算出する三次元位置算出手段と、
前記各撮像位置の間を前記撮像手段が移動するに際し、連続的又は間欠的に前記目標点の撮像を行うと共に、当該移動中の各位置での撮像による画像データをその前の位置の撮像による画像データと比較して目標点を追跡する処理を行う追跡処理手段とを備えることを特徴とする物体位置認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像手段で捉えた対象範囲の画像を解析することによって目的物の位置を認識する物体位置認識方法及び物体位置認識装置に関する。
【背景技術】
【０００２】
物体位置認識装置は、例えば、産業用ロボットのシステムに搭載され、ロボットの作業対象物であるワークの位置認識を行うために使用される。かかるワークの位置認識のためには、ロボットのアーム先端部に撮像手段であるカメラを搭載することが一般的に行われているが、単一のカメラ画像では物体を平面的にしか捕らえることができず、奥行きを把握することができない。
従って、従来の物体位置認識装置は、ロボットのアーム先端部における離れた二つの搭載位置のそれぞれにカメラを搭載していた。そして、当該各カメラの双方により同一のワークを撮像し、各カメラで得られた画像データからワーク上の所定点について三次元であるロボット座標上の位置座標を算出することでワークの位置認識を行っていた（例えば、特許文献１参照）。
【特許文献１】特開２００５−１８６１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来の物体位置認識装置にあっては、ロボットのアーム先端に２つのカメラを搭載しているため、カメラ二台分のコストが必要となるとと共に部品点数の増加を招き生産性が低下するという問題があった。また、ロボットのアーム先端に二台離れてカメラが搭載されているため、アーム先端部が大きくなって狭い場所に進入させることができないという問題があった。
【０００４】
また、上記従来の物体位置認識装置による位置認識にあっては、ワーク上の同一の微小なポイントをそれぞれのカメラが捕らえ、それぞれのカメラの撮像範囲内の微小なるポイントの二次元座標における位置座標の差から三次元上の位置座標を算出するものである。
このため、一方のカメラで捕らえた微小ポイントと同じポイントをもう一方のカメラで捕らえる必要がある。
しかしながら、二つのカメラはそれぞれ離れた位置からワークの撮像を行うため、視差により同一ポイントを特定することが難しく、異なるポイントを捕らえることで三次元上の位置認識を誤る可能性があった。
特に、ビンピッキング、即ち、同一のワークが乱雑に詰まれた状態からひとつのワークを取り出す場合のように、いずれも同一の微小ポイントを備える複数のワークの中から二つのカメラが同じワークの微小ポイントを捕らえる必要がある場合に、ポイントを誤る可能性が高かった。
【０００５】
本発明は、装置の生産性の向上を図ることをその目的とする。
また、本発明は、装置の小型化を図ることをその目的とする。
さらに、本発明は、物体の位置認識をより正確に行うことをその目的とする。特に、本発明では、所定方向に並べることなく置かれた、或いは無作為に積まれた物体を個々に位置認識可能とすることをその目的とする。
【課題を解決するための手段】
【０００６】
請求項１記載の発明は、目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共にアーム先端部に撮像手段を保持するロボットとを備える物体位置認識装置による物体位置認識方法であって、ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に撮像手段を位置合わせした上で各撮像位置から目標物の目標点の撮像を行う工程と、各撮像位置で得られた画像データから撮像座標系における目標位置の位置座標を求める工程と、各撮像位置での撮像座標系における目標位置の位置座標と、ロボット座標系における各撮像位置の位置座標とにより、目標位置のロボット座標系における位置座標を算出する工程とを備える、という構成を採っている。
なお、撮像座標系とは、撮像手段の撮像範囲内に展開される二次元の座標系をいい、ロボット座標系とは、アーム先端の可動領域に展開される三次元の座標系をいう。以下の請求項２から４についても同様である。
【０００７】
請求項２記載の発明は、目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共にアーム先端部に撮像手段を保持するロボットとを備える物体位置認識装置による物体位置認識方法であって、ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に撮像手段を位置合わせした上で各撮像位置から目標物の目標点の撮像を行う工程と、各撮像位置で得られた画像データから撮像座標系における目標位置の位置座標を求める工程と、各撮像位置での撮像座標系における目標位置の位置座標と、ロボット座標系における各撮像位置の位置座標とにより、目標位置の前記ロボット座標系における位置座標を算出する工程とを備え、各撮像位置で目標点の撮像を行う工程で、当該各撮像位置の間での撮像手段の移動を行いつつ連続的又は間欠的に目標点の撮像を行うと共に、当該移動中の各位置での撮像による画像データをその前の位置の撮像による画像データと比較して目標点を追跡する処理を行う、という構成を採っている。
【０００８】
請求項３記載の発明は、目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共にアーム先端部に撮像手段を保持するロボットと、ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に撮像手段を位置合わせした上で各撮像位置から目標物の目標点の撮像を行わせる撮像制御手段と、各撮像位置で得られた画像データから撮像座標系における目標位置の位置座標を求める撮像位置座標算出手段と、各撮像位置での撮像座標系における目標位置の位置座標と、ロボット座標系における各撮像位置の位置座標とにより、目標位置の前記ロボット座標系における位置座標を算出する三次元位置算出手段とを備える、という構成を採っている。
【０００９】
請求項４記載の発明は、目標物の撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段と、アーム先端部の位置及び姿勢を任意に変化させると共にアーム先端部に撮像手段を保持するロボットと、ロボットによりロボット座標系の位置座標が既知である少なくとも二以上の撮像位置に順番に撮像手段を位置合わせした上で各撮像位置から目標物の目標点の撮像を行わせる撮像制御手段と、各撮像位置で得られた画像データから撮像座標系における目標位置の位置座標を求める撮像位置座標算出手段と、各撮像位置での撮像座標系における目標位置の位置座標と、ロボット座標系における各撮像位置の位置座標とにより、目標位置のロボット座標系における位置座標を算出する三次元位置算出手段と、各撮像位置の間を撮像手段が移動するに際し、連続的又は間欠的に目標点の撮像を行うと共に、当該移動中の各位置での撮像による画像データをその前の位置の撮像による画像データと比較して目標点を追跡する処理を行う追跡処理手段とを備える、という構成を採っている。
【発明の効果】
【００１０】
請求項１記載の発明では、二以上の撮像位置で撮像を行う工程では、ロボットの駆動により各撮像位置に順番に撮像手段を位置合わせして、それぞれの位置で撮像を行う。
撮像座標系での位置座標を求める工程では、各撮像位置における画像データから、撮像範囲内の目標点を、例えば、二値化処理やパターンマッチング処理等により抽出し、当該目標点が撮像範囲内のいずれに位置するかを示す二次元の撮像座標系で表される位置座標が求められる。
【００１１】
なお、ここで、撮像座標系の位置座標は全ての撮像位置での撮像が行われた後に求めても良いし、撮像ごとに求めても良い。請求項２も同様である。
ロボット座標系における位置座標を算出する工程では、各撮像位置が既知なので、これら撮像位置と撮像座標系で表される位置座標とから、例えば、三角法等を駆使することで目標点の三次元のロボット座標系（ロボットが配置された空間上の三次元座標系）の位置座標が算出される。
このように、撮像手段がロボットにより各撮像位置に運ばれるので、各撮像位置ごとに配置された撮像手段が不要となり、撮像手段の個体数を低減し、コスト低減及び生産性の向上を図ることが可能となる。また、各撮像位置ごとに離れて配置された撮像手段を不要とするので、ロボットのアーム先端部を小型化し、狭い場所でもロボットにより作業を行うことが可能となる。
【００１２】
請求項２記載の発明では、二以上の撮像位置で撮像を行う工程では、ロボットの駆動により各撮像位置に順番に撮像手段を位置合わせして、それぞれの位置で撮像を行う。
また、各撮像位置に順番に撮像手段を移動する途中では間欠的又は連続的に目標位置の撮像を行い、当該間欠的又は連続的な撮像による画像データを直前の画像データを比較して、撮像範囲内で位置変位を生じた場合でも目標点の位置確認が行われる。
撮像座標系での位置座標を求める工程では、各撮像位置における画像データから、撮像範囲内の目標点を、例えば、二値化処理やパターンマッチング処理等により抽出し、当該目標点が撮像範囲内のいずれに位置するかを示す二次元の撮像座標系で表される位置座標が求められる。
ロボット座標系における位置座標を算出する工程では、各撮像位置が既知なので、これら撮像位置と撮像座標系で表される位置座標とから、例えば、三角法等を駆使することで目標点の三次元のロボット座標系（ロボットが配置された空間上の三次元座標系）の位置座標が算出される。
【００１３】
このように、撮像手段がロボットにより各撮像位置に運ばれるので、各撮像位置ごとに配置された撮像手段が不要となり、撮像手段の個体数を低減し、コスト低減及び生産性の向上を図ることが可能となる。また、各撮像位置ごとに離れて配置された撮像手段を不要とするので、ロボットのアーム先端部を小型化し、狭い場所でもロボットにより作業を行うことが可能となる。
さらに、複数の撮像位置の間での移動の間、間欠的又は連続的に目標点を撮像し追跡するので、一方の撮像位置での撮像画像内の目標点と他方の撮像位置での撮像画像内の目標点との一致の判断を容易に行うことができ、これに伴い、目標点の誤認識を抑制し、より正確に目標点の位置を特定することが可能となる。
特に、複数の目標点が撮像範囲内に存在する場合でも、一の目標点を他の目標点と混同する事態を効果的に抑制し、より正確に目標点の位置を特定することが可能となる。
【００１４】
請求項３記載の発明では、撮像制御手段により、ロボットの駆動により各撮像位置に順番に撮像手段を位置合わせして、それぞれの位置で撮像が行われる。
次いで、撮像位置座標算出手段は、各撮像位置における画像データから、撮像範囲内の目標点を、例えば、二値化処理やパターンマッチング処理等により抽出し、当該目標点が撮像範囲内のいずれに位置するかを示す二次元の撮像座標系で表される位置座標を算出する。
【００１５】
そして、三次元位置算出手段は、各撮像位置が既知なので、これら撮像位置と撮像座標系で表される位置座標とから、例えば、三角法等を駆使することで目標点の三次元のロボット座標系（ロボットが配置された空間上の三次元座標系）の位置座標を算出する。
このように、撮像手段がロボットにより各撮像位置に運ばれるので、各撮像位置ごとに配置された撮像手段が不要となり、撮像手段の個体数を低減し、コスト低減及び生産性の向上を図ることが可能となる。また、各撮像位置ごとに離れて配置された撮像手段を不要とするので、ロボットのアーム先端部を小型化し、狭い場所でもロボットにより作業を行うことが可能となる。
【００１６】
請求項４記載の発明では、撮像制御手段により、ロボットの駆動により各撮像位置に順番に撮像手段を位置合わせして、それぞれの位置で撮像が行われる。
また、追跡処理手段により、各撮像位置に順番に撮像手段を移動する途中では間欠的又は連続的に目標位置の撮像を行い、当該間欠的又は連続的な撮像による画像データを直前の画像データを比較して、撮像範囲内で位置変位を生じた場合でも目標点の位置確認が行われる。
次いで、撮像位置座標算出手段は、各撮像位置における画像データから、撮像範囲内の目標点を、例えば、二値化処理やパターンマッチング処理等により抽出し、当該目標点が撮像範囲内のいずれに位置するかを示す二次元の撮像座標系で表される位置座標を算出する。
なお、ここで、撮像座標系の位置座標は全ての撮像位置での撮像が行われた後に求めても良いし、撮像ごとに求めても良い。請求項２も同様である。
そして、三次元位置算出手段は、各撮像位置が既知なので、これら撮像位置と撮像座標系で表される位置座標とから、例えば、三角法等を駆使することで目標点の三次元のロボット座標系（ロボットが配置された空間上の三次元座標系）の位置座標を算出する。
【００１７】
このように、撮像手段がロボットにより各撮像位置に運ばれるので、各撮像位置ごとに配置された撮像手段が不要となり、撮像手段の個体数を低減し、コスト低減及び生産性の向上を図ることが可能となる。また、各撮像位置ごとに離れて配置された撮像手段を不要とするので、ロボットのアーム先端部を小型化し、狭い場所でもロボットにより作業を行うことが可能となる。
さらに、追跡処理手段により、複数の撮像位置の間での移動の間、間欠的又は連続的に目標点を撮像し追跡するので、一方の撮像位置での撮像画像内の目標点と他方の撮像位置での撮像画像内の目標点との一致の判断を容易に行うことができ、これに伴い、目標点の誤認識を抑制し、より正確に目標点の位置を特定することが可能となる。
特に、複数の目標点が撮像範囲内に存在する場合でも、一の目標点を他の目標点と混同する事態を効果的に抑制し、より正確に目標点の位置を特定することが可能となる。
【発明を実施するための最良の形態】
【００１８】
（発明の実施形態の全体構成）
図１は本発明の実施形態たる物体位置認識装置としてのロボットシステム１００の全体構成図である。
上記ロボットシステム１００は、パレット１１上に目標物としてのワークＷが複数置かれた状態において、物体位置認識により一つのワークＷの位置及び姿勢を認識し、これを保持して目的位置に運搬するためのシステムである。
かかるロボットシステム１００は、撮像により撮像範囲内を細分化した点群についての画像データを取得する撮像手段としてのＣＣＤカメラ２０と、ＣＣＤカメラ２０の撮像により得られる画像データを解析する画像解析装置４０と、ワークＷに対する保持及び運搬作業を行うツールとしてのハンド３４とＣＣＤカメラ２０とを保有するロボット３０と、ＣＣＤカメラ２０の撮像及びロボット３０の動作の動作制御を行うロボット制御装置５０とを備えている。
以下、各部について個別に詳細に説明することとする。
【００１９】
（ロボット）
ロボットシステム１００のロボット３０について図１に基づいて説明する。
ロボット３０は、土台となるベース３１と、関節３３で連結された複数のアーム３２と、各関節３３ごとに設けられた駆動源としてのサーボモータ３５（図２参照）と、各サーボモータ３５の軸角度をそれぞれ検出するエンコーダ３６（図２参照）と、連結されたアーム３２の最先端部に設けられ、ワークＷを挟んで保持するツールとしてのハンド３４とを備えている。
上記各関節３３は、アーム３２の一端部を揺動可能として他端部を軸支する揺動関節と、アーム３２自身をその長手方向を中心に回転可能に軸支する回転関節とのいずれかから構成される。つまり、本実施形態におけるロボット３０はいわゆる多関節型ロボットに相当する。
【００２０】
また、ロボット３０は、六つの関節３３を具備しており（一部図示略）、各関節３３に連結された全アーム３２の最先端部（以下、単に「アーム先端部」という）に位置するハンド３４を任意の位置に位置決めし任意の姿勢を取らせることが可能となっている。
ハンド３４は、駆動源としてサーボモータ３５を備えており、これにより離接可能な二つの爪を備えている。このハンド３４は、一対の間でワークＷを狭持したり、ワークＷに設けられた穴に一対の爪を挿入して爪の間隔を広げることでワークＷを保持したりする。
また、ロボット３０は、アーム先端部にＣＣＤカメラ２０も保持しており、当該ＣＣＤカメラ２０を任意に位置決め可能とし、任意の方向を撮像することを可能としている。
【００２１】
（ロボット制御装置）
図２はロボット制御装置５０のブロック図である。
このロボット制御装置５０は、ロボット３０の動作制御を行う制御プログラムを含む各種のプログラムとワークＷの移動目的位置を示す動作データが格納されたＲＯＭ５２と、ＲＯＭ５２に格納された各種のプログラムを実行するＣＰＵ５１と、ＣＰＵ５１の処理により各種データを格納するワークエリアとなるＲＡＭ５３と、ＣＰＵ５１の実行する制御プログラムに従って決定されるロボット３０の各関節３３のサーボモータ３５のトルク値に応じたサーボモータ駆動電流を通電するサーボ制御回路５４と、各関節３３のエンコーダ出力をカウントするカウンタ５５と、前述の制御プログラムの処理により求められるロボット３０の制御に関する各種のデータが格納される記憶手段としてのメモリ５６と、ロボット３０の教示点、その他の各種の設定を入力するための例えばキーボード及びそのインターフェイスからなる入力手段５７と、画像解析装置４０からの解析結果及び動作指令を受信するための通信インターフェイス５８と、上記各構成の信号の送受可能に接続するバス５９とを備えている。
なお、上記カウンタ５５及びサーボ制御回路５４は、ロボット３０の各関節３３のサーボモータ３５ごとに個別に設けられているが図２では一つずつしか図示しておらず、それ以外のサーボモータ３５及びエンコーダ３６の図示を省略している。
【００２２】
上記ロボット制御装置５０は、ワークＷの位置認識の後に、ＣＰＵ５１が所定の処理プログラムを実行することにより、位置が認識されたワークの初期位置から登録された目標位置までアーム先端部の移動経路及び当該移動経路をアーム先端が移動するため各サーボモータの回転角度の算出を行い、算出結果を動作データとしてメモリ５６内に格納する。
また、ロボット制御装置５０は、ＣＰＵ５１が所定の制御プログラムを実行することにより、上記動作データに従ってロボット３０の各サーボモータ３５の制御を行い、ワークＷを運搬する動作制御を行う。
【００２３】
（ＣＣＤカメラ）
ＣＣＤカメラ２０は、撮像を行うためのＣＣＤ撮像素子と視線前方の光景をＣＣＤ撮像素子２１の光検出面に結像させる光学系（図示せず）とを備えている（図２参照）。
上記光学系は、視線前方の光景をＣＣＤ撮像素子２１の検出面のほぼ全体に結像させる。
ＣＣＤ撮像素子２１は、その検出面（結像が行われる面）に縦横それぞれ均等間隔に並んで設けられた無数の微細な光検出画素（フォトダイオード）を備えており、各画素は受光する光の輝度に応じた電圧をその並び順で出力する。画像解析装置４０は、ＣＣＤ撮像素子２１からの出力を受けて、各画素からの信号出力の順番から撮像範囲内（撮像して画像取り込みが行われる撮像対象となる範囲）の画像に応じた画像データを生成する。
即ち、ＣＣＤ撮像素子２１には縦方向（Ｙ方向とする）と横方向（Ｘ方向とする）とにそれぞれ規定数の画素が並んで設けられており、これらは決まった順番で出力を行うことから、各画素の出力を順番により特定することができる。このため、ＣＣＤ撮像素子２１の撮像範囲内に一部だけ輝度が異なる部分が存在する場合、異なる輝度値の出力を行う画素を特定することで、撮像範囲内においていずれの位置で特有の輝度となる部分が存在するかを識別することが可能となっている。
【００２４】
（画像解析装置）
図３は画像解析装置４０の制御系を示すブロック図である。
画像解析装置４０は、後述する各種の処理を行うＣＰＵ４１と、ＣＰＵ４１が実行する処理プログラムが格納されたＲＯＭ４２と、ＣＣＤカメラ２０からの画像信号を受信するためのカメラインターフェイス４４と、ＣＰＵ４１が実行する各種の処理における各種のデータを記憶するメモリ４５と、解析結果をロボット制御装置５０に出力するための通信インターフェイス４６と、ＣＰＵ４１による各種処理における所定の表示を行う表示モニタ４７との接続を行うモニタインターフェイス４８と、ＣＰＵ４１による各種処理における所定の入力を行う入力手段４９との接続を行う入力インターフェイス５０とを備えている。
【００２５】
画像解析装置４０のＲＯＭ４２には、ＣＣＤカメラ２０により撮像が行われたワークＷ上に設定された目標点について三次元のロボット座標系における位置座標を算出するための位置認識プログラムと、当該位置認識を行うためのＣＣＤカメラ２０の第一及び第二の撮像位置のロボット座標系における位置座標を算出するためのキャリブレーションプログラムとが主に格納されている。
【００２６】
（キャリブレーションプログラムによる処理）
図４はキャリブレーションプログラムにより画像解析装置４０のＣＰＵ４１が行う処理を示すフローチャート、図５はキャリブレーションにおけるＣＣＤカメラ２０と撮像対象となる仮目標位置との位置関係を示す説明図である。なお、図５では、ＣＣＤカメラ２０の結像面Ｋを概念的に図示しているものとする。
【００２７】
ワークＷの目標点の三次元の座標を求めるためには、少なくとも二点以上の撮像位置から撮像した目標点の画像データが必要であり、且つ、各撮像位置のロボット座標系上の位置座標が既知であることが要求される。従って、第一及び第二の撮像位置を決め、上記キャリブレーションプログラムに基づく処理により、そのロボット座標系の位置座標が求められる。
【００２８】
処理の開始前に、予めパレット１１上にキャリブレーション用の仮目標点Ｍを設置する。この仮目標点Ｍは、例えば、ホワイトボード上に付された黒点などのように、輝度の差から画像データ上で容易に識別可能な点であり、キャリブレーション作業の間、不動状態を維持することが可能なものであることが望ましい。また、仮目標点Ｍのロボット座標系の位置座標は未知であって良い。
【００２９】
まず、ＣＰＵ４１は、撮像位置の番号を示す変数ｎを０に設定する（ステップＳ１）。ちなみに、前述したように、本実施形態では、第一の撮像位置と第二の撮像位置とについて撮像が行われるので、後述するステップＳ９によりｎ＝２までカウントが行われる。
【００３０】
そして、ＣＰＵ４１は、ロボット制御装置５０を通じてロボット３０を制御し、仮目標位置Tから離れてパレット１１上を撮像可能な同一平面上の三点Ｐ０，Ｐ１，Ｐ２のそれぞれに順番にロボット先端を移動すると共に、各点Ｐ０，Ｐ１，Ｐ２においてＣＣＤカメラ２０の光軸を同一方向に向けた状態で仮目標点Ｍの撮像を行わせる（ステップＳ２）。
このとき、三点の内の一点を原点Ｐ０とし、Ｐ０を原点とするX−Y座標のＸ軸上の任意の点をＰ１、Ｙ軸上の任意の点をＰ２とする。
なお、原点Ｐ０及び他の二点Ｐ１，Ｐ２の位置についてはＰ０−Ｐ１とＰ０−Ｐ２とが直交する配置であれば任意の位置でよい。
【００３１】
次いで、ＣＰＵ４１は、上記各点Ｐ０，Ｐ１，Ｐ２での撮像により取得した各画像データから、仮目標点Ｍを撮像した各点Ｉ０，Ｉ１，Ｉ２のカメラ座標系における位置座標を算出する（ステップＳ３）。
カメラ座標系はＣＣＤカメラ２０の結像面上の直交二次元座標系であり、当該座標上で撮像された仮目標点Ｍがいずれに位置するかが算出される。撮像範囲内での仮目標点Ｍの抽出は、例えば、二値化処理等により輝度差から行われる。
【００３２】
次いで、ＣＰＵ４１は、三点Ｐ０，Ｐ１，Ｐ２におけるロボット座標系のＸ−Ｙ座標と各点Ｉ０，Ｉ１，Ｉ２のカメラ座標系における位置座標とからカメラ座標系平面からロボット座標系への変換式を算出する（ステップＳ４）。
かかる変換式は次式（１）で表すことができる。
【００３３】
【数１】
2007171018.tif 000003
【００３４】
変換式（１）において、Ｐはロボット座標系のＸ−Ｙ座標、Ｉはモニタ座標系の位置座標、θは座標空間の回転角度（ロボット座標Ｘ軸がカメラ座標軸に対して生じるずれ角度）、Ｋは座標空間のせん断（ロボット座標Ｙ軸がロボット座標Ｘ軸に直交する軸に対して生じるずれ角度）、Ａはアスペクト比（Ｘ軸方向のスケーリングとＹ軸方向のスケーリングの比）、Ｓは座標空間のスケーリング（Ｘ軸方向のスケーリング）、Ｔはモニタ座標空間からロボット座標空間への移動ベクトルである。
【００３５】
上記ロボット座標系のＸ−Ｙ座標Ｐは、撮像を行った三点Ｐ０，Ｐ１，Ｐ２におけるロボット３０の各サーボモータの動作量からロボット制御装置５０を通じて取得することができる。
カメラ座標系の位置座標Ｉは、各点Ｉ０，Ｉ１，Ｉ２の画像データから取得することができる。
アスペクト比Ａと座標空間のスケーリングＳは、ロボット座標系の各点の座標とカメラ座標系の各点間の座標とから周知方法により算出することができる。
さらに、移動ベクトルＴは、スケーリングＳと点Ｉ０のカメラ座標系の位置座標から周知方法により求めることができる。
さらに、回転角度θ及びせん断角度Ｋは、スケーリングＳと点Ｉ０，Ｉ１のカメラ座標系の位置座標から周知方法により求めることができる。
なお、上記変換式の算出は、三点Ｐ０，Ｐ１，Ｐ２からの撮像により行っているが、より多くのサンプル点で撮像を行い、最小二乗近似により求めるようにしても良い。
また、上記変換式の各パラメータの算出方法は、例えば、特開２００５−１８６１９３号公報記載の演算手法と同様の手法を用いても良い。
【００３６】
次いで、ＣＰＵ４１は、ロボット制御装置５０を通じてロボット３０を制御し、原点Ｐ０を通過するＺ軸（ロボット座標系のＸ−Ｙ平面に垂直な軸）上の二点Ｑ１，Ｑ２のそれぞれにＣＣＤカメラ２０を移動すると共に、各点Ｑ１，Ｑ２においてＣＣＤカメラ２０の光軸を同一方向に向けた状態で仮目標点Ｍの撮像を行わせる（ステップＳ５）。
【００３７】
次いで、ＣＰＵ４１は、上記各点Ｑ１，Ｑ２での撮像により取得した各画像データから、カメラ座標系における撮像された仮目標点Ｍの位置座標Ｊ１，Ｊ２を算出する（ステップＳ６）。
さらに、ＣＰＵ４１は、カメラ座標系における位置座標Ｊ１，Ｊ２を前述した変換式(1)により変換する。これにより、位置座標Ｊ１，Ｊ２がロボット座標系の点ＷＬＺ１と点ＷＬＺ２とに変換される（ステップＳ７）。
【００３８】
次いで、ＣＰＵ４１は、第一の撮像位置Ｐ０を原点とする三次元のロボット座標系（前述したＸＹＺ軸座標系）における仮目標点Ｍの位置座標を算出する（ステップＳ８）。
すなわち、上記処理では、ロボット３０によりＣＣＤカメラ２０をＺ座標上で移動させることにより仮目標点Ｍを計測するようにしたが、これは図６に示すようにロボット３０を静止させた状態で仮目標点Ｍがロボット座標系のＺ座標上を移動したことと同様に考えることができる。その場合、算出すべきＣＣＤカメラ２０のロボット座標系における位置座標である第一の撮像位置ＷＬＣは、直線ＷＬＺ１Ｑ１とＷＬＺ２Ｑ２との交点として求まることになる。
この場合、直線ＷＬＺ１Ｑ１およびＷＬＺ２Ｑ２がねじれの位置関係となることを考慮して、２つの直線が最接近する位置を求め、この位置を算出すべきＣＣＤカメラ２０の第一の撮像位置ＷＬＣとすることにする。
【００３９】
次いで、ＣＰＵ４１は、撮像位置の番号を示す変数ｎを１加算する（ステップＳ９）。
さらに、ＣＰＵ４１は、ｎが２に達したか否かを判定し、達していなければ、第二の撮像位置について上述したステップＳ２〜Ｓ９までの処理を第一の撮像位置の場合と同様に行う。
なお、第二の撮像位置については、第一の撮像位置における原点Ｐ０から既知の位置関係にある点を新たな原点とし、当該新たな原点に対して第二の撮像位置の位置座標を求めると共に、第一の撮像位置における原点Ｐ０を基準とした場合の第二の撮像位置ＷＲＣに変換する。これにより、第一の撮像位置と第二の撮像位置とについて原点を共通化したロボット座標系における位置座標を求めることができる。
【００４０】
そして、ステップＳ９においてｎ＝２となるので、これにより、三次元のロボット座標系における第一の撮像位置及び第二の撮像位置の位置座標が算出される。
かかる各撮像位置の位置座標及び各撮像位置における上記キャリブレーション処理におけるＣＣＤカメラ２０の光軸方向を再現するための各サーボモータ３５の回転角度がメモリ４５内に記録される。
【００４１】
（位置認識プログラムによる処理）
図７は位置認識プログラムにより画像解析装置４０のＣＰＵ４１が行う処理を示すフローチャートである。
位置認識の対象となるワークＷは、撮像による画像データから、例えば二値化処理により抽出可能な特徴的なポイントとなる目標点を複数備えている。具体的には、ワークＷは目標点となる孔やマーキング等が設けられているものとする。
本実施形態では、一例としてワークＷが所定の面に特定形状を描くように配置された複数のドット状のマーキングを備えているものとする。
【００４２】
まず、最初に、ＣＰＵ４１は、キャリブレーション処理により求められたメモリ４５内のデータにより、ロボット３０によりＣＣＤカメラ２０が第一の撮像位置において所定方向（キャリブレーション処理での方向）に光軸を向けるように、ロボット制御装置５０に対して動作指令を出力する。そして、かかる状態でＣＣＤカメラ２０が撮像を行うように制御を行う（ステップＳ２１）。
なお、このステップＳ２１の処理と後述するステップＳ３０の処理において第二の撮像位置での撮像の動作指令を行うことで、ＣＰＵ４１は、撮像制御手段として機能する。
【００４３】
次いで、ＣＰＵ４１は、第一の撮像位置における画像データに対して二値化処理を行い、撮像範囲内のワークＷの抽出を行う。画像処理装置４０はメモリ４５内に、一つのワークＷに付された複数のマーキングをあらゆる方向からとらえたパターンデータを保有しており、撮像範囲内でいずれかの方向のパターンに一致するターゲットＧ（一つのワークＷに付された複数のマーキング）を、例えば周知のパターンマッチングの手法により特定する（ステップＳ２２）。
そして、ＣＰＵ４１は、カメラ座標系におけるターゲットＧの各マーキングの位置座標を求め、当該位置座標をメモリ４５内に記録する。また、ターゲットＧのみを抽出し、当該ターゲットＧのみからなる画像データをメモリ４５内に記録する（ステップＳ２３）。
なお、このステップＳ２３の処理と後述するステップＳ３１の処理において第二の撮像位置での位置座標を求める処理を行うことで、ＣＰＵ４１は、撮像位置座標算出手段として機能する。
【００４４】
次いで、ロボット３０によりＣＣＤカメラ２０を第一の撮像位置から第二の撮像位置に移動させる動作が行われるが、その際、かかる移動の行程において、図８に示すように間欠的に所定回数のターゲットＧの撮像が行われる。かかる目標間欠撮像回数をｍ、間欠撮像回数のカウント値をＶとして以下の処理を説明する。
なお、上記間欠的な撮像を行うために、ＣＰＵ４１は、第一の撮像位置において所定方向にＣＣＤカメラ２０を向けた状態から第二の撮像位置において所定方向にＣＣＤカメラ２０を向けた状態への位置変化を実行するための各間接のサーボモータ３５の移動量をｍ＋１で均等に分割し、当該分割された角度単位ごとに各サーボモータ３５を駆動する。そして、かかる間欠的な位置変化を実現するための各サーボモータ３５の回転角度は、キャリブレーション処理により、第一、第二の撮像位置が算出された時点で算出され、位置認識処理が行われる時点では、メモリ４５内に既に格納されているものとする。
【００４５】
上述した間欠的な撮像を行うために、まず、ＣＰＵ４１は、撮像回数カウント値Ｖを０に設定する（ステップＳ２４）。
次いで、ＣＰＵ４１は、ロボット制御装置５０に対して間欠移動量に応じた動作指令を出力し、ＣＣＤカメラ２０はロボット３０により一回分の間欠移動が行われる（ステップＳ２５）。
そして、同位置でＣＣＤカメラ２０はターゲットＧの撮像を行う（ステップＳ２６）。
【００４６】
次いで、ＣＰＵ４１は、当該間欠移動の直前に取得されたターゲットＧの抽出画像とステップＳ２６の画像データに基づく画像とを周知のパターンマッチングの手法に従って照合し、ＣＣＤカメラ２０の間欠移動後のターゲットＧを特定する（ステップＳ２７）。
そして、画像データの中から特定されたターゲットのみを抽出し、当該ターゲットＧのみの抽出画像データとしてメモリ４５内に記憶する。
【００４７】
次いで、ＣＰＵ４１は、撮像回数カウント値Ｖに１を加算し（ステップＳ２８）、当該カウント値Ｖが目標間欠撮像回数ｍ＋１に達したか否かを判定する（ステップＳ２９）。
そして、達していない場合には、処理をステップＳ２５に戻し、次の間欠移動を行うと共にターゲットＧの追跡を行う。
なお、このステップＳ２５からＳ２９の処理を行うことで、ＣＰＵ４１は、追跡処理手段として機能する。
また、撮像回数カウント値Ｖが目標間欠撮像回数ｍ＋１に達している場合には、ＣＰＵ４１は、キャリブレーション処理により求められたメモリ４５内のデータにより、ロボット３０によりＣＣＤカメラ２０が第二の撮像位置において所定方向（キャリブレーション処理での方向）に光軸を向けるように、ロボット制御装置５０に対して動作指令を出力する。そして、かかる状態でＣＣＤカメラ２０が撮像を行うように制御を行う（ステップＳ３０）。
さらに、ＣＰＵ４１は、画像データから、ターゲットＧを、例えば周知のパターンマッチングの手法により特定すると共に、カメラ座標系におけるターゲットＧの各マーキングの位置座標を求め、当該位置座標をメモリ４５内に記録する（ステップＳ３１）。
【００４８】
次いで、ＣＰＵ４１は、ターゲットＧの各マーキングについて第一の撮像位置でのカメラ座標系の位置座標と第二の撮像位置でのカメラ座標系の位置座標とを前述した変換式によりそれぞれロボット座標系の位置座標に変換する（ステップＳ３２）。その結果、各マーキングごとに、第一の撮像位置と第二の撮像位置におけるロボット座標系の位置座標ＷＬＭ，ＷＲＭを得る。そして、各マーキングごとに、第一の撮像位置ＷＬＣとＷＬＭとを結ぶ直線、及び第二の撮像位置ＷＲＣとＷＲＭとを結ぶ直線について、これら２つの直線の交点を求めることでロボット座標系における各マーキングの位置座標が取得される。なお、この場合も二直線の最も近接する位置を近似的にマーキング位置としても良い。
なお、このステップＳ３２の処理を行うことで、ＣＰＵ４１は、三次元位置算出手段として機能する。
【００４９】
上記処理により、一つのワークＷに付された複数のマーキングの位置認識が行われるので、各マーキングの相対位置からワークＷの姿勢を特定することができる。これにより、ロボット制御装置５０では、ロボット３０のハンド３４をいかなる位置でいかなる姿勢とすればワークＷの保持が可能かを求めることができ、これに従い、ロボットの制御を行うと共に目標位置に搬送する。
【００５０】
（ロボットシステムの効果）
以上のように、ロボットシステム１００では、ＣＣＤカメラ２０がロボット３０により第一と第二の撮像位置に運ばれるので、それぞれの撮像位置ごとに配置されたＣＣＤカメラを不要とし、ＣＣＤカメラの個体数を低減し、コスト低減及び生産性の向上を図ることが可能となる。また、ロボット３０のアーム先端部に離れて配置されたＣＣＤカメラを設けることを不要とするので、ロボット３０のアーム先端部を小型化し、狭い場所でもロボット３０により作業を行うことが可能となる。
さらに、画像処理装置４０は、ターゲットＧのマーキングの位置認識のために、第一の撮像位置から第二の撮像位置にＣＣＤカメラ２０が移動を行う間、間欠的にターゲットＧを撮像し追跡するので、第一の撮像位置での撮像画像内のターゲットＧと第二の撮像位置での撮像画像内のターゲットＧとの一致の判断を容易に行うことができ、これに伴い、ターゲットＧの誤認識を抑制し、より正確に各マーキングの位置を特定することが可能となる。従って、ワークＷに対する作業を正確に行うことが可能となる。
また、複数のワークＷが撮像範囲内に存在する場合でも、一のターゲットＧを他のターゲットＧと混同する事態を効果的に抑制し、より正確に目標点の位置を特定することが可能となる。
【００５１】
（その他）
なお、ワークＷの位置認識のために第一の撮像位置と第二の撮像位置の二つの位置で撮像を行っているが、より多くの位置で撮像を行っても良いことは言うまでもない。その場合、取得されるデータは最小二乗近似により求めるようにしてもよい。
また、第一の撮像位置と第二の撮像位置との間で行われる複数回の撮像は、連続的に行われても良い。つまり、第一の撮像位置から第二の撮像位置へのＣＣＤカメラ２０の移動を切れ目なく定速で行い、その間撮像も継続的に行っても良い。その場合、例えば、所定期間ごとに画像データをサンプリングし、前後する画像データでパターンマッチングによりターゲットＧの追跡を行うことが望ましい。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態たるロボットシステムの全体構成図である。
【図２】図１に開示したロボット制御装置の制御系を示すブロック図である。
【図３】図１に開示した画像解析装置の制御系を示すブロック図である。
【図４】キャリブレーションプログラムにより画像解析装置が行う処理を示すフローチャートである。
【図５】キャリブレーションにおけるＣＣＤカメラと撮像対象となる仮目標位置との位置関係を示す説明図である。
【図６】ロボット座標の算出理論について示す説明図である。
【図７】位置認識プログラムにより画像解析装置が行う処理を示すフローチャートである。
【図８】画像解析装置が行う追跡処理の概念説明図である。
【符号の説明】
【００５３】
２０  ＣＣＤカメラ（撮像手段）
３０  ロボット
３５  サーボモータ
４０  画像解析装置
４１  ＣＰＵ
４２  ＲＯＭ
４５  メモリ（マスターデータ記憶手段）
５０  ロボット制御装置
１００  ロボットシステム（物体位置認識装置）
【図１】
2007171018.tif 000004
【図２】
2007171018.tif 000005
【図３】
2007171018.tif 000006
【図４】
2007171018.tif 000007
【図５】
2007171018.tif 000008
【図６】
2007171018.tif 000009
【図７】
2007171018.tif 000010
【図８】
2007171018.tif 000011