(57)【特許請求の範囲】
【請求項１】
複数のワークのそれぞれの位置データを含み、前記複数のワークのバラ積み状態の仮想のシーンデータを生成または取得する仮想データ取得手段と、
前記ワークの認識を調整するために設定可能なパラメータを含む認識プログラムを用いて、前記仮想のシーンデータ中の前記ワークを認識する仮想認識手段と、
前記ワークの位置データ、および、前記仮想認識手段による前記ワークの認識結果を比較して、前記認識プログラムの認識性能を評価する認識評価手段と、
前記認識評価手段による前記認識プログラムの認識性能の評価結果を表示させる結果表示手段とを備え、
前記認識評価手段は、検出に成功した前記ワークの個数に基づいて、前記認識プログラムの認識性能を評価する評価値を求めるように構成されている、認識プログラム評価装置。
【請求項２】
前記結果表示手段は、前記評価値を表示させるように構成されている、請求項１に記載の認識プログラム評価装置。
【請求項３】
前記認識評価手段は、前記認識プログラムの認識性能を異なる複数の評価基準を用いて評価するように構成されており、
前記結果表示手段は、前記異なる複数の評価基準を用いた評価結果を表示させるように構成されている、請求項１または２に記載の認識プログラム評価装置。
【請求項４】
前記仮想認識手段は、前記認識プログラムの前記パラメータを変化させながら、前記仮想のシーンデータ中の前記ワークを認識するように構成されており、
前記認識評価手段は、前記ワークの位置データ、および、前記仮想認識手段による前記ワークの認識結果を比較して、前記認識プログラムの認識性能を、前記パラメータごとに評価するように構成されている、請求項１〜３のいずれか１項に記載の認識プログラム評価装置。
【請求項５】
前記仮想認識手段は、前記認識プログラムのパラメータをユーザにより設定された下限値と上限値との間で変化させながら、前記仮想のシーンデータ中の前記ワークを認識するように構成されている、請求項４に記載の認識プログラム評価装置。
【請求項６】
前記仮想認識手段は、前記認識プログラムの複数の前記パラメータを変化させながら、前記仮想のシーンデータ中の前記ワークを認識するように構成されており、
前記結果表示手段は、前記複数のパラメータを変化させた組み合せごとに、前記認識プログラムの認識性能の評価結果を表示させるように構成されている、請求項４または５に記載の認識プログラム評価装置。
【請求項７】
前記仮想データ取得手段は、１つの前記ワークの３次元データを用いて、前記複数のワークのバラ積み状態の仮想のシーンデータを生成するように構成されている、請求項１〜６のいずれか１項に記載の認識プログラム評価装置。
【請求項８】
前記仮想データ取得手段は、複数の前記仮想のシーンデータを生成または取得するように構成されており、
前記仮想認識手段は、前記認識プログラムを用いて、前記複数の仮想のシーンデータの前記ワークを認識するように構成されており、
前記認識評価手段は、前記ワークの位置データ、および、前記仮想認識手段による前記ワークの前記複数の仮想のシーンデータにおける認識結果を比較して、前記認識プログラムの認識性能を評価するように構成されている、請求項１〜７のいずれか１項に記載の認識プログラム評価装置。
【請求項９】
仮想データ取得手段により、複数のワークのそれぞれの位置データを含み、前記複数のワークのバラ積み状態の仮想のシーンデータを生成または取得する工程と、
仮想認識手段により、前記ワークの認識を調整するために設定可能なパラメータを含む認識プログラムを用いて、前記仮想のシーンデータ中の前記ワークを認識する工程と、
認識評価手段により、前記ワークの位置データ、および、前記ワークの認識結果を比較して、前記認識プログラムの認識性能を評価する工程と、
結果表示手段により、前記認識プログラムの認識性能の評価結果を表示させる工程とを備え、
前記認識評価手段により前記認識プログラムの認識性能を評価する工程は、検出に成功した前記ワークの個数に基づいて、前記認識プログラムの認識性能を評価する評価値を求める工程を含む、認識プログラム評価方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識プログラムを評価する認識プログラム評価装置および認識プログラム評価方法に関する。
【背景技術】
【０００２】
従来、ワークの認識を行う認識装置が知られている（たとえば、特許文献１参照）。上記特許文献１の認識装置では、複数のスクリプトが組み合わされることによりワークを認識するアルゴリズム（認識プログラム）が生成される。そして、このアルゴリズムを用いて、バラ積みされた複数のワークを認識するように構成されている。また、上記特許文献１では、実際にバラ積みされた状態のワークと認識結果とをユーザが視認して比較することによって、アルゴリズムの認識性能の評価が行われていると考えられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載の認識装置は、実際にバラ積みされた状態のワークと認識結果とをユーザが視認して比較することによって、アルゴリズムの認識性能の評価が行われていると考えられるため、ワークを認識するアルゴリズムを評価する際のユーザの負担が大きくなる。このため、ワークを認識するアルゴリズムを評価する際のユーザの負担の軽減が望まれている。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、この発明の１つの目的は、ワークを認識する認識プログラムを評価する際のユーザの負担を軽減することが可能な認識プログラム評価装置および認識プログラム評価方法を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１の局面による認識プログラム評価装置は、複数のワークのそれぞれの位置データを含み、複数のワークのバラ積み状態の仮想のシーンデータを生成または取得する仮想データ取得手段と、ワークの認識を調整するために設定可能なパラメータを含む認識プログラムを用いて、仮想のシーンデータ中のワークを認識する仮想認識手段と、ワークの位置データ、および、仮想認識手段によるワークの認識結果を比較して、認識プログラムの認識性能を評価する認識評価手段と、認識評価手段による認識プログラムの認識性能の評価結果を表示させる結果表示手段とを備え、認識評価手段は、検出に成功したワークの個数に基づいて、認識プログラムの認識性能を評価する評価値を求めるように構成されている。
【０００７】
この第１の局面による認識プログラム評価装置では、上記のように、仮想データ取得手段によって生成または取得された複数のワークのバラ積み状態の仮想のシーンデータ中のワークを仮想認識手段により認識して、認識評価手段により、ワークの位置データ、および、仮想認識手段によるワークの認識結果を比較して、認識プログラムの認識性能を評価する。これにより、複数のワークの位置データから取得される仮想のシーンデータ中のワークの正確な位置および姿勢と、仮想認識手段により認識された認識結果とを自動的に比較することができるので、ユーザが、実際にバラ積みされた状態のワークと認識結果とを視認して比較しながら、認識プログラムの認識性能を評価する場合と異なり、ワークを認識する認識プログラムを評価する際のユーザの負担を軽減することができる。
【０００８】
第２の局面による認識プログラム評価方法は、仮想データ取得手段により、複数のワークのそれぞれの位置データを含み、複数のワークのバラ積み状態の仮想のシーンデータを生成または取得する工程と、仮想認識手段により、ワークの認識を調整するために設定可能なパラメータを含む認識プログラムを用いて、仮想のシーンデータ中のワークを認識する工程と、認識評価手段により、ワークの位置データ、および、ワークの認識結果を比較して、認識プログラムの認識性能を評価する工程と、結果表示手段により、認識プログラムの認識性能の評価結果を表示させる工程とを備え、認識評価手段により認識プログラムの認識性能を評価する工程は、検出に成功したワークの個数に基づいて、認識プログラムの認識性能を評価する評価値を求める工程を含む。
【０００９】
この第２の局面による認識プログラム評価方法では、上記のように、仮想のシーンデータを生成または取得する工程で生成または取得された複数のワークのバラ積み状態の仮想のシーンデータ中のワークを認識して、認識プログラムの認識性能を評価する工程で、ワークの位置データ、および、ワークの認識結果を比較して、認識プログラムの認識性能を評価する。これにより、複数のワークの位置データから取得される仮想のシーンデータ中のワークの正確な位置および姿勢と、認識結果とを自動的に比較することができるので、ユーザが、実際にバラ積みされた状態のワークと認識結果とを視認して比較しながら、認識プログラムの認識性能を評価する場合と異なり、ワークを認識する認識プログラムを評価する際のユーザの負担を軽減することが可能な認識プログラム評価方法を提供することができる。
【発明の効果】
【００１０】
上記のように構成することによって、ワークを認識する認識プログラムを評価する際のユーザの負担が増大するのを抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態によるロボットシステムの構成を示したブロック図である。
【図２】第１実施形態によるロボットシステムを示した斜視図である。
【図３】第１実施形態のワークを示した斜視図である。
【図４】第１実施形態のワークをバラ積みした状態のシーンデータの一例を示した図である。
【図５】第１実施形態の認識プログラムのパラメータを説明するための図である。
【図６】第１実施形態のＰＣによる結果の表示の第１例を示した図である。
【図７】第１実施形態のＰＣによる結果の表示の第２例を示した図である。
【図８】第１実施形態のＰＣによる結果の表示の第３例を示した図である。
【図９】第１実施形態のＰＣにより表示される結果のうち干渉を説明するための図である。
【図１０】第１実施形態のＰＣの制御部による認識プログラム評価処理を説明するためのフローチャートである。
【図１１】第２実施形態のＰＣによる結果の表示の一例を示した図である。
【図１２】第２実施形態のＰＣの制御部によるパラメータ推定処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、実施形態を図面に基づいて説明する。
【００１３】
（第１実施形態）
図１〜図９を参照して、第１実施形態によるロボットシステム１００の構成について説明する。
【００１４】
図１に示すように、ロボットシステム１００は、ＰＣ（パーソナルコンピュータ）１と、ロボット２と、ロボットコントローラ３と、センサユニット４とを備える。ＰＣ１は、制御部１１と、記憶部１２と、表示部１３と、操作部１４とを含んでいる。また、制御部１１は、ハードウェア的には、ＣＰＵなどにより構成されており、機能的（ソフトウェア的）な構成として、モデルエディタ手段１１１と、仮想評価手段１１２と、スクリプト手段１１３と、パラメータエディタ手段１１４とを含んでいる。モデルエディタ手段１１１は、サンプル画像作成手段１１１ａと、辞書データ作成手段１１１ｂとを有する。仮想評価手段１１２は、認識手段１１２ａと、結果表示手段１１２ｂとを有する。なお、ＰＣ１は、「認識プログラム評価装置」の一例であり、モデルエディタ手段１１１は、「仮想データ取得手段」の一例である。また、認識手段１１２ａは、「仮想認識手段」および「認識評価手段」の一例である。
【００１５】
ＰＣ１は、バラ積みされたワーク２００（図２参照）をロボット２により把持するために、ワーク２００を認識する認識プログラムの認識性能を評価するために設けられている。具体的には、ワーク２００を認識する認識プログラムは、センサユニット４により実行されて、バラ積みされたワーク２００の位置および姿勢を認識するように構成されている。
【００１６】
図２に示すように、ロボット２は、先端に取り付けられたハンド２１により、ストッカ５の内部にバラ積みされた複数のワーク２００を、１つずつ把持して、搬送用パレット６に移動させるように構成されている。また、ロボット２は、センサユニット４の認識プログラムの実行によりワーク２００を認識した認識結果に基づいて、ロボット２による把持動作の位置を演算し、ロボットコントローラ３へ送出する。ロボットコントローラ３は予め記憶されていたロボット２の動作情報（教示データ）とワーク２００の認識結果に基づく把持動作の位置情報に基づいてロボット２への動作指令を生成し、ロボット２によりワーク２００を把持するように動作するように構成されている。
【００１７】
センサユニット４は、カメラなどを含む計測ユニット（図示せず）により、ストッカ５の内部にバラ積みされた複数のワーク２００を撮像し、撮像した各画素と各画素に対応する距離情報とを有する３次元画像（距離画像）を取得するように構成されている。また、センサユニット４は、取得した距離画像に基づいて、認識プログラムにより、ワーク２００の３次元的な位置および姿勢を認識するように構成されている。認識プログラムは、画像処理やブロブ解析を行うための機能がそれぞれスクリプト（コマンド）として含まれている。また、複数のスクリプトが並べられるとともに、各スクリプトの実行条件となるパラメータが設定されることにより、ワーク２００の形状に適した認識プログラム（アルゴリズム）が調整される。つまり、認識プログラムは、ワーク２００の形状などの条件により、ワーク２００を精度よく認識するためにスクリプトの順番やパラメータを調整する必要がある。
【００１８】
ここで、第１実施形態では、モデルエディタ手段１１１（制御部１１）は、複数のワーク２００のそれぞれの位置データを含む複数のワーク２００のバラ積み状態の仮想のシーンデータを生成するように構成されている。具体的には、モデルエディタ手段１１１は、１つのワーク２００ａ（図３参照）の３次元データを用いて、図４に示すように、複数のワーク２００ａがバラ積みされた状態の仮想のシーンデータを生成するように構成されている。
【００１９】
つまり、モデルエディタ手段１１１（制御部１１）は、サンプル画像作成手段１１１ａにより、１つのワーク２００ａの３次元のＣＡＤデータ（サンプル画像）を読み込むとともに、１つのワーク２００ａをバラ積みして仮想のシーンデータを生成するように構成されている。この際、モデルエディタ手段１１１は、辞書データ作成手段１１１ｂにより、バラ積みされた複数のワーク２００ａのそれぞれの位置データとしてワーク２００ａの位置および姿勢を取得するように構成されている。詳しくは、辞書データ作成手段１１１ｂは、ワーク２００ａの３次元座標（Ｘ座標、Ｙ座標およびＺ座標）と、３次元姿勢（回転要素ＲＸ、ＲＹおよびＲＺ）とをワーク２００ａごとに取得するように構成されている。また、辞書データ作成手段１１１ｂは、複数のワーク２００ａの位置データを辞書データとして記憶部１２に記憶させるように構成されている。
【００２０】
また、モデルエディタ手段１１１（制御部１１）は、複数の仮想のシーンデータを生成するように構成されている。つまり、モデルエディタ手段１１１は、多様なパターンの仮想のシーンデータを生成するように構成されている。
【００２１】
また、第１実施形態では、仮想評価手段１１２（制御部１１）は、ワーク２００ａを認識するための認識プログラムを用いて、仮想のシーンデータの中のワーク２００ａを認識するとともに、ワーク２００ａの認識結果を評価するように構成されている。具体的には、仮想評価手段１１２の認識手段１１２ａは、ワーク２００ａの認識を調整するために設定可能なパラメータ（図５参照）を含む認識プログラムを用いて、仮想のシーンデータ中のワーク２００ａを認識するように構成されている。
【００２２】
また、認識手段１１２ａ（制御部１１）は、ワーク２００ａの位置データ（辞書データ）、および、ワーク２００ａの認識結果を比較して、認識プログラムの認識性能を評価するように構成されている。具体的には、認識手段１１２ａは、ユーザによりパラメータが設定された認識プログラムを用いて、複数の仮想のシーンデータ（図４参照）の中の個々のワーク２００ａを認識するように構成されている。また、認識手段１１２ａは、ワーク２００ａの位置データ、および、ワーク２００ａの複数の仮想のシーンデータにおける認識結果を比較して、認識プログラムの認識性能を評価するように構成されている。また、認識手段１１２ａは、認識プログラムの認識性能を評価する評価値を求めるように構成されている。
【００２３】
たとえば、認識手段１１２ａ（制御部１１）は、評価値として、成功率や再現率などを求めるように構成されている。なお、成功率は、成功率（％）＝（検出したワーク２００ａの中で検出に成功したワーク２００ａの個数）／（全てのシーンデータから検出したワーク２００ａの合計の個数）×１００の式により表される。つまり、成功率は、ワーク２００ａの検出結果の確実性および信頼性を表している。したがって、ワーク２００ａの検出結果の確実性および信頼性が求められる生産ラインなどで、評価指標として成功率を用いることが有効である。
【００２４】
また、再現率は、再現率（％）＝（検出に成功したワーク２００ａの個数）／（全てのシーンデータ上で認識対象となるワーク２００ａの個数）×１００の式により表される。つまり、再現率は、シーンデータ中に存在するワーク２００ａをどれだけ多く検出することができるかという、検出能力の高さを表している。したがって、１回のスキャン（撮像）により多くのワーク２００ａを検出したい場合（スキャン回数の低減によりタクトタイムを短縮したい場合）や、選別については後処理で行うため、本処理ではなるべく多くの候補を検出したい場合などに、評価指標として再現率を用いることが有効である。
【００２５】
また、認識手段１１２ａ（制御部１１）は、認識プログラムの認識性能を異なる複数の評価基準を用いて評価するように構成されている。たとえば、認識手段１１２ａは、図６に示すように、評価基準として、成功率、再現率、頑健性、干渉および精度などを用いて認識プログラムの認識性能を評価するように構成されている。
【００２６】
なお、頑健性は、図７および図８に示すように、散乱率および欠損率に基づいて、他の物体の混入やワーク２００ａ同士の重なりや姿勢変化による欠損（隠れ）があるバラ積み状態のシーンデータの認識に適しているか否かを評価する。また、頑健性は、認識処理の基本的な性能を評価する。散乱率は、散乱率（％）＝１００−（シーンデータ中のあるワーク２００ａの点数）／（シーンデータ中の全計測点数）×１００で表される。また、欠損率は、欠損率（％）＝１００−（シーンデータ中のあるワーク２００ａの表面積）／（ワーク２００ａの３次元モデルの表面積）×１００で表される。
【００２７】
たとえば、図７に示す例の場合、欠損率が５３％くらいの低いワーク２００ａや、散乱率が４４％くらいの低いワーク２００ａでも未検出のものがある。この場合、頑健性が良好とは言えず、認識性能が安定していない可能性がある。すなわち、頑健性が良くないと言える。一方、図８に示す例の場合、欠損率が８０％以下、散乱率が８０％以下のワーク２００ａは、全て検出されている。この場合、バラ積みにおいて、他物体の混入が少なく（散乱率が低く）、データ欠損が少なければ（欠損率が低ければ）、確実にワーク２００ａを認識することが可能であり、頑健性が良好であると言える。
【００２８】
また、干渉は、実際にロボット２が把持可能なワーク２００ａを検出できているのかを評価する。つまり、干渉率（％）＝（干渉領域点数）／（把持領域点数）×１００により表される干渉率に基づいて、検出したワーク２００ａの平均または最大の干渉率が最も低いものを、把持しやすいワーク２００ａを検出できていると評価する。把持領域点数は、ワーク２００ａをロボット２に把持する場合の把持領域（図９参照）の点数を表す。また、干渉領域点数は、把持領域内のロボット２が把持する位置よりも上方に他のワーク２００ａなどがあり干渉している箇所の点数を表す。なお、把持領域は、ワーク２００ａの位置データに含まれている。
【００２９】
また、精度は、ワーク２００ａの認識結果の位置（Ｘｄ、Ｙｄ、Ｚｄ）および姿勢（ＲＸｄ、ＲＹｄ、ＲＺｄ）と、辞書データ中のワーク２００ａの位置データ（正解のデータ）の位置（Ｘｃ、Ｙｃ、Ｚｃ）および姿勢（ＲＸｃ、ＲＹｃ、ＲＺｃ）との誤差（差やばらつき）を精度として評価する。つまり、より正確にワーク２００ａの位置や姿勢を認識できているか否かが、評価基準としての精度により評価される。したがって、組み立て工程など、より正確な把持が求められる場合など、評価指標として精度を用いることが有効である。
【００３０】
結果表示手段１１２ｂ（制御部１１）は、認識手段１１２ａによる認識プログラムの認識性能の評価結果を、表示部１３に表示させるように構成されている。たとえば、結果表示手段１１２ｂは、図６に示すように、成功率、再現率、頑健性、干渉および精度の評価結果を表示させる。この場合、結果表示手段１１２ｂは、成功率および再現率を、百分率で表して表示する。また、結果表示手段１１２ｂは、頑健性、干渉および精度を、「◎」、「○」、「△」などで表して表示する。また、結果表示手段１１２ｂは、図７および図８に示すように、散乱率と欠損率とを、各ワーク２００ａの検出、未検出ごとに表したグラフを表示させる。
【００３１】
スクリプト手段１１３（制御部１１）は、認識プログラムのスクリプト（処理）（図５参照）の設定をユーザによる操作部１４の操作に基づいて設定するように構成されている。パラメータエディタ手段１１４（制御部１１）は、認識プログラムのスクリプト（処理）ごとのパラメータ（図５参照）の設定をユーザによる操作部１４の操作に基づいて設定するように構成されている。
【００３２】
図２に示すように、ロボット２は、垂直多関節ロボットからなる。またロボット２は、６自由度を有するように構成されている。ロボットコントローラ３は、ロボット２の全体の動作を制御するように構成されている。
【００３３】
次に、図１０を参照して、ＰＣ１の制御部１１が行う認識プログラム評価処理について説明する。
【００３４】
ユーザの操作により認識対象のワーク２００ａの３次元ＣＡＤデータが入力されると、ステップＳ１において、制御部１１は、認識対象のワーク２００ａ（図３参照）の単体（１つ）の３次元ＣＡＤデータを読み込んで取得する。制御部１１は、ステップＳ２において、ワーク２００ａの３次元ＣＡＤデータからバラ積みのシーンデータ（図４参照）をＮ個作成する。
【００３５】
制御部１１は、ステップＳ３において、作成したＮ個のシーンデータ中に存在する全ての認識対象のワーク２００ａについての位置データ（正解の位置および姿勢）と、ステータス（散乱率および欠損率）とを算出する。また、制御部１１は、算出した、位置データおよびステータスを辞書データとして、記憶部１２に記憶させる。
【００３６】
制御部１１は、ステップＳ４において、評価対象の認識プログラムの指定を受け付ける。具体的には、制御部１１は、認識プログラムのスクリプト（処理）およびスクリプトのパラメータの設定をユーザの操作により受け付ける。制御部１１は、ステップＳ５においてｉ＝１とする。制御部１１は、ステップＳ６において、ｉ番目のシーンデータに対して認識プログラムを実行して、ワーク２００ａを認識して、認識結果を取得する。
【００３７】
制御部１１は、ステップＳ７において、ｉがＮより小さいか否かを判断する。つまり、Ｎ個のシーンデータすべてについて、認識プログラムの実行が終了したか否かを判断する。ｉ＜Ｎならば（Ｎ個のシーンデータすべてについて認識プログラムを実行していない場合）、制御部１１は、ステップＳ８において、ｉ＝ｉ＋１として、ステップＳ６に戻る。ｉ＝Ｎならば（Ｎ個のシーンデータすべてについて認識プログラムの実行が終了した場合）、制御部１１は、ステップＳ９において、取得した認識結果を集計（評価）して、表示部１３に表示（図６〜図８参照）する。その後、認識プログラム評価処理を終了する。
【００３８】
第１実施形態では、上記のように、モデルエディタ手段１１１によって生成された複数のワーク２００ａのバラ積み状態の仮想のシーンデータ中のワーク２００ａを認識手段１１２ａにより認識するとともに、ワーク２００ａの位置データ、および、ワーク２００ａの認識結果を比較して、認識プログラムの認識性能を評価する。これにより、複数のワーク２００ａの位置データから取得される仮想のシーンデータ中のワーク２００ａの正確な位置および姿勢と、認識手段１１２ａにより認識された認識結果とを自動的に比較することができるので、ユーザが、実際にバラ積みされた状態のワーク２００ａと認識結果とを視認して比較しながら、認識プログラムの認識性能を評価する場合と異なり、ワーク２００ａを認識する認識プログラムを評価する際のユーザの負担を軽減することができる。また、実際のワーク２００を用いなくても、シーンデータを仮想的に生成することができるので、実機（ロボット２、ロボットコントローラ３およびセンサユニット４）を用いずに、ＰＣ１のみを用いてシミュレーションして認識プログラムを評価することができる。これにより、予めＰＣ１により認識プログラムを調整することができるので、実機（ロボット２、ロボットコントローラ３およびセンサユニット４）を用いた認識プログラムの調整の時間を短縮することができる。
【００３９】
また、第１実施形態では、上記のように、認識手段１１２ａ（制御部１１）を、認識プログラムの認識性能を評価する評価値（成功率および再現率）を求めるように構成し、結果表示手段１１２ｂ（制御部１１）を、評価値（成功率および再現率）を表示させるように構成する。これにより、認識プログラムの認識性能が評価値（成功率および再現率）としてユーザに示されるので、評価値に基づいて、認識プログラムのパラメータをユーザが容易に調整することができる。
【００４０】
また、第１実施形態では、上記のように、認識手段１１２ａ（制御部１１）を、認識プログラムの認識性能を異なる複数の評価基準を用いて評価するように構成し、結果表示手段１１２ｂ（制御部１１）を、異なる複数の評価基準を用いた評価結果を表示させるように構成する。これにより、ワーク２００ａを認識させる用途（ロボットシステム１００の用途）に応じた評価基準の評価結果に基づいて、認識プログラムのパラメータを調整することができる。
【００４１】
また、第１実施形態では、上記のように、モデルエディタ手段１１１（制御部１１）を、１つのワーク２００ａの３次元データを用いて、複数のワーク２００ａのバラ積み状態の仮想のシーンデータを生成するように構成する。これにより、認識したいワーク２００ａのバラ積みされる個数や、形状などに対応する仮想のシーンデータを容易に生成することができるので、より精度よく認識プログラムを評価することができる。
【００４２】
また、第１実施形態では、上記のように、モデルエディタ手段１１１（制御部１１）を、複数の仮想のシーンデータを生成するように構成し、認識手段１１２ａ（制御部１１）を、認識プログラムを用いて、複数の仮想のシーンデータのワーク２００ａを認識するように構成するとともに、ワーク２００ａの位置データ、および、ワーク２００ａの複数の仮想のシーンデータにおける認識結果を比較して、認識プログラムの認識性能を評価するように構成する。これにより、バラ積みされるワーク２００ａの多様なパターンの仮想のシーンデータを用いて、認識プログラムを評価することができるので、認識プログラムの評価の精度をより高めることができる。
【００４３】
（第２実施形態）
次に、図５、図１１および図１２を参照して、第２実施形態によるロボットシステム１００の構成について説明する。この第２実施形態では、認識プログラムのパラメータを変化させずに認識プログラムの評価を行う構成の上記第１実施形態と異なり、認識プログラムのパラメータを変化させて認識プログラムの評価を行う構成について説明する。
【００４４】
ここで、第２実施形態では、認識手段１１２ａ（制御部１１）は、認識プログラムのパラメータを変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成されている。具体的には、図５に示すように、認識手段１１２ａは、認識プログラムのパラメータをユーザにより設定された下限値と上限値との間で変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成されている。たとえば、図５に示す例の場合、「代入」処理（スクリプト）のパラメータ（Ｘ、Ｙ、Ｚ、ＲＸ、ＲＹ、ＲＺ）を、それぞれ、下限値と上限値との間で、刻み幅ずつ変化させて、ワーク２００ａを認識プログラムにより認識させる。
【００４５】
また、認識手段１１２ａ（制御部１１）は、認識プログラムの複数のパラメータ（たとえば、Ｘ、Ｙ、Ｚ、ＲＸ、ＲＹ、ＲＺ）を変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成されている。つまり、認識手段１１２ａは、認識プログラムのパラメータを変化させながら、認識性能が高くなるようなパラメータの組み合せを推定するように構成されている。また、認識手段１１２ａは、ワーク２００ａの位置データ、および、ワーク２００ａの認識結果を比較して、認識プログラムの認識性能を、パラメータごとに評価する（図１１参照）ように構成されている。
【００４６】
図１１に示すように、結果表示手段１１２ｂ（制御部１１）は、複数のパラメータを変化させた組み合せ（パラメータセットＰ１、Ｐ２…）ごとに、認識プログラムの認識性能の評価結果を表示部１３に表示させるように構成されている。また、結果表示手段１１２ｂは、複数のパラメータセットのうち、評価基準（成功率、再現率、頑健性、干渉および精度）のよいもの（たとえば、認識性能が１番高いもの）を「◎」で示すように構成されている。
【００４７】
次に、図１２を参照して、ＰＣ１の制御部１１が行うパラメータ推定処理について説明する。
【００４８】
ユーザの操作により認識対象のワーク２００ａの３次元ＣＡＤデータが入力されると、ステップＳ１１において、制御部１１は、認識対象のワーク２００ａの単体（１つ）の３次元ＣＡＤデータを読み込んで取得する。制御部１１は、ステップＳ１２において、ワーク２００ａの３次元ＣＡＤデータからバラ積みのシーンデータをＮｓ個作成する。
【００４９】
制御部１１は、ステップＳ１３において、作成したＮｓ個のシーンデータ中に存在する全ての認識対象のワーク２００ａについての位置データ（正解の位置および姿勢）と、ステータス（散乱率および欠損率）とを算出する。また、制御部１１は、算出した、位置データおよびステータスを辞書データとして、記憶部１２に記憶させる。
【００５０】
制御部１１は、ステップＳ１４において、評価対象の認識プログラムの指定を受け付ける。具体的には、制御部１１は、認識プログラムのスクリプト（処理）およびスクリプトのパラメータの設定をユーザの操作により受け付ける。制御部１１は、ステップＳ１５において、推定対象となる認識プログラムのパラメータの指定（選択）と推定範囲（上限値、下限値および刻み幅）の設定とをユーザの操作により受け付ける。
【００５１】
制御部１１は、ステップＳ１６において、指定されたパラメータと推定範囲とから、全て（Ｎｐ個）のパラメータの組み合せ（パラメータセットＰ１〜ＰＮｐ）を生成する。  制御部１１は、ステップＳ１７において、ｊ＝１とし、ステップＳ１８において、ｋ＝１とする。制御部１１は、ステップＳ１９において、ｋ番目のシーンデータに対してｊ番目のパラメータセットＰｊで認識プログラムを実行して、ワーク２００ａを認識して、認識結果を取得する。
【００５２】
制御部１１は、ステップＳ２０において、ｋがＮｓより小さいか否かを判断する。つまり、Ｎｓ個のシーンデータすべてについて、認識プログラムの実行が終了したか否かを判断する。ｋ＜Ｎｓならば（Ｎｓ個のシーンデータすべてについて認識プログラムを実行していない場合）、制御部１１は、ステップＳ２１において、ｋ＝ｋ＋１として、ステップＳ１９に戻る。ｋ＝Ｎｓならば（Ｎｓ個のシーンデータすべてについて認識プログラムの実行が終了した場合）、制御部１１は、ステップＳ２２に進む。
【００５３】
制御部１１は、ステップＳ２２において、ｊがＮｐより小さいか否かを判断する。つまり、Ｎｐ個のパラメータの組み合せ（パラメータセット）すべてについて、認識プログラムの実行が終了したか否かを判断する。ｊ＜Ｎｐならば（Ｎｐ個のパラメータセットすべてについて認識プログラムを実行していない場合）、制御部１１は、ステップＳ２３において、ｊ＝ｊ＋１として、ステップＳ１８に戻る。ｊ＝Ｎｐならば（Ｎｐ個のパラメータセットすべてについて認識プログラムの実行が終了した場合）、制御部１１は、ステップＳ２４において、取得した認識結果を集計（評価）して、表示部１３に表示（図１１参照）する。その後、認識プログラム評価処理を終了する。
【００５４】
なお、第２実施形態のその他の構成は、上記第１実施形態と同様である。
【００５５】
第２実施形態では、上記のように、認識手段１１２ａ（制御部１１）を、認識プログラムのパラメータを変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成するとともに、ワーク２００ａの位置データ、および、ワーク２００ａの認識結果を比較して、認識プログラムの認識性能を、パラメータごとに評価するように構成する。これにより、認識プログラムのパラメータが認識手段１１２ａにより変化されて、それぞれのパラメータごとに認識プログラムが評価されるので、ユーザがパラメータを手動で変化させる場合に比べて、ユーザの負担を軽減することができる。
【００５６】
また、第２実施形態では、上記のように、認識手段１１２ａ（制御部１１）を、認識プログラムのパラメータをユーザにより設定された下限値と上限値との間で変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成する。これにより、それぞれのパラメータごとに仮想のシーンデータ中のワーク２００ａを認識して、認識プログラムを評価する場合において、パラメータをユーザにより設定された下限値と上限値との間で変化させて認識プログラムが評価されるので、パラメータを全ての範囲において変化させる場合に比べて、処理時間を短縮することができる。
【００５７】
また、第２実施形態では、上記のように、認識手段１１２ａ（制御部１１）を、認識プログラムの複数のパラメータを変化させながら、仮想のシーンデータ中のワーク２００ａを認識するように構成し、結果表示手段１１２ｂ（制御部１１）を、複数のパラメータを変化させた組み合せごとに、認識プログラムの認識性能の評価結果を表示させるように構成する。これにより、パラメータの組み合せごとに認識プログラムの評価結果がユーザに示されるので、パラメータの組み合せごとの評価結果に基づいて、認識プログラムのパラメータの組み合せを選択して、認識プログラムを容易に調整することができる。
【００５８】
なお、第２実施形態のその他の効果は、上記第１実施形態と同様である。
【００５９】
なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれる。
【００６０】
たとえば、上記第１および第２実施形態では、ＰＣ（認識プログラム評価装置）が、１つのワークのデータからワークのバラ積み状態の仮想のシーンデータを生成する例を示したが、たとえば、予め生成されたワークのバラ積み状態の仮想のシーンデータをＰＣが取得するようにしてもよい。
【００６１】
また、上記第１および第２実施形態では、ロボットのロボットアームが６自由度を有する例を示したが、たとえば、ロボットアームが６自由度以外の自由度（５自由度、７自由度など）を有していてもよい。
【００６２】
また、上記第１および第２実施形態では、ＰＣ（認識プログラム評価装置）は、ロボットによりバラ積みされたワークを把持するためのワークの位置を認識する認識プログラムを評価する構成を示したが、たとえば、ロボットによりワークを把持するための認識プログラム以外の認識プログラムを評価する構成でもよい。たとえば、作業後のワークの状態を認識する認識プログラムを評価してもよい。
【００６３】
また、上記第１および第２実施形態では、複数の評価基準を用いて評価する構成の例を示したが、たとえば、１つの評価基準を用いて評価してもよい。また、成功率、再現性、頑健性、干渉および精度以外の評価基準を用いて評価してもよい。
【００６４】
また、上記第１および第２実施形態では、説明の便宜上、制御部の処理を処理フローに沿って順番に処理を行うフロー駆動型のフローを用いて説明したが、たとえば、制御部の処理動作を、イベント単位で処理を実行するイベント駆動型（イベントドリブン型）の処理により行ってもよい。この場合、完全なイベント駆動型で行ってもよいし、イベント駆動およびフロー駆動を組み合わせて行ってもよい。
【符号の説明】
【００６５】
１  ＰＣ（認識プログラム評価装置）
１１１  モデルエディタ手段（仮想データ取得手段）
１１２ａ  認識手段（仮想認識手段、認識評価手段）
１１２ｂ  結果表示手段
２００、２００ａ  ワーク
【図１】
0005561384.tif 000002
【図２】
0005561384.tif 000003
【図３】
0005561384.tif 000004
【図４】
0005561384.tif 000005
【図５】
0005561384.tif 000006
【図６】
0005561384.tif 000007
【図７】
0005561384.tif 000008
【図８】
0005561384.tif 000009
【図９】
0005561384.tif 000010
【図１０】
0005561384.tif 000011
【図１１】
0005561384.tif 000012
【図１２】
0005561384.tif 000013