(57)【特許請求の範囲】
【請求項１】
ロボットにより固定ワークに設けられた嵌合部に把持ワークを嵌合するロボットシステムであって、
前記把持ワークを把持して前記把持ワークが前記固定ワークに接触したアプローチ位置において、前記嵌合部と前記把持ワークとのシーン画像を撮影するカメラと、
前記シーン画像から作業の状態判別に必要なテンプレート画像を生成するテンプレート作成処理部と、前記把持ワークを挿入可能領域に位置決めするための目標位置を設定する目標位置設定部と、前記シーン画像撮影時における前記把持ワークの位置と前記目標位置とを比較して前記ロボットの動作量を生成する動作量事前作成部と、前記アプローチ位置における、前記嵌合部に対する前記把持ワークの位置を系統的に変えながら、都度、前記テンプレート画像とこれに対応する前記動作量と１対１に対応づけて記憶させたテンプレートマトリクスと、を有する教示装置と、
前記ロボットにより、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触した嵌合作業開始前のアプローチ位置へ移動させ、前記カメラにより、前記嵌合作業開始前のアプローチ位置における前記嵌合部と前記把持ワークとの画像を取得し、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得し、前記取得したテンプレート画像に対応する動作量だけ前記ロボットを動作させ、その後、前記把持ワークを前記嵌合部に挿入する挿入動作を実行させるプレイバック装置と、を有している
ことを特徴とするロボット制御装置。
【請求項２】
前記プレイバック装置は、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得する際に、
前記画像と前記テンプレートマトリクス中のテンプレート画像との相関値を求め、前記相関値の最も大きいテンプレート画像を取得する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記プレイバック装置は、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得する際に、
前記画像と予め決められた探索開始位置とその近傍のテンプレート画像の相関値を求める第１のステップと、
前記第１のステップで求めたテンプレート画像のうち相関値が最大になるテンプレートを選択テンプレートとして選択する第２のステップと、
前記画像と前記選択テンプレートおよびその近傍のテンプレートの相関値を求め、相関値が最大になるテンプレートを新たな選択テンプレートとして選択する第３のステップとを備え、
前記選択テンプレートの近傍に前記選択テンプレートより相関値が大きいテンプレートが無くなるまで、前記第３のステップを繰り返し、最終的に選択された選択テンプレートを前記画像に最も近いテンプレート画像として取得する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項４】
ロボットにより固定ワークに設けられた嵌合部に把持ワークを嵌合するロボットシステムであって、
前記把持ワークを把持して前記把持ワークが前記固定ワークに接触したアプローチ位置において、前記嵌合部と前記把持ワークとのシーン画像を撮影するカメラと、
前記シーン画像から作業の状態判別に必要なテンプレート画像を生成するテンプレート作成処理部と、前記把持ワークを挿入可能領域に位置決めするための目標位置を設定する目標位置設定部と、前記シーン画像撮影時における前記把持ワークの位置と前記目標位置とを比較して前記ロボットの動作量を生成する動作量事前作成部と、前記アプローチ位置における、前記嵌合部に対する前記把持ワークの位置を系統的に変えながら、都度、前記テンプレート画像とこれに対応する前記動作量と１対１に対応づけて記憶させたテンプレートマトリクスと、を有する教示装置と、
前記ロボットにより、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触した嵌合作業開始前のアプローチ位置へ移動させ、前記カメラにより、前記嵌合作業開始前のアプローチ位置における前記嵌合部と前記把持ワークとの画像を取得し、前記画像と前記テンプレートマトリクス中のテンプレート画像との相関演算を行い、前記テンプレートマトリクス中の前記動作量に前記相関値で重み付けを行なって、前記動作量の荷重平均を求め、前記加重平均を修正動作量とする動作量修正部を有し、
前記動作量修正部により得た前記修正動作量だけ前記ロボットを動作させ、その後、前記把持ワークを前記嵌合部に挿入する挿入動作を実行させるプレイバック装置と、を有している
ことを特徴とする請求項１に記載のロボット制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物品の組み立て作業に用いるロボットの制御装置、特に作業対象の物品の画像を撮像して、前記画像に基づいて前記物品の位置を補正するロボットの制御装置に関するものである。
【０００２】
【従来の技術】
ロボットによる物品の組み立てに際しては、組み立て対象の物品を正確に位置決めする必要がある。しかしながら、ワーク自身の寸法誤差、ワークをハンドで把持するときの掴み位置のずれ、などにより所望の精度を得ることは困難である。そこで、各種のセンサでワークの位置決め誤差を検出して、その誤差に基づいてワークの位置を補正する装置や方法が各種提案されている。例えば国際公開公報ＷＯ９８−１７４４４には、ワークの位置をレーザレンジファインダで計測して補正する装置が記載されている。また、２台のカメラでワークを撮影して、画像のズレからワークを位置を測定する、ステレオ式の画像センサを用いる装置も良く知られている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来技術にあっては、レーザを利用するレーザレンジファインダは高価であるという問題があり、またレーザ光を吸収する黒色のワークや逆に反射する鏡面仕上げのワークには適用できないという問題もあった。
ステレオ式の画像センサはキャリブレーションに手間がかかり、所望の精度を得ることが難しいという問題があり、また２台のカメラを一定の間隔を空けて設置しなければならないので、ロボットやその他の装置と干渉しないような設置位置を選ぶのが難しいという問題もあった。
そこで本発明は安価、簡単かつコンパクトな画像センサを用いてワークの位置を検出して補正するロボット制御装置を提供することを目的とする。
【０００４】
【課題を解決するための手段】
上記問題を解決するために、請求項１の発明はロボットにより固定ワークに設けられた嵌合部に把持ワークを嵌合するロボットシステムであって、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触したアプローチ位置において、前記嵌合部と前記把持ワークとのシーン画像を撮影するカメラと、前記シーン画像から作業の状態判別に必要なテンプレート画像を生成するテンプレート作成処理部と、前記把持ワークを挿入可能領域に位置決めするための目標位置を設定する目標位置設定部と、前記シーン画像撮影時における前記把持ワークの位置と前記目標位置とを比較して前記ロボットの動作量を生成する動作量事前作成部と、前記アプローチ位置における、前記嵌合部に対する前記把持ワークの位置を系統的に変えながら、都度、前記テンプレート画像とこれに対応する前記動作量と１対１に対応づけて記憶させたテンプレートマトリクスと、を有する教示装置と、前記ロボットにより、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触した嵌合作業開始前のアプローチ位置へ移動させ、前記カメラにより、前記嵌合作業開始前のアプローチ位置における前記嵌合部と前記把持ワークとの画像を取得し、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得し、前記取得したテンプレート画像に対応する動作量だけ前記ロボットを動作させ、その後、前記把持ワークを前記嵌合部に挿入する挿入動作を実行させるプレイバック装置と、を有しているものである。また請求項２の発明は、前記プレイバック装置は、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得する際に、前記画像と前記テンプレートマトリクス中のテンプレート画像との相関値を求め、前記相関値の最も大きいテンプレート画像を取得するものである。また、請求項３の発明は前記プレイバック装置は、前記テンプレートマトリクスから前記画像に最も近いテンプレート画像を取得する際に、前記画像と予め決められた探索開始位置とその近傍のテンプレート画像の相関値を求める第１のステップと、前記第１のステップで求めたテンプレート画像のうち相関値が最大になるテンプレートを選択テンプレートとして選択する第２のステップと、前記画像と前記選択テンプレートおよびその近傍のテンプレートの相関値を求め、相関値が最大になるテンプレートを新たな選択テンプレートとして選択する第３のステップとを備え、前記選択テンプレートの近傍に前記選択テンプレートより相関値が大きいテンプレートが無くなるまで、前記第３のステップを繰り返し、最終的に選択された選択テンプレートを前記画像に最も近いテンプレート画像として取得するものである。また、請求項４の発明はロボットにより固定ワークに設けられた嵌合部に把持ワークを嵌合するロボットシステムであって、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触したアプローチ位置において、前記嵌合部と前記把持ワークとのシーン画像を撮影するカメラと、前記シーン画像から作業の状態判別に必要なテンプレート画像を生成するテンプレート作成処理部と、前記把持ワークを挿入可能領域に位置決めするための目標位置を設定する目標位置設定部と、前記シーン画像撮影時における前記把持ワークの位置と前記目標位置とを比較して前記ロボットの動作量を生成する動作量事前作成部と、前記アプローチ位置における、前記嵌合部に対する前記把持ワークの位置を系統的に変えながら、都度、前記テンプレート画像とこれに対応する前記動作量と１対１に対応づけて記憶させたテンプレートマトリクスと、を有する教示装置と、前記ロボットにより、前記把持ワークを把持して前記把持ワークが前記固定ワークに接触した嵌合作業開始前のアプローチ位置へ移動させ、前記カメラにより、前記嵌合作業開始前のアプローチ位置における前記嵌合部と前記把持ワークとの画像を取得し、前記画像と前記テンプレートマトリクス中のテンプレート画像との相関演算を行い、前記テンプレートマトリクス中の前記動作量に前記相関値で重み付けを行なって、前記動作量の荷重平均を求め、前記加重平均を修正動作量とする動作量修正部を有し、前記動作量修正部により得た前記修正動作量だけ前記ロボットを動作させ、その後、前記把持ワークを前記嵌合部に挿入する挿入動作を実行させるプレイバック装置と、を有しているものである。
【０００５】
【発明の実施の形態】
以下に、本発明の実施の形態を図に基づいて説明する。
図１は本発明の第１の実施例を示すロボットシステムのブロック図である。図において、１０１は固定ワークとロボット１０４に把持されて前記固定ワークに組み付けられる把持ワークを撮影するカメラであり、カメラ１０１で撮影されたシーン画像はテンプレート作成処理部１０２に送られて、テンプレート画像に変換される。シーン画像からのテンプレート画像への変換に際しては、予め画像領域を設定しておく方法と手動により適宜領域を指定する方法があるがどちらを用いてもよい。
前記把持ワークの位置データはロボット１０４の内部にある。この位置データと目標位置設定部１０５で予め設定された目標位置を比較して、前記把持ワークを前記目標位置に移動させる動作量を動作量事前作成部１０６で作成する。この動作量は、テンプレート画像を作成した時点のロボット１０４をどのように動作させれば設定された目標位置に到達できるかを表す相対移動量である。テンプレート作成処理部１０２で作成されたテンプレート画像と動作量事前作成部１０６で作成された動作量は１対１に対応づけて作業状態テンプレートマトリクス１０３に記憶される。
【０００６】
次に、本発明の第１の実施例を組立作業の一つである嵌合作業を例にとって説明する。
図２は本発明の第１の実施例を示すロボットシステムの外形図である。図１に示した構成要素と同じ物は同一の符号を付したので説明を省略する。
図において、１はロボット制御装置であり、２はロボット１０４の先端に取り付けられて把持ワーク３を把持する開閉式ハンドであり、４はロボット制御装置１とロボット１０４を接続するケーブルである。５は嵌合作業が行なわれる作業台である。６は固定ワークであり、丸穴を備え、その丸穴に把持ワーク３が挿入される。固定ワーク６は固定治具７を用いて作業台５に固定されている。８はカメラ１０１を作業台５に固定するカメラ固定治具であり、９はカメラ１０１とロボット制御装置１を接続するケーブルである。また、Σwは固定ワーク６上にあるワーク座標である。
【０００７】
次に図１および図２に示したロボットシステムにおいて、作業状態テンプレートマトリクス１０３を作成する手順を説明する。
図３は本発明の実施例を示す作業状態テンプレートマトリクスの教示シーケンスのフローチャートであり、図４は把持ワークを固定ワークにアプローチさせた状態を示す外形図である。以下にこの教示シーケンスをフローチャートに従って説明する。
Ｓ３０１：把持ワーク３を把持させたロボット１０４を固定ワーク６のアプローチ位置へ移動させ、テンプレート画像が作成できる状況にする。ここでのアプローチ位置は図４に示すように、把持ワーク３が固定ワーク６に接触した位置である。このアプローチ位置はロボット１０４の力制御により把持ワーク３が固定ワーク６に接触するまで押し当てられた状態の位置である。
Ｓ３０２：カメラ１０１から得られたシーン画像をテンプレート作成処理部１０２でテンプレート画像に変換する。
Ｓ３０３：目標位置設定部１０５で設定された目標位置とロボット１０４から得られる把持ワークの位置データを比較して、動作量事前作成部１０６で動作量を作成する。
Ｓ３０４：Ｓ３０２で作成されたテンプレート画像とＳ３０３で作成された動作量を１対１に対応づけて、作業状態テンプレートマトリクス１０３に記憶する。
Ｓ３０５：全てのテンプレート画像が作成されたかをチェックし、作成されていれば、終了し、作成されていなければ、Ｓ３０６の処理に進む。
Ｓ３０６：ロボット１０４のアプローチ位置を予め設定された量だけ移動させ、Ｓ３０２に戻る。
このようなシーケンスで、固定ワーク６に対する把持ワーク３のアプローチ位置を系統的に変化させて、あるアプローチ位置におけるテンプレート画像とそのアプローチ位置から把持ワーク３を目標位置に移動させるための動作量を１対１に対応付けた作業状態テンプレートマトリクス１０３が作成される。
【０００８】
次にプレイバック動作中に作業状態テンプレートマトリクスを参照して嵌合作業を行なう装置と手順を説明する。
図５は本発明の第２の実施例を示すロボットシステムのブロック図である。
図において、５０１は動作量生成部であり、カメラ１０１で撮影したシーン画像と、作業状態テンプレートマトリクス１０３のテンプレート画像を相関演算し、相関値が最大になるテンプレート画像に対応する動作量を作業状態テンプレートマトリクス１０３からを選択し、選択された動作量をロボット制御部５０２へ出力する。また、ロボット制御部５０２は前記動作量に基づいて把持ワーク３を目標位置に移動させる。相関値から動作量を選択する方法の詳細については後述する。
【０００９】
図６は、本発明の第２の実施例を示す嵌合作業のフローチャートであり、図７は図６中のＳ６０４の詳細な処理内容を説明するフローチャートである。以下に嵌合作業のシーケンスをこれらのフローチャートに基づいて説明する。
Ｓ６０１：ロボット１０４が待機位置から把持ワーク３を把持する位置へ移動する。
Ｓ６０２：開閉式ハンド２が把持ワーク３を把持する。
Ｓ６０３：ロボット１０４が嵌合作業開始前のアプローチ位置へ移動する。この時、把持ワーク３と固定ワーク６の相対位置関係は、把持ワーク３を把持した時の位置決め精度の不確定さや固定ワーク６の固定精度の不確定さから、精度良く位置決めされているわけではない。ここでのアプローチ位置は図４に示すような把持ワーク３が固定ワーク６に接触するまでロボット１０４の力制御により押し当てられた状態の位置である。
Ｓ６０４：カメラ１０１から得られる把持ワーク３と固定ワーク６のシーン画像に最も近いテンプレート画像を作業状態テンプレートマトリクス１０３中から後述する処理手順に従って選択し、把持ワーク３と固定ワーク６の相対位置関係を把握する。
Ｓ６０５：Ｓ６０４で検出された相対位置関係から把持ワーク３が固定ワーク６に対して正規の位置にあるかどうか、つまり目標状態であるか否かを判定する。
Ｓ６０６：Ｓ６０４で選択されたテンプレート画像に対応する動作量を作業状態テンプレートマトリクス１０３から取得し、取得した動作量だけロボット１０４を動かし、Ｓ６０４に戻る。
Ｓ６０７：把持ワーク３が固定ワーク６に対して正規の位置に来たので、把持ワーク３を固定ワーク６に挿入可能な状態になった。そこで、ロボット１０４の力制御による挿入動作を実行する。なお、力制御による挿入動作については公知の事項なので説明は省略する。
Ｓ６０８：ハンド２は把持ワーク３の把持を開放する。
Ｓ６０９：ロボット１０４は待機位置へ移動する。
【００１０】
ここで前述したＳ６０４の詳細なシーケンスを図７を参照して説明する。
Ｓ７０１：予め用意されている作業状態テンプレートマトリクス１０３からテンプレート画像を１枚づつ選択する。
Ｓ７０２：Ｓ７０１で選択されたテンプレート画像と作業状態監視カメラ１０１から得られるシーン画像を相関演算し、相関値を出力する。この相関演算は、残差相関演算や正規化相関演算などの手法を用いる。なお、これらの手法は公知の事項なので説明は省略する。
Ｓ７０３：作業状態テンプレートマトリクス１０３内のテンプレート画像が全て選択されているかどうかを判定し、未選択のテンプレート画像がある場合はＳ７０１に戻り、未選択テンプレート画像における相関演算処理を行う、全てのテンプレート画像が選択されている場合はＳ７０４の処理に進む。
Ｓ７０４：相関値が最大のテンプレート画像を選択する。相関値が最大になるテンプレート画像とは、シーン画像に最も近似したテンプレート画像である。
Ｓ７０５：決定されたテンプレート画像に対応する信号を出力して、
処理を終了する。
【００１１】
次に、嵌合作業で用いられた作業状態テンプレートマトリクス１０３について説明する。図８は本発明の第２の実施例を示す作業状態テンプレートマトリクスの説明図であり、図８（ａ）は動作量を説明する平面図であり、図８（b）は作業状態テンプレートマトリクスの概念図である。
図８（ａ）は固定ワーク６の平面図であり、図中の座標のＸ軸およびＹ軸は、図２に示した固定ワーク６に固定された座標ΣwのＸ軸およびＹ軸である。図中に実線で示した円は固定ワーク６の丸穴（把持ワーク３を嵌合する穴）の輪郭であり、点線で示した円は挿入可能領域である。また座標原点つまり（Ｘ，Ｙ）＝（０，０）の位置が、目標位置設定部１０５で設定された目標位置である。
ここで、挿入可能領域とは、把持ワーク３の円筒中心位置がこの領域内であれば、面取りやテーパなどを利用して、力制御による嵌合作業が遂行できる領域のことを意味している。また、図中には、XY軸それぞれに平行に＋３〜−３の７個の区切線がある。
図８(b)は、作業状態テンプレートマトリクスの概念図である。作業状態テンプレートマトリクスは、図８（ａ）の区切り線の升目の交点に把持ワーク３を置き、テンプレート画像をそれぞれ作成した場合の一覧表である。なお、作業状態テンプレートマトリクスの教示シーケンスの説明において、把持ワークのアプローチ位置を系統的に変化させると述べたのは、この升目の交点のように、位置を規則的に変化させることを言う。図８(b)の各々のテンプレート画像に対応した動作量は、テンプレート画像中の左下に示してある。テンプレート画像に対応する位置が(X,Y)の場合、動作量は(−X,−Y)である。例えば、(X,Y)＝(0,0)のテンプレート画像は把持ワーク３の凸部と固定ワーク６の凹部が重なった画像となっており、動作量は(0,0)である。また、(X,Y)＝(−3,0)のテンプレート画像は把持ワーク３の凸部が、固定ワーク６の凹部に比べて後方に写っており、動作量は(3,0)となる。この図８(b)の一覧表のように各テンプレート画像は把持ワーク３と固定ワーク６の位置関係を示している。このように図８(b)に示された複数のテンプレート画像と動作量からなるデータを作業状態テンプレートマトリクス１０３に記憶している。
【００１２】
ここで、図４、図６、図９および図８を参照しながら、把持ワーク３と固定ワーク６の嵌合作業シーケンスの具体的な処理手順を再度説明する。
Ｓ６０３：「嵌合作業開始前のアプローチ位置へ移動」した時の把持ワーク３と固定ワーク６の位置関係は図４に示す位置に来たとする。
Ｓ６０４：「カメラ１０１のシーン画像から状態を把握」では、図９のようなシーン画像が得られ、このシーン画像と作業状態テンプレートマトリクス１０３中のテンプレート画像を相関演算することで、図８(b)の(X,Y)＝(−3,0)のテンプレート画像が選択される。
Ｓ６０５：「目標状態？」の判定では、目標状態でないと判定される。
Ｓ６０６：「把握した状態の動作量だけロボット１０４を移動」で選択されたテンプレート画像 (−3,0)に対応する動作量(3,0)が作業状態テンプレートマトリクス１０３より選択され、ロボット制御部５０２がロボット１０４をΣw座標のX方向に＋３移動する。
Ｓ６０４：「カメラ１０１のシーン画像から状態を把握」が再度行われ、相関演算により図８(b)の(X,Y)＝(0,0)のテンプレート画像が選択される。
Ｓ６０５：「目標状態？」の判定が再度行われ目標状態であると判定され、Ｓ６０７からＳ６０９が順次実行され終了する。
本実施例では、説明を簡素化するために、Ｓ６０３で把持ワーク３が固定ワーク６に接触するまで押し当てられているものとし、固定ワーク座標系ΣwのXY平面上に把持ワーク３の端面があることを前提としており、そうすることで３次元的ではなく２次元的に作業状態テンプレートマトリクス１０３を作成した。作業状態テンプレートマトリクス１０３を３次元的に作成することも可能であり、その場合は、把持ワーク３と固定ワーク６の相対的な位置関係を３次元的に把握することも可能である。
【００１３】
次に本発明の第３の実施例を図に基づいて説明する。
図１０は本発明の第３の実施例を示すロボットシステムのブロック図であり、動作量生成部５０１を詳しく説明した図である。なお、既述の構成要素については、同一符号を付して説明を割愛する。
図において、動作量生成部５０１は相関演算部１００１と動作量修正部１００２とから構成されている。相関演算部１００１はシーン画像とテンプレート画像とから相関演算を行い、相関値を出力する。動作量修正部１００２は相関値と動作量とから修正動作量を算出し、ロボット制御部５０２へ送る。
【００１４】
図１１は本発明の第３の実施例を示す嵌合作業シーケンスのフローチャートであり、図１２は図１１のＳ１１０４を更に詳細に示したフローチャートである。
図１１に示すフローチャートは基本的には図６に示すフローチャートと同じであるが、Ｓ６０４〜Ｓ６０６に代えて、Ｓ１１０４〜Ｓ１１０６を備えている点で異なる。この異なる各ステップを以下に説明する。
Ｓ１１０４：カメラ１０１から得られるシーン画像とテンプレート画像とから図１２に示す処理手順に従って修正動作量を導出する。なお、図１２の詳細処理は後述する。
Ｓ１１０５：Ｓ１１０４で導出された修正動作量の移動量が図８(a)に示した挿入可能領域の半径より小さいかを判定する。修正動作量の移動量が挿入可能領域の半径より小さいならYes、大きいならNoである。
Ｓ１１０６：Ｓ１１０４で導出された修正動作量をロボット制御部５０２へ出力する。
ここで、Ｓ１１０４の詳細なシーケンスについて図１２を用いて説明する。図１２に示すフローチャートは基本的には図７に示すフローチャートと同じであるが、Ｓ７０４とＳ７０５に代えて、Ｓ１２０４とＳ１２０５を備えている点で異なる。この異なる各ステップを以下に説明する。
Ｓ１２０４：各テンプレート画像の相関値と動作量を用いて後述する修正動作量を導出する。
Ｓ１２０５：決定された修正動作量を出力し、修正動作量の導出シーケンスを終了する。
ここで、修正動作量について説明する。修正動作量(x,y)は各テンプレート画像の相関値を求めた後、以下の式(1)のような加重平均式により決定される。
【００１５】
【数１】
0004572497.tif 000002
【００１６】
ただし、式(1)は、２次元の修正動作量を決定する際の式であり、３次元の場合は、以下の式(2)を利用することとする。
【００１７】
【数２】
0004572497.tif 000003
【００１８】
式(1)、式(2)において、Ｌ，Ｍ，Ｎは作業状態テンプレートマトリクスの要素の数である。つまり図８（ｂ）の作業状態テンプレートマトリクスを例にすると、
Ｘ軸方向の要素は、−３，−２，−１，０，１，２，３の７個だからL=７である。
Y軸方向の要素も、−３，−２，−１，０，１，２，３の７個だからM＝７である。同様にNはZ軸方向の要素の数である。また、ｉ、ｊ、ｋは(i=0,1,・・・,L)、(j=0,1,・・・,M)、(k=0,1,・・・,N)であり、各軸の要素を示す番号である。ｉ番目のX軸座標値をXiとし、ｊ番目のY軸座標値をYjとし、ｋ番目のZ軸座標値をZkとし、Sijは２次元上の(x,y)＝(Xi,Yj)での相関値であり、Sijkは３次元上の(x,y,z)＝(Xi,Yj,Zk)での相関値である。
【００１９】
ここで、２次元上の修正動作量の導出方法について図１３を用いて具体的に説明する。
図１３は修正動作量の導出方法を説明する作業状態テンプレートマトリクスの概念図である。図中に示した０から９０までの数字は、シーン画像と各テンプレート画像の相関値を示している。
Ｓ６０３をした直後に得られたシーン画像と作業状態テンプレートマトリクスの各テンプレート画像の相関値を求め、図１３に示す値が得られる。これらの値を式(1)に代入すると、下記の式(3)、式(4)のようになり、修正動作量（x,y）が求まる。
【００２０】
【数３】
0004572497.tif 000004
【００２１】
【数４】
0004572497.tif 000005
【００２２】
この修正動作量(x,y)=(2.229,0.085)だと位置が(−2.229, −0.085)であり、図８(a)に示す挿入可能領域の外にあることがＳ１１０５で判定されＳ１１０６に処理が移行する。Ｓ１１０６では、Σw座標のxy平面上ベクトル(2.229,0.085)だけロボット１０４を移動させる。Ｓ１１０６の実行後、再度Ｓ１１０４を行いシーン画像から修正動作量を求める。求まった修正動作量から求めた位置が挿入可能領域内であれば、Ｓ６０７で挿入動作を開始する。
本実施例では、式(1)および式(2)に示すような荷重平均式を用いて修正動作量を生成したが、２次式、双２次式、３次式などの計算式が適用可能であることは言うまでもない。
【００２３】
次に本発明の第４の実施例について、図に基づいて説明する。
図１４は本発明の第４の実施例を示すフローチャートであり、Ｓ６０４のフローを詳細に示したものである。また、図１５は作業状態テンプレートマトリクスの概念図である。以下、第４の実施例の処理シーケンスを説明する。
Ｓ１４０１：予め決められた探索開始用のテンプレート画像とその近傍の複数のテンプレート画像を用いてシーン画像との相関演算を行い、各テンプレート画像の相関値を導出する。
Ｓ１４０２：Ｓ１４０１で導出した相関値が最大となるテンプレート画像を選択する。
Ｓ１４０３：Ｓ１４０２で選択されたテンプレート画像近傍の複数のテンプレート画像全てにおいてシーン画像との相関演算が実施済みかを比較する。実施済みならＳ１４０５へ進み、未実施ならＳ１４０４へ進む。
Ｓ１４０４：Ｓ１４０２で選択されたテンプレート画像近傍の複数のテンプレート画像に少なくとも１つの相関演算未実施のテンプレート画像が存在するので、相関演算未実施のテンプレート画像とシーン画像とを相関演算し、相関値を導出する。
Ｓ１４０５：相関値が最大となるテンプレート画像に対応した動作量を出力する。
【００２４】
ここで、前述のシーケンスを図１５を参照して、具体的に説明する。
まず、作業状態テンプレートマトリクスの探索開始位置を(0,0)の位置とする。
Ｓ１４０１では探索開始テンプレート(0,0)とシーン画像が相関演算され、相関値が導出される。次に探索開始テンプレート（0,0）の近傍の(1,0)、(1,1)、(0,1)、(−1,1)、(−1,0)、(−1,−1) 、(0,−1) と(1,−1)のテンプレート画像とシーン画像の相関演算を行い、合計９ヵ所の相関値が導出される。
Ｓ１４０２ではＳ１４０１で導出された９ヵ所の相関値の中から相関値が最大となるテンプレート画像を選択する。図１５では相関値40 の(−1,0)が最大なので、(−1,0)のテンプレート画像が選択される。
Ｓ１４０３では選択されたテンプレート画像(−1,0)の近傍である(0,0)、(0,1)、(−1,1)、(−2,1)、(−2,0)、(−2,−1) 、(−1,−1) と(0,−1)がチェックされる。チェックした結果、(−2,1)、(−2,0)と(−2,−1)の相関演算が未実施であることが判明し、Noという判定になる。
Ｓ１４０４では(−2,1)、(−2,0)と(−2,−1)のテンプレート画像とシーン画像の相関演算を行い、相関値を導出する。
Ｓ１４０２ではＳ１４０４で導出された(−2,1)、(−2,0)と(−2,−1)の相関値と(−1,0)の相関値を比較して、相関値が最大となるテンプレート画像を選択する。図１５では相関値85 の(−2,0)が最大なので、(−2,0)のテンプレート画像が選択される。
Ｓ１４０３では選択されたテンプレート画像(−2,0)の近傍である(−1,0)、(−1,1)、(−2,1)、(−3,1)、(−3,0)、(−3,−1) 、(−2,−1) と(−1,−1)がチェックされる。チェックした結果、(−3,1)、(−3,0)と(−3,−1)の相関演算が未実施であることが判明し、Noという判定になる。
Ｓ１４０４では(−3,1)、(−3,0)と(−3,−1)のテンプレート画像とシーン画像の相関演算を行い、相関値を導出する。
Ｓ１４０２ではＳ１４０４で導出された(−3,1)、(−3,0)と(−3,−1)の相関値と(−2,0)の相関値を比較して、相関値が最大となるテンプレート画像を選択する。図１５では相関値90 の(−3,0)が最大なので、(−3,0)のテンプレート画像が選択される。
Ｓ１４０３ではテンプレート画像(−3,0)の近傍である(−2,0)、(−2,1)、(−3,1)、(−3,−1) と(−2,−1)がチェックされる。チェックした結果、５ヵ所全ての相関演算が実施済みであることが判明し、Yesという判定になる。
Ｓ１４０５では相関値が最大となる相関値90の(−3,0)のテンプレート画像が選択され、動作量(3,0)が出力される。
上記具体例では相関演算により相関値を導出する回数が15回である。仮に第２の実施例のように全てのテンプレート画像の相関値を導出した後に相関値が最大となるテンプレート画像を決定するなら、相関演算の回数は49回であり、35回の演算量の削減が実施できたことになる。なお、探索開始位置は相関値が最大になる蓋然性が高い位置を経験測によって選択すればよい。
この実施例では、予め決められた探索開始位置のテンプレート画像から出発し、相関値がより大きくなる方向に探索を進めていくような山登り探索を行うことで、相関値が最大となるテンプレート画像を選び出しており、一部のテンプレート画像とシーン画像とを相関演算するだけで相関値が最大となるテンプレート画像を選び出している。
【００２５】
【発明の効果】
以上述べたように、請求項１および請求項２の発明は、多数のテンプレート画像とテンプレート画像と１対１に対応する動作量を記憶しているので、把持ワークの位置を補正するための動作量をテンプレートマッチングによって決定できるので、１台のカメラで画像センサが構成できる。したがって、装置を簡単、安価でコンパクトに構成することができるという効果がある。
請求項３の発明は、各テンプレート画像の動作量を相関値で重み付けして加重平均した値を修正動作量として算出するので、精度の良い位置補正ができる効果がある。
また、請求項４の発明は、予め決められた探索開始位置のテンプレート画像から探索を開始して、その近傍の相関値が高い方向へ山登り探索をするので、処理時間を短縮できる効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施例を示すロボットシステムのブロック図である。
【図２】本発明の第１の実施例を示すロボットシステムの外形図である。
【図３】本発明の第１の本発明の第１の実施例を示す作業状態テンプレートマトリクスの教示シーケンスのフローチャートである。
【図４】把持ワークを固定ワークにアプローチさせた状態を示す外形図である。
【図５】本発明の第２の実施例を示すロボットシステムのブロック図である。
【図６】本発明の第２の実施例を示す嵌合作業のフローチャートである。
【図７】図６のＳ６０４の詳細な処理内容を示すフローチャートである。
【図８】本発明の第２の実施例を示す作業状態テンプレートマトリクスの説明の図であり。（ａ）は動作量を説明する平面図であり、（ｂ）は作業状態テンプレートマトリクスの説明の図である。
【図９】本発明の第２の実施例を示すシーン画像である。
【図１０】本発明の第３の実施例を示すロボットシステムブロック図である。
【図１１】本発明の第３の実施例を示す嵌合作業シーケンスのフローチャートである。
【図１２】図１１のＳ１１０４を更に詳細に示したフローチャートである。
【図１３】修正動作量の導出方法を説明する作業状態テンプレートマトリクスの概念図である。
【図１４】本発明の第４の実施例を示すフローチャートである。
【図１５】本発明の第４の実施例を示す作業状態テンプレートマトリクスの概念図である。
【記号の説明】
１  ロボット制御装置、２  開閉式ハンド、３  把持ワーク、４  ロボット制御装置ケーブル、５  作業台、６  固定ワーク、７  固定ワークの固定治具、８  カメラ固定治具、９  カメラ接続ケ−ブル、
１０１  カメラ、１０２  テンプレート作成処理部、１０３  作業状態テンプレートマトリクス、１０４  ロボット、１０５  目標位置設定部、１０６  動作量事前作成部、５０１  動作量生成部、５０２  ロボット制御部、１００１  相関演算部、１００２  動作量修正部
【図１】
0004572497.tif 000006
【図２】
0004572497.tif 000007
【図３】
0004572497.tif 000008
【図４】
0004572497.tif 000009
【図５】
0004572497.tif 000010
【図６】
0004572497.tif 000011
【図７】
0004572497.tif 000012
【図８】
0004572497.tif 000013
【図９】
0004572497.tif 000014
【図１０】
0004572497.tif 000015
【図１１】
0004572497.tif 000016
【図１２】
0004572497.tif 000017
【図１３】
0004572497.tif 000018
【図１４】
0004572497.tif 000019
【図１５】
0004572497.tif 000020