(57)【要約】  【課題】作業環境に影響されない安定した視覚サーボを実現する。  【解決手段】教示装置は、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、前記第一ガイド及び前記第二ガイドを表示する表示部と、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部と、を有する。【選択図】図１
2015089598.tif 000002
【特許請求の範囲】
【請求項１】
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、
第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、
前記第一ガイド及び前記第二ガイドを表示する表示部と、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、
前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部と、
を有することを特徴とする教示装置。
【請求項２】
請求項１に記載の教示装置であって、
前記第一ガイド設定部は、前記第一対象物の画像データの特徴と関連付けて前記第一ガイドの設定を受け付け、
前記第二ガイド設定部は、前記第二対象物の画像データの特徴と関連付けて前記第二ガイドの設定を受け付け、
前記教示データ生成部は、前記第一対象物の画像データの特徴及び前記第一ガイドと、前記第二対象物の画像データの特徴及び前記第二ガイドとを示す教示データを生成する、
ことを特徴とする教示装置。
【請求項３】
請求項２に記載の教示装置であって、
前記第一ガイド設定部は、前記第一対象物の画像データの複数の特徴それぞれと関連付けて複数の前記第一ガイドの設定を受け付け、
前記教示データ生成部は、前記第一対象物の画像データの複数の特徴及び前記複数の第一ガイドを示す教示データを生成する、
ことを特徴とする教示装置。
【請求項４】
請求項３に記載の教示装置であって、
前記第一ガイド設定部は、複数の画像処理のそれぞれを用いて前記第一対象物の画像データの複数の特徴を抽出し、前記抽出された複数の特徴のそれぞれと関連付ける前記複数の第一ガイドの設定を受け付ける、
ことを特徴とする教示装置。
【請求項５】
請求項３に記載の教示装置であって、
前記第一ガイド設定部は、所定の画像処理を用いて前記第一対象物の画像データの特徴を抽出し、前記抽出された特徴から、複数の特徴の指定と前記指定された複数の特徴のそれぞれと関連付ける前記複数の第一ガイドの設定を受け付ける、
ことを特徴とする教示装置。
【請求項６】
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、
撮像装置の撮像範囲に対して、第二ガイドの設定を受け付ける第二ガイド設定部と、
前記第一ガイド及び前記第二ガイドを表示する表示部と、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、
前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部と、
を有することを特徴とする教示装置。
【請求項７】
教示装置の教示方法であって、
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定ステップと、
第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定ステップと、
前記第一ガイド及び前記第二ガイドを表示する表示ステップと、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成ステップと、
前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信ステップと、
を有することを特徴とする教示方法。
【請求項８】
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、
第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、
前記第一ガイド及び前記第二ガイドを表示する表示部と、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、
前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部として、
コンピューターを機能させることを特徴とするプログラム。
【請求項９】
第一対象物の画像データに対して設定される第一ガイドと、第二対象物の画像データに対して設定される第二ガイドとが、所定の位置関係を示す教示データを格納する教示データ格納部と、
前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、
前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、
を有することを特徴とするロボット。
【請求項１０】
請求項９に記載のロボットであって、
前記教示データには、前記第一対象物の画像データの特徴と関連付けて前記第一ガイドが示され、また、前記第二対象物の画像データの特徴と関連付けて前記第二ガイドが示され、
前記第一ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データの特徴に関連付けて、前記第一ガイドを生成し、
前記第二ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データの特徴に関連付けて、前記第二ガイドを生成する、
ことを特徴とするロボット。
【請求項１１】
請求項１０に記載のロボットであって、
前記教示データには、前記第一対象物の画像データの複数の特徴それぞれと関連付けて複数の前記第一ガイドが示され、
前記第一ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データの複数の特徴のいずれか一つと関連付けて、前記第一ガイドを生成する、
ことを特徴とするロボット。
【請求項１２】
第一対象物の画像データに対して設定される第一ガイドと、撮像装置の撮像範囲に対して設定される第二ガイドとが、所定の位置関係を示す教示データを格納する教示データ格納部と、
前記第一対象物と前記第二対象物とを含む撮像画像を前記撮像装置から取得する画像取得部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、
前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、
を有することを特徴とするロボット。
【請求項１３】
ロボットの制御方法であって、
第一対象物の画像データに対して設定される第一ガイドと、第二対象物の画像データに対して設定される第二ガイドとが、所定の位置関係を示す教示データをする教示データ格納ステップと、
前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得ステップと、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成ステップと、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成ステップと、
前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御ステップと、
を有することを特徴とする制御方法。
【請求項１４】
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、
第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、
前記第一ガイド及び前記第二ガイドを表示する表示部と、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、
前記生成された教示データを格納する教示データ格納部と、
前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、
前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、
を有することを特徴とするロボットシステム。
【請求項１５】
ロボットシステムの制御方法であって、
第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定ステップと、
第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定ステップと、
前記第一ガイド及び前記第二ガイドを表示する表示ステップと、
前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成ステップと、
前記生成された教示データを格納する教示データ格納ステップと、
前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得ステップと、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成ステップと、
前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成ステップと、
前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御ステップと、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、教示装置、ロボット、ロボットシステム、方法、及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、マーカー付き参照画像（目標画像）とマーカー付き撮像画像（現在画像）とに基づいて、ビジュアルサーボを行うことが記載されている。
【０００３】
特許文献１に記載されているようなビジュアルサーボでは、ロボットの目標の位置及び姿勢を含む目標画像と、ロボットの現在の位置及び姿勢を含む撮像画像との差異の評価値が小さくなるようにロボットの動作が制御される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−２５４５１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記のようなビジュアルサーボは、目標画像を教示した時とビジュアルサーボの実行時とで作業環境が異なる場合には、目標画像と撮像画像との差異を精度よく評価できなかったり、当該差異の評価値が所定の範囲内に収まらなかったりするため、ロボットの制御を適切に行えないという問題がある。作業環境が異なる場合とは、例えば、カメラの位置や姿勢が変化したり、照明の明るさが変化したりする場合である。
【０００６】
そこで、本発明は、作業環境に影響されない安定した視覚サーボを実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決する本発明の第一態様は、教示装置であって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、前記第一ガイド及び前記第二ガイドを表示する表示部と、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部と、を有する。本発明の第一態様によれば、二つの対象物に対してガイドが設定され、例えば、これらの設定されたガイドを近付けるような視覚サーボの教示データが、ロボットに送られる。ロボットは、撮像画像に対してこれらのガイドを生成し、これらのガイドを用いた視覚サーボを実行することができる。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【０００８】
前記第一ガイド設定部は、前記第一対象物の画像データの特徴と関連付けて前記第一ガイドの設定を受け付け、前記第二ガイド設定部は、前記第二対象物の画像データの特徴と関連付けて前記第二ガイドの設定を受け付け、前記教示データ生成部は、前記第一対象物の画像データの特徴及び前記第一ガイドと、前記第二対象物の画像データの特徴及び前記第二ガイドとを示す教示データを生成する、ようにしてもよい。これにより、ロボットは、撮像画像に含まれる対象物の画像の特徴に基づいて、簡単に精度よくガイドを生成することができる。
【０００９】
前記第一ガイド設定部は、前記第一対象物の画像データの複数の特徴それぞれと関連付けて複数の前記第一ガイドの設定を受け付け、前記教示データ生成部は、前記第一対象物の画像データの複数の特徴及び前記複数の第一ガイドを示す教示データを生成する、ようにしてもよい。これにより、ロボットは、撮像画像に含まれる対象物に対して、複数のガイドを生成できるようになるため、作業環境の変化に影響されにくい安定した視覚サーボを実現することができる。
【００１０】
前記第一ガイド設定部は、複数の画像処理のそれぞれを用いて前記第一対象物の画像データの複数の特徴を抽出し、前記抽出された複数の特徴のそれぞれと関連付ける前記複数の第一ガイドの設定を受け付ける、ようにしてもよい。これにより、ロボットは、撮像画像に含まれる対象物に対して、異なる画像処理により複数のガイドを生成できるようになるため、作業環境の変化に影響されにくい安定した視覚サーボを実現することができる。
【００１１】
前記第一ガイド設定部は、所定の画像処理を用いて前記第一対象物の画像データの特徴を抽出し、前記抽出された特徴から、複数の特徴の指定と前記指定された複数の特徴のそれぞれと関連付ける前記複数の第一ガイドの設定を受け付ける、ようにしてもよい。これにより、ロボットは、撮像画像に含まれる対象物に対して、同じ画像処理により複数のガイドを生成できるようになるため、作業環境の変化に影響されにくい安定した視覚サーボを実現することができる。
【００１２】
上記の課題を解決する本発明の第二態様は、教示装置であって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、撮像装置の撮像範囲に対して、第二ガイドの設定を受け付ける第二ガイド設定部と、前記第一ガイド及び前記第二ガイドを表示する表示部と、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部と、を有する。本発明の第二態様によれば、一つの対象物に対してガイドが設定され、また、撮像範囲に対してガイドが設定され、例えば、これらの設定されたガイドを近付けるような視覚サーボの教示データが、ロボットに送られる。ロボットは、撮像画像に対してこれらのガイドを生成し、これらのガイドを用いた視覚サーボを実行することができる。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。また、撮像範囲に対するガイドを使うため、撮像画像から特徴を抽出するような画像処理が必要なくなり、処理負荷が軽減される。
【００１３】
上記の課題を解決する本発明の第三態様は、教示装置の教示方法であって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定ステップと、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定ステップと、前記第一ガイド及び前記第二ガイドを表示する表示ステップと、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成ステップと、前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信ステップと、を有する。本発明の第三態様によれば、二つの対象物に対してガイドが設定され、例えば、これらの設定されたガイドを近付けるような視覚サーボの教示データが、ロボットに送られる。ロボットは、撮像画像に対してこれらのガイドを生成し、これらのガイドを用いた視覚サーボを実行することができる。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【００１４】
上記の課題を解決する本発明の第四態様は、プログラムであって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、前記第一ガイド及び前記第二ガイドを表示する表示部と、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、前記生成された教示データを、当該教示データに基づく視覚サーボを行うロボットに送信する教示データ送信部として、コンピューターを機能させる。本発明の第四態様によれば、二つの対象物に対してガイドが設定され、例えば、これらの設定されたガイドを近付けるような視覚サーボの教示データが、ロボットに送られる。ロボットは、撮像画像に対してこれらのガイドを生成し、これらのガイドを用いた視覚サーボを実行することができる。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【００１５】
上記の課題を解決する本発明の第五態様は、ロボットであって、第一対象物の画像データに対して設定される第一ガイドと、第二対象物の画像データに対して設定される第二ガイドとが、所定の位置関係を示す教示データを格納する教示データ格納部と、前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、を有する。本発明の第五態様によれば、撮像画像に含まれる二つの対象物に対してガイドが生成され、これらのガイドを用いた視覚サーボが実行される。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【００１６】
前記教示データには、前記第一対象物の画像データの特徴と関連付けて前記第一ガイドが示され、また、前記第二対象物の画像データの特徴と関連付けて前記第二ガイドが示され、前記第一ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データの特徴に関連付けて、前記第一ガイドを生成し、前記第二ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データの特徴に関連付けて、前記第二ガイドを生成する、ようにしてもよい。これにより、撮像画像に含まれる対象物の画像の特徴に基づいて、簡単に精度よくガイドを生成することができる。
【００１７】
前記教示データには、前記第一対象物の画像データの複数の特徴それぞれと関連付けて複数の前記第一ガイドが示され、前記第一ガイド生成部は、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データの複数の特徴のいずれか一つと関連付けて、前記第一ガイドを生成する、ようにしてもよい。これにより、撮像画像に含まれる対象物に対して、複数のガイドを生成できるようになるため、作業環境の変化に影響されにくい安定した視覚サーボを実現することができる。
【００１８】
上記の課題を解決する本発明の第六態様は、ロボットであって、第一対象物の画像データに対して設定される第一ガイドと、撮像装置の撮像範囲に対して設定される第二ガイドとが、所定の位置関係を示す教示データを格納する教示データ格納部と、前記第一対象物と前記第二対象物とを含む撮像画像を前記撮像装置から取得する画像取得部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、を有する。本発明の第六態様によれば、撮像画像に含まれる対象物に対するガイドと、撮像範囲に対するガイドとが生成され、これらのガイドを用いた視覚サーボが実行される。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。また、撮像範囲に対するガイドを使うため、撮像画像から特徴を抽出するような画像処理が必要なくなり、処理負荷が軽減される。
【００１９】
上記の課題を解決する本発明の第七態様は、ロボットの制御方法であって、第一対象物の画像データに対して設定される第一ガイドと、第二対象物の画像データに対して設定される第二ガイドとが、所定の位置関係を示す教示データをする教示データ格納ステップと、前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得ステップと、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成ステップと、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成ステップと、前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御ステップと、を有する。本発明の第七態様によれば、撮像画像に含まれる二つの対象物に対してガイドが生成され、これらのガイドを用いた視覚サーボが実行される。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【００２０】
上記の課題を解決する本発明の第八態様は、ロボットシステムであって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定部と、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定部と、前記第一ガイド及び前記第二ガイドを表示する表示部と、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成部と、前記生成された教示データを格納する教示データ格納部と、前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成部と、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成部と、前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御部と、を有する。本発明の第八態様によれば、撮像画像に含まれる二つの対象物に対してガイドが生成され、これらのガイドを用いた視覚サーボが実行される。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【００２１】
上記の課題を解決する本発明の第九態様は、ロボットシステムの制御方法であって、第一対象物の画像データに対して、第一ガイドの設定を受け付ける第一ガイド設定ステップと、第二対象物の画像データに対して、第二ガイドの設定を受け付ける第二ガイド設定ステップと、前記第一ガイド及び前記第二ガイドを表示する表示ステップと、前記第一ガイド及び前記第二ガイドが所定の位置関係を示す教示データを生成する教示データ生成ステップと、前記生成された教示データを格納する教示データ格納ステップと、前記第一対象物と前記第二対象物とを含む撮像画像を取得する画像取得ステップと、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第一対象物の画像データに対して、前記第一ガイドを生成する第一ガイド生成ステップと、前記教示データに基づいて、前記取得された撮像画像に含まれる前記第二対象物の画像データに対して、前記第二ガイドを生成する第二ガイド生成ステップと、前記教示データに基づいて、前記生成された第一ガイドと前記生成された第二ガイドとが、前記所定の位置関係となるように視覚サーボに基づく制御を行う視覚サーボ制御ステップと、を有する。本発明の第九態様によれば、撮像画像に含まれる二つの対象物に対してガイドが生成され、これらのガイドを用いた視覚サーボが実行される。従って、目標画像と撮像画像の二つの画像の差異を評価する必要がなく、作業環境に影響されない安定した視覚サーボを実現することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態に係るロボットシステムの概略構成の一例を示す図である。
【図２】ロボットシステムの機能構成の一例を示す図である。
【図３】（Ａ）対象物ガイドデータのデータ構造の一例を示す図である。（Ｂ）固定ガイドデータのデータ構造の一例を示す図である。
【図４】教示データのデータ構造の一例を示す図である。
【図５】教示装置の機能を実現するハードウェア構成の一例を示す図である。
【図６】教示処理の一例を示すフロー図である。
【図７】ロボットが行う第一の作業例を示す図である。
【図８】（Ａ）部品Ｗ１に設定されるガイドの一例を示す図である。（Ｂ）部品Ｗ２に設定されるガイドの一例を示す図である。（Ｃ）固定ガイドの一例を説明する図である。
【図９】第一の作業例における視覚サーボ処理の一例を示すフロー図である。
【図１０】第一の作業例における視覚サーボの経過を視覚的に説明する図（その１）である。
【図１１】第一の作業例における視覚サーボの経過を視覚的に説明する図（その２）である。
【図１２】ロボットが行う第二の作業例を示す図である。
【図１３】（Ａ）部品Ｗ３に設定されるガイドの一例を示す図である。（Ｂ）部品Ｗ４に設定されるガイドの一例を示す図である。
【図１４】第二の作業例における視覚サーボ処理の一例を示すフロー図である。
【図１５】第二の作業例における視覚サーボの経過を視覚的に説明する図（その１）である。
【図１６】第二の作業例における視覚サーボの経過を視覚的に説明する図（その２）である。
【図１７】（Ａ１）〜（Ａ３）部品Ｗ３に設定される複数のガイドの例を示す図である。
【図１８】（Ａ１）〜（Ａ３）部品Ｗ４に設定される複数のガイドの例を示す図である。
【図１９】第二の作業例における視覚サーボ処理の変形例を示すフロー図である。
【図２０】第二の作業例における視覚サーボの変形例の経過を視覚的に説明する図（その１）である。
【図２１】第二の作業例における視覚サーボの変形例の経過を視覚的に説明する図（その２）である。
【発明を実施するための形態】
【００２３】
＜本発明の実施形態＞
本発明の実施形態について、図面を参照して説明する。
【００２４】
図１は、本発明の実施形態に係るロボットシステムの概略構成の一例を示す図である。
【００２５】
ロボットシステム１は、ロボット２と、教示装置４と、撮像装置５とを有する。ロボット２は、制御部３を有する。ロボット２と教示装置４は、通信可能に接続される。また、ロボット２と撮像装置５は、通信可能に接続される。
【００２６】
ロボット２は、制御部３により制御され、目的の作業を行う。ロボット２は、例えば、作業台Ｔの近くに配置され、作業台Ｔ上の所定の作業領域内で作業を行う。ロボット２の作業内容は、特に限定されないが、例えば、複数のワークＷを嵌め合わせる作業が考えられる。
【００２７】
ロボット２は、胴部２０と、アーム２１と、ハンド２２と、脚部２４と、頭部２５とを有する。
【００２８】
アーム２１は、胴部２０に設けられる。アーム（「マニピュレーター」ともいう。）２１は、一以上のジョイント（「回転軸」ともいう。）２１ａ及び一以上のアーム部材（「リンク」ともいう。）２１ｂを含む。
【００２９】
ジョイント２１ａには、それらを動作させるためのアクチュエーター（図示せず）が設けられる。アクチュエーターは、例えば、サーボモーターやエンコーダーなどを備える。エンコーダーが出力するエンコーダー値は、制御部３によるロボット２のフィードバック制御などに使用される。
【００３０】
また、アーム２１の先端には、力覚センサー２１ｃが設けられる。力覚センサーは、ロボット２が出している力に対する反力として受けている力や、モーメントを検出するセンサーである。力覚センサーとしては、例えば、並進３軸方向の力成分と、回転３軸回りのモーメント成分の６成分を同時に検出することができる６軸力覚センサーを用いることができる。なお、力覚センサーは、６軸に限らず、例えば３軸でもよい。
【００３１】
各回転軸を連動させることにより、アーム部材２１ｂの姿勢を変化させ、アーム２１の先端部などに設定された注目位置（「エンドポイント」ともいう。）を、所定の可動範囲内で自在に移動させたり自由な方向へ向けたりすることができる。なお、エンドポイントの位置は、アームの先端部に限定されず、例えば、エンドエフェクターの先端部などに設定されてもよい。
【００３２】
なお、アーム２１は、マニピュレーターの一種ということができる。マニピュレーターは、エンドポイントの位置を移動させる機構であり、アームに限られず様々な形態をとることができる。また、マニピュレーターは、図示するように２本に限られず、１本あるいは３本以上設けるようにしてもよい。
【００３３】
ハンド２２は、アーム２１の先端に設けられる。ハンド２２は、例えば、複数の指を備え、少なくとも２本の指で作業対象物を把持したり解放したりすることができる。ハンド２２は、アーム２１の先端部に対して着脱可能であってもよい。
【００３４】
なお、ハンド２２は、エンドエフェクターの一種ということができる。エンドエフェクターは、作業対象物を把持したり、持ち上げたり、吊り上げたり、吸着したり、ワークを加工したりするための部材である。エンドエフェクターは、ハンド、フック、吸盤など、様々な形態をとることができる。また、エンドエフェクターは、一本のアームに対して複数設けるようにしてもよい。
【００３５】
なお、ロボット２の構成は図示した例に限られない。例えば、図１ではジョイント数が６個（６軸）の例が示されているが、ジョイントの数（「軸数」ともいう。）やリンクの数を増減させてもよい。また、ジョイント、リンク、ハンド等の各種部材の形状、大きさ、配置、構造等も適宜変更してよい。
【００３６】
制御部３は、ロボット２の全体を制御する。例えば、制御部３は、教示装置４から出力される教示データに基づいて、ロボット２を動作させる制御命令を生成し、生成した制御命令に従ってアクチュエーターを駆動させることでロボット２を動作させる。また、制御部３は、撮像装置５を制御し、撮像画像を取得する。詳細は後述するが、制御部３は、視覚サーボにより、ロボット２を動作させる。
【００３７】
撮像装置５は、例えば作業台Ｔ上の作業領域を撮像して、撮像画像データを生成し、ロボット２に出力する。撮像装置５は、例えば、ＣＣＤ（Charge Coupled Device）、ＣＭＯＳ（Complementary Metal Oxide Semiconductor）等を有するカメラである。
【００３８】
教示装置４は、ユーザーの操作に従って、ロボット２に実行させる作業内容を示す教示データを生成する。また、教示装置４は、生成した教示データをロボット２の制御部３に出力することにより、ロボット２に対して教示を行う。教示装置４については、後に詳述する。
【００３９】
上記のロボットシステム１の構成は、本実施形態の特徴を説明するにあたって主要構成を説明したのであって、上記の構成例に限られない。また、一般的なロボットシステムが備える構成を排除するものではない。
【００４０】
例えば、撮像装置５の設置位置は、特に限定されず、天井、壁などに設置することができる。また、撮像装置５は、ロボット２の頭部２５、アーム２１の先端部分、胴部２０などに設けられてもよい。また、例えば、撮像装置５に加えて、他の撮像装置を設けるようにしてもよい。また、例えば、制御部３は、制御装置としてロボット２と別に設けられ、ロボット２に外部から接続するようにしてもよい。また、例えば、制御部３と教示装置４は、制御装置として一体となっていてもよい。
【００４１】
図２は、ロボットシステムの機能構成の一例を示す図である。
【００４２】
教示装置４は、入力部４０と、表示部４１と、ガイド設定部（「第一ガイド設定部」、「第二ガイド設定部」ともいう。）４２と、教示データ生成部４３と、教示データ送信部４４と、モデルデータ格納部４５と、ガイドデータ格納部４６と、教示データ格納部４７とを有する。
【００４３】
入力部４０は、ユーザーの操作を受け付ける。表示部４１は、ユーザーに対してインターフェイス画面などを表示する。
【００４４】
ガイド設定部４２は、作業対象物の任意の位置に対して仮想的なガイド（「対象物ガイド」ともいう。）を設定する。対象物ガイドは、視覚サーボにおいて、作業対象物の代わりに当該作業対象物の現在位置を示す画像として使用される。
【００４５】
具体的には、モデルデータ格納部４５には、入力部４０等を介したユーザーの操作により、作業対象物を２次元あるいは３次元で表す画像データなどのモデルデータが予め格納されている。ガイド設定部４２は、モデルデータ格納部４５から、作業対象物のモデルデータを取得する。また、ガイド設定部４２は、取得した作業対象物のモデルデータに対して、当該モデルの特徴位置を抽出する所定の画像処理（例えば、エッジ検出、輪郭検出、コーナー検出など）を実行し、当該作業対象物の特徴位置を抽出する。なお、特徴位置は、１点に限らず複数点の集合であってもよく、単に「特徴」と呼んでもよい。
【００４６】
また、ガイド設定部４２は、抽出した作業対象物の特徴位置に対して、所定の位置関係を有するガイド位置を設定する。例えば、ガイド設定部４２は、作業対象物のモデルデータとともに当該作業対象物の特徴位置を示す画像を表示部４１に表示させる。また、ガイド設定部４２は、表示された画像上でガイド位置の指定を、入力部４０を介して受け付ける。ガイド設定部４２は、表示された特徴位置に対する指定されたガイド位置の相対位置関係を示す対象物ガイドデータを、ガイドデータ格納部４６に格納する。なお、対象物のガイド位置は、１点に限らず複数点の集合であってもよく、単に「対象物ガイド」と呼んでもよい。
【００４７】
図３（Ａ）は、対象物ガイドデータのデータ構造の一例を示す図である。図３（Ａ）に示すように、対象物ガイドデータには、それぞれの対象物ガイドごとに、当該対象物ガイドの識別情報であるＩＤ４５１と、当該対象物ガイドのガイド位置４５２と、当該対象物ガイドの基準位置である対象物の特徴位置４５３とが関連付けられたレコードが格納される。なお、特徴位置４５３には、当該特徴位置を抽出するために使用される画像処理アルゴリズムに関する情報が含まれる。
【００４８】
図２の説明に戻る。ガイド設定部４２は、撮像装置５の撮像範囲内の任意の位置に対して仮想的なガイド（固定ガイド）を設定する。固定ガイドは、視覚サーボにおいて、作業の目標位置を示す画像として、使用される。
【００４９】
具体的には、ガイド設定部４２は、例えば、撮像範囲を示す画像を表示部４１に表示させる。また、ガイド設定部４２は、表示された画像上でガイド位置の指定を、入力部４０を介して受け付ける。ガイド設定部４２は、指定されたガイド位置を示す固定ガイドデータを、ガイドデータ格納部４６に格納する。なお、固定のガイド位置は、１点に限らず複数点の集合であってもよく、単に「固定ガイド」と呼んでもよい。
【００５０】
図３（Ｂ）は、固定ガイドデータのデータ構造の一例を示す図である。図３（Ｂ）に示すように、固定ガイドデータには、それぞれの固定ガイドごとに、当該固定ガイドの識別情報であるＩＤ４６１と、当該固定ガイドのガイド位置４６２とが関連付けられたレコードが格納される。
【００５１】
図２の説明に戻る。教示データ生成部４３は、対象物ガイド及び固定ガイドが、所定の位置関係（同じ位置で一致する場合を含む。）となることを目標とする教示データを生成する。また、教示データ生成部４３は、一の対象物ガイド及び他の対象物ガイドが、所定の位置関係（同じ位置で一致する場合を含む。）となることを目標とする教示データを生成する。
【００５２】
具体的には、教示データ生成部４３は、例えば、対象物ガイドの指定、固定ガイドの指定、目標位置の指定、対象物ガイドを目標位置に移動させる命令などを、入力部４０を介して受け付ける。また、例えば、教示データ生成部４３は、命令が複数ある場合には、各命令の工程順序を受け付ける。教示データ生成部４３は、受け付けた各情報を含む教示データを生成し、教示データ格納部４７に格納する。
【００５３】
図４は、教示データのデータ構造の一例を示す図である。図４に示すように、教示データには、工程順に、工程番号４７１と、教示内容４７２とが関連付けられたレコードが格納される。なお、教示内容４７２には、指定されたガイドに対応するガイドデータ（対象物ガイドデータ、固定ガイドデータ）が含まれる。
【００５４】
図２の説明に戻る。教示データ送信部４４は、教示データ生成部４３により生成された教示データを、教示データ格納部４７から取得し、ロボット２の制御部３に対して送信する。
【００５５】
モデルデータ格納部４５には、上述のようにモデルデータが格納される。ガイドデータ格納部４６には、上述のようにガイドデータが格納される。教示データ格納部４７には、上述のようにガイドデータが格納される。
【００５６】
ロボット２の制御部３は、教示データ受信部３０と、視覚サーボ制御部３１と、画像取得部３４と、教示データ格納部３５とを有する。視覚サーボ制御部３１は、特徴抽出部３２と、ガイド生成部（「第一ガイド生成部」、「第二ガイド生成部」ともいう。）３３とを有する。
【００５７】
教示データ受信部３０は、教示装置４から教示データを受信し、教示データ格納部３５に格納する。
【００５８】
視覚サーボ制御部３１は、教示データ格納部３５に格納されている教示データに基づいて、ロボット２の動作を制御する。そのため、視覚サーボ制御部３１は、特徴抽出部３２と、ガイド生成部３３とを有する。
【００５９】
具体的には、視覚サーボ制御部３１は、教示データに基づいて、移動させる作業対象物と、当該作業対象物を移動させる目標位置とを特定する。また、視覚サーボ制御部３１は、画像取得部３４から撮像画像を取得する。また、視覚サーボ制御部３１は、教示データに基づいて、特徴抽出部３２により、撮像画像に対して、移動させる作業対象物の特徴位置を抽出する所定の画像処理（例えば、エッジ検出、輪郭検出、コーナー検出など）を実行し、当該作業対象物の特徴位置を抽出する。また、視覚サーボ制御部３１は、教示データに基づいて、ガイド生成部３３により、抽出された特徴位置と所定の相対位置関係にあるガイド位置に、移動させる作業対象物の対象物ガイドを生成する。
【００６０】
また、視覚サーボ制御部３１は、目標位置が撮像範囲内の所定位置である場合は、教示データに基づいて、ガイド生成部３３により、撮像画像の指定された位置に、目標位置である固定ガイドを生成する。一方、視覚サーボ制御部３１は、目標位置が作業対象物である場合には、教示データに基づいて、特徴抽出部３２により、撮像画像に対して、目標位置である作業対象物の特徴位置を抽出する所定の画像処理（例えば、エッジ検出、輪郭検出、コーナー検出など）を実行し、当該作業対象物の特徴位置を抽出する。また、視覚サーボ制御部３１は、教示データに基づいて、ガイド生成部３３により、抽出された特徴位置と所定の相対位置関係にあるガイド位置に、目標位置である対象物ガイドを生成する。
【００６１】
また、視覚サーボ制御部３１は、撮像画像上に生成された、移動させる対象物ガイドと、目標位置であるガイド（固定ガイド、又は対象物ガイド）とに基づいて、これらのガイドが教示データで教示される所定の位置関係となるように、視覚サーボを行う。
【００６２】
ここで、視覚サーボ制御部３１は、撮像画像から、生成されたガイド以外の画像情報（すなわち、撮像画像に元々含まれる画像情報であり、ガイド画像の背景）を削除し、ガイドのみを含む画像に基づいて視覚サーボを行う。もちろん、撮像画像と同じ大きさの画像を生成し、この画像上にガイドを生成するようにしてもよい。
【００６３】
本実施形態の視覚サーボでは、目標画像の代わりに、撮像画像に基づいて生成される目標位置のガイドのみを含む画像が用いられる。また、現在画像の代わりに、撮像画像に基づいて生成される作業対象物のガイドのみを含む画像が用いられる。そして、これらのガイドが、視覚サーボ系への入力情報（制御量）として用いられる。視覚サーボ制御部３１は、これらのガイドに基づいて、ガイドが一致するか否かを比較する。ガイドが一致する場合、視覚サーボを終了する。ガイドが一致しない場合、制御命令を生成し、ロボット２を動作させる。
【００６４】
特徴抽出部３２は、教示データに含まれるガイドデータを参照し、指定されたガイドＩＤに関連付けられた特徴位置から、所定の画像処理アルゴリズムを特定する。また、特徴抽出部３２は、特定した画像処理アルゴリズムを撮像画像に対して実行し、作業対象物の特徴位置を抽出及び特定する。
【００６５】
ガイド生成部３３は、教示データに含まれるガイドデータを参照し、指定された対象物ガイドのガイドＩＤに関連付けられたガイド位置を特定する。また、ガイド生成部３３は、特定したガイド位置に基づいて、特徴抽出部３２により特定された作業対象物の特徴位置と所定の相対位置関係にあるガイド位置に、対象物ガイドを生成する。また、ガイド生成部３３は、指定された固定ガイドのガイドＩＤに関連付けられたガイド位置に、固定ガイドを生成する。
【００６６】
画像取得部３４は、撮像装置５を制御して撮像を行わせ、撮像画像を取得する。
【００６７】
教示データ格納部３５には、上述のように教示データが格納される。
【００６８】
図５は、教示装置の機能を実現するハードウェア構成の一例を示す図である。
【００６９】
教示装置４は、例えば、図５に示すような、ＣＰＵ（Central Processing Unit）等の演算装置９０と、ＲＡＭ（Random Access Memory）などの主記憶装置９１と、ＨＤＤ（Hard Disk Drive）等の補助記憶装置９２と、有線又は無線により通信ネットワークと接続するための通信インターフェイス（Ｉ／Ｆ）９３と、マウス、キーボード、タッチセンサーやタッチパネルなどの入力装置９４と、液晶ディスプレイなどの表示装置９５と、ＤＶＤ（Digital Versatile Disk）などの持ち運び可能な記憶媒体に対する情報の読み書きを行う読み書き装置９６と、を備えるコンピューター９で実現することができる。
【００７０】
例えば、ガイド設定部４２、教示データ生成部４３、教示データ送信部４４などは、補助記憶装置９２などから主記憶装置９１にロードされた所定のプログラムを演算装置９０が実行することで実現される。モデルデータ格納部４５、ガイドデータ格納部４６、教示データ格納部４７などは、例えば、演算装置９０が主記憶装置９１又は補助記憶装置９２を利用することで実現される。ロボット２との通信は、例えば、演算装置９０が通信Ｉ／Ｆ９３を利用することで実現される。入力部４０は、例えば、演算装置９０が入力装置９４を利用することで実現される。表示部４１は、例えば、演算装置９０が表示装置９５を利用することで実現される。なお、上記の所定のプログラムは、例えば、読み書き装置９６により読み取られた記憶媒体からインストールされてもよいし、通信Ｉ／Ｆ９３を介してネットワークからインストールされてもよい。
【００７１】
制御部３は、例えば、演算装置、記憶装置、処理回路、駆動回路などを備えるコントローラー基板等により実現することができる。例えば、教示データ受信部３０、視覚サーボ制御部３１、画像取得部３４などは、記憶装置にロードされた所定のプログラムを演算装置が実行することで実現される。教示データ格納部３５は、例えば、演算装置が記憶装置を利用することで実現される。
【００７２】
上述したロボットシステム１の機能構成は、ロボットシステム１の構成を理解容易にするために、主な処理内容に応じて分類したものである。構成要素の分類の仕方や名称によって、本願発明が制限されることはない。ロボットシステム１の構成は、処理内容に応じて、さらに多くの構成要素に分類することもできる。また、１つの構成要素がさらに多くの処理を実行するように分類することもできる。また、各構成要素の処理は、１つのハードウェアで実行されてもよいし、複数のハードウェアで実行されてもよい。
【００７３】
また、教示装置４及び制御部３の機能及び処理の分担は、説明した例に限られない。例えば、教示装置４の少なくとも一部の機能は、制御部３に含まれ、制御部３により実現されてもよい。また、例えば、制御部３の少なくとも一部の機能は、教示装置４に含まれ、教示装置４により実現されてもよい。
【００７４】
次に、ロボットシステム１により実現される処理及び動作について、説明する。
【００７５】
まず、図６〜図１１を参照して、ロボット２が行う第一の作業例に基づいて説明する。それから、図１２〜図１６を参照して、ロボット２が行う第二の作業例に基づいて説明する。
【００７６】
図７は、ロボットが行う第一の作業例を示す図である。第一の作業例は、部品Ｗ１に形成されている凹部に部品Ｗ２を嵌め込む、という作業である。なお、ロボット２は、部品をハンド２２で把持することで、部品を移動させることができるため、把持動作に関する説明は省略する。
【００７７】
図６は、教示処理の一例を示すフロー図である。なお、モデルデータ格納部４５には、部品Ｗ１と部品Ｗ２のモデルデータが予め格納されている。
【００７８】
まず、ガイド設定部４２は、対象物ガイドの設定を受け付ける（ステップＳ１００）。具体的には、ガイド設定部４２は、ユーザーから入力部４０を介して、モデルデータ格納部４５に格納されているモデルデータの中から、作業に必要な部品（部品Ｗ１、部品Ｗ２）のモデルデータの選択を受け付ける。なお、ガイド設定部４２は、例えば、作業に必要な部品を含む画像を撮像装置５等から取得し、取得した画像から画像処理により部品を認識し、認識した部品に対応するモデルデータを、モデルデータ格納部４５に格納されているモデルデータの中から選択するようにしてもよい。
【００７９】
また、ガイド設定部４２は、選択された各モデルデータに対して、特徴位置を抽出する所定の画像処理を実行し、特徴位置を抽出する。なお、ガイド設定部４２は、各モデルデータに対して、使用する画像処理アルゴリズムの選択及び設定を、ユーザーから受け付けるようにしてもよい。また、ガイド設定部４２は、モデルデータとともに抽出した特徴位置を示す画像を、表示部４１に表示させる。例えば、図８（Ａ）（部品Ｗ１に設定されるガイドの一例を示す図）に示すように、部品Ｗ１のモデルデータＷ１とともに、抽出された特徴位置Ｆ１（破線で示す。）が表示される。また、例えば、図８（Ｂ）（部品Ｗ２に設定されるガイドの一例を示す図）に示すように、部品Ｗ２のモデルデータＷ２とともに、抽出された特徴位置Ｆ２（破線で示す。）が表示される。
【００８０】
また、ガイド設定部４２は、表示されている画像に対して、ガイド位置の指定を、ユーザーから入力部４０を介して受け付ける。例えば、図８（Ａ）では、部品Ｗ１の凹部に対応させてガイドＧ１が設定されている。また、例えば、図８（Ｂ）では、部品Ｗ２の一端（部品Ｗ１の凹部に挿入される側）に対応させてガイドＧ２が設定されている。
【００８１】
ここで、対象物ガイドは、基準位置と方向成分を有する。ガイドの基準位置は、例えば、モデルデータが３次元である場合にはＸＹＺ座標の値を持ち、モデルデータが２次元である場合にはＸＹ座標の値を持つ。また、ガイドの方向成分は、ガイドの基準位置を原点とする３次元のＸＹＺ軸方向、又は２次元のＸＹ軸方向である。ガイド設定部４２は、ガイド位置として、対象物ガイドの基準位置及び方向成分の指定を、ユーザーから入力部４０を介して受け付ける。
【００８２】
ガイド設定部４２は、モデルデータに対するガイド位置（基準位置、方向成分）が指定されると、指定されたガイド位置の基準位置を、抽出された特徴位置に対する相対位置を示す情報に変換する。そして、ガイド設定部４２は、当該対象物ガイドに対して割り当てたＩＤ又はユーザーから指定されたＩＤと、ガイド位置（変換された基準位置、方向成分）と、抽出された特徴位置（特徴位置を特定する情報、当該特徴位置を抽出するために使用される画像処理アルゴリズムに関する情報）とを関連付けたレコードを、ガイドデータ格納部４６の対象物ガイドデータに追加する。
【００８３】
それから、ガイド設定部４２は、固定ガイドの設定を受け付ける（ステップＳ１１０）。具体的には、ガイド設定部４２は、例えば、撮像装置５の撮像範囲を示す画像を表示部４１に表示させる。また、ガイド設定部４２は、表示されている画像に対して、ガイド位置の指定を、ユーザーから入力部４０を介して受け付ける。例えば、図８（Ｃ）（固定ガイドの一例を説明する図）では、撮像範囲の中心付近に、固定ガイドＳＧ１が設定されている。
【００８４】
ここで、固定ガイドは、対象物ガイドと同様に、基準位置と方向成分を有する。ガイド設定部４２は、ガイド位置として、固定ガイドの基準位置及び方向成分の指定を、ユーザーから入力部４０を介して受け付ける。
【００８５】
ガイド設定部４２は、撮像範囲に対するガイド位置（基準位置、方向成分）が決定されると、当該固定ガイドに対して割り当てたＩＤ又はユーザーから指定されたＩＤと、ガイド位置（基準位置、方向成分）とを関連付けたレコードを、ガイドデータ格納部４６の固定ガイドデータに追加する。
【００８６】
それから、教示データ生成部４３は、教示データを生成する（ステップＳ１２０）。具体的には、教示データ生成部４３は、第一の作業例を実現するロボット２の各工程の設定を、ユーザーから入力部４０を介して受け付ける。教示データ生成部４３は、例えば下記のように、ガイドの指定及びガイドを目標位置に移動させる命令を含む教示を受け付け、工程番号４７１と教示内容４７２（下記では、「工程番号：教示内容」と表す。）として、教示データ格納部４７の教示データに追加する。
工程１：固定ガイドＳＧ１（基準位置）に、対象物ガイドＧ１（基準位置）を、一致させる。
工程２：固定ガイドＳＧ１（基準位置）に、所定のオフセット距離（基準位置からＸ方向にｍピクセル）で、対象物ガイドＧ２（基準位置）を一致させる。
工程３：対象物ガイドＧ２（基準位置）を、所定の距離（Ｘ方向にｎピクセル）移動する。
なお、工程３は、部品Ｗ２を部品Ｗ１に嵌め込む動作の準備動作である。
【００８７】
また、教示データ生成部４３は、各工程の教示内容４７２に、当該教示内容で指定されているガイド（固定ガイドＳＧ１、対象物ガイドＧ１、対象物ガイドＧ２）のガイドデータを設定する。
【００８８】
それから、教示データ送信部４４は、ステップＳ１２０で生成された教示データを、ロボット２に送信し（ステップＳ１３０）、図６に示すフローチャートの処理を終了する。
【００８９】
以上のようにして、ガイド位置の設定、及びロボット２の作業内容を示す教示データの設定が行われ、ロボット２に対して教示される。なお、ステップＳ１００とステップＳ１１０の順序は逆でもよい。また、ステップＳ１３０は、ユーザーが指定した任意のタイミングで実行されてもよい。
【００９０】
図９は、第一の作業例における視覚サーボ処理の一例を示すフロー図である。図１０（第一の作業例における視覚サーボの経過を視覚的に説明する図（その１））、及び図１１（第一の作業例における視覚サーボの経過を視覚的に説明する図（その２））を参照しながら説明する。なお、説明を分かり易くするため、図１０及び図１１では、ロボット２のハンド２２等は省略している。
【００９１】
教示装置４から送信された教示データは、教示データ受信部３０により受信され、教示データ格納部３５に格納されているものとする。視覚サーボ制御部３１は、教示データの各工程の教示内容に基づいて、ロボット２の動作を制御する。なお、ステップＳ２００〜Ｓ２５０は、上述の「工程１」に対応する。また、ステップＳ２６０〜Ｓ３１０は、上述の「工程２」に対応する。また、ステップＳ３２０は、上述の「工程３」に対応する。
【００９２】
まず、画像取得部３４は、撮像装置５を制御して撮像を行わせ、撮像画像を取得する（ステップＳ２００）。
【００９３】
それから、視覚サーボ制御部３１は、固定ガイドＳＧ１を生成する（ステップＳ２１０）。具体的には、ガイド生成部３３は、工程１の教示データに含まれるガイドデータから、固定ガイドＳＧ１のガイド位置を取得する。また、ガイド生成部３３は、取得したガイド位置に基づいて、ステップＳ２００で取得した撮像画像上に、固定ガイドＳＧ１を生成する（図１０（Ａ））。
【００９４】
それから、視覚サーボ制御部３１は、部品Ｗ１の特徴を抽出する（ステップＳ２２０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれるガイドデータから、部品Ｗ１の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ２００で取得された撮像画像に対して、取得した特徴位置から特定される画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ１の特徴位置と合致する特徴を特定する。なお、特徴位置の合致は、例えば、部品Ｗ１の特徴位置を構成する各画素の配置と、抽出した特徴を構成する各画素の配置との一致率（例えば９０％以上の一致率）で判断することができる。このようにして、撮像画像上に、部品Ｗ１の特徴位置Ｆ１が抽出及び特定される（図１０（Ａ））。
【００９５】
それから、視覚サーボ制御部３１は、部品Ｗ１に対応するガイドＧ１を生成する（ステップＳ２３０）。具体的には、ガイド生成部３３は、工程１の教示データに含まれるガイドデータから、部品Ｗ１のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ２２０で抽出及び特定された部品Ｗ１の特徴位置Ｆ１を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ１を設定する。このようにして、撮像画像上に、特徴位置Ｆ１を基準として、対象物ガイドＧ１が設定される（図１０（Ａ））。
【００９６】
それから、視覚サーボ制御部３１は、視覚サーボを実行する（ステップＳ２４０）。具体的には、視覚サーボ制御部３１は、撮像画像から、生成されたガイド以外の画像情報を削除する。それから、視覚サーボ制御部３１は、工程１の教示データに基づいて、固定ガイドＳＧ１（基準位置）に、対象物ガイドＧ１（基準位置）を、一致させるように、視覚サーボを実行する（図１０（Ａ））。なお、視覚サーボ制御部３１は、対象物ガイドＧ１が固定ガイドＳＧ１から所定距離内に位置しない場合には、制御命令を生成してロボットのアームを動作させる（エンドポイントを移動させる）。一方、視覚サーボ制御部３１は、対象物ガイドＧ１が固定ガイドＳＧ１から所定距離内に位置する場合には、制御命令を生成せずに、工程１の視覚サーボは収束していると判断する（図１０（Ｂ））。
【００９７】
それから、視覚サーボ制御部３１は、視覚サーボが収束しているか否かを判定する（ステップＳ２５０）。具体的には、視覚サーボ制御部３１は、ステップＳ２４０において収束していると判断した場合には（ステップＳ２５０：Ｙ）、処理をステップＳ２６０に進める。一方、ステップＳ２４０において収束していないと判断した場合には（ステップＳ２５０：Ｎ）、処理をステップＳ２００に戻す。
【００９８】
ステップＳ２４０の視覚サーボが収束している場合（ステップＳ２５０：Ｙ）、画像取得部３４は、撮像装置５を制御して撮像を行わせ、撮像画像を取得する（ステップＳ２６０）。
【００９９】
それから、視覚サーボ制御部３１は、固定ガイドＳＧ１を生成する（ステップＳ２７０）。具体的には、ガイド生成部３３は、工程２の教示データに含まれるガイドデータから、固定ガイドＳＧ１のガイド位置を取得する。また、ガイド生成部３３は、取得したガイド位置に基づいて、ステップＳ２６０で取得した撮像画像上に、固定ガイドＳＧ１を生成する（図１０（Ｂ））。
【０１００】
それから、視覚サーボ制御部３１は、部品Ｗ２の特徴を抽出する（ステップＳ２８０）。具体的には、特徴抽出部３２は、工程２の教示データに含まれるガイドデータから、部品Ｗ２の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ２６０で取得された撮像画像に対して、取得した特徴位置から特定される画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ２の特徴位置と合致する特徴を特定する。なお、特徴位置の合致は、例えば、部品Ｗ２の特徴位置を構成する各画素の配置と、抽出した特徴を構成する各画素の配置との一致率（例えば９０％以上の一致率）で判断することがきる。このようにして、撮像画像上に、部品Ｗ２の特徴位置Ｆ２が抽出及び特定される（図１０（Ｂ））。
【０１０１】
それから、視覚サーボ制御部３１は、部品Ｗ２に対応するガイドＧ２を生成する（ステップＳ２９０）。具体的には、ガイド生成部３３は、工程２の教示データに含まれるガイドデータから、部品Ｗ２のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ２８０で抽出及び特定された部品Ｗ２の特徴位置Ｆ２を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ２を設定する。このようにして、撮像画像上に、特徴位置Ｆ２を基準として、対象物ガイドＧ２が設定される（図１０（Ｂ））。
【０１０２】
それから、視覚サーボ制御部３１は、視覚サーボを実行する（ステップＳ３００）。具体的には、視覚サーボ制御部３１は、撮像画像から、生成されたガイド以外の画像情報を削除する。それから、視覚サーボ制御部３１は、工程２の教示データに基づいて、固定ガイドＳＧ１（基準位置）に、所定のオフセット距離（基準位置からＸ方向にｍピクセル）で、対象物ガイドＧ２（基準位置）を一致させるように、視覚サーボを実行する（図１０（Ｂ））。なお、視覚サーボ制御部３１は、対象物ガイドＧ２が、固定ガイドＳＧ１を基準とするオフセット位置Ｅ１から所定距離内に位置しない場合には、制御命令を生成してロボットのアームを動作させる（エンドポイントを移動させる）。一方、視覚サーボ制御部３１は、対象物ガイドＧ２が、オフセット位置Ｅ１から所定距離内に位置する場合には、制御命令を生成せずに、工程２の視覚サーボは収束していると判断する（図１１（Ａ））。
【０１０３】
それから、視覚サーボ制御部３１は、視覚サーボが収束しているか否かを判定する（ステップＳ３１０）。具体的には、視覚サーボ制御部３１は、ステップＳ３００において収束していると判断した場合には（ステップＳ３１０：Ｙ）、処理をステップＳ３２０に進める。一方、ステップＳ３００において収束していないと判断した場合には（ステップＳ３１０：Ｎ）、処理をステップＳ２６０に戻す。
【０１０４】
ステップＳ３００の視覚サーボが収束した場合（ステップＳ３１０：Ｙ）、視覚サーボ制御部３１は、ロボットの所定の動作を行う（ステップＳ３２０）。具体的には、視覚サーボ制御部３１は、工程３の教示データに基づいて、対象物ガイドＧ２（基準位置）が、所定の距離（Ｘ方向にｎピクセル）移動するように、ロボットのアームを動作させる（図１１（Ｂ））。ステップＳ３２０の処理は、視覚サーボで行ってもよいし、位置制御で行ってもよい。そして、視覚サーボ制御部３１は、図９に示すフローチャートの処理を終了する。なお、図９に示すフローチャートの終了後、制御部３は、例えば、位置制御、インピーダンス制御などによりロボット２を制御し、部品Ｗ２を部品Ｗ１に嵌め込む。
【０１０５】
以上のようにして、撮像画像に対して対象物ガイドと固定ガイドが生成され、これらのガイドを一致させるような視覚サーボが実行される。
【０１０６】
図１２は、ロボットが行う第二の作業例を示す図である。第二の作業例は、部品Ｗ４に形成されているネジ穴にネジＷ３ｂを挿入して締める、というものである。ネジＷ３ｂの移動及びネジ締めには、ドライバーＷ３ａを使用する。視覚サーボでネジＷ３ｂの移動を開始する事前に、ドライバーＷ３ａの磁性を帯びた先端にネジＷ３ａの頭を固定する。なお、ロボット２は、部品又はドライバーＷ３ａをハンド２２で把持することで、部品を移動させることができるため、把持動作に関する説明は省略する。
【０１０７】
教示処理は、図６と基本的に同様であるが、固定ガイドの設定（図６のステップＳ１１０）が不要である。なお、モデルデータ格納部４５には、部品Ｗ４のモデルデータと、ドライバーＷ３ａにネジＷ３ｂが固定された状態（以下、「部品Ｗ３」と呼ぶ。）のモデルデータが予め格納されている。
【０１０８】
まず、ガイド設定部４２は、ユーザーから入力部４０を介して、モデルデータ格納部４５に格納されているモデルデータの中から、作業に必要な各部品（部品Ｗ３、部品Ｗ４）のモデルデータの選択を受け付ける。
【０１０９】
また、ガイド設定部４２は、選択された各モデルデータに対して、特徴位置を抽出する所定の画像処理を実行し、特徴位置を抽出する。なお、ガイド設定部４２は、各モデルデータに対して、使用する画像処理アルゴリズムの選択及び設定を、ユーザーから受け付けるようにしてもよい。また、ガイド設定部４２は、モデルデータとともに抽出した特徴位置を示す画像を、表示部４１に表示させる。例えば、図１３（Ａ）（部品Ｗ３に設定されるガイドの一例を示す図）に示すように、部品Ｗ３のモデルデータＷ３とともに、抽出された特徴位置Ｆ３（破線で示す。）が表示される。また、例えば、図１３（Ｂ）（部品Ｗ４に設定されるガイドの一例を示す図）に示すように、部品Ｗ４のモデルデータＷ４とともに、抽出された特徴位置Ｆ４（破線で示す。）が表示される。
【０１１０】
また、ガイド設定部４２は、表示されている画像に対して、ガイド位置の指定を、ユーザーから入力部４０を介して受け付ける。例えば、図１３（Ａ）では、部品Ｗ３のネジの先端部分に対応させてガイドＧ３が設定されている。また、例えば、図１３（Ｂ）では、部品Ｗ４のネジ穴に対応させてガイドＧ４が設定されている。
【０１１１】
ガイド設定部４２は、モデルデータに対するガイド位置（基準位置、方向成分）が指定されると、指定されたガイド位置の基準位置を、抽出された特徴位置に対する相対位置を示す情報に変換する。そして、ガイド設定部４２は、当該対象物ガイドに対して割り当てたＩＤ又はユーザーから指定されたＩＤと、ガイド位置（変換された基準位置、方向成分）と、抽出された特徴位置（特徴位置を特定する情報、当該特徴位置を抽出するために使用される画像処理アルゴリズムに関する情報）とを関連付けたレコードを、ガイドデータ格納部４６の対象物ガイドデータに追加する。
【０１１２】
それから、教示データ生成部４３は、第二の作業例を実現するロボット２の各工程の設定を、ユーザーから入力部４０を介して受け付ける。教示データ生成部４３は、例えば下記のように、ガイドの指定及びガイドを目標位置に移動させる命令を含む教示を受け付け、工程番号４７１と教示内容４７２として、教示データ格納部４７の教示データに追加する。
工程１：対象物ガイドＧ４（基準位置）に、所定のオフセット距離（基準位置からＺ方向にｍピクセル）で、対象物ガイドＧ３（基準位置）を一致させる。
工程２：対象物ガイドＧ３（基準位置）を、所定の距離（Ｚ方向にｎピクセル）移動する。
なお、工程２は、部品Ｗ３の部品Ｗ４に対するネジ締め動作の準備動作である。
【０１１３】
また、教示データ生成部４３は、各工程の教示内容４７２に、当該教示内容で指定されているガイド（対象物ガイドＧ３、対象物ガイドＧ４）のガイドデータを設定する。
【０１１４】
それから、教示データ送信部４４は、生成された教示データを、ロボット２に送信する。
【０１１５】
図１４は、第二の作業例における視覚サーボ処理の一例を示すフロー図である。図１５（第二の作業例における視覚サーボの経過を視覚的に説明する図（その１））、及び図１６（第二の作業例における視覚サーボの経過を視覚的に説明する図（その２））を参照しながら説明する。なお、説明を分かり易くするため、図１５及び図１６では、ロボット２のハンド２２等は省略している。
【０１１６】
教示装置４から送信された教示データは、教示データ受信部３０により受信され、教示データ格納部３５に格納されているものとする。視覚サーボ制御部３１は、教示データの各工程の教示内容に基づいて、ロボット２の動作を制御する。なお、ステップＳ４００〜Ｓ４７０は、上述の「工程１」に対応する。また、ステップＳ４８０は、上述の「工程２」に対応する。
【０１１７】
まず、画像取得部３４は、撮像装置５を制御して撮像を行わせ、撮像画像を取得する（ステップＳ４００）。
【０１１８】
それから、視覚サーボ制御部３１は、部品Ｗ４の特徴を抽出する（ステップＳ４１０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれるガイドデータから、部品Ｗ４の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ４００で取得された撮像画像に対して、取得した特徴位置から特定される画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ４の特徴位置と合致する特徴位置を特定する。このようにして、撮像画像上に、部品Ｗ４の特徴位置Ｆ４が抽出される（図１５（Ａ））。
【０１１９】
それから、視覚サーボ制御部３１は、部品Ｗ４に対応するガイドＧ４を生成する（ステップＳ４２０）。具体的には、ガイド生成部３３は、工程１の教示データに含まれるガイドデータから、部品Ｗ４のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ４１０で抽出及び特定された部品Ｗ４の特徴位置Ｆ４を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ４を設定する。このようにして、撮像画像上に、特徴位置Ｆ４を基準として、対象物ガイドＧ４が設定される（図１５（Ａ））。
【０１２０】
それから、視覚サーボ制御部３１は、部品Ｗ３の特徴を抽出する（ステップＳ４３０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれるガイドデータから、部品Ｗ３の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ４００で取得された撮像画像に対して、取得した特徴位置から特定される画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ３の特徴位置と合致する特徴位置を特定する。このようにして、撮像画像上に、部品Ｗ３の特徴位置Ｆ３が抽出される（図１５（Ｂ））。
【０１２１】
それから、視覚サーボ制御部３１は、部品Ｗ３に対応するガイドＧ３を生成する（ステップＳ４４０）。具体的には、ガイド生成部３３は、工程１の教示データに含まれるガイドデータから、部品Ｗ３のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ４３０で抽出及び特定された部品Ｗ３の特徴位置Ｆ３を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ３を設定する。このようにして、撮像画像上に、特徴位置Ｆ３を基準として、対象物ガイドＧ３が設定される（図１５（Ｂ））。
【０１２２】
それから、視覚サーボ制御部３１は、視覚サーボを実行する（ステップＳ４６０）。具体的には、視覚サーボ制御部３１は、撮像画像から、生成されたガイド以外の画像情報を削除する。それから、視覚サーボ制御部３１は、工程１の教示データに基づいて、対象物ガイドＧ４（基準位置）に、所定のオフセット距離（基準位置からＺ方向にｍピクセル）で、対象物ガイドＧ３（基準位置）を一致させるように、視覚サーボを実行する（図１５（Ｂ））。なお、視覚サーボ制御部３１は、対象物ガイドＧ３が、対象物ガイドＧ４を基準とするオフセット位置Ｅ４から所定距離内に位置しない場合には、制御命令を生成してロボットのアームを動作させる（エンドポイントを移動させる）。一方、視覚サーボ制御部３１は、対象物ガイドＧ３が、オフセット位置Ｅ４から所定距離内に位置する場合には、制御命令を生成せずに、工程１の視覚サーボは収束していると判断する（図１６（Ａ））。
【０１２３】
それから、視覚サーボ制御部３１は、視覚サーボが収束しているか否かを判定する（ステップＳ４７０）。具体的には、視覚サーボ制御部３１は、ステップＳ４６０において収束していると判断した場合には（ステップＳ４７０：Ｙ）、処理をステップＳ４８０に進める。一方、ステップＳ４６０において収束していないと判断した場合には（ステップＳ４７０：Ｎ）、処理をステップＳ４００に戻す。
【０１２４】
ステップＳ４６０の視覚サーボが収束した場合（ステップＳ４７０：Ｙ）、視覚サーボ制御部３１は、ロボットの所定の動作を行う（ステップＳ４８０）。具体的には、視覚サーボ制御部３１は、工程２の教示データに基づいて、対象物ガイドＧ３（基準位置）を、所定の距離（Ｚ方向にｎピクセル）移動するように、ロボットのアームを動作させる（図１６（Ｂ））。そして、視覚サーボ制御部３１は、図１４に示すフローチャートの処理を終了する。なお、図１４に示すフローチャートの終了後、制御部３は、例えば、位置制御、インピーダンス制御などによりロボット２を制御するとともに、ハンド２２を回転させるか、またはドライバーＷ３ａの押し付け動作によってネジ締めを行うことができる場合にはハンド２２を押し付け、ネジＷ３ｂを部品Ｗ４に取り付ける。
【０１２５】
以上のようにして、撮像画像に対して複数の対象物ガイドが生成され、これらのガイドを一致させるような視覚サーボが実行される。
【０１２６】
本実施形態によれば、撮像画像（現在画像）に対してガイドが二つ生成され、これらのガイドを用いて視覚サーボ制御が実行される。目標画像と現在画像の二つの画像の差異を評価する必要がないため、明るさなどの作業環境が変化する場合であっても、精度が高く安定した視覚サーボを実現することができる。
【０１２７】
また、本実施形態によれば、特徴を抽出するための画像処理アルゴリズムが、作業環境に応じてユーザーにより設定される。また、当該設定された画像処理アルゴリズムによりガイドが設定される。これにより、目標画像と現在画像の差異を精度よく評価できないような作業環境であっても、ガイドを精度よく生成できるため、作業環境に影響されない安定した視覚サーボを実現できる。
【０１２８】
また、本実施形態によれば、撮像画像（現在画像）に対して目標位置であるガイドが生成されるため、予め目標画像を用意しておく必要がない。そのため、より簡単に精度が高い安定した視覚サーボを実現することができる。
【０１２９】
また、本実施形態では、固定ガイドは、撮像範囲に対して所定位置に生成されるため、撮像装置の配置や撮像方向の変化に影響されない。また、撮像画像から特徴を抽出するような画像処理が必要なくなるため、処理負荷が軽減される。さらに、撮像装置の配置及び撮像方向に対して、ロボットの機械的な精度が高い姿勢（例えば、自重によるアームのたわみの影響が小さい）を取り得る空間的範囲が分かる場合には、その範囲内に目標位置であるガイド（固定ガイド又は対象物ガイド）を設定することで、簡単に精度が高い安定したロボット動作を実現できる。
【０１３０】
＜本発明の実施形態の変形例＞
次に、上記の実施形態の視覚サーボ処理の変形例について説明する。なお、変形例の記載にあたっては、上記の実施形態と同一の構成、処理については同一の符号を付し、その説明を省略する。
【０１３１】
本変形例では、一つの作業対象物について、特徴位置を抽出する画像処理アルゴリズムを複数設定可能とする。また、それぞれの画像処理アルゴリズムについて、ガイド位置を設定可能とする。また、ある画像処理アルゴリズムを用いた特徴位置の抽出及び特定に失敗した場合に、他の画像処理アルゴリズムを用いる。
【０１３２】
以下、図１７〜図２１を参照して、ロボット２が行う第二の作業例に基づいて説明する。なお、モデルデータ格納部４５には、部品Ｗ４のモデルデータと、ドライバーＷ３ａにネジＷ３ｂが固定された状態（以下、「部品Ｗ３」と呼ぶ。）のモデルデータが予め格納されている。また、部品Ｗ３およびそのモデルデータには、特徴抽出に使用されるマーカーが付されているものとする。
【０１３３】
ガイド設定部４２は、ユーザーにより選択されたモデルデータに対して、使用する複数の画像処理アルゴリズムの選択及び設定を、ユーザーから受け付ける。また、ガイド設定部４２は、それぞれの画像処理アルゴリズムについて、モデルデータとともに抽出した特徴位置を示す画像を、表示部４１に表示させる。また、ガイド設定部４２は、それぞれの画像処理アルゴリズムについて、表示されている画像に対して、ガイド位置の指定を、ユーザーから入力部４０を介して受け付ける。
【０１３４】
例えば、図１７（Ａ１）では、ガイド設定部４２は、部品Ｗ３のモデルデータに対して、予めモデルデータ格納部４５に格納されているネジＷ３ｂのモデルデータにより、マッチングを行い、ネジＷ３ｂの特徴位置Ｆ３ａ（破線で示す。）を抽出する。また、ガイド設定部４２は、特徴位置Ｆ３ａに対応するガイドＧ３ａ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、部品Ｗ３のネジの先端部分に対応させてガイドＧ３ａが設定されている。
【０１３５】
また、例えば、図１７（Ａ２）では、ガイド設定部４２は、部品Ｗ３のモデルデータに対して、エッジ検出などの画像処理を行い、特徴位置Ｆ３ｂ（破線で示す。）を抽出する。また、ガイド設定部４２は、特徴位置Ｆ３ｂに対応するガイドＧ３ｂ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、部品Ｗ３のネジの先端部分に対応させてガイドＧ３ｂが設定されている。
【０１３６】
また、例えば、図１７（Ａ３）では、ガイド設定部４２は、部品Ｗ３のモデルデータに対して、マーカーを検出する画像処理（例えば、マーカーの色を検出する）を行い、特徴位置Ｆ３ｃ（破線で示す。）を抽出する。また、ガイド設定部４２は、特徴位置Ｆ３ｃに対応するガイドＧ３ｃ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、ガイドＧ３ｃは、マーカー上に設定されている。
【０１３７】
例えば、図１８（Ａ１）では、ガイド設定部４２は、部品Ｗ４のモデルデータに対して、予めモデルデータ格納部４５に格納されているネジ穴のモデルデータにより、マッチングを行い、ネジ穴の特徴位置Ｆ４ａ（破線で示す。）として抽出する。また、ガイド設定部４２は、特徴位置Ｆ４ａに対してガイドＧ４ａ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、部品Ｗ４のネジ穴に対応させてガイドＧ４ａが設定されている。
【０１３８】
また、例えば、図１８（Ａ２）では、ガイド設定部４２は、部品Ｗ４のモデルデータに対して、エッジ検出などの画像処理を行い、特徴位置Ｆ４ｂ（破線で示す。）を抽出する。また、ガイド設定部４２は、特徴位置Ｆ４ｂに対してガイドＧ４ｂ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、部品Ｗ４のネジ穴に対応させてガイドＧ４ｂが設定されている。
【０１３９】
また、例えば、図１８（Ａ３）では、ガイド設定部４２は、部品Ｗ４のモデルデータに対して、図１８（Ａ２）の場合とは異なるエッジ検出などの画像処理を行い、特徴位置Ｆ４ｃ（破線で示す。）を抽出する。また、ガイド設定部４２は、特徴位置Ｆ４ｃに対してガイドＧ４ｃ（Ｘ印で示す。）の指定をユーザーから受け付ける。本図では、ガイドＧ４ｃは、部品Ｗ４のネジ穴から、一定距離離れた位置に設定されている。
【０１４０】
ガイド設定部４２は、モデルデータに対するガイド位置（基準位置、方向成分）が指定されると、指定されたガイド位置の基準位置を、抽出された特徴位置に対する相対位置を示す情報に変換する。そして、ガイド設定部４２は、当該対象物ガイドに対して割り当てたＩＤ又はユーザーから指定されたＩＤと、ガイド位置（変換された基準位置、方向成分）と、抽出された特徴位置（特徴位置を特定する情報、当該特徴位置を抽出するために使用される画像処理アルゴリズムに関する情報）とを関連付けたレコードを、ガイドデータ格納部４６の対象物ガイドデータに追加する。このようにして、一つの対象物について、画像処理アルゴリズムが異なる複数の対象物ガイドが設定される。
【０１４１】
また、ガイド設定部４２は、各対象物に設定される複数種類の対象物ガイドについて、使用する優先順位の指定をユーザーから受け付け、ガイドデータとともに格納する。例えば、部品Ｗ３のガイドについては、図１７（Ａ１）、（Ａ２）、（Ａ３）の順で優先順位が指定される。また、例えば、部品Ｗ４のガイドについては、図１８（Ａ１）、（Ａ２）、（Ａ３）の順で優先順位が指定される。
【０１４２】
教示データ生成部４３は、第二の作業例を実現するロボット２の各工程の設定を、ユーザーから入力部４０を介して受け付ける。教示データ生成部４３は、上述した第二作業例の工程と同様の教示を受け付け、工程番号４７１と教示内容４７２として、教示データ格納部４７の教示データに追加する。
【０１４３】
また、教示データ生成部４３は、各工程の教示内容４７２に、当該教示内容で指定されているガイド（対象物ガイドＧ３ａ、Ｇ３ｂ、Ｇ３ｃ、対象物ガイドＧ４ａ、Ｇ４ｂ、Ｇ４ｃ）のガイドデータを設定する。また、教示データ生成部４３は、各工程の教示内容に４７２に、各対象物ガイドの優先順位を設定する。
【０１４４】
また、教示データ生成部４３は、複数のガイドを用いた視覚サーボの目標条件の設定を、ユーザーから入力部４０を介して受け付け、教示データに設定する。目標条件は、例えば、対象物ガイドＧ３ａ、Ｇ３ｂ、及びＧ３ｃのいずれかと、対象物ガイドＧ４ａ、Ｇ４ｂ、及びＧ４ｃのいずれかの組み合わせである。組み合わせを複数設定できるようにしてもよい。
【０１４５】
それから、教示データ送信部４４は、生成された教示データを、ロボット２に送信する。
【０１４６】
図１９は、第二の作業例における視覚サーボ処理の変形例を示すフロー図である。図２０（第二の作業例における視覚サーボの変形例の経過を視覚的に説明する図（その１））、及び図２１（第二の作業例における視覚サーボの変形例の経過を視覚的に説明する図（その２））を参照しながら説明する。なお、説明を分かり易くするため、図２０及び図２１では、ロボット２のハンド２２等は省略している。
【０１４７】
なお、ステップＳ５００〜Ｓ６３０は、上述の「工程１」に対応する。また、ステップＳ６４０は、上述の「工程２」に対応する。
【０１４８】
まず、画像取得部３４は、撮像装置５を制御して撮像を行わせ、撮像画像を取得する（ステップＳ５００）。
【０１４９】
それから、視覚サーボ制御部３１は、部品Ｗ４から抽出する特徴を選択する（ステップＳ５１０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれる部品Ｗ４の複数のガイドデータから、指定された優先順位に従って、未選択のガイドデータを選択する。なお、優先順位は、例えば、図１８（Ａ１）、（Ａ２）、（Ａ３）の順で指定されている。
【０１５０】
それから、視覚サーボ制御部３１は、部品Ｗ４の特徴を抽出する（ステップＳ５２０）。具体的には、特徴抽出部３２は、ステップＳ５１０で選択した部品Ｗ４のガイドデータから、部品Ｗ４の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ５００で取得された撮像画像に対して、取得した特徴位置で指定されている画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ４の特徴位置と合致する特徴位置を特定する。
【０１５１】
ここで、ステップＳ５２０の処理では、照明の明るさや、部品Ｗ３及び部品Ｗ４の位置関係などの作業環境によって、部品Ｗ４の特徴位置が特定できないことがある。例えば、図２０（Ａ）に示すように、部品Ｗ４のネジ穴が部品Ｗ３により隠れている場合、上述した図１８（Ａ１）の特徴位置Ｆ４ａや、図１８（Ａ２）の特徴位置Ｆ４ｂを抽出及び特定することができない。
【０１５２】
それから、視覚サーボ制御部３１は、対象物Ｗ４の特徴抽出に成功したか否かを判定する（ステップＳ５３０）。すなわち、特徴抽出部３２は、ステップＳ５２０の結果に基づいて、ステップＳ５１０で選択した部品Ｗ４の特徴位置の抽出及び特定に成功したか否かを判定する。
【０１５３】
部品Ｗ４の特徴位置の抽出に失敗した場合（ステップＳ５３０：Ｎ）、視覚サーボ制御部３１は、他に部品Ｗ４の特徴があるか否かを判定する（ステップＳ５４０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれる部品Ｗ４の複数のガイドデータに、未選択のガイドデータがあるか否かを判定する。
【０１５４】
未選択の特徴がない場合（ステップＳ５４０：Ｎ）、視覚サーボ制御部３１は、図１９に示すフローチャートの処理を終了する。未選択の特徴がある場合（ステップＳ５４０：Ｙ）、視覚サーボ制御部３１は、処理をステップＳ５１０に戻す。
【０１５５】
一方、部品Ｗ４の特徴位置の抽出に成功した場合（ステップＳ５３０：Ｙ）、視覚サーボ制御部３１は、部品Ｗ４に対応するガイドＧ４を生成する（ステップＳ５５０）。具体的には、ガイド生成部３３は、ステップＳ５１０で最後に選択した部品Ｗ４のガイドデータから、部品Ｗ４のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ５２０で最後に抽出及び特定された部品Ｗ４の特徴位置Ｆ４を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ４を設定する。このようにして、撮像画像上に、選択された特徴位置Ｆ４を基準として、対象物ガイドＧ４が設定される。
【０１５６】
例えば、図２０（Ｂ）では、図１８（Ａ１）の特徴位置Ｆ４ａや、図１８（Ａ２）の特徴位置Ｆ４ｂの代わりに、図１８（Ａ３）の特徴位置Ｆ４ｃが特定され、当該特徴位置に対応するガイドＧ４ｃが設定された場合を示している。
【０１５７】
それから、視覚サーボ制御部３１は、部品Ｗ３から抽出する特徴を決定する（ステップＳ５６０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれる部品Ｗ３の複数のガイドデータから、指定された優先順位に従って、未選択のガイドデータを決定する。なお、優先順位は、例えば、図１７（Ａ１）、（Ａ２）、（Ａ３）の順で指定されている。
【０１５８】
それから、視覚サーボ制御部３１は、部品Ｗ３の特徴を抽出する（ステップＳ５７０）。具体的には、特徴抽出部３２は、ステップＳ５６０で選択した部品Ｗ３のガイドデータから、部品Ｗ３の特徴位置を取得する。また、特徴抽出部３２は、ステップＳ５００で取得された撮像画像に対して、取得した特徴位置で指定されている画像処理アルゴリズムを実行し、特徴を抽出する。また、特徴抽出部３２は、抽出した特徴の中から、取得した部品Ｗ３の特徴位置と合致する特徴位置を特定する。
【０１５９】
ここで、ステップＳ５７０の処理では、照明の明るさや、部品Ｗ３及び部品Ｗ４の位置関係などの作業環境によって、部品Ｗ３の特徴位置が特定できないことがある。
【０１６０】
それから、視覚サーボ制御部３１は、対象物Ｗ３の特徴抽出に成功したか否かを判定する（ステップＳ５８０）。すなわち、特徴抽出部３２は、ステップＳ５７０の結果に基づいて、ステップＳ５６０で選択した部品Ｗ３の特徴位置の抽出及び特定に成功したか否かを判定する。
【０１６１】
部品Ｗ３の特徴位置の抽出に失敗した場合（ステップＳ５８０：Ｎ）、視覚サーボ制御部３１は、他に部品Ｗ３の特徴があるか否かを判定する（ステップＳ５９０）。具体的には、特徴抽出部３２は、工程１の教示データに含まれる部品Ｗ３の複数のガイドデータに、未選択のガイドデータがあるか否かを判定する。
【０１６２】
未選択の特徴がない場合（ステップＳ５９０：Ｎ）、視覚サーボ制御部３１は、図１９に示すフローチャートの処理を終了する。未選択の特徴がある場合（ステップＳ５９０：Ｙ）、視覚サーボ制御部３１は、処理をステップＳ５６０に戻す。
【０１６３】
一方、部品Ｗ３の特徴位置の抽出に成功した場合（ステップＳ５８０：Ｙ）、視覚サーボ制御部３１は、部品Ｗ３に対応するガイドＧ３を生成する（ステップＳ６００）。具体的には、ガイド生成部３３は、ステップＳ５６０で最後に選択した部品Ｗ３のガイドデータから、部品Ｗ３のガイド位置（特徴位置に対する相対位置を示す。）を取得する。また、ガイド生成部３３は、ステップＳ５７０で最後に抽出及び特定された部品Ｗ３の特徴位置Ｆ３を基準に、取得したガイド位置が示す位置に、対象物ガイドＧ３を設定する。このようにして、撮像画像上に、選択された特徴位置Ｆ３を基準として、対象物ガイドＧ３が設定される。
【０１６４】
例えば、図２１（Ａ）では、図１７（Ａ１）の特徴位置Ｆ３ａや、図１７（Ａ２）の特徴位置Ｆ３ｂの代わりに、図１７（Ａ３）の特徴位置Ｆ３ｃが特定され、当該特徴位置に対応するガイドＧ３ｃが設定された場合を示している。
【０１６５】
それから、視覚サーボ制御部３１は、視覚サーボを実行する（ステップＳ６１０）。具体的には、視覚サーボ制御部３１は、撮像画像から、生成されたガイド以外の画像情報を削除する。それから、視覚サーボ制御部３１は、工程１の教示データに基づいて、対象物ガイドＧ４（基準位置）に、所定のオフセット距離（基準位置からＺ方向にｍピクセル）で、対象物ガイドＧ３（基準位置）を一致させるように、視覚サーボを実行する。なお、対象物ガイドＧ４は、ステップＳ５５０で最後に生成されたものであり、対象物ガイドＧ３は、ステップＳ６００で最後に生成されたものである。視覚サーボ制御部３１は、対象物ガイドＧ３が、対象物ガイドＧ４を基準とするオフセット位置から所定距離内に位置しない場合には、制御命令を生成してロボットのアームを動作させる（エンドポイントを移動させる）。一方、視覚サーボ制御部３１は、対象物ガイドＧ３が、オフセット位置から所定距離内に位置する場合には、制御命令を生成せずに、工程１の視覚サーボは収束していると判断する。
【０１６６】
例えば、図２１（Ａ）では、図１８（Ａ３）のガイドＧ４ｃからの所定のオフセット位置Ｅ４ｃに、図１７（Ａ３）のガイドＧ３ｃを一致させる場合を示している。また、図２１（Ｂ）では、ガイドＧ３ｃがガイドＧ４ｃを基準とするオフセット位置Ｅ４ｃに収束した場合を示している。
【０１６７】
それから、視覚サーボ制御部３１は、視覚サーボが収束しているか否かを判定する（ステップＳ６２０）。具体的には、視覚サーボ制御部３１は、ステップＳ６１０において収束していると判断した場合には（ステップＳ６２０：Ｙ）、処理をステップＳ６３０に進める。一方、ステップＳ６１０において収束していないと判断した場合には（ステップＳ６２０：Ｎ）、処理をステップＳ５００に戻す。
【０１６８】
ステップＳ６１０の視覚サーボが収束した場合（ステップＳ６２０：Ｙ）、視覚サーボ制御部３１は、視覚サーボが目標条件を満たしているか否かを判定する（ステップＳ６３０）。具体的には、視覚サーボ制御部３１は、例えば、ステップＳ６１０で最後に使用したガイドＧ４とガイドＧ３の組み合わせが、教示データで指定されている対象物ガイドの組み合わせと同じであるか否かを判定する。使用した対象物ガイドの組み合わせが指定された対象物ガイドの組み合わせと異なる場合（ステップＳ６３０：Ｎ）、視覚サーボ制御部３１は、処理をステップＳ５００に戻す。
【０１６９】
使用した対象物ガイドの組み合わせが指定された対象物ガイドの組み合わせと同じである場合（ステップＳ６３０：Ｙ）、視覚サーボ制御部３１は、ロボットの所定の動作を行う（ステップＳ６４０）。具体的には、視覚サーボ制御部３１は、工程２の教示データに基づいて、対象物ガイドＧ３（基準位置）を、所定の距離（Ｚ方向にｎピクセル）移動するように、ロボットのアームを動作させる（図１６（Ｂ））。なお、対象物ガイドＧ３は、ステップＳ６００で最後に生成されたものである。そして、視覚サーボ制御部３１は、図１９に示すフローチャートの処理を終了する。なお、図１９に示すフローチャートの終了後、制御部３は、例えば、位置制御、インピーダンス制御などによりロボット２を制御するとともに、ハンド２２を回転させるか、またはドライバーＷ３ａの押し付け動作によってネジ締めを行うことができる場合にはハンド２２を押し付け、ネジＷ３ｂを部品Ｗ４に取り付ける。
【０１７０】
以上のようにして、ガイドの設定に失敗した場合には、他のガイドが設定され、視覚サーボが実行される。
【０１７１】
上記の実施形態の変形例によれば、特徴を抽出するための画像処理アルゴリズムが、作業環境に応じてユーザーにより複数設定される。また、ある画像処理アルゴリズムによりガイドの設定に失敗しても、他の画像処理アルゴリズムによりガイドが設定される。これにより、作業環境が変化することによってガイドが生成できなくなることを防ぎ、視覚サーボを継続することができる。また、作業環境に影響されない安定した視覚サーボを実現できる。
【０１７２】
なお、上記の実施形態の変形例では、部品Ｗ３と部品Ｗ４の両方にそれぞれ複数のガイドを用意しているが、一方の部品には一つのガイドを用意するようにしてもよい。また、上記の実施形態の変形例は、第二の作業例に限られず、第一の作業例についても同様に適用できる。すなわち、部品Ｗ１及び部品Ｗ２の少なくとも一方に対して複数のガイドを用意し、あるガイドデータに基づく特徴抽出に失敗した場合に他のガイドデータに基づく特徴抽出を行うようにすればよい。また、対象物ガイドＧ１と固定ガイドＳＧ１に基づく視覚サーボの目標条件と、対象物ガイドＧ２と固定ガイドＳＧ１に基づく視覚サーボの目標条件とをそれぞれ設定し、それぞれの視覚サーボの収束判定の直後に目標条件の判定を行うようにすればよい。
【０１７３】
＜その他の変形例＞
上記の実施形態及びその変形例では、ガイド設定部４２は、所定の画像処理アルゴリズム（ユーザーにより指定されてもよい。）により抽出される特徴位置に対して、一つガイド位置を設定している。しかし、ガイド設定部４２は、抽出された特徴位置（例えば、エッジなど）を表示部４１に表示し、抽出された特徴位置の中から任意の特徴位置（例えば、抽出されたエッジの一部など）の指定を、ユーザーから入力部４０を介して受け付けてもよい。そして、ガイド設定部４２は、指定された特徴位置に対して、ガイド位置の指定を受け付け、ガイドデータを生成するようにしてもよい。この場合、ガイドデータには、ガイド位置（変換された基準位置、方向成分）と、ユーザーにより指定された特徴位置（特徴位置を特定する情報、当該特徴位置を抽出するために使用される画像処理アルゴリズムに関する情報）とが含まれる。もちろん、抽出された特徴位置の中から、任意の複数の特徴位置を受け付け、それぞれの指定された特徴位置に対してガイド位置の指定を受け付けるようにしてもよい。このようにすることで、特徴位置およびガイドの設定の柔軟性を高めることができる。
【０１７４】
図示した各フローチャートの各処理単位は、教示装置４及び制御部３の処理を理解容易にするために、主な処理内容に応じて分割したものである。処理単位の分割の仕方や名称によって、本願発明が制限されることはない。教示装置４及び制御部３の処理は、処理内容に応じて、さらに多くの処理単位に分割することもできる。また、１つの処理単位がさらに多くの処理を含むように分割することもできる。
【０１７５】
以上、本発明について実施形態を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲には限定されない。上記実施形態に多様な変更または改良を加えることが可能であることが当業者には明らかである。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。本発明の提供の態様にも、様々な態様が取り得る。本発明は、例えば、ロボットと、制御部（制御装置）と、教示装置とを別個に有するロボットシステムとして提供してもよいし、ロボットの制御部に教示装置の機能が含まれるロボットとして提供してもよいし、ロボットと、教示装置の機能を含む制御部（制御装置）とを別個に有するロボットシステムとして提供してもよい。また、本発明は、教示方法、教示装置のプログラム、ロボットの制御方法、ロボットの制御プログラム、ロボットシステムの制御方法、プログラムを記憶した記憶媒体などとしても提供することもできる。
【符号の説明】
【０１７６】
１：ロボットシステム
２：ロボット
３：制御部
４：教示装置
５：撮像装置
９：コンピューター
２０：胴部
２１：アーム
２１ａ：ジョイント
２１ｂ：アーム部材
２１ｃ：力覚センサー
２２：ハンド
２４：脚部
２５：頭部
３０：教示データ受信部
３１：視覚サーボ制御部
３２：特徴抽出部
３３：ガイド生成部
３４：画像取得部
３５：教示データ格納部
４０：入力部
４１：表示部
４２：ガイド設定部
４３：教示データ生成部
４４：教示データ送信部
４５：モデルデータ格納部
４６：ガイドデータ格納部
４７：教示データ格納部
９０：演算装置
９１：主記憶装置
９２：補助記憶装置
９３：通信Ｉ／Ｆ
９４：入力装置
９５：表示装置
９６：読み書き装置
４５１：ＩＤ
４５２：ガイド位置
４５３：特徴位置
４６１：ＩＤ
４６２：ガイド位置
４７１：工程番号
４７２：教示内容
Ｅ：オフセット位置
Ｆ：特徴位置
Ｇ：対象物ガイド
ＳＧ：固定ガイド
Ｔ：作業台
Ｗ：ワーク、対象物、部品、モデルデータ
【図１】
2015089598.tif 000003
【図２】
2015089598.tif 000004
【図３】
2015089598.tif 000005
【図４】
2015089598.tif 000006
【図５】
2015089598.tif 000007
【図６】
2015089598.tif 000008
【図７】
2015089598.tif 000009
【図８】
2015089598.tif 000010
【図９】
2015089598.tif 000011
【図１０】
2015089598.tif 000012
【図１１】
2015089598.tif 000013
【図１２】
2015089598.tif 000014
【図１３】
2015089598.tif 000015
【図１４】
2015089598.tif 000016
【図１５】
2015089598.tif 000017
【図１６】
2015089598.tif 000018
【図１７】
2015089598.tif 000019
【図１８】
2015089598.tif 000020
【図１９】
2015089598.tif 000021
【図２０】
2015089598.tif 000022
【図２１】
2015089598.tif 000023