(57)【要約】  作業エリア（３８）に供給された高さ寸法が既知のワーク（３０）を所定の高さ位置から２次元のカメラ（４０）で撮像し、その画像を処理して当該ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する。このビジョン座標系の座標値をロボット（１１）の３次元座標系である世界座標系の座標値に変換し、変換したワークの位置に基づいてロボットのアームの目標位置を世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する。この際、カメラで撮像した画像内のワークのサイズが当該ワークの高さ寸法に応じて変化することを考慮して、画像処理でワークの位置として認識したビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を世界座標系の座標値に変換する。
2020121399.tif 000002
【特許請求の範囲】
【請求項１】
高さ寸法が既知のワークを一定の高さ位置の作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記作業エリアに供給されたワークを所定の高さ位置から撮像する２次元のカメラと、
前記２次元のカメラで撮像した２次元の画像を処理して前記ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する画像処理部と、
前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を前記ロボットの３次元座標系である世界座標系の座標値に変換する座標変換部と、
前記座標変換部で前記世界座標系の座標値に変換した前記ワークの位置に基づいて前記ロボットのアームの目標位置を前記世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する制御部とを備え、
前記座標変換部は、前記２次元のカメラで撮像した画像内の前記ワークのサイズが当該ワークの高さ寸法に応じて変化することを考慮して、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を前記世界座標系の座標値に変換する、ロボット制御システム。
【請求項２】
前記画像処理部は、前記ビジョン座標系で前記ワークの位置の座標値をピクセル単位で認識し、
前記座標変換部は、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正する際に、前記ビジョン座標系のピクセル単位の座標値を前記世界座標系の座標値と同じ長さの単位の座標値に変換する処理に用いる分解能（１ピクセル当たりの長さ）を前記ワークの高さ寸法に応じて補正し、補正後の分解能を用いて前記ビジョン座標系のピクセル単位の座標値を前記世界座標系の座標値と同じ長さの単位の座標値に変換する、請求項１に記載のロボット制御システム。
【請求項３】
前記座標変換部は、前記作業エリアのワーク載置面の高さ位置を基準高さ位置として当該基準高さ位置における分解能を基準分解能Ｒo として算出すると共に、当該基準高さ位置から所定高さＴcpだけ高い位置における分解能Ｒ1 を算出して、下記の（１）式を用いて単位高さ寸法当たりの分解能変化量を単位分解能Ｒuni として算出し、下記の（２）式を用いて前記基準分解能Ｒo から前記単位分解能Ｒuni と前記ワークの高さ寸法Ｈとの積算値を引き算することで、前記補正後の分解能Ｒｈを求める、請求項２に記載のロボット制御システム。
Ｒuni ＝（Ｒo −Ｒ1 ）／Ｔcp  …（１）
Ｒh ＝Ｒo −Ｒuni ×Ｈ        …（２）
【請求項４】
高さ寸法が既知のワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記作業エリアに供給されたワークを所定の高さ位置から撮像する２次元のカメラと、
前記２次元のカメラで撮像した２次元の画像を処理して前記ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する画像処理部と、
前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を前記ロボットの３次元座標系である世界座標系の座標値に変換する座標変換部と、
前記座標変換部で前記世界座標系の座標値に変換した前記ワークの位置に基づいて前記ロボットのアームの目標位置を前記世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する制御部とを備え、
前記座標変換部は、前記２次元のカメラで撮像した画像内の前記ワークのサイズが当該ワークの高さ寸法及び前記作業エリアのワーク載置面の高さ位置に応じて変化することを考慮して、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法及び前記作業エリアのワーク載置面の高さ位置に応じて補正し、補正後のビジョン座標系の座標値を前記世界座標系の座標値に変換する、ロボット制御システム。
【請求項５】
前記画像処理部は、前記ビジョン座標系で前記ワークの位置の座標値をピクセル単位で認識し、
前記座標変換部は、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法及び前記作業エリアのワーク載置面の高さ位置に応じて補正する際に、前記ビジョン座標系のピクセル単位の座標値を前記世界座標系の座標値と同じ長さの単位の座標値に変換する処理に用いる分解能（１ピクセル当たりの長さ）を前記ワークの高さ寸法及び前記作業エリアのワーク載置面の高さ位置に応じて補正し、補正後の分解能を用いて前記ビジョン座標系のピクセル単位の座標値を前記世界座標系の座標値と同じ長さの単位の座標値に変換する、請求項４に記載のロボット制御システム。
【請求項６】
前記座標変換部は、前記２次元のカメラで前記作業エリア上のワークを撮像可能な高さ位置の範囲内で設定した基準高さ位置における分解能を基準分解能Ｒo として算出すると共に、当該基準高さ位置から所定高さＴcpだけ高い位置における分解能Ｒ1 を算出して、下記の（３）式を用いて単位高さ寸法当たりの分解能変化量を単位分解能Ｒuni として算出し、下記の（４）式を用いて前記基準高さ位置から前記作業エリアのワーク載置面の高さ位置までの高さ寸法ΔＷＤと前記ワークの高さ寸法Ｈとの和に前記単位分解能Ｒuni を積算して求めた値を前記基準分解能Ｒo から引き算することで、前記補正後の分解能Ｒｈを求める、請求項５に記載のロボット制御システム。
Ｒuni ＝（Ｒo −Ｒ1 ）／Ｔcp        …（３）
Ｒh ＝Ｒo −Ｒuni ×（Ｈ＋ΔＷＤ）  …（４）
【請求項７】
前記２次元のカメラは、前記ロボットのアーム先端部に取り付けられ、
前記制御部は、前記作業エリアに供給されたワークを前記２次元のカメラで撮像する際に当該２次元のカメラの高さ位置が前記世界座標系の座標値で前記所定の高さ位置となるように前記ロボットのアームの位置を制御する、請求項１乃至６のいずれかに記載のロボット制御システム。
【請求項８】
前記２次元のカメラは、前記世界座標系の座標値で前記所定の高さ位置となる場所に固定されている、請求項１乃至６のいずれかに記載のロボット制御システム。
【請求項９】
前記画像処理部は、少なくとも前記ワークの高さ寸法を含む情報や画像処理パラメータをＧＵＩ（グラフィカル・ユーザー・インターフェース）上から登録可能に構成されている、請求項１乃至８のいずれかに記載のロボット制御システム。
【請求項１０】
前記画像処理部は、前記ワークの姿勢及び複数のワーク同士の重なりを認識する機能を有する、請求項１乃至９のいずれかに記載のロボット制御システム。
【請求項１１】
高さ寸法が既知のワークを一定の高さ位置の作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記作業エリアに供給されたワークを所定の高さ位置から撮像して２次元の画像を取得する２次元のカメラとを備え、
前記２次元のカメラで撮像した２次元の画像を処理して前記ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する画像処理工程と、
前記画像処理工程の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を前記ロボットの３次元座標系である世界座標系の座標値に変換する座標変換工程と、
前記座標変換工程で前記世界座標系の座標値に変換した前記ワークの位置に基づいて前記ロボットのアームの目標位置を前記世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する制御工程とを含むロボット制御方法であって、
前記座標変換工程において、前記２次元のカメラで撮像した画像内の前記ワークのサイズが当該ワークの高さ寸法に応じて変化することを考慮して、前記画像処理工程の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を前記世界座標系の座標値に変換する、ロボット制御方法。
【請求項１２】
高さ寸法が既知のワークを作業エリアに供給する供給装置と、
前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、
前記作業エリアに供給されたワークを所定の高さ位置から撮像して２次元の画像を取得する２次元のカメラとを備え、
前記２次元のカメラで撮像した２次元の画像を処理して前記ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する画像処理工程と、
前記画像処理工程の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を前記ロボットの３次元座標系である世界座標系の座標値に変換する座標変換工程と、
前記座標変換工程で前記世界座標系の座標値に変換した前記ワークの位置に基づいて前記ロボットのアームの目標位置を前記世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する制御工程とを含むロボット制御方法であって、
前記座標変換工程において、前記２次元のカメラで撮像した画像内の前記ワークのサイズが当該ワークの高さ寸法及び前記作業エリアの高さ位置に応じて変化することを考慮して、前記画像処理工程の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法及び前記作業エリアの高さ位置に応じて補正し、補正後のビジョン座標系の座標値を前記世界座標系の座標値に変換する、ロボット制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、供給装置によって供給されるワークを上方から撮像するカメラを備えたロボット制御システム及びロボット制御方法に関する技術を開示したものである。
【背景技術】
【０００２】
近年、ロボット制御システムにおいては、特許文献１（特開２０１５−１８２１４４号公報）に記載されているように、ロボットのアーム可動範囲の上方に位置する固定構造物にカメラを下向きに固定し、ロボットのアーム先端のハンドに校正用のマーカー（校正用基準物）を把持させて、カメラで校正用のマーカーを撮像し、その撮像画像を処理した結果に基づいてロボット座標系とビジョン座標系（カメラの座標系）との対応関係を校正するようにしたものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１８２１４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ワークの把持、搬送、作業を目的とするロボット制御システムにおいては、特に１００μｍ単位の高精度な位置決めが求められる場合がある。このような用途においては、ロボットのアーム先端部に取り付けたカメラ又は上記特許文献１のようにロボットのアーム可動範囲の上方に固定配置されたカメラを使用して、ワークの位置座標や作業対象部の位置座標を検出し、ワークの把持位置や作業対象部の位置を自動的に補正するシステムが使用される。【０００５】
この様なカメラにおいては、価格、サイズ、重量等の都合から流通性が高いＣＣＴＶレンズが使用されることが多く、撮像したワーク画像は視差によって中央部と周辺部とで見え方や形状が異なる場合がある。この視差は立体的な形状で、高さの大きなワークでより顕著となり、対象ワークの検出率及び位置座標の検出精度は視差の影響が大きくなる画像周辺に向かって悪化する傾向がある。【０００６】
特に、ロボットのアーム可動範囲の上方に固定配置されたカメラにおいては、視野がより広く、大きなワークを撮像できるため、上述した位置座標の検出精度の悪化が、ロボットの作業精度を悪化させる要因となり、システムとして求められる作業精度の確保が困難になることがある。とりわけ、ワーク供給装置が複数設置されている場合やワークの装着時も画像処理を行う場合など、画像処理の対象領域が複数あり、それぞれの高さが一致していない場合には更に精度確保が難しい。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、高さ寸法が既知のワークを一定の高さ位置の作業エリアに供給する供給装置と、前記作業エリアに供給されたワークに対して所定の作業を行うロボットと、前記作業エリアに供給されたワークを所定の高さ位置から撮像する２次元のカメラと、前記カメラで撮像した２次元の画像を処理して前記ワークの位置を当該画像の基準点を原点とする２次元座標系（以下「ビジョン座標系」という）の座標値で認識する画像処理部と、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を前記ロボットの３次元座標系である世界座標系の座標値に変換する座標変換部と、前記座標変換部で前記世界座標系の座標値に変換した前記ワークの位置に基づいて前記ロボットのアームの目標位置を前記世界座標系の座標値で設定して当該アームの位置を前記世界座標系の座標値で制御する制御部とを備え、前記座標変換部は、前記カメラで撮像した画像内の前記ワークのサイズが当該ワークの高さ寸法に応じて変化することを考慮して、前記画像処理部の画像処理で前記ワークの位置として認識した前記ビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を前記世界座標系の座標値に変換するものである。【０００８】
この構成では、ロボットの作業対象となるワークを２次元のカメラで撮像するが、２次元のカメラで撮像した２次元の画像を処理しても、ワークの高さ寸法等の三次元形状は分からない。一般に、生産工場で使用するロボットは、供給装置によって供給される多数の同一形状のワークを取り扱うため、ワークの高さ寸法等の三次元形状は既知のデータとして取り扱うことが可能である。但し、２次元のカメラで撮像した画像内のワークのサイズは、２次元のカメラと当該ワークの上端面との間の距離（ワーキングディスタンス）に応じて変化するため、当該ワークの高さ寸法に応じて画像内のワークのサイズが変化する。例えば、ワークの高さ寸法が高くなるほど、当該ワークの上端面とカメラとの間の距離が短くなって画像内のワークのサイズが大きくなる。【０００９】
このような特性を考慮して、画像処理部の画像処理でワークの位置として認識した２次元のビジョン座標系の座標値を当該ワークの高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を、ロボットのアームの位置を制御する３次元の世界座標系の座標値に変換するものである。このようにすれば、２次元のカメラで撮像した画像を処理してワークの位置として認識した２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換することができ、ビジョン座標系の座標値を求める画像認識システムを１台の２次元のカメラで安価に構成できると共に、画像処理の演算負荷を軽減できる。【００１０】
この場合、ワークが供給される作業エリアの高さ位置（Ｚ座標値）は、常に一定の高さ位置であれば、既知のデータ（作業エリアのＺ座標値が既知）として取り扱うことができるため、この作業エリアの高さ位置にワークの既知の高さ寸法を加算することで、当該ワークの上端面の高さ位置も既知のデータとして取り扱うことができる。これにより、２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換することができる。【００１１】
一方、例えば、ワークが供給される作業エリアが複数箇所にあって各作業エリアの高さ位置が作業エリア毎に少しずつ異なる場合には、所定の高さ位置から２次元のカメラで撮像した画像内のワークのサイズが当該ワークの高さ寸法及び作業エリアの高さ位置に応じて変化する。この場合には、画像処理部の画像処理でワークの位置として認識したビジョン座標系の座標値を当該ワークの高さ寸法及び前記作業エリアの高さ位置に応じて補正し、補正後のビジョン座標系の座標値を世界座標系の座標値に変換するようにすれば良い。
【図面の簡単な説明】
【００１２】
【図１】図１は実施例１のロボット制御システムの外観を示す正面図である。
【図２】図２は実施例１の撮像時のハンドカメラの高さ位置と作業エリアのワーク載置面の高さ位置とワークの高さ寸法との関係を説明する図である。
【図３】図３は実施例１のロボット制御システムの電気的構成を示すブロック図である。
【図４】図４はＧＵＩの表示例を示す図である。
【図５】図５はピッキング不可条件「重なり」の一例を示す図である。
【図６】図６はピッキング不可条件「隣接」の一例を示す図である。
【図７】図６はピッキング不可条件「異常姿勢」の一例を示す図である。
【図８】図８は実施例２のロボット制御システムの外観を示す正面図である。
【図９】図９は実施例３のロボット制御システムの主要部の構成を示す図である。
【発明を実施するための形態】
【００１３】
以下、本明細書に開示した３つの実施例１〜３を説明する。
【実施例１】
【００１４】
実施例１を図１乃至図７に基づいて説明する。
まず、図１に基づいてロボット１１の構成を説明する。【００１５】
ロボット１１は、例えば５軸垂直多関節ロボットであり、工場フロア１２に設置された固定ベース１３と、この固定ベース１３上に第１関節軸１４（Ｊ１）を中心に回転可能に設けられた第１アーム１５と、この第１アーム１５の先端に第２関節軸１６（Ｊ２）によって旋回可能に設けられた第２アーム１７と、この第２アーム１７の先端に第３関節軸１８（Ｊ３）によって旋回可能に設けられた第３アーム１９と、この第３アーム１９の先端に第４関節軸２０（Ｊ４）によって旋回可能に設けられた手首部２１と、この手首部２１に第５関節軸２２（Ｊ５）を中心に回転可能且つ交換可能に取り付けられたエンドエフェクタ２３とから構成されている。これにより、手首部２１に取り付けたエンドエフェクタ２３は、その手首部２１の関節軸である第４関節軸２０によって旋回動作するようになっている。【００１６】
この場合、エンドエフェクタ２３は、例えば、吸着ノズル、ハンド、グリッパ、溶接機等のいずれであっても良い。ロボット１１の第１〜第５の各関節軸１４，１６，１８，２０，２２は、それぞれサーボモータ２５〜２９（図３参照）により駆動されるようになっている。図３に示すように、各サーボモータ２５〜２９には、それぞれ回転角を検出するエンコーダ３１〜３５が設けられ、各エンコーダ３１〜３５で検出した回転角の情報がサーボアンプ３６を経由して制御部３７にフィードバックされる。これにより、制御部３７は、各エンコーダ３１〜３５で検出した各サーボモータ２５〜２９の回転角が各々の目標回転角と一致するようにサーボアンプ３６を介して各サーボモータ２５〜２９をフィードバック制御することで、ロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を各々の目標位置にフィードバック制御する。【００１７】
図３の構成例では、サーボアンプ３６は、複数のサーボモータ２５〜２９をフィードバック制御する多軸アンプであるが、サーボモータ２５〜２９を１台ずつ別々のサーボアンプでフィードバック制御するようにしても良い。【００１８】
ロボット１１のアーム可動領域（手首部２１先端側のエンドエフェクタ２３が移動可能な領域）の所定位置には、作業対象となるワーク３０を一定の高さ位置の作業エリア３８に供給する供給装置３９が設置されている。この供給装置３９は、コンベアで構成したものであっても良いし、振動式パーツフィーダ等、どの様な構成のパーツフィーダを用いても良く、要は、作業エリア３８の高さ位置が既知の一定の高さ位置であれば良い。【００１９】
作業エリア３８の上方に設置された固定構造物５０（例えばロボット防護柵の天井）には、２次元のカメラである固定カメラ５１が鉛直下向きに取り付けられ、この固定カメラ５１で作業エリア３８上のワーク３０を撮像するようになっている。【００２０】
以上のように構成したロボット１１の動作を制御するロボット制御ユニット４２は、図３に示すように、パラメータ入力部４６、パラメータ保存部４７、画像処理部４３、座標変換部４４、制御部３７及びサーボアンプ３６等を備えた構成となっている。【００２１】
パラメータ入力部４６は、作業者が入力装置４５を操作して入力した画像処理のパラメータ値を内部処理に適した数値情報に変換する。入力装置４５は、マウス、キーボード等であり、ＬＣＤ上のタッチパネルでも良い。作業者は、ロボット制御ユニット４２の周辺機器であるＬＣＤモニター等の表示装置４８に表示されたＧＵＩ（グラフィカル・ユーザー・インターフェース）の指示に従って入力装置４５を操作してワーク３０の高さ寸法等のパラメータ値をパラメータ入力部４６に入力する。ロボット制御ユニット４２の周辺機器である表示装置４８には、図４に示すように、作業者が入力すべき画像処理のパラメータ値の入力欄がＧＵＩで表示される。【００２２】
パラメータ入力部４６で数値情報に変換されたパラメータ値は、ＲＯＭ又はＨＤＤ等のストレージからなるパラメータ保存部４７に保存される。各パラメータ値は、作業対象のワーク３０の種類毎に固有の値としてパラメータ保存部４７に保存される。これにより、同じ種類のワーク３０を他の供給装置や他のロボットで使用する場合も、同じパラメータ値を使用して画像処理を行うことができるため、環境に依存せずに常に同様の精度を保つことができる。【００２３】
画像処理部４３は、事前に登録されたワークの輪郭形状をテンプレートとしてパターンマッチングを行い、把持対象のワーク３０の位置座標と角度を検出する機能を持つ。また、エンドエフェクタ２３は把持可能なワーク３０の形状（大きさ、角度、姿勢）が限定されており、その把持可能なワーク３０の姿勢におけるワーク３０の高さ寸法が既知であることのシステム要件から、画像処理部４３は、把持対象のワーク３０が把持可能な条件下にあるかを認識する機能を持つ。ここで、把持可能な条件とは、次の３つ条件（１）〜（３）を満たすことである。【００２４】
［把持可能な条件（１）］
把持可能な条件（１）は図５に示すようなワークＡ同士の重なりが無いことである。図５に示すワークＡはワッシャである。ワークＡが重なっていると、画像処理で認識するワークＡの高さが既知の値から変動するため、エンドエフェクタ２３で把持できない姿勢となるためである。【００２５】
［把持可能な条件（２）］
把持可能な条件（２）は図６に示すようなワークＢ同士の隣接が無いことである。図６に示すワークＢはねじである。ワークＢが隣接していると、エンドエフェクタ２３が隣接する把持対象外のワークＢと干渉するためである。【００２６】
［把持可能な条件（３）］
把持可能な条件（３）は図７に示すようなワークＢが異常な姿勢になっていないことである。図７に示すワークＢはねじである。ワークＢが異常な姿勢になると、画像処理で認識するワークＢの高さが既知の値から変動するため、エンドエフェクタ２３で把持できない姿勢となるためである。【００２７】
画像処理部４３は、固定カメラ５１で撮像した２次元の画像を処理して作業エリア３８上のワーク３０の位置を当該画像の基準点（例えば画像の中心）を原点とする２次元の直交座標系（以下「ビジョン座標系」という）の座標値で認識する（画像処理工程）。このビジョン座標系の座標軸は、画像上で直交するＸv 軸とＹv 軸である。作業エリア３８上のワーク３０を撮像する固定カメラ５１は、光軸を鉛直下向きに向けて撮像するため、撮像した画像は水平面の画像となり、Ｘv 軸とＹv 軸は水平面上の直交座標軸となる。画像処理部４３は、画像処理によってワーク３０の位置をビジョン座標系でピクセル単位の座標値で認識する。【００２８】
一方、座標変換部４４は、画像処理部４３の画像処理でワーク３０の位置として認識した２次元のビジョン座標系の座標値を、ロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を制御するための世界座標系の座標値に変換する（座標変換工程）。この世界座標系は、基準点を原点とする３次元の直交座標系であり、世界座標系の座標軸は、水平面上の直交座標軸（Ｘ軸とＹ軸）と鉛直上向きの座標軸（Ｚ軸）である。この世界座標系の座標値の単位は、長さの単位（例えばμｍ単位）である。この世界座標系の原点（基準点）は、例えば、ロボット１１のアーム可動領域（手首部２１先端側のエンドエフェクタ２３が移動可能な領域）の中心である。【００２９】
制御部３７は、座標変換部４４で３次元の世界座標系の座標値に変換したワーク３０の位置に基づいてロボット１１の各アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の目標位置を世界座標系の座標値で設定して、当該アーム１５，１７，１９と手首部２１とエンドエフェクタ２３の位置を世界座標系の座標値で制御する（制御工程）。【００３０】
本実施例１では、ロボット１１の作業対象となる作業エリア３８上のワーク３０を２次元の固定カメラ５１で撮像するが、この固定カメラ５１で撮像した２次元の画像を処理しても、ワーク３０の高さ寸法等の三次元形状は分からない。一般に、生産工場で使用するロボット１１は、供給装置３９によって供給される多数の同一形状のワーク３０を取り扱うため、ワーク３０の高さ寸法等の三次元形状は既知のデータとして取り扱うことが可能である。但し、固定カメラ５１で撮像した画像内のワーク３０のサイズは、固定カメラ５１と当該ワーク３０の上端面との間の距離（ワーキングディスタンス）に応じて変化するため、当該ワーク３０の高さ寸法に応じて画像内のワーク３０のサイズが変化する。例えば、ワーク３０の高さ寸法が高くなるほど、当該ワーク３０の上端面と固定カメラ５１との間の距離が短くなって画像内のワーク３０のサイズが大きくなる。【００３１】
このような特性を考慮して、本実施例１では、座標変換部４４は、画像処理部４３の画像処理でワーク３０の位置として認識した２次元のビジョン座標系の座標値を当該ワーク３０の高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を、ロボット１１のアーム位置を制御する３次元の世界座標系の座標値に変換するようにしている（座標変換工程）。以下、ビジョン座標系の座標値をワーク３０の高さ寸法に応じて補正する処理について詳しく説明する。【００３２】
画像処理部４３は、ビジョン座標系で作業エリア３８上のワーク３０の位置の座標値（Ｘv ，Ｙv ）をピクセル単位で認識するのに対して、世界座標系の座標値（Ｘ，Ｙ，Ｚ）の単位は、長さの単位（例えば［μｍ］の単位）である。このため、ビジョン座標系のピクセル単位の座標値を世界座標系の座標値と同じ長さの単位（例えば［μｍ］の単位）の座標値に変換する必要がある。【００３３】
そこで、本実施例１では、ビジョン座標系のピクセル単位の座標値を世界座標系の座標値と同じ長さの単位の座標値に変換する処理に用いる分解能をワーク３０の高さ寸法Ｈに応じて補正し、補正後の分解能Ｒｈを用いてビジョン座標系のピクセル単位の座標値を世界座標系の座標値と同じ長さの単位の座標値に変換する。この場合、ワーク３０の高さ寸法Ｈは、固定カメラ５１のレンズ５２の被写界深度の範囲内である必要がある。ここで、分解能は１ピクセル当たりの長さであり、例えば、［μｍ／ピクセル］の単位で表される。具体的には、分解能は、固定カメラ５１の視野／画素数で算出することができる。固定カメラ５１の画素数は固定値であるが、視野（画像に写る領域の実際の長さ）は固定カメラ５１のレンズ５２と撮像対象のワーク３０の上端面との間の距離であるワーキングディスタンスＷＤに比例して変化するため、分解能もワーキングディスタンスＷＤに比例して変化する。【００３４】
本実施例１では、図２に示すように、作業エリア３８のワーク載置面の高さ位置を基準高さ位置として当該基準高さ位置における分解能を基準分解能Ｒo として算出する。換言すれば、この基準高さ位置と固定カメラ５１のレンズ５２との間の距離を基準ワーキングディスタンスＷＤstd として当該基準ワーキングディスタンスＷＤstd における分解能を基準分解能Ｒo として算出する。この基準ワーキングディスタンスＷＤstd は、固定カメラ５１で作業エリア３８上のワーク３０を撮像可能な範囲内で事前に決められた一定の値である。【００３５】
一方、制御部３７は、図２に示すように、基準高さ位置（作業エリア３８のワーク載置面の高さ位置）から所定高さＴcpだけ高い位置における分解能Ｒ1 を算出して、次の（１）式を用いて単位高さ寸法当たりの分解能変化量を単位分解能Ｒuni として算出する。
Ｒuni ＝（Ｒo −Ｒ1 ）／Ｔcp    …（１）【００３６】
ここで、単位分解能Ｒuni を例えば１ｍｍ当たりの分解能変化量とする場合には、所定高さＴcpの単位も［ｍｍ］の単位として、両者の単位を一致させる。【００３７】
更に、次の（２）式を用いて、基準分解能Ｒo から単位分解能Ｒuni とワーク３０の高さ寸法Ｈとの積算値を引き算することで、補正後の分解能Ｒｈを求める。
Ｒh ＝Ｒo −Ｒuni ×Ｈ    …（２）【００３８】
この補正後の分解能Ｒｈを次の（３）式と（４）式に代入して計算することで、ビジョン座標系のピクセル単位の座標値（Ｘv ，Ｙv ）を世界座標系の座標値と同じ長さの単位の座標値（Ｘ，Ｙ）に変換する。【００３９】
Ｘ＝Ｘv ×Ｒh     …（３）
Ｙ＝Ｙv ×Ｒh     …（４）
この２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換する。【００４０】
本実施例１では、作業エリア３８の高さ位置（Ｚ座標値）は、常に一定の高さ位置であるため、既知のデータ（作業エリア３８のＺ座標値が既知）として取り扱うことができる。更に、この作業エリア３８の高さ位置にワーク３０の既知の高さ寸法Ｈを加算することで、当該ワーク３０の上端面の高さ位置も既知のデータとして取り扱うことができる。これにより、２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換することができる。【００４１】
前述したように、分解能はワーキングディスタンスＷＤに比例して変化するが、その理由を以下に詳しく説明する。【００４２】
分解能は、画像中の１ピクセル当たりの大きさを示すもので、以下の（５）式で算出される。
分解能＝視野／画素数    …（５）【００４３】
また、視野は、ワーキングディスタンスＷＤが決まっている場合、以下の（６）式で導出される。
視野＝（Ｈ／焦点距離）×ＷＤ    …（６）
ここで、Ｈは固定カメラ５１のイメージセンサのサイズである。【００４４】
上記（６）式を（５）式に代入して変形すると、次（７）式で分解能が求められる。
分解能＝｛（Ｈ／焦点距離）×ＷＤ｝／画素数
＝｛（Ｈ／焦点距離）／画素数｝×ＷＤ
＝α×ＷＤ                ……（７）【００４５】
ここで、αは、ワーキングディスタンスＷＤの単位長さ当たりの分解能（単位分解能）あり、α＝（Ｈ／焦点距離）／画素数で求められる。この単位分解能αは、固定カメラ５１のイメージセンサの仕様（画素数、ユニットサイズ）とレンズ５２の焦点距離と倍率とで決まる定数である。【００４６】
従って、上記（７）式から明らかなように、分解能はワーキングディスタンスＷＤに比例する。【００４７】
以上説明した本実施例１によれば、画像処理部４３の画像処理で作業エリア３８上のワーク３０の位置として認識した２次元のビジョン座標系の座標値を当該ワーク３０の高さ寸法に応じて補正し、補正後のビジョン座標系の座標値を、ロボット１１のアーム位置を制御する３次元の世界座標系の座標値に変換するようにしたので、２次元の固定カメラ５１で撮像した画像を処理してワーク３０の位置として認識した２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換することができる。これにより、ビジョン座標系の座標値を求める画像認識システムを１台の２次元の固定カメラ５１で安価に構成することができ、低コスト化の要求を満たすことができる。しかも、２次元の画像処理であるため、従来の３次元の画像処理と比べて、画像処理の演算負荷を軽減でき、画像処理の高速化の要求に低コストで対応することができる。【００４８】
更に、本実施例１では、作業エリア３８上のワーク３０を固定カメラ５１で撮像するため、生産中にロボット１１で固定カメラ５１の位置を移動させる必要はなく、その分、ワーク３０の撮像に要する時間を短縮できて、生産性を向上できると共に、ロボット１１の制御も簡単になる。
【実施例２】
【００４９】
次に、図８を用いて実施例２を説明する。但し、前記実施例１と実質的に同一の部分については同一符号を付して説明を省略又は簡略化し、主として異なる部分について説明する。【００５０】
前記実施例１では、作業エリア３８の上方に設置された固定構造物５０（例えばロボット防護柵の天井）に鉛直下向きに取り付けられた固定カメラ５１を、作業エリア３８上のワーク３０を撮像する２次元のカメラとして使用したが、図８に示す実施例２では、作業エリア３８上のワーク３０を撮像する２次元のカメラとして、ロボット１１の手首部２１に取り付けたハンドカメラ４０を使用するようにしている。【００５１】
本実施例２では、ロボット１１の稼働中（生産中）にハンドカメラ４０で作業エリア３８上のワーク３０を撮像して当該ワーク３０の位置をビジョン座標系の座標値で認識する場合には、ハンドカメラ４０を鉛直下方に向けてハンドカメラ４０の視野内に作業エリア３８上のワーク３０を収めると共に、ハンドカメラ４０のレンズ４１と基準高さ位置（作業エリア３８のワーク載置面の高さ位置）との間の距離が事前に決められた基準ワーキングディスタンスＷＤstd となるようにロボット１１を制御してハンドカメラ４０の高さ位置を一定の高さ位置に制御する。尚、基準高さ位置は、作業エリア３８のワーク載置面の高さ位置に限定されず、他の高さ位置であっても良く、要は、ハンドカメラ４０で作業エリア３８上のワーク３０を撮像可能な高さ位置の範囲内で基準高さ位置を適宜設定すれば良い。その他の事項は、前記実施例１と同じである。【００５２】
以上のように構成した実施例２においても、前記実施例１と同様に、２次元のハンドカメラ４０で撮像した画像を処理してワーク３０の位置として認識した２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に精度良く変換することができる。
【実施例３】
【００５３】
次に、図９を用いて実施例３を説明する。但し、前記実施例１，２と実質的に同一の部分については同一符号を付して説明を省略又は簡略化し、主として異なる部分について説明する。【００５４】
前記実施例１，２では、作業エリア３８が１箇所（供給装置３９が１台）であったが、図９に示す実施例３では、ロボット１１のアーム可動領域内に複数台の供給装置３９の作業エリア３８が並設されている。本実施例３では、ハンドカメラ４０と固定カメラ５１のどちらを使用しても良いが、図８には、固定カメラ５１を使用する構成例を示している。固定カメラ５１は、視野内に複数の作業エリア３８上のワーク３０が収まるように設置されている。尚、ハンドカメラ４０を使用する場合には、ハンドカメラ４０の視野内に複数の作業エリア３８上のワーク３０が収まるようにハンドカメラ４０の高さ位置を制御すれば良い。【００５５】
本実施例３のように、ロボット１１のアーム可動領域内に複数の作業エリア３８が並設されている場合には、組立誤差等により複数の作業エリア３８の高さ位置が作業エリア３８毎に少しずつ異なる場合がある。この場合には、所定の高さ位置から固定カメラ５１で撮像した画像内のワーク３０のサイズが当該ワーク３０の高さ寸法及び作業エリア３８の高さ位置に応じて変化する。【００５６】
そこで、本実施例３では、座標変換部４４は、画像処理部４３の画像処理でワーク３０の位置として認識したビジョン座標系の座標値を当該ワーク３０の高さ寸法及び作業エリア３８の高さ位置に応じて補正し、補正後のビジョン座標系の座標値を世界座標系の座標値に変換する（座標変換工程）。【００５７】
この場合、基準高さ位置については、複数の作業エリア３８のうちのいずれか１つの作業エリア３８のワーク載置面の高さ位置を基準高さ位置としても良いし、或は、固定カメラ５１の真下に位置する中央の作業エリア３８のワーク載置面の高さ位置を基準高さ位置としても良い。基準高さ位置は、作業エリア３８のワーク載置面の高さ位置に限定されず、他の高さ位置であっても良く、要は、固定カメラ５１で作業エリア３８上のワーク３０を撮像可能な高さ位置の範囲内で基準高さ位置を適宜設定すれば良い。【００５８】
この基準高さ位置における分解能（基準ワーキングディスタンスＷＤstd における分解能）である基準分解能Ｒo を前記実施例１と同様の方法で算出すると共に、この基準高さ位置から所定高さＴcpだけ高い位置における分解能Ｒ1 を算出して、次の（８）式を用いて単位高さ寸法当たりの分解能変化量を単位分解能Ｒuni として算出する。
Ｒuni ＝（Ｒo −Ｒ1 ）／Ｔcp    …（８）【００５９】
更に、次の（９）式を用いて基準高さ位置から作業エリア３８のワーク載置面の高さ位置までの高さ寸法ΔＷＤとワーク３０の高さ寸法Ｈとの和に前記単位分解能Ｒuni を積算して求めた値を前記基準分解能Ｒo から引き算することで、補正後の分解能Ｒｈを求める。
Ｒh ＝Ｒo −Ｒuni ×（Ｈ＋ΔＷＤ）    …（９）【００６０】
この補正後の分解能Ｒｈを次の（１０）式と（１１）式に代入して計算することで、ビジョン座標系のピクセル単位の座標値（Ｘv ，Ｙv ）を世界座標系の座標値と同じ長さの単位の座標値（Ｘ，Ｙ）に変換する。
Ｘ＝Ｘv ×Ｒh     …（１０）
Ｙ＝Ｙv ×Ｒh     …（１１）
この２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に変換する。【００６１】
以上説明した実施例３では、ロボット１１のアーム可動領域内に並設された複数の作業エリア３８の高さ位置が作業エリア３８毎に少しずつ異なる場合でも、各作業エリア３８上のワーク３０の位置として認識した２次元のビジョン座標系の座標値を３次元の世界座標系の座標値に精度良く変換することができる。【００６２】
［その他の実施例］
尚、上記各実施例１〜３に限定されず、ハンドカメラ４０と固定カメラ５１の両方を設置して、要求される分解能やロボット１１のアーム可動領域内における作業エリア３８の位置によってハンドカメラ４０と固定カメラ５１とを使い分けるようにしても良い。例えば、ワーク３０のサイズが小さくて高い分解能が要求される場合には、ハンドカメラ４０を使用し、また、固定カメラ５１の視野から外れた位置に設置された作業エリア３８についてはハンドカメラ４０を使用するようにすれば良い。また、固定カメラ５１の視野内に複数の作業エリア３８が収まる場合には、固定カメラ５１の視野内に複数の作業エリア３８を収めて撮像すれば、複数の作業エリア３８上のワーク３０の画像処理を能率良く行うことができる。或は、複数の作業エリア３８が存在する場合に、作業エリア３８毎にハンドカメラ４０を移動させてワーク３０を撮像するようにしても良い。【００６３】
その他、本発明は、ロボット１１の構成を適宜変更しても良い等、要旨を逸脱しない範囲内で種々変更して実施できることは言うまでもない。
【符号の説明】
【００６４】
１１…ロボット、１４…第１関節軸、１５…第１アーム、１６…第２関節軸、１７…第２アーム、１８…第３関節軸、１９…第３アーム、２０…第４関節軸、２１…手首部（アーム先端部）、２２…第５関節軸、２３…エンドエフェクタ、２５〜２９…サーボモータ、３０…ワーク、３１〜３５…エンコーダ、３６…サーボアンプ、３７…制御部、３８…作業エリア、３９…供給装置、４０…ハンドカメラ（２次元のカメラ）、４１…レンズ、４２…ロボット制御ユニット、４３…画像処理部、４４…座標変換部、５０…固定構造物、５１…固定カメラ（２次元のカメラ）、５２…レンズ
【図１】
2020121399.tif 000003
【図２】
2020121399.tif 000004
【図３】
2020121399.tif 000005
【図４】
2020121399.tif 000006
【図５】
2020121399.tif 000007
【図６】
2020121399.tif 000008
【図７】
2020121399.tif 000009
【図８】
2020121399.tif 000010
【図９】
2020121399.tif 000011
【国際調査報告】
2020121399.tif 000012
2020121399.tif 000013
2020121399.tif 000014
2020121399.tif 000015