(57)【特許請求の範囲】
【請求項１】
対象物体を把持するロボットの動作を制御するロボット制御装置であって、
前記対象物体の撮像画像に基づいて、前記対象物体の位置および姿勢に関する正確さに関する情報を取得する取得手段と、
前記取得手段が取得した前記位置および姿勢に関する正確さに関する情報に対応する把持モードを、複数の把持モードの中から選択する選択手段と、
前記取得手段が取得した位置および姿勢に関する正確さに関する情報と、前記選択手段が選択した把持モードとに基づいて、前記ロボットの把持動作を規定する把持動作データを生成する生成手段と、
を備えることを特徴とするロボット制御装置。
【請求項２】
前記取得手段は、前記対象物体の撮像画像に基づいて、複数の前記位置および姿勢に関する正確さに関する情報を取得可能であり、
前記選択手段は、前記取得手段が取得した前記位置および姿勢に関する正確さに関する情報の種類に応じて、前記把持モードを選択することを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記取得手段は、１つの種類の前記位置および姿勢に関する正確さに関する情報を取得し、
前記選択手段が前記１つの種類の位置および姿勢に関する正確さに関する情報に対応する把持モードを選択することができた場合には、前記生成手段は前記１つの種類の位置および姿勢に関する正確さに関する情報を用いて、前記把持動作データを生成し、
前記選択手段が前記１つの種類の位置および姿勢に関する正確さに関する情報に対応する把持モードを選択することができなかった場合には、前記取得手段は他の種類の位置および姿勢に関する正確さに関する情報を取得することを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記取得手段は、１つの種類の前記位置および姿勢に関する正確さに関する情報を取得し、
前記選択手段が前記１つの種類の位置および姿勢に関する正確さに関する情報に対応する把持モードを選択することができた場合には、前記生成手段は前記１つの種類の位置および姿勢に関する正確さに関する情報を用いて、前記把持動作データを生成し、
前記選択手段が前記１つの種類の位置および姿勢に関する正確さに関する情報に対応する把持モードを選択することができなかった場合には、前記選択手段は、他の把持モードを選択することを特徴とする請求項２に記載のロボット制御装置。  
【請求項５】
前記対象物体を計測する計測手段をさらに備え、前記選択手段は前記取得手段により取得される情報を用いず、前記計測手段により計測された値を用いて前記把持モードを選択することを特徴とする請求項１〜４のいずれか１項に記載のロボット制御装置。
【請求項６】
前記位置および姿勢に関する正確さに関する情報は、前記対象物体の位置および姿勢を特定する情報を含むことを特徴とする請求項１〜５のいずれか１項に記載のロボット制御装置。
【請求項７】
前記位置および姿勢に関する正確さに関する情報は、所定の閾値により決められる範囲を示す情報を含むことを特徴とする請求項１〜６のいずれか１項に記載のロボット制御装置。
【請求項８】
前記取得手段が、前記撮像画像に基づいて、前記対象物体の位置および姿勢を特定することができず、前記所定の閾値により決められる範囲を検出できた場合は、前記選択手段は、前記対象物体の当該所定の閾値により決められる範囲に基づいて把持モードを選択することを特徴とする請求項１に記載のロボット制御装置。
【請求項９】
前記取得手段が、前記撮像画像に基づいて、前記対象物体の位置および姿勢を特定できず且つ前記所定の閾値により決められる範囲を検出できず、所定の領域内において前記対象物体が存在することを検出できた場合は、前記選択手段は、当該所定の領域の情報に基づいて把持モードを選択することを特徴とする請求項１に記載のロボット制御装置。
【請求項１０】
請求項１〜９のいずれか１項に記載のロボット制御装置と、前記対象物体を把持するロボットと、を備えるロボットシステム。
【請求項１１】
対象物体を把持するロボットの動作を制御するロボット制御装置の制御方法であって、
前記ロボット制御装置を用いて、前記対象物体の撮像画像に基づいて、前記対象物体の位置および姿勢に関する正確さに関する情報を取得する取得工程と、
前記ロボット制御装置を用いて、前記取得工程で取得した前記位置および姿勢に関する正確さに関する情報に対応する把持モードを、複数の把持モードの中から選択する選択工程と、
前記ロボット制御装置を用いて、前記取得工程で取得した位置および姿勢に関する正確さに関する情報と、前記選択工程で選択した把持モードとに基づいて、前記ロボットの把持動作を規定する把持動作データを生成する生成工程と、
を備えることを特徴とするロボット制御装置の制御方法。
【請求項１２】
コンピュータを、対象物体を把持するロボットの動作を制御するロボット制御装置であって、
前記対象物体の撮像画像に基づいて、前記対象物体の位置および姿勢に関する正確さに関する情報を取得する取得手段と、
前記取得手段が取得した前記位置および姿勢に関する正確さに関する情報に対応する把持モードを、複数の把持モードの中から選択する選択手段と、
前記取得手段が取得した位置および姿勢に関する正確さに関する情報と、前記選択手段が選択した把持モードとに基づいて、前記ロボットの把持動作を規定する把持動作データを生成する生成手段と、
を備えるロボット制御装置として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物体を把持するロボットの制御装置および制御方法に関する。
【背景技術】
【０００２】
近年、供給された対象物体を把持して、所定の場所に配置するロボット装置において、変化する対象物体の供給状況に対応するため、各種センサを用いて対象物体の種類、位置および姿勢を認識、計測した後に対象物体を把持する手法が開発されている。例えば、ベルトコンベアで搬送された対象物体の映像を取得し、当該映像に基づいて、ロボットの支持部材を回転した後、把持手段により物体を把持するロボット装置が知られている（特許文献１）。また、対象物体の置かれた状況に応じて姿勢を変更できるワーク把持手段を備えた装置も知られている（特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許３３１４８９０号公報
【特許文献２】特許３８０５３１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１や特許文献２の装置は、対象物体の撮像画像から当該対象物体の位置や姿勢を正しく認識出来ることを前提としている。したがって、照明が不十分で暗い場合、対象物体が汚れている場合等の悪条件により対象物体の認識が不完全または不可能な場合は、対象物体の把持が出来なくなることもある。対象物体の把持が出来なくなれば（把持の成功率が下がれば）、ロボットの作業効率も下がる。
本発明は、上記課題を解決するためになされたものであり、対象物体の位置や姿勢を正確に認識できない場合でも、ロボットが対象物体を適切に把持できるようにするロボット制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の１つの態様によるロボット制御装置は、対象物体を把持するロボットの動作を制御するロボット制御装置であって、前記対象物体の撮像画像に基づいて前記対象物体の位置および姿勢に関する正確さに関する情報を取得する取得手段と、前記取得手段が取得した前記位置および姿勢に関する正確さに関する情報に対応する把持モードを、複数の把持モードの中から選択する選択手段と、前記取得手段が取得した位置および姿勢に関する正確さに関する情報と、前記選択手段が選択した把持モードとに基づいて、前記ロボットの把持動作を規定する把持動作データを生成する生成手段と、を備える。
【発明の効果】
【０００６】
本発明によれば、ロボットにより対象物体を適切に把持することが出来る。
【図面の簡単な説明】
【０００７】
【図１】実施形態１のロボット制御装置を含むロボットシステムを示す概略平面図。
【図２】実施形態１のロボット制御装置の動作を説明する流れ図。
【図３】実施形態１の物体情報取得ステップの詳細を説明する流れ図。
【図４】実施形態１における背景画像と、撮像画像と、差分画像とを示す図。
【図５】差分画像における対象物体の重心と主軸を示す図。
【図６】実施形態１における正規化画像を示す図。
【図７】実施形態１における対象物体の３種類の配置姿勢を示す図。
【図８】図７の３種類の配置姿勢に対応する３つのテンプレートを示す図。
【図９】実施形態２のロボット制御装置の動作を説明する流れ図。
【図１０】実施形態３のロボット制御装置の動作を説明する流れ図。
【図１１】ロボットシステムのブロック図。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照して、本発明を実施するための実施形態について詳細に説明する。なお、以下に説明する実施形態は、本発明の実現手段としての一例であり、本発明が適用される装置およびシステムの構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。
実施形態１
以下において、カメラにより撮像した対象物体の撮像画像を用いて、対象物体の物体情報を取得して対象物体の把持を行うロボットシステムを説明する。本実施形態において、対象物体は加工前または後の部品であるとする。本実施形態において、物体情報は、対象物体の位置および姿勢に関する情報であるとする。  
【０００９】
（ロボットシステムの構成）
図１（ａ）は、本実施形態のロボットシステムを上方から見たときの図である。カメラ１０１は、ベルトコンベア１０２に載置された対象物体１０３を撮像できるように配置されている。
ロボットシステムは、カメラ１０１と、情報取得部１０４と、把持モード選択部１０５と、把持動作生成部１０６と、ロボット１０７とを含む。カメラ１０１、情報取得部１０４、把持モード選択部１０５、把持動作生成部１０６およびロボット１０７は、ライン１１０により有線接続されている。本実施形態のロボット１０７は、単腕ロボットである。
ベルトコンベア１０２は、対象物体１０３を載置して、矢印１１１の方向に対象物体１０３を搬送する。ベルトコンベア１０２は、対象物体１０３を搬送することにより、ロボット１０７に対象物体１０３を供給するので、供給部と称することができる。ベルトコンベア１０２は、複数の対象物体１０３を載置して搬送することができる。対象物体１０３は、平面視において、矩形状の本体と、本体から突出する半円形の突出部とからなる。
【００１０】
図１（ｂ）は対象物体１０３の斜視図である。図１（ｂ）は、図１（ａ）の対象物体１０３を、矢印１１１の反対方向から見た場合を示している。上記したように、対象物体１０３は、平面視において矩形状の本体１０３ａと、本体１０３ａから突出する半円形の突出部１０３ｂとからなっている。
図１（ａ）に示されているように、カメラ１０１は、ベルトコンベア１０２によって供給される対象物体１０３を上方から撮像し、対象物体１０３の撮像画像を取得する。カメラ１０１は、所定の撮像範囲１１２を有し、撮像範囲１１２に搬送されてきた対象物体１０３を撮像することができる。本実施形態では、対象物体１０３の撮像画像は、例えば、部品（物体）の計測値（例えば、対象物体の画素単位の輝度値）を得るために用いられる。したがって、カメラ１０１は、対象物体の計測部として機能する。対象物体の輝度値は、対象物体の物性情報の一例である。ロボットハンド１０９の位置および姿勢は、カメラ１０１の座標系上で表すことができる。カメラ１０１が取得した撮像画像は、情報取得部１０４に送られる。カメラ１０１は、例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等の撮像素子（視覚センサ）を備えるデジタルカメラ（ビデオカメラを含む）である。
【００１１】
（制御装置の構成）
図１に示した実施形態において、情報取得部１０４と把持モード選択部１０５と把持動作生成部１０６とにより、ロボット１０７を制御するロボット制御装置１１４が構成される。ロボット制御装置１１４は、把持動作生成部１０６が生成した把持動作データをロボット１０７に送ることにより、ロボット１０７の把持動作を制御する。
情報取得部１０４は、カメラ１０１が取得した撮像画像を用いて、対象物体１０３の物体情報を取得する。本実施形態において、情報取得部１０４は複数の種類の物体情報を取得する。複数の種類の物体情報とは、物体詳細情報、物体概略情報および物体手がかり情報である。情報取得部１０４は、物体詳細情報、物体概略情報および物体手がかり情報を取得するための処理（計算）を実行する。物体詳細情報、物体概略情報および物体手がかり情報は、対象物体１０３の認識精度（撮像精度）に応じて段階的に設定される。物体詳細情報、物体概略情報および物体手がかり情報の詳細は後述する。
【００１２】
把持モード選択部１０５は、対象物体１０３の撮像画像に基づいて、複数の把持モードから１つの把持モードを選択する。複数の把持モードは、対象物体１０３の把持精度に対応している。本実施形態では、把持モード選択部１０５は、４つの把持モードの中から１つの把持モードを選択する。４つの把持モードは、詳細位置決め把持モード、概略位置決め把持モード、位置範囲指定把持モード、およびランダム把持モードである。詳細位置決め把持モードは、対象物体１０３の撮像画像から対象物体１０３の詳細な情報が取得（認識）できた場合に選択される。概略位置決め把持モードは、撮像画像から対象物体１０３の概略情報が取得できた場合に選択される。位置範囲指定把持モードは、撮像画像から対象物体１０３の手がかりとなる情報が取得できた場合に選択される。ランダム把持モードは、対象物体１０３の詳細な情報、概略情報、手がかり情報が取得できなかった場合に選択される。各把持モードの詳細は後述する。４つの把持モードは、対象物体１０３の４段階の把持精度に対応して設定されている。
【００１３】
把持動作生成部１０６は、把持モード選択部１０５が選択した把持モードに基づいて、対象物体１０３を把持するためのロボット１０７の把持動作データを生成する。把持動作データは、ロボット１０７の把持動作を規定するデータである。
ロボット１０７は、ロボットアーム１０８とロボットハンド１０９とベース部１１３とを有する。ロボットアーム１０８は、例えば、多関節アームである。ロボットハンド１０９は、ロボットアーム１０８の先端に取り付けられている。ロボットハンド１０９は、対象物体１０３を把持する把持部（エフェクタ）である。図１のロボットハンド１０９は、二本指の標準的なロボットハンドである。ロボット１０７は、さらに、ロボットアーム１０８を駆動するサーボモータ（図示せず）と、当該サーボモータの角度位置を検出するエンコーダ（図示せず）等を有する。ロボット１０７は、把持動作生成部１０６で生成された把持動作データ（コマンド）に従って動作し、対象物体１０３を把持する。ロボットアーム１０８の基部は、ベース部１１３に取り付けられている。ベース部１１３は、ロボットアーム１０８を支持する架台である。
【００１４】
（処理フロー）
図２は、本実施形態のロボット１０７がカメラ１０１により撮像した対象物体１０３の撮像画像を用いて、対象部品（対象物体）の物体情報を取得して把持を行う動作を説明するフローチャートである。以下、図２に基づいて、ロボット制御装置１１４の動作を説明する。図２のフローチャートは、例えば、ロボット１０７の電源がオンにされると開始する。
Ｓ２０１において、カメラ１０１は、対象物体１０３を上方から撮影し、撮像画像を取得する。
Ｓ２０２において、情報取得部１０４は、Ｓ２０１で取得した撮像画像を用いて、物体情報（物体詳細情報、物体概略情報、物体手がかり情報）を取得する。物体詳細情報は、対象物体１０３の正確な位置および姿勢を表す（特定する）情報である。つまり、物体詳細情報は、対象物体１０３の詳細な位置および姿勢を特定できる情報である。物体概略情報は、対象物体１０３の取り得る位置および姿勢の範囲を示す情報である。つまり、物体概略情報は、対象物体１０３の範囲付きの位置および姿勢を表す情報である。物体手がかり情報は、所定の領域内において対象物体１０３が存在することを示す情報である。つまり、物体手がかり情報は、対象物体１０３の存在範囲を示す位置範囲情報である。本実施形態では、１つのステップ（Ｓ２０２）において、複数の物体情報（物体詳細情報、物体概略情報、物体手がかり情報）を取得する。
【００１５】
Ｓ２０２で物体情報を取得する際、情報取得部１０４は、対象物体１０３の撮像画像の走査を行い、撮像画像と背景画像との差分を取ることにより、差分画像を求める。また、情報取得部１０４は、差分画像中における、画素の輝度値が０よりも大きい画素の画素数ｍDを検出（算出）する。さらに、情報取得部１０４は、対象物体１０３の正規化画像を取得し、正規化画像に対してテンプレートマッチングを行い、最小マッチング誤差ｅminを求める。Ｓ２０２における物体情報の取得処理（差分画像の取得、画素数の検出、正規化画像の取得等）の詳細については、図３を用いて後述する。
【００１６】
Ｓ２０３において、把持モード選択部１０５は、Ｓ２０２で求めた最小マッチング誤差ｅminと予め設定した閾値ｅpreciseとの比較を行う。最小マッチング誤差ｅminが閾値ｅpreciseよりも小さい場合（Ｓ２０３：ＹＥＳ）は、対象物体１０３の詳細な情報（正確な位置および姿勢）が撮像画像から認識（検出）できたと判定してＳ２０４へ進む。最小マッチング誤差ｅminが閾値ｅprecise以上の場合（Ｓ２０３：ＮＯ）は、対象物体１０３の詳細な情報が撮像画像から認識（検出）できないと判定してＳ２０７へ進む。Ｓ２０２で最小マッチング誤差ｅminと閾値ｅpreciseとの比較を行うことにより、実際に認識できる対象物体１０３の情報の精度が高いか否かを判定している。精度が高いとは、対象物体１０３の位置および姿勢を詳細に特定できるという意である。
【００１７】
Ｓ２０４において、把持モード選択部１０５は、把持モードとして詳細位置決めモードを選択する。詳細位置決めモードでは、後述するように、ロボットハンド１０９の目的位置は、対象物体１０３の正確な位置および姿勢に基づいて決定される。以下の記載において「位置および姿勢」は「位置姿勢」と称する。
Ｓ２０５において、把持動作生成部１０６は、詳細位置決めモードで把持動作O1を計算し、ロボット１０７に出力する。カメラ１０１の座標系上におけるロボットハンドの初期位置姿勢をR0とし、目標位置姿勢をR1とすると、初期位置姿勢R0および目標位置姿勢R1は以下の（１）式で表される。把持動作O1は把持動作データと称してもよい。
【００１８】
【数１】
0006711591.tif 000002
【００１９】
ここで、Rpreciseは、Ｓ２０２で求めた物体詳細情報（対象物体１０３の正確な位置姿勢）を示す。Rhは、対象物体１０３の座標系を基準としたときの、ロボットハンド１０９の把持位置姿勢を示す。Rhは、対象物体１０３の位置姿勢を計測した環境下で、適切に対象物体１０３を把持可能な位置姿勢を予め対象物体１０３の座標系で設定したものである。把持動作O1は、時系列的に初期位置姿勢R0と目標位置姿勢R1の間を繋ぐ位置姿勢Ｒの集合として、初期位置姿勢R0と目標位置姿勢R1を用いて以下の（２）式で表される。
【００２０】
【数２】
0006711591.tif 000003
【００２１】
ここで、lは初期位置姿勢R0と目標位置姿勢R1の間の分割数を示す。なお、それぞれの位置姿勢Ｒは４×４の行列表現を用いているが、（２）式の実際の姿勢の補完計算は、正規直交性を維持するためにクォータニオン表現を用いて実施する。
このように、把持動作生成部１０６は、情報取得部１０４が取得した物体情報であって、把持モード選択部１０５が選択した把持モードに対応する情報である物体詳細情報Rpreciseを用いて、ロボット１０７の把持動作を規定する把持動作データを生成する。
Ｓ２０６において、ロボット１０７は、把持動作生成部１０６が生成した把持動作O1を実行して、対象物体１０３を把持する。ロボット１０７が対象物体１０３を把持すると、このフローチャートは完了する。なお、ロボット１０７は、対象物体１０３を把持した後、対象物体１０３を所定の位置（部位）に組み付ける。
【００２２】
Ｓ２０３の判定がＮＯの場合、Ｓ２０７において、把持モード選択部１０５は、Ｓ２０２で求めた最小マッチング誤差ｅminと予め設定した第２の閾値ｅroughとの比較を行う。最小マッチング誤差ｅminが第２の閾値ｅroughよりも小さい場合（Ｓ２０７：ＹＥＳ）、把持モード選択部１０５は、対象物体１０３の概略情報が撮像画像から認識（検出）できたと判定してＳ２０８へ進む。最小マッチング誤差ｅminが第２の閾値ｅrough以上の場合（Ｓ２０７：ＮＯ）は、把持モード選択部１０５は、撮像画像から対象物体１０３の概略情報（対象物体の概略の位置姿勢）が認識・検出できないと判定してＳ２１０へ進む。
Ｓ２０８において、把持モード選択部１０５は、把持モードとして概略位置決めモードを選択する。概略位置決めモードでは、後述するように、ロボットハンド１０７の目的位置は、対象物体１０３の概略の位置姿勢に基づいて決定される。
Ｓ２０９において、把持動作生成部１０６は、概略位置決めモードで把持動作O2を計算し、ロボット１０７に出力する。カメラ１０１の座標系上における目標位置姿勢をR2とすると、目標位置姿勢R2は以下の（３）式で表される。
【００２３】
【数３】
0006711591.tif 000004
【００２４】
ここで、Rroughは、Ｓ２０２で求めた物体概略情報（対象物体１０３の範囲付きの位置姿勢）を示す。αとβは、それぞれ後述する位置と姿勢のばらつきに対する重みづけ係数を示す。ｘrand、ｙrand、ｚrand、λrandは、それぞれ任意の０〜１の値を持つ実数乱数を示す。本ステップにおける（３）式のRroughは（１）式のRpreciseよりも正確な物体情報ではない。したがって、本実施形態では、物体概略情報Rroughを用いる場合、誤った把持位置を取得するのを防ぐために、Rvによって所定のばらつきを与えて目標位置姿勢R2を求める。把持動作O2は、時系列的に初期位置姿勢R0と目標位置姿勢R2の間を繋ぐ位置姿勢Ｒの集合として、（２）式中のR1をR2に置き換えて生成する。本ステップ（Ｓ２０９）の後、Ｓ２０６に進み、ロボット１０７は、把持動作生成部１０６が生成した把持動作O2を実行して、対象物体１０３を把持する。
【００２５】
Ｓ２０７の判定がＮＯの場合、Ｓ２１０において、把持モード選択部１０５は、Ｓ２０２で求めた画像数ｍD（差分画像Ｄ中における、画素の輝度値が０よりも大きい画素の数）と、予め設定した画素数閾値ｍclueとの比較を行う。画像数ｍDが画素数閾値ｍclue以上の場合（Ｓ２１０：ＹＥＳ）、把持モード選択部１０５は、対象物体１０３の手がかり情報（対象物体が存在する位置範囲）が検出できたと判定してＳ２１１に進む。画像数ｍDが画素数閾値ｍclueよりも小さい場合（Ｓ２１０：ＮＯ）、把持モード選択部１０５は、対象物体１０３の手がかり情報が検出できないと判断してＳ２１３へ進む。
Ｓ２１１において、把持モード選択部１０５は、把持モードとして位置範囲指定把持モードを選択する。位置範囲指定把持モードでは、後述するように、ロボットハンド１０９の目的位置は、物体手がかり情報から得られた対象物体１０３が存在する位置範囲（領域）に基づいて決定される。
Ｓ２１２において、把持動作生成部１０６は、位置範囲指定把持モードで把持動作O3を計算し、ロボット１０７に出力する。この場合、カメラ１０１の座標系上における目標位置姿勢をR3とすると、ロボットハンド１０９の目標位置姿勢R3は以下の（４）式で表される。
【００２６】
【数４】
0006711591.tif 000005
【００２７】
ｘu、ｙu、δx、δyについては、図３を用いて後述する。ｘR3rand、ｙR3randは、それぞれ−１〜１で任意の値を持つ実数乱数を示す。ｚfixはベルトコンベア１０２上の対象物体１０３を把持するのに適切なロボットハンド１０９の高さを予め設定した固定値を示す。本ステップにおいては、物体手がかり情報で得られた物体の位置範囲u(xu±δx, yu±δy)の範囲内の位置をランダムに指定することで、目標位置姿勢R3を生成する。把持動作O3は、時系列的に初期位置姿勢R0と目標位置姿勢R3の間を繋ぐ位置姿勢Ｒの集合として、（２）式中のR1をR3に置き換えて生成する。本ステップ（Ｓ２１２）の後、Ｓ２０６に進み、ロボット１０７は、把持動作生成部１０６が生成した把持動作O3を実行して、対象物体１０３を把持する。
Ｓ２１０の判定がＮＯの場合、Ｓ２１３において、把持モード選択部１０５は、把持モードとしてランダム把持モードを選択する。ランダム把持モードでは、後述するように、ロボットの目的位置（ロボットハンドの移動先位置）は、物体情報を用いずに決定される。
Ｓ２１４において、把持動作生成部１０６は、ランダム把持モードで把持動作O4を計算し、ロボット１０７に出力する。カメラ１０１の座標系上における目標位置姿勢をR4とすると、ロボットハンド１０９の目標位置姿勢R4は以下の（５）式で表される。
【００２８】
【数５】
0006711591.tif 000006
【００２９】
ここでｘR4randとｙR4randは、それぞれ供給部であるベルトコンベア１０２が存在するｘ方向の範囲ｘconveyor min〜ｘconveyor maxとｙ方向の範囲ｙconveyor min〜ｙconveyor maxの中で任意の値を持つ実数乱数を示す。本ステップにおいては、把持動作生成部１０６は、対象物体１０３の位置姿勢を用いない。把持動作生成部１０６は、供給部全体の範囲（図１のベルトコンベア１０２の範囲内で且つカメラ１０１の撮像範囲１１２に入っている部分）内の位置をランダムに指定することで、目標位置姿勢R4を生成する。把持動作O4は、時系列的に初期位置姿勢R0と目標位置姿勢R4の間を繋ぐ位置姿勢Rの集合として、（２）式中のR1をR4に置き換えて生成する。本ステップ（Ｓ２１４）の後、Ｓ２０６に進み、ロボット１０７は、把持動作生成部１０６が生成した把持動作O4を実行して、対象物体１０３を把持する。
このように、Ｓ２０１〜Ｓ２１４の動作を実施することで、ロボット１０７を用いて対象物体１０３の把持を適切に行うことが出来る。ロボット１０７は、対象物体１０３を把持した後、対象物体１０３を所定の位置（部位）に組み付ける。
【００３０】
（物体情報取得処理）
次に、Ｓ２０２の物体情報取得処理の詳細について、図３のフローチャートを用いて説明する。図３のフローチャートの説明は、図４〜図８を参照して行う。図３に示した各ステップ（Ｓ３０１〜Ｓ３０８）は、情報取得部１０４が実行する。
Ｓ３０１において、情報取得部１０４は、撮像画像の走査を行い、背景画像との差分を計算して差分画像Ｄを取得する。
図４は、差分画像Ｄの取得を説明する図である。図４（ａ）に示すように、対象物体１０３が存在しない状態で撮影した背景画像Ｂを予め作成（用意）する。背景画像は、図１のベルトコンベア１０２の上部の画像である。図４（ｂ）は、現在の撮像画像Ｃを示す。つまり、図１の状態で撮像した画像が撮像画像Ｃである。対象物体１０３がベルトコンベア１０２に載置されている。図４（ｃ）は差分画像Ｄを示す。背景画像Ｂと撮像画像Ｃとの間で（６）式の様に差分を取り、対象物体１０３を示す画素のみを抽出することにより、差分画像Ｄを求めることができる。
【００３１】
【数６】
0006711591.tif 000007
ここで、Ib、Icおよび Idはそれぞれ背景画像Ｂ、撮像画像Ｃおよび差分画像Ｄを構成する各画素の輝度値を示す。また、Itは差分画像を求めるために使用する輝度差の閾値を示す。撮像画像の全ての画像を走査することにより、（６）式の計算を撮像画像の全ての画素に適用し、差分画像Ｄを求める。
図５は、差分画像Ｄの対象物体１０３の重心ｇと、対象物体１０３の長辺方向を示す直線ｈとを示す図である。直線ｈは、対象物体１０３の重心ｇを通っており、対象物体１０３の主軸であると言える。
Ｓ３０２において、情報取得部１０４は、撮像画像中における対象物体１０３の位置を規定する重心g(xg, yg)と主軸ｈとを計算する。図５は、対象物体１０３の差分画像Ｄにおける重心g(xg, yg)と主軸ｈとを示している。対象物体１０３の重心ｇは、以下の（７）式で表される。
【００３２】
【数７】
0006711591.tif 000008
ここで、ｘdとｙdは、差分画像Ｄ中の、画素の輝度値が０よりも大きい画素ｄの各位置（ｘ座標位置とｙ座標位置）を示し、ｍDは画素数を示す。また、主軸となる直線ｈは、以下の（８）式で表される。図５の横方向がｘ方向であり、縦方向がｙ方向である。
【００３３】
【数８】
0006711591.tif 000009
Ｓ３０３において、情報取得部１０４は、対象物体１０３のテンプレートマッチングによる認識が可能となるように、差分画像Ｄの各画素位置、回転およびスケールの正規化を行い、図６に示す正規化画像Ｎを取得する。図６の横方向がｘ方向であり、縦方向がｙ方向である。正規化画像を構成する各画素n(xn, yn)は、以下の（９）式で表される。
【００３４】
【数９】
0006711591.tif 000010
ここでｘdmax、ｘdminは、それぞれ差分画像Ｄ中における、画素の輝度値が０よりも大きい画素ｄの全てのｘdの中での最大値と最小値を示す。画素の輝度値が０よりも大きい画素ｄの全ての画素について（９）式を適用することで、正規化画像Ｎを取得する。
Ｓ３０４において、情報取得部１０４は、正規化画像Ｎに対してテンプレートマッチングを行い、現在の対象物体１０３の配置姿勢を認識する。本実施形態では、図７（ａ）、図７（ｂ）および図７（ｃ）に示すように、対象物体１０３の配置姿勢は３種類存在するとする。３種類の配置姿勢を予め上方から（図７の矢印７０１の方向から）観察し、Ｓ３０１〜Ｓ３０３と同様の手順を用いて正規化画像Ｎを生成し、これら正規化画像Ｎを各姿勢のテンプレートT1〜T3とする。図８（ａ）、図８（ｂ）および図８（ｃ）は、図７（ａ）、図７（ｂ）および図７（ｃ）にそれぞれ対応するテンプレートT1、T2、T3を示す。各テンプレートを用いて、以下の（１０）式でテンプレートマッチングを行う。
【００３５】
【数１０】
0006711591.tif 000011
ここで、Inは正規化画像Ｎの各画素の輝度値を示し、ItkはテンプレートTkの各画素の輝度値を示し、ｍNは正規化画像の全画素数を示し、ｅkはテンプレートTkに対するマッチング誤差を示す。求めたｅ1〜ｅ3の中から最小マッチング誤差ｅminを選択し、最小マッチング誤差ｅminに対応するテンプレートTkを用いてマッチング結果を出力する。
Ｓ３０５において、情報取得部１０４は、最小マッチング誤差ｅminに対応するテンプレートTkに対する、撮像画像中の対象物体１０３のスケールｓを計算する。スケールｓは、以下の（１１）式で求められる。
【００３６】
【数１１】
0006711591.tif 000012
ここで、ｓdはＳ３０３の（４）式において求めた数値であり、ｓeminは最小マッチング誤差ｅminに対応するテンプレートTkを予め計算する際に求めたｓdに相当する数値である。
Ｓ３０６において、情報取得部１０４は、物体詳細情報として、対象物体１０３の三次元位置姿勢を示すRpreciseを計算して出力する。Rpreciseは、以下の（１２）式で求められる。
【００３７】
【数１２】
0006711591.tif 000013
ここで、ｆはカメラ１０１の焦点距離を示し、ｚtkは最小マッチング誤差ｅminに対応するテンプレートTkの撮像時における対象物体１０３のｚ方向位置（ｚ座標位置）を示す。焦点距離ｆは、カメラ１０１のキャリブレーションを行うことにより、予め取得しておく。ｚtkは、テンプレートTkの撮像時に実測を行うことにより、予め取得しておく。
Ｓ３０７において、情報取得部１０４は、物体概略情報として、対象物体の三次元の範囲つきの位置姿勢を示すRroughを計算して出力する。Rroughは以下の（１３）式で求められる。
【００３８】
【数１３】
0006711591.tif 000014
ここで、αは対象物体１０３の三次元位置のばらつきと、最小マッチング誤差ｅminとを関連付けるための重みづけ係数を示す。βはｚ軸回転方向のばらつきと最小マッチング誤差ｅminとを関連付けるための重みづけ係数を示す。係数α、βは、予め対象物体１０３を様々な位置、姿勢に配置してテンプレートマッチングを実施して、最小マッチング誤差ｅminと位置、姿勢のばらつきとの間の数値変化を求めて、設定しておく。
Ｓ３０８において、情報取得部１０４は、物体手がかり情報として、対象物体１０３の存在範囲を示す位置範囲ｕを計算して出力する。位置範囲ｕは、以下の（１４）式で求められる。
【００３９】
【数１４】
0006711591.tif 000015
ここでｙdmaxとｙdminは、それぞれ差分画像Ｄ中における、画素の輝度値が０よりも大きい画素ｄの全てのｙdの中での最大値と最小値を示す。
上記したようにロボット１０７の把持動作を制御することによって、本実施形態のロボット制御装置１１４は、撮像画像から得られた対象物体１０３の情報の精度（撮像精度）に応じて把持モードを選択して、対象物体１０３の把持を行うことが出来る。これにより、悪条件下で対象物体１０３の詳細な（正確な）情報が取得できない場合にも、対象物体１０３の把持の成功率を高めることが出来る。
【００４０】
本実施形態では、例えば、ロボット１０７が対象物体１０３を特定位置に嵌め込む動作を行う場合、対象物体１０３の詳細な情報が取得（認識）できたならば（Ｓ２０３：ＹＥＳ）、詳細位置決め把持モードを選択する。そうすることにより、素早く対象物体１０３の嵌め込み動作を行うことが出来る。この場合、対象物体１０３の詳細な（正確な）位置および姿勢が認識できているので、対象物体１０３を再把持することはない。また、対象物体１０３の詳細情報が認識（検出）できず概略情報が検出できた場合（Ｓ２０７：ＹＥＳ）は、概略位置決め把持モードを選択して対象物体１０３の把持を行う。この場合、一旦ロボットハンド１０９で対象物体１０３を把持して、別の場所（例えば、再把持のための載置台）に対象物体１０３を移送する。そして、対象物体１０３を載置台に置いて、再把持を行う。再把持の後、対象物体１０３の嵌めこみ動作を行う。例えば、この載置台の近傍には、対象物体１０３の詳細な位置および姿勢を撮像できる機器が設けられており、対象物体１０３の詳細な位置および姿勢を検出した後、対象物体１０３の把持を速やかに行うことができるようになっている。対象物体１０３の詳細情報と概略情報が検出できず、手がかり情報が検出できた場合（Ｓ２１０：ＹＥＳ）は、位置範囲指定把持モードを選択して把持を行う。この場合も、一旦ロボットハンド１０９で対象物体１０３を把持して、再把持のための載置台等に対象物体１０３を移送する。そして、対象物体１０３を載置台に置いて、再把持を行う。再把持の後、対象物体１０３の嵌めこみ動作を行う。このように、対象物体１０３の位置姿勢を正しく認識できない場合にも、異常停止することなく嵌め込み動作を行えるため、対象物体１０３の把持の成功率を高めることが出来る。
【００４１】
従来のロボット装置は、カメラからの撮像画像を用いて、対象物体の詳細な位置姿勢を認識（検出）し、対象物体の詳細な位置姿勢に基づいて対象物体の把持を行っている。したがって、撮影環境や対象物体の認識条件（状態）が悪い場合には、正確な（詳細な）位置姿勢の認識に失敗し、対象物体の把持が出来なくなる可能性がある。これに対し、本実施形態では、対象物体の詳細な位置姿勢に対応する物体詳細情報だけでなく、大まかな位置姿勢である物体概略情報や、対象物体が存在する手がかりを示す物体手がかり情報を同時に（１つのステップＳ２０２で）取得するための処理を行う。そして、対象物体１０３の撮像画像に基づいて（実際に認識できる対象物体１０３の情報の精度に基づいて）把持モードを選択し、当該把持モードに対応する物体情報を用いて、対象物体１０３の把持を行う。よって、悪条件下で対象物体の詳細な情報が取得できない場合にも、対象物体の把持の成功率を高めることが出来る。
なお、上記の説明において、カメラ１０１と、情報取得部１０４と、把持モード選択部１０５と、把持動作生成部１０６と、ロボット１０７とは、ライン１１０により有線接続されているとしたが、無線接続されてもよい。
【００４２】
実施形態２
本発明は、上記した実施形態１以外の形態でも実施することができる。実施形態１においては、情報取得部１０４は１つのステップ（Ｓ２０２）で３種類の物体情報（物体詳細情報、物体概略情報、物体手がかり情報）の取得処理を行っている。そして、実施形態１では、物体情報の取得処理（Ｓ２０２）の後、実際に認識できた対象物体１０３の情報の精度（撮像精度）に基づいて把持モードを選択（決定）している。実施形態２では、情報取得部１０４は、１つのステップで１種類の物体情報を取得する。つまり、実施形態２では情報取得部１０４における１ステップの処理負荷を低減させる。これによって、最短で動作する場合となる、詳細位置決めモードを選択した際の動作（ロボットシステム全体としての動作）を高速化することができる。
【００４３】
本実施形態で用いるロボットシステムの構成は、実施形態１（図１）で説明したものと同様である。したがって、以下の記載においては、実施形態１と同じ参照符号を使用する。実施形態２においても、カメラ１０１により対象物体１０３を撮像し、情報取得部１０４が当該撮像画像を用いて、対象物体１０３の物体情報を取得し、ロボット１０７が対象物体１０３の把持を行う。
図９は、本実施形態のロボット制御装置１１４の処理を説明するフローチャートである。以下に、図９のステップに従って動作説明を行う。
Ｓ９０１において、カメラ１０１は、対象物体１０３を上方から撮影し、対象物体１０３の撮像画像を取得する。Ｓ９０１は、実施形態１におけるＳ２０１と同じであるので詳細な説明は省略する。
【００４４】
Ｓ９０２において、情報取得部１０４は、Ｓ９０１で取得した撮像画像を用いて物体詳細情報を取得する。情報取得部１０４は、実施形態１におけるＳ３０１〜Ｓ３０６（図３）と同様な手順により物体詳細情報を取得する。このとき、実施形態１と同じように（Ｓ３０１、Ｓ３０４）、差分画像Ｄと最小マッチング誤差ｅminを求める。
Ｓ９０３において、把持モード選択部１０５は、Ｓ９０２で求めた最小マッチング誤差ｅminと予め設定した第１の閾値ｅpreciseとの比較を行う。最小マッチング誤差ｅminが第１の閾値ｅpreciseよりも小さい場合（Ｓ９０３：ＹＥＳ）は、撮像画像から対象物体１０３の詳細な情報（正確な位置と姿勢）が認識できたと判定してＳ９０４へ進む。最小マッチング誤差ｅminが第１の閾値ｅprecise以上の場合（Ｓ９０３：ＮＯ）は、対象物体１０３の詳細情報が認識（検出）できなかったと判定してＳ９０７へ進む。
【００４５】
Ｓ９０４〜Ｓ９０６において、把持モード選択部１０５が把持モード選択を行い、把持動作生成部１０６が把持動作を生成し、ロボット１０７が物体把持動作を行う。Ｓ９０４〜Ｓ９０６の内容は、実施形態１におけるＳ２０４〜２０６と同様であるので、説明を省略する。
Ｓ９０３の判定がＮＯの場合、Ｓ９０７において、情報取得部１０４は、Ｓ９０１で取得した撮像画像を用いて物体概略情報を取得する。情報取得部１０４は、実施形態１におけるＳ３０７と同様な処理により物体概略情報を取得する。
Ｓ９０８において、把持モード選択部１０５は、Ｓ９０２で求めた最小マッチング誤差ｅminと予め設定した第２の閾値ｅroughとの比較を行う。最小マッチング誤差ｅminが第２の閾値ｅroughよりも小さい場合（Ｓ９０８：ＹＥＳ）は、対象物体１０３の概略情報が認識（検出）できたと判定してＳ９０９へ進む。最小マッチング誤差ｅminが第２の閾値ｅrough以上の場合（Ｓ９０８：ＮＯ）は、対象物体１０３の概略情報が認識できなかったと判定してＳ９１１へ進む。
【００４６】
Ｓ９０９および９１０において、把持モード選択および把持動作生成を行う。Ｓ９０９の内容は実施形態１におけるＳ２０８と同様であり、Ｓ９１０の内容は実施形態１における２０９と同様であるので、説明は省略する。Ｓ９１０の後、Ｓ９０６に進み、物体把持動作を実行する。
Ｓ９０８の判定がＮＯの場合、Ｓ９１１において、情報取得部１０４は、Ｓ９０１で取得した撮像画像を用いて物体手がかり情報を取得する。情報取得部１０４は、実施形態１におけるＳ３０８と同様な処理により物体手がかり情報を取得する。
Ｓ９１２において、把持モード選択部１０５は、Ｓ９０２で求めた差分画像Ｄ中における、画素の輝度値が０よりも大きい画素の画素数ｍDと、予め設定した閾値である画素数閾値ｍclueとの比較を行う。画素数ｍDが画素数閾値ｍclue以上の場合（Ｓ９１２：ＹＥＳ）は、対象物体１０３の手がかりとなる情報が認識できたと判定してＳ９１３に進む。画素数ｍDが画素数閾値ｍclueよりも小さい場合（Ｓ９０８：ＮＯ）は、対象物体１０３の手がかりとなる情報が認識できなかったと判定してＳ９１５へ進む。
【００４７】
Ｓ９１３およびＳ９１４において、把持モード選択および把持動作生成を行う。Ｓ９１３の内容は実施形態１におけるＳ２１１と同様であり、Ｓ９１４の内容は実施形態１における２１２と同様であるので、説明は省略する。Ｓ９１４の後、Ｓ９０６に進み、物体把持動作を実行する。
Ｓ９０８の判定がＮＯの場合、Ｓ９１５において把持モード選択部１０５がランダム把持モードを選択し、Ｓ９１６において把持動作生成部１０６が把持動作を生成する。Ｓ９１５の内容は実施形態１におけるＳ２１３と同様であり、Ｓ９１６の内容は実施形態１における２１４と同様であるので、説明は省略する。Ｓ９１６の後、Ｓ９０６に進み、物体把持動作を実行する。
このように、Ｓ９０１〜９１６の動作を実施することで、ロボット１０７を用いて対象物体１０３の把持を行うことが出来る。
【００４８】
上記したようにロボット１０７の把持動作を制御することによって、本実施形態では、各物体情報の取得を逐次（同時ではなく順次）行っている。物体情報を逐次取得することにより、例えば、物体詳細情報を取得した後に、対象物体１０３の詳細な情報が認識できたならば（Ｓ９０３：ＹＥＳ）、物体概略情報の取得（Ｓ９０７）は行わないし、物体手がかり情報の取得（Ｓ９１１）も行わない。また、物体概略情報を取得した後に、対象物体１０３の概略情報が認識できれば（Ｓ９０８：ＹＥＳ）、物体手がかり情報の取得（Ｓ９１１）は行わない。つまり、実施形態２では各物体情報の取得を逐次行うことにより、実施形態１よりも低い処理負荷で所望の物体情報を取得することができる場合がある。この場合、情報取得部１０４における処理時間を短縮することができる。
実施形態２では、各物体情報の取得を逐次行うので、情報取得部１０４において１ステップで１種類ずつ物体情報の取得を行うことになる。これにより、１ステップの処理負荷を低減させている。１ステップの処理負荷を低減することができれば、１ステップにおける情報取得部１０４の処理時間を短縮することができる。
【００４９】
本実施形態においても、物体情報の取得を行い、撮像画像に基づいて把持モードを選択（決定）して、対象物体１０３の把持を行うことが出来る。したがって、実施形態１の効果に加えて、詳細位置決め把持モード時及び概略位置決め把持モード時における動作を高速化することができる。特に、対象物体の撮影環境が良好で、詳細位置決め把持モードを選択する場合が多いロボットにおいては、本実施形態がより好適である。
【００５０】
実施形態３  
本発明は上記した実施形態１および２に限定されない。実施形態１においては、情報取得部１０４で複数種類の物体情報の取得を行い、実際に得られる（認識できる）対象物体１０３の情報の精度に基づいて把持モードを決定している。このようにせずに、情報取得部１０４は物体詳細情報の取得のみを行い、撮像画像に基づいて把持モードを選択するという構成にしてもよい。この構成のロボット制御装置を実施形態３として説明する。実施形態３で用いるロボットシステムの構成は、実施形態１（図１）で説明したものと同様である。したがって、以下の記載においては、実施形態１と同じ参照符号を使用する。実施形態３においても、カメラ１０１により対象物体１０３を撮像し、情報取得部１０４が当該撮像画像を用いて、対象物体１０３の物体情報を取得し、ロボット１０７が対象物体１０３の把持を行う。実施形態３では物体詳細情報のみを取得し、撮像画像に基づいて把持モードを選択することによって、ロボット１０７の動作の高速化が可能になる。
【００５１】
図１０は、本実施形態のロボット制御装置１１４の処理を説明するフローチャートである。以下に、図１０のステップに従って動作説明を行う。
Ｓ１００１において、カメラ１０１は、対象物体１０３を上方から撮影し、撮像画像を取得する。Ｓ１００１は、実施形態１のＳ２０１と同様のステップである。
Ｓ１００２において、情報取得部１０４は、Ｓ１００１で取得した撮像画像を用いて物体詳細情報を取得する。具体的には、情報取得部１０４は、実施形態１におけるＳ３０１〜Ｓ３０６と同様の処理を行う。このとき、実施形態１と同じように（Ｓ３０４）、最小マッチング誤差ｅminを求める。
Ｓ１００３において、把持モード選択部１０５は、Ｓ１００２で求めた最小マッチング誤差ｅminと予め設定した閾値ｅpreciseとの比較を行う。最小マッチング誤差ｅminが閾値ｅpreciseよりも小さい場合（Ｓ１００３：ＹＥＳ）は、対象物体１０３の詳細情報が認識（取得）できたと判定してＳ１００４へ進む。最小マッチング誤差ｅminが閾値ｅprecise以上の場合（Ｓ１００３：ＮＯ）は、対象物体１０３の詳細情報が認識できていないと判定してＳ１００７へ進む。
【００５２】
Ｓ１００４〜１００６において、把持モード選択部１０５が把持モード選択を行い、把持動作生成部１０６が把持動作を生成し、ロボット１０７が物体把持動作を行う。Ｓ１００４〜Ｓ１００６の内容は、実施形態１におけるＳ２０４〜２０６と同様であるので、説明を省略する。
Ｓ１００３の判定がＮＯの場合、Ｓ１００７において、把持モード選択部１０５がランダム把持モードを選択し、Ｓ１００８において把持動作生成部１０６が把持動作を生成する。Ｓ１００７の内容は実施形態１におけるＳ２１３と同様であり、Ｓ１００８の内容は実施形態１における２１４と同様であるので、説明は省略する。Ｓ１００８の後、Ｓ１００６に進み、物体把持動作を実行する。
このように、Ｓ１００１〜１００８の動作を実施することで、ロボット１０７を用いて対象物体１０３の把持を行うことが出来る。
【００５３】
上記したように、本実施形態では、物体詳細情報の取得処理のみを行い、実際に得られる対象物体１０３の情報の精度（撮像精度）に基づいて（Ｓ１００３）把持モードを選択して、対象物体の把持を行う。これにより、情報取得部１０４における処理時間が短くなり、かつ把持モード選択部１０５におけるステップの分岐も大幅に削減される（図２と図１０を比較すると、図１０ではＳ２０７とＳ２１０に相当するステップがない）。したがって、実施形態１の効果に加えて、ロボット制御装置１１４の処理速度やロボット１０７の動作全体が高速化する。対象物体１０３が把持しやすく、ランダム把持モードにおいても把持が成功しやすいようなロボットにおいては、本実施形態がより好適である。
【００５４】
変形例
本発明は上記した実施形態１〜３に限定されない。例えば、上記した実施形態において以下のような変更や追加をしてもよい。
（ロボットの動作が実施形態１とは異なる変形例）
実施形態１におけるロボット１０７は、対象物体１０３を把持した後に、対象物体１０３を所定位置（部位）に組み付けるとしたが、ロボット１０７の動作はこれに限定されない。例えば、撮像した物体情報の情報の精度に応じて選択した把持モードによって対象物体１０３を把持した後、ロボット１０７は、対象物体１０３の配置位置を変更するようにしてもよい。
【００５５】
具体的には、対象物体１０３の詳細情報が得られた（認識できた）場合には、ロボット制御装置１１４は、対象物体１０３が正常な状態の物体であると判定し、正常物体用のベルトコンベア（図示せず）に対象物体１０３を移送配置する。対象物体１０３詳細情報が得られず、概略情報が得られた場合には、ロボット制御装置１１４は、対象物体１０３に問題がある可能性があると判定し、ロボット１０７によって、検査用のベルトコンベア（図示せず）に対象物体１０３を移送配置する。対象物体１０３の概略情報が得られず、手がかり情報が得られた場合には、ロボット制御装置１１４は、対象物体１０３に何らかの異常があると判定し、ロボット１０７によって、異常物体用のベルトコンベア（図示せず）に対象物体１０３を移送配置する。手がかり情報も得られない場合には、ロボット制御装置１１４は、対象物体１０３を廃棄物用のベルトコンベア（図示せず）に移送配置するようにロボット１０７を制御する。このように、取得できた対象物体１０３の情報の精度に応じた把持モードを選択し、さらにその後の配置位置（移送先）を変更することで、対象物体１０３の状態に適した動作を行うことが出来る。
【００５６】
（三次元撮像センサを用いる変形例）
実施形態１〜３におけるカメラ１０１は、対象物体１０３を上方から撮影し、物体計測値である撮像画像を取得するので、上記した実施形態においてカメラ１０１は計測部であるが、本発明の計測部は、カメラ１０１に限定されない。本発明の計測部は、対象物体についての物体情報（位置、姿勢、画素、輝度など）を計算するための物体計測値が取得できれば、どのようなものであってもよい。例えば、物体計測値として対象物体の画素単位の輝度値でなく、計測部からの距離値を取得出来るTime-of-Flight形式の三次元撮像センサを計測部として（カメラ１０１の代わりに）用いてもよい。三次元撮像センサを用いることで、物体詳細情報としてより正確な位置姿勢を求めることができる。また、三次元撮像センサを用いることで、物体手がかり情報としても輝度差分でなく距離差分を用いることができるので、より正確な物体手がかり情報を得ることが出来るようになる。
【００５７】
（画像センサ以外の計測部を用いる変形例）
ロボット制御装置またはロボットシステムの計測部は、画像センサに限定されない。例えば、ロボットシステムの計測部は、超音波を用いた測定や、探査針を用いた接触測定により計測部からの距離を計測し、上記の三次元撮像センサと同様の物体計測値を得てもよい。超音波や接触測定を用いると、対象物体表面の光の反射率に依存しない計測が可能となるため、透過性のある対象物体を把持する場合などに好適である。
本発明のロボットシステムの計測部は、対象物体についての物体情報を計算するための物体計測値が取得できれば、どのようなものであってもよい。
【００５８】
（詳細位置決め把持モードを省略した変形例）
実施形態１および２における情報取得部１０４では、３つの物体情報（物体詳細情報、物体概略情報、物体手がかり情報）を求めている。しかし、ロボット１０７が扱う対象物体の形状・サイズ等やロボット１０７の作業目的によっては、必ずしも３つの物体情報を求める必要は無い。例えば、対象物体の把持が容易で、かつ把持後に正確な組み付けでなく、単純な平置きを行うような作業の場合は、物体詳細情報を取得せず、より簡易な物体概略情報と物体手がかり情報とを取得するようにしてもよい。あるいは、物体詳細情報を取得せず、物体概略情報と物体手がかり情報のいずれかを作業目的等に応じて選択的に取得するようにしてもよい。この場合、把持モードも物体情報に対応して、詳細位置決め把持モードでなく、概略位置決め把持モード、位置範囲指定把持モードを選択して把持動作を生成する。このように、対象物体の形状・サイズ等とロボット１０７の作業目的等に応じて物体詳細情報が必要ないと考えられる場合には、物体詳細情報の計算（取得）を省略することで、情報取得部１０４における処理の高速化を図ることが出来る。
【００５９】
このような構成のロボットシステムにするには、例えば、図１のカメラ１０１と情報取得部１０４との間に、制御部を設ける。そして、制御部は、対象物体１０３の形状・サイズ等および／またはロボットの作業目的に基づいて、情報取得部１０４に対して、物体詳細情報の取得処理をしないように指示する。つまり、制御部は、３つの物体情報のうち不要な物体情報を検出する。この検出結果に基づいて、制御部は、例えば、物体詳細情報の取得処理を省略するための制御を行う。その結果、図２のＳ２０３〜Ｓ２０５は実行されなくなる。図２のＳ２０２の後、Ｓ２０３に進まず、Ｓ２０７に進むことになる。ロボットの作業目的は、予め、制御部に入力されているとする。
【００６０】
（物体詳細情報の算出手法を変えた変形例）
実施形態１〜３における情報取得部１０４では、物体詳細情報を算出するために、重心位置ｇと長辺方向の主軸ｈを求めて正規化を行い、テンプレートマッチングを計算しているが、本発明はこのような算出手法に限定されない。対象物体１０３の正確な位置姿勢を求めることができる手法であれば、正規化処理やテンプレートマッチング以外の手法を用いてもよい。例えば、対象物体が円形状に近く、長辺の主軸が安定して求められない場合は、対象物体の画像の正規化が困難になる。このような場合には、対象物体の回転方向に依存しないＳＩＦＴ（Ｓｃａｌｅ−Ｉｎｖａｒｉａｎｔ  Ｆｅａｔｕｒｅ  Ｔｒａｎｓｆｏｒｍ）などの画像特徴量を検出、記録しておき、正規化を行わずに直接マッチングするようにしてもよい。これにより、より多様な対象物体の形状にも対応できるようになる。
【００６１】
（物体概略情報の算出手法を変えた変形例）
実施形態１〜３における情報取得部１０４では、物体概略情報を算出するために、テンプレートマッチング時の最小マッチング誤差に重みづけを掛けて対象物体１０３の位置・姿勢にばらつきを与えているが、本発明はこのような算出手法に限定されない。例えば、対象物体の画像の正規化が困難な場合は、ＳＩＦＴによる上位のマッチング候補と、それに対応する位置姿勢をランダムに選択してもよい。このとき、最小マッチング誤差ｅminに相当する値は選択した上位マッチング結果の誤差を用いればよい。これにより、より多様な対象物体の形状に対応できるようになる。さらに、ランダムに上位のマッチング候補の位置姿勢を取ることで、誤認識による局所解を用いて、誤った位置姿勢を選択し続けるという問題を回避することができる。
【００６２】
（物体手がかり情報の算出手法を変えた変形例）
実施形態１〜３における情報取得部１０４は、物体手がかり情報を算出する際に、差分画像Ｄが存在する領域を用いているが、本発明はこれに限定されない。例えば、背景の輝度と対象物体の輝度が近い場合には、輝度差分に変わって輝度分散値、輝度エッジや輝度コーナの位置、数などの値を用いて物体手がかり情報を求めてもよい。ベルトコンベアなどの背景画像の輝度は均一な値であるのに対し、対象物体は相対的に複雑な形状を有し、輝度分散、輝度エッジ、輝度コーナを多く有することが予想される。このように、対象物体が有すると予想できる値が存在する位置範囲を求めることで物体手がかり情報とすることが出来る。
【００６３】
また、前記した三次元撮像センサを用いる場合は、距離差分以外にも、対象物体の形状に応じて最近傍距離、近傍領域の位置、面積、距離分散値、距離エッジ、距離コーナの位置、数などの値を用いて物体手がかり情報を求めてもよい。三次元撮像センサからベルトコンベアなどの背景までの距離は均一な距離であるのに対し、対象物体は相対的に複雑な形状を有し、距離分散、距離エッジ、距離コーナを多く有することが予想される。また、三次元撮像センサから対象物体までの距離は、三次元撮像センサからベルトコンベアまでの距離よりも近距離となるため、その最近傍位置、もしくは近傍領域には対象物体が存在することが予想される。このように、対象物体が有すると予想できる値が存在する位置範囲を、物体手がかり情報とすることが出来る。
あるいは、対象物体の位置部分に貼付されている特定のバーコードや、対象物体に特有の模様や形状を物体手がかり情報としてもよい。対象物体がこれらの固有の特徴を有する場合には、より良好に物体手がかり情報を取得することが出来る。
本発明のロボット制御装置の情報取得部は、対象物体についての物体情報が計算できるものであれば、どのようなものであってもよい。  
【００６４】
（把持部を変えた変形例）
実施形態１〜３におけるロボットの把持部は、図１に示す二本指の標準的なロボットハンド１０９であるが、本発明はこれに限定されない。例えば、ロボットハンドは、様々な形状の対象物体を、特定の姿勢以外でも同一動作で把持できるようなユニバーサルハンドであってもよい。ユニバーサルハンドは、例えば、薄いゴム製の袋に粉体を詰め、内部の空気をポンプで吸い出すことによってゴム部を硬化させて対象物体の把持を行うことができるタイプのユニバーサルハンドである。
本発明のロボットの把持部は、対象物体を任意の姿勢で把持することが可能な把持部であれば、どのようなものであってもよい。
【００６５】
（ハードウエア構成）
図１１はロボットシステムのハードウエア構成の一例を示すブロック図である。図１１に示されるように、ロボットシステムは、カメラ１０１と、ロボット制御装置１１４と、ロボット１０７とを有する。ロボット制御装置１１４は、画像処理部１２０、インターフェース１２１、ＣＰＵ１２２、ＲＯＭ１２３、ＲＡＭ１２４、ＨＤＤ１２５およびインターフェース１２６を有する。ＣＰＵ１２２は、ロボット制御装置１１４の演算部である。ロボット制御装置１１４は、記憶部としてＲＯＭ１２３とＲＡＭ１２４を備えている。インターフェース１２１、ＣＰＵ１２２、ＲＯＭ１２３、ＲＡＭ１２４、ＨＤＤ１２５およびインターフェース１２６は、バス１２７で相互接続されている。ＲＯＭ１２３には、ＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）等の基本プログラムが格納されている。ＲＡＭ１２４は、ＣＰＵ１２２の演算処理結果等の各種データを一時的に記憶する。ＨＤＤ１２５は、ＣＰＵ１２２の演算結果や外部から取得した各種データを記憶すると共に、ＣＰＵ１２２に各種の演算処理を実行させるためのプログラム１２８を記憶する。ＣＰＵ１２２は、ＨＤＤ１２５に記憶されたプログラム１２８に基づいてロボット１０７の把持動作等を制御する。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略である。ＨＤＤは、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略である。
【００６６】
インターフェース１２１には、画像処理部１２０が接続されている。画像処理部１２０は、カメラ１０１から入力された撮像画像から対象物体１０３の位置および姿勢を求める画像処理を行い、対象物体１０３の位置および姿勢を示すデータをインターフェース１２１およびバス１２７を介してＣＰＵ１２２に送信する。もう１つのインターフェース１２６には、ロボット１０７が接続されている。ＣＰＵ１２２は、把持動作データ生成用のプログラム１２８に基づいてロボットアーム１０９の把持動作を計算し、ロボットアームおよびロボットハンドの駆動部に指令を送信する。なお、バス１２７には、書き換え可能な不揮発メモリや外付けＨＤＤ等の外部記憶装置が接続されてもよい。
【００６７】
（コンピュータによる実施形態）
実施形態１〜３における情報取得部１０４、把持モード選択部１０５および把持動作生成部１０６は、それらの機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する形式で設けられてもよい。本発明の目的は、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成される。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００６８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現される。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も、本発明の技術的範囲に含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれる。そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も、本発明の技術的範囲に含まれる。
【００６９】
（その他の変形例）
実施形態１および２ではロボット１０７の把持モードが４つあるとし、実施形態３では把持モードが２つであるとしたが、把持モードの数は２または４に限定されない。
本発明のロボット１０７の把持モード選択部は、対象物体の撮像画像に基づいて把持モードを選択するものであれば、どのようなものであってもよい。
本発明のロボット制御装置１１４の把持動作生成部は、選択された把持モードに従って把持動作を生成するものであれば、どのようなものであってもよい。
ロボット制御装置１１４は、カメラ１０１（または三次元撮像センサ）と、情報取得部１０４と、把持モード選択部１０５と、把持動作生成部１０６とにより構成さてもよい。
本発明は、上記した実施形態のうちの１つ以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。ＡＳＩＣは、Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略である。
【符号の説明】
【００７０】
１０１…カメラ、１０４…情報取得部、１０５…把持モード選択部、１０６…把持動作生成部、１０７…ロボット、１０８…ロボットアーム、１０９…ロボットハンド、１１４…ロボット制御装置
【図１】
0006711591.tif 000016
【図２】
0006711591.tif 000017
【図３】
0006711591.tif 000018
【図４】
0006711591.tif 000019
【図５】
0006711591.tif 000020
【図６】
0006711591.tif 000021
【図７】
0006711591.tif 000022
【図８】
0006711591.tif 000023
【図９】
0006711591.tif 000024
【図１０】
0006711591.tif 000025
【図１１】
0006711591.tif 000026