(57)【要約】  【課題】ロボットによる作業の失敗をより精度よく防ぐ。  【解決手段】ロボット制御方法は、撮像部から撮像画像を取得する画像取得ステップと、前記取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理ステップと、前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記計算されたピクセル値比に対応する補正情報を取得する補正情報取得ステップと、前記取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御ステップとを含む。【選択図】図１
2014184542.tif 000002
【特許請求の範囲】
【請求項１】
撮像部から撮像画像を取得する画像取得ステップと、
前記画像取得ステップで取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理ステップと、
前記ワークに対するロボットの所定の動作についての補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理ステップで計算されたピクセル値比に対応する補正情報を取得する補正情報取得ステップと、
前記補正情報取得ステップで取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御ステップと
を含むことを特徴とするロボット制御方法。
【請求項２】
請求項１に記載のロボット制御方法であって、
前記記憶部は、前記ピクセル値比の値に対応する補正情報を複数格納しており、
前記補正情報取得ステップは、前記画像処理ステップで計算されたピクセル値比に対応する前記複数の補正情報のうち、定義された条件を満たす補正情報を取得する
ことを特徴とするロボット制御方法。
【請求項３】
請求項２に記載のロボット制御方法であって、
前記補正情報取得ステップは、前記画像処理ステップで計算されたピクセル値比に対応する前記複数の補正情報それぞれについて、前記ロボットの所定の動作を当該補正情報を用いて補正した場合の予測動作時間を計算し、前記予測動作時間が最も短い補正情報を取得する
ことを特徴とするロボット制御方法。
【請求項４】
請求項２又は３に記載のロボット制御方法であって、
前記補正情報取得ステップは、前記画像取得ステップで計算されたピクセル値比よりも値が小さくかつ最も値が近いピクセル値比に対応する補正情報を取得する
ことを特徴とするロボット制御方法。
【請求項５】
請求項２〜４いずれか一項に記載のロボット制御方法であって、
前記画像処理ステップは、前記ワークの画像領域に含まれる各ピクセル値と、前記背景の画像領域に含まれる各ピクセル値とに基づいて、よりピクセル値比が小さくなるピクセル値の組み合わせを選ぶことでピクセル値比を計算する
ことを特徴とするロボット制御方法。
【請求項６】
請求項２〜５いずれか一項に記載のロボット制御方法であって、
前記記憶部に格納される前記ピクセル値比は、複数のワークを第一撮像条件で前記撮像部により撮像した場合の前記複数のワークそれぞれについてのピクセル値比であり、
前記記憶部に格納される前記ピクセル値比の値に対応する前記複数の補正情報は、前記複数のワークを前記第一撮像条件とは異なる複数の第二撮像条件で前記撮像部により撮像し、前記複数のワークそれぞれについて各撮像条件における検出誤差を特定し、各検出誤差の値に応じて決定された補正内容を含む
ことを特徴とするロボット制御方法。
【請求項７】
撮像部から撮像画像を取得する画像取得部と、
前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、
前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、
前記補正情報取得部で取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御部と
を有することを特徴とするロボット制御装置。
【請求項８】
撮像部から撮像画像を取得する画像取得ステップと、
前記画像取得ステップで取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理ステップと、
前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理ステップで計算されたピクセル値比に対応する補正情報を取得する補正情報取得ステップと、
前記補正情報取得ステップで取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御ステップと
をロボット制御装置に実行させるプログラム。
【請求項９】
可動部と、
撮像部から撮像画像を取得する画像取得部と、
前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、
前記ワークに対する前記可動部の所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、
前記補正情報取得部で取得された補正情報を用いて、前記可動部の所定の動作を補正し、前記可動部の動作を制御する動作制御部と
を有することを特徴とするロボット。
【請求項１０】
ロボットとロボット制御装置を備えるロボットシステムであって、
前記ロボットは、
可動部を有し、
前記ロボット制御装置は、
撮像部から撮像画像を取得する画像取得部と、
前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、
前記ワークに対する前記可動部の所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、
前記補正情報取得部で取得された補正情報を用いて、前記可動部の所定の動作を補正し、前記可動部の動作を制御する動作制御部とを有する
ことを特徴とするロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット制御方法、ロボット制御装置、ロボット、ロボットシステム、及びプログラムに関する。
【背景技術】
【０００２】
製造現場において、カメラなどの撮像装置から得られる画像を用いて、部品などの作業対象物（以下、「ワーク」ともいう。）の位置及び姿勢を検出し、検出したワークに対する作業をロボットにより実行するロボットシステムが知られている。
【０００３】
例えば、特許文献１には、教示された作業手順の再生時のロボットの位置と、教示された作業手順におけるロボットの位置との間に誤差を検出した場合に、作業手順を修正するロボット制御装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２３０２３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上記のようなロボットシステムにおいては、カメラの撮像条件や撮像環境は、ワークの検出精度に大きな影響を与えるとともに、当該ワークの検出結果に基づくロボットの動作にも影響を与える。すなわち、ユーザーが期待する正確さや精密さで、ロボットが動作しない場合が存在する。この場合、ロボットとワークが衝突したり、ロボットがワークを不安定に把持したりというように、ロボットが作業に失敗する可能性がある。
【０００６】
なお、特許文献１は、カメラの撮像条件や撮像環境に応じたワークの検出精度の影響を考慮するものではない。また、位置及び姿勢検出手段や接触状態検知手段により、ロボットのワークに対する衝突などの検出を行ってから、事後的に作業手順を修正するものである。
【０００７】
本発明は、ロボットによる作業の失敗をより精度よく防ぐことを目的とする。
【課題を解決するための手段】
【０００８】
上記の課題を解決する本発明の第一の態様は、撮像部から撮像画像を取得する画像取得ステップと、前記画像取得ステップで取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理ステップと、前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理ステップで計算されたピクセル値比に対応する補正情報を取得する補正情報取得ステップと、前記補正情報取得ステップで取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御ステップとを含むことを特徴とするロボット制御方法である。このようにすれば、ワークと当該ワークの背景のピクセル値とのピクセル値比に応じてロボットの動作が補正されるため、ワークの検出精度等が低下してもロボットによる作業の失敗をより精度よく防ぐことができる。
【０００９】
前記記憶部は、前記ピクセル値比の値に対応する補正情報を複数格納しており、前記補正情報取得ステップは、前記画像処理ステップで計算されたピクセル値比に対応する前記複数の補正情報のうち、定義された条件を満たす補正情報を取得することを特徴としていてもよい。このようにすれば、複数の補正情報の中から条件を満たす補正条件が選択されるため、ロボットによる作業の失敗をより精度よく防ぐことができる。
【００１０】
前記補正情報取得ステップは、前記画像処理ステップで計算されたピクセル値比に対応する前記複数の補正情報それぞれについて、前記ロボットの所定の動作を当該補正情報を用いて補正した場合の予測動作時間を計算し、前記予測動作時間が最も短い補正情報を取得することを特徴としていてもよい。このようにすれば、なるべくロボットの動作時間を増加させずに、ロボットによる作業の失敗をより精度よく防ぐことができる。
【００１１】
前記補正情報取得ステップは、前記画像取得ステップで計算されたピクセル値比よりも値が小さくかつ最も値が近いピクセル値比に対応する補正情報を取得することを特徴としていてもよい。このようにすれば、ワークの検出精度等がより悪い状況を想定して、当該状況に応じた補正情報が選択されるため、ロボットの作業の失敗がより防ぎ易くなる。
【００１２】
前記画像処理ステップは、前記ワークの画像領域に含まれる各ピクセル値と、前記背景の画像領域に含まれる各ピクセル値とに基づいて、よりピクセル値比が小さくなるピクセル値の組み合わせを選ぶことでピクセル値比を計算することを特徴としていてもよい。このようにすれば、ワークの検出精度等がより悪い状況を想定して、当該状況に応じた補正情報が選択されるため、ロボットの作業の失敗がより防ぎ易くなる。
【００１３】
前記記憶部に格納される前記ピクセル値比は、複数のワークを第一撮像条件で前記撮像部により撮像した場合の前記複数のワークそれぞれについてのピクセル値比であり、前記記憶部に格納される前記ピクセル値比の値に対応する前記複数の補正情報は、前記複数のワークを前記第一撮像条件とは異なる複数の第二撮像条件で前記撮像部により撮像し、前記複数のワークそれぞれについて各撮像条件における検出誤差を特定し、各検出誤差の値に応じて決定された補正内容を含むことを特徴としていてもよい。このように、補正情報は、ロボットによる実際の作業の対象となるワークを、事前に様々な撮像条件で撮像することで得られる検出誤差に基づいて決定されているため、ロボットによる実際の作業の失敗をより精度よく防ぐことができる。
【００１４】
上記の課題を解決する本発明の第二の態様は、撮像部から撮像画像を取得する画像取得部と、前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、前記補正情報取得部で取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御部とを有することを特徴とするロボット制御装置である。このようにすれば、ワークと当該ワークの背景のピクセル値とのピクセル値比に応じてロボットの動作が補正されるため、ワークの検出精度等が低下してもロボットによる作業の失敗をより精度よく防ぐことができる。
【００１５】
上記の課題を解決する本発明の第三の態様は、撮像部から撮像画像を取得する画像取得ステップと、前記画像取得ステップで取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理ステップと、前記ワークに対するロボットの所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理ステップで計算されたピクセル値比に対応する補正情報を取得する補正情報取得ステップと、前記補正情報取得ステップで取得された補正情報を用いて、前記ロボットの所定の動作を補正し、前記ロボットの動作を制御する動作制御ステップとをロボット制御装置に実行させるプログラムである。このようにすれば、ワークと当該ワークの背景のピクセル値とのピクセル値比に応じてロボットの動作が補正されるため、ワークの検出精度等が低下してもロボットによる作業の失敗をより精度よく防ぐことができる。
【００１６】
上記の課題を解決する本発明の第四の態様は、可動部と、撮像部から撮像画像を取得する画像取得部と、前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、前記ワークに対する前記可動部の所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、前記補正情報取得部で取得された補正情報を用いて、前記可動部の所定の動作を補正し、前記可動部の動作を制御する動作制御部とを有することを特徴とするロボットである。このようにすれば、ワークのピクセル値比に応じてロボットの動作が補正されるため、ワークと当該ワークの背景のピクセル値との検出精度等が低下してもロボットによる作業の失敗をより精度よく防ぐことができる。
【００１７】
上記の課題を解決する本発明の第五の態様は、ロボットとロボット制御装置を備えるロボットシステムであって、前記ロボットは、可動部を有し、前記ロボット制御装置は、撮像部から撮像画像を取得する画像取得部と、前記画像取得部で取得された撮像画像に基づいて、ワークを検出するとともに、前記ワークのピクセル値と当該ワークの背景のピクセル値とのピクセル値比を計算する画像処理部と、前記ワークに対する前記可動部の所定の動作について補正を行う、ピクセル値比の値に対応する補正情報を格納した記憶部から、前記画像処理部で計算されたピクセル値比に対応する補正情報を取得する補正情報取得部と、前記補正情報取得部で取得された補正情報を用いて、前記可動部の所定の動作を補正し、前記可動部の動作を制御する動作制御部とを有することを特徴とする。このようにすれば、ワークと当該ワークの背景のピクセル値とのピクセル値比に応じてロボットの動作が補正されるため、ワークの検出精度等が低下してもロボットによる作業の失敗をより精度よく防ぐことができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第一実施形態に係るロボットシステム１０の概略構成の一例を示す図である。
【図２】ロボット制御装置１の機能構成の一例を示す図である。
【図３】撮像条件情報テーブル１４００の一例を示す図である。
【図４】検出部品情報テーブル１５００の一例を示す図である。
【図５】検出誤差情報テーブル１６００の一例を示す図である。
【図６】動作補正情報テーブル１７００の一例を示す図である。
【図７】コンピューター６０の概略構成の一例を示す図である。
【図８】検出誤差情報生成処理（その１）の一例を示すフロー図である。
【図９】検出誤差情報生成処理（その２）の一例を示すフロー図である。
【図１０】部品Ｗと背景のピクセル値比の例を示す図である。
【図１１】動作補正情報生成処理の一例を示すフロー図である。
【図１２】補正要素Ａ１の設定処理の一例を示すフロー図である。
【図１３】補正要素Ａ２の設定処理の一例を示すフロー図である。
【図１４】補正要素Ａ３の設定処理の一例を示すフロー図である。
【図１５】補正要素Ａ４の設定処理の一例を示すフロー図である。
【図１６】補正要素Ａ５の設定処理の一例を示すフロー図である。
【図１７】動作制御処理の一例を示すフロー図である。
【発明を実施するための形態】
【００１９】
本発明の第一実施形態について、図面を参照して説明する。
【００２０】
図１は、本発明の第一実施形態に係るロボットシステム１０の概略構成の一例を示す図である。ロボットシステム１０は、ロボット制御装置１と、ロボット２とを備える。
【００２１】
ロボット制御装置１は、ロボット２の全体を制御する。ロボット制御装置１は、例えば、ロボット２が備える撮像部Ｆによる撮像を制御する。そして、ロボット制御装置１は、撮像部Ｆで撮像された画像データを用いて部品Ｗの位置及び姿勢を特定し、当該特定した部品Ｗを把持するなどの目的の作業をロボット２に実行させるための制御命令を生成し、ロボット２に送る。このようにして、ロボット制御装置１は、ロボット２の動作を制御する。
【００２２】
ロボット２は、リンク２１及びジョイント２２を含むアームと、アームの先端部に設けられたハンド２３と、アームの先端部とハンド２３との間に設けられた力覚センサー２４と、を含む可動部２０を有する。ハンド２３は、例えば、複数の指を備え、少なくとも２本の指で部品Ｗを把持することができる。力覚センサー２４は、例えば、ハンド２３に加えられた外力などを検出する。
【００２３】
なお、可動部２０には、ジョイント２２やハンド２３等の各部を動作させるため、例えば、アクチュエーター（不図示）が備えられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、例えば、ロボット制御装置１によるロボット２のフィードバック制御などに用いられる。
【００２４】
ロボット２は、ロボット制御装置１から与えられる制御命令に従って、各ジョイント２２を連動させて駆動することにより、アームの先端部の位置を、所定の可動範囲内で、自在に移動させたり、自由な方向へ向けたりすることができる。また、ハンド２３でワークなどを把持したり解放したりすることができる。なお、力覚センサー２４の出力は、ロボット制御装置１に送られ、ロボット制御装置１によるロボット２のインピーダンス制御などに用いられる。
【００２５】
また、ロボット２には、カメラなどの撮像部Ｆ（第一撮像部Ｆ１、第二撮像部Ｆ２）が設けられている。撮像部Ｆは、ロボット制御装置１の制御により、ロボット２の外部環境（例えば、作業台３付近）を撮像して画像データを生成し、ロボット制御装置１に出力する。
【００２６】
本実施形態では、第一撮像部Ｆ１は、ロボット２の胴体部などに設けられており、ロボット２の動作により被写体までの距離を自由に変えることはできない。一方、第二撮像部Ｆ２は、可動部２０に設けられており、可動部２０の動作により位置及び姿勢を変え、被写体までの距離を変えることができる。以下では、第二撮像部Ｆ２は、第一撮像部Ｆ１よりも作業台３に近い位置で撮像を行うものとし、第二撮像部Ｆ２の撮像解像度は第一撮像部Ｆ１の撮像解像度よりも大きくなるものとする。
【００２７】
上記のロボットシステム１０及びロボット２の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記した構成例に限られない。また、一般的なロボットシステム及びロボットが備える構成を排除するものではない。例えば、ジョイントの数（「軸数」ともいう）やリンクの数を増減させてもよい。また、ジョイント、リンク、ハンド等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。また、撮像部の設置場所は、ロボット２の外部環境の撮像ができれば、限定されない。例えば、第一撮像部Ｆ１及び第二撮像部Ｆ２の少なくとも一方は、ロボット２とは別に設けられ、ロボット２又はロボット制御装置に接続されるようにしてもよい。また、例えば、ロボット制御装置１は、ロボット２に含まれていてもよい。
【００２８】
図２は、ロボット制御装置１の機能構成の一例を示す図である。
【００２９】
以下では、説明を分かり易くするため、ロボット２に実行させる目的の作業として、「部品Ｗを把持する」作業を例示する。そして、この目的の作業は、例えば下記のような動作工程により実現される。
（１）第一撮像部Ｆ１で撮像を行い、部品Ｗの位置及び姿勢を検出する。
（２）ハンド２３の位置及び姿勢が、検出した部品Ｗの近くの目標位置及び目標姿勢となるように動かす。
（３）ハンド２３を、所定量開く。
（４）ハンド２３の位置及び姿勢が、部品Ｗを把持可能な目標位置及び目標姿勢となるように動かす。
（５）ハンド２３を、所定量閉じて、部品Ｗを把持する。
【００３０】
ロボット制御装置１は、動作制御部１００と、撮像制御部１０５と、画像処理部１１０と、動作予測部１１５と、検出誤差情報生成部１２０と、動作補正情報生成部１２５と、撮像条件情報記憶部１４０と、検出部品情報記憶部１５０と、検出誤差情報記憶部１６０と、動作補正情報記憶部１７０と、を有する。
【００３１】
動作制御部１００は、可動部２０の動作を制御する。例えば、動作制御部１００は、画像処理部１１０により検出された部品Ｗの位置及び姿勢に基づいて、ハンド２３により当該部品Ｗを把持する動作を実現するための軌道を計算する。軌道は、例えば、ハンド２３をある位置及び姿勢から目標位置及び目標姿勢に動かす軌道である。また、動作制御部１００は、計算した軌道を実現するためのパラメーター、例えば、各ジョイントの単位時間毎の回転角度や回転方向などを含む制御命令を生成する。また、動作制御部１００は、部品Ｗを把持するためにハンド２３の指を開閉させるパラメーターを、制御命令に含める。そして、生成した制御命令をロボット２に出力する。上記のような可動部２０の動作の制御は、公知の技術により実現できるため詳細な説明を省略する。
【００３２】
また、動作制御部１００は、例えば、第二撮像部Ｆ２による撮像を行う際に、第二撮像部Ｆ２と作業台３の距離などの撮像条件が満たされるように、可動部２０の動作を制御する。
【００３３】
詳細は後述するが、本実施形態では、動作制御部１００は、目的の作業を実現する動作をロボット２に実行させる制御命令を生成する際、動作予測部１１５により選択される補正情報に基づいて動作の内容を補正し、補正後の動作をロボット２に実行させる制御命令を生成する。
【００３４】
撮像制御部１０５は、後述する撮像条件情報テーブル１４００に含まれる撮像条件に基づいて、第一撮像部Ｆ１及び第二撮像部Ｆ２を制御する。また、撮像制御部１０５は、第一撮像部Ｆ１及び第二撮像部Ｆ２で撮像された画像データ（以下、「撮像画像」ともいう。）を取得する。撮像制御部１０５は、「画像取得部」と呼ぶこともできる。
【００３５】
画像処理部１１０は、第一撮像部Ｆ１から出力される撮像画像を取得し、当該撮像画像を用いて部品Ｗの位置及び姿勢を検出する。また、第一撮像部Ｆ１の撮像画像から検出した部品Ｗについて、当該部品Ｗに対応する画像領域に含まれるピクセルのピクセル値と、当該部品Ｗの背景に対応する画像領域に含まれるピクセルのピクセル値との比（以下、「ピクセル値比」ともいう。）を算出する。このピクセル値比は、階調値の比であるので、例えば濃度、彩度、明度などの比とも言える。
【００３６】
また、画像処理部１１０は、第一撮像部Ｆ１の撮像画像に基づいて検出した部品Ｗの位置及び姿勢とピクセル値比とを、後述する検出部品情報テーブル１５００に格納する。
【００３７】
また、画像処理部１１０は、第二撮像部Ｆ２から出力される撮像画像を取得し、当該撮像画像を用いて部品Ｗの位置及び姿勢を検出する。また、画像処理部１１０は、第二撮像部Ｆ２の撮像画像に基づいて検出した部品Ｗの位置及び姿勢を、後述する検出部品情報テーブル１５００に格納する。
【００３８】
撮影画像からワークの位置及び姿勢を検出したり、ワークや背景の画像領域を特定したりする処理は、公知の技術により実現できるため詳細な説明を省略する。
【００３９】
動作予測部１１５は、第一撮像部Ｆ１により撮像された撮像画像から検出された部品Ｗに対する目的の作業を実現するロボット２の動作を、仮想空間でシミュレーションする。ロボット２の動作をシミュレーションする技術は公知の技術により実現できるため説明を省略する。
【００４０】
詳細は後述するが、本実施形態では、動作予測部１１５は、後述する動作補正情報テーブル１７００から、第一撮像部Ｆ１の撮像画像から検出された部品Ｗのピクセル値比に関連付けられた、ロボット２の動作の補正内容を一以上取得する。そして、動作予測部１１５は、各補正内容について、目的の作業を実現するロボット２の動作に対して当該補正内容を適用した動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を求める。また、動作予測部１１５は、最も動作時間が短い補正内容を選択する。すなわち、動作予測部１１５は、作業対象の部品Ｗのピクセル値比に応じて、ロボット２の動作を補正する補正内容を決定する。動作予測部１１５は、「補正情報取得部」、「動作時間算出部」と呼ぶこともできる。
【００４１】
検出誤差情報生成部１２０は、後述する撮像条件情報テーブル１４００に基づいて、最も大きい撮像解像度を実現する撮像条件を特定する。また、検出誤差情報生成部１２０は、後述する検出部品情報テーブル１５００に基づいて、第一撮像部Ｆ１の撮像画像から検出された部品Ｗそれぞれについて、先に特定した最も大きい撮像解像度を実現する撮像条件における位置及び姿勢を基準として、他の撮像条件における位置及び姿勢の誤差を求める。そして、各撮像条件における誤差を、第一撮像部Ｆ１の撮像画像から検出された部品Ｗのピクセル値比と関連付けて、後述する検出誤差情報テーブル１６００に格納する。
【００４２】
上記のようにして、第一撮像部Ｆ１で撮像したときに検出される特定のピクセル値比を有する部品Ｗについて、各撮像条件で撮像したときに発生する位置及び姿勢の検出誤差を求めることができる。
【００４３】
動作補正情報生成部１２５は、後述する検出誤差情報テーブル１６００に基づいて、第一撮像部Ｆ１で撮像したときに検出される特定のピクセル値比を有する部品Ｗについて、目的の作業を実現するロボット２の動作を補正する補正内容（補正を行うか否か、補正を行う場合の補正量など）を一以上決定する。また、動作補正情報生成部１２５は、各補正内容を、検出された部品Ｗのピクセル値比と関連付けて、後述する動作補正情報テーブル１７００に格納する。
【００４４】
本実施形態では、補正内容には、補正要素が一以上含まれる。例えば、補正要素Ａ１は、動作工程（１）において、さらに第二撮像部Ｆ２で撮像を行って、部品Ｗの位置及び姿勢を検出する補正である。補正要素Ａ２は、動作工程（２）において、ハンド２３の目標位置及び目標姿勢を、部品Ｗに対して所定量より近付ける補正である。このように所定量より近付ける補正を行ったときには、画像検出された部品Ｗの位置及び姿勢によっては部品Ｗとハンドとが意図しない接触が生じる場合があるが、本実施形態では後述のように接触力に応じて倣い動作を実現するインピーダンス制御を適用することで所望の動作を実現する。補正要素Ａ３は、動作工程（３）において、ハンド２３を開く量を増加させる補正である。補正要素Ａ４は、動作工程（５）において、ハンド２３を閉じる量を増加させる補正である。補正要素Ａ５は、動作工程（５）において、ハンド２３を閉じる際にインピーダンス制御を実行する補正である。もちろん、補正要素の内容は、上記の例に限られない。
【００４５】
撮像条件情報記憶部１４０には、撮像条件を特定する情報を含む撮像条件情報テーブル１４００が格納される。図３は、撮像条件情報テーブル１４００の一例を示す図である。撮像条件情報テーブル１４００には、撮像条件の識別情報である撮像条件ＩＤ１４０１と、当該撮像条件の内容を示す撮像条件１４０２と、当該撮像条件を用いる撮像部Ｆの識別情報である撮像部ＩＤ１４０３とを関連付けた撮像条件情報が格納される。なお、以下では、各撮像条件情報を、例えば、撮像条件Ｃ０、撮像条件Ｃ１などと、対応する撮像条件ＩＤにより特定することもある。
【００４６】
本実施形態では、説明を分かり易くするため、例えば撮像部Ｆと作業台３の間の距離を撮像条件とする。また、本実施形態では、撮像条件情報は、ロボット制御装置１が処理を実行するに当たって予め設定される。
【００４７】
検出部品情報記憶部１５０には、検出された部品の情報を含む検出部品情報テーブル１５００が格納される。図４は、検出部品情報テーブル１５００の一例を示す図である。検出部品情報テーブル１５００には、部品Ｗの識別情報である部品ＩＤ１５０１と、当該部品Ｗを第一撮像部Ｆ１の撮像画像から検出したときの当該部品Ｗのピクセル値比１５０２と、当該部品Ｗの各撮像条件における位置及び姿勢を示す情報１５０３とを関連付けた検出部品情報が格納される。
【００４８】
本実施形態では、説明を分かり易くするため、例えば部品Ｗの位置情報のみを、位置及び姿勢を示す情報とする。また、説明を分かり易くするため、位置情報は、２次元のＸＹ座標とする。
【００４９】
検出誤差情報記憶部１６０には、検出誤差を特定する情報を含む検出誤差情報テーブル１６００が格納される。図５は、検出誤差情報テーブル１６００の一例を示す図である。検出誤差情報テーブル１６００には、検出された部品Ｗのピクセル値比１６０１と、当該部品Ｗの基準となる撮像条件における位置及び姿勢に対する他の撮像条件（基準となる撮像条件も含む）における位置及び姿勢の検出誤差を示す情報１６０２とを関連付けた検出誤差情報が格納される。
【００５０】
動作補正情報記憶部１７０には、補正内容を特定する情報を含む動作補正情報テーブル１７００が格納される。図６は、動作補正情報テーブル１７００の一例を示す図である。動作補正情報テーブル１７００には、検出された部品Ｗのピクセル値比１７０１と、当該部品Ｗに対して目的の作業を実現するロボット２の動作を補正する一以上の補正内容１７０２とが関連付けられた動作補正情報が格納される。各補正内容１７０２には、当該補正内容に含まれる各補正要素（図の例では、Ａ１〜Ａ５）の設定値が格納される。本実施形態では、補正内容は、各撮像条件Ｃ０〜Ｃ３に対応して設定されるため、図の例では補正内容Ｃ０〜Ｃ３と表している。
【００５１】
上述したロボット制御装置１は、例えば、図７（コンピューター６０の概略構成の一例を示す図である。）に示すような、ＣＰＵ（Central Processing Unit）６１と、メモリー６２と、ＨＤＤ（Hard Disk Drive）等の補助記憶装置６３と、有線又は無線により通信ネットワークやロボット制御装置２に接続するための通信インターフェイス（Ｉ／Ｆ）６４と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置６５と、液晶ディスプレイなどの表示装置６６と、ＤＶＤ（Digital Versatile Disk）などの持ち運び可能な記憶媒体に対する情報の読み書きを行うメディアＩ／Ｆ６７と、を備えるコンピューター６０で実現できる。
【００５２】
例えば、動作制御部１００、撮像制御部１０５、画像処理部１１０、動作予測部１１５検出誤差情報生成部１２０、及び動作補正情報生成部１２５は、補助記憶装置６３に記憶されている所定のプログラムをメモリー６２にロードしてＣＰＵ６１で実行することで実現可能である。撮像条件情報記憶部１４０、検出部品情報記憶部１５０、検出誤差情報記憶部１６０、及び動作補正情報記憶部１７０は、ＣＰＵ６１がメモリー６２又は補助記憶装置６３を利用することにより実現可能である。ロボット２との通信機能は、ＣＰＵ６１が通信Ｉ／Ｆ６４を利用することで実現可能である。なお、上記の所定のプログラムは、例えば、メディアＩ／Ｆ６７に接続された記憶媒体からインストールすることができる。
【００５３】
上記の機能構成は、ロボット制御装置１の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボット制御装置１の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００５４】
また、例えば、ロボット制御装置１の少なくとも一部の機能は、ロボット２に含まれ、ロボット２により実現されてもよい。また、例えば、ロボット２の少なくとも一部の機能は、ロボット制御装置１に含まれ、ロボット制御装置１により実現されてもよい。
【００５５】
次に、上記のロボット制御装置１により実現される処理について説明する。
【００５６】
図８は、検出誤差情報生成処理（その１）の一例を示すフロー図である。図９検出誤差情報生成処理（その２）の一例を示すフロー図である。
【００５７】
本フローが開始されると、撮像制御部１０５は、第一撮像部Ｆ１により作業台３の撮像を行う（ステップＳ１００）。具体的には、撮像制御部１０５は、第一撮像部Ｆ１の撮像部ＩＤをキーとして、撮像条件情報テーブル１４００から撮像条件１４０２を取得する。そして、当該撮像条件１４０２に基づいて第一撮像部Ｆ１により撮像を行う。なお、本実施形態では、第一撮像部Ｆ１の位置及び向きは固定されているため、撮像条件を取得せずに撮像を行ってもよい。
【００５８】
それから、画像処理部１１０は、部品Ｗを検出する（ステップＳ１０５）。具体的には、画像処理部１１０は、ステップＳ１００で撮像された撮像画像を取得し、当該撮像画像に基づいて、作業台３上の一以上の部品Ｗの位置及び姿勢を検出する。そして、検出した部品Ｗごとに、当該部品Ｗの部品ＩＤ１５０１と、ステップＳ１００で用いた撮像条件における当該部品Ｗの位置及び姿勢を示す情報１５０３とを関連付けて、検出部品情報テーブル１５００に格納する。
【００５９】
図１０（部品Ｗと背景のピクセル値比の例を示す図）の例では、作業台３に、３つの部品Ｗ（Ｗ０、Ｗ１、Ｗ２）が配置されている。この場合、画像処理部１１０は、部品Ｗ０、部品Ｗ１、及び部品Ｗ２のそれぞれの位置及び姿勢を検出する。
【００６０】
図８の説明に戻る。それから、画像処理部１１０は、ステップＳ１０５で検出した全ての部品Ｗを処理対象として選択したか否かを判定する（ステップＳ１１０）。全ての部品Ｗを選択済みである場合（ステップＳ１１０：Ｙ）、本フローの処理を終了する。
【００６１】
全ての部品Ｗを未選択である場合（ステップＳ１１０：Ｎ）、画像処理部１１０は、未選択の部品Ｗを一つ選択する（ステップＳ１１５）。
【００６２】
それから、画像処理部１１０は、部品Ｗと背景のピクセル値比を計算する（ステップＳ１２０）。具体的には、画像処理部１１０は、ステップＳ１００で撮像された撮像画像を用いて、ステップＳ１１５で選択した部品Ｗに対応する画像領域に含まれるピクセルのピクセル値と、当該部品Ｗの背景に対応する画像領域に含まれるピクセルのピクセル値との比を求める。
【００６３】
ピクセル値比の計算方法の一例について、図１０の例を参照しながら詳細に説明する。図中の「（＊＊＊）」は、階調値（０〜２５５）を示している。本図では説明を分かり易くするため、作業台３の撮像画像には、図示するような各階調値の領域（破線で区切られた領域）が表れるものとする。また、作業台の３の撮像画像には、３つの部品Ｗ０、Ｗ１、Ｗ２が検出されている。
【００６４】
ここで、画像処理部１１０は、部品Ｗ０を選択したとすると、部品Ｗ０の画像領域に含まれる各ピクセルの階調値の平均値を算出し、この値を部品Ｗ０のピクセル値とする。また、当該部品Ｗ０の画像領域の周辺（例えば、部品Ｗ０の輪郭を抽出し、当該輪郭から所定範囲内のピクセル）の背景画像領域に含まれる各ピクセルの階調値の平均値を算出し、この値を背景のピクセル値とする。そして、このように算出した部品Ｗ０のピクセル値と部品Ｗ０の背景のピクセル値との比を算出する。
【００６５】
もちろん、上記のピクセル値比の計算方法は、一例であり、他の方法であってもよい。例えば、部品Ｗの画像領域のピクセル値には、代表ピクセル値（例えば、部品Ｗの画像領域内の最小値、最大値、部品Ｗの輪郭を構成するピクセルのピクセル値の平均値など）を用いてもよい。また、例えば、背景のピクセル値には、代表ピクセル値（例えば、部品Ｗの画像領域の周辺の背景画像領域の最小値、最大値など）を用いてもよい。
【００６６】
画像処理部１１０は、上記のようにステップＳ１１５で選択した部品Ｗについて計算したピクセル値比を、当該部品Ｗの部品ＩＤ１５０１に関連付けてピクセル値比１５０２として、検出部品情報テーブル１５００に格納する。図１０の例において、部品Ｗ０のピクセル値が（51）、背景のピクセル値が（128）の場合、ピクセル値比は、（1.00:2.51）となる。部品Ｗ１のピクセル値が（51）、背景のピクセル値が（192）の場合、ピクセル値比は、（1.00:3.76）となる。部品Ｗ２のピクセル値が（51）、背景のピクセル値が（180）の場合、ピクセル値比は、（1.00:3.53）となる。これらのピクセル値比が、図４の例に示すように、検出部品情報テーブル１５００に格納される。
【００６７】
図８の説明に戻る。それから、撮像制御部１０５は、撮像条件情報テーブル１４００に含まれる全ての第二撮像部Ｆ２の撮像条件を処理対象として選択したか否かを判定する（ステップＳ１２５）。全ての第二撮像部Ｆ２の撮像条件を選択済みである場合（ステップＳ１２５：Ｙ）、処理をステップＳ１４５に進める。
【００６８】
全ての第二撮像部Ｆ２の撮像条件を未選択である場合（ステップＳ１２５：Ｎ）、撮像制御部１０５は、未選択の第二撮像部Ｆ２の撮像条件を一つ選択する（ステップＳ１３０）。具体的には、撮像制御部１０５は、第二撮像部Ｆ２の撮像部ＩＤをキーとして、撮像条件情報テーブル１４００から撮像条件１４０２を特定し、未選択の撮像条件を選択する。
【００６９】
それから、撮像制御部１０５は、選択した部品Ｗを第二撮像部Ｆ２により撮像を行う（ステップＳ１３５）。具体的には、撮像制御部１０５は、ステップＳ１３０で選択した撮像条件１４０２を撮像条件情報テーブル１４００から取得する。そして、当該撮像条件１４０２に基づいて、ステップＳ１１５で選択された部品Ｗを、第二撮像部Ｆ２により撮像する。なお、動作制御部１００は、撮像の前に、選択された部品ＷについてステップＳ１０５で検出された位置及び姿勢に基づいて、選択された撮像条件が示す第二撮像部Ｆ２と作業台３の距離で当該部品Ｗの撮像が行われるように、可動部２０を動作させる。このようにして、撮像条件で指定された距離で、選択された部品Ｗの撮像が行われる。
【００７０】
それから、画像処理部１１０は、選択した部品Ｗを検出する（ステップＳ１４０）。具体的には、画像処理部１１０は、ステップＳ１３５で撮像された撮像画像を取得し、当該撮像画像に基づいて、ステップＳ１１５で選択された部品Ｗの位置及び姿勢を検出する。そして、検出した部品Ｗの位置及び姿勢を、当該部品Ｗの部品ＩＤ１５０１に関連付けて、ステップＳ１３０で選択した撮像条件における位置及び姿勢を示す情報１５０３として、検出部品情報テーブル１５００に格納する。そして、画像処理部１１０は、処理をステップＳ１２５に戻す。
【００７１】
一方、全ての第二撮像部Ｆ２の撮像条件を選択済みである場合（ステップＳ１２５：Ｙ）、検出誤差情報生成部１２０は、撮像条件情報テーブル１４００を参照し、最も大きい撮像解像度を実現する撮像条件を選択する（ステップＳ１４５）。例えば、作業台３と撮像部Ｆとの距離が最も小さい撮像条件を、最も大きい撮像解像度を実現する撮像条件として特定する。図３の例では、撮像条件Ｃ１が最も大きい撮像解像度を実現する。
【００７２】
もちろん、距離に替えて又は距離に加えて他の撮像条件が設定されている場合は、所定の方法により最も大きい撮像解像度を実現する撮像条件を特定すればよい。
【００７３】
それから、検出誤差情報生成部１２０は、撮像条件情報テーブル１４００に含まれる全ての撮像条件を処理対象として選択したか否かを判定する（ステップＳ１５０）。全ての撮像条件を選択済みである場合（ステップＳ１５０：Ｙ）、処理をステップＳ１１０に戻す。
【００７４】
全ての撮像条件を未選択である場合（ステップＳ１５０：Ｎ）、検出誤差情報生成部１２０は、未選択の撮像条件を一つ選択する（ステップＳ１５５）。
【００７５】
それから、検出誤差情報生成部１２０は、最も大きい解像度の撮像条件と選択した撮像条件における選択した部品Ｗの検出誤差を計算する（ステップＳ１６０）。具体的には、検出誤差情報生成部１２０は、ステップＳ１１５で選択した部品Ｗの検出部品情報から、ステップＳ１４５で選択した撮像条件における位置及び姿勢を示す情報１５０３（「第一の情報」と呼ぶ。）を取得する。また、ステップＳ１１５で選択した部品Ｗの検出部品情報から、ステップＳ１５５で選択した撮像条件における位置及び姿勢を示す情報１５０３（「第二の情報」と呼ぶ。）を取得する。また、第一の情報と第二の情報の誤差を計算する。
【００７６】
ここで、検出誤差の計算方法の一例について、詳細に説明する。検出誤差は、例えば、第一の情報と第二の情報の対応する値の間の差分絶対値和の２分の１とすることができる。図４の例では、部品Ｗ０の第一の情報は、撮像条件Ｃ１における位置（170.00, 15.00）である。選択された撮像条件がＣ０であるとすると、部品Ｗ０の第二の情報は、位置（180.00, 19.00）である。これらの情報の差分絶対値和の２分の１は、7.00である。この値は、部品Ｗ０のピクセル値比（1.00:2.51）の撮像条件Ｃ０における検出誤差として検出誤差情報テーブル１６００に格納される（図５参照）。
【００７７】
もちろん、上記の検出誤差の計算方法は、一例であり、検出誤差を計算できれば、他の方法であってもよい。
【００７８】
検出誤差情報生成部１２０は、ステップＳ１１５で選択した部品Ｗのピクセル値比が、検出誤差情報テーブル１６００に格納されていない場合は、ピクセル値比１６０１として格納する。また、検出誤差情報生成部１２０は、上記のように計算した検出誤差を、ステップＳ１１５で選択した部品Ｗのピクセル値比１６０１に関連付けて、ステップＳ１５５で選択した撮像条件おける検出誤差を示す情報１６０２として、検出誤差情報テーブル１６００に格納する。そして、処理をステップＳ１５０に戻す。
【００７９】
図１１は、動作補正情報生成処理の一例を示すフロー図である。
【００８０】
本フローが開始されると、動作補正情報生成部１２５は、検出誤差情報テーブル１６００に含まれる全てのピクセル値比１６０１を処理対象として選択したか否かを判定する（ステップＳ２００）。全てのピクセル値比を選択済みである場合（ステップＳ２００：Ｙ）、本フローの処理を終了する。
【００８１】
全てのピクセル値比が未選択である場合（ステップＳ２００：Ｎ）、動作補正情報生成部１２５は、未選択のピクセル値比を一つ選択し（ステップＳ２０５）、選択したピクセル値比に対応する検出誤差情報を、検出誤差情報テーブル１６００から取得する（ステップＳ２１０）。
【００８２】
ここで、動作補正情報生成部１２５は、選択したピクセル値比１６０１をピクセル値比１７０１として設定した動作補正情報を生成し、動作補正情報テーブル１７００に格納する。なお、ステップＳ２２０以降の処理で、各補正内容１７０２の補正要素の設定値が設定される。
【００８３】
それから、動作補正情報生成部１２５は、ステップＳ２１０で取得した検出誤差情報に含まれる全ての撮像条件を処理対象として選択したか否かを判定する（ステップＳ２１５）。全ての撮像条件を選択済みである場合（ステップＳ２１５：Ｙ）、動作補正情報生成部１２５は、処理をステップＳ２００に戻す。
【００８４】
全ての撮像条件を未選択である場合（ステップＳ２１５：Ｎ）、動作補正情報生成部１２５は、未選択の撮像条件を一つ選択し（ステップＳ２２０）、選択した撮像条件における検出誤差を、ステップＳ２１０で取得した検出誤差情報から取得する（ステップＳ２２５）。なお、本実施形態では、当該選択した撮像条件に対応して、補正内容１７０２を生成する。
【００８５】
それから、動作補正情報生成部１２５は、生成する補正内容の補正要素の全てを処理対象として選択したか否かを判定する（ステップＳ２３０）。本実施形態では、図６に示すように、５つの補正要素Ａ１〜Ａ５が処理対象である。全ての補正要素を選択済みである場合（ステップＳ２３０：Ｙ）、動作補正情報生成部１２５は、処理をステップＳ２１５に戻す。
【００８６】
全ての補正要素を未選択である場合（ステップＳ２３０：Ｎ）、動作補正情報生成部１２５は、未選択の補正要素を一つ選択する（ステップＳ２３５）。
【００８７】
それから、動作補正情報生成部１２５は、ステップＳ２３５で選択した補正要素の設定値を決定し、設定する（ステップＳ２４０）。具体的には、動作補正情報生成部１２５は、ステップＳ２０５で選択したピクセル値比について、ステップＳ２２０で選択した撮像条件（補正内容に対応する）における、ステップＳ２３５で選択した補正要素の設定値を決定し、補正内容１７０２に設定する。そして、処理をステップＳ２３０に戻す。
【００８８】
図１２〜図１６を参照して、上記のステップＳ２４０の処理について詳細に説明する。動作補正情報生成部１２５は、選択した補正要素の種類に応じて、図１２〜図１６のいずれかの処理を実行する。
【００８９】
図１２は、補正要素Ａ１の設定処理の一例を示すフロー図である。上述のように、補正要素Ａ１は、動作工程（１）において、さらに第二撮像部Ｆ２で撮像を行って、部品Ｗの位置及び姿勢を検出する補正である。
【００９０】
動作補正情報生成部１２５は、ステップＳ２２０で選択した撮像条件が、第二撮像部Ｆ２の撮像条件であるか否かを判定する（ステップＳ２４００）。
【００９１】
選択した撮像条件が第二撮像部Ｆ２の撮像条件である場合（ステップＳ２４００：Ｙ）、動作補正情報生成部１２５は、動作工程（１）において第二撮像部Ｆ２による撮像及び部品Ｗの位置及び姿勢の検出がさらに実行されるように、補正要素Ａ１の設定値を「ＯＮ」に設定する（ステップＳ２４０５）。そして、本フローの処理を終了する。
【００９２】
一方、選択した撮像条件が第二撮像部Ｆ２の撮像条件でない場合（ステップＳ２４００：Ｎ）、動作補正情報生成部１２５は、補正要素Ａ１の設定値を「ＯＦＦ」に設定する（ステップＳ２４１０）。そして、本フローの処理を終了する。
【００９３】
図１３は、補正要素Ａ２の設定処理の一例を示すフロー図である。上述のように、補正要素Ａ２は、動作工程（２）において、ハンド２３の目標位置及び目標姿勢を、部品Ｗに対して所定量より近付ける補正である。このように所定量より近付ける補正を行ったときには、画像検出された部品Ｗの位置及び姿勢によっては部品Ｗとハンドとが意図しない接触が生じる場合があるが、本実施形態では意図しない接触により生じる接触力に応じて倣い動作を実現するインピーダンス制御を適用することで所望の動作を実現することとする。
【００９４】
動作補正情報生成部１２５は、ステップＳ２２０で選択した撮像条件における、ステップＳ２２５で取得した検出誤差が、所定値より大きいか否かを判定する（ステップＳ２４２０）。
【００９５】
検出誤差が所定値よりも大きい場合（ステップＳ２４２０：Ｙ）、動作補正情報生成部１２５は、動作工程（２）においてハンド２３の目標位置及び目標姿勢を部品Ｗに対して所定量より近付けるオフセット量を所定の計算式により決定し、補正要素Ａ２の設定値として設定する（ステップＳ２４２５）。例えば、所定の計算式は、オフセット量を検出誤差が示す値に比例して大きくなるような式とすることができる。そして、本フローの処理を終了する。
【００９６】
一方、検出誤差が所定値以下である場合（ステップＳ２４２０：Ｎ）、動作補正情報生成部１２５は、オフセット量を「０」として、補正要素Ａ２の設定値に設定する（ステップＳ２４３０）。後述のように、部品Ｗに対してハンド２３の目標位置及び目標姿勢を所定量より近付ける補正を行わないときには、画像検出された部品Ｗとハンドとが意図しない接触は発生しないとして、本実施形態ではインピーダンス制御を適用しないとする。なお、この場合も、所定の計算式によりオフセット量を決定してもよい。そして、本フローの処理を終了する。
【００９７】
図１４は、補正要素Ａ３の設定処理の一例を示すフロー図である。上述のように、補正要素Ａ３は、動作工程（３）において、ハンド２３を開く量を増加させる補正である。
【００９８】
動作補正情報生成部１２５は、ステップＳ２２０で選択した撮像条件における、ステップＳ２２５で取得した検出誤差が、所定値より大きいか否かを判定する（ステップＳ２４４０）。
【００９９】
検出誤差が所定値よりも大きい場合（ステップＳ２４４０：Ｙ）、動作補正情報生成部１２５は、動作工程（３）においてハンド２３の開く量を増加させるオフセット量を所定の計算式により決定し、補正要素Ａ３の設定値として設定する（ステップＳ２４４５）。例えば、所定の計算式は、オフセット量を検出誤差が示す値に比例して大きくなるような式とすることができる。そして、本フローの処理を終了する。
【０１００】
一方、検出誤差が所定値以下である場合（ステップＳ２４４０：Ｎ）、動作補正情報生成部１２５は、オフセット量を「０」として、補正要素Ａ３の設定値に設定する（ステップＳ２４５０）。なお、この場合も、所定の計算式によりオフセット量を決定してもよい。そして、本フローの処理を終了する。
【０１０１】
図１５は、補正要素Ａ４の設定処理の一例を示すフロー図である。上述のように、補正要素Ａ４は、動作工程（５）において、ハンド２３を閉じる量を増加させる補正である。
【０１０２】
動作補正情報生成部１２５は、ステップＳ２２０で選択した撮像条件における、ステップＳ２２５で取得した検出誤差が、所定値より大きいか否かを判定する（ステップＳ２４６０）。
【０１０３】
検出誤差が所定値よりも大きい場合（ステップＳ２４６０：Ｙ）、動作補正情報生成部１２５は、動作工程（５）においてハンド２３の閉じる量を増加させるオフセット量を所定の計算式により決定し、補正要素Ａ４の設定値として設定する（ステップＳ２４６５）。例えば、所定の計算式は、オフセット量を検出誤差が示す値に比例して大きくなるような式とすることができる。そして、本フローの処理を終了する。
【０１０４】
一方、検出誤差が所定値以下である場合（ステップＳ２４６０：Ｎ）、動作補正情報生成部１２５は、オフセット量を「０」として、補正要素Ａ４の設定値に設定する（ステップＳ２４７０）。なお、この場合も、所定の計算式によりオフセット量を決定してもよい。そして、本フローの処理を終了する。
【０１０５】
図１６は、補正要素Ａ５の設定処理の一例を示すフロー図である。上述のように、補正要素Ａ５は、動作工程（５）において、ハンド２３を閉じる際にインピーダンス制御を実行する補正である。
【０１０６】
動作補正情報生成部１２５は、ステップＳ２２０で選択した撮像条件における、上述のように補正要素Ａ２〜Ａ５に設定されたオフセット量の全てが０であるか否かを判定する（ステップＳ２４８０）。
【０１０７】
オフセット量の少なくとも一つが０でない場合（ステップＳ２４８０：Ｎ）、動作補正情報生成部１２５は、動作工程（５）において、ハンド２３を目標位置及び目標姿勢へと移動するために可動部２０を動作させる際およびハンド２３を閉じる際にインピーダンス制御が実行されるように、補正要素Ａ５の設定値を「ＯＮ」に設定する（ステップＳ２４８５）。そして、本フローの処理を終了する。
【０１０８】
一方、オフセット量の全てが０である場合（ステップＳ２４８０：Ｙ）、動作補正情報生成部１２５は、補正要素Ａ５の設定値を「ＯＦＦ」に設定する（ステップＳ２４９０）。そして、本フローの処理を終了する。
【０１０９】
以上のようにして、動作補正情報テーブル１７００が生成される。
【０１１０】
図１７は、動作制御処理の一例を示すフロー図である。なお、本フローでは、説明を分かり易くするため、作業対象の部品Ｗを一つ検出するものとする。
【０１１１】
本フローが開始されると、撮像制御部１０５は、第一撮像部Ｆ１により撮像を行う（ステップＳ３００）。本処理は、ステップＳ１００（図８参照）と同様なので説明を省略する。
【０１１２】
それから、画像処理部１１０は、部品Ｗを検出する（ステップＳ３０５）。具体的には、画像処理部１１０は、ステップＳ３００で撮像された撮像画像を取得し、当該撮像画像に基づいて、作業台３上の作業対象の部品Ｗの位置及び姿勢を検出する。
【０１１３】
それから、画像処理部１１０は、部品Ｗと背景のピクセル値比を計算する（ステップＳ３１０）。具体的には、画像処理部１１０は、ステップＳ３００で撮像された撮像画像を用いて、ステップＳ３０５で検出した部品Ｗに対応する画像領域に含まれるピクセルのピクセル値と、当該部品Ｗの背景に対応する画像領域に含まれるピクセルのピクセル値との比を求める。
【０１１４】
本処理におけるピクセル値比の計算方法の一例について、説明する。画像処理部１１０は、部品Ｗの画像領域のうち、最小の階調値を持つピクセルと、最大の階調値を持つピクセルとを特定する。また、当該部品Ｗの画像領域の周辺（例えば、部品Ｗの輪郭を抽出し、当該輪郭から所定範囲内のピクセル）の背景画像領域のうち、最小の階調値を持つピクセルと、最大の階調値を持つピクセルとを特定する。それから、部品Ｗの最小ピクセル値と背景の最小ピクセル値及び最大ピクセル値のいずれかとの組み合わせと、部品Ｗの最大ピクセル値と背景の最小ピクセル値及び最大ピクセル値のいずれかとの組み合わせのうち、ピクセル値の比が最も小さくなる（すなわち、階調値の差が小さい）ピクセル値比を特定する。
【０１１５】
このように、値がより小さいピクセル値比を特定するのは、部品の検出精度がより悪い状況を想定して、当該状況に応じた補正内容を選択し、ロボット２の作業の失敗をより防ぎ易くするためである。もちろん、上記のピクセル値比の計算方法は、一例であり、なるべくピクセル値比が小さくなるような結果が得られるのであれば、他の方法であってもよい。
【０１１６】
それから、動作予測部１１５は、計算されたピクセル値比に対応する動作補正情報を、動作補正情報テーブル１７００から取得する（ステップＳ３１５）。具体的には、動作予測部１１５は、ステップＳ３１０で計算されたピクセル値比に一致するピクセル値比１７０１を特定し、当該ピクセル値比１７０１に関連付けられた一以上の補正内容１７０２を取得する。
【０１１７】
ステップＳ３１０で計算されたピクセル値比に一致するピクセル値比１７０１がない場合は、動作予測部１１５は、ステップＳ３１０で計算されたピクセル値比よりも値が小さくかつ最も値が近いピクセル値比１７０１を特定し、当該ピクセル値比１７０１に関連付けられた一以上の補正内容１７０２を取得する。ステップＳ３１０で計算されたピクセル値比よりも値が小さいピクセル値比１７０１がない場合は、ステップＳ３１０で計算されたピクセル値比よりも値が大きくかつ最も値が近いピクセル値比１７０１を特定すればよい。
【０１１８】
このように、値がより小さいピクセル値比を特定するのは、部品の検出精度がより悪い状況を想定して、当該状況に応じた補正内容を選択し、ロボット２の作業の失敗をより防ぎ易くするためである。
【０１１９】
それから、動作予測部１１５は、ステップＳ３２０で取得した動作補正情報に含まれる各撮像条件に対応する補正内容１７０２ごとに、目的の作業を実現するロボット２の動作に対して当該補正内容を適用した動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する（ステップＳ３２０）。
【０１２０】
図６を参照して説明する。例えば、補正前の動作が上述の動作工程（１）〜（５）を有する場合に、ステップＳ３１０で計算されたピクセル値比が（1.00:2.51）であるときを想定する。また、代表的に、撮像条件Ｃ２に対応する補正内容を適用する場合を説明する。
【０１２１】
動作予測部１１５は、補正要素Ａ１の設定値が「ＯＮ」であるため、動作工程（１）について、撮像条件Ｃ２で第二撮像部Ｆ２により撮像を行って、部品Ｗの位置及び姿勢を検出する動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する。
【０１２２】
また、動作予測部１１５は、補正要素Ａ２の設定値（オフセット量）が「6.00」であるため、動作工程（２）について、ハンド２３の検出した部品Ｗの近くの目標位置及び目標姿勢を、オフセット量に基づいて部品Ｗに対して所定値よりも近付ける位置及び姿勢に補正する。そして、ハンド２３の位置及び姿勢が、補正した目標位置及び目標姿勢となるように動かす動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する。
【０１２３】
また、動作予測部１１５は、補正要素Ａ３の設定値（オフセット量）が「6.00」であるため、動作工程（３）について、ハンド２３を開く量を、オフセット量に基づいて補正し、ハンド２３を開く動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する。
【０１２４】
また、動作予測部１１５は、補正要素Ａ４の設定値（オフセット量）が「6.00」であるため、動作工程（５）について、ハンド２３を閉じる量を、オフセット量に基づいて補正し、ハンド２３を閉じる動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する。
【０１２５】
また、動作予測部１１５は、補正要素Ａ５の設定値が「ＯＮ」であるため、動作工程（５）について、ハンド２３を目標位置及び目標姿勢へと移動するために可動部２０を動作させる際及びハンド２３を閉じる際に、インピーダンス制御を行う場合の動作をシミュレーションするとともに、当該動作に掛かる予測動作時間を計算する。
【０１２６】
そして、動作予測部１１５は、上記のように計算した各補正要素に関する予測動作時間に基づいて、撮像条件Ｃ２において目的の作業を実現するロボット２の動作に掛かる予測動作時間を計算する。他の補正内容１７０２についても、動作補正情報テーブル１７００の設定値に基づいて、同様に予測動作時間を計算することができる。
【０１２７】
図１７の説明に戻る。動作予測部１１５は、ステップＳ３２０で計算した各補正内容の予測動作時間に基づいて、動作時間が最も小さい補正内容を特定する（ステップＳ３２５）。
【０１２８】
それから、動作制御部１００は、ステップＳ３２５で特定された補正内容に基づいてロボット２の動作を制御する（ステップＳ３３０）。具体的には、動作制御部１００は、目的の作業を実現する可動部２０の動作の軌道を計算する。また、計算した軌道をステップＳ３２５で特定された補正内容の各補正要素に基づいて補正する。また、当該補正後の軌道を実現するためのパラメーターを含む制御命令を生成する。また、部品Ｗを把持するためにハンド２３の指を開閉させるパラメーターを、Ｓ３２５で特定された補正内容の各補正要素に基づいて補正し、補正後のパラメーターを制御命令に含める。そして、生成した制御命令をロボット２に出力する。そして、本フローの処理を終了する。
【０１２９】
このようにして、部品の検出精度に応じて、当該部品に対する目的の作業を実現するロボット２の動作が補正され、ロボット２の動作が制御される。
【０１３０】
なお、上記の各図のフローの各処理単位は、ロボット制御装置１の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。ロボット制御装置１の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１３１】
以上、本発明の第一実施形態について説明した。本実施形態によれば、ロボットによる作業の失敗をより精度よく防ぐことができる。
【０１３２】
なお、以上の本発明の実施形態は、本発明の要旨と範囲を例示することを意図し、限定するものではない。多くの代替物、修正、変形例は当業者にとって明らかである。
【０１３３】
上記の実施形態では、予測動作時間が最も短い補正内容を選択するようにしているが、他の条件に基づいて選択してもよい。例えば、補正項目ごとに基準を定義するとともに、各補正項目が基準を満たすか満たさないかを示す組み合わせ条件を定義し、当該条件に合致する補正内容が選択されるようにしてもよい。このようにすれば、目的の作業の内容等に応じてユーザーが要求する条件に適した補正内容が選択される。
【０１３４】
上記の実施形態では、第一撮像部Ｆ１と第二撮像部Ｆ２の二つを備えるが、第二撮像部Ｆ２の一つを備えるようにしてもよい。この場合、第一撮像部Ｆ１による撮像を、第二撮像部Ｆ２で行うようにすればよい。
【０１３５】
検出誤差情報生成処理においては、もっと多くのピクセル値比における検出誤差情報をサンプルとして得られるように、位置及び姿勢が異なる部品Ｗの数を増やしてもよい。このようにすれば、動作補正情報の数も増えるため、作業対象のワークの検出精度に応じてより正確にロボット２の動作を補正することができる。
【０１３６】
本発明は、上述した目的の作業、当該作業を実現するロボット２の動作工程、動作補正内容等以外の場合についても適用できる。
【符号の説明】
【０１３７】
１：ロボット制御装置、２：ロボット、３：作業台、Ｗ：部品、１０：ロボットシステム、２０：可動部、２１：リンク、２２：ジョイント、２３：ハンド、２４：力覚センサー、Ｆ：撮像部、Ｆ１：第一撮像部、Ｆ２：第二撮像部、６０：コンピューター、６１：ＣＰＵ、６２：メモリー、６３：補助記憶装置、６４：通信Ｉ／Ｆ、６５：入力装置、６６：表示装置、６７：メディアＩ／Ｆ、１００：動作制御部、１０５：撮像制御部、１１０：画像処理部、１１５：動作予測部、１２０：検出誤差情報生成部、１２５：動作補正情報生成部、１４０：撮像条件情報記憶部、１５０：検出部品情報記憶部、１６０：検出誤差情報記憶部、１７０：動作補正情報記憶部、１４００：撮像条件情報テーブル、１４０１：撮像条件ＩＤ、１４０２：撮像条件、１４０３：撮像部ＩＤ、１５００：検出部品情報テーブル、１５０１：部品ＩＤ、１５０２：ピクセル値比、１５０３：位置及び姿勢を示す情報、１６００：検出誤差情報テーブル、１６０１：ピクセル値比、１６０２：検出誤差を示す情報、１７００：動作補正情報テーブル、１７０１：ピクセル値比、１７０２：補正内容
【図１】
2014184542.tif 000003
【図２】
2014184542.tif 000004
【図３】
2014184542.tif 000005
【図４】
2014184542.tif 000006
【図５】
2014184542.tif 000007
【図６】
2014184542.tif 000008
【図７】
2014184542.tif 000009
【図８】
2014184542.tif 000010
【図９】
2014184542.tif 000011
【図１０】
2014184542.tif 000012
【図１１】
2014184542.tif 000013
【図１２】
2014184542.tif 000014
【図１３】
2014184542.tif 000015
【図１４】
2014184542.tif 000016
【図１５】
2014184542.tif 000017
【図１６】
2014184542.tif 000018
【図１７】
2014184542.tif 000019