(57)【要約】【課題】ロボット装置の設定に際して、エンドエフェクタによるワークの把持位置の登録を容易に行えるようにする。【解決手段】ワークモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させるための表示部と、表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を生成するための基本方向画像生成部８ｅ’と、基本方向画像生成部８ｅ’にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択可能な基本方向画像選択部と、基本方向画像選択部で選択された複数の基本方向画像を表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するためのワーク側把持箇所指定部８ｄ１とを備える。【選択図】図６
2018144161.tif 000002
【特許請求の範囲】
【請求項１】
作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットの動作を設定するためのロボット設定装置であって、
ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、仮想的な三次元空間上でそれぞれ表示させるための表示部と、
前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を生成するための基本方向画像生成部と、
前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択可能な基本方向画像選択部と、
前記基本方向画像選択部で選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するためのワーク側把持箇所指定部と
を備えるロボット設定装置。
【請求項２】
請求項１に記載のロボット設定装置であって、さらに、
前記表示部上に表示されるエンドエフェクタモデルに対して、ワークモデルを把持する位置に対応した把持基準点を規定するための把持基準点設定部を備えるロボット設定装置。
【請求項３】
請求項２に記載のロボット設定装置であって、
前記把持基準点設定部は、前記表示部上に基本方向画像を二次元的に表示させた状態で、エンドエフェクタモデルに対して、ワークを把持する把持位置を指定するよう構成してなるロボット設定装置。
【請求項４】
請求項１〜３のいずれか一項に記載のロボット設定装置であって、さらに、
前記表示部にエンドエフェクタモデルと、該エンドエフェクタモデルをロボットのアーム部の先端に取り付ける取付面を表示させると共に、該取付面を前記表示部に表示させた状態で、該取付面に対するエンドエフェクタモデルの姿勢を規定するためのエンドエフェクタ取付面設定部を備えるロボット設定装置。
【請求項５】
請求項１〜４のいずれか一項に記載のロボット設定装置であって、
前記ワーク側把持箇所指定部は、前記複数の基本方向画像のそれぞれに対して、複数の把持位置を登録可能に構成してなるロボット設定装置。
【請求項６】
請求項１〜５のいずれか一項に記載のロボット設定装置であって、
前記ワーク側把持箇所指定部は、前記表示部にエンドエフェクタモデルが下向きの姿勢で配置すると共に、該エンドエフェクタモデルの下方にワークモデルを配置する状態を初期値として表示させた状態で、エンドエフェクタモデルでワークモデルを把持する把持位置を指定するよう構成してなるロボット設定装置。
【請求項７】
請求項１〜６のいずれか一項に記載のロボット設定装置であって、
前記基本方向画像選択部が、前記第一軸、第二軸、第三軸の正負方向の一方からそれぞれ見た基本方向画像が、他方から見た基本方向画像と見え方が共通する場合、該他方の基本方向画像を排除するよう構成してなるロボット設定装置。
【請求項８】
請求項７に記載のロボット設定装置であって、
前記基本方向画像選択部が、自動で三次元サーチ用のサーチモデルから排除するよう構成してなるロボット設定装置。
【請求項９】
請求項７に記載のロボット設定装置であって、
前記基本方向画像選択部が、ユーザが手動で三次元サーチ用のサーチモデルから排除するよう構成してなるロボット設定装置。
【請求項１０】
請求項１〜９のいずれか一項に記載のロボット設定装置であって、さらに、
前記基本方向画像のいずれかを、バラ積みされた複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するためのサーチモデル登録部を備えるロボット設定装置。
【請求項１１】
請求項１０に記載のロボット設定装置であって、
前記サーチモデル登録部が、前記基本方向画像選択部で選択された基本方向画像に対して、三次元サーチ用のサーチモデルとして使用するか否かの選択を行うよう構成してなるロボット設定装置。
【請求項１２】
請求項１０〜１１のいずれか一項に記載のロボット設定装置であって、さらに、
選択された各サーチモデル毎に、該ワークモデルの回転に対して個別に、許容される回転角度の範囲を設定するための回転角度制限部を備えるロボット設定装置。
【請求項１３】
作業空間に積み上げられた複数のワークの三次元形状をセンサ部により測定し、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットを制御するためのロボット設定装置であって、
ワークの三次元形状を仮想的に表現するワークモデルと、エンドエフェクタの三次元形状を仮想的に表現するエンドエフェクタモデルを、それぞれ仮想的な三次元空間上で三次元状に表示可能な表示部と、
前記表示部に表示されたワークモデルの位置及び姿勢を、仮想三次元空間上で調整するための位置決め部と、
前記ワークモデルに対して、仮想三次元空間上で互いに直交する三軸の各軸方向のいずれかから見た状態を、基本方向画像として生成する基本方向画像生成部と、
前記基本方向画像生成部で生成された基本方向画像の一に対して、前記位置決め部で前記表示部の前記仮想三次元空間上において位置決めされた状態で、該基本方向画像が示すワークモデルをエンドエフェクタで把持する把持位置を特定するための把持位置特定部と、
前記基本方向画像生成部で生成された複数の基本方向画像のいずれかを、前記入力画像取得部で取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いるサーチモデルとして登録するためのサーチモデル登録部と、
前記入力画像取得部で取得された入力画像中から、前記サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行うための三次元サーチ部と、
前記三次元サーチ部でサーチされた各ワークのサーチ結果に対して、前記把持位置特定部でワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための三次元ピック判定部と、
を備えるロボット設定装置。
【請求項１４】
作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットの動作を設定するためのロボット設定方法であって、
ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、表示部において仮想的な三次元空間でそれぞれ表示させる工程と、
前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を基本方向画像生成部で生成する工程と、
前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択する工程と、
前記選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定する工程と、
を含むロボット設定方法。
【請求項１５】
作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットの動作を設定するためのロボット設定プログラムであって、
ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、表示部において仮想的な三次元空間でそれぞれ表示させる機能と、
前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を基本方向画像生成部で生成する機能と、
前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択する機能と、
前記選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定する機能と、
をコンピュータに実現させるためのロボット設定プログラム。
【請求項１６】
請求項１５に記載のプログラムを記録したコンピュータで読み取り可能な記録媒体または記憶した機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器に関し、例えば作業空間に積み上げられたピッキングの対象である複数のワークの三次元形状をセンサ部により測定し、ロボットのアーム部の先端に設けたエンドエフェクタで把持して順次取り出すバラ積みピッキング動作を行うロボットを制御するためのロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器に関する。
【背景技術】
【０００２】
マニピュレータにロボットビジョンを組み合わせて、対象となるワークをロボットビジョンで撮像して高さ情報を取得した上で、適切な位置を把持（ピック）して、所望の位置に載置（プレース又はプレースメント）可能なロボット装置が開発されている。このようなロボット装置を用いて、バラ積みピッキングと呼ばれる、通い箱に入れられた多数のワークを、ロボットビジョンを構成するカメラやセンサ部で撮像して姿勢を把握し、適切な把持位置を把握した上で、この把持位置までロボットのアームを移動させ、アームの先端に設けられたハンド部等のエンドエフェクタで把持して、通い箱の外の、決められた位置に載置することが行われている。
【０００３】
このようなロボットビジョンを用いたバラ積みピッキングでは、ワークを掴むときのワークとロボットとの位置関係を把持位置として登録しておき、ロボットビジョンで検出したワークに対するロボットの把持位置を計算し、計算された位置にロボットを移動させてピッキングする。
【０００４】
ここで、エンドエフェクタによるワークの把持位置の登録方法としては、実際にロボットを動作させて登録する方法や、三次元のＣＡＤデータで表現した仮想空間上でエンドエフェクタモデルを移動させて登録する方法がある。
【０００５】
しかしながら、実際にロボットを動作させて登録する方法では、実際にロボットを移動させながら登録作業を行う必要があり、手間がかかる上、大掛かりな検証環境を要したり、試行錯誤のサイクルに時間がかかるといった問題があった。
【０００６】
また一方、三次元ＣＡＤで構築した仮想空間上でロボットモデルを動作させて登録する方法では、実際のロボット装置がなくても登録できるメリットがあるものの、ワークモデルの三次元的な姿勢に対し、エンドエフェクタモデルの三次元的な姿勢を正しく合わせ込む必要があり、設定が難解であった。
【０００７】
また、バラ積みピッキングの実運用時には、複数のワークをバラ積みした状態をセンサ部で三次元形状を取得して、ワーク毎に抽出することが行われる。このようなワークの切り出しには三次元サーチが用いられるところ、三次元サーチに使用するサーチモデルとして、ＣＡＤモデルを用いることが考えられる。しかしながら、このような従来のＣＡＤモデルを元にした三次元サーチでは、処理時間を抑えたり誤検出を減らす目的でサーチモデルの三次元的な姿勢を制限することが難しいという問題もあった。
【０００８】
例えば図４３に示すような平板状のワークをサーチモデルとして、同型のワークを複数個バラ積みしたワーク群から三次元サーチでワークを検出することを考える。この結果、図４５においてＸで示すような縦置きの姿勢でワークが存在しているかのように誤検出されることが頻繁に生じてしまう。実際には、図４３のような平板状のワークが直立した姿勢で存在することは考え難いところ、平板状のワークの側面部分の形状は棒状となるため、ワークの表面を構成する他の部位の形状と共通することがあり、その結果としてこのような誤検出が生じやすい特性がある。
【０００９】
これに対して、ワークの取り得る姿勢を制限して三次元サーチを行うことも考えられるが、姿勢制限を行う条件の設定が極めて難解となる。例えば、図４６に示すようなＺ−Ｙ−Ｚ系のオイラー角を用いて、Ｚ軸、Ｙ軸、Ｚ軸の回転角度範囲を規定することで、ワークのあらゆる姿勢を表現できることが知られているものの、この方法で各軸の回転角度を、ユーザが所望する姿勢範囲となるように規定することは容易ではない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第３７８２６７９号公報
【特許文献２】特許第４９６２１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、このような事情に鑑みてなされたものであり、その目的の一は、ロボット装置の設定に際して、エンドエフェクタによるワークの把持位置の登録を容易に行えるようにしたロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器を提供することにある。
【課題を解決するための手段及び発明の効果】
【００１２】
本発明の第１の形態に係るロボット設定装置によれば、作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットの動作を設定するためのロボット設定装置であって、ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、仮想的な三次元空間上でそれぞれ表示させるための表示部と、前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を生成するための基本方向画像生成部と、前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択可能な基本方向画像選択部と、前記基本方向画像選択部で選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するためのワーク側把持箇所指定部とを備えることができる。上記構成により、三次元的に自由な姿勢で表示されたワークモデルに対して、多くの自由度を有する状態でエンドエフェクタで把持する姿勢を規定するのでなく、仮想三次元空間を規定する軸方向から見たワークモデルに対して設定させることで、ワークモデルの姿勢をある程度規定した状態で設定できるため、ユーザはより判り易くワークモデルの把持位置を設定することが可能となる。
【００１３】
また、第２の形態に係るロボット設定装置によれば、上記構成に加えて、さらに前記表示部上に表示されるエンドエフェクタモデルに対して、ワークモデルを把持する位置に対応した把持基準点を規定するための把持基準点設定部を備えることができる。
【００１４】
さらに、第３の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記把持基準点設定部は、前記表示部上に基本方向画像を二次元的に表示させた状態で、エンドエフェクタモデルに対して、ワークを把持する把持位置を指定するよう構成できる。
【００１５】
さらにまた、第４の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、前記表示部にエンドエフェクタモデルと、該エンドエフェクタモデルをロボットのアーム部の先端に取り付ける取付面を表示させると共に、該取付面を前記表示部に表示させた状態で、該取付面に対するエンドエフェクタモデルの姿勢を規定するためのエンドエフェクタ取付面設定部を備えることができる。
【００１６】
さらにまた、第５の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ワーク側把持箇所指定部は、前記複数の基本方向画像のそれぞれに対して、複数の把持位置を登録可能に構成できる。
【００１７】
さらにまた、第６の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記ワーク側把持箇所指定部は、前記表示部にエンドエフェクタモデルが下向きの姿勢で配置すると共に、該エンドエフェクタモデルの下方にワークモデルを配置する状態を初期値として表示させた状態で、エンドエフェクタモデルでワークモデルを把持する把持位置を指定するよう構成できる。上記構成により、ワークモデルに把持位置を登録する際に、このワークモデルを把持するエンドエフェクタモデルを、ワークモデルの上方に配置することで、このエンドエフェクタモデルをそのまま下方に下ろすように移動させることで、エンドエフェクタモデルがワークモデルを把持する動作をユーザは感覚的に把握し易くなり、位置の登録作業をスムーズに行い易くできる。
【００１８】
さらにまた、第７の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記基本方向画像選択部が、前記第一軸、第二軸、第三軸の正負方向の一方からそれぞれ見た基本方向画像が、他方から見た基本方向画像と見え方が共通する場合、該他方の基本方向画像を排除するよう構成できる。
【００１９】
さらにまた、第８の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記基本方向画像選択部が、自動で三次元サーチ用のサーチモデルから排除するよう構成できる。
【００２０】
さらにまた、第９の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記基本方向画像選択部が、ユーザが手動で三次元サーチ用のサーチモデルから排除するよう構成できる。
【００２１】
さらにまた、第１０の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、前記基本方向画像のいずれかを、バラ積みされた複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するためのサーチモデル登録部を備えることができる。上記構成により、三次元サーチを行うサーチモデルを、ワークモデルの把持位置を指定する基本方向画像と共通として登録することで、ユーザは設定作業を省力化できる。また実運用時においても、把持できるワークをサーチする基本方向画像毎に、ワークの把持位置を登録することで、把持位置のない基本方向画像をサーチするような無駄を無くし、逆にサーチされた基本方向画像に対して、この基本方向画像に設定された把持位置で把持可能かどうかを検討できるため、効率良く処理を行うことが可能となる。
【００２２】
さらにまた、第１１の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、前記サーチモデル登録部が、前記基本方向画像選択部で選択された基本方向画像に対して、三次元サーチ用のサーチモデルとして使用するか否かの選択を行うよう構成できる。上記構成により、基本方向画像に対して三次元サーチ用のサーチモデルとして使用するか否かを選択でき、いいかえると不要な基本方向画像を三次元サーチの対象から排除できるので、例えば板状のワークを側面から見た状態がサーチされるといった誤検出が起き易い基本方向画像を排除することで、板状のワークが直立した状態を三次元サーチしないように設定でき、実質的にワークモデルの姿勢に対する制限を簡単に設定することが可能となる。
【００２３】
さらにまた、第１２の形態に係るロボット設定装置によれば、上記何れかの構成に加えて、さらに、選択された各サーチモデル毎に、該ワークモデルの回転に対して個別に、許容される回転角度の範囲を設定するための回転角度制限部を備えることができる。
【００２４】
さらにまた、第１３の形態に係るロボット設定装置によれば、作業空間に積み上げられた複数のワークの三次元形状をセンサ部により測定し、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットを制御するためのロボット設定装置であって、ワークの三次元形状を仮想的に表現するワークモデルと、エンドエフェクタの三次元形状を仮想的に表現するエンドエフェクタモデルを、それぞれ仮想的な三次元空間上で三次元状に表示可能な表示部と、前記表示部に表示されたワークモデルの位置及び姿勢を、仮想三次元空間上で調整するための位置決め部と、前記ワークモデルに対して、仮想三次元空間上で互いに直交する三軸の各軸方向のいずれかから見た状態を、基本方向画像として生成する基本方向画像生成部と、前記基本方向画像生成部で生成された基本方向画像の一に対して、前記位置決め部で前記表示部の前記仮想三次元空間上において位置決めされた状態で、該基本方向画像が示すワークモデルをエンドエフェクタで把持する把持位置を特定するための把持位置特定部と、前記基本方向画像生成部で生成された複数の基本方向画像のいずれかを、前記入力画像取得部で取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いるサーチモデルとして登録するためのサーチモデル登録部と、前記入力画像取得部で取得された入力画像中から、前記サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行うための三次元サーチ部と、前記三次元サーチ部でサーチされた各ワークのサーチ結果に対して、前記把持位置特定部でワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための三次元ピック判定部とを備えることができる。上記構成により、従来のようにワークを三次元サーチする際に、三次元形状を有するＣＡＤデータ等のサーチモデルをそのまま用いるのでなく、座標軸の特定の方向から見た面状のサーチモデルを複数用いて検索することで、三次元サーチの処理を簡素化でき、軽負荷、高速化を図ることができる。また、サーチモデルの登録に際しても、面状にサーチモデルを登録することで、ユーザにおいて視覚的に把握し易い形状とでき、このような登録作業も容易に行うことができる。
【００２５】
さらにまた、第１４の形態に係るロボット設定方法によれば、作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットを制御するロボット設定方法であって、ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、表示部において仮想的な三次元空間でそれぞれ表示させる工程と、前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を基本方向画像生成部で生成する工程と、前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択する工程と、前記選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定する工程とを含むことができる。これにより、三次元的に自由な姿勢で表示されたワークモデルに対して、多くの自由度を有する状態でエンドエフェクタで把持する姿勢を規定するのでなく、仮想三次元空間を規定する軸方向から見たワークモデルに対して設定させることで、ワークモデルの姿勢をある程度規定した状態で設定できるため、ユーザはより判り易くワークモデルの把持位置を設定することが可能となる。
【００２６】
さらにまた、第１５の形態に係るロボット設定プログラムによれば、作業空間に積み上げられた複数のワークを、ロボットのアーム部の先端に設けたエンドエフェクタによって順次取り出すバラ積みピッキング動作を行うロボットを制御するためのロボット設定プログラムであって、ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルを、表示部において仮想的な三次元空間でそれぞれ表示させる機能と、前記表示部上にワークモデルを配置する仮想三次元空間を規定する、互いに直交する第一軸、第二軸、第三軸の、正負方向からそれぞれワークモデルを見た六つの基本方向画像を基本方向画像生成部で生成する機能と、前記基本方向画像生成部にて生成された六つの基本方向画像の中から、複数の基本方向画像を選択する機能と、前記選択された複数の基本方向画像を前記表示部に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定する機能とをコンピュータに実現させることができる。上記構成により、三次元的に自由な姿勢で表示されたワークモデルに対して、多くの自由度を有する状態でエンドエフェクタで把持する姿勢を規定するのでなく、仮想三次元空間を規定する軸方向から見たワークモデルに対して設定させることで、ワークモデルの姿勢をある程度規定した状態で設定できるため、ユーザはより判り易くワークモデルの把持位置を設定することが可能となる。
【００２７】
さらにまた、第１６の形態に係るコンピュータで読み取り可能な記録媒体または記憶した機器は、上記ロボット設定プログラムを格納するものである。記録媒体には、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷやフレキシブルディスク、磁気テープ、ＭＯ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、ＤＶＤ−Ｒ、ＤＶＤ＋Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ＋ＲＷ、Ｂｌｕ−ｒａｙ、ＨＤ  ＤＶＤ（ＡＯＤ）等の磁気ディスク、光ディスク、光磁気ディスク、半導体メモリその他のプログラムを格納可能な媒体が含まれる。またプログラムには、上記記録媒体に格納されて配布されるものの他、インターネット等のネットワーク回線を通じてダウンロードによって配布される形態のものも含まれる。さらに記憶した機器には、上記プログラムがソフトウェアやファームウェア等の形態で実行可能な状態に実装された汎用もしくは専用機器を含む。さらにまたプログラムに含まれる各処理や機能は、コンピュータで実行可能なプログラムソフトウエアにより実行してもよいし、各部の処理を所定のゲートアレイ（ＦＰＧＡ、ＡＳＩＣ）等のハードウエア、又はプログラムソフトウエアとハードウェアの一部の要素を実現する部分的ハードウエアモジュールとが混在する形式で実現してもよい。
【図面の簡単な説明】
【００２８】
【図１】ロボットシステムを用いてバラ積みピッキング動作を行う様子を示す模式図である。
【図２】ロボットシステムのブロック図である。
【図３】センサ部の一例を示す斜視図である。
【図４】図４Ａは収納容器にワークを無作為に投入して積み上げた例を示す模式断面図、図４Ｂはワークを床面上に積み上げた例を示す模式断面図、図４Ｃはワークを一定姿勢でトレイ上に配列した状態を示す斜視図である。
【図５】図５Ａはエンドエフェクタでワークを把持する例を示す模式図、図５Ｂは空洞を有するワークを内面から把持する例を示す模式図、図５Ｃは板状のワークを吸引して把持する例を示す模式図である。
【図６】実施形態１に係るロボットシステムを示すブロック図である。
【図７】三次元ＣＡＤデータで構築されたワークモデルを示す斜視図である。
【図８】図７のワークモデルに対してサーチモデルの原点を設定する状態を示すイメージ図である。
【図９】図９Ａは図７のワークモデルをＸ軸の正方向から見た基本方向画像、図９ＢはＹ軸の正方向から見た基本方向画像、図９ＣはＺ軸の正方向から見た基本方向画像、図９ＤはＺ軸の負方向から見た基本方向画像である。
【図１０】三次元サーチのサーチモデルとして基本方向画像を登録するサーチモデル登録画面を示すイメージ図である。
【図１１】図７のワークモデルに対応するワークをＸ軸の正方向から撮像した実測データを示すイメージ図である。
【図１２】図１２Ａは、図９ＡのＸ軸方向から見た画像に特徴点を抽出した状態を示すイメージ図であり、図１２Ｂは、図１２Ａの画像を三次元表示させた状態を示すイメージ図である。
【図１３】図１３Ａはワーク群を二次元表示させた入力画像、図１３Ｂは図１３Ａを三次元表示させた入力画像、図１３Ｃは図１３Ａに対して三次元サーチを行った結果、図１３Ｄは図１３Ｃを三次元表示させた状態を、それぞれ示すイメージ図である。
【図１４】把持登録画面を示すユーザインターフェース画面のイメージ図である。
【図１５】把持姿勢追加画面を示すイメージ図である。
【図１６】図１６Ａは立方体状のワークを複数バラ積みした状態、図１６Ｂはこのワークモデルをサーチモデルに登録した状態、図１６Ｃは図１６Ｂのワークモデルに対して把持姿勢を登録した状態を、それぞれ示すイメージ図である。
【図１７】実施形態２に係るロボットシステムを示す機能ブロック図である。
【図１８】Ｚ−Ｙ−Ｘ系オイラー角に従ってエンドエフェクタモデルを回転させる前の状態を示すイメージ図である。
【図１９】図１８からＺ軸回りに９０°回転させた状態を示すイメージ図である。
【図２０】図１９からＹ軸回りに９０°回転させた状態を示すイメージ図である。
【図２１】図２０からＸ軸回りに９０°回転させた状態を示すイメージ図である。
【図２２】図２１の状態でＲYやＲZの回転軸を示すイメージ図である。
【図２３】図２２の状態で、ＲZの補正回転軸を表示する状態を示すイメージ図である。
【図２４】図２２の状態で、ＲYの補正回転軸を表示する状態を示すイメージ図である。
【図２５】図２２の状態で、ＲXの補正回転軸を表示する状態を示すイメージ図である。
【図２６】実施形態３に係るロボットシステムを示すブロック図である。
【図２７】実運用の前に行うティーチング作業の手順を示すフローチャートである。
【図２８】三次元ＣＡＤデータをサーチモデルとして登録する手順を示すフローチャートである。
【図２９】エンドエフェクタモデルを登録する手順を示すフローチャートである。
【図３０】追加領域を付加したエンドエフェクタモデルの登録の手順を示すフローチャートである。
【図３１】実施形態４に係るロボットシステムを示すブロック図である。
【図３２】追加領域設定画面を示すイメージ図である。
【図３３】基本図形編集画面を示すイメージ図である。
【図３４】エンドエフェクタでワークを把持する把持位置及び姿勢を登録する手順を示すフローチャートである。
【図３５】図３５Ａは三次元ＣＡＤデータで構成されたワークモデルのイメージ図、図３５ＢはＸ−Ｙ指定画面を示すイメージ図である。
【図３６】Ｚ−ＲZ指定画面を示すイメージ図である。
【図３７】ＲY指定画面を示すイメージ図である。
【図３８】ＲX指定画面を示すイメージ図である。
【図３９】位置パラメータ指定画面を示すイメージ図である。
【図４０】Ｘ−Ｙ−Ｚ指定画面を示すイメージ図である。
【図４１】図３５Ｂのワークモデルを斜め方向から投影させた状態で把持位置を指定させる様子を示すイメージ図である。
【図４２】三次元画像ビューワ上での把持位置を指定させる様子を示すイメージ図である。
【図４３】平板状のワークを示すイメージ図である。
【図４４】図４４Ａは図４３のワークを表すワークモデルの平面図、図４４Ｂは底面図、図４４Ｃは正面図、図４４Ｄは背面図、図４４Ｅは右側面図、図４４Ｆは左側面図をそれぞれ示す。
【図４５】図４３のワークを複数個バラ積みしたワーク群を撮像した点群データに対して三次元サーチを行った結果を示すイメージ図である。
【図４６】Ｚ−Ｙ−Ｚ系のオイラー角を用いてワークの姿勢を表現する例を示す模式図である。
【図４７】サーチモデル登録画面を示すイメージ図である。
【図４８】姿勢制限を設けたサーチモデルの登録手順を示すフローチャートである。
【図４９】傾斜角度・回転角度設定画面を示すイメージ図である。
【図５０】図５０Ａは登録時のワークの姿勢、図５０Ｂは入力画像の姿勢、図５０Ｃは傾斜角度を示すイメージ図である。
【図５１】図５１Ａは登録時のワークの姿勢、図５１Ｂは入力画像の姿勢、図５１Ｃは回転角度を示すイメージ図である。
【図５２】三次元姿勢から傾斜角度と回転角度を求める手順を示すフローチャートである。
【図５３】図５３Ａはサーチモデル登録時のワークの姿勢、図５３Ｂは入力画像の姿勢、図５３Ｃは傾斜角度を求める状態を示すイメージ図である。
【図５４】図５４Ａは図５３Ｃのサーチモデルに回転軸を示した状態、図５４Ｂは図５４ＡのＺ’軸をＺ軸に一致させるように三次元的に回転させた状態を示すイメージ図である。
【図５５】図５５Ａは登録時のワークの姿勢、図５５Ｂは図５４Ｂの傾斜を除いた状態、図５５Ｃは図５５ＢのＺ鉛直方向から見た時の回転角を回転角度として求める様子を示すイメージ図である。
【図５６】エンドエフェクタ取付位置設定画面を示すイメージ図である。
【図５７】把持位置指定画面を示すイメージ図である。
【図５８】複数把持位置選択画面を示すイメージ図である。
【図５９】エンドエフェクタ取付位置較正画面を示すイメージ図である。
【図６０】エンドエフェクタ取付位置を自動で較正する手順を示すフローチャートである。
【図６１】エンドエフェクタ撮像画面を示すイメージ図である。
【図６２】実測データをサーチモデルとして登録する手順を示すフローチャートである。
【図６３】実運用時に各ワークの把持解の有無を判定する手順を示すフローチャートである。
【図６４】図４８の手順でサーチモデルを登録した状態でピッキング動作を行う実運用時の手順を示すフローチャートである。
【図６５】断面モデルを用いた干渉判定の手順を示すフローチャートである。
【図６６】エンドエフェクタモデル及びその基本軸と断面位置を示すイメージ図である。
【図６７】図６７Ａは図６６の断面ＳＳ１、図６７Ｂは断面ＳＳ２、図６７Ｂは断面ＳＳ３、図６７Ｄは断面ＳＳ４、図６７Ｅは断面ＳＳ５を、それぞれ示すイメージ図である。
【図６８】図６８Ａは三次元点と図６６のエンドエフェクタモデルの基本軸を示すイメージ図、図６８Ｂは図６８Ａの三次元点の投影点が断面ＳＳ３と干渉していない状態、図６８Ｃは断面ＳＳ３と干渉している状態をそれぞれ示すイメージ図である。
【図６９】追加モデルを用いた干渉判定の手順を示すフローチャートである。
【図７０】実施形態７に係るロボットシステムを示すブロック図である。
【図７１】実施形態７に係る実運用時に各ワークの把持解の有無を判定する手順を示すフローチャートである。
【図７２】ワークの一例を示す斜視図である。
【図７３】図７３Ａは図７２のワークをＺ軸の正方向側から見た高さ画像Ａ、図７３ＢはＺ軸の負方向側から見た高さ画像Ｂ、図７３ＣはＸ軸の正方向側から見た高さ画像Ｃ、図７３ＤはＸ軸の負方向側から見た高さ画像Ｄ、図７３ＥはＹ軸の正方向側から見た高さ画像Ｅ、図７３ＦはＹ軸の負方向側から見た高さ画像Ｆを、それぞれ示すイメージ図である。
【図７４】ワーク選択画面を示すイメージ図である。
【図７５】把持ＯＫを選択した把持解候補表示画面を示すイメージ図である。
【図７６】把持ＮＧを選択した把持解候補表示画面を示すイメージ図である。
【図７７】把持ＮＧを選択した把持解候補表示画面のさらに他の例を示すイメージ図である。
【図７８】サーチモデルＣに対する把持解候補表示画面の例を示すイメージ図である。
【図７９】図７８で他の把持位置候補を選択した把持解候補表示画面の例を示すイメージ図である。
【図８０】把持位置を追加して把持ＯＫとなった把持解候補表示画面の例を示すイメージ図である。
【図８１】実施形態８に係るロボットシステムを示すブロック図である。
【図８２】実施形態８に係るサーチモデルの登録手順を示すを示すフローチャートである。
【図８３】図８３Ａは図７３Ａの基本方向画像に把持姿勢を登録する状態、図８３Ｂは図７３Ｂの基本方向画像に把持姿勢を登録する状態、図８３Ｃは図７３Ｃの基本方向画像に把持姿勢を登録する状態、図８３Ｄは図７３Ｄの基本方向画像に把持姿勢を登録する状態、図８３Ｅは図７３Ｅの基本方向画像に把持姿勢を登録する状態、図８３Ｆは図７３Ｆの基本方向画像に把持姿勢を登録する状態をそれぞれ示すイメージ図である。
【図８４】ワーク選択画面を示すイメージ図である。
【図８５】把持姿勢Ｃ−０００を選択した把持解候補表示画面を示すイメージ図である。
【図８６】把持姿勢Ａ−０００を選択した把持解候補表示画面を示すイメージ図である。
【図８７】実施形態８に係る実運用時に三次元サーチと把持可否判定を行う手順を示すフローチャートである。
【図８８】実施形態９に係るロボットシステムを示すブロック図である。
【図８９】機能選択画面を示すイメージ図である。
【図９０】サーチモデル登録方法選択画面を示すイメージ図である。
【図９１】実測データ撮像画面を示すイメージ図である。
【図９２】サーチモデル除外領域設定画面を示すイメージ図である。
【図９３】回転対称性設定画面を示すイメージ図である。
【図９４】サーチモデル登録画面を示すイメージ図である。
【図９５】サーチモデルを追加したサーチモデル登録画面を示すイメージ図である。
【図９６】サーチ領域設定画面を示すイメージ図である。
【図９７】床面指定ダイヤログを表示したサーチ領域設定画面を示すイメージ図である。
【図９８】床面情報を表示させたサーチ領域設定画面を示すイメージ図である。
【図９９】サーチパラメータ設定画面を示すイメージ図である。
【図１００】検出詳細条件設定ダイヤログを表示させたサーチパラメータ設定画面を示すイメージ図である。
【図１０１】サーチモデル毎に指定するサーチパラメータ設定画面を示すイメージ図である。
【図１０２】サーチモデル登録方法選択画面を示すイメージ図である。
【図１０３】ＣＡＤデータ読み込み画面を示すイメージ図である。
【図１０４】三次元ＣＡＤデータに基づくサーチモデル登録画面を示すイメージ図である。
【図１０５】回転対称指定ダイヤログを表示させたサーチモデル登録画面を示すイメージ図である。
【図１０６】モデル一覧表示画面を示すイメージ図である。
【図１０７】サーチ結果表示画面を示すイメージ図である。
【図１０８】サーチ結果表示画面を示すイメージ図である。
【図１０９】サーチ結果表示画面を示すイメージ図である。
【図１１０】サーチ結果表示画面を示すイメージ図である。
【図１１１】サーチ結果表示画面を示すイメージ図である。
【図１１２】サーチ結果表示画面を示すイメージ図である。
【図１１３】サーチ結果表示画面を示すイメージ図である。
【図１１４】モデル編集画面を示すイメージ図である。
【図１１５】モデル領域詳細設定画面を示すイメージ図である。
【図１１６】特徴詳細設定画面を示すイメージ図である。
【図１１７】三次元ピック初期設定画面を示すイメージ図である。
【図１１８】エンドエフェクタモデル設定画面を示すイメージ図である。
【図１１９】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１２０】パーツ追加画面を示すイメージ図である。
【図１２１】ＣＡＤ位置姿勢設定画面を示すイメージ図である。
【図１２２】ＣＡＤ位置姿勢設定画面を示すイメージ図である。
【図１２３】ＣＡＤ位置姿勢設定画面を示すイメージ図である。
【図１２４】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１２５】追加領域位置姿勢設定画面を示すイメージ図である。
【図１２６】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１２７】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１２８】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１２９】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１３０】エンドエフェクタモデル編集画面を示すイメージ図である。
【図１３１】把持登録画面を示すイメージ図である。
【図１３２】把持設定ダイヤログを示すイメージ図である。
【図１３３】設定方法選択ダイヤログを示すイメージ図である。
【図１３４】Ｘ−Ｙ指定画面を示すイメージ図である。
【図１３５】Ｚ−ＲZ指定画面を示すイメージ図である。
【図１３６】Ｚ−ＲZ指定画面を示すイメージ図である。
【図１３７】Ｚ−ＲZ指定画面を示すイメージ図である。
【図１３８】ＲY指定画面を示すイメージ図である。
【図１３９】ＲY指定画面を示すイメージ図である。
【図１４０】ＲX指定画面を示すイメージ図である。
【図１４１】ＲX指定画面を示すイメージ図である。
【図１４２】把持登録画面を示すイメージ図である。
【図１４３】把持登録画面を示すイメージ図である。
【図１４４】条件検証画面を示すイメージ図である。
【図１４５】検証ダイヤログを示すイメージ図である。
【図１４６】検出結果表示ダイヤログを示すイメージ図である。
【図１４７】検出結果表示ダイヤログを示すイメージ図である。
【図１４８】検出条件詳細設定画面を示すイメージ図である。
【図１４９】プレース設定画面を示すイメージ図である。
【図１５０】ずれ補正を手動で行う手順を示すフローチャートである。
【図１５１】無視できないずれが存在する場合のずれ補正画面の例を示すイメージ図である。
【図１５２】ずれが無視できる場合のずれ補正画面の例を示すイメージ図である。
【図１５３】ずれの手動補正と自動補正機能とを備えるずれ補正画面の例を示すイメージ図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
（実施形態１）
【００３０】
実施形態１として、ピッキング対象のワークのピッキングを行うためのロボットシステム１０００の構成例を図１に示す。この例では、作業空間に積み上げられた複数のワークＷＫを、ロボットＲＢＴを用いて順次取り出し、所定の位置に配置するバラ積みピッキングを行う例について示している。ロボットＲＢＴはマニピュレータ等とも呼ばれ、アーム部ＡＲＭと、アーム部ＡＲＭの先端に設けられたエンドエフェクタＨＮＤを備える。アーム部ＡＲＭは複数の可動部を備えており、２本のアームが互いになす角度やアーム支点の回転により、エンドエフェクタＥＥＴを所望の位置へ移動させる。エンドエフェクタＥＥＴはワークＷＫを把持又は解放可能としている。
【００３１】
このロボットＲＢＴは、ロボットコントローラ６で動作を制御される。ロボットコントローラ６はアーム部ＡＲＭの可動やエンドエフェクタＥＥＴの開閉動作を制御する。またロボットコントローラ６はロボット設定装置１００から、ロボットＲＢＴの制御に必要な情報を取得する。例えば、収納容器ＢＸに無作為に投入された多数の部品であるワークＷＫを、三次元カメラや照明等のセンサ部２で三次元形状を取得し、ロボット設定装置１００の演算部１０でワークの位置や姿勢を検出して、情報をロボットコントローラ６に送る。ロボットコントローラ６は、ワークＷＫを一つづつ、ロボットＲＢＴのアーム部ＡＲＭの先端に設けられたエンドエフェクタＥＥＴでもって把持し、ステージＳＴＧ上の所定の位置、例えばコンベアベルト上に並べていく。
【００３２】
ロボットシステム１０００の機能ブロック図を図２に示す。この図に示すロボットシステム１０００は、ロボット設定装置１００と、センサ部２と、表示部３と、操作部４と、ロボット本体５と、ロボットコントローラ６と、ロボット操作具７とを備える。
【００３３】
操作部４では、画像処理に関する設定を行う。またセンサ部２で、ワークを撮像しての三次元形状を取得する。さらに表示部３で、設定や動作状態の確認を行う。さらにまた演算部１０で、三次元サーチや干渉判定、把持解の算出等を行う。一方、ロボットコントローラ６は演算部１０の結果に従い、ロボットの制御を行う。またロボット操作具７は、ロボットの動作設定を行う。なお、図２の例では操作部４とロボット操作具７を別個の部材としているが、これらを共通の部材としてもよい。
【００３４】
センサ部２は、ロボットビジョンなどと呼ばれる、作業空間やワークを撮像する部材である。センサ部２で撮像された画像から、バラ積みされたワークの三次元形状を示す三次元形状データが取得される。なお三次元形状を取得する方法は、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法、ＴＯＦ方式などがある。本実施形態においては、パターン投影法の内、位相シフト法を用いている。
【００３５】
センサ部２の構成は、三次元形状の計測技術に応じて決定される。このセンサ部２は、カメラ、照明又はプロジェクタ等を備える。例えば位相シフト法でワークの三次元形状を計測する場合は、センサ部２として図３に示すように、プロジェクタＰＲＪと複数のカメラＣＭＥ１、ＣＭＥ２、ＣＭＥ３、ＣＭＥ４を備える。なおセンサ部は、カメラやプロジェクタといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラやプロジェクタを統合してヘッド状とした３Ｄ撮像ヘッドを、センサ部とすることができる。
【００３６】
また三次元形状データの生成自体を、センサ部側で行うこともできる。この場合、センサ部側に三次元形状データの生成機能を実現する画像処理ＩＣ等を設ける。あるいは、三次元形状データの生成を、ロボット設定装置側で行わず、センサ部で撮像した生画像を、ロボット設定装置側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
【００３７】
さらに、センサ部２で撮像された画像に基づいて、後述するキャリブレーションを実行することにより、実際のワークＷＫの位置座標（エンドエフェクタＥＥＴの移動位置の座標）と、表示部３上に表示された画像上の位置座標とをリンクさせることができる。
【００３８】
ロボット設定装置１００は、このようにして得られたワークの三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。このロボット設定装置１００は、専用のロボット設定プログラムをインストールした汎用のコンピュータや、専用に設計された画像処理コントローラ、ロボットビジョン装置等が利用できる。なお図２の例では、センサ部２やロボットコントローラ６等をロボット設定装置１００とは別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部とロボット設定装置を一体化したり、あるいはロボットコントローラをロボット設定装置に組み込むこともできる。このように、図２に示す部材の区分けは一例であって、複数の部材を統合させることもできる。例えばロボット設定装置１００を操作する操作部４と、ロボットコントローラ６を操作するロボット操作具７とを、共通の部材としてもよい。
【００３９】
ただし、センサ部２はロボット本体５と別体とする。すなわち、本願発明はセンサ部２をロボット本体５のアーム部ＡＲＭに設けない、オフハンド形式と呼ばれる形態を対象としている。いいかえると、センサ部をエンドエフェクタに設ける、オンハンド形式等と呼ばれる態様は、本願発明に含まれない。
【００４０】
表示部３は、ロボット設定装置１００で取得されたワークの三次元形状を表示させたり、各種設定や動作状態の確認を行うための部材であり、液晶モニタや有機ＥＬディスプレイ、ＣＲＴ等が利用できる。操作部４は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部３をタッチパネルとすることで、操作部と表示部を一体化することもできる。
【００４１】
例えばロボット設定装置１００を、ロボット設定プログラムをインストールしたコンピュータで構成した場合、表示部３上にはロボット設定プログラムのグラフィカルユーザインターフェース（ＧＵＩ）画面が表示される。表示部３上に表示されたＧＵＩ上から各種の設定を行うことができ、またシミュレーション結果等の処理結果を表示させることができる。この場合、表示部３を各種の設定を行うための設定部として利用できる。
【００４２】
ロボットコントローラ６は、センサ部２で撮像した情報に基づいてロボットの動作を制御する。またロボット操作具７は、ロボット本体５の動作設定を行うための部材であり、ペンダントなどが利用できる。
【００４３】
ロボット本体５は、可動式のアーム部ＡＲＭと、アーム部ＡＲＭの先端に固定されたエンドエフェクタＥＥＴを備える。このロボット本体５はロボットコントローラ６に駆動されて、アーム部ＡＲＭを動作させ、一個のワークＷＫをピッキングして、これを所望の位置に移動させて載置した後、リリースする。このためアーム部ＡＲＭの先端には、ワークＷＫを把持するためのエンドエフェクタＥＥＴを備えている。またワークＷＫを載置する載置位置は、例えばトレイ上やコンベア上等が挙げられる。
【００４４】
ワークＷＫは、図１に示すように複数個が通い箱等の収容容器ＢＸに無作為に収納されている。このような作業空間の上方には、センサ部２が配置されている。センサ部２はカメラや照明を備えており、このセンサ部２で、ワークＷＫの三次元形状を計測することができる。ロボットコントローラ６は、センサ部２で計測されたワークＷＫの三次元形状に基づいて、複数のワークの内から、把持対象のワークＷＫを特定して、このワークＷＫを把持するよう、ロボットを制御する。そして、ワークＷＫを把持したまま、アーム部ＡＲＭを動作させて予め定められた載置位置、例えばステージＳＴＧ上まで移動させ、所定の姿勢でワークＷＫを載置する。いいかえると、ロボットコントローラ６は、センサ部２でピッキング対象のワークＷＫを特定し、このワークＷＫをエンドエフェクタＥＥＴで把持して、把持したワークＷＫを所定の基準姿勢にて、載置する位置である載置位置に載置してエンドエフェクタＥＥＴを開放するようにロボットの動作を制御する。
【００４５】
ここで本明細書においてバラ積みピッキングとは、図４Ａに示すような収納容器ＢＸに入れられて無作為に積み上げられたワークＷＫを、ロボットで把持して、所定の位置に載置する他、図４Ｂに示すような収納容器を用いずに所定の領域に積み上げられたワークＷＫに対して把持、載置を行う例、あるいは図４Ｃに示すような所定の姿勢で並べられて積み上げられたワークＷＫを順次把持、載置する例も含む意味で使用する。また、必ずしもワーク同士が積み重ねられている状態であることは要さず、ワーク同士の重なりがない状態で平面上にランダムに置かれたワークについても、本明細書においてはバラ積みと呼ぶ（順次ピッキングされていき、ピッキングの終盤でワーク同士の重なりがない状態となった場合でも依然としてバラ積みピッキングと呼ばれるのと同じ理由である）。
【００４６】
また、図１の例ではセンサ部２を作業空間の上方に固定しているが、作業空間を撮像できる位置であれば足り、例えば斜めや側方、下方など、任意の定位置に配置できる。ただし、アーム部ＡＲＭ上のような、可動する不定位置にセンサ部を配置する態様は除かれる。さらにセンサ部２が有するカメラや照明の数も、一個に限らず複数個としてもよい。さらにまたセンサ部２やロボット、ロボットコントローラ６との接続は、有線接続に限られず、無線接続としてもよい。
【００４７】
またワークの把持とは、図５Ａに示すようにワークＷＫの外側を挟み込む他、図５Ｂに示すような、空洞を有するワークＷＫ２の内部にエンドエフェクタＥＥＴ２の爪部を挿入して拡開させることによって保持する例や、図５Ｃに示すような板状のワークＷＫ３を吸引して保持するエンドエフェクタＥＥＴ３の例を含む意味で使用する。以下では、ワークの把持の例としてワークの外側面を両側から掴む態様について説明する。またワークは、図１に示すように収納容器ＢＸに多数個が収納されて無作為に積み上げられた状態で、このような複数のワークＷＫに対して一つづつ、エンドエフェクタＥＥＴで把持して、載置位置に載置する作業を繰り返すバラ積みピッキング動作における把持位置の設定（ティーチング作業）について、以下説明する。
【００４８】
ロボットシステム１０００でバラ積みピッキング動作を行うにあたり、予めバラ積みピッキング動作を行わせるための設定を含めたティーチングを行う。具体的には、ワークのどの部位を、エンドエフェクタがどのような姿勢で把持するのか、把持位置などの登録を行う。このような設定は、ペンダント等のロボット操作具７で行う。
（ティーチング作業）
【００４９】
上述した把持位置をティーチングする機能を実現するロボット設定装置を含むロボットシステムの機能ブロック図を、図６に示す。この図に示すロボットシステム１０００は、ロボット設定装置１００と、表示部３と、操作部４と、センサ部２と、ロボットＲＢＴを備える。
【００５０】
センサ部２は、作業位置に配置されたワークの三次元形状を三次元計測する。このセンサ部２は、センサ制御部２ｂにより制御される。なお、この例ではセンサ制御部２ｂをセンサ部２と一体に構成しているが、これらを個別に設けてもよい。ロボット部は、アーム部ＡＲＭとエンドエフェクタＥＥＴを備える。このロボットは、ロボット設定装置１００に制御されて、ワークを把持位置で把持して、把持位置に把持する。ここでは、基準姿勢でワークを把持して、基準姿勢で載置する状態を、センサ部２で撮像して登録していく。ここで基準姿勢には、ワークの位置と姿勢が含まれる。
（表示部３）
【００５１】
表示部３は、ワークの三次元形状を仮想的に表現するワークモデルや、エンドエフェクタの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたエンドエフェクタモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させる。なお高さ画像は、高さ情報を有する画像であって、距離画像等とも呼ばれる。さらにこの表示部３は、ワークモデルの基本方向画像を六面図として表示させる六面図表示領域３ａを有している。これにより、ワークモデルの各姿勢を六面図で表示させて、把持位置を設定し易い基本方向画像に対して把持位置の設定作業を行えるようになり、従来面倒であった把持位置の設定作業を容易に行えるようになる。
【００５２】
操作部４は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部３をタッチパネルとすることで、操作部と表示部を一体化することもできる。
（ロボット設定装置１００）
【００５３】
図６のロボット設定装置１００は、入力画像取得部２ｃと、記憶部９と、演算部１０と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。
【００５４】
入力画像取得部２ｃは、センサ部２で測定された複数のワーク及びその周囲の物体を含む画像から三次元形状を有する入力画像を取得する。なお、三次元形状を有する入力画像は、センサ部やセンサ制御部側で構築してもよいし、あるいはロボット設定装置側（例えば入力画像取得部）で構築してもよい。また図６の例では、センサ部２で取得された三次元形状を示す入力画像を、ロボット設定装置１００が取得するための入力インターフェースを構成している。ただ、この構成に限らず、予め撮像されて記録媒体等の記憶部に把持された入力画像を読み出して取得する構成としてもよい。
【００５５】
記憶部９は、各種設定を把持するための部材であり、不揮発性メモリやハードディスク、記憶媒体等が利用できる。この記憶部９は、ワークモデルやエンドエフェクタモデルの把持位置を保存するための把持位置保存部として機能する。
【００５６】
入出力インターフェース４ｂは、キーボードやマウス等の入力デバイスと接続され、データの入力を受け付ける。
【００５７】
表示インターフェース３ｆは、表示部との出力インターフェースを構成し、演算部１０で構築された表示部に表示する画像データを表示するよう制御する。
【００５８】
ロボットインターフェース６ｂは、ロボットコントローラ６との通信インターフェースを構成する。
（演算部１０）
【００５９】
演算部１０は、位置決め部８ｃと、基本方向画像生成部８ｅ’と、基本方向画像選択部８ｅと、サーチモデル選択部８ｉと、ワークモデル登録部８ｔと、サーチモデル登録部８ｇと、エンドエフェクタモデル登録部８ｕと、把持位置特定部８ｄと、エンドエフェクタ取付面設定部８ｆと、回転角度制限部８ｈと、三次元サーチ部８ｋと、三次元ピック判定部８ｌとを備える。
【００６０】
位置決め部８ｃは、表示部３に表示されたワークモデルの位置及び姿勢を、仮想三次元空間上で調整するための部材である。
【００６１】
基本方向画像生成部８ｅ’は、位置決め部８ｃで仮想三次元空間上において位置決めされたワークモデルに対して、この仮想三次元空間上で互いに直交する三軸の各軸方向からそれぞれ見た、少なくとも三つの高さ画像を基本方向画像として生成するための部材である。このように基本方向画像を自動的に生成させることで、ユーザは手動でワークの方向を変えて個別に基本方向画像を取得する必要がなくなり、把持位置の登録作業を省力化できる利点が得られる。
【００６２】
基本方向画像選択部８ｅは、表示部３に表示された少なくとも三つの基本方向画像に対して、見え方が他の基本方向画像と異なる複数の基本方向画像の中からいずれかを選択するための部材である。このように、見え方が共通する面を削除することで、不要な基本方向画像の表示等を排除して、設定作業をより簡素化できる。例えば円柱状のワークの天面と底面のように、見た目が同じ基本方向画像については一方を削除する。基本方向画像選択部８ｅは、表示部３に少なくとも三つの基本方向画像を表示させた状態で、ユーザに手動で選択させるように構成することができる。あるいは、基本方向画像選択部が、少なくとも三つの基本方向画像の内、見え方が共通する基本方向画像を自動で抽出して選択するよう構成してもよい。
【００６３】
サーチモデル選択部８ｉは、サーチモデルとして登録する基本方向画像を選択するための部材である。なお後述する通り、三次元サーチに用いるサーチモデルと、把持位置を特定するモデルとを共通化することで、サーチモデル選択部８ｉと基本方向画像選択部８ｅと共通の画像選択部８ｊで構成できる。
【００６４】
ワークモデル登録部８ｔは、ワークの三次元形状を仮想的に表現するワークモデルを登録するための部材である。ここでは、例えば、ワークモデル登録部８ｔは、実際のワークを撮像した三次元点群データをワークモデルとする。この場合は、センサ部２や入力画像取得部２ｃで取得された三次元点群データを、ワークモデル登録部８ｔでワークモデルとして登録する。あるいは、別途作成したワークの形状を表す三次元ＣＡＤデータを読み込んでワークモデルとして登録する。この場合は、入出力インターフェース４ｂを介して入力された三次元ＣＡＤデータをワークモデル登録部８ｔでワークモデルとして登録する。あるいはまた、ワークを模した三次元ＣＡＤデータを作成して登録してもよい。この場合はワークモデル登録部８ｔが、簡易的な三次元ＣＡＤの機能を実現する。
（サーチモデル登録部８ｇ）
【００６５】
サーチモデル登録部８ｇは、入力画像取得部２ｃで取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いる、ワークの三次元形状を仮想的に表現したサーチモデルを登録するための部材である。このようにサーチモデル登録部８ｇを設けたことで、三次元サーチを行うサーチモデルを、ワークモデルの把持位置を指定する基本方向画像と共通として登録することで、ユーザは設定作業を省力化できる。また実運用時においても、把持できるワークをサーチする基本方向画像毎に、ワークの把持位置を登録することで、把持位置のない基本方向画像をサーチするような無駄を無くし、逆にサーチされた基本方向画像に対して、この基本方向画像に設定された把持位置で把持可能かどうかを検討できるため、効率良く処理を行うことが可能となる。
【００６６】
またサーチモデル登録部８ｇは、基本方向画像選択部８ｅで選択された基本方向画像に対して、三次元サーチ用のサーチモデルとして使用するか否かの選択を行うよう構成することが好ましい。これにより、基本方向画像に対して三次元サーチ用のサーチモデルとして使用するか否かを選択でき、いいかえると不要な基本方向画像を三次元サーチの対象から排除できるので、例えば板状のワークを側面から見た画像と誤検出する可能性がある基本方向画像を排除することで、板状のワークが直立した状態を三次元サーチしないように設定でき、実質的にワークモデルの姿勢に対する制限を簡単に設定することが可能となる。
【００６７】
なおサーチモデル登録部８ｇと、ワークモデル登録部８ｔは、個別に設ける他、これらを統合することもできる。例えば図６のロボットシステム１０００においては、サーチモデル登録部８ｇとワークモデル登録部８ｔを、共通のモデル登録部８ｇ’として統合している。これにより、一のワークに関するモデルを登録することで、把持位置の登録と三次元サーチ用のサーチモデルの登録に共用することが可能となり、設定を簡素化できる利点が得られる。
【００６８】
エンドエフェクタモデル登録部８ｕは、エンドエフェクタの三次元形状を三次元ＣＡＤデータで仮想的に表現したエンドエフェクタモデルを登録するための部材である。
【００６９】
エンドエフェクタ取付面設定部８ｆは、表示部３にエンドエフェクタモデルと、このエンドエフェクタモデルをロボットのアーム部の先端に取り付ける取付面を表示させると共に、この取付面を表示部３に表示させた状態で、この取付面に対するエンドエフェクタモデルの姿勢を規定するための部材である。
【００７０】
回転角度制限部８ｈは、基本方向画像のいずれかを、バラ積みされた複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するためのサーチモデル登録部８ｇと、選択された各サーチモデル毎に、該ワークモデルの回転に対して個別に、許容される回転角度の範囲を設定するための部材である。
（把持位置特定部８ｄ）
【００７１】
把持位置特定部８ｄは、位置決め部８ｃで仮想三次元空間上において位置決めされたワークモデルに対して、この仮想三次元空間上で互いに直交する三軸の各軸方向からそれぞれ見た、少なくとも三つの基本方向画像を表示部３に表示させた状態で、少なくとも何れかの高さ画像に対して、このワークモデルをエンドエフェクタで把持する把持位置を特定するための部材である。この把持位置特定部８ｄは、ワーク側把持箇所指定部８ｄ１と、エンドエフェクタ側把持設定部８ｄ２と、相対位置設定部８ｄ５を備える。
【００７２】
ワーク側把持箇所指定部８ｄ１は、基本方向画像選択部８ｅで選択された複数の基本方向画像を表示部３に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。このワーク側把持箇所指定部８ｄ１は、複数の基本方向画像のそれぞれに対して、複数の把持位置を登録可能に構成している。
（エンドエフェクタ側把持設定部８ｄ２）
【００７３】
エンドエフェクタ側把持設定部８ｄ２は、エンドエフェクタモデルに対して、ワークモデルの把持に関する設定を行う部材である。エンドエフェクタ側把持設定部８ｄ２は、把持基準点設定部８ｄ３と、把持方向設定部８ｄ４を含むことができる。把持基準点設定部８ｄ３は、エンドエフェクタモデルに対して、ワークモデルを把持する位置に対応した把持基準点を規定する。一方把持方向設定部８ｄ４は、エンドエフェクタモデルでワークモデルを把持する把持方向を規定する。これら把持基準点設定部８ｄ３、把持方向設定部８ｄ４は、共通の部材としてもよいし、個別に構成することもできる。また把持基準点設定部８ｄ３、把持方向設定部８ｄ４は、それぞれ把持基準点や把持方向を予め設定された所定値とすることができる。例えば、把持基準点を、エンドエフェクタモデルの先端に設けられた、ワークを挟み込む爪部同士の間の中心とする。また把持方向は、エンドエフェクタモデルを規定するツール座標軸を構成する何れかの座標軸とする。例えばＺ軸方向とすることで、Ｚ軸方向すなわち高さ方向に沿ってエンドエフェクタモデルを移動させて、ワークモデルを把持するために接近させる動作に近付け、ユーザにおいて感覚的に把握し易くできる。あるいは、把持基準点設定部８ｄ３、把持方向設定部８ｄ４は、把持基準点や把持方向を、ユーザにより調整可能としてもよい。
（相対位置設定部８ｄ５）
【００７４】
相対位置設定部８ｄ５は、表示部３に表示されたエンドエフェクタモデルを、ワークモデルに干渉するまで移動させ、干渉位置に至った位置から所定分だけ離間させた姿勢にて把持状態を自動的に規定するための部材である。これにより、ユーザが手動でエンドエフェクタモデルを移動させてワークに接触させることなく、自動でエンドエフェクタモデルを移動させてワークに接触させて、把持位置を示すことが可能となり、ユーザ側に必要な作業を大幅に省力化できる利点が得られる。
（把持位置の登録）
【００７５】
ティーチング作業においては、ワークを把持するときのワークとエンドエフェクタとの位置関係を把持位置として登録することが行われる。以下では、把持の代表例として、エンドエフェクタとしてハンド部を用いて、ハンド部でワークを把持する例について説明する。把持位置を登録した状態で、ロボットビジョンを用いたロボットピッキングの実運用時には、複数のワークがバラ積みされたワーク群の中から、ロボットビジョンで各ワークを検出し、検出されたワークの位置や姿勢に対して、エンドエフェクタ側の把持位置を計算して、計算された位置にエンドエフェクタが位置するようにロボットを動作させて、ピッキングする。ここで、把持位置の登録方法としては、実際にロボットを動作させて登録する方法や、三次元ＣＡＤを用いた仮想三次元空間上でエンドエフェクタモデルを動作させて登録する方法がある。しかしながら、実際にロボットを動作させて把持位置を登録する方法では、実際にロボットを動かせながら手間のかかる登録作業が必要となり、大掛かりな検証環境を要したり、試行錯誤に時間がかかるといった問題があった。一方、三次元ＣＡＤの空間上でロボットを仮想的に動作させて登録する方法では、ロボット不要で登録できる利点があるものの、仮想的なワークモデルの三次元的な姿勢に対し、仮想的なエンドエフェクタモデルの三次元的な姿勢を正確に合致させる必要があり、三次元の座標の位置合わせといった設定が難解であった。またこの方法ではワークとエンドエフェクタの三次元ＣＡＤデータを必須とするため、三次元ＣＡＤデータが手元にない状態では設定できなかった。
【００７６】
そこで本実施形態においては、三次元ＣＡＤモデルの各軸方向から見た高さ画像を基本方向画像として複数表示させ、この中から、ユーザの所望する基本方向画像を選択させて、選択された基本方向画像に対して把持位置を設定することで、仮想三次元空間上での把持登録を容易に行えるようにしている。この結果、ワークを模した三次元ＣＡＤデータのワークモデルを配置した仮想三次元空間上でエンドエフェクタモデルを動作させて登録する際に、仮想三次元空間を規定する各軸方向から見た基本方向画像を選択して把持登録を行うことで、各基本方向画像に対して略垂直方向から見たエンドエフェクタモデルの姿勢を基準に登録することができるため、把持の設定が簡単に行えるようになる。またこの方法によれば、三次元ＣＡＤデータがない場合でも、実際のワークを三次元計測して得られるデータを基本方向画像として用いることができる。このため、三次元ＣＡＤデータがない場合でも、同様の手順で仮想三次元空間上で簡単に把持登録を行うことができる。
（三次元ピック判定部８ｌ）
【００７７】
三次元ピック判定部８ｌは、把持方向設定部８ｄ４で規定した把持方向が、画像表示領域に表示されたワークモデルの姿勢を表すワーク平面に対して直交し、かつこの把持方向に沿うように把持基準点と把持位置を位置させるよう、エンドエフェクタモデルとワークモデルの相対位置を調整するための部材である。これにより、ワークをエンドエフェクタで把持する把持状態をシミュレーションする際、エンドエフェクタモデルでワークモデルを把持する位置の設定作業を容易に行える利点が得られる。特に、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させることで、後はエンドエフェクタモデルを把持方向に沿ってワークモデルに近付けるだけで把持位置を調整できるようになるので、ユーザ側の作業負担が大幅に軽減される利点が得られる。従来はユーザが手動でエンドエフェクタを移動させながら、目視でワークを把持する姿勢に合わせ込む作業を行っており、エンドエフェクタの位置や姿勢をどのように調整するのか、パラメータが多く自由度が大きいことから、極めて繁雑な作業となっていた。これに対して、予めエンドエフェクタモデル側に把持基準位置と把持方向を規定し、把持方向がワーク平面と直交し、かつ把持方向の軸上に、エンドエフェクタモデルの把持基準点とワークの把持位置とが位置するように設定することで、エンドエフェクタモデルの移動方向が規定され、ユーザはエンドエフェクタモデルとワークモデルとの距離のみを調整することで把持状態を得ることができるようになる。この結果、従来極めて煩雑であったエンドエフェクタモデルとワークモデルとの把持位置の摺り合わせ作業の大幅な省力化が期待できる。
【００７８】
このようなエンドエフェクタモデルとワークモデルの相対位置を、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させるよう調整する作業は、三次元ピック判定部８ｌにより自動で行わせることが好ましい。これにより、予めエンドエフェクタモデル側に把持基準位置と把持方向を規定し、把持方向がワーク平面と直交し、かつ把持方向の軸上に、エンドエフェクタモデルの把持基準点とワークの把持位置とが位置するように自動調整することで、エンドエフェクタモデルの移動方向が規定され、ユーザはエンドエフェクタモデルとワークモデルとの距離のみを調整することで把持状態を得ることができるようになる。この結果、従来極めて煩雑であったエンドエフェクタモデルとワークモデルとの把持位置の摺り合わせ作業の大幅な省力化が期待できる。
【００７９】
ただ、必ずしも三次元ピック判定部による自動調整に限らず、例えば位置決め部８ｃでもってユーザが手動で把持方向をワーク平面と直交させ、かつ把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させる調整を行う際に、三次元ピック判定部がこのような調整作業を支援するように構成してもよい。例えば、第一段階としてワーク平面と把持方向を画像表示領域に表示させた状態で、これらが直交するように補助線をユーザに示したり、文字や画像でもって「ワーク平面に把持方向が直交するように、エンドエフェクタモデルを調整してください。」等と表示させて、ユーザに調整作業を促すように構成してもよい。さらに第二段階として、把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させるよう、把持方向の延長線を画像表示領域に表示させ、「把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させるよう、調整してください。」等のメッセージを表示させて、設定を促すように三次元ピック判定部が誘導することもできる。
【００８０】
また三次元ピック判定部８ｌでもって、フィット機能を実現することもできる。例えば三次元ピック判定部８ｌが、エンドエフェクタモデルとワークモデルの相対位置を、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させた状態で、エンドエフェクタモデルを把持方向に沿ってワークモデルに干渉するまで移動させ、干渉位置に至った位置から所定分だけ離間させた姿勢にて把持状態を自動的に規定するよう構成できる。これにより、エンドエフェクタモデルでワークモデルを把持する位置及び姿勢に自動で調整することが可能となり、ユーザ側の作業負担を一層軽減できる利点が得られる。
（三次元サーチ部）
【００８１】
三次元サーチ部は、入力画像中から、サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行うための部材である。三次元サーチに先立ち、サーチモデル登録部でもって、複数のワーク群をバラ積みした状態を示す入力画像中から、この入力画像に含まれる各ワークの姿勢と位置を特定する三次元サーチを行う際に用いる、ワークの三次元形状を仮想的に表現したサーチモデルを予め登録しておく。この状態で三次元ピック判定部８ｌが、三次元サーチ部でサーチされた入力画像中のサーチ結果に対して、ワーク側把持箇所指定部でこのワークに対して指定された把持位置において、エンドエフェクタで把持可能か否かを判定する。例えば入力画像取得部で、センサ部で測定された複数のワーク群の画像から三次元形状を有する入力画像を取得し、この入力画像中から、三次元サーチ部で、サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行う。これにより、実際にワークを撮像して取得した入力画像に対して、三次元サーチを行うことが可能となり、より実情に即した把持判定を行えるようになる。
（サーチモデル）
【００８２】
バラ積みピッキングにおいては、バラ積みされた複数のワーク群の中から、把持可能なワークを決定するために、まずワーク単位で抽出する必要がある。ここでは、センサ部で得られた高さ情報を有するワーク群の形状に対して、予め検索対象のワークの形状をワークモデルとして登録しておき、このワークモデルで三次元サーチを行い、ワーク毎に位置及び姿勢を検出する。
（基本方向画像）
【００８３】
ワークを三次元サーチするためのサーチモデルは、ワークを特定の方向から見たときの高さ画像を用いて作成する。サーチモデルとして用いる高さ画像は、ワークを三次元的に表現したワークモデルである三次元ＣＡＤデータや、センサ部で実際にワークを撮像した実測データが利用できる。ここでは、三次元ＣＡＤデータをサーチモデルとして登録する例について説明する。例えば、図７のような三次元ＣＡＤデータで構築されたワークモデルＣＷＭを、サーチモデルとして使用する場合を考える。このワークモデルＣＷＭから、仮想三次元空間上で互いに直交する三軸（例えばＸ軸、Ｙ軸、Ｚ軸）の各軸方向の正方向、負方向からそれぞれ見た６枚の高さ画像、すなわち六面図を、基本方向画像として取得する。例えば図６の基本方向画像生成部８ｅ’が、６枚の基本方向画像を生成して、表示部３の六面図表示領域３ａに表示させる。６枚の基本方向画像は、例えばワークモデルＣＷＭの「上」、「下」、「左」、「右」、「前」、「後」、すなわち平面図、底面図、左側面図、右側面図、正面図、背面図となるように、基本方向画像生成部８ｅ’が自動的にワークモデルＣＷＭの原点（詳しくは後述）やワークモデルＣＷＭを構成する面から演算する。ここで「上」はＺ軸の正方向（＋側）から見た高さ画像、「下」はＺ軸の負方向（−側）から見た高さ画像、「左」はＸ軸の負方向から見た高さ画像、「右」はＸ軸の正方向から見た高さ画像、「前」はＹ軸の負方向から見た高さ画像、「後」はＹ軸の正方向から見た高さ画像を、それぞれ示している。ただ、これらは一例であって、異なる座標系を用いてもよいし、Ｘ−Ｙ平面におけるＸ＝Ｙの直線を軸として、この軸と互いに直交する座標系に基づいて、各軸の正負方向から見た高さ画像を用いてもよい。また、三次元ＣＡＤデータから、高さ画像を生成する際、必ずしもＣＡＤの軸に直交した方向（「上」、「下」、「左」、「右」、「前」、「後」）から見た高さ画像である必要はなく、例えばワークモデルの姿勢（視点）を任意に変えて、変えた状態の視点から高さ画像を生成するようにしても良い。
（ワークモデルの原点）
【００８４】
ここでワークモデルの原点は、三次元ＣＡＤデータが有する座標情報から、ロボット設定装置が自動的に決定する。例えば図７のワークモデルＣＷＭの三次元ＣＡＤデータに対して、図８において破線で示すように、ワークモデルＣＷＭに外接する仮想直方体ＩＢＸを規定し、この仮想直方体ＩＢＸの重心をワークモデルの原点Ｏとして設定する。
（基本方向画像選択部８ｅ）
【００８５】
なお基本方向画像は必ずしも６枚とする必要はなく、少なくとも複数枚あれば足りる。例えば、直方体のように対向する面が同じ形状であれば、いずれか一方の面から見た基本方向画像で足りる。いいかえると、同じ形状になる基本方向画像を排除して、三次元サーチの処理負荷を低減できる。このような、見え方がいずれかの基本方向画像と共通する基本方向画像を削除する機能は、基本方向画像選択部８ｅにより実現される。一例として、図７のワークモデルＣＷＭから取得した基本方向画像を図９Ａ〜図９Ｄに示す．これらの図において、図９Ａは図７のワークモデルＣＷＭをＸ軸の正方向から見た高さ画像であり、図９ＢはＹ軸の正方向から見た高さ画像であり、図９ＣはＺ軸の正方向から見た高さ画像であり、図９ＤはＺ軸の負方向から見た高さ画像である。ここでは高さ画像として、高さが高い点ほど明るく、低い点ほど暗くなるように、高さ情報を輝度値として表現した高さ画像を用いている。
【００８６】
ここで、見え方の一致／不一致は、ワークの上下（Ｚ軸の±方向）、前後（Ｙ軸の±方向）、左右（Ｘ軸の±方向）から見た、計六面の高さ画像を生成し、一致確認を行うことで確認する。ここでは９０°の刻み角度で回転一致を確認し、他の面と一致する見え方となる面は、サーチモデルの登録対象から除外する。図７のワークモデルＣＷＭにおいては、Ｘ軸の負方向から見た高さ画像と、Ｙ軸の負方向から見た高さ画像は、見え方がそれぞれ図９Ａ、図９Ｂと一致する状態になるため、サーチモデル生成の対象から除外される。このようにして、見え方が異なる面数分、サーチモデルが生成される。このようにして不要な高さ画像を除外した基本方向画像を、六面図表示領域３ａに表示させる。なお六面図表示領域とは、その名称に限らず、必ずしもワークモデルの六面すべてを表示させる必要はなく、上述の通り見え方の共通する高さ画像を不要画像として排除し、五面以下で表示させる態様も含めて本明細書では六面図表示領域と呼ぶ。
（サーチモデル登録画面１３０）
【００８７】
また、このような除外は、ユーザが手動で行うこともできるし、ロボット設定装置側で自動で行わせてもよいし、あるいはこれらを組み合わせてもよい。
【００８８】
例えば、図１０に示す三次元サーチのサーチモデルとして基本方向画像ＢＤＩを登録するサーチモデル登録画面１３０において、基本方向画像生成部８ｅ’が自動的に六面図に相当する基本方向画像ＢＤＩを生成し、表示部３の六面図表示領域３ａに表示させる。この際、共通する基本方向画像が存在する場合は、サーチモデルの登録対象から排除するようユーザに促す。ここでは、サーチモデルの登録可否を設定するサーチモデル選択部８ｉとして、サーチモデルの候補となる基本方向画像ＢＤＩに対して、それぞれ「登録対象」チェックボックス１３１を設けている。ユーザは「登録対象」チェックボックス１３１をＯＮにすると、この基本方向画像ＢＤＩをサーチモデルとして登録し、「登録対象」チェックボックス１３１をＯＦＦにすると、この基本方向画像をサーチモデルから除外することができる。
【００８９】
この際、見え方が共通する基本方向画像については、基本方向画像選択部８ｅによって、予め「登録対象」チェックボックス１３１をＯＦＦにした状態でユーザにサーチモデル登録画面１３０を表示させる。ユーザは、初期状態としてサーチモデルに登録すべき基本方向画像ＢＤＩ、及びサーチモデルから排除すべき基本方向画像が正しく選択されていることを確認した上で、この選択を承認したり、必要に応じて修正や入れ替えを行うことができる。このように、デフォルトで三次元サーチのサーチモデルとして登録すべき基本方向画像を選択し、かつ登録から排除すべき基本方向画像の候補を提示させることで、ユーザによるサーチモデルの登録作業を省力化できる。
（実測データＭＷＭ）
【００９０】
以上は、三次元サーチのサーチモデルとして三次元ＣＡＤデータを用いる例を説明した。ただ本発明は上述の通り、サーチモデルを必ずしも三次元ＣＡＤデータに限定せず、例えば複数の二次元ＣＡＤデータを解析して三次元データ化したものを用いたり、あるいはセンサ部で実際にワークを撮像した実測データを、サーチモデルとして利用することもできる。一例として、図７のワークモデルＣＷＭに対応するワークをＸ軸の正方向から撮像した実測データＭＷＭを、図１１に示す。このように、ワークのＣＡＤデータがない場合は、実ワークを三次元計測したデータを用いることも可能である。図１０で示したように、三次元サーチに必要な数の実測データＭＷＭを撮像して登録していく。
【００９１】
なお、実ワークを登録する場合は、ワークを置いた底面の情報（例えばワーク周辺の床の形状）も三次元計測されることになる。そこで、例えば底面から一定以上の高さの箇所のみをしきい値処理で切り出す等して、不要な底面の情報を除外することが好ましい。これによって、三次元サーチに必要な形状部分のみを登録することが可能となる。
（特徴点の抽出）
【００９２】
次に、このようにしてサーチモデルの対象となるワークの各面に相当する高さ画像を登録した状態で、登録された面のサーチモデルを生成する。ここでは、登録された各面毎に、三次元サーチに必要な特徴点を抽出する。ここでは特徴点として、形状の輪郭を現す特徴点（輪郭上の特徴点）と、表面形状を表す特徴点（表面上の特徴点）の、２種類の特徴点を用いる例を説明する。図１２Ａに、Ｘ軸方向から見た高さ画像（図９Ａに相当）のサーチモデルＳＭに対して、２種類の特徴点を抽出した状態を示す。またこのサーチモデルＳＭを斜視図で表示した状態を図１２Ｂに示す。ここで表面上の特徴点ＳＣＰと輪郭上の特徴点ＯＣＰは、表示態様を変えて表示させることが好ましい。例えば表面上の特徴点ＳＣＰを白色で、輪郭上の特徴点ＯＣＰを水色で表示させる。あるいは、表面上の特徴点の白と、より区別がつきやすいように紫色で表示する等、他の配色としても良い。このように色を変えて特徴点を表示させることで、ユーザは各特徴点の意味合いを視覚的に区別することが容易となる。
【００９３】
表面上の特徴点ＳＣＰは、例えばワークモデルの表面を一定間隔で抽出する。一方、輪郭上の特徴点ＯＣＰは、例えば高さが変化する箇所等のエッジ抽出を行って、さらに細線化処理した箇所を、一定間隔で特徴点として抽出する。このように、各特徴点は、面の三次元的な形状を表す特徴となっている。
（三次元サーチ方法）
【００９４】
このようにして特徴点を抽出したサーチモデルを用いて、三次元サーチを行う。ここで、入力画像として、図１３Ａや図１３Ｂに示すように複数のワークをバラ積みしたワーク群を撮像して三次元形状を取得した状態から、ワーク別に抽出するために三次元サーチを行う方法について説明する。まずサーチモデルの各特徴点が、最も一致する状態の、位置及び姿勢（Ｘ、Ｙ、Ｚ、ＲX、ＲY、ＲZ）を、入力画像の中から探索する。ここでＲX、ＲY、ＲZは、それぞれＸ軸に対する回転角、Ｙ軸に対する回転角、Ｚ軸に対する回転角を表す。このような回転角度の表現方法は種々提案されているところ、ここではＺ−Ｙ−Ｘ系オイラー角を用いる（詳細は後述）。また一致する位置及び姿勢は、各サーチモデルに対して、一つである必要はなく、一定以上一致する位置及び姿勢を、複数検出しても良い。
【００９５】
ここでは入力画像として、図１３Ａのような二次元表示、あるいはこれを三次元表示させた図１３Ｂのようなワーク群に対して、三次元サーチを行い、入力画像全体を探索する。この結果、図１３Ｃのような二次元表示、あるいはこれを三次元表示させた図１３Ｄに示すようなサーチ済み画像が三次元サーチ結果として得られる。図１３Ｃ、図１３Ｄに示すように、サーチモデルの特徴点が入力画像中から検索されて、サーチモデルと対応するワークが検出されていることが判る。図１３Ｄにおいては、サーチモデルＡとサーチモデルＢのサーチ結果が得られている様子を示している。これらサーチモデルＡ、サーチモデルＢは、後述する図１４のサーチモデル選択欄で表示されたサーチモデルＡ、Ｂと対応している。なお図１３Ｄの右側のワークＷＫについては、同じワークでサーチモデルＡ、Ｂの２つのサーチ結果が得られている。よって、各サーチモデルに登録された把持位置での把持が可能であれば、複数の把持位置がこのワークでは得られていることになる。
【００９６】
このように三次元サーチに用いるサーチモデルとして、ワークを六面図のように、面ごとに見た画像を用いることで、斜視図などを用いる場合と比べ、三次元サーチの演算処理を簡素化でき、処理を軽負荷、高速化できる利点が得られる。また、サーチモデルの登録作業に際しても表示された状態が見易くなり、ユーザにも視覚的に判り易くできる。
（三次元サーチ結果の評価指標）
【００９７】
さらに、三次元サーチ結果の評価指標を設定することもできる。例えば図１３Ｃや図１３Ｄに示す例において、対応する特徴点が、入力画像中に対してどの程度存在したか（例えばサーチ結果に対し、一定の距離以下の誤差で対応した特徴点の点数割合や、規定の計算式により特徴点の誤差量をペナルティとして減点した値などによって、三次元サーチ結果をスコア付けする。この方法では、三次元計測できなかった無効データ（無効画素）が多い状態では、スコアが低くなる。このようにスコアを、三次元サーチ結果の信頼性を表す指標として用いることができる。例えば、スコアが高い順に、優先的にワークを把持するように設定できる。また、一定のスコア以下の三次元サーチ結果は、誤検出している可能性が高いと判断して、ワークの把持対象から外すように設定してもよい。例えば図６のロボット設定装置１００において演算部１０に評価指標演算部８ｑを設け、所定の基準に基づいてサーチ結果に対して評価指標を演算する。これにより、評価指標の高いサーチ結果から順に優先順位を設定し、この優先順位に従いワークを把持するように設定することができる。例えば、一定のスコア以上の結果の中で、Ｚ方向の位置が最も高いものから優先的に把持するように設定することができる。Ｚ方向の位置が高いものほど、他のワークと干渉しにくい特性があるため、Ｚ方向の位置が最も高いものから優先的に把持するように設定することで、干渉判定の処理負荷を下げる効果を得られる。
【００９８】
このようにしてバラ積みされたワーク群から、ワーク毎に検出することで、把持対象のワークをロボット設定装置側で認識できるようになる。次に、ワークをエンドエフェクタで把持するためには、ワーク毎に、ワークのどの位置をどのような姿勢で把持するかを認識させる必要がある。このため、ワークの把持位置を登録する。なお本明細書では、「把持位置」、「把持姿勢」の登録というとき、ワークを把持する位置と、そのときの姿勢を含む意味で使用する。ワークの把持位置は、ワークに対して一箇所以上を登録できる。また、把持位置の登録は、ワークの面単位で行うことで、把持登録の作業の容易性や把持位置の認識の点で好ましい。すなわちワークの姿勢を、特定の面を上面とした姿勢に規定した上で、把持位置を登録する。
（把持登録画面１４０）
【００９９】
ここで、エンドエフェクタモデルがワークモデルを把持する把持位置を登録する把持登録を行うユーザインターフェース画面の例を、図１４、図１５に示す。把持登録画面１４０では、ワークモデルの登録する面を指定し、各面に対し、把持姿勢を登録する。図１４の例では、４種類の面（サーチモデルの各面）を指定して、把持姿勢を登録するユーザインターフェース画面を示している。ここではＡ〜Ｄのサーチモデルの内、サーチモデル「Ｃ」を選択しており、このサーチモデルＣには３つの把持姿勢が表示されている。
【０１００】
図１４の把持登録画面１４０では、左側に画像を表示させるための画像表示欄１４１、右側に各種の操作を行うための操作欄１４２を設けている。画像表示欄１４１には、ワークモデルＣＷＭとエンドエフェクタモデルＥＥＭが表示される。画像表示欄１４１の画面をドラッグすることで、視点を変更できる。このように、表示領域に表示されたワークモデルの位置や姿勢を、仮想三次元空間上で調整する位置決め部８ｃとして機能する。また画像表示欄１４１の表示態様を、二次元的な表示や三次元的な表示に切り替えることもできる。現在の表示態様を判り易く示すため、画像表示欄１４１には三次元の基準座標軸ＢＡＸを重ねて表示している。図１４の例では、画像表示欄１４１には、操作欄１４２で選択されている把持姿勢００１に登録された把持姿勢、すなわちワークモデルＣＷＭの一部をエンドエフェクタモデルＥＥＭで把持する様子が表示されている。なお、この例ではエンドエフェクタモデルＥＥＭの全体を表示させているが、把持登録に際しては必ずしもエンドエフェクタモデルの全体を表示させる必要はなく、少なくともワークモデルＣＷＭを把持する部位、例えば爪部を表示させれば足りる。
【０１０１】
また操作欄１４２には、サーチモデルを選択するためのサーチモデル選択欄１４３、及びサーチモデル選択欄１４３で選択されたサーチモデルに対して登録されている把持姿勢を示す把持姿勢表示欄１４４が設けられている。サーチモデル選択欄１４３で一覧表示された把持姿勢を選択すると、これに対応する登録済みの把持姿勢が、画像表示欄１４１に表示される。また、編集ボタン１４５を押下すると、登録済みの把持姿勢を修正することが可能となる。さらに操作欄１４２には、把持姿勢を追加する追加ボタン１４６や、登録済みの把持姿勢を削除する削除ボタン１４７が設けられている。削除ボタン１４７を押すと、選択されている把持姿勢が削除される。
（把持姿勢追加画面１５０）
【０１０２】
把持姿勢を新たに追加したい場合は、追加ボタン１４６を押す。これによって図１５に示すように把持姿勢追加画面１５０が表示され、把持姿勢を追加することが可能となる。画像表示欄１４１にはエンドエフェクタモデルＥＥＭとワークモデルＣＷＭが表示される。また操作欄１４２には、把持姿勢を規定する把持姿勢座標情報１５３が表示される。ここで、把持姿勢座標情報１５３として表示される位置パラメータであるＸ、Ｙ、Ｚ、ＲX、ＲY、ＲZは、サーチモデルの原点に対する、エンドエフェクタモデルＥＥＭの位置及び姿勢のデータを表している。なおサーチモデルの原点は、上述の通りワークモデルＣＷＭの重心や、ＣＡＤデータの中心座標などとできる。
【０１０３】
把持姿勢座標情報１５３のＸ、Ｙ、Ｚ、ＲX、ＲY、ＲZの値を変更すると、画像表示欄１４１で三次元的に表示されているエンドエフェクタモデルＥＥＭの位置及び姿勢がこれに応じて更新される。逆に、画像表示欄１４１のエンドエフェクタモデルＥＥＭをドラッグして移動させることで、操作欄１４２における把持姿勢座標情報１５３の表示内容が移動後の把持姿勢座標に更新される。これにより、ユーザは画像表示欄１４１のエンドエフェクタモデルＥＥＭと、操作欄１４２の把持姿勢座標情報１５３を確認しながら、把持位置及び姿勢を登録することができる。また画像表示欄１４１には、三次元の基準座標軸ＢＡＸを重ねて表示することができる。
【０１０４】
把持位置の登録に際して、画像表示欄１４１に表示されるエンドエフェクタモデルＥＥＭに対して、ワークモデルＣＷＭを把持する位置に対応した把持基準点と、エンドエフェクタモデルＥＥＭでワークモデルＣＷＭを把持する把持方向を規定する。これら把持基準点と把持方向は、ロボット設定装置１００側でデフォルト値として設定しておくことが好ましい。そして、図１５の把持姿勢追加画面１５０において、把持方向が、ワークモデルＣＷＭの姿勢を表すワーク平面に対して直交するように、ワークモデルＣＷＭの位置及び姿勢に応じて、エンドエフェクタモデルＥＥＭの位置及び姿勢を自動的に調整する。この調整は、例えば三次元ピック判定部８ｌに行わせることができる。あるいは、ユーザが位置決め部８ｃを用いて、エンドエフェクタモデルＥＥＭの把持方向が、ワークモデルＣＷＭのワーク平面と直交するように、エンドエフェクタモデルＥＥＭの位置及び姿勢を手動で調整するように構成してもよい。
【０１０５】
さらに把持位置の登録に際して、図１５の把持姿勢追加画面１５０を開いた初期状態において、エンドエフェクタモデルＥＥＭの位置及び姿勢は、エンドエフェクタモデルＥＥＭを下向きの姿勢として、ワークモデルＣＷＭがエンドエフェクタモデルＥＥＭの下方に位置する状態を初期値としている。このようにすれば、エンドエフェクタモデルＥＥＭを降下させてワークモデルＣＷＭに接触させるようにすれば把持姿勢が決まるため、ユーザ側の操作を直感的に行うことができ、従来、三次元での位置合わせが面倒であった問題を低減できる。すなわち、基本的にエンドエフェクタモデルＥＥＭのＸ、Ｙ、Ｚ方向の位置合わせと、Ｚ軸に対する回転を設定するのみで、簡単に把持姿勢を登録できる。
【０１０６】
さらにまた、ワークモデルＣＷＭに対して、エンドエフェクタモデルＥＥＭで把持する把持位置を設定することで、この把持位置が把持方向を延長した軸上に位置するよう、エンドエフェクタモデルＥＥＭの位置を自動的に調整するよう構成することもできる。
【０１０７】
なお、把持姿勢の登録は、ワークの画像を基準に行う。このため、必ずしもＣＡＤデータを用いる必要はなく、ワークを実際に撮像して得られた実測データに対し、把持姿勢を登録することもできることは上述の通りである。
（フィット機能）
【０１０８】
さらに、把持位置を指定する際、エンドエフェクタモデルをワークモデルの把持位置に移動させる作業をユーザが手動で行うのみならず、これを自動的に行うフィット機能を設けることもできる。従来、エンドエフェクタモデルでワークモデルを把持する把持位置Ｘ、Ｙ、Ｚや把持姿勢ＲX、ＲY、ＲZを指定する際、例えば図１５の画像表示欄１４１において、エンドエフェクタモデルをドラッグしてワークモデルに接触するまで移動させたり、操作欄１４２において高さ方向のＺに数値を入力したりして設定していた。しかしながら、ユーザが目視によりエンドエフェクタモデルを移動させてワークモデルを把持する姿勢に合わせ込む作業は面倒であり、また位置パラメータの数値を指定するのも、６つの位置パラメータをどのように調整すればよいのかが判り難い。そこで、エンドエフェクタモデルをワークモデルの把持位置に位置させる作業を自動的に行うフィット機能を設けている。
【０１０９】
ここで、ワークモデルやエンドエフェクタモデルが三次元ＣＡＤデータのように高さ情報を有している場合は、ワークモデル上の把持させたい位置をマウスのクリック等により指定し、この位置の高さ方向、すなわちＺ座標を取得し、そのＺ座標にオフセットを加味した位置を、エンドエフェクタモデルの移動後のＺ座標として設定する。これによって、把持位置までエンドエフェクタモデルをユーザが手動で移動させたり、Ｚ座標などの位置パラメータを手動で入力させる手間を省き、しかも正確に把持位置を指定することができる。このようなフィット機能の一例として、図１５の把持姿勢追加画面１５０に示す操作欄１４２には、相対位置設定部８ｄ５の一態様である「フィット」ボタン１５４を配置している。「フィット」ボタン１５４を押下すると、エンドエフェクタモデルＥＥＭがＺ方向に仮想的に移動されて、ワークモデルＣＷＭに接触する位置で停止され、この干渉位置から逆方向に、オフセット量だけ戻した位置を、把持位置とする。オフセット量は、エンドエフェクタモデルＥＥＭの先端がワークモデルＣＷＭと接触して干渉したり傷付けることを避けるため、若干離間させるための数値であり、例えば１ｍｍなど、ワークや用途に応じて規定できる。
【０１１０】
以上の例では、三次元サーチを行うための三次元サーチモデル生成の際に用いた高さ画像を用いて、把持登録を行う方法を説明した。このようにワークを抽出するためのサーチモデルと、把持位置を登録するモデルとを共通化することで、ユーザは共通のワークに対して三次元サーチや把持位置の設定を行うことができ、操作に統一感が得られ感覚的にも理解し易くなる。ただ、本発明は必ずしも、三次元サーチのサーチモデルと把持登録の対象となるモデルとを一致させることを要しない。三次元サーチモデルと、把持登録に用いるモデルとの対応関係が判っておれば、必ずしもサーチモデルとして用いたモデルを把持登録に用いる必要はない。
【０１１１】
また、三次元ＣＡＤデータから高さ画像を生成した後の、見え方の一致確認は、各軸の正負方向同士の確認のみに限定する必要はない。例えば、立方体等のワークは、Ｘ軸の±方向、Ｙ軸の±方向、Ｚ軸の±方向の、どの方向から見ても見え方が一致するため、１つの面のみ、サーチモデルを生成すれば良い。同様に、把持位置の登録も、１つの面に対して把持を指定するだけで足りる。これだけで、全ての面（Ｘ軸の±方向、Ｙ軸の±方向、Ｚ軸の±方向）に対して、把持できる状態になる。例えば、図１６Ａに示すような立方体状のワークＷＫＣのバラ積みに対しては、立方体の１面を、図１６Ｂのようにモデル登録し、この面を真上から掴む把持姿勢を１つ登録するだけで、図１６Ｃに示すように六面全ての面に対する三次元サーチ及びエンドエフェクタモデルＥＥＭによる把持が可能となる。
（キャリブレーション）
【０１１２】
上述した把持登録画面１４０では、サーチモデルの原点に対して、ワークを把持する際のエンドエフェクタモデルＥＥＭの相対的な位置及び姿勢を登録している。一方、実際のエンドエフェクタでワークをピッキングする際には、センサ部でワークを撮像した三次元空間（ビジョン空間）の座標であるビジョン座標から、ロボットコントローラ６がロボットを実際に駆動させる際に用いるロボット座標に変換する必要がある。具体的には、三次元サーチの結果得られるワークの位置及び姿勢は、ビジョン空間における、位置（Ｘ、Ｙ、Ｚ）と姿勢（ＲX、ＲY、ＲZ）で求められる（なお姿勢（ＲX、ＲY、ＲZ）は、後述するＺ−Ｙ−Ｘ系オイラー角で表現された姿勢を示している）。また、これを把持するエンドエフェクタの姿勢についても、同様にロボット設定装置の仮想三次元空間における位置（Ｘ、Ｙ、Ｚ）と姿勢（ＲX、ＲY、ＲZ）として求められる。このようなビジョン空間における位置及び姿勢に基づいて、ロボットコントローラ６がロボットを駆動させるには、これらをロボット空間における位置（Ｘ’、Ｙ’、Ｚ’）と姿勢（ＲX’、ＲY’、ＲZ’）に変換する必要がある。このようなロボット設定装置で表示される座標系で算出された位置及び姿勢を、ロボットコントローラがエンドエフェクタを動作させる座標系の位置及び姿勢に座標変換するための変換式を算出する処理は、キャリブレーションと呼ばれる。
（実施形態２）
【０１１３】
このようなロボット設定装置（マシンビジョン装置）とロボット間のキャリブレーション機能を備えるロボットシステムの例を、実施形態２として図１７の機能ブロック図に示す。この図に示すロボットシステム２０００は、ロボット設定装置２００と、表示部３と、操作部４と、センサ部２と、ロボットコントローラ６と、ロボットＲＢＴを備える。なおこの図に示すロボットシステムにおいて、上述した図６等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
（ロボット設定装置２００）
【０１１４】
ロボット設定装置２００は、入力画像取得部２ｃと、記憶部９と、演算部１０と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。
【０１１５】
入力画像取得部２ｃは、センサ部で測定されたエンドエフェクタを含む画像から三次元形状を有する入力画像を取得する。この入力画像取得部２ｃで、エンドエフェクタの入力画像を取得する際、ロボットのアーム部の先端のフランジ面に取り付けた取付位置を含むように撮像することが好ましい。また、エンドエフェクタの面積が大きくなる姿勢で入力画像を撮像する。例えば、エンドエフェクタを水平姿勢として横向きの姿勢から入力画像を撮像するよう、ユーザはロボットを操作する。
【０１１６】
演算部１０は、エンドエフェクタモデル登録部８ｕと、ワークモデル登録部８ｔと、キャリブレーション部８ｗと、サーチモデル登録部８ｇと、三次元サーチ部８ｋと、変換部８ｘと、エンドエフェクタ取付位置較正部８ｙと、把持位置特定部８ｄとを備える。
【０１１７】
エンドエフェクタモデル登録部８ｕは、エンドエフェクタの三次元形状を仮想的に表現する、三次元ＣＡＤデータであるエンドエフェクタモデルを登録するための部材である。例えばエンドエフェクタモデル登録部８ｕは、別途作成したエンドエフェクタの形状を表す三次元ＣＡＤデータを読み込んでエンドエフェクタモデルとして登録する。この場合は、入出力インターフェース４ｂを介して入力された三次元ＣＡＤデータを、エンドエフェクタモデル登録部８ｕでエンドエフェクタモデルとして登録する。あるいは、実際のエンドエフェクタを撮像した三次元点群データをエンドエフェクタモデルとすることもできる。この場合は、センサ部２や入力画像取得部２ｃで取得された三次元点群データを、エンドエフェクタモデル登録部８ｕでエンドエフェクタモデルとして登録する。あるいはまた、エンドエフェクタを模した三次元ＣＡＤデータを作成して登録してもよい。この場合はエンドエフェクタモデル登録部８ｕが、簡易的な三次元ＣＡＤの機能を実現する。
【０１１８】
キャリブレーション部８ｗは、表示部上で表示される仮想的な三次元空間であるビジョン空間の座標系で算出された位置及び姿勢を、ロボットコントローラがエンドエフェクタを動作させるロボット空間の座標系の位置及び姿勢に座標変換するキャリブレーション情報を取得するための部材である。
【０１１９】
キャリブレーション部８ｗは、複数の位置座標について、ロボットのエンドエフェクタＥＥＴの実際の位置座標と、ロボット設定装置に表示されている画像上の位置座標との間の変換式を算出する。なお座標変換の方法は、特に限定されるものではなく、例えば三次元アフィン変換等、既知の方法を適宜利用できる。
【０１２０】
記憶部９は、キャリブレーション部８ｗによるキャリブレーション情報を保存する。
【０１２１】
三次元サーチ部８ｋは、入力画像取得部２ｃで取得された入力画像中から、エンドエフェクタモデルをサーチモデルとして、エンドエフェクタの位置及び姿勢に対応する画像領域を特定する三次元サーチを行うための部材である。
【０１２２】
変換部８ｘは、キャリブレーション部８ｗで得られたキャリブレーション情報に基づいて、ビジョン座標をロボット座標に変換する。この変換部８ｘは、記憶部９に保存されたキャリブレーション情報を読み出す。
【０１２３】
エンドエフェクタ取付位置較正部８ｙは、三次元サーチ部でサーチされたビジョン空間上のエンドエフェクタの位置及び姿勢を、変換部８ｘでロボット空間上の位置及び姿勢に変換して得られた情報でもって、エンドエフェクタのビジョン空間上の位置及び姿勢とロボット空間上の位置及び姿勢との誤差を較正する。これにより、エンドエフェクタモデルを用いて三次元サーチすることで、仮想的なエンドエフェクタモデルを実際のエンドエフェクタの取付状態に即して誤差を補正することが可能となり、より正確な設定作業を行えるようになる。
【０１２４】
把持位置特定部８ｄは、ワークモデル登録部８ｔで登録されたワークモデルに対して、該ワークモデルをエンドエフェクタモデルで把持する把持位置を一以上、特定する。
（Ｚ−Ｙ−Ｘ系オイラー角）
【０１２５】
ここで、Ｚ−Ｙ−Ｘ系オイラー角について説明する。従来より、ワークをエンドエフェクタで把持する把持位置を規定するために、三次元ＣＡＤデータをワークモデルやエンドエフェクタモデルの姿勢の位置決めにＺ−Ｙ−Ｘ系オイラー角が用いられている。この場合、ワークモデルに対するエンドエフェクタモデルの位置及び姿勢は６つの位置パラメータ（Ｘ，Ｙ，Ｚ，ＲX，ＲY，ＲZ）で表現される。ここでＸ、Ｙ、Ｚは三次元空間を規定する直交座標軸であり、ＲX、ＲY、ＲZはそれぞれＸ軸、Ｙ軸、Ｚ軸を中心として回転させる回転角度を示している。
【０１２６】
ここで、Ｚ−Ｙ−Ｘ系オイラー角に従ってエンドエフェクタモデルを回転させる例を、図１８〜図２１に基づいて説明する。まず図１８に、表示部３の画像表示領域にエンドエフェクタモデルＥＥＭとワークモデルＷＭ１１を表示させた状態を示す。この例では、説明を判り易くするため、仮想三次元空間を規定する基準座標軸ＢＡＸ（ＸＹＺ）と、回転させる回転対象物（ここではエンドエフェクタモデルＥＥＭ）が回転した後の三次元空間座標軸である回転済み座標軸ＲＡＸ（ＸＹＺ）を、それぞれ表示させている。
【０１２７】
図１８の例では、ワークモデルＷＭ１１側を静止させ、エンドエフェクタモデルＥＥＭ側を回転させているため、基準座標軸ＢＡＸはワークモデルＷＭ１１の位置及び姿勢を、回転済み座標軸ＲＡＸはエンドエフェクタモデルＥＥＭの位置及び姿勢を、それぞれ示している。なお、エンドエフェクタモデルＥＥＭ側の回転済み座標軸ＲＡＸは、その原点をエンドエフェクタモデルＥＥＭの把持位置となる把持基準点ＨＢＰと一致させている（詳細は後述）。
【０１２８】
さらに回転前の状態では、ＸＹＺ軸の回転角度ＲX、ＲY、ＲZはそれぞれＲX＝０°、ＲY＝０°、ＲZ＝０°であり、基準座標軸ＢＡＸと回転済み座標軸ＲＡＸは一致している。この状態で、エンドエフェクタモデルＥＥＭをＺ軸を中心として反時計回りに９０°回転させると、図１９に示すようになる。図１９の状態では、回転角度ＲX、ＲY、ＲZはそれぞれＲX＝０°、ＲY＝０°、ＲZ＝９０°となり、これに応じて画像表示領域に表示される回転済み座標軸ＲＡＸは、回転後の姿勢に更新される。さらに図１９の状態から、Ｙ軸を中心として時計回りに９０°回転させると、図２０のようになる。この状態では、回転角度ＲX、ＲY、ＲZはそれぞれＲX＝０°、ＲY＝９０°、ＲZ＝９０°となり、これに応じて回転済み座標軸ＲＡＸも同様に回転後の姿勢に更新される。さらに図２０の状態から、Ｘ軸を中心として時計回りに９０°回転させると、図２１の状態となり、回転角度ＲX、ＲY、ＲZはそれぞれＲX＝９０°ＲY＝９０°ＲZ＝９０°となる。
【０１２９】
従来は、このようなＺ−Ｙ−Ｘ系オイラー角を用いて、ワークモデルやエンドエフェクタモデルの生成や位置を表現していた。しかしながら、操作可能な位置パラメータの数が６個と多いため、これらの位置パラメータを調整してユーザが想定している位置や姿勢に調整する作業は容易でなかった。また姿勢を維持したまま位置を移動させる際に用いるＸＹＺ軸と、回転で用いるＲX、ＲY、ＲZ軸とが異なるため、この位置パラメータを変化させると、どのように変化するのかが直感的に判り難いという問題があった。この様子を図２２に基づいて説明する。
【０１３０】
今、図２１の状態で、画像表示領域には、回転角度ＲX＝９０、ＲY＝９０、ＲZ＝９０の回転後の直交座標軸である回転済み座標軸ＲＡＸが表示されている。この状態からＲYやＲZを変更すると、表示されている回転済み座標軸ＲＡＸとは異なる軸を中心に回転することになる。例えばＲYの回転は、図２２の回転済み座標軸ＲＡＸで示すＹ軸ではなく、図２２に破線で示すように、ＲX回転前のＹ軸（図１９の回転済み座標軸ＲＡＸで示すＹ軸）を中心に回転することになる。またＲZも、図２２の回転済み座標軸ＲＡＸで示すＺ軸を中心に回転するでなく、破線で示すＲX，ＲY回転前のＺ軸（図１８の回転済み座標軸ＲＡＸで示すＺ軸）を中心に回転することになる。
【０１３１】
これは、Ｚ−Ｙ−Ｘ系オイラー角が、Ｚ軸、Ｙ軸、Ｘ軸の順に回転させることを前提に規定されていることによる。Ｚ−Ｙ−Ｘ系オイラー角によれば、Ｚ軸が基準であり、Ｚ軸回りのＲZの回転によってＲX、ＲYの回転軸がそれぞれ回転する。ここでＺ軸回りの回転軸は動かない一方、ＲX、ＲYは、Ｚ軸回りの回転ＲZによって回転軸自体が回転する。これに従って決定されたＹ軸回りにＲYだけ回転させると、これに応じてＸ軸も回転される。ここでＹ軸回りの回転軸は、Ｚ軸回りの回転ＲZによって決まっているため、Ｘ軸回りにＲXだけ回転させても、Ｙ軸回りの回転軸もＺ軸回りの回転軸も変化しない。いいかえると、Ｚ−Ｙ−Ｘ系オイラー角では、ＲZが独立した回転軸を有し、ＲYはＲZに従属した回転軸を有し、ＲXはＲYに従属した回転軸を有するということができる。
【０１３２】
このように、従来よりロボットの制御で一般的に用いられているＺ−Ｙ−Ｘ系オイラー角では、３つの回転軸が相互に関連して、他の回転軸回りの回転後の軸でもって回転するため、ユーザにとってはどの軸が回転軸になるのかが極めて把握し難くなり、意図通りの方向に回転させることが容易でなかった。
（補正回転軸の表示）
【０１３３】
これに対して本実施形態に係る方法では、ＲX、ＲY、ＲZの回転軸を、それぞれ実際の回転軸を基準として表示するようにしている。この軸は、従来のＺ−Ｙ−Ｘ系オイラー角を用いた三次元空間の表示で行われていたもの（図１８〜図２１）とは異なり、あくまでも他の回転軸回りの回転後の状態を考慮して補正した、現実の回転軸を補正回転軸として表示させるものである。例えば図２２の状態で、ＲZの補正回転軸を表示する例を考える。この場合は図２３に示すように、ＲX，ＲYを０°として計算したときのＺ軸が、補正回転軸となる。ここで表示される補正回転Ｚ軸ＡＸＺは、ＲX＝０°、ＲY＝０°、ＲZ＝９０°のときのＺ軸である。
【０１３４】
一方、図２２の状態でＲYの補正回転軸を表示するには、図２４に示すように、ＲXを０°として計算したときのＹ軸が、現実の回転軸となる。ここで表示される補正回転Ｙ軸ＡＸＹは、ＲX＝０°、ＲY＝９０°、ＲZ＝９０のときのＹ軸である。
【０１３５】
さらに図２２の状態でＲXの補正回転軸を表示するには、そのままＸ軸を表示すればよい。補正回転軸として補正回転Ｘ軸を表示させた例を図２５に示す。ここで表示される補正回転Ｘ軸ＡＸＸは、ＲX＝９０°、ＲY＝９０°、ＲZ＝９０°のときのＸ軸である。
【０１３６】
なお、これらの補正回転軸の始点は、エンドエフェクタモデルの回転の中心とすることが好ましい。例えば、エンドエフェクタモデルＥＥＭの把持位置である一対の爪部の中間位置とする。
（Ｘ−Ｙ−Ｚオイラー角）
【０１３７】
この補正回転軸は、回転させる順番を変更した場合であっても、同様の考え方で回転軸を表示できる。例えば上述した図２３〜図２５の例では、Ｚ−Ｙ−Ｘ系オイラー角を採用したため、ＲZ、ＲY、ＲXの順で回転させている。一方、Ｘ−Ｙ−Ｚオイラー角を採用すると、ＲX、ＲY、ＲZの順で回転させることから、０°として計算する軸がＺ−Ｙ−Ｘ系オイラー角とは異なる。例えばＸ−Ｙ−Ｚオイラー角で補正回転軸を得るために、図１８〜図２１と同様にＲX、ＲY、ＲZの順で回転させたと仮定すると、補正回転軸としてＺ軸を表示するには、そのまま回転後のＺ軸を表示させる。また補正回転軸としてＹ軸を表示するには、ＲZを０°として計算したときのＹ軸を表示させる。さらに補正回転軸としてＸ軸を表示させるには、ＲZとＲYを０°として計算したときのＸ軸を表示させる。
【０１３８】
このようにして、オイラー角を用いて把持位置や姿勢の設定をユーザが行うに際して、回転軸を判り易く表示させることができ、複雑なオイラー角の概念を理解せずとも感覚的に操作し易くできる。
（実施形態３）
【０１３９】
オイラー角のような、複数の位置パラメータで規定されるエンドエフェクタやワークの位置や姿勢を、ユーザが設定することは容易でない。そこで、複数の位置パラメータの内、指定可能な位置パラメータを制限してユーザに指定させるよう、位置パラメータの設定手順を誘導して、誘導に従い順次必要な位置パラメータを設定させることもできる。このような例を実施形態３に係るロボットシステム３０００として、図２６に示す。この図に示すロボットシステム３０００は、ロボット設定装置３００と、表示部３Ｂと、操作部４と、センサ部２と、ロボットコントローラ６と、ロボットＲＢＴを備える。なおこの図に示すロボットシステムにおいて、図６等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
（ロボット設定装置３００）
【０１４０】
ロボット設定装置３００は、入力画像取得部２ｃと、演算部１０と、記憶部９と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。記憶部９は、把持位置保存部９ｂを有する。把持位置保存部９ｂは、把持位置特定部８ｄで指定されたワークモデル又はエンドエフェクタモデルの把持位置を、保存するための部材である。
【０１４１】
演算部１０は、把持位置特定部８ｄと、把持位置コピー部８ｄ８と、相対位置設定部８ｄ５と、サーチモデル登録部８ｇと、三次元サーチ部８ｋと、三次元ピック判定部８ｌと、断面モデル生成部８ｓとを備える。
【０１４２】
把持位置特定部８ｄは、表示部上の仮想三次元空間上に表示されたワークモデル又はエンドエフェクタモデルの何れか又は両方の、位置及び姿勢を特定する、Ｘ軸、Ｙ軸、Ｚ軸上の座標位置であるＸ座標、Ｙ座標、Ｚ座標、及びＸ軸、Ｙ軸、Ｚ軸を中心とする回転角度であるＲX回転角、ＲY回転角、ＲZ回転角の６つの位置パラメータを、それぞれ指定するための部材である。
【０１４３】
把持位置コピー部８ｄ８は、把持位置保存部９ｂに保存されたワークモデル又はエンドエフェクタモデルの把持位置を読み出して、該把持位置を変更して新たな把持位置として登録するための部材である。これにより、複数の把持位置を登録する際、既に登録された把持位置を読み出して、これをベースにして把持位置を変更し、新たな把持位置として登録可能とすることで、一から把持位置を登録する場合に比べ、より簡単に把持位置を追加でき、登録作業の省力化が図られる。
【０１４４】
三次元ピック判定部８ｌは、三次元サーチ部８ｋでサーチされた各サーチ結果に対して、把持位置特定部８ｄでワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。
【０１４５】
断面モデル生成部８ｓは、エンドエフェクタモデルに対して一方向に設定された直線状の基本軸に沿って、この基本軸と直交する平面でエンドエフェクタモデルを切断した断面と、各断面を含む直交平面が基本軸と交差する点を断面位置として、複数の断面と断面位置との組で構成された断面モデルを生成する。この断面モデルを作成するためのエンドエフェクタモデルには、ポリゴンデータ等が用いられる。
（把持位置特定部８ｄ）
【０１４６】
図２６に示す把持位置特定部８ｄは、第一指定部８ｄ９と、第二指定部８ｄ６と、第三指定部８ｄ７を含む。第一指定部８ｄ９は、Ｘ座標、Ｙ座標、Ｚ座標の少なくともいずれかを指定可能で、かつ他の位置パラメータは指定不可能な部材である。第二指定部８ｄ６は、第一指定部８ｄ９で一部の位置パラメータが指定された状態のワークモデル又はエンドエフェクタモデルに対して、ＲX回転角、ＲY回転角、ＲZ回転角の少なくともいずれかを指定可能で、かつ他の位置パラメータは指定不可能な部材である。第三指定部８ｄ７は、第一指定部８ｄ９及び第二指定部８ｄ６で一部の位置パラメータが指定された状態のワークモデル又はエンドエフェクタモデルに対して、ＲX回転角、ＲY回転角、ＲZ回転角の少なくともいずれかの内、第二指定部８ｄ６で指定されていない位置パラメータを指定可能で、かつ他の位置パラメータは指定不可能とした部材である。
【０１４７】
これにより、把持位置の指定を、６つの位置パラメータのすべてを一つの画面上で指定させるのでなく、指定可能なパラメータをそれぞれ限定した複数の指定部に分けて、それぞれで位置パラメータを個別に指定させることで、複数の位置パラメータが相互に絡み合って位置や姿勢の把握がし難くなる事態を避け、さらに順次位置パラメータを着ていさせることで、位置及び姿勢の特定に必要な情報を設定させることが可能となる。特に、第一指定部８ｄ９で把持位置の初期位置を、表示部に平面状に表示させたワークモデル上の何れかの部位を、マウスのクリック等で指定させる構成としたことで、見易い姿勢としたワークモデル上を直接指定するという視覚的に判り易い方法でユーザに指定させることが可能となり、従来のような姿勢の確定や数値の規定といった複雑で面倒な作業と比べて遙かに簡単化できる。なお、第一指定部８ｄ９では必ずしもワークモデルを二次元状に表示させる態様に限られず、三次元状に表示させてもよい。
（設定作成時の手順）
【０１４８】
ここで、ロボットシステムを動作させるための設定作業を、実運用の前に行うティーチング作業の手順を図２７のフローチャートに基づいて説明する。
【０１４９】
まずステップＳ２７０１において、ワークを三次元サーチするためのサーチモデルの登録を行う。ここでサーチモデルは、上述の通りワークモデル、ここでは三次元のＣＡＤデータを登録することができる。あるいは、センサ部で実際にワークを撮像した実測データをサーチモデルとして登録してもよい。
【０１５０】
次にステップＳ２７０２において、ロボットのエンドエフェクタモデルを登録する。ここでも、エンドエフェクタモデルとして、三次元ＣＡＤデータを登録することができる。次にステップＳ２７０３において、把持するワークモデルの面を、高さ画像中から選択する。次にステップＳ２７０４において、選択した面に対する把持するときのロボットの位置及び姿勢を登録する。次にステップＳ２７０５において、必要数の位置及び姿勢を登録できたか否かを判定し、未だの場合はステップＳ２７０３に戻って上記処理を繰り返す。そして必要数の登録ができた場合は、処理を終了する。
（三次元ＣＡＤデータをサーチモデルに登録する手順）
【０１５１】
ここで、ステップＳ２７０１において、サーチモデルとして三次元ＣＡＤデータを用いる場合の、ワークのサーチモデルを登録する手順の例を、図２８のフローチャートに基づいて説明する。まずステップＳ２８０１において、ワークの三次元ＣＡＤデータモデルを読み込む。次にステップＳ２８０２において、三次元ＣＡＤデータモデルの外接直方体の中心を、三次元ＣＡＤデータの原点に補正する。さらにステップＳ２８０３において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を生成する。ここで、三次元ＣＡＤデータから高さ画像を生成する際は、ＣＡＤの原点が高さ画像の中心になるように生成する。
【０１５２】
次にステップＳ２８０４において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。最後にステップＳ２８０５において、生成された高さ画像を用いてサーチモデルを登録する。
【０１５３】
このようにして、三次元サーチに用いるサーチモデルを、ユーザはガイダンスに沿って登録することができる。
（エンドエフェクタモデルの登録）
【０１５４】
次に、図２７のステップＳ２７０２でエンドエフェクタモデルを登録する手順の詳細を、図２９のフローチャートに基づいて説明する。ここでは、エンドエフェクタモデルを構成する三次元ＣＡＤデータが、ポリゴンデータで構成されているものとする。
【０１５５】
まず、ステップＳ２９０１において、エンドエフェクタモデルのポリゴンデータを読み込む。次にステップＳ２９０２において、断面を作成する方向を決定する。さらにステップＳ２９０３において、断面モデルを作成する。断面モデルは、図２６の断面モデル生成部８ｓで作成される。断面モデルの作成の詳細については、後述する。このようにして、エンドエフェクタモデルが記憶部９に登録される。
（追加領域）
【０１５６】
また、エンドエフェクタモデルの登録に際して、元のエンドエフェクタモデルに追加領域を付加することもできる。このような手順を、図３０のフローチャートに基づいて説明する。まずステップＳ３００１において、エンドエフェクタモデルを登録する。例えばＳＴＬデータ等の三次元ＣＡＤデータで構成されたエンドエフェクタモデルを読み込む。
【０１５７】
次にステップＳ３００２において、追加領域を設定する。追加領域は、例えば干渉判定（詳細は後述）に際して、実際のエンドエフェクタの形状や付加されているカバーやハーネス類等を模した形状を、エンドエフェクタモデルの表面に追加するものであり、これによって干渉判定の精度を向上させることができる。
（実施形態４）
【０１５８】
このような追加領域の設定には、追加モデル作成機能を用いる。追加モデルの作成機能を付加したロボットシステムの例を、実施形態４として、図３１のブロック図に示す。この図に示すロボットシステム４０００は、ロボット設定装置４００と、表示部３と、操作部４と、センサ部２と、ロボットコントローラ６と、ロボットＲＢＴを備える。なおこの図に示すロボットシステムにおいて、図６等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
（ロボット設定装置４００）
【０１５９】
ロボット設定装置４００は、入力画像取得部２ｃと、演算部１０と、記憶部９と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。
【０１６０】
演算部１０は、ワークモデル登録部８ｔと、エンドエフェクタモデル登録部８ｕと、追加モデル作成部８ｖと、把持位置特定部８ｄと、サーチモデル登録部８ｇと、三次元サーチ部８ｋと、干渉判定部８ｍと、断面モデル生成部８ｓとを備える。
【０１６１】
追加モデル作成部８ｖは、予め規定された一以上の立体的な図形で表現した追加領域を、エンドエフェクタモデルの表面に追加した追加モデルを作成するための部材である。これにより、三次元ＣＡＤデータを編集することなく、エンドエフェクタモデルに対して直方体や円柱などの単純形状で干渉判定領域を追加して、それぞれの領域に応じた干渉判定を行うことにより、簡便に干渉判定を行えるようになる。なお、立体的な図形には、予めロボット設定装置側で用意されている基本的な図形の他、ユーザが自由に設計可能な図形も含まれる。
【０１６２】
把持位置特定部８ｄは、ワークモデル登録部８ｔで登録されたワークモデルに対して、このワークモデルをエンドエフェクタモデルで把持する把持位置を一以上、特定するための部材である。
【０１６３】
三次元サーチ部８ｋは、入力画像取得部２ｃで取得された入力画像中から、サーチモデル登録部８ｇで登録されたサーチモデルを用いて、各ワークの位置及び姿勢に対応する画像領域を特定する三次元サーチを行うための部材である。
【０１６４】
干渉判定部８ｍは、追加モデル作成部８ｖで作成された追加モデルでもって、エンドエフェクタを動作させた際に、該動作を妨げる可能性のある他の物体との干渉の有無を判定する干渉判定を行うための部材である。この干渉判定部８ｍは、入力画像取得部２ｃで取得された入力画像に含まれる複数のワークの何れかを把持しようとしてエンドエフェクタを当該位置に移動させる際に、このワークの周囲の物体がエンドエフェクタと干渉するか否かを判定するために、入力画像の内でこのワークの周囲の物体を構成する画像に対して、干渉判定を実行する。これにより、エンドエフェクタモデルを入力画像と対比して干渉判定することができる。干渉判定部８ｍは例えば、三次元サーチ部８ｋで入力画像中からサーチされた各ワークの位置及び姿勢に対応するサーチ結果に対して、このワークを把持するために把持位置特定部８ｄで特定された把持位置にエンドエフェクタモデルを配置する場合に、このワークの周囲に存在する物体との干渉の有無を判定する。
（追加領域設定画面３１０）
【０１６５】
追加領域は、三次元ＣＡＤデータで構成されたエンドエフェクタモデルに付加される。ここで、追加モデル作成部８ｖの一態様として、エンドエフェクタモデルに追加領域を追加する追加領域設定画面３１０を、図３２に示す。この追加領域設定画面３１０は、エンドエフェクタの三次元ＣＡＤデータであるエンドエフェクタモデルＥＥＭを読み込んで、これに図形を付加することができる。追加領域設定画面３１０は、画像表示欄１４１と操作欄１４２を備えている。画像表示欄１４１には、読み込まれたエンドエフェクタモデルＥＥＭの三次元ＣＡＤデータが表示されている。また操作欄１４２には、基本図形表示欄３１１が設けられている。基本図形表示欄３１１には、選択可能な基本図形が一覧表示されている。基本図形には、直方体や円柱、円錐や三角錐、六角柱等が挙げられる。ユーザは所望の基本図形を、基本図形表示欄３１１から選択して、「追加」ボタン３１２を押すことで、エンドエフェクタモデルＥＥＭ上の指定した位置に基本図形を追加することができる。また基本図形表示欄３１１で一覧表示された各行には、「編集」ボタン３１３が設けられており、このボタンを押下すると、選択した基本図形の設定を変更できる。例えば底面の一辺の長さや半径、高さ等の基本図形パラメータを調整できる。
【０１６６】
図３２の例では追加したい基本図形として直方体が選択されており、基本図形表示欄３１１でハイライト表示されている。この状態で「編集」ボタン３１３を押下すると、図３３の基本図形編集画面３２０が表示される。基本図形編集画面３２０の操作欄１４２には、基本画像パラメータ調整欄３２１が設けられており、ここから基本図形のサイズや、エンドエフェクタの基準位置に対する位置や姿勢を変更できる。なお基本画像パラメータ調整欄３２１から基本図形パラメータを調整すると、これに応じて画像表示欄１４１の表示内容も更新される。
【０１６７】
図３２の例では、追加領域ＡＤＡを、アーム部の先端のフランジ面ＦＬＳとエンドエフェクタモデルＥＥＭとの間に挿入している。これにより、アーム部とエンドエフェクタとの間に取付治具等が介在された状態を再現できる。また、アーム部先端のフランジ面が、ロボット設定装置側で演算用に設定された面とずれがある場合に、このずれ量をオフセットさせるために使用することもできる。
【０１６８】
さらに図形は、複数を追加できる。図３２の例では、基本図形表示欄３１１から所望の基本図形を選択して「追加」ボタン３１２を押すことで、様々な基本図形を追加できる。これによって、複数の基本図形を組み合わせて、様々な形状を表現することが可能となる。
【０１６９】
このように、エンドエフェクタモデルに対して追加領域を設定する機能を備えることで、従来のように三次元ＣＡＤデータの形状を直接編集する等して形状を変更することなく、予め用意された基本図形を追加するだけで、容易に形状を付加することが可能となる。この結果、エンドエフェクタをワークを把持する把持位置に配置した際に、ワークの周囲の物体と干渉するかどうかを予め確認する干渉判定において、エンドエフェクタモデルに含まれていないが、実際には存在する部材が存在する場合、これらを模した形状として判定結果の精度を向上させることができる。例えば、エンドエフェクタを、アーム部の先端にジョイントを介して接続している際、エンドエフェクタ全体がオフセットされ、先端が若干突出した状態となることがある。また、エンドエフェクタの外側に、接触防止用のカバーを被せたり、あるいはエンドエフェクタからの延びるケーブルといった、付加的な要素が存在することがある。このような付加的な要素は、エンドエフェクタモデルの三次元ＣＡＤデータに含まれていないことが多く、また別途ＣＡＤデータが用意されていることも少ない。かといって、エンドエフェクタモデルの三次元ＣＡＤデータを加工して、これらの付加的な要素に応じた形状に変更するよう編集するのは、手間がかかる。また複雑な形状をＣＡＤデータで表現できたとしても、このような複雑な形状の三次元ＣＡＤデータを干渉判定に用いると、演算処理が複雑となって処理時間も長くなってしまう。
【０１７０】
そこで、このような付加的な要素を、図形で表現することで、面倒な編集作業を経ることなく、簡単な追加領域で実情に近付けた形態のエンドエフェクタモデルを得ることができ、実態に即した形状を容易に表現できるようになる。また、この方法であればＣＡＤデータの形は変えずに干渉判定領域を追加しているため、処理時間の増加量を抑えられる。
（把持位置の設定手順）
【０１７１】
次に、図２７のステップＳ２７０４において、エンドエフェクタでワークを把持する把持位置及び姿勢を登録する手順について、図３４のフローチャート及び図３５Ａ〜図３８に基づいて説明する。ここでは、三次元ＣＡＤデータで構成されたワークモデルＷＭ１１及びエンドエフェクタモデルＥＥＭを用いて、ワークモデルＷＭ１１を固定したまま、このワークモデルＷＭ１１を把持する際の、ワークモデルＷＭ１１に対するエンドエフェクタモデルＥＥＭの位置及び姿勢（以下、これらを纏めて「把持位置」と呼ぶ。）を規定する６つの位置パラメータ、すなわち把持位置Ｘ，Ｙ，Ｚと把持姿勢ＲX，ＲY，ＲZを、図３４のフローチャートに示す手順で順に設定していく。
（Ｘ−Ｙ指定部）
【０１７２】
まずステップＳ３４０１において、把持位置のＸ座標及びＹ座標を指定する。ここでは、Ｘ−Ｙ指定部でもってワークをある平面に投影した二次元状の平面画像を表示させて、この平面画像上で把持位置を指定する。このようなＸ−Ｙ指定部の一形態として、Ｘ−Ｙ指定画面２３０を図３５Ｂに示す。この図に示すＸ−Ｙ指定画面２３０は、図３５Ａに示すワークの三次元ＣＡＤデータを、画像表示欄１４１で平面図状に表示させている。この状態でユーザに、平面図状に表示されたワークモデルＷＭ１１Ｆのどの位置をエンドエフェクタモデルで把持させたいかを指定させる。図３５Ｂのように平面図上で把持位置をマウス等のポインティングデバイスで選択させることで、姿勢や回転角などを意識することなく、判り易い態様で所望の位置を指定させることができる。特に、平面図状に表示されたワークモデルＷＭ１１Ｆ上で把持する位置をクリックで指定することで、数値を入力して位置を調整するのに比べて、容易に指定できる利点が得られる。そして、ユーザが手動で指定した位置と画像の縮尺から、把持位置のＸ、Ｙ座標を決定できる。なお、Ｘ、Ｙ座標を数値で表示させるＸ、Ｙ座標表示欄をＸ−Ｙ指定画面に設けてもよい。
（Ｚ−ＲZ指定部）
【０１７３】
次にステップＳ３４０２において、把持位置Ｚ及び把持姿勢ＲZをＺ−ＲZ指定部から指定する。Ｚ−ＲZ指定部の一形態として、Ｚ−ＲZ指定画面２４０を図３６に示す。この図に示すＺ−ＲZ指定画面２４０は、画像表示欄１４１と、操作欄１４２を備える。操作欄１４２には、把持位置のＺ座標を指定するためのＺ座標指定欄２４１と、把持姿勢のＲZ回転角を指定するためのＲZ回転角指定欄２４２が設けられる。この段階では、Ｘ、Ｙ座標はステップＳ３４０１において既に決定されているので、Ｚ軸のみを表示すれば足りる。このためエンドエフェクタモデルＥＥＭとワークモデルＷＭ１１を画像表示欄に表示させた状態で、補正回転軸として補正回転Ｚ軸ＡＸＺのみを重ねて表示させている。これにより、ユーザは回転角度を変更した際に、画像表示欄１４１で表示されるエンドエフェクタモデルＥＥＭがどのように回転されるかをイメージし易くなり、エンドエフェクタモデルＥＥＭの位置調整作業を容易にできる利点が得られる。特に、他の回転軸を表示させないことで、ユーザは混乱することなく、回転方向を視覚的に把握できる。さらにＺ座標とＲZ回転角以外の他の位置パラメータは指定不能としたことで、誤って他の位置パラメータを変更するといったことも排除され、ユーザは指定可能な位置パラメータのみに集中して設定することができ、誤解や誤設定といった混乱を排除した状態で必要な設定のみに専念できる。
【０１７４】
エンドエフェクタモデルＥＥＭの回転は、ＲZ回転角指定欄２４２で数値を入力すると、これに応じて画像表示欄１４１におけるエンドエフェクタモデルＥＥＭが自動的に回転されて表示される。また、画像表示欄１４１で表示されるエンドエフェクタモデルＥＥＭをドラッグして回転させると、これに応じてＲZ回転角指定欄２４２で表示されるＲZ回転角の値も変更される。
（ＲY指定部）
【０１７５】
さらにステップＳ３４０３において、把持姿勢ＲYを指定する。ここでは、図３７に示すＲY指定画面２５０を用いて、ＲY回転角をＲY回転角指定欄２５１から指定する。この例では、エンドエフェクタモデルＥＥＭやワークモデルＷＭ１１の姿勢をＺ−Ｙ−Ｘ系オイラー角で表現している。そのためステップＳ３４０２で指定したＲZの値を用いることで、ＲYの回転軸の方向を補正できる。計算された補正回転軸である補正回転Ｙ軸ＡＸＹは、上記と同様に画像表示欄１４１に表示される。このように回転軸を表示させることで、ＲY回転角を調整するとエンドエフェクタモデルＥＥＭがどのように変化するのかをユーザが想像し易くなリ、設定のし易さに?がる。
（ＲX指定部）
【０１７６】
最後にステップＳ３４０４において、把持姿勢ＲXを指定する。ここでは、図３８に示すＲX指定画面２６０を用いて、ＲX回転角をＲX回転角指定欄２６１から指定する。ここでも同様に、ＲXの回転軸の方向を示す補正回転Ｘ軸ＡＸＸを、画像表示欄１４１に表示させる。
【０１７７】
このようにして、エンドエフェクタでワークを把持する把持位置として、Ｘ，Ｙ，Ｚ、ＲX，ＲY，ＲZの６つの位置パラメータをユーザが指定できる。特に、調整可能な位置パラメータを画面毎に制限し、また表示させる回転軸も、指定に係る位置パラメータに関する回転軸のみの表示に限定することで、ユーザはこのようなガイダンスに従って設定していくことで、必要な位置パラメータを順次規定することができる。この結果、従来難解であった、三次元の位置及び姿勢を指定した把持位置の指定作業をスムーズに行わせることができる。また、オイラー角のＲX、ＲY、ＲZ回転角を設定する際に、その回転軸を計算して、補正回転軸として画像表示欄１４１に表示させることで、ユーザが設定中の位置パラメータの変更により、どう動くのかが容易に想像できるようになる。
【０１７８】
さらに、把持位置の登録を複数のステップに分けて、各ステップで調整できる位置パラメータを限定することで、その位置パラメータを動かすとどう動くのかが容易に想像できるようになる。特に、各ステップ毎に指定画面を設けて、異なる指定画面で異なる位置パラメータを登録させることで、混乱無くユーザに設定すべき位置パラメータを提示でき、設定作業を誘導することが可能となる。なお、図３６〜図３８の例では、異なる指定画面を設ける例を説明したが、この例に限られない。例えば図３９の位置パラメータ指定画面２７０に示すように、複数の位置パラメータを指定する共通の指定画面を用いつつ、ステップ毎に、指定可能な位置パラメータを制限することもできる。図３９の例では、Ｘ、Ｙ座標のみＸ、Ｙ座標指定欄２７１から指定可能で、他の位置パラメータについては指定できないようにグレーアウトさせて選択不能としている。そしてＸ、Ｙ座標を指定し終えると、「次へ」ボタン２７２を押下させることで、次のステップとして別の位置パラメータ、例えばＺ座標とＲZ回転角のみをＺ座標、ＲZ回転角指定欄２７３から指定可能として、これ以外の位置パラメータについては、指定済みのＸ、Ｙ座標も含め、すべてグレーアウトさせたり、非表示とする等して、選択不能とする。そしてＺ座標とＲZ回転角の指定後に再度「次へ」ボタン２７２を押下させることで、次のステップとしてさらに別の位置パラメータ、例えばＲX、ＲY回転角のみをＲX、ＲY回転角指定欄２７４から指定可能とし、他の位置パラメータは選択不能とする。このような構成でも、ユーザに対し、指定可能な位置パラメータを制限して提示し、順次設定させていくガイダンス機能を実現できる。
【０１７９】
さらに、位置パラメータを順次規定するステップの数や区分けについても、上述の例に限定されるものでない。例えば、Ｚ座標とＲZ回転角は別ステップになっていてもよいし、あるいはＲX回転角とＲY回転角が同じステップで設定できるようになっていてもよい。例えば、位置のステップを複数のステップに分割する例として、Ｚ−ＲZ指定部を、Ｚ座標を指定するためのＺ指定部と、Ｚ軸を中心としたＲZ回転角を指定するためＲZ指定部で構成する。あるいは、ＲX−ＲY指定部を、Ｘ軸を中心としたＲX回転角を指定するためのＲX指定部と、Ｙ軸を中心としたＲY回転角を指定するためのＲY指定部で構成することもできる。あるいはまた、図３７と図３８を統合し、ＲX回転角とＲY回転角を一画面で指定可能なＲX−ＲY指定部としてもよい。
【０１８０】
なお、以上の例ではワークモデル側を固定した状態で、エンドエフェクタモデルの位置及び姿勢を調整する例を説明したが、これに限らず、エンドエフェクタモデルを固定した状態で、ワークモデル側の位置及び姿勢を調整させてもよい。あるいは、エンドエフェクタモデルとワークモデルの両方の位置及び姿勢を調整するように構成してもよい。
【０１８１】
また以上の例では、Ｘ，Ｙ，Ｚ、ＲX，ＲY，ＲZの６つの位置パラメータを、Ｘ−Ｙ指定部でＸ、Ｙ座標、Ｚ−ＲZ指定部でＺ座標とＲZ回転角、ＲX−ＲY指定部でＲX、ＲY回転角を順に規定する例を説明したが、各位置パラメータを規定する順序や組み合わせは、上記構成に限定されない。例えば、Ｘ−Ｙ−Ｚ指定部と、ＲZ指定部と、ＲX−ＲY指定部を用意し、Ｘ−Ｙ−Ｚ指定部で、エンドエフェクタモデルやワークモデルのＸ、Ｙ、Ｚ座標を指定し、次にＲZ指定部で、Ｚ軸を中心としたＲZ回転角を指定し、最後にＲX−ＲY指定部でＸ軸を中心としたＲX回転角と、Ｙ軸を中心としたＲY回転角を指定させてもよい。この場合、Ｘ−Ｙ−Ｚ指定部は、例えば図４０に示すようなＸ−Ｙ−Ｚ指定画面２８０が利用でき、三次元的に表示させたエンドエフェクタモデルＥＥＭやワークモデルに対して、Ｘ、Ｙ、Ｚ座標をＸ、Ｙ、Ｚ座標指定欄２８１から指定することができる。このように、把持位置を最初に指定させるための画像は、図３５Ｂに示したようなＸＹ平面に投影した平面画像に限られず、異なる投影方向が利用でき、例えば図４１に示すような、斜め方向から投影させた斜視図ＷＭ１１Ｐを用いて指定させることもできる。
【０１８２】
さらに、上述した図３５Ｂのように平面に一旦投影させた画像上から把持位置を指定させる方法に限らず、図３５Ａのような投影しない状態で把持位置を指定させてもよい。例えば図４２に示すような三次元画像ビューワ２９０上でワークモデルＷＭ１１を三次元的に表示させた状態で、この画面上から把持位置をマウス等のポインティングデバイスで構成された操作部を用いて指定する。
（変形例）
【０１８３】
さらに、以上の例ではＺ−Ｙ−Ｘ系オイラー角に従い、Ｘ，Ｙ，Ｚ、ＲX，ＲY，ＲZの６つの位置パラメータを指定する手順について説明したが、本発明はこの態様に限定されず、エンドエフェクタやワークの位置及び姿勢を規定する他の態様、例えばＸ−Ｙ−Ｚ系オイラー角、Ｘ−Ｚ−Ｙ系オイラー角、Ｙ−Ｘ−Ｚ系オイラー角、Ｙ−Ｚ−Ｘ系オイラー角、Ｚ−Ｘ−Ｙ系オイラー角、Ｘ−Ｙ−Ｘ系オイラー角、Ｘ−Ｚ−Ｘ系オイラー角、Ｙ−Ｘ−Ｙ系オイラー角、Ｙ−Ｚ−Ｙ系オイラー角、Ｚ−Ｘ−Ｚ系オイラー角、Ｚ−Ｙ−Ｚ系オイラー角、あるいはロール・ピッチ・ヨー角表現、回転軸・回転角表現等に従って、エンドエフェクタ等の位置及び姿勢を規定することもできる。
【０１８４】
また、以上の例では補正回転軸として、指定しようとする位置パラメータに関する補正回転軸のみを表示させる例について説明したが、他の補正回転軸については、完全に非表示とする構成に限定するものでない。例えば、他の補正回転軸を含めて直交する３軸を表示させつつ、指定しようとする回転角に係る回転軸を、他の補正回転軸よりも強調して表示させても、同様の効果を得ることができる。一例として、回転角を指定中の回転軸を太字で表示させたり、着色や点滅などのハイライト表示させたり、逆に指定不可とされた回転軸をグレーアウトさせたり、細線で表示させるなどして、外観上区別するようにする。特に画像の三次元表示においては、直交する座標軸があると三次元表示中であることをユーザが直感的に把握できるので、三軸の表示を維持しつつも、対象となる回転軸を他と区別することで、ユーザに対し混同を起こさせ難くできる。さらにこのような三軸を表示させる際の原点は、回転の中心とすることが好ましい。例えば、上述したエンドエフェクタモデルＥＥＭの把持位置である一対の爪部の中間位置とする。
（把持位置コピー機能）
【０１８５】
さらに、複数の把持位置を登録する際、既に登録された把持位置を読み出して、これをベースにして把持位置を変更し、新たな把持位置として登録可能とする把持位置コピー機能を備えてもよい。一般に、一のワークに対して把持位置を複数登録することが多い。これは、把持位置を複数登録しておけば、複数の把持解の中から最適な解を選ぶことができるため、仮に得られた把持解候補が干渉する場合であっても、他の把持解候補があれば、把持可能と判定される可能性が高まるからである。このような把持解を複数登録する際、その都度把持登録を一から行うと、同様の把持位置を登録する際に手数が多くなり作業が面倒となる。そこで、既に登録済みの把持位置をコピーして、この把持位置で設定された位置パラメータの一部を変更して、新たな把持位置として保存可能とすることで、手間を省いて複数の把持位置を容易に登録できるようになる。また、同様に既存の把持位置の読み出して、位置パラメータを適宜修正して上書き保存することも可能である。
（把持位置コピー部８ｄ８）
【０１８６】
このような把持位置コピー機能や把持位置編集機能は、図２６で示した把持位置コピー部８ｄ８でもって実現される。把持位置コピー部８ｄ８は、把持位置保存部９ｂに保存されたワークモデルやエンドエフェクタモデルの把持位置を読み出して、把持位置を構成する位置パラメータを変更して登録する。また、把持位置コピー部８ｄ８で把持位置を変更する際にも、上述したように、ガイダンスに従って順を登録するように構成すると、どのステップでどの位置パラメータを変更すればよいかが判り易くなり、より把持の登録が簡単になる。
【０１８７】
さらに、把持位置を指定する際に、エンドエフェクタモデルをワークモデルの把持位置に自動的に移動させるフィット機能を付加してもよいことは、上述の通りである。例えば図３６のＺ−ＲZ指定画面２４０で操作欄１４２に「フィット」ボタン１５４を設けることで、フィット機能を実行させて、Ｚ座標を自動的に設定させることができる。
（実施形態５）
【０１８８】
さらに、三次元サーチの精度を向上させるために、サーチモデルの取り得る姿勢や角度を制限することもできる。例えば、図４３に示すような平板状のワークＷＫ９を複数個バラ積みしたワーク群から三次元サーチでワークの位置及び姿勢を検出することを考える。この場合、図４３のワークＷＫ９を三次元ＣＡＤデータで示したワークモデルＷＭ９の各面は、図４４Ａ〜図４４Ｆに示すようになる。すなわち、図４４ＡはワークモデルＷＭ９の平面図、図４４Ｂは底面図、図４４Ｃは正面図、図４４Ｄは背面図、図４４Ｅは右側面図、図４４Ｆは左側面図をそれぞれ示している。これらの基本方向画像の内から、重複する面を除いてサーチモデルとして登録する。ここでは、図４４Ａ、図４４Ｂ、図４４Ｃ、図４４Ｅの四面を登録したとする。この状態で、バラ積みワーク群を撮像して三次元情報を有する点群データを取得して、三次元サーチを行う。この結果、図４５においてＸで示すような縦置きの姿勢でワークが存在しているかのように誤検出されることがある。実際には、薄い平板状のワークが直立した姿勢で存在することは考え難いところ、平板状のワークの正面図は図４４Ｃに示すようにほぼ直線状、あるいは矩形状となるため、ワークの表面を構成する他の部位、例えば図４４Ａや図４４Ｂの一部の形状と共通することがあり、その結果誤検出が生じる。
【０１８９】
これに対して、ワークの取り得る姿勢を制限して三次元サーチを行うことも考えられるが、姿勢制限を行う条件の設定が極めて難解となる。例えば、図４６に示すようなＺ−Ｙ−Ｚ系のオイラー角を用いて、Ｚ軸、Ｙ軸、Ｚ軸の回転角度範囲を規定することで、ワークのあらゆる姿勢を表現できることが知られているものの、この方法で各軸の回転角度を、ユーザが所望する姿勢範囲となるように規定することは容易ではない。
【０１９０】
そこで実施形態５においては、このような面倒な概念を用いずともユーザがワークの取り得る姿勢を容易に設定できるようにした。具体的には、サーチモデルを登録する際に、ばら積みしたときに起こりそうにない姿勢を排除することで、このような面が検出されることがないようにする。このような設定には、図６に示したサーチモデル登録部８ｇを用いる。サーチモデル登録部８ｇは、基本方向画像のいずれかの中から、バラ積みされた複数のワーク群に対して、各ワークの位置と姿勢を特定する三次元サーチを行うためのサーチモデルとして登録する基本方向画像を選択する。サーチモデル登録部８ｇと基本方向画像選択部８ｅとの違いは、基本方向画像選択部８ｅが、見え方が同じ基本方向画像に対していずれか一を選択するものである。これに対してサーチモデル登録部８ｇは、三次元サーチに際してサーチの対象外としたい基本方向画像を、サーチモデルの登録対象から除外するためのものである。好ましくは、基本方向画像選択部８ｅで見え方が重複する基本方向画像を排除した状態で、さらにサーチモデル登録部８ｇでもって、不要な基本方向画像をサーチモデルの登録対象から除外する。あるいは、サーチしたい基本方向画像を選択する。これによって、予めサーチモデルの登録の候補となる基本方向画像に絞り込んだ状態でユーザに選択させることで、候補数を少なくしてサーチモデルの登録作業をより行い易くできるようになる。
（サーチモデル登録画面１３０Ｂ）
【０１９１】
ここで、上述した図４３のワークに対して、サーチモデルを登録するサーチモデル登録画面１３０Ｂの例を図４７に示す。この図に示すサーチモデル登録画面１３０Ｂでは、図４３のワークＷＫ９に対応するワークモデルＷＭ９から、基本方向画像生成部８ｅ’で生成された六面図に相当する６枚の基本方向画像に対し、予め基本方向画像選択部８ｅが、見え方が重複する基本方向画像、図４４の例では図４４Ｄと図４４Ｆの２枚を排除した状態で、残りの４枚の基本方向画像を表示部の六面図表示領域３ａに表示させている。この状態で、サーチモデルの登録可否を設定するサーチモデル登録部８ｇの一形態として、サーチモデル登録画面１３０Ｂ中の各基本方向画像に表示された「登録する」との選択チェックボックス１３１Ｂを設けている。ユーザが、選択チェックボックス１３１Ｂをチェックすれば、この基本方向画像をサーチモデルとして登録され、逆に選択チェックボックス１３１Ｂをオフすれば、この基本方向画像をサーチモデルの登録対象から除外する。ユーザは、六面図表示領域３ａに表示された各基本方向画像を見ながら、実際のバラ積み状態では起こり難い姿勢を排除することができる。図４７の例では、モデルＣとモデルＤの選択チェックボックス１３１Ｂをオフしており、このような側面が見える姿勢、すなわち板状のワークが直立した姿勢を、三次元サーチの対象から除外することができる。これによって、面倒なワークの角度計算や範囲指定といった作業を経ること無く、ユーザはワークの姿勢を示す基本方向画像を見ながら、サーチの必要の無い画像を排除し、あるいは必要な画像のみを選択して、容易に三次元サーチの対象となるワークの姿勢に制限をかけることが可能となる。
【０１９２】
なお、サーチモデル登録部８ｇは、ユーザが手動でサーチモデルの登録対象、あるいは排除対象を選択する態様のみに限られず、ワークモデルの形状や重心等を演算して、生じ難い姿勢の基本方向画像を自動で抽出して排除するように構成してもよい。
【０１９３】
あるいは、自動演算と手動選択の組み合わせ、例えば図４７に示すように、サーチモデル登録画面１３０Ｂで、基本方向画像選択部８ｅで選択済みの基本方向画像をすべて表示させつつ、演算により生じ難いと判定された基本方向画像については、初期状態として選択チェックボックス１３１Ｂをオフして表示させるように構成してもよい。ユーザはサーチモデル登録部８ｇによる自動判定の結果を参照しながら、手動で必要に応じて選択の修正を行い、ＯＫを押すことで、より確実にサーチモデルの登録を適切に行うことができる。
【０１９４】
また図４７においては、基本方向画像選択部８ｅによる選択を自動演算とした例を説明したが、基本方向画像選択部による自動判定、あるいは手動選択についても、同様に組み合わせることができる。例えば基本方向画像選択部による判定の結果、見え方が共通する基本方向画像と判定された一方の画像については、グレーアウトさせて六面図表示領域に表示させることで、ユーザに対して基本方向画像選択部による自動判定の結果を確認させることができる。判定結果が誤っている場合は、ユーザが当該基本方向画像を手動で選択して、基本方向画像として残したり、あるいは逆に排除したりすることができる。このように、自動演算の結果を表示させてユーザに確認させることで、より画像の選択の精度を高めることができる。また、自動判定結果に基づいて予め選択／非選択を設定した状態を初期状態とすることで、自動判定による選択の結果が正しければユーザがＯＫを押してこれを承認することができ、ユーザ側の手間も最小限とすることができる。
【０１９５】
また、不要な面を三次元サーチの対象から除外する目的は、ワークの直立状態以外にも適用できる。例えば完全にランダムにワークを積む態様以外に、特定の面のみが表出するような態様でワーク群が入力画像として与えられる場面においては、表出しない面を排除することで誤検出を回避できる。特に、表裏の形状が似ており、裏面が誤検出し易いようなワークに対しては有効となる。このように、実際には見えることのない裏面のサーチモデルを三次元サーチの対象から外すだけで、ワークの裏面側が検出されないようにワークの姿勢を制限したことと同様の効果を得ることができる。
（サーチモデルを登録する手順）
【０１９６】
上述した、姿勢制限を設けたサーチモデルの登録手順を、図４８のフローチャートに基づいて説明する。ここでは、ワークの三次元ＣＡＤデータをサーチモデルとして登録する手順について説明する。
【０１９７】
まずステップＳ４８０１において、ワークの三次元ＣＡＤデータを読み込む。次にステップＳ４８０２において、三次元ＣＡＤデータモデルの外接直方体の中心を、三次元ＣＡＤデータの原点に補正する。さらにステップＳ４８０３において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を生成する。ここで、三次元ＣＡＤデータから高さ画像を生成する際は、ＣＡＤの原点が高さ画像の中心になるように生成する。さらにまたステップＳ４８０４において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。
【０１９８】
次にステップＳ４８０５において、残った高さ画像の中で、三次元サーチに用いるサーチモデルを選択する。ここでは、サーチモデル選択部８ｉでもって、不要な基本方向画像を排除し、必要な基本方向画像を選択する。
【０１９９】
最後にステップＳ４８０６において、選択された高さ画像をサーチモデルとして登録する。ここでは、サーチモデル登録部８ｇでもってサーチモデルを登録する。このようにして、不要な姿勢の基本方向画像を排除することで、実質的に姿勢制限を設けた状態でサーチモデルを登録することが可能となる。
（実施形態６）
【０２００】
以上は、数値でなく実際の画像を用いて三次元サーチの対象を制限する例について説明した。ただ、本発明はこの態様に限られず、これに代えて、あるいはこれに加えて、サーチモデルの傾斜角度や回転角度で姿勢を制限することもできる。これによって、ワークの実際の積まれ方に応じて三次元サーチの条件を適切に設定し、サーチの誤検出を減らすことが可能となる。このような傾斜角度及び回転角度による姿勢制限を行う傾斜角度・回転角度設定画面１６０の例を、実施形態６として図４９に示す。この図に示す傾斜角度・回転角度設定画面１６０は、姿勢制限を行うサーチモデルを選択するための姿勢制限サーチモデル選択欄１６１、傾斜を許容する角度の上限を指定するための傾斜角度上限設定欄１６２、回転を許容する角度範囲を規定する回転角度範囲設定欄１６３を備えている。
（傾斜角度・回転角度設定画面１６０）
【０２０１】
この傾斜角度・回転角度設定画面１６０では、ワークに対して三次元的な姿勢、例えば座標軸の回転角度を示すＲX、ＲY、ＲZで指定するといった難解な方法ではなく、専門的知識がなくても理解が容易なパラメータとして、サーチモデルの登録時の姿勢からの「傾斜角度」、「回転角度」を用いて指定させる。ここでは、サーチモデルとして登録した基本方向画像を登録姿勢として、この状態からの傾斜角度と回転角度を指定していく（詳細は後述）。
【０２０２】
具体的に、図４９の傾斜角度・回転角度設定画面１６０において、姿勢制限サーチモデル選択欄１６１では、姿勢制限を加える対象となるサーチモデルを選択する。図４９の例では、図４７のサーチモデル登録画面１３０Ｂで登録されたモデルＡのサーチモデルを選択している。
【０２０３】
また傾斜角度上限設定欄１６２では、登録時の姿勢に対して、何度以内の傾斜角度を三次元サーチの結果として出力するかを設定する。
【０２０４】
さらに回転角度範囲設定欄１６３では、基準角度と角度範囲を設定する。まず基準角度設定欄では、登録時の姿勢に対する回転角度を入力する。ここで設定した回転角度が、回転角度範囲を指定する際の基準角度となる。さらに範囲設定欄では、基準角度設定欄で設定した基準角度に対し、三次元サーチの結果として出力する回転角度範囲を設定する。
（傾斜角度・回転角度による姿勢制限方法）
【０２０５】
ここで、サーチモデルの三次元上の姿勢から、傾斜角度、回転角度を求める方法について説明する。上述した三次元サーチにおいてサーチモデルとして登録する面を限定する方法では、自動的に姿勢制限が加わる形となる。一方で、サーチモデルとして登録した面に対して姿勢制限を加えるには、面で登録していることを利用する。
【０２０６】
ここでは、登録した姿勢に対する「傾斜角度」と、登録した姿勢に対する真上から見た「回転角度」の２つの角度で姿勢制限を行う。この２つの角度であれば、概念としても判り易く、比較的簡単に角度制限を行うことができるようになる。
（傾斜角度）
【０２０７】
まず傾斜角度は、図５０Ａ〜図５０Ｃに示すように、サーチモデルとしての登録時のワークモデルの姿勢のＺ鉛直方向に対する角度で規定される。図５０Ａはサーチモデル登録時のワークモデルＷＭＲの姿勢及びこのワークモデルの鉛直方向として規定されたＺ軸を示している。これに対して、入力画像として得られたワークＷＫＩの姿勢、及びこのワークＷＫＩの鉛直方向として規定されたＺ’軸が図５０Ｂに示すような状態であったとする。このような状態で、「傾斜角度」を図５０Ｃに示すように、Ｚ軸とＺ’軸の傾斜角度、すなわちワークの鉛直方向の傾きと定義する。これによって、傾斜の方向に関係なく、サーチモデルの登録状態からの傾きという、一つの角度で表すことができる。また、ユーザにとっても概念としても把握し易い利点が得られる。
（回転角度）
【０２０８】
一方回転角度は、登録時の鉛直方向すなわちＺ軸から見たときの回転角で定義される。ここで回転角度を図５１Ａ〜図５１Ｃに基づいて説明する。これらの図において、図５１Ａはサーチモデル登録時のワークモデルＷＭＲ、及びＸＹ平面を規定するＹ軸を示している。これに対して入力画像として得られたワークＷＫＩの姿勢及びＸＹ平面を規定するＹ’軸が図５１Ｂに示すような状態であったとする。このような状態で、図５１Ｃに示すように「回転角度」を、鉛直方向すなわちＺ軸から見た時の回転角と定義する。この例では、ワークモデルやワークを規定するＹ軸方向の座標軸を基準に、Ｚ軸方向から見たＹ軸の角度でもって回転角度としている。このように規定することで、従来の二次元でのパターンサーチにおける角度と同じ概念として、ユーザにおいても把握し易い利点が得られる。
【０２０９】
なお、ワークに対して原点及びＸＹＺ軸を規定する手法は、既知のアルゴリズムが利用できる。例えば、図８で示したようにワークモデルや入力画像が有するワークの形状情報から、ワークに外接する図形、例えば直方体や球を演算し、その重心を演算してこれをワークの原点とし、ＸＹＺ軸を規定する。ＸＹＺ軸の規定方法は、ＣＡＤデータを用いる場合、元のＣＡＤデータの座標軸の方向をそのまま各ＸＹＺ軸の方向として用いれば良い。実際にワークを３Ｄ撮像した実測データを用いる場合は、実測データの鉛直方向をＺ軸とし、Ｙ軸については実測データの平面視の上方向とし、Ｘ軸については実測データの平面視の右方向とすれば良い。原点については、ワークモデルの重心や、ＣＡＤデータの中心座標を原点としてもよい。
（三次元姿勢から傾斜角度と回転角度を求める手順）
【０２１０】
ここで、三次元姿勢から傾斜角度と回転角度を求める手順を、図５２のフローチャートに基づいて説明する。まずステップＳ５２０１において、傾斜角度を求める。例えば図５３Ａに示すような状態の登録時のワークモデルＷＭＲに対して、入力画像として得られたワークＷＫＩの姿勢が図５３Ｂのようであった場合は、図５３Ｃに示すようにＺ軸の鉛直方向の傾きとして傾斜角度を求める。
【０２１１】
次にステップＳ５２０２において、Ｚ’軸をＺ軸に一致させるように、入力画像を三次元的に回転させる。いいかえると、傾斜を無くす。例えば図５３Ｃの入力画像ＷＫＩに対して、図５４Ａに示すようにＺ’軸のベクトルとＺ軸のベクトルとの外積ベクトルＶＰを回転軸として、Ｚ’軸がＺ軸と重なるように回転させる。この結果、図５４Ｂのように回転された入力画像ＷＫＩ’が得られ、傾斜が取り除かれた状態となる。
【０２１２】
最後にステップＳ５２０３において、回転角度を求める。例えば図５５Ａに示す登録時のワークモデルＷＭＲのＹ軸と、図５５Ｂに示すように傾斜を除いた状態の入力画像ＷＫＩ’のＹ’軸を、それぞれ求める。この状態で、図５５Ｃに示すように、鉛直方向すなわちＺ軸から見た時のＹ軸とＹ’軸の角度を、回転角度として求める。このようにして、入力画像の三次元姿勢から傾斜角度と回転角度を求めることができる。
（傾斜角度の上限の設定）
【０２１３】
図４９の傾斜角度・回転角度設定画面１６０で傾斜角度上限を設定する例として、例えば光沢の強い金属ワークの場合は、面が傾斜するにつれて、三次元計測ができない範囲が増えてくる。このような状態で三次元サーチを行うと、三次元サーチが誤検出となるリスクが高まる。そこで、この誤検出のリスクのある一定以上傾き過ぎた姿勢を三次元サーチの対象から除外することで、信頼性の高いサーチ結果のみを残すことが可能となる。例えば、４０度以上傾くと、誤検出し易くなるワークに対しては、傾斜角度上限を４０度に設定することで、４０度以上傾くサーチ結果を除外することができる。
（回転角度範囲の上限の設定）
【０２１４】
一方、図４９の傾斜角度・回転角度設定画面１６０で回転角度範囲を設定する例として、例えば上述した図４７のモデルＡやモデルＢは、１８０度回転した状態でも、全体の形状特徴が似ている部分が多いため、多重反射等の影響で三次元計測できていない箇所が増えると、回転姿勢を１８０度誤るケースが生じ得る。また、実際のワークの積まれ方として、一定の向きしか生じない場合には、この姿勢制限を用いることで、逆向きの結果を排除することができる。例えば、回転角度範囲を、基準角度に対し±３０度に設定した場合は、この角度範囲内のサーチ結果のみが検出される形になる。
（エンドエフェクタ取付位置設定画面１７０）
【０２１５】
以上のオイラー角を用いた位置及び姿勢の規定方法は、ワークモデルをエンドエフェクタモデルで把持する位置及び姿勢の規定のみならず、エンドエフェクタをロボットのアーム部先端に取り付ける位置の規定においても利用できる。ここで、エンドエフェクタを、ロボットのアーム部の先端に取り付ける位置を設定する手順について説明する。このようなエンドエフェクタの取り付け位置の設定は、図５６に示すようなエンドエフェクタ取付位置設定画面１７０で行う。この図に示すエンドエフェクタ取付位置設定画面１７０は、画像表示欄１４１と、操作欄１４２を備えている。画像表示欄１４１には、エンドエフェクタモデルを表示させる。エンドエフェクタモデルは、予め作成された三次元ＣＡＤデータを読み込む。あるいは、エンドエフェクタを模して直方体や円柱などの基本図形で構成して、表示させてもよい。
【０２１６】
操作欄１４２には、アーム部の先端に装着されるエンドエフェクタの取付位置を規定するエンドエフェクタ取付位置設定欄１７１を設けている。エンドエフェクタ取付位置設定欄１７１で設定するエンドエフェクタ取付位置パラメータは、エンドエフェクタモデルの取付位置（Ｘ，Ｙ，Ｚ）と取付姿勢（ＲX，ＲY，ＲZ）である。例えば、アーム部先端のフランジ面ＦＬＳの中心に対して、オイラー角を用いて規定する。
【０２１７】
なお、上述した図１４等で示したワークモデルの把持位置の登録画面では、ワークモデルを把持するエンドエフェクタモデルの部位（例えば先端に設けられた一対の爪部）と、把持するワークとの位置関係を登録している。これに対し、エンドエフェクタ取付位置設定画面１７０では、エンドエフェクタモデルをアーム部の先端に装着する取付位置を登録している。よって、ワークモデル等の表示は不要で、画像表示欄１４１には、エンドエフェクタモデルとフランジ面ＦＬＳが表示される。
（把持位置指定画面１８０）
【０２１８】
これに対して、ワークモデルの把持位置を指定する把持位置指定画面１８０では、図５７に示すように、エンドエフェクタモデルとワークモデルを表示させて、ワークモデルを把持する箇所を指定する。この図に示す把持位置指定画面１８０は、画像表示欄１４１と操作欄１４２を設けており、画像表示欄１４１には、把持対象のワークを選択して、このワークを把持する面を上面に向けた姿勢で三次元状に画像を描画して表示させる。さらにエンドエフェクタモデルを表示させて、ワークモデルを把持する位置及び姿勢に調整する。操作欄１４２には、把持位置を指定する把持位置指定欄１８１が設けられる。ユーザはワークモデルとエンドエフェクタモデルとの相対関係が正しくなるよう、把持位置指定欄１８１から位置パラメータを調整する。あるいは、画像表示欄１４１で表示されるエンドエフェクタモデルやワークモデルをドラッグするなどして、画面上で位置や姿勢を調整する。画面上で調整された位置パラメータは、把持位置指定欄１８１に反映される。この把持位置指定欄１８１での位置パラメータの表記も、上述したオイラー角を用いることができる。（複数把持位置選択画面１９０）
【０２１９】
さらに、把持位置の登録は一のワークの一の面（例えば基本方向画像）に対して一箇所に限られず、上述の通り複数箇所を指定することができる。また、複数箇所で登録された把持位置を、画像で確認することもできる。例えば図５８に、複数把持位置選択画面１９０の一例を示す。この複数把持位置選択画面１９０も、画像表示欄１４１と、操作欄１４２を備えている。操作欄１４２には、把持位置を規定したワークモデルの面を選択する面選択欄１９１と、面選択欄１９１で選択された面に設定された把持位置を一覧表示する把持位置一覧表示１９２が設けられる。この例では、面選択欄１９１で面Ｃが選択され、この面Ｃに設定された把持位置として把持１〜３が、把持位置一覧表示１９２に一覧表示されている。この内、把持２を選択すると、これに応じて画像表示欄１４１において、把持２で登録された把持位置、姿勢で、エンドエフェクタモデルがワークモデルを把持する様子が表示される。このようにしてユーザは、登録済みの複数の把持位置を選択して確認することができる。また、必要に応じて登録済みの把持位置を修正して、更新することもできる。ここでも、上述したオイラー角を用いて把持姿勢を表示させることができる。このようにして、オイラー角を用いた登録を行いつつも、ユーザ側においては、難解なオイラー角の概念を詳細に理解せずとも、視覚的に判り易く表示させ、かつ回転軸も補正して表示させ、さらにガイダンス機能により調整可能なパラメータを制限することで、混乱を少なくして設定作業を進めることが可能となる。
（エンドエフェクタ取付位置の較正機能）
【０２２０】
上述の通り、エンドエフェクタは、ロボットのアーム部の先端に取り付けられる。一方、上述した把持位置の登録（ティーチング）や、登録された位置及び姿勢でエンドエフェクタモデルがワークモデルを把持できるかどうかの把持判定（シミュレーション）等は、実際のエンドエフェクタでなく、ロボット設定装置側（ロボットビジョン側）の仮想三次元空間上で行われている。そして仮想三次元空間であるビジョン空間の座標位置から、実空間であるロボット空間の座標位置への変換は、図１７のキャリブレーション部８ｗで得られたキャリブレーション情報に基づいて、変換部８ｘによって行われている。
【０２２１】
しかしながら、ロボット設定装置側で仮想的に設定しているエンドエフェクタモデルの取付状態と、実際のロボットＲＢＴのエンドエフェクタＥＥＴの取付状態が異なると、キャリブレーション情報で規定されたビジョン空間とロボット空間との対応関係が維持されなくなり、実際のロボットＲＢＴを使ってワークを把持しようとする際に、ずれが生じてしまう。
【０２２２】
ここで、エンドエフェクタモデルとフランジ面ＦＬＳの位置関係を図５９に示す。この図において、ロボットのアーム部の先端のフランジ面ＦＬＳの原点ＯFと、エンドエフェクタモデルＥＥＭの位置として、エンドエフェクタモデルＥＥＭの中心ＯEを、それぞれ示している。このエンドエフェクタモデルＥＥＭの位置は、ロボット設定装置側では、ロボットのアーム部先端のフランジ面ＦＬＳに対する、位置（Ｘ，Ｙ，Ｚ）、姿勢（ＲX，ＲY，ＲZ）として設定されている。すなわち、図５９の例ではフランジ面ＦＬＳの原点ＯFから見た、エンドエフェクタモデルＥＥＭの中心ＯEの、位置（Ｘ，Ｙ，Ｚ）と姿勢（ＲX，ＲY，ＲZ）が設定されている。ここで、エンドエフェクタの実際の取付状態に誤差が生じると、フランジ面ＦＬＳの原点に対するエンドエフェクタモデルＥＥＭの位置にずれが生じ得る。この結果、エンドエフェクタの取付状態に起因して、ロボット設定装置側とロボット側とで、ずれた位置で把持を行ってしまうことになる。
【０２２３】
そこで本実施形態においては、このようなずれや誤差が生じないように、実際のエンドエフェクタの取付状態を、ロボット設定装置側に反映させるエンドエフェクタ取付位置の較正機能を備えている。エンドエフェクタ取付位置の較正機能は、図１７に示したエンドエフェクタ取付位置較正部８ｙで行われる。具体的には、ワークの把持位置の登録や、エンドエフェクタを配置したときの干渉判定に用いたエンドエフェクタモデルである、エンドエフェクタの三次元形状を仮想的に表現した三次元ＣＡＤデータを使って、実際のエンドエフェクタを撮像して三次元計測した実測データに対し、三次元サーチを行い、実際の取付位置の位置及び姿勢を取得することで、このような誤差を検出して、ロボット設定装置側のエンドエフェクタの取付位置の設定を較正する。このように、実際のエンドエフェクタを三次元計測した点群と、ロボット設定装置側で仮想三次元空間上で規定したエンドエフェクタモデルの取付状態とのずれを、ユーザが表示部の画像表示領域上で確認しながら手動で調整することができる。
（ずれの自動補正の手順）
【０２２４】
ここで、実際のエンドエフェクタと、三次元ＣＡＤデータ等で構成されたエンドエフェクタモデルとの誤差を自動で補正する較正機能について、図６０のフローチャートに基づいて説明する。なお、予め仮想空間であるビジョン空間の座標位置を、実空間であるロボット空間の座標位置に変換するキャリブレーションを、図１７に示したキャリブレーション部８ｗで実行し、キャリブレーション情報を記憶部９に把持しているものとする。さらに、エンドエフェクタモデルも三次元ＣＡＤデータとして用意されているものとする。
（エンドエフェクタ撮像画面３３０）
【０２２５】
まずステップＳ６００１において、センサ部で実際のエンドエフェクタを撮像するための準備を行う。具体的には、センサ部の一形態である三次元カメラにエンドエフェクタが映るように、ロボットを操作してエンドエフェクタを移動させる。次にステップＳ６００２において、エンドエフェクタに対し三次元計測を実施する。
【０２２６】
このような、センサ部で実際のエンドエフェクタを撮像するためのエンドエフェクタ撮像部の一態様として、例えば、図６１に示すエンドエフェクタ撮像画面３３０を利用する。このエンドエフェクタ撮像画面３３０は、画像表示欄１４１と、操作欄１４２を設けている。画像表示欄１４１にはセンサ部２で撮像されたアーム部ＡＲＭ先端のフランジ部に取り付けられたエンドエフェクタＥＥＴがリアルタイムで表示される。また操作欄１４２には、エンドエフェクタＥＥＴの位置及び姿勢を示すエンドエフェクタ位置指定欄３３１が設けられる。このエンドエフェクタ撮像画面３３０から、センサ部を構成するカメラにロボットのエンドエフェクタＥＥＴが映るように、ユーザが手動でロボットを操作する。このとき、撮像の対象となるのはワークを把持するエンドエフェクタＥＥＴの爪部でなく、アーム部との取付状態である。よってエンドエフェクタＥＥＴの面積が大きくなるように撮像することが望ましい。好ましくは、エンドエフェクタＥＥＴを、通常のワークを把持し易い下向きの姿勢から、横向きの姿勢として、全体像がカメラに映るようにする。このようにして、ユーザはエンドエフェクタＥＥＴの姿勢を位置決めした後、「撮像」ボタン３３２を押下する。これにより、エンドエフェクタの三次元撮像画像が取得される。いいかえると、エンドエフェクタに対し三次元計測が実施される。
【０２２７】
次にステップＳ６００３において、ロボット座標系のフランジ部の位置姿勢Ａを取得する。ここでロボット座標系の位置姿勢Ａは、例えば撮像したエンドエフェクタが取り付けられているフランジ部ＦＬＳの、ロボット座標系の位置及び姿勢とする。なお、ステップＳ６００３とステップＳ６００２の工程の順序は、入れ替えてもよい。
【０２２８】
さらにステップＳ６００４において、ロボット座標系のフランジ部の位置姿勢Ａをビジョン空間上の位置姿勢Ｂに変換する。ここでは、予めキャリブレーションを実行して得られたロボット空間とビジョン空間との座標変換を行うキャリブレーション情報に基づいて、図１７の変換部８ｘが実空間と仮想空間との変換を行う。
【０２２９】
さらにステップＳ６００５において、三次元サーチを実施し、ビジョン空間上のエンドエフェクタの位置姿勢Ｃを検出する。ここでは、エンドエフェクタモデルに使用したＣＡＤデータをサーチモデルとして、ステップＳ６００２で得た三次元計測データに対して三次元サーチを実施する。三次元サーチの方法は、既知のアルゴリズムを適宜利用できる。これにより、ビジョン空間上のエンドエフェクタの位置及び姿勢が検出される。
【０２３０】
さらにステップＳ６００６において、ビジョン空間上のフランジ部ＦＬＳの位置姿勢Ｂに対するエンドエフェクタの位置姿勢Ｃの相対的な位置姿勢を算出する。ここで得られた座標位置が、フランジ部ＦＬＳに対する正確な、いいかえると位置ずれ等を考慮したエンドエフェクタモデルの位置及び姿勢となる。
【０２３１】
最後にステップＳ６００７において、得られた位置及び姿勢をビジョン側のエンドエフェクタ設定に反映する。すなわち、ビジョン側のエンドエフェクタモデルの位置及び姿勢の設定に反映する。このようにして、実際のエンドエフェクタの取付状態を、ビジョン側に自動反映することができる。
（ずれの手動補正の手順）
【０２３２】
以上は、ロボット空間とビジョン空間のずれを自動で補正する手順について説明した。ただ、本発明はずれの補正を自動で行う構成に限られず、手動で行わせることもできる。次に、手動でずれ補正を行う手順について、図１５０のフローチャートに基づいて説明する。ここで、ステップＳ１５０１〜ステップＳ１５０４においては、上述した自動補正に係る図６０のステップＳ６００１〜Ｓ６００４の手順と同じであり、詳細説明を省略する。すなわち、ステップＳ１５０１において、三次元カメラにロボットのエンドエフェクタが映るようロボットを操作し、ステップＳ１５０２において、エンドエフェクタに対し三次元計測の実施し、ステップＳ１５０３において、ロボット座標系のフランジ部の位置姿勢Ａを取得し、ステップＳ１５０４において、ロボット座標系のフランジ部の位置姿勢Ａをビジョン空間上の位置姿勢Ｂに変換する。
【０２３３】
次にステップＳ１５０５において、ビジョン空間上のフランジ部の位置姿勢Ｂから、エンドエフェクタ設定に基づいてエンドエフェクタの位置姿勢Ｄを算出する。ここでは、ビジョン空間上のロボットの先端であるフランジ部の位置姿勢Ｂと、エンドエフェクタ設定に設定されたフランジ部に対するエンドエフェクタの位置姿勢の情報から、エンドエフェクタの位置姿勢Ｄを求める。
【０２３４】
次にステップＳ１５０６において、三次元計測された点群と、エンドエフェクタの位置姿勢ＤのＣＡＤ表示を重畳表示させる。ここでは、ステップＳ１５０５で求めたエンドエフェクタの位置姿勢Ｄの位置に、エンドエフェクタの三次元ＣＡＤデータであるエンドエフェクタモデルＥＥＭを表示させると共に、実際のエンドエフェクタについて三次元計測して得られた点群ＰＣを重畳表示させる。このような重畳表示をさせた、ずれ補正画面の例を、図１５１及び図１５２に示す。
【０２３５】
そしてステップＳ１５０７において、点群とＣＡＤ表示との間に、無視できないずれがあるか否かを判定する。無視できないずれがある場合は、ステップＳ１５０８に進み、ずれを補正するようにエンドエフェクタ設定を変更して、ステップＳ１５０５に戻って上述した処理を繰り返す。このエンドエフェクタ設定は、フランジ部に対するエンドエフェクタの位置及び姿勢を含む。一方、ずれがない場合は、処理を終了する。
（ずれ補正部）
【０２３６】
このようなずれ補正を行うずれ補正部の一態様として、ずれ補正画面の例を図１５１及びｃに示す。これらの図において、図１５１は、無視できないずれが存在する場合を示している。この図に示すずれ補正画面８４０は、画像表示欄１４１に、エンドエフェクタモデルＥＥＭに点群ＰＣを重畳表示させている。この図に示すように、白点で示す、実際にエンドエフェクタを三次元計測した点群ＰＣが、エンドエフェクタモデルＥＥＭよりも左斜め下方向にずれている状態が確認できる。
【０２３７】
また操作欄１４２には、エンドエフェクタ設定欄８４１が設けられており、フランジ部に対するエンドエフェクタの位置（Ｘ、Ｙ、Ｚ）と姿勢（ＲX、ＲY、ＲZ）を規定する。ここでは、図において右側に示す長い方のＸＹＺの座標軸が、ロボット先端であるフランジ部ＦＬＳの原点ＯFを示している。また左側に示す短い方のＸＹＺの座標軸が、ロボット先端（フランジ部）に対する、エンドエフェクタモデルＥＥＭの三次元ＣＡＤデータの原点ＯEを表している。ユーザは、画像表示欄１４１に表示されたエンドエフェクタモデルＥＥＭと点群ＰＣを確認しながら、エンドエフェクタモデルＥＥＭの位置及び姿勢を調整する。例えば操作欄１４２のエンドエフェクタ設定欄８４１で、エンドエフェクタモデルＥＥＭの位置姿勢を数値で指定したり、画像表示欄１４１上でエンドエフェクタモデルＥＥＭをドラッグして移動させる等して、エンドエフェクタモデルＥＥＭが点群ＰＣと重なるように調整する。
【０２３８】
このようにしてエンドエフェクタモデルＥＥＭを点群ＰＣと合致させた例を、図１５２に示す。この例では、エンドエフェクタ設定欄８４１において、Ｚ方向の位置を９０ｍｍに設定して、Ｚ方向にエンドエフェクタモデルＥＥＭをオフセットさせることで合致させている。エンドエフェクタモデルの位置及び姿勢が調整された後、「ＯＫ」ボタン８４２を押下すると、エンドエフェクタ設定が更新される。これにより、実際のエンドエフェクタの取付状態に応じて、ビジョン側の位置姿勢を調整できる。
【０２３９】
さらに、上述したずれの手動補正を、自動補正と組み合わせて行うことも可能である。このような例を図１５３のずれ補正画面８５０に基づいて説明する。この図に示すずれ補正画面８５０は、操作欄１４２に、手動でエンドエフェクタモデルＥＥＭの位置姿勢を調整するためのエンドエフェクタ設定欄８４１を設けると共に、下段に「自動補正」ボタン８４３を設けている。この「自動補正」ボタン８４３を押下すると、内部的に三次元サーチが実行されて、自動でエンドエフェクタモデルＥＥＭの位置姿勢が点群ＰＣと一致するように補正される。例えば、画像表示欄１４１で重畳表示させたエンドエフェクタモデルＥＥＭと点群ＰＣの状態を確認しながら、ずれの自動補正を実行したり、自動補正結果を手動で微調整することができる。特に、エンドエフェクタに光沢の強い金属を使っており、反射光によって点群ＰＣが正確に検出されないことなどから自動補正がうまく機能できない場合、例えば三次元サーチに失敗する場合などには、手動による調整で対応できる。このようにして、ユーザが手動で、ロボット空間とビジョン空間のずれを補正することが可能となる。
【０２４０】
従来、フランジ部とエンドエフェクタの取付部分に、例えば実際にはコネクタのような取り付け用の部材が組み付けられているにもかかわらず、ビジョン側でそのオフセット分を設定し忘れているような場合に、位置や姿勢がずれてしまう問題が生じていた。このような場合に、ずれを確認する機能や、ずれを補正する機能がないと、実運用時にロボットで把持させる際に、うまく把持できなかったり、衝突等の問題が生じることがあった。このような誤差が発生する要因は様々であり、従来は原因追究やデバッグに非常に時間や労力がかかってしまっていた。これに対して本実施形態によれば、このようなずれを手動や自動で補正することが可能となり、実際のエンドエフェクタの取付状態に応じた柔軟な調整を容易に行うことができる。
【０２４１】
なお、図５９の例では、エンドエフェクタモデルＥＥＭの位置を、三次元ＣＡＤデータの中心位置としているが、この例に限らず、他の位置を規定することもできる。例えば図５９では、三次元ＣＡＤデータに外接する直方体の中心としたが、外接直方体の端部分や、入力元の三次元ＣＡＤデータの原点を基準にしても良い。
（実測データをサーチモデルに登録する手順）
【０２４２】
以上は、三次元ＣＡＤデータをサーチモデルとして登録する場合の手順について説明した。ただ本発明は上述の通り、サーチモデルとして三次元ＣＡＤデータに限らず、例えばセンサ部で実際にワークを撮像した実測データをサーチモデルとして登録することもできる。ここで、図２７のステップＳ２７０１において、このような実測データをサーチモデルとして登録する手順を、図６２のフローチャートに基づいて説明する。
【０２４３】
まずステップＳ６２０１において、ワークの登録したい面を上向きにして、ワークを平面上に載置して、センサ部で三次元計測を行う。
【０２４４】
次にステップＳ６２０２において、得られた実測データをサーチモデルとして登録する。
【０２４５】
最後にステップＳ６２０３において、三次元サーチに必要な分のサーチモデルを登録し終えたか否かを判定し、未だの場合はステップＳ６２０１に戻って上記の処理を繰り返し、必要数を登録し終えた場合は処理を終了する。これらの手順の詳細は、図１０２〜図１０６を参照しながら後述する。
（実運用時の手順その１）
【０２４６】
以上のようにして必要な設定作業が終了した状態で、実際にバラ積みされたワーク群に対して、ピッキング動作を行う。ここで、図２８の手順でサーチモデルが登録された状態で、実運用時に、ワークの把持可能かどうか、すなわち検出された各ワークに対して把持解があるか否かを判定する手順を、図６３のフローチャートに基づいて説明する。ここでは、図６の演算部１０が把持解の有無を判定する。
【０２４７】
まずステップＳ６３０１において、バラ積みワークに対して三次元計測を開始する。ここでは、センサ部でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を取得する。
【０２４８】
次にステップＳ６３０２において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。
【０２４９】
次にステップＳ６３０３において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
【０２５０】
次にステップＳ６３０４において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
【０２５１】
そしてステップＳ６３０５において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
【０２５２】
一方、干渉していると判定された場合は、ステップＳ６３０６に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップＳ６３０３に戻って、この把持位置に対して上記処理を繰り返す。
【０２５３】
一方、別の把持位置が登録されていない場合は、ステップＳ６３０７に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップＳ６３０３に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
【０２５４】
このようにして、図６の演算部１０がワークを把持可能な把持解の有無を判定する。そして把持解が得られた場合は、そのワークに対して、エンドエフェクタでもって決定された把持位置にてピックするよう、ロボットコントローラ６に指示を送る。これに従いロボットコントローラ６は、指示されたワークをピックするようにエンドエフェクタを制御する。
【０２５５】
以上の手順では、いずれかのワークで把持解が得られると、その時点で把持位置を検討する処理を終了して、得られた把持解に該当する把持位置でワークを把持するように制御している。ただ、この方法に限らず、例えば把持可能なすべての把持位置を把持位置候補として求めた上で、いずれの把持位置候補を選択するかを決定するように構成してもよい。例えば各把持位置候補の評価指標として評価指標演算部８ｑでスコアを算出して、得られたスコアの最も高いものを把持位置として選択する。また、ワークの置かれた高さ情報に注目し、ワークが置かれた高さが高いもの、いいかえると、バラ積みされたワーク群の内で、より上方に位置するものを把持位置として選択することもできる。好ましくは、スコアと高さ情報の両方を考慮して、演算部１０が複数の把持解の中から選択していく。このようにすることで、より適切なピッキングを行うことが可能となる。
（実運用時の手順２）
【０２５６】
以上は、図２８の手順でサーチモデルが登録された状態で、実運用時の手順を説明した。サーチモデルの登録に際しては、図４８で示したとおり、サーチモデルの姿勢に制限を加えた状態で登録することもできる。ここで、図４８の手順でサーチモデルを登録した状態で、実際にバラ積みされたワーク群に対して、ピッキング動作を行う実運用時の手順を、図６４のフローチャートに基づいて説明する。まずステップＳ６４０１において、バラ積みワークに対して三次元計測を開始する。ここでは、センサ部でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を取得する。
【０２５７】
次にステップＳ６４０２において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。
【０２５８】
次にステップＳ６４０３において、傾斜角度、回転角度の範囲設定から範囲外の姿勢を除外する。
【０２５９】
次にステップＳ６４０４において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
【０２６０】
次にステップＳ６４０５において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
【０２６１】
そしてステップＳ６４０６において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
【０２６２】
一方、干渉していると判定された場合は、ステップＳ６４０７に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップＳ６４０４に戻って、この把持位置に対して上記処理を繰り返す。
【０２６３】
一方、別の把持位置が登録されていない場合は、ステップＳ６４０８に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップＳ６４０４に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
（干渉判定）
【０２６４】
ここで、上述した図６３のステップＳ６３０４や図６４のステップＳ６４０５における、エンドエフェクタモデルを用いた干渉判定の方法について説明する。ワークをエンドエフェクタで把持する際に、エンドエフェクタが他のワークや収納容器など、周囲の障害物と干渉してしまうと、把持を正しく行うことができない。そこで、予め把持位置候補でエンドエフェクタモデルがワークモデルを把持する際の、エンドエフェクタの位置や姿勢を図３１の干渉判定部８ｍで演算することで、周囲の部材との干渉判定を行う。この際、周囲の部材としては、実際にセンサ部２で実測して得られたバラ積みされたワーク群や収納容器の三次元点群が用いられる。また、事前に収納容器などの位置を登録しておき、エンドエフェクタモデルと干渉判定を行うこともできる。一方、エンドエフェクタの三次元ＣＡＤデータは一般にポリゴンデータで構成される。例えば三次元ＣＡＤデータとして多用されるＳＴＬデータは、ポリゴンと呼ばれる微小な三角形の集合体で表現されている。
【０２６５】
このようなポリゴンデータと三次元点群データとで干渉判定を行うには、従来、三次元点群データを構成する各三次元点が、エンドエフェクタモデルの内側にあるか外側にあるを調べ、内側にある場合は干渉、外側にある場合は干渉しないと判定していた。しかしながらこの方法では、各点毎に演算や対比を行う必要があり、データが大きくなると演算量が膨大になってしまう。
（断面モデルを用いた干渉判定の手順）
【０２６６】
そこで本発明の各実施形態においては、エンドエフェクタモデルのポリゴンデータから断面モデルを作成し、三次元点群データの各点を断面モデルに投影して、内外を判定することにより、干渉を判定している。このような干渉判定は、図３１の干渉判定部８ｍにて行われる。ここで、干渉判定を行う手順を図６５のフローチャートに基づいて説明する。
【０２６７】
まず、ステップＳ６５０１において、エンドエフェクタのポリゴンデータを読み込む。次にステップＳ６５０２において、エンドエフェクタのポリゴンデータから断面モデルを作成する。断面モデルは、図２６の断面モデル生成部８ｓでもって生成する。ここで、断面モデル生成部８ｓが断面モデルを作成する方法を、図６６〜図６７Ｅに基づいて説明する。まず、図６６に示すエンドエフェクタモデルＥＥＭのポリゴンデータに対して、基本軸ＢＳＬを設定する。好ましくは、基本軸ＢＳＬはエンドエフェクタモデルＥＥＭの長手方向に沿って設定される。さらに、この基本軸ＢＳＬに直交する直交平面でエンドエフェクタモデルを切断して、断面を複数作成する。ここで、断面を作成する位置は、例えばポリゴンデータの頂点位置とする。あるいは、基本軸に沿って一定距離ごとに断面を複数作成した上で、得られた断面の内、形状に応じて整理してもよい。例えば、同じ形状の断面は排除する。断面の作成は、必要な断面の総数が少なくなるように、基本軸ＢＳＬを設定することが好ましい。例えば断面モデル生成部が、断面の数が少なくなるような基本軸ＢＳＬの方向を自動的演算するように構成してもよい。また、設定された基本軸ＢＳＬにおいて断面を取得する断面位置の指定は、例えば変化の大きい断面を自動的に抽出するように指定することもできる。
【０２６８】
このようにして、エンドエフェクタモデルＥＥＭの基本軸ＢＳＬに沿った各断面の形状と、各断面と対応する基本軸ＢＳＬ上の断面位置を持った断面モデルが作成できる。例えば図６６の例では、基本軸ＢＳＬ上に沿った断面位置ＳＰ１〜ＳＰ５の５つの位置で、それぞれ、図６７Ａ〜図６７Ｅに示す形状の断面ＳＳ１〜断面ＳＳ５が得られる。このようにして得られた断面モデルを用いて、エンドエフェクタモデルが三次元点群と干渉するか否かを判定する。
【０２６９】
具体的には、ステップＳ６５０３において、三次元点群を構成する内、干渉判定の対象となる三次元点を選び、この点の基本軸ＢＳＬ方向における位置から、断面モデルが有する複数の断面の内、どの断面と干渉判定するかを選択する。この選択には、各断面に設定された断面位置を用いる。例えば三次元点の内、図６８Ａに示す三次元点ＴＤＰに対して、エンドエフェクタモデルＥＥＭとの干渉判定を行う場合を考える。三次元点ＴＤＰは、基本軸ＢＳＬに沿う方向において、断面位置ＳＰ３とＳＰ４の間に位置する。よってこの間の断面形状を示す断面ＳＳ３でもって、三次元点ＴＤＰとの干渉判定を行う。
【０２７０】
具体的には、ステップＳ６５０４において、三次元点ＴＤＰから断面ＳＳ３を含む直交平面上に投影した投影点ＰＰ３を演算する。そしてステップＳ６５０５において干渉判定を行う。ここでは、三次元点の投影点ＰＰ３の位置が、図６８Ｂに示すように断面ＳＳ３の外側であれば干渉していないと判定する。一方、図６８Ｃのように断面ＳＳ３の内側であれば、干渉していると判定する。最後にステップＳ６５０６において、他の三次元点があるか否かを判定し、未処理の三次元点が残っている場合はステップＳ６５０３に戻って上記処理を繰り返す。そしてすべての三次元点で干渉判定を終えると、処理を終了する。
【０２７１】
このようにして、計測した三次元点群とエンドエフェクタモデルとの干渉判定を行うことができる。また、以上では三次元点群データとの干渉判定について説明したが、本発明は干渉判定の対象を三次元点に限らず、他の物体、例えば線や面についても、同様の手順でも干渉判定を実施できる。
【０２７２】
さらに、以上の例ではエンドエフェクタのＣＡＤデータがポリゴンデータの例について説明したが、エンドエフェクタの断面形状が計算できる形式であれば、ポリゴンデータに限らず、他のＣＡＤデータ形式でも同様に干渉判定を行える。さらに以上の例では、断面形状を二次元状の平面図で表現する場合について説明したが、断面形状のデータの持ち方もこの形態に限られず、例えば輪郭線の集合のような形式のデータで持っていてもよい。
（追加領域を加えた追加モデルでの干渉判定）
【０２７３】
またエンドエフェクタモデルの干渉判定において、エンドエフェクタモデルに立体的な基本図形で表現した追加領域を追加した追加モデルを用いて干渉判定を行うこともできる。このような追加モデルを用いた干渉判定の手順を、図６９のフローチャートに基づいて説明する。ここでは、基本図形として直方体と円柱を組み合わせた追加領域を、三次元ＣＡＤモデルに追加した追加モデルに対して干渉判定を行う例を説明する。
【０２７４】
まず、ステップＳ６９０１において、追加領域を構成する基本図形の内、直方体の領域について干渉判定を実行する。この結果に応じて、ステップＳ６９０２において、干渉ありと判定された場合は、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
【０２７５】
一方、干渉なしと判定された場合は、ステップＳ６９０３に進み、追加領域を構成する基本図形の内、他の図形である円柱との干渉判定を行う。この結果、ステップＳ６９０４において、干渉ありと判定されれば、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
【０２７６】
一方、干渉なしと判定された場合は、ステップＳ６９０５に進み、三次元ＣＡＤデータとの干渉判定を行う。この結果、ステップＳ６９０６において、干渉ありと判定されれば、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
【０２７７】
一方、干渉なしと判定された場合は、干渉なしとして処理を終了する。
【０２７８】
このように、基本図形毎、あるいは三次元ＣＡＤデータ単位で干渉判定を順次行い、いずれで干渉ありと判定されると、その時点で干渉判定処理を中止して干渉判定ありと出力する。なお、以上は追加領域が直方体と円柱の２つの基本図形で構成された例について説明したが、基本図形が多くなっても手順は同じで、基本図形毎に干渉判定を順次行い、その都度、干渉ありと判定されれば処理を中止する。
（実施形態７）
（把持可否判定検証機能）
【０２７９】
以上は、実運用時に干渉判定の結果、把持解の有無を判別する手順について説明した。ただ本発明は、把持解の有無を判別するのみならず、把持解が得られなかった把持位置の候補について、どのような理由で把持解が得られなかったのかを検証する把持可否判定検証機能を設けてもよい。例えば、把持解候補を一覧表示させ、干渉判定の結果、把持解ありと判定された把持位置はＯＫ、把持解なしと判定された把持位置候補はＮＧと表示させる。この状態で、ＮＧと判定された把持位置を選択して、どのような理由で把持解なしと判定されたかを表示させることで、ユーザはこの情報を参考にして、どのような把持位置であれば把持解として選択されうるかを検討し、把持位置を修正したり、新たな把持位置を追加できるようになる。このような例を実施形態７に係るロボットシステム７０００として、図７０のブロック図に示す。この図に示すロボットシステム７０００は、ロボット設定装置７００と、表示部３Ｂと、操作部４と、センサ部２と、ロボットコントローラ６と、ロボットＲＢＴを備える。なお、図６と同じ部材については、同じ符号を付して詳細説明を適宜省略する。
（表示部３Ｂ）
【０２８０】
表示部３Ｂは、画像表示領域３ｂと、把持解候補表示領域３ｃを備える。把持解候補表示領域３ｃは、ワーク把持可否表示領域３ｄと、ワーク把持不能要因表示領域３ｅを含む。
【０２８１】
画像表示領域３ｂは、エンドエフェクタの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたエンドエフェクタモデルを、仮想的な三次元空間上で三次元状に表示させるための部材である。
【０２８２】
把持解候補表示領域３ｃは、三次元サーチ部８ｋでサーチされた一以上のワークのサーチ結果の任意の一に対して、設定されている把持位置を全て列挙して表示させるための部材である。
【０２８３】
ワーク把持可否表示領域３ｄは、三次元ピック判定部８ｌによる、各ワークに対して指定された把持位置における把持の可否の判定結果を表示させるための部材である。
【０２８４】
ワーク把持不能要因表示領域３ｅは、三次元ピック判定部８ｌによる、各ワークに対して指定された把持位置における把持が不能と判定された把持位置に対して、該把持不能とされた要因を表示させるための部材である。
（ロボット設定装置７００）
【０２８５】
ロボット設定装置７００は、入力画像取得部２ｃと、演算部１０と、記憶部９と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。演算部１０は、エンドエフェクタモデル登録部８ｕと、ワークモデル登録部８ｔと、把持位置特定部８ｄと、サーチモデル登録部８ｇと、三次元サーチ部８ｋと、三次元ピック判定部８ｌと、傾斜角度設定部８ｎとを備える。
【０２８６】
この把持位置特定部８ｄは、ワーク側把持箇所指定部８ｄ１と、エンドエフェクタ側把持設定部８ｄ２を備える。ワーク側把持箇所指定部８ｄ１は、画像表示領域３ｂにエンドエフェクタモデルを表示させた状態で、ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。エンドエフェクタ側把持設定部８ｄ２は、画像表示領域３ｂに表示されるエンドエフェクタモデルに対して、ワークを把持する把持位置を指定するための部材である。
【０２８７】
サーチモデル登録部８ｇは、ワークの三次元形状を仮想的に表現する第二ワークモデルを、入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するための部材である。なおサーチモデルとして登録する第二ワークモデルを、ワーク側把持箇所指定部８ｄ１で把持位置を指定するワークモデルと同じとすることが好ましい。これにより、三次元サーチを行うサーチモデルを、把持位置を指定するワークモデルと共通化することで、ユーザは設定作業を省力化できる。また実運用時においても、把持できるワークをサーチするワークモデルと、把持判定を行うワークモデルと一致させることで、サーチされたワークモデルに対して、このワークモデルに設定された把持位置で把持可能かどうかを検討できるため、効率良く処理を行うことが可能となる。
【０２８８】
傾斜角度設定部８ｎは、ワークの姿勢に対し、許容される傾斜角度の範囲を設定するための部材である。
【０２８９】
三次元ピック判定部８ｌは、三次元サーチ部８ｋでサーチされた各ワークのサーチ結果に対して、ワーク側把持箇所指定部８ｄ１で当該ワークに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。この三次元ピック判定部８ｌは、干渉判定部８ｍと、角度判定部８ｏとを含む。
【０２９０】
干渉判定部８ｍは、三次元サーチ部８ｋでサーチされた各ワークのサーチ結果に対して、ワーク側把持箇所指定部８ｄ１でこのワークに対して指定された把持位置について、該ワークの周囲に存在する物体との干渉の有無を判定するための部材である。また干渉判定部８ｍにより干渉ありと判定されたワークに対して、三次元ピック判定部８ｌが把持不能と判定する。これにより、ワークを把持できない場合の原因が示されることで、ユーザは例えば、どのような把持位置を追加すればよいかを検討しやすくなる等、把持位置の再設定に資することができる。
【０２９１】
角度判定部８ｏは、三次元サーチ部８ｋでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部８ｎで設定された傾斜角度範囲内か否かを判定するための部材である。
【０２９２】
三次元ピック判定部８ｌは、角度判定部８ｏにより、三次元サーチ部８ｋでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部８ｎで設定された傾斜角度範囲内でないと判定された場合に、該ワークを把持不能と判定するよう構成される。これにより、ワークの姿勢が急峻すぎて把持ができない、あるいは三次元測定の精度が期待できない場合に、これを排除することで把持位置の選択や判定の誤判定を回避し、信頼性を高めることができる。
（把持解候補一覧表示機能）
【０２９３】
次に、把持解ＮＧの理由を表示させる手順を、図７１のフローチャートに基づいて説明する。なお、設定時の手順、及び実運用時の手順は、上述した図２７、図２８、図６３等と基本的に同様であり、詳細説明を適宜省略する。
【０２９４】
まずステップＳ７１０１において、対象となるワーク群に対して三次元計測を行う。ここではバラ積みされたワーク群に対して、センサ部を用いて形状の情報を有する実測データを取得し、これを入力画像とする。
【０２９５】
次にステップＳ７１０２において、入力画像に対して三次元サーチを実施し、入力画像中における各ワークの位置及び姿勢をそれぞれ検出する。
【０２９６】
そしてステップＳ７１０３において、検出されたワークの中から、検証対象のワークを一、選択する。
【０２９７】
さらにステップＳ７１０４において、選択したワークの検出位置と、このワークに対して予め登録された把持姿勢から、このワークをエンドエフェクタで把持しようとする場合の、エンドエフェクタモデルの位置及び姿勢を計算する。
【０２９８】
次にステップＳ７１０５において、演算されたエンドエフェクタモデルの位置及び姿勢における傾斜角度が、設定された範囲外か否かを判定する。ここで設定範囲外と判定された場合はステップＳ７１０６に進み、把持ＮＧと判定とすると共に、ＮＧの要因を「傾斜角度」と設定した上で、ステップＳ７１１１にジャンプする。
【０２９９】
一方、ステップＳ７１０５において、エンドエフェクタモデルの傾斜角度が設定範囲内と判定された場合はステップＳ７１０７に進み、計算した位置においてエンドエフェクタモデルと周囲の物体との干渉判定を実施する。ここで周囲の物体とは、エンドエフェクタモデルの周囲に存在する、収納容器や他のワーク等である。予め周囲の物体を、三次元ＣＡＤデータ等でモデル化しておき、ワークモデルを把持する位置及び姿勢にエンドエフェクタモデルを移動させた場合、これらとエンドエフェクタモデルとが干渉するか否かを演算により判定する。
【０３００】
そしてステップＳ７１０８において、干渉判定の結果、エンドエフェクタモデルが周囲の物体と干渉していると判定された場合は、ステップＳ７１０９において、把持ＮＧ判定とし、ＮＧの要因を「点群干渉」と設定した上で、ステップＳ７１１１にジャンプする。
【０３０１】
一方、ステップＳ７１０８において、干渉判定の結果、エンドエフェクタモデルが周囲の物体と干渉していないと判定された場合は、ステップＳ７１１０において、把持ＯＫ判定とした上で、ステップＳ７１１１に進む。
【０３０２】
そしてステップＳ７１１１において、選択したワークに別の把持姿勢が設定されているか否かを判定し、別の把持姿勢がある場合は、ステップＳ７１０４に戻り、上記の処理を繰り返す。一方、把持姿勢がないと判定された場合は、ステップＳ７１１２において、全ての把持解の候補について、把持ＯＫ／把持ＮＧの判定結果と、把持ＮＧの場合の要因をワーク把持不能要因表示領域３ｅに表示させる。
【０３０３】
このようにして、与えられたワーク群に対して把持が可能かどうかを検証し、さらに把持できない場合の要因をリストアップすることができる。
（把持シミュレーション）
【０３０４】
次に、具体的な把持の判定を行う把持シミュレーションの詳細について説明する。ここでは、図７２に示すようなワークＷＫ１０を用いてバラ積みピッキングを行う場合に、把持が可能かどうかの判定を行う例について説明する。このワークＷＫ１０について、基本方向画像生成部８ｅ’で六面図に相当する基本方向画像を生成し、各基本方向画像をサーチモデルとして、サーチモデル登録部８ｇで登録する。基本方向画像の例を、図７３Ａ〜図７３Ｅに示す。これらの図において、図７３Ａは図７２のワークをＺ軸の正方向側から見た高さ画像Ａであり、図７３ＢはＺ軸の負方向側から見た高さ画像Ｂであり、図７３ＣはＸ軸の正方向側から見た高さ画像Ｃであり、図７３ＤはＸ軸の負方向側から見た高さ画像Ｄであり、図７３ＥはＹ軸の正方向側から見た高さ画像Ｅであり、図７３ＦはＹ軸の負方向側から見た高さ画像Ｆを、それぞれ示している。
（ワーク選択画面２１０）
【０３０５】
ワークをエンドエフェクタで把持可能かどうかの判定を行うために、バラ積みされたワーク群を撮像した入力画像に対して三次元サーチを行い、ワークを検出した状態において、対象となるワークを選択する（図７１のステップＳ７１０３）。ワークの選択は、例えば図７４に示すワーク選択画面２１０から行う。この図に示すワーク選択画面２１０は、画像表示欄１４１と操作欄１４２を備える。画像表示欄１４１には、バラ積みされたワーク群を撮像した実測データである入力画像が表示されている。また入力画像に対し、ワークが検出された位置に重ねてサーチ結果が点群で表示されている。画像表示欄１４１の画面をドラッグすることで、視点を変更できる。
（ラベル番号、モデル番号）
【０３０６】
操作欄１４２には、対象となるワークを選択するための対象ワーク選択欄２１１と、この対象ワークを三次元サーチするために用いたサーチモデルを示す検出サーチモデル表示欄２１２と、選択されたワークに対する、すべての把持位置候補を一覧表示させるための「把持確認」ボタン２１３が設けられる。図７４の例では、入力画像に対して三次元サーチした結果、ワークが１８個存在しており、この中で３番目のワークを選択している状態を示している。ここで検出されたサーチ結果を区別するため、サーチ結果には識別情報が設定される。ここでは識別情報として、通し番号のラベル番号が設定されている。図７４の対象ワーク選択欄２１１には、選択中の対象ワークのラベル番号として「３」が表示されている。また画像表示欄１４１中では、選択された対象ワークのサーチ結果が、表示されている。具体的には、サーチ結果の様子として、該当するサーチモデルの特徴点が入力画像の点群に重畳表示した形で表示されている。この状態で対象ワークのラベル番号を変更すると、これに応じて画像表示欄１４１中で選択されているワークも変更される。さらに検出サーチモデル表示欄２１２には、対象ワークを三次元サーチするために用いたサーチモデルとして、サーチモデルＥ（図７３Ｅの高さ画像）が表示されている。なお、サーチモデルにも個別の識別情報が付与されており、ここではモデル番号と呼ぶ。図７４では検出サーチモデル表示欄２１２にモデル番号として、通し番号のラベル番号３のワークモデルの「Ｅ」が表示されている。
（把持解候補表示画面２２０）
【０３０７】
さらに、ワーク毎に設定されている把持位置、すなわち把持解候補を把持解候補表示領域３ｃに一覧表示させることもできる。図７４のワーク選択画面２１０の例では、「把持確認」ボタン２１３を押下すると、図７５の把持解候補表示画面２２０が表示部に表示される。把持解候補表示領域３ｃの一形態である把持解候補表示画面２２０では、図７４の対象ワーク選択欄２１１で選択された対象ワークに対して設定されたすべての把持位置が把持解候補として把持解候補表示欄２２１に列挙される。把持解候補表示欄２２１には、把持解毎に、把持位置のラベル番号を示すワーク把持位置表示欄２２３と、ワークの把持可否判定結果を示すワーク把持可否表示欄２２４と、把持不能の場合にその理由を示すワーク把持不能要因表示欄２２５が設けられる。図７５の例では、対象ワーク選択欄２１１で選択された選択された３番目のサーチ結果の対象ワークに対し、すべて把持候補である５つがリストアップされ、把持ＯＫ、ＮＧの判定結果と共に、ＮＧとなった原因が表示される。また把持解候補表示欄２２１で選択されているワークの把持位置に対応して、画像表示欄１４１で選択されたワークと、これを把持するエンドエフェクタモデルが、把持位置を把持する姿勢で表示される。そして把持解候補表示欄２２１で把持位置の選択を変更すると、これに応じて画像表示欄１４１中のワークも変更され、さらにこのワークを把持するエンドエフェクタモデルの姿勢も更新される。
【０３０８】
図７５の例では、図７３Ｅのワークをラベル番号３番の把持位置候補で把持する状態を示している。ここでは把持ＯＫの判定結果であるため、ワーク把持不能要因表示欄２２５には何も表示されない。一方、ワーク把持不能要因表示欄２２５でラベル番号４番の把持位置候補を選択すると、図７６に示すように画像表示欄１４１中の表示も変更される。ラベル番号４の把持位置候補は把持ＮＧの判定結果であるため、ワーク把持不能要因表示欄２２５には把持不能と判定された理由が表示される。さらに画像表示欄１４１中では、これに対応するエンドエフェクタモデルが表示され、実際に把持姿勢がどのような状態となっているかを視覚的に確認することができる。ここでは「点群干渉」と表示され、エンドエフェクタが収納容器の平面と干渉していることが確認できる。この結果、ユーザはこのような姿勢のワークに対し、干渉しない位置や姿勢での把持位置の追加を検討することが可能となる。
【０３０９】
同様に、ワーク把持不能要因表示欄２２５でラベル番号２番の把持位置候補を選択すると、図７７に示す把持解候補表示画面２２０となり、ラベル番号２の把持位置候補が把持ＮＧの判定結果となった理由として、「傾斜角度」とワーク把持不能要因表示欄２２５に表示される。さらに画像表示欄１４１中では、これに対応するエンドエフェクタモデルが表示され、エンドエフェクタが急峻な傾斜角度で把持しようとした状態となっており、そもそも干渉判定対象から除外されていることが判る。
【０３１０】
また、判定結果に応じて、画像表示欄１４１で表示されるエンドエフェクタの表示態様を変更させてもよい。図７５の例では、把持ＯＫの場合にエンドエフェクタモデルを白色で表示させ、また図７６や図７７の例では、把持ＮＧの場合にエンドエフェクタモデルを赤色で表示させている。これによりユーザは視覚的に把持の判定結果を容易に区別できる。また、把持位置を追加する際に、エンドエフェクタモデルの姿勢を調整して、干渉しない状態となった時点で表示態様を変更するように、画像表示欄１４１における表示を更新させる構成にしてもよい。このように構成することで、ユーザは例えばエンドエフェクタモデルの姿勢を、赤色から白色になるまで変更することができ、姿勢の調整作業を判り易く行える利点が得られる。
【０３１１】
このように把持可否判定検証機能を設けることで、把持したいワークが把持不能と判定された場合に、どのように把持を設定すればよいか、例えば新たな把持位置を追加したり、既存の把持位置の設定を変更するなどの作業を検討する際の指針となる。例えば、図７８、図７９に示す例では、サーチモデルＣ（図７３Ｃ）のワークに対して２つの把持位置候補が存在しているものの、いずれも点群干渉が理由で把持不能ととなっている。いずれも、画像表示欄１４１中に破線の円で示すように、エンドエフェクタモデルの爪の先端が別のワークに干渉していることが原因であることが判る。このことから、現在の把持位置の反対側の箇所を把持するように、新たな把持位置を追加すれば、ＯＫの把持解が得られることが判る。そこで、現在の把持位置の反対側にも新たな把持位置（把持姿勢Ｃ−００２）を追加するよう把持位置特定部８ｄで設定すると、図８０に示すように、把持ＯＫの判定結果を得られるようになる。このようにして、把持位置や姿勢の調整作業をユーザが行う際、対応策を検討しやすい環境が与えられ、設定が容易なロボットシステムが実現される。
【０３１２】
また、エンドエフェクタの傾斜角度のしきい値を、ユーザによる設定で変更することも可能である。例えば、ワークの収納容器として底の深い箱を用いる場合には、エンドエフェクタの傾斜が大きくなると、エンドエフェクタ以外にロボットのアーム部分が収納容器の壁と衝突し易くなるため、角度範囲を狭く設定する。逆に、収納容器として底の浅い箱を用いる場合は、エンドエフェクタさえ干渉しなければ、ロボットのアーム部分が箱に衝突するケースは生じ難いため、角度範囲を広く設定することができる。このように、角度範囲の設定を調整することで、実際の状況に応じて把持の可否判定を柔軟に調整することが可能となる。
【０３１３】
以上のようにして、選択したワークに対する全ての把持解が一覧表示され、ＮＧだったものについては、そのＮＧ要因が合わせて表示されるため、取れそうなのに、いつまでの把持解の候補とならないワークがあった場合に、それがどういう要因で把持されないのか、原因を特定することが容易になる。また、原因が特定できるため、新たにどのような把持姿勢を追加すれば良いかも判り易くなる。
（実施形態８）
【０３１４】
以上の例では、三次元サーチに際して、サーチモデル毎に個別にサーチ結果を取得する例について説明した。すなわち、同じワークの異なる面を示す複数の基本方向画像でもって三次元サーチを行い、得られた結果についてもそれぞれ別々のワークとして認識される。いいかえると、同じワークの異なる面についても、それぞれ個別にサーチされる結果、異なるワークとして検出されることが起こり得る。一方、従来の三次元サーチでは、一のワークモデルを示す三次元形状でもってサーチされるため、このようなことは生じず、同じワークの異なる面も、一つのワークとして検出される。ただし、多くの面が存在するワークではサーチが複雑になる上、誤検出の可能性も高くなる。これに対して上述した実施形態に係る方法では、単純な面でサーチすることから、サーチの処理を簡素化でき、低負荷化、高速化等の点で有利となる。反面、面ごとにサーチされる結果、上述の通り得られるサーチ結果が、別個のワークとして捉えられ、同じワークであっても別の面がそれぞれ個別に検出されるという問題があった。
【０３１５】
そこで、得られたサーチ結果を統合し、ワーク毎に纏めたり、ある面のサーチ結果から別の面のサーチ結果を推定することで、三次元サーチでは検出できなかった面や、検出精度が低い面についても、把持解の候補として利用できるようにすることができる。このような例を実施形態８に係るロボットシステムとして、図８１のブロック図に示す。この図に示すロボットシステム８０００は、ロボット設定装置８００と、表示部３Ｂと、操作部４と、センサ部２と、ロボットＲＢＴを備える。なお、図６、図７０等と同じ部材については、同じ番号を付して詳細説明を適宜省略する。
（ロボット設定装置８００）
【０３１６】
ロボット設定装置８００は、入力画像取得部２ｃと、演算部１０と、記憶部９と、入出力インターフェース４ｂと、表示インターフェース３ｆと、ロボットインターフェース６ｂを備える。演算部１０は、基本方向画像生成部８ｅ’と、把持位置特定部８ｄと、サーチモデル登録部８ｇと、三次元サーチ部８ｋと、画像推定部８ｚと、サーチ結果統合部８ｐと、三次元ピック判定部８ｌと、傾斜角度設定部８ｎとを備える。
【０３１７】
基本方向画像生成部８ｅ’は、ワークモデルに対して、仮想三次元空間上で互いに直交する三軸の各軸方向のいずれかから見た複数の高さ画像を、基本方向画像として生成するための部材である。
【０３１８】
把持位置特定部８ｄは、基本方向画像生成部８ｅ’で生成された基本方向画像の一に対して、該基本方向画像が示すワークモデルをエンドエフェクタで把持する把持位置を複数、特定するための部材である。この把持位置特定部８ｄは、ワーク側把持箇所指定部８ｄ１と、エンドエフェクタ側把持設定部８ｄ２を備える。
【０３１９】
ワーク側把持箇所指定部８ｄ１は、画像表示領域３ｂにエンドエフェクタモデルを表示させた状態で、ワークの三次元形状を仮想的に表現する、三次元ＣＡＤデータで構成されたワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。
【０３２０】
エンドエフェクタ側把持設定部８ｄ２は、画像表示領域３ｂに表示されるエンドエフェクタモデルに対して、ワークを把持する把持位置を指定するための部材である。
【０３２１】
サーチモデル登録部８ｇは、基本方向画像生成部８ｅ’で生成された複数の基本方向画像を、入力画像取得部２ｃで取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いるサーチモデルとしてそれぞれ登録するための部材である。またサーチモデル登録部８ｇは、複数登録されるサーチモデル同士の相対位置を関係性情報として登録することもできる（詳細は後述）。
【０３２２】
画像推定部８ｚは、三次元サーチ部８ｋでサーチされ、入力画像中からサーチモデル単位で抽出された、各サーチ結果に対して、このサーチに用いられた各サーチモデルが、元のワークモデルをどの方向から見た基本方向画像であり、このワークモデルに対して登録されている他のサーチモデルの基本方向画像との相対的な位置関係に基づいて、このサーチ結果が示すワークモデルに対して、三次元サーチ部のサーチ結果に含まれていない未サーチの基本方向画像の位置及び姿勢を推定画像として推定するための部材である。この画像推定部８ｚは、例えば後述する角度判定部８ｏにより、三次元サーチ部８ｋでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部８ｎで設定された傾斜角度範囲内にある場合は、このサーチ結果と相対的な位置関係を有する推定画像を推定するよう構成できる。
【０３２３】
サーチ結果統合部８ｐは、三次元サーチ部８ｋでサーチされ、入力画像中からサーチモデル単位で抽出された、各サーチ結果に対して、サーチに用いられた各サーチモデルが、元のワークモデルをどの方向から見た基本方向画像であるかの相対的な位置関係に基づいて、複数のサーチ結果の内、隣接するもの同士を共通のワークに関する統合結果として統合するための部材である。
【０３２４】
三次元ピック判定部８ｌは、サーチ結果統合部８ｐで統合された統合結果、及び三次元サーチ部８ｋでサーチされた未統合の各サーチ結果に対して、把持位置特定部８ｄでワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。この三次元ピック判定部８ｌは、干渉判定部８ｍと、角度判定部８ｏとを備える。
【０３２５】
これにより、三次元サーチされたサーチ結果に対して、個別に保持判定を行うのでなく、面同士の関係性情報を用いてワークの位置及び姿勢をより正確に推定できるので、サーチされていない面、あるいはサーチ結果の精度が低い面についても、検出できるようになり、通常であればサーチが困難な面も含めて保持位置候補として検討することが可能となり、保持解が得られる可能性を高めることが可能となる。
（面同士の関係性情報を含めたサーチモデルを登録する手順）
【０３２６】
以上のロボット設定装置に対して、ワークモデルやエンドエフェクタモデルの登録、把持位置の登録などの設定を行う手順は、例えば図27のフローチャートで示した手順が利用できる。ここで、図27のステップＳ２７０１において、サーチモデルとして三次元ＣＡＤデータを用いると共に、ワークの面同士の関係性情報を含めたサーチモデルを登録する手順を、図８２のフローチャートに基づいて説明する。
【０３２７】
まずステップＳ８２０１において、ワークの三次元ＣＡＤデータモデルを読み込む。
【０３２８】
次にステップＳ８２０２において、三次元ＣＡＤデータモデルの外接直方体の中心を、三次元ＣＡＤデータの原点に補正する。
【０３２９】
さらにステップＳ８２０３において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を基本方向画像として生成する。基本方向画像は、図８１の基本方向画像生成部８ｅ’で行われる。ここで、三次元ＣＡＤデータから高さ画像を生成する際は、ＣＡＤの原点が高さ画像の中心になるように生成する。
【０３３０】
次にステップＳ８２０４において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。
【０３３１】
さらにステップＳ８２０５において、複数登録されるサーチモデル同士の相対位置を関係性情報として登録する。ここでは、サーチモデル登録部８ｇが、残った高さ画像と、上下左右前後の各面の関係性情報を保存する。
【０３３２】
最後にステップＳ８２０５において、生成された高さ画像を用いてサーチモデルを登録する。このようにして、ワークの面同士の関係性情報を含めたサーチモデルが登録される。
（面の関係性情報）
【０３３３】
ここでワークを特定方向から見た面同士の相対位置関係を示す関係性情報について説明する。例えば、図７に示したようなワークの場合、見え方の異なる面は、図９Ａ〜図９Ｄで示した４面となる。これらの図において、図９Ａで示すモデルＡは、Ｘ軸の正方向から見た高さ画像である。ただ、Ｘ軸の負方向から見た画像にも一致する。また図９Ｂに示すモデルＢはＹ軸の正方向から見た高さ画像であるところ、Ｙ軸の負方向から見た画像にも一致する。一方で図９Ｃに示すモデルＣは、Ｚ軸の正方向から見た画像のみに一致する。また図９Ｄに示すモデルＤは、Ｚ軸の負方向から見た画像のみに一致する。
【０３３４】
ここで、予め生成された高さ画像であるモデルＡ、Ｂ、Ｃ、Ｄが、図７に示すワークの三次元ＣＡＤデータを、どの座標軸方向から、どの回転状態で見た画像と一致するかという情報を、面の関係性情報を表す情報とする。このような、面の関係性情報があれば、各モデルのサーチ結果から、元の三次元ＣＡＤモデルの姿勢を求めることができるようになる。例えば、図９ＡにおけるモデルＡの左右の面には、図９ＢのモデルＢがそれぞれ隣り合って存在する。またモデルＡの上面には図９ＣのモデルＣが、下面には図９ＤのモデルＤが、それぞれ隣り合って存在する。この結果、三次元サーチの結果得られたサーチ済み画像において、モデルＡとモデルＢの検出結果が隣り合っていた場合に、同じワークに対するサーチが行われた結果であることが判る。よってこれらのサーチ結果を、１つのサーチ結果として統合することができる。ここで、統合されたサーチ結果の集合を統合結果と呼ぶ。
【０３３５】
またサーチ結果を統合することで、評価指標を更新することもできる。すなわち、精度が高くないサーチ結果であっても、統合結果に精度の高いサーチ結果が得られている場合は、統合結果の評価指数を高くして、把持位置の選択等に際して正しい把持解としてより優先させることができる。
（未サーチ基本方向画像）
【０３３６】
さらに、三次元サーチに失敗した場合やサーチ自体が行われなかった場合のように、サーチされない面があっても、統合結果を利用して推定することが可能となる。すなわち、複数のサーチ結果を統合してワークの統合結果を得た際に、このワークを構成する面の内で三次元サーチで検出されなかった面が存在する場合であっても、他の面でサーチ結果が得られていれば、ワーク自体の姿勢や位置を演算できる。この結果、予めワークに対して把持位置を登録したワークモデルや三次元サーチ用のサーチモデルが登録されている場合は、サーチされていない面の情報も、ワークの姿勢から推定できる。よって、このようなサーチの結果として得られたのでない、推定によって得られた面（未サーチ基本方向画像と呼ぶ。）をも、把持位置の候補に利用することで、実際にサーチされなかった面の把持位置をも把持解の候補として検討でき、適切な把持解が得られ易くなる利点が得られる。例えば三次元サーチの結果、図９Ｂに示すモデルＢが得られた場合に、その横には図９Ａに示すモデルＡの面が存在するものと推定できる。これにより、仮にモデルＡがサーチ結果として実際に検出されていなかったとしても、モデルＢのサーチ結果から、モデルＡの面を推定することができるため、把持解の候補としてモデルＡの面に登録された把持姿勢を用いることができるようになり、この結果、把持解の候補が増えてピッキングされ易くなる。
（面の関係性情報を用いた把持解の算出）
【０３３７】
次に、面の関係性情報を用いた把持解算出の効果について、図７２に示したワークＷＫ１０を用いて説明する。このワークＷＫ１０の三次元ＣＡＤデータから、図７３Ａ〜図７３Ｆに示す基本方向画像を基本方向画像生成部８ｅ’でもって生成し、これらをサーチモデルとしてサーチモデル登録部８ｇで登録する。これらの図において、図７３ＡはＺ軸の正方向から見た高さ画像であり、これをモデルＡとする。同様に図７３ＢはＺ軸の負方向から見た高さ画像であり、これをモデルＢとする。また図７３ＣはＸ軸の正方向から見た高さ画像であり、モデルＣとする。さらに図７３ＤはＸ軸の負方向から見た高さ画像であってモデルＤ、図７３ＥはＹ軸の正方向から見た高さ画像であってモデルＥ、図７３ＦはＹ軸の負方向から見た高さ画像であってモデルＦを、それぞれ示している。
【０３３８】
ここで、これらの各基本方向画像に対し、図８３Ａ〜図８３Ｆに示すように、ワークモデルＷＭ１０をエンドエフェクタモデルＥＭ１０で把持する把持姿勢が１つずつ、把持位置特定部８ｄで登録されているものとする。ここで図８３Ａは、図７３Ａの基本方向画像に対して、把持姿勢Ａ−０００を登録している状態を示している。また図８３Ｂは、図７３Ｂの基本方向画像に対して、把持姿勢Ｂ−０００を登録している状態を示している。さらに図８３Ｃは、図７３Ｃの基本方向画像に対して、把持姿勢Ｃ−０００を登録している状態、図８３Ｄは、図７３Ｄの基本方向画像に対して、把持姿勢Ｄ−０００を登録している状態、図８３Ｅは、図７３Ｅの基本方向画像に対して、把持姿勢Ｅ−０００を登録している状態、図８３Ｆは、図７３Ｆの基本方向画像に対して、把持姿勢Ｆ−０００を登録している状態を、それぞれ示している。この場合に、面の関係性情報を用いた把持解の算出について、図８４、図８５、図８６に基づいて説明する。
【０３３９】
図８４のワーク選択画面２１０は、バラ積みされたワーク群を撮像した入力画像に対して三次元サーチを行った結果、１２個のワークが検出されている状態を示している。画像表示欄１４１には、入力画像が表示されている。また操作欄１４２には、対象となるワークを選択するための対象ワーク選択欄２１１と、検出サーチモデル表示欄２１２と、選択されたワークにおける把持位置候補を一覧表示させるための「把持確認」ボタン２１３が設けられている。図８４の例では、三次元サーチされた１２個のワークの内、２番目のワークが対象ワーク選択欄２１１で選択されており、また画像表示欄１４１中では、選択された２番目の対象ワークのサーチ結果が表示されている。具体的には、サーチ結果の様子として、該当するサーチモデルの特徴点が入力画像の点群に重畳表示した形で表示されている。さらに検出サーチモデル表示欄２１２には、２番目の対象ワークを検出したサーチモデルとして、サーチモデルＣ，Ｆ，Ａが表示されている。この状態で、３種類のサーチモデルＣ、Ｆ、Ａ（図７３Ｃ、図７３Ｆ、図７３Ａ）が統合されている。
【０３４０】
ここで、仮にワークの面の関係性情報を用いなかったとすると、モデルＦやモデルＡは、画像表示欄１４１に示すように入力画像上で側面の一部しか見えていない状態であるため、サーチ結果としては検出困難であったと思われる。また仮に検出できていたとしても、評価指標が低く、優先度の低い結果となると思われる。これに対し、関係性情報を用いることで、図８４のように、サーチモデルＣのみならず、サーチモデルＦやサーチモデルＡも検出され、あるいは推定されて、把持位置候補として利用すること可能となる。
【０３４１】
図８４のワーク選択画面２１０において、「把持確認」ボタン２１３を押下すると、図８５の把持解候補表示画面２２０が表示される。この把持解候補表示画面２２０では、図８４の対象ワーク選択欄２１１で選択された２番目の対象ワークに対して設定された把持位置が把持解候補として把持解候補表示欄２２１に列挙される。把持解候補表示欄２２１には、検出サーチモデル表示欄２１２で表示されたサーチモデルＣ、Ｆ、Ａに対し、それぞれ設定された把持位置（図８３Ｃ、図８３Ｆ、図８３Ａ）に対するワークの把持可否判定結果がワーク把持可否表示欄２２４に、把持不能の理由がワーク把持不能要因表示欄２２５に、それぞれ表示されている。まずサーチモデルＣについては、判定結果が把持ＮＧであり、その理由が点群データの干渉であることが示されている。また画像表示領域においては、把持位置Ｃ−０００に対応する姿勢でワークを把持しようとするエンドエフェクタモデルＥＭ１０が赤色に表示されており、干渉して把持できない様子を示している。ここで、仮に面の関係性情報を用いなかったとすると、サーチモデルＣのみが三次元サーチされる結果、把持解の候補はこのサーチモデルのＣ−０００のみであり、結果として把持解を得られないこととなる。
【０３４２】
これに対して、関係性情報を用いることで、図８５、図８６に示すようにサーチモデルＣ以外にサーチモデルＦ、Ａも対象となり、把持位置候補もＦ−０００とＡ−０００が追加されていることが判る。そして追加された把持位置候補の内、サーチモデルＦの把持位置候補Ｆ−０００においては、把持ＮＧの判定結果となっているが、サーチモデルＡの把持位置候補Ａ−０００においては、把持ＯＫの判定結果が得られており、図８６に示すようにエンドエフェクタが白色で表示され、点群データに干渉することなく、無事に把持解が得られている。この結果、関係性情報を用いないと把持解が得られなかった場合でも、関係性情報を用いることで、把持解を得ることが可能となる。すなわち、三次元サーチの設定を変更、例えば照明やカメラの配置を調整したり、サーチのアルゴリズム等を変更することなく、同じサーチ条件のままで、言い換えると三次元サーチの精度を変更することなく、把持解が得られる可能性を高めることが可能となる。このように、面の関係性情報を用いることで、把持解の候補を増やし、ピッキングされ易い結果が得られる。
（実運用時の手順その３）
【０３４３】
ここで、図８２の手順でサーチモデルが登録された状態で、実運用時に、三次元サーチと把持可否判定を行う手順を、図８７のフローチャートに基づいて説明する。
【０３４４】
まずステップＳ８７０１において、バラ積みワークに対して三次元計測を開始する。ここでは、図８１に示すセンサ部２でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を入力画像として入力画像取得部２ｃでもって取得する。
【０３４５】
次にステップＳ８７０２において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。三次元サーチは、図８１の三次元サーチ部８ｋで行われる。
（統合結果の生成）
【０３４６】
さらにステップＳ８７０３において、三次元サーチのサーチ結果と、各面の関係性情報から、同じワークを示す結果を統合する。ここではサーチ結果統合部８ｐが、サーチに用いたサーチモデルに登録された関係性情報を利用して、同じワークを撮像したサーチ結果同士を関連付ける。すなわち、サーチ結果をサーチした元となる共通のワークモデルをどの方向から見た基本方向画像であるかの相対的な位置関係に基づいて、複数のサーチ結果の内、隣接するもの同士を、サーチ結果統合部８ｐで統合する。このようにして得られた統合結果は、同じワークを示すものとして共通に扱う。
（未サーチ基本方向画像の生成）
【０３４７】
さらにステップＳ８７０４において、三次元サーチ結果と各面の関係性情報から、検出されていない面を推定する。ここでは、統合結果が示すワークの姿勢及び位置に基づいて、このワークに関して三次元サーチの結果には含まれていない未サーチの基本方向画像の位置及び姿勢を推定する。そして、この未サーチ基本方向画像に対して把持位置特定部８ｄで設定された把持位置を、把持可否判定の対象とする。これにより、三次元サーチの結果、本来サーチされなかったワークの面についても、統合されたサーチ結果が示すワークの姿勢及び位置から推定することで、把持可否判定の対象とすることができ、把持解が得られる可能性をより高めることができる。
【０３４８】
次にステップＳ８７０５において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
【０３４９】
次にステップＳ８７０６において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
【０３５０】
そしてステップＳ８７０７において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
【０３５１】
一方、干渉していると判定された場合は、ステップＳ８７０８に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップＳ８７０５に戻って、この把持位置に対して上記処理を繰り返す。
【０３５２】
一方、別の把持位置が登録されていない場合は、ステップＳ８７０９に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップＳ８７０５に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
【０３５３】
このようにして、統合結果や未サーチ基本方向画像を用いて、ワークを把持可能な把持解の有無を判定する。そして把持解が得られた場合は、そのワークに対して、エンドエフェクタでもって決定された把持位置にてピックするよう、ロボットコントローラ６を制御する。
【０３５４】
なお、本明細書において画像とは、厳密に連続したデータに限られず、例えば点群データの集合のような離散的なデータの集合も含む意味で使用する。
（実施形態９）
（評価指標の統合）
【０３５５】
また、以上の手順に加えて、統合結果に対して、優先順位を規定する評価指標を統合することもできる。このような例を実施形態９に係るロボットシステム９０００として、図８８に示す。この図に示すロボット設定装置９００は、評価指標演算部８ｑと、把持優先順位決定部８ｒを備える。なお、図８１等に示す部材と共通の部材については、同じ符号を付して詳細説明を省略する。
【０３５６】
評価指標演算部８ｑは、三次元ピック判定部８ｌで把持可能と判定された把持位置を把持位置候補として、各把持位置候補について、評価指標を演算するための部材である。
【０３５７】
また把持優先順位決定部８ｒは、評価指標演算部８ｑで演算された評価指標に基づいて、ワークをエンドエフェクタで把持する優先順位を決定するための部材である。
【０３５８】
このロボット設定装置は、評価指標演算部８ｑでもって、サーチ結果に対してそれぞれ評価指標を演算する。評価指標としては、上述の通り、例えばサーチ結果に含まれる、一定の距離以下の誤差で対応した特徴点の点数割合等が利用できる。
【０３５９】
ここで、サーチ結果統合部８ｐが、統合結果を構成する各サーチ結果に対して評価指標演算部８ｑで演算された評価指標の内、最も高い評価指標を統合結果に付与する。一般に三次元サーチの評価指標では、サーチの条件やワークの姿勢（例えばワークの傾斜角度が大きく、十分な反射光が得られない場合、逆に光沢のあるワークによって反射光が強すぎる場合）等に左右される。このため、サーチ結果の評価指数が低く演算されることがあり、低い優先順位となったり、あるいはそもそも反射光が得られない等の理由で三次元サーチの対象から除外されることがある。これらは、把持位置の候補として下位になったり、候補に挙がらないことになるが、このようなワークの中には、単に三次元サーチに適切な姿勢で配置されていないというだけで、把持には適した姿勢で配置されていることも考えられる。このような場合であっても、従来であれば三次元サーチの段階で除外されたり低い優先順位となっていたため、把持解として選択される可能性が低く、十分に活用することができなかった。これに対して本実施形態によれば、たとえ三次元サーチの結果としては、評価指数が低いサーチ結果であっても、隣接する他のサーチ結果で高い評価値が得られている場合は、これを利用することで、高い優先順位でもって把持位置の候補として利用することが可能となる。これにより、従来であれば活用されなかった把持位置の候補であっても、利用できるようになり、把持解を得られる可能性を高めることができるようになる。いいかえると、三次元サーチの精度によらず、適切なワークを把持することが可能となる。
【０３６０】
以上の方法では、統合結果を構成する各サーチ結果の内で、最も高い評価指標でもって、統合結果全体を評価したり、あるいは各サーチ結果の評価指数を本来の評価値からより高い評価値に書き換える態様について説明した。これは、高い評価指数を得たサーチ結果については、三次元サーチ結果の信頼性が高いとの信頼性に基づくものである。ただ、本発明はこの態様に限らず、他の態様、例えば、統合結果を構成する各サーチ結果の評価指数を平均して、この統合結果の評価指数として扱うようにしてもい。いずれの場合も、元々低い評価指標だったサーチ結果を、他の評価指数の高いサーチ結果を利用して、把持位置等の候補となり得るように元の評価指数よりも高い評価指数でもって評価されるようにすることが、本実施形態の趣旨である。
（ロボット設定プログラムのＧＵＩ）
【０３６１】
ここで、ロボット設定プログラムのＧＵＩの一例を図８９〜図１４９に基づいて説明する。図８９は各種機能を選択するための機能選択画面３４０を示しており、利用可能な機能が機能一覧表示欄３４１にボタン状に一覧表示されている。この状態から「３Ｄサーチ」ボタン３４２を押下すると、三次元サーチ機能が実行される。
（三次元サーチ画面）
【０３６２】
三次元サーチ機能の実行にあたり、必要な設定を行う必要がある。具体的には、サーチモデルの登録、ワークを載置する床面や収納容器の登録、三次元サーチの条件設定などが挙げられる。これらの設定は、すべての項目をユーザが任意に設定可能とする他、必要な手順をユーザに順次示しながら、項目毎に設定させることもできる。このような設定のガイダンス機能について、図９０〜図１０１の三次元サーチ画面に基づいて説明する。
【０３６３】
これらの三次元サーチ画面では、画面左下の画像表示欄１４１の上段に、設定すべき手順のフローを表示させるフロー表示部３５１を設けている。フロー表示部３５１では、各手順の概要をテキストや図柄等で示すと共に、現在設定中の手順がハイライト表示される。図９０の例では、「モデル登録」アイコン３５２が明るい色に表示され、他の「床・箱設定」アイコン３５３や「サーチ設定」アイコン３５４は暗い色で表示されており、ユーザに対し現在設定を行っている対象を告知することができる。さらに三次元サーチ画面の右側に設けられた操作欄１４２には、現在設定中の項目の説明がテキスト等で表示され、ユーザに対して行うべき設定を文字で説明することができる。説明はテキスト情報のみならず、必要に応じて、図柄や動画を適宜組み合わせてもよい。また、設定すべきパラメータの設定欄等も設けられている。
（実測データに基づくサーチモデルの登録）
【０３６４】
図９０〜図１０１の三次元サーチ画面では、センサ部でワークの現物を撮像した実測データをサーチモデルとして登録する例を示している。この登録手順は、図２７のフローチャートで説明した手順にて行うことができる。これら図９０〜図１０１の三次元サーチ画面では、上述の通りフロー表示部３５１に、１番目の手順として「モデル登録」アイコン３５２がハイライト表示されている。
【０３６５】
図９０は、サーチモデルとして登録する方法を選択するためのサーチモデル登録方法選択画面３５０を示している。このサーチモデル登録方法選択画面３５０の操作欄１４２には、モデルを登録する方法を選択するためのモデル登録方法選択欄３５５が設けられている。このモデル登録方法選択欄３５５では、モデル登録方法として、実際のワークを撮像して登録するか、ＣＡＤデータから登録するかをラジオボタンで選択できる。図９０のサーチモデル登録方法選択画面３５０の例では、実ワークを撮像して登録することを選択しており、これに応じて操作欄１４２には、実ワークを撮像して登録する手順の説明が文字と図柄で表示されている。この例では、「カメラから見えるワーク表面の三次元情報をモデル化します。サーチさせたい面の数だけ登録します。本ツールでは、さまざまな姿勢を取るワークに対して、登録した表面モデルをマッチングさせることで、そのワークの位置と姿勢を認識します。」とテキスト情報と図柄でもって、行うべき作業をユーザに示している。これによってユーザは、この画面で行うべき作業を容易に把握できるようになる。図９０のサーチモデル登録方法選択画面３５０で実ワークの登録を選択した上で「ＯＫ」ボタン３５６を押下すると、ワークの撮像に移行する。
（実測データ撮像部）
【０３６６】
実際に実ワークを登録する手順は、図９１〜図９３のようになる。この例では、モデル登録の作業を３つの画面に分けて、ユーザに対して順次説明していく。まず図９１の実測データ撮像画面３６０では、モデル登録の１番目の作業として、ワークを撮像する。この例では、操作欄１４２に、ユーザが行うべき作業として「１．登録したいワーク表面がカメラに見えるようにワークを平面上に配置して、右下の「計測実行」ボタンを押して下さい。２．左のカメラ画面上でワークを囲むようにモデル領域を配置して下さい。」と説明される。さらに、最適なワークの配置についての詳細な説明を、「？」ボタン３６４を押下して、別画面で表示させることもできる。これにより、多くの情報を画面上に表示させて画面が見づらくなったりユーザを混乱させる事態を回避できる。このようにしてユーザは、ワークをセンサ部で撮像可能な位置に配置して、画像表示欄１４１でワークの様子を確認しながら位置決めを行う。そして、「計測実行」ボタン３６１を押下すると、図９１に示すように撮像されたワークが表示される。ここでは三次元状の画像として、得られたワークの高さに応じて色を変えた画像として表示される。なお、カラー表示に限らず、画素の輝度値で高さを表現する高さ画像としてもよい。図９１の例では、同じ形状のワークを６個並べて、それぞれ異なる姿勢で配置している。この状態でユーザは、サーチモデルとして登録したいワークの画像を囲むよう、モデル領域３６２を設定する。モデル領域３６２の設定を終えると、「次へ」ボタン３６３を押下する。これによって、図９２に示すサーチモデル除外領域設定画面３７０に切り替わる。
（背景除去設定部）
【０３６７】
図９２のサーチモデル除外領域設定画面３７０においては、モデル登録の２番目の作業として、サーチモデルとして登録する際に除外する除外領域を設定する。サーチモデル除外領域の一例として、実ワークの登録に際して、ワークを載置した床面のような背景を除去する機能が挙げられる。図９２のサーチモデル除外領域設定画面３７０では、モデル登録の２番目の作業として、操作欄１４２に、「１．登録したいワーク表面だけが残るように背景除去を設定してください。」と説明される。また「？」ボタン３７１を押下して、背景除去の設定方法の詳細説明を別画面で表示させることもできる。さらに操作欄１４２の中段には、背景除去設定欄３７２が設けられ、背景として除去する高さを数値で指定する。この例では１．５ｍｍが指定されており、モデル領域３６２として指定された範囲の内、高さ０〜１．５ｍｍまでの範囲がサーチモデルの登録対象から除外される。この背景除去設定欄３７２での設定に応じて、画像表示欄１４１で表示されるモデル領域３６２が更新され、サーチモデルの登録対象から除外された領域が黒塗りで表示される。ユーザはこの様子を確認しながら、除外領域の設定が妥当かどうかを判断でき、必要に応じて再設定等を行える。
（マスク領域設定部）
【０３６８】
さらに高さ方向のみならず、平面方向においてサーチモデルの登録対象から除外したい範囲を、マスク領域として指定することもできる。図９２のサーチモデル除外領域設定画面３７０の背景除去設定欄３７２の下には、「２．登録したいワーク表面以外のものが残ってしまう場合はマスク領域を配置してください。」と説明される。同様に「？」ボタン３７３を押下して、マスク領域の設定方法の詳細説明を別画面で表示させることもできる。「マスク領域」ボタン３７４を押下すると、モデル領域３６２として指定された範囲内に、サーチモデルの登録対象から除外する領域としてマスク領域を設定することが可能となる。マスク領域は、矩形状や円形などの規定の図形の他、自由曲線や境界部分の自動検出などによって設定できる。また、マスク領域の設定に応じて、画像表示欄１４１で表示されるモデル領域３６２が更新されることも上述の通りである。
【０３６９】
なお、図９２の例では、背景除去設定の後、マスク領域設定を行わせているが、これらの順序を入れ替えてもよい。このようにして、サーチモデルの登録から除外したい領域の設定を終えると、「次へ」ボタン３７５を押下する。これによって、図９３に示す回転対称性設定画面３８０に切り替わる。
（回転対称性設定部）
【０３７０】
図９３の回転対称性設定画面３８０においては、モデル登録の３番目の作業として、回転対称性を設定する。この例では、操作欄１４２に、「１．登録するワーク表面が回転対称性を持つ場合は、該当するものを指定して下さい。」と説明される。同様に「？」ボタン３８１を押下して、回転対称の設定方法の詳細説明を別画面で表示させることもできる。操作欄１４２の中段には、回転対称設定欄３８２が設けられ、回転対称性の候補として、円対称、Ｎ回対称、なし等の選択肢から選択することができる。さらに、Ｎ回対称を選択した場合は、対称数の数値入力ボックスが表示され、ワーク表面の形状に応じた回転対称数を設定する。例えば、ワーク表面が長方形状であり、ワーク表面を真上か見た軸に対し１８０度回転した見え方が同一になる場合、回転対称数は２が適切値となる。あるいは、ワーク表面が正方形上で、ワーク表面を真上か見た軸に対し９０度毎に回転した見え方が全て同一になる場合、回転対称数は４が適切値となる。あるいはまた、ワーク表面が６角形状で、ワーク表面を真上か見た軸に対し３０度毎に回転した見え方が同一になる場合、回転対称数は６が適切値となる。一方、円対称については、球体や円柱状のワークを真上から見た時に、ワーク表面が円形に見える場合など、任意の回転角度の対し、回転した見え方が全て同一になる場合に設定するのが推奨される。回転対称性が設定されると、サーチモデルの登録時に、回転対称性として指定された姿勢にワークがある場合も、同じワークとして認識されるようになる。例えば、回転対称数が２と設定された２回対称のワークの場合、１８０度回転した姿勢も、回転前の姿勢も、同じワークとして認識されるようになる。
【０３７１】
このようにして、回転対称性の設定を終えると、「登録」ボタン３８３を押下する。これによって、設定された条件に従ってサーチモデルが登録される。なお、モデル登録に必要な３つの作業の内、２番目と３番目は入れ替えてもよい。
（サーチモデルの複数登録）
【０３７２】
サーチモデルが登録されると、図９４に示すサーチモデル登録画面３９０が表示される。サーチモデル登録画面３９０の操作欄１４２には、登録済みのサーチモデルの一覧を表示させるモデル一覧表示欄３９１が設けられている。ここでは、登録済みのサーチモデルとしてモデル番号０のサーチモデルが、縮小画像と共に表示される。また当該サーチモデルについて、回転対称性の設定が「なし」であることも表示される。
【０３７３】
さらに追加のサーチモデルを登録するには、「追加」ボタン３９２を押下する。これにより、上述したのと同様の手順でサーチモデルを登録できる。なおサーチモデルの登録の方法として、実ワークを撮像して登録するか、あるいは三次元ＣＡＤデータから登録するかを、モデル登録方法指定欄３９３で選択できる。ここではモデル登録方法指定欄３９３で「実ワークで登録」を選択して追加登録する。
【０３７４】
このようにしてサーチモデルを追加したサーチモデル登録画面４１０を図９５に示す。この図に示すサーチモデル登録画面４１０では、新たにサーチモデルとして、画像表示欄１４１に並べた６個のワークの内、左下に配置されたワークを追加登録している。追加登録されたサーチモデルは、モデル一覧表示欄３９１にモデル番号１として追加されている。
（簡易三次元サーチ結果の表示）
【０３７５】
さらに、図９４、図９５のサーチモデル登録画面では、登録済みのサーチモデルを用いて簡易的に三次元サーチを行った結果を表示させることもできる。例えば図９４の例では、モデル番号０のサーチモデルを用いて、画像表示欄１４１で表示される６つのワークに対して三次元サーチを行った結果、登録に用いた左上のワークがサーチされている。サーチされたワーク上には、サーチモデルに合致した点群が表示されている。この例では、サーチモデルの表面形状の内、面状の点群を白色で、輪郭を示す点群を紫色で、それぞれ表示させている。さらに簡易三次元サーチ結果の評価指標として演算されたスコアを、数値で表示させることもできる。図９４の例ではスコア値として９６．４が表示されている。なお、サーチモデルとして登録した元のワークに対して、スコアが最高値（この例では９９．９）とならないのは、モデル登録時の撮像状態と、三次元サーチ実行時の入力画像とに変動があり、若干スコアが下がった結果となっているためである。スコア値の結果から、おおよそ９６％以上、モデル登録時の状態と一致している状態であると捉えることができる。
（サーチ領域設定部）
【０３７６】
このようにしてサーチモデルが登録されると、次に三次元サーチ機能の設定として、サーチ領域を設定する。具体的には、図９５のサーチモデル登録画面４１０で、必要なサーチモデルの登録を終えた後、右下の「完了」ボタン４１１を押下すると、図９６のサーチ領域設定画面４２０に進む。このサーチ領域設定画面４２０では、三次元サーチを行うサーチ領域を指定する。画面上部のフロー表示部３５１には、ハイライト表示が「モデル登録」アイコン３５２から「床・箱設定」アイコン３５３に移り、モデル登録が終了して現在はワークを載置する床面や収納容器の登録を行う段階であることがユーザに示される。
【０３７７】
サーチ領域設定画面４２０の操作欄１４２には、サーチ領域設定欄４２１が設けられる。サーチ領域設定欄４２１には、三次元サーチを行うサーチ領域の指定方法のユーザに説明するための「指定方法選択ナビ」ボタン４２２と、サーチ領域の指定方法を選択する指定方法選択欄４２３が設けられる。「指定方法選択ナビ」ボタン４２２を押下すると、三次元サーチを行うサーチ領域の指定方法をユーザに案内するナビゲーション画面が表示される。一方、指定方法選択欄４２３では、ドロップボックスから、選択肢として、床指定、箱指定、箱サーチ、指定なしの何れかを選択できる。この内、床指定を選択すると図９７のサーチ領域設定画面４３０となって、床面指定ダイヤログ４３１が表示され、「床面を算出するための３点をクリックしてください。」との説明がユーザに示される。これに従いユーザが画像表示欄１４１上から、床面を示す任意の点をマウス等のポインティングデバイスで指定すると、指定された点の空間座標（Ｘ，Ｙ，Ｚ）が表示される。また、抽出領域としてゲージが表示される。この抽出領域は、クリックした点におけるＺ座標値算出の際に、クリックした位置を中心に、どの範囲まで参照して求めるかを表している。三次元計測された１点１点のデータには誤差も含まれるため、誤差の影響を抑えるために、一定範囲内のデータの平均値や、中央値（メディアン）によって求めた値を用いるのが好ましい。今回のケースでは、抽出領域によって指定される範囲の平均値によって、Ｚ座標値を求めている。このようにして床面が指定されると、床面の情報が演算されて、図９８のサーチ領域設定画面４４０のように、サーチ領域設定欄４２１において演算された床面情報が床面情報表示欄４４１に表示される。ここでは床面情報表示欄４２１において、床面のＸ傾き、Ｙ傾き、Ｚ切片がそれぞれ数値で床面情報として表示されている。また必要に応じて、オフセット量を設定することもできる。例えば収納容器の床面の厚さの変動などを考慮して、床面からの所定の高さ分をサーチ領域から除去する。図９８の例では、床面からのノイズ除去のため、ノイズ除去欄４４２を設けている。ここでは、指定された床面の高さから、ノイズ除去欄４４２で指定された高さ１．５ｍｍまでの範囲を、三次元サーチの対象領域から除外する。以上のようにして床面の設定が終了すると、「完了」ボタン４４３を押下する。これによって図９９のサーチパラメータ設定画面４５０に切り替わる。
（サーチパラメータ設定部）
【０３７８】
図９９のサーチパラメータ設定画面４５０では、三次元サーチを実行する条件としてサーチパラメータを設定する。画面上部のフロー表示部３５１には、ハイライト表示が「床・箱設定」アイコン３５３から「サーチ設定」アイコン３５４に移り、サーチ領域設定が終了して現在はサーチ条件を設定する段階に移行していることがユーザに示される。サーチパラメータ設定画面４５０の操作欄１４２には、三次元サーチの実行に必要なサーチパラメータをそれぞれ設定するための欄が設けられている。具体的には、検出条件設定欄４５１と、特徴抽出条件設定欄４５２と、判定条件設定欄４５３が設けられている。この内、特徴抽出条件設定欄４５２は、入力画像中からワークを検出するにあたり、エッジを抽出する閾値（しきいち）であるエッジ抽出閾値を設定する。また判定条件設定欄４５３では、スコアの計測値に対して上限や下限、あるいは位置のＸ座標の計測値に対して上限や下限を設定し、サーチ結果として選択するか否かの判定条件を設定する。
【０３７９】
検出条件設定欄４５１では、ワークを検出する条件を設定する。この例では、ワークを検出する個数の上限を指定する検出個数指定欄４５４、検出されるワークの傾斜角度の上限を指定する傾斜角度上限指定欄４５５、評価指標であるスコアの下限を指定するスコア下限指定欄４５６が設けられている。また、指定は数値で行う他、スライダ等によって連続的に調整することもできる。さらに、詳細設定ボタン４５７を押下すると、、図１００のサーチパラメータ設定画面４６０に切り替わり、より詳細な検出条件を設定するための検出詳細条件設定ダイヤログ４６１が表示される。
【０３８０】
検出詳細条件設定ダイヤログ４６１においては、基本設定欄４６２、検出条件詳細設定欄４６３、オプション設定欄４６４が設けられている。基本設定欄４６２においては、検出個数指定欄４５４に加えて、三次元サーチの感度を設定するサーチ感度設定欄４６５、三次元サーチの精度を設定するサーチ精度設定欄４６６が設けられている。また検出条件詳細設定欄４６３においては、傾斜角度上限指定欄４５５、スコア下限指定欄４５６に加えて、回転角度範囲設定欄１６３として、基準角度を設定するための基準角度設定欄１６３ａ、角度範囲を設定するための範囲設定欄１６３ｂを設けている。
【０３８１】
加えて、検出条件はサーチモデル共通で設定する他、サーチモデル毎に個別に設定することもできる。図１００の例では、サーチモデル個別指定欄４６７を設けており、このチェックボックスをＯＮすることで、サーチモデル毎に個別に三次元サーチの検出条件を設定することができる。このような例を図１０１のサーチパラメータ設定画面４７０に示す。ここでは、サーチモデル個別指定欄４６７のチェックボックスをＯＮにすると、サーチモデル選択欄４６７ｂが表示され、検出条件を設定するサーチモデルを選択できる。この例ではサーチモデルＡが選択された状態を示しており、図９４等のモデル一覧表示欄３９１に示されたサーチモデルＡに関する検出条件として、傾斜角度上限指定欄４５５、基準角度設定欄１６３ａ、範囲設定欄１６３ｂ、スコア下限指定欄４５６をそれぞれ個別に指定することができる。
【０３８２】
一方、図１００等に示すオプション設定欄４６４においては、サーチ結果を識別するための通し番号として振られるラベル番号に対し、ラベルの順序を規定するラベル順序指定欄４６８、判定ラベルを指定する判定ラベル指定欄４６９を設けている。ラベル順序指定欄４６８では、相関値の降順、昇順やＺ方向の高さの降順、昇順などを選択できる。ここでいう相関値とは、上述の「スコア」と同意語である。判定ラベル指定欄４６９では、特定のサーチ結果に対し、想定と異なる位置や姿勢になっていないか、判定する対象を指定できる。ここではサーチ結果を識別するための通し番号により指定する。例えば、サーチ結果が想定外の位置や、回転角度・傾斜角度になっていないかなど、サーチ結果として信頼性のないデータとなっていないかを判定する必要がある場合に設定を行う。
【０３８３】
このようにして、三次元サーチのサーチ設定を順に終えると、操作欄１４２の右下に設けられらた「ＯＫ」ボタン４７１を押下して、三次元サーチの条件設定を終了する。
（三次元ＣＡＤデータに基づくサーチモデルの登録）
【０３８４】
以上の例では、サーチモデルとして実際のワークを撮像して登録する手順を説明した（図６２等に対応）。ただ本発明は上述した図２８等で説明した通り、予め作成されたワークの形状を示す三次元ＣＡＤデータをサーチモデルとして登録することもできる。以下、このような三次元ＣＡＤデータをワークモデルとして登録する手順を図１０２〜図１０６に基づいて説明する。
【０３８５】
まず図１０２のサーチモデル登録方法選択画面４８０において、モデル登録方法選択欄３５５から、ＣＡＤデータ（ＳＴＬ形式）から登録するをラジオボタンで選択する。これに応じて操作欄１４２には、三次元ＣＡＤデータをサーチモデルとして登録する手順の説明が文字と図柄で表示されている。この例では、「三次元ＣＡＤデータ中のＸＹＺ軸の各正負方向（計６方向）から見えるワーク表面の三次元情報をモデル化します。生成されたモデルの中からサーチさせたい面のみ選択します。本ツールでは、さまざまな姿勢を取るワークに対して、登録した表面モデルをマッチングさせることで、そのワークの位置と姿勢を認識します。」とテキスト情報と図柄でもって、行うべき作業をユーザに示している。このようにして１０２のサーチモデル登録方法選択画面４８０でＣＡＤデータからの登録を選択した上で「ＯＫ」ボタン４８１を押下すると、図１０３のＣＡＤデータの読み込み画面に移行する。具体的には、サーチモデル登録画面４９０に移行し、ＣＡＤデータ読み込みダイヤログ４９１が表示される。
（ＣＡＤデータ読み込み部）
【０３８６】
図１０３に示すＣＡＤデータ読み込みダイヤログ４９１では、読み込むＣＡＤデータの格納先を指定し、さらにＣＡＤデータを選択する。読み込み先は、記憶部９の他、半導体メモリ等の読み取り媒体を選択することもできる。ファイル一覧表示欄４９２からファイルを選択して「実行」ボタン４９３を押下すると、三次元ＣＡＤデータの読み込みが実行される。
（登録モデル選択部）
【０３８７】
三次元ＣＡＤデータが読み込まれると、サーチモデルとして登録する面を選択する。ここでは図１０４に示すサーチモデル登録画面５１０が表示されて、ワークモデルの基本方向画像に対応する六面図が登録モデル選択画面５１１に自動的に表示される。この状態でユーザは、登録したい面を選択できる。ここでは、デフォルトでチェックボックスがＯＮされており、サーチモデルとして登録が不要な面についてはチェックボックスをＯＦＦにすることで、サーチモデルから排除することができる。このようにして登録対象を選択すると、「次へ」ボタン５１２を押下して図１０５のサーチモデル登録画面５２０に進む。
（回転対称指定部）
【０３８８】
図１０５のサーチモデル登録画面５２０では、回転対称指定ダイヤログ５２１が表示されており、ユーザは登録対象として選択した基本方向画像の内、回転対称性を有するものについて、上下や前後、左右など、回転させても対称な形状を有する面を設定できる。このようにして回転対称性の設定を終えると、「登録」ボタンを押下して、サーチモデルの登録を実行する。
【０３８９】
サーチモデルが登録されると、図１０６のサーチモデル登録画面５３０のように、モデル一覧表示欄３９１に登録されたサーチモデルが一覧表示される。なお一のワークに対して、複数のサーチモデルを登録可能であることは上述の通りである。例えば図１０６の例では、モデル番号０の三次元ＣＡＤワークモデルに対して、図１０５等で示したＡ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆの６つのサーチモデルを登録している。よってモデル一覧表示欄３９１には、モデル番号０のサーチモデルＡ〜Ｆが一覧表示されている。モデル一覧表示欄３９１において一画面で表示しきれないサーチモデルは、スクロールして表示を切り替えることができる。
（サーチモデル編集部）
【０３９０】
さらに、登録済みのサーチモデルを編集することもできる。図１０６の例では、操作欄１４２の「編集」ボタン５３１を押下すると、図１１４に示すモデル編集画面６２０が表示される。このモデル編集画面６２０では、画像表示欄１４１に登録済みのサーチモデルが表示されると共に、操作欄１４２には、設定済みの項目が表示される。ここでは、モデル領域設定欄６２１、特徴設定欄６２２として背景除去設定欄３２７、回転対称設定欄３８２、モデル登録欄６２３としてモデル番号表示欄が設けられる。ユーザは変更したい項目を選択して適宜変更することができる。
（モデル領域詳細設定部）
【０３９１】
モデル領域設定欄６２１に設けられた詳細設定ボタン６２４を押下すると、図１１５に示すモデル領域詳細設定画面６３０が表示される。モデル領域詳細設定画面６３０は、画像表示欄１４１に表示されたモデル領域３６２の範囲内に、サーチモデルの登録対象から除外したい領域としてマスク領域を設定することが可能となる。操作欄１４２には、モデル領域指定欄６２１、マスク領域指定欄６３１、重み付け領域指定欄６３２が設けられている。マスク領域指定欄６３１では、複数のマスク領域を設定できる。各マスク領域は、矩形状や円形などの規定の図形の他、自由曲線や境界部分の自動検出などによって設定できる。また各マスク領域とは別に、重み付け領域指定欄６３２でもって重み付けを設定することができる。
【０３９２】
サーチ結果に対するスコア付けを行う際に、サーチモデルに含まれる他の特徴点よりも重視したい特徴点の箇所があれば、重み付け領域で囲むことでスコア結果を調整することができる。例えば、全体の形状の中で一部の特徴の有無によってサーチモデルの特定に繋がったり、回転方向の姿勢が定まるような形状があった場合に、その重要な特徴に対して重み付け領域を設定することで、サーチの検出能力を向上させることができる。また、他の特徴点に対する重み付け度合を、比率によって指定することもできる。例えば、重み付け度合を「３」と設定した場合には、他の特徴点よりも３倍の影響度でスコア値を算出するように調整できる。
（特徴詳細設定部）
【０３９３】
さらに、特徴設定欄６２２に設けられた詳細設定ボタン６２５を押下すると、図１１６に示す特徴詳細設定画面６４０が表示される。特徴詳細設定画面６４０では、画像表示欄１４１に表示されたモデル領域３６２に対して、特徴設定や回転対称の有無を設定する。操作欄１４２には、特徴詳細設定欄６４１と回転対象設定欄３８２が設けられる。特徴詳細設定欄６４１には、特徴の抽出間隔を指定する特徴抽出間隔指定欄６４２、背景除去設定欄３２７、エッジ抽出閾値設定欄６４３が設けられる。特徴の抽出間隔は、サーチモデル生成時の特徴点の抽出間隔に影響するパラメータであり、「精度優先」と「標準」と「速度優先」が選択できるようになっている。「精度優先」を選択した場合、サーチモデルにおける特徴点の抽出間隔が狭くなり、より細かい特徴まで捉えられて検出精度が上がる反面、データ量が増えて処理時間は遅くなる。一方、「速度優先」を選択した場合、サーチモデルにおける特徴点の抽出間隔が広くなり、細かい特徴が抜けて検出精度が下がる反面、データ量が少なくなり処理時間は速くなる。用いるワークの形状や大きさや、許容される処理時間・検出精度によって、調整することができる。
【０３９４】
このようにしてユーザは、簡易三次元サーチの結果や得られたスコアなどを参照しながら、より適切なサーチ結果が得られるように、必要な項目を調整できる。このようにしてサーチモデルの登録を終えると、これに続く以降の手順（サーチ領域設定、サーチパラメータ設定）は、上述した図９６〜図１０１で説明した、実ワークを撮像してサーチモデルを登録する手順と同様であり、説明を省略する。
【０３９５】
以上のようにして事前にサーチモデルを登録した上で、三次元サーチを行う。三次元サーチは、実運用、すなわちバラ積みされたワーク群をセンサ部で撮像して、把持可能なワークの把持位置を特定するバラ積みピッキングを行う際に用いる他、事前に三次元ピックのシミュレーションを行う場合等にも用いられる。三次元ピックのシミュレーションとは、三次元サーチ部８ｋでサーチされた各サーチ結果に対して、把持位置特定部８ｄで予めワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定する動作である。
（サーチ結果表示部）
【０３９６】
次に、バラ積みされたワークに対して三次元サーチを行う例を、図１０７〜図１１３に基づいて説明する。図１０７は、バラ積みされたワーク群に対して三次元サーチを実行した結果を示すサーチ結果表示画面５４０の例を示している。サーチ結果表示画面５４０には画像表示欄１４１と操作欄１４２が設けられ、操作欄１４２には三次元サーチに用いたサーチモデルの一覧がモデル一覧表示欄３９１に縦方向に表示される。一方画像表示欄１４１には、入力画像として得られたバラ積み状態のワークに対して、サーチ結果として得られたワークに重ねて、サーチ結果である点群と、その評価指標であるスコアを表示させている。
（サーチ結果一覧部）
【０３９７】
また画像表示欄１４１の上段には、サーチ結果一覧表示欄５４１が設けられ、サーチされたサーチ結果に対して、用いたサーチモデルとスコアの一覧が表示される。ここでは、サーチされた個数、ワークの有無、総体積／ワークの体積、特定のラベル番号のサーチ結果のモデル番号やスコア、位置（Ｘ，Ｙ，Ｚ）などが表示される。総体積／ワークの体積は、床面や通い箱の底面よりも高い位置にある点群の総体積を、登録されているサーチモデルから想定される平均体積で割った値を示しており、入力画像中に、ワークが何個相当分存在するかを示したデータとなる。この数値が一定以上大きい場合、ワークの有無の結果が有り（１）と判定される。サーチされた個数が０個で把持解が得られなかった場合などに、このワーク有無の結果が有りか無しかを確認することで、ワークが実際になくなった状態でピッキングが終了したのか、ワークが残存した状態で終了したのかを確認することができる。
【０３９８】
サーチ結果一覧表示欄５４１の表示は切り替えることができる。例えば図１０７に示すサーチ結果表示画面５４０のサーチ結果一覧表示欄５４１の右下に、表示内容を切り替える切り替えボタン５４２が設けられている。切り替えボタン５４２は左右の矢印で構成されており、さらにその上部に画面数５４３が表示されている。この例では画面数５４３として１１画面中の１番目であることを示す「１／１１」が表示されており、切り替えボタン５４２を押下して番号を上限させることで、これに応じてサーチ結果一覧表示欄５４１の表示内容を切り替えることができる。例えば切り替えボタン５４２を操作して画面数５４３を「２／１１」に変更すると、図１０８に示すサーチ結果表示画面５５０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要が表示される。ここではサーチされた個数、ワークの有無、総体積／ワークの体積に加え、傾斜角度、回転角度、姿勢（ＲX，ＲY，ＲZ）等が表示される。また画面数５４３を「３／１１」に変更すると、図１０９に示すサーチ結果表示画面５６０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要として、サーチされた個数、ワークの有無、総体積／ワークの体積に加え、床面の情報としてＸＹＺの傾き等が表示される。
【０３９９】
さらに画面数５４３を「４／１１」に変更すると、図１１０に示すサーチ結果表示画面５７０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に、このサーチ結果の検出に用いたサーチモデルのモデル番号とスコアを横方向に表示している。さらにまた画面数５４３を「５／１１」に変更すると、図１１１に示すサーチ結果表示画面５８０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に、位置（Ｘ，Ｙ，Ｚ）が表示される。さらにまた画面数５４３を「６／１１」に変更すると、図１１２に示すサーチ結果表示画面５９０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に傾斜角度及び回転角度が表示される。さらにまた画面数５４３を「７／１１」に変更すると、図１１３に示すサーチ結果表示画面６１０に切り替わり、サーチ結果一覧表示欄５４１には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に姿勢（ＲX，ＲY，ＲZ）が表示される。
（三次元ピック）
【０４００】
次に、三次元サーチされた各サーチ結果に対して、エンドエフェクタで把持可能か否かを判定する三次元ピックのシミュレーションを行う手順について、図１１７〜図１４９に基づいて説明する。図８９の機能選択画面３４０において、「３Ｄピック」ボタン３４３を押下すると、図１１７の三次元ピック初期設定画面６５０が表示され、ユーザに対して三次元ピックを行うために必要な設定を順次行うよう、ガイダンス機能が実行される。ここでは、操作欄１４２の上段に、３Ｄピックガイダンス欄６５５が表示され、順次行われる作業がアイコンで表示される。この例では、「初期設定」、「把持登録」、「条件・懸賞」、「プレース設定」の４つの工程が表示されている。
（三次元ピック初期設定画面）
【０４０１】
図１１７の三次元ピック初期設定画面６５０では、まず三次元ピックを行うための初期設定を行う。操作欄１４２上段の３Ｄピックガイダンス欄６５５では、「初期設定」アイコンがハイライト表示され、ユーザに対してこの段階で行うべき作業が示される。操作欄１４２には、キャリブレーションデータ選択欄６５１と、検出ツール設定欄６５２と、ハンド登録欄６５３が設けられる。キャリブレーションデータ選択欄６５１では、予めロボット設定装置で表示される座標系を、ロボットコントローラがエンドエフェクタを動作させる座標系に座標変換するために演算されたキャリブレーションデータを呼び出して登録する。検出ツール設定欄６５２では、ワークを検出するための手段を指定する。この例では、ツール番号１００番に設定されたワーク検出用三次元サーチが選択されている。上述した三次元サーチの設定を経て登録されたサーチモデルの設定が読み込まれる。別のツール番号に異なるワークのサーチモデルが予め設定されていた場合、この検出ツールの選択を切り替えることで、三次元ピックの設定対象を切り替えることができる。
（エンドエフェクタモデル設定部）
【０４０２】
ハンド登録欄６５３では、エンドエフェクタモデルを登録する。ここで「ハンドモデルの作成」ボタン６５４を押下すると、図１１８に示すエンドエフェクタモデル設定画面６６０が表示される。エンドエフェクタモデル設定画面６６０では、登録済みのエンドエフェクタモデルの一覧が、ハンドモデル一覧表示欄６６１に表示される。図１１８の例は未登録のため、画像表示欄１４１にも、操作欄１４２のエンドエフェクタモデル一覧表示欄６６１にも、エンドエフェクタモデルは表示されていない。そこで、「追加」ボタン６６２を押下して、エンドエフェクタモデルを追加する。なおエンドエフェクタモデル設定画面６６０の画像表示欄１４１には、エンドエフェクタモデルを配置するロボットのアーム部先端の基準面としてフランジ面ＦＬＳが表示される。さらに、エンドエフェクタモデルＥＥＭ側の座標軸を示すツール座標軸ＴＡＸも表示される（詳細は後述）。
（エンドエフェクタモデル編集部）
【０４０３】
図１１８で「追加」ボタン６６２を押下すると、図１１９に示すエンドエフェクタモデル編集画面６７０が表示される。エンドエフェクタモデル編集画面６７０では、エンドエフェクタモデルを構成するパーツを設定する。ここでは、登録済みのパーツがパーツ一覧表示欄６７１に表示される。図１１９の例では未だパーツが登録されていないため、パーツ一覧表示欄６７１には何も表示されていない。この状態で「追加」ボタン６７２を押下すると、図１２０に示すパーツ追加ダイヤログが表示され、追加するパーツをＣＡＤデータを読み込んで登録するか、直方体モデル、または円柱モデルで新たに作成するかをラジオボタンで選択する。なお、追加パーツは上述した追加領域の一形態であり、直方体や円柱に限らず、角柱状や三角形状、球状等、任意の形状を利用できる。図１２０の例ではＣＡＤデータを選択している。「追加」ボタン６８１を押下して作成済みの三次元ＣＡＤデータを選択すると、図１２１に示すＣＡＤ位置姿勢設定画面６９０となり、三次元ＣＡＤデータが読み込まれて画像表示欄１４１にＣＡＤで作成されたＣＡＤモデルＣＤＭが表示されると共に、操作欄１４２には、このＣＡＤモデルＣＤＭの位置及び姿勢を指定する位置姿勢欄６９１が表示される。ＣＡＤモデルＣＤＭの位置及び姿勢は、フランジ面ＦＬＳを基準に指定される。ユーザは、位置姿勢欄６９１から、エンドエフェクタモデルの取付位置や角度を指定する。例えば図１２１の状態から回転角ＲXとして２０°を指定すると、図１２２に示すように画像表示欄１４１で表示されるＣＡＤモデルＣＤＭが、Ｘ軸を中心として２０°回転した姿勢に表示される。あるいは図１２１の状態からＺ方向に５０ｍｍを指定すると、図１２３に示すようにＣＡＤモデルＣＤＭがＺ方向に５０ｍｍオフセットされて表示される。このようにしてＣＡＤモデルＣＤＭの位置及び姿勢を調整して、図１２１の「ＯＫ」ボタン６９２を押下すると、ＣＡＤデータが登録されて、パーツ一覧表示欄６７１に表示される。
【０４０４】
パーツは複数を追加することができる。例えば図１２４のエンドエフェクタモデル編集画面から「追加」ボタン６８２を押下して、図１２０のパーツ追加ダイヤログ６８０で円柱モデルを選択して「追加」ボタン６８１を押下すると、図１２５の追加領域位置姿勢設定画面となり、画像表示欄１４１には新たに追加領域ＡＤＡとして、円柱状のモデルが表示される。なお、編集中のパーツはハイライト表示される。図１２５の例では、追加領域ＡＤＡが赤色で表示され、ＣＡＤモデルＣＤＭは灰色やワイヤフレームで表示される。これによってユーザに対し、現在編集中のパーツを視覚的に把握させ易くできる。また同様に、追加される追加領域ＡＤＡの位置及び姿勢を位置姿勢欄６９１から指定する。この例では位置姿勢欄６９１でＺ位置を−５０ｍｍに指定しており、フランジ面ＦＬＳからＣＡＤモデルＣＤＭと逆方向に追加領域ＡＤＡが配置されている。また追加領域ＡＤＡのサイズとして、円柱状モデルの半径や高さをサイズ指定欄６９３で指定できる。このようにして追加領域ＡＤＡの条件を設定した後、「ＯＫ」ボタン６９２を押下すると、追加領域ＡＤＡが登録されて、図１２６に示すようにエンドエフェクタモデル編集画面のパーツ一覧表示欄６７１に円柱が追加されて表示される。
（ツール座標指定部）
【０４０５】
また、登録されたパーツの位置及び姿勢を調整することもできる。例えば図１２６のエンドエフェクタモデル編集画面から、選択されるパーツを追加領域ＡＤＡからＣＡＤモデルＣＤＭに、画像表示欄１４１またはパーツ一覧表示欄６７１から変更すると図１２７のようになり、この状態でユーザは、ツール座標指定欄６７３で、位置（Ｘ，Ｙ，Ｚ）及び姿勢（ＲX，ＲY，ＲZ）を調整できる。例えば図１２８に示すように、Ｚ位置を１４５ｍｍに指定すると、画像表示欄１４１においてツール座標軸ＴＡＸが、指定された距離だけフランジ面ＦＬＳからＺ方向に移動されて表示される。さらにこの状態で図１２９に示すように回転ＲXを２０°に指定すると、ツール座標軸ＴＡＸがＸ軸を中心に時計回りに２０°回転されて表示される。
【０４０６】
このようにして複数のパーツを登録していき、これらを組み合わせてエンドエフェクタモデルＥＥＭを構築していく。各パーツの設定が終わると、図１２８等のエンドエフェクタモデル編集画面で「ＯＫ」ボタン６７４を押下すると、複数のパーツが合成されてエンドエフェクタモデルＥＥＭとして登録され、図１３０のエンドエフェクタモデル設定画面６６０に示すように、ハンドモデル一覧表示欄６６１に「ハンド０」として表示される。また、画像表示欄１４１には、ばらばらに表示されていたパーツが一体のエンドエフェクタモデルＥＥＭとして表示される。
【０４０７】
なお、この例ではパーツを組み合わせてエンドエフェクタモデルを構成する例を説明したが、パーツは必ずしもエンドエフェクタモデルやその一部に限定されず、例えばケーブル類などをパーツで表現することもできる。このようにパーツは、エンドエフェクタモデルの一部やその表面に追加した物体、あるいは周辺部材などを表現する追加モデルの一形態をなす。
（把持基準点ＨＢＰ）
【０４０８】
さらに、エンドエフェクタモデルＥＥＭの把持基準点ＨＢＰが、画像表示欄１４１に重ねて表示される。把持基準点ＨＢＰは、エンドエフェクタモデルＥＥＭでワークを把持する位置を示している。例えば、エンドエフェクタモデルＥＥＭの内、ワークを把持する爪部同士の間の中間を把持基準点ＨＢＰとする。なお、把持基準点ＨＢＰは、所定の規則に従って決定されるようにロボット設定装置側で演算する他、ユーザが任意の位置を指定できるように構成してもよい。
【０４０９】
さらに、エンドエフェクタモデルＥＥＭの位置及び姿勢を規定するツール座標軸も、画像表示欄１４１に重ねて表示させることが好ましい。このツール座標軸は、エンドエフェクタモデルＥＥＭの回転に応じて変化させた回転済み座標軸ＲＡＸとすることが好ましい。さらに、回転済み座標軸ＲＡＸの原点を、把持基準点ＨＢＰと一致させることがより好ましい。これによって、把持位置を設定する際のエンドエフェクタモデルＥＥＭの状態をユーザが視覚的に把握し易くできる。
（把持登録部）
【０４１０】
このようにして初期設定としてエンドエフェクタモデルＥＥＭが登録されると、次に把持位置の登録を行う。図１３１の把持登録画面７１０では、３Ｄピックガイダンス欄６５５でハイライト表示が「初期設定」アイコンから「把持登録」アイコンに移る。操作欄１４２には、登録済みのサーチモデルを選択するサーチモデル切替欄７１１と、サーチモデル切替欄７１２で選択されたサーチモデルに対して、登録された把持位置の一覧を示す把持登録一覧表示欄７１２が表示されている。なお上述の通り、この例では把持位置を登録するワークモデルを、三次元サーチに用いるサーチモデルと共通にしている。ここでは、サーチモデル切替欄７１１には、登録済みのサーチモデルとして、図１０４で登録したモデル番号０のサーチモデルＡ〜Ｆの６つが登録されているものとする。また図１３１の例では、未だ把持位置が登録されていないため、把持登録一覧表示欄７１２には何も表示されていない。サーチモデル切替欄７１１ではサーチモデルＡが選択されており、画像表示欄１４１にはＡに対応するサーチモデルＳＭＡが表示されている。さらに、サーチモデルＳＭＡの位置姿勢を示す座標軸である基準座標軸ＢＡＸが重ねて表示されている。この状態からユーザは、サーチモデルＡに対して把持位置を登録していく。具体的には「追加」ボタン７１３を押下すると、図１３２の把持登録画面に切り替わり、把持設定ダイヤログ７２０が表示される。
（把持設定部）
【０４１１】
把持設定ダイヤログ７２０では、操作欄１４２に、基本設定欄７２１と、把持位置座標指定欄７２４と、移動量設定欄７２７が設けられている。基本設定欄７２１は、把持ラベル設定欄７２２とハンド選択欄７２３を設けている。把持ラベル設定欄７２２では、把持位置を特定する識別情報である把持ラベルを設定する。ここでは把持ラベルとして、サーチモデルを示す「Ａ」と、把持位置の通し番号「０００」を設定している。またハンド選択欄７２３では、把持ラベル設定欄７２２で設定された把持位置を把持するエンドエフェクタモデルＥＥＭを選択する。この例ではハンド選択欄７２３で「ハンド０」が選択されており、これに応じて画像表示欄１４１には、エンドエフェクタモデルＥＥＭが表示される。このように、把持位置は、エンドエフェクタモデルＥＥＭと紐付けて設定される。
【０４１２】
把持位置座標指定欄７２４では、把持位置を示す座標位置（Ｘ，Ｙ，Ｚ）と姿勢（ＲX，ＲY，ＲZ）を、ユーザが数値で直接指定可能な座標姿勢指定欄７２５と、把持位置の設定をユーザに案内するガイダンス機能を実行するための「簡単設定ナビ」ボタン７２６が設けられる。
【０４１３】
また移動量設定欄７２７では、エンドエフェクタモデルＥＥＭを移動させる方向を規定する。ここではエンドエフェクタモデルＥＥＭでサーチモデルＳＭＡを把持するように、エンドエフェクタモデルＥＥＭをサーチモデルＳＭＡに近付けるアプローチ移動量を、Ｘ方向、Ｙ方向、Ｚ方向の距離として規定している。図１３２の例では、Ｚ方向に１００ｍｍ移動させる例を示している。
（把持位置設定ガイダンス機能）
【０４１４】
図１３２の画面から「簡単設定ナビ」ボタン７２６を押下すると、把持位置設定ガイダンス機能が実行される。具体的には図１３３に示すように設定方法選択ダイヤログ７３０が表示され、ユーザに対し、把持位置を三次元ビューワを使って設定するか、あるいはロボットを使って選択するかの何れかを、ラジオボタンで選択させる。この例では、三次元ビューワ上で設定することを選択している。この状態で「ＯＫ」ボタン７３１を押下すると、三次元ビューワ上での登録ガイダンス機能が実行される。
（三次元ビューワ上での登録ガイダンス機能）
【０４１５】
三次元ビューワ上での登録ガイダンス機能では、４つの工程を経て把持位置を登録させる。ここでは、図１３４〜図１４１に示す三次元ビューワ登録画面を経て、ユーザに対し把持位置を指定させる。具体的には図１３３で「ＯＫ」ボタン７３１を押下すると、図１３４のＸ−Ｙ指定画面７４０に切り替わる。
（第一工程：Ｘ−Ｙ指定）
【０４１６】
図１３４では、Ｘ−Ｙ指定部の一形態としてＸ−Ｙ指定画面７４０が表示される。ここでは、把持位置を登録するための第一工程として、サーチモデルＳＭＡを平面図状に表示させた状態で、平面図上から把持位置を指定させる。具体的には、サーチモデルＳＭＡをＸＹ平面における二次元状に画像表示欄１４１に表示させて、把持するＸ、Ｙ座標をサーチモデルＳＭＡ上で指定させる。操作欄１４２には、ＳＴＥＰ１として、ユーザに対し行うべき作業をテキスト等で説明する。ここでは「把持するＸＹ位置をカメラ画像上で選択してください。」と表示される。また図１３４の例では、画像表示欄１４１には、サーチモデルＡが高さ画像（サーチモデルＳＭＡ）として拡大表示されており、この状態でユーザはマウス等のポインティングデバイスを用いて、把持する部位Ｐ１を選択する。この把持指定位置Ｐ１に応じて、ＸＹ座標がＸＹ座標指定欄７４１に入力される。また、ＸＹ座標指定欄７４１のＸ座標、Ｙ座標を調整すると、これに応じて画像表示欄１４１の把持指定位置Ｐ１も更新される。なお、このＸ−Ｙ指定画面７４０では、位置パラメータの内、Ｘ座標とＹ座標の指定のみを可能としており、言い換えると他の位置パラメータの指定は不可能としている。このように、従来のような多数の位置パラメータを同時に設定可能としたことでユーザが混乱する事態を避け、設定可能な位置パラメータを制限することで、ユーザは設定可能な位置パラメータを的確に把握して、順次位置パラメータを設定するように案内される。このようにしてＸＹ座標の指定を終えると、「次へ」ボタン７４２を押下する。これにより、第二工程に移り、図１３５のＺ−ＲZ指定画面７５０に切り替わる。
（第二工程：Ｚ−ＲZ指定）
【０４１７】
図１３５のＺ−ＲZ指定画面７５０は、Ｚ−ＲZ指定部の一形態であり、Ｚ座標と姿勢ＲZをユーザに指定させるための画面である。操作欄１４２には、第二工程でユーザが行うべき作業をテキストで表示して説明する。ここでは「ＳＴＥＰ２  把持するＺ位置と、ハンドの姿勢角度ＲZを指定してください」と表示させている。また操作欄１４２には、Ｚ−ＲZ指定欄７５１として、Ｚ位置を指定するＺ指定欄７５２とＲZ姿勢を指定するＲZ指定欄７５３が設けられる。また画像表示欄１４１には、エンドエフェクタモデルＥＥＭとサーチモデルＳＭＡが三次元状に表示されている。すなわち画像表示欄１４１は、エンドエフェクタモデルやサーチモデルを三次元状に表示させる三次元ビューワとして機能する。Ｚ指定欄７５２やＲZ指定欄７５３の数値を変更すると、これに応じて画像表示欄１４１のエンドエフェクタモデルＥＥＭやサーチモデルＳＭＡの三次元状表示内容が更新される。また、画像表示欄１４１をドラッグすることで、ユーザは三次元ビューアの視点を変更することができるため、把持の設定状態を詳細に確認することができる。
【０４１８】
加えて三次元ビューワである画像表示欄１４１には、座標軸の内、現在設定中の位置パラメータに関する座標軸として、Ｚ軸のみを表示させている。このＺ軸は、上述したＺ−Ｙ−Ｘオイラー角で表示した補正後の補正回転Ｚ軸ＡＸＺである。このように、現在調整可能な座標軸のみを表示させ、さらに他の位置パラメータの調整をこの画面上では不可能とすることで、ユーザに対して無用な混乱を生じさせず、所定の順序に従い適切な位置パラメータのみを順次設定させるように適切に案内することが実現される。
【０４１９】
また図１３５等の例では、把持基準点ＨＢＰを通って把持方向の軸（ここでは補正回転Ｚ軸ＡＸＺ）が延びるように表示させることで、ユーザに対し、エンドエフェクタモデルＥＥＭをワークモデルに近付けるための移動方向を判り易く示すことができる。また、エンドエフェクタモデルの移動方向を矢印で示すように構成してもよい。この際、エンドエフェクタモデルの移動方向は、把持方向の軸上に重ねて表示してもよいし、あるいは別の位置に表示させてもよい。
【０４２０】
さらにＺ−ＲZ指定画面７５０は、相対位置設定部の一形態として「フィット」ボタン１５４を設けている。上述の通り「フィット」ボタン１５４は、エンドエフェクタモデルをワークモデルの把持位置に自動的に移動させるフィット機能を実現する。「フィット」ボタン１５４を押下すると、図１３６に示すようにエンドエフェクタモデルＥＥＭが移動され、サーチモデルＳＭＡに接触された状態に変化する。すなわち、エンドエフェクタモデルＥＥＭの把持基準点ＨＢＰが、サーチモデルＳＭＡの把持指定位置Ｐ１に向かって移動される。この移動方向がＺ軸と一致するように、図１３５の状態で、エンドエフェクタモデルＥＥＭの表示させる際の初期位置を調整することが好ましい。これによって、エンドエフェクタモデルＥＥＭをＺ方向にのみ移動させることで、サーチモデルＳＭＡに接触させることができ、感覚的に判り易く表示させることができる上、ユーザがエンドエフェクタモデルＥＥＭを移動させる作業も簡便に行える。
【０４２１】
また画像表示欄１４１におけるエンドエフェクタモデルＥＥＭの移動に応じて、操作欄１４２におけるＺ指定欄７５２のＺ位置が変更される。この例では、図１３５の２００ｍｍから５０ｍｍに変更されている。ここでは、フィット機能により、図１３４で指定された把持指定位置Ｐ１に向かって、エンドエフェクタモデルＥＥＭを高さ方向すなわちＺ軸方向に移動させたとき、サーチモデルＳＭＡに接触する位置を基準として、ここから所定のオフセット量だけ手前に戻した位置に移動される。また、把持指定位置Ｐ１を基準として、座標軸の内、現在設定中のＺ軸のみを画像表示欄１４１に表示させている。
【０４２２】
この状態でユーザは、さらに姿勢ＲZをＲZ指定欄７５３から指定する。図１３６に示すエンドエフェクタモデルＥＥＭの姿勢では、ハ字状に傾斜されたサーチモデルＳＭＡの側面を把持している状態となっているため、エンドエフェクタモデルＥＥＭをＺ軸方向に回転させて、平行な面を把持するように調整する。この際、ＲZ指定欄７５３にユーザが直接回転角を入力する他、所定の角度を入力する角度選択ボタン７５４を設けることで、より簡便にエンドエフェクタモデルＥＥＭの回転を指定することができる。この例では角度選択ボタン７５４として、０°、９０°、１８０°、−９０°の４つの角度ボタンを配置している。ユーザは９０°ボタンを押下することで、ＲZ指定欄７５３に９０°が入力されて、図１３７に示すようにエンドエフェクタモデルＥＥＭがＺ軸方向に９０°回転され、サーチモデルＳＭＡを正しく把持できる状態に修正できる。
（第三工程：ＲY指定）
【０４２３】
このようにして第二工程のＺ−ＲZ指定を終えると、「次へ」ボタン７５５を押下して、第三工程のＲY指定に進む。具体的には、「次へ」ボタン７５５を押下すると、図１３８のＲY指定画面７６０に移行する。ＲY指定画面７６０はＲY指定部の一形態であり、姿勢ＲYを指定する。ＲY指定画面７６０の操作欄１４２には、ＲY指定欄７６１が表示され、またユーザに対して第三工程で行うべき作業として、「ＳＴＥＰ３  ハンドの姿勢角度ＲYを指定してください」と表示される。さらに画像表示欄１４１には、座標軸の内、現在設定中のＹ軸である補正回転Ｙ軸ＡＸＹのみを表示させている。この状態からユーザは、サーチモデルＳＭＡを把持するエンドエフェクタモデルＥＥＭの姿勢に応じて、姿勢ＲYをＲY指定画面７６０から指定する。あるいは三次元ビューワである画像表示欄１４１上で、エンドエフェクタモデルＥＥＭをドラッグして回転させる。例えば図１３８の状態で、ＲY指定画面７６０から姿勢ＲYとして９０°を指定すると、図１３９のＲY指定画面に切り替わり、エンドエフェクタモデルＥＥＭがＹ軸を中心に９０°回転された姿勢に表示される。このようにして第三工程のＲY指定を終えると、「次へ」ボタン７６２を押下して、第四工程のＲY指定に移行する。
（第四工程：ＲY指定）
【０４２４】
図１４０は、第四工程のＲX指定画面７７０を示している。ＲX指定画面７７０はＲX指定部の一形態であり、姿勢ＲXを指定するためのＲX指定欄７７１を設けている。また画像表示欄１４１には、エンドエフェクタモデルＥＥＭとサーチモデルＳＭＡに重ねて、座標軸の内でＲX指定画面７７０で設定可能な位置パラメータＲXに関するＸ軸である補正回転Ｘ軸ＡＸＸが表示される。この状態でユーザは、ＲX指定欄７７１から姿勢ＲXを指定する。あるいは画像表示欄１４１でエンドエフェクタモデルＥＥＭをドラッグして回転させる。例えば姿勢ＲXとして、図１４０の例ではＲX指定欄７７１に、現在の把持位置と対応して１８０°が入力されているところ、１５０°を指定すると、図１４１のように、指定された姿勢ＲXに応じてエンドエフェクタモデルＥＥＭとサーチモデルＳＭＡの姿勢が三次元ビューワである画像表示欄１４１において変化する。
【０４２５】
このようにして姿勢ＲXの指定を終えると、「完了」ボタン７７２を押下して、把持位置を登録を終了する。把持位置が登録されると、図１４２に示すように、把持登録一覧表示欄７１２に、把持登録Ａ−０００が追加される。また把持登録Ａ−０００と対応するサーチモデルＡが、サーチモデル切替欄７１１においてハイライト表示される。さらに画像表示欄１４１には、この把持登録されたエンドエフェクタモデルＥＥＭの位置及び姿勢でサーチモデルＳＭＡを把持する様子が三次元状に表示される。さらに座標軸として、サーチモデルＳＭＡ側の基準座標軸ＢＡＸが重ねて表示されている。
【０４２６】
以下同様にして、サーチモデルＡに別の把持位置を登録したり、あるいは他のサーチモデルＢ〜Ｆに、把持位置を追加していく。把持位置の追加は、上述の通り把持登録一覧表示欄７１２に設けられた「追加」ボタン７１３を押下することで行える。図１４３の例では、サーチモデルＢに対する把持登録Ｂ−０００を登録した例を示している。
（コピー機能）
【０４２７】
また、把持位置を追加登録する際に、既に登録した把持位置をコピーするコピー機能を利用できる。図１４２等の画面で把持登録一覧表示欄７１２に設けられた「コピー」ボタン７１４を押下すると、登録済みの把持位置を複製できる。さらにコピーした把持位置をベースにして修正することで、効率的に把持位置の登録作業を行うこともできる。図１４２等の状態から、「編集」ボタン７１５を押下すると、把持設定ダイヤログが表示されて、上述の通り把持位置の設定を行うことができる。ここで、上述の通り「簡単設定ナビ」ボタン７２６を押下して把持位置設定ガイダンス機能を実行し、必要な箇所を修正することもできる。
（条件検証画面７８０）
【０４２８】
以上のようにしてサーチモデルＡ〜Ｆに把持位置を登録し終えると、図１４３等の画面で「完了」ボタン７１６を押下して、把持登録工程を終了し、条件検証工程に移行する。条件検証工程においては、バラ積みされたワーク群に対して、三次元サーチを行いワークを検出して、このワークを指定された把持位置でエンドエフェクタで把持できるかを検証する。ここでは、エンドエフェクタモデルＥＥＭとサーチモデルを用いてシミュレーションを行う。条件検証画面７８０の例を図１４４に示す。この条件検証画面７８０では、３Ｄピックガイダンス欄６５５でハイライト表示が「把持登録」アイコンから「条件・検証」アイコンに移る。操作欄１４２には、三次元サーチ結果を元に把持位置を検出する条件を設定する検出条件設定欄７８１と、検出されたワークの把持可否を検証するための検証欄７８５が設けられる。検出条件設定欄７８１では、検出する把持解の個数の上限を指定する検出個数指定欄７８２と、エンドエフェクタモデルの傾斜角度の上限を指定するハンド傾斜角度上限指定欄７８３と、エンドエフェクタモデルが干渉する範囲を拡張するため、収納容器の壁面からのマージンを設定するマージン設定欄７８４を設けている。マージン設定欄７８４で指定された距離（図１４４では５ｍｍ）の範囲に、エンドエフェクタモデルＥＥＭが浸入すると、干渉すると判断される。
【０４２９】
一方、検証欄７８５には、三次元サーチのシミュレーションの結果、実際に検出されたサーチ結果の個数を示す検出個数表示欄７８６と、検出されたサーチ結果の内で検証したいサーチモデルのラベル番号を指定する表示ラベル指定欄７８７と、ワーク毎に検証を実行するための「ワーク毎の検証」ボタン７８８を設けている。表示ラベル指定欄７８７で指定されたラベル番号のサーチ結果が、画像表示欄１４１に表示される。
（ワーク毎の検証）
【０４３０】
また「ワーク毎の検証」ボタン７８８を押下すると、図１４５に示す検証ダイヤログ７９０が表示される。検証ダイヤログ７９０は、図７４で説明したワーク選択画面２１０の一形態である。図１４５の検証ダイヤログ７９０では、検出されたワーク毎に、把持可能かどうかを検証する。この例では、検証ダイヤログ７９０は対象ワーク選択欄７９１と、検出サーチモデル表示欄７９２と「把持確認」ボタン７９３を設けている。「把持確認」ボタン７８３を押下すると、図１４６に示す検出結果表示ダイヤログ８１０が表示される。この検出結果表示ダイヤログ８１０は、図７５等で示した把持解候補表示画面２２０の一形態である。ここでは、対象ワーク選択欄７９１で選択したワーク（図１４５では２番目のワーク）に対して検出された面（サーチ画像及び推定画像）毎に、設定された把持位置での把持可否の判定結果が把持解候補表示欄８１１に一覧表示される。図１４６の例では把持ラベルＣ−０００が選択されており、これに応じて画像表示欄１４１には、対応する把持位置にエンドエフェクタモデルＥＥＭを配置して表示させると共に、判定結果に応じてエンドエフェクタモデルＥＥＭを着色表示させる。この例では、判定結果がＮＧであるため、エンドエフェクタモデルＥＥＭは赤色に表示される。また把持解候補表示欄８１１には、把持不能となった原因として、点群干渉エラーと表示される。これにより、ユーザは必要な対策、例えば把持位置の修正や追加等を行う際の指針が与えられる。
【０４３１】
また、図１４７の検出結果表示ダイヤログで、判定ＯＫである把持ラベルＡ−０００を選択すると、これに応じて画像表示欄１４１には、対応する把持位置で把持するエンドエフェクタモデルＥＥＭが、白色にて表示される。このようにして、把持の可否を判定すると共に、必要に応じて適切な対策を講じることが可能となる。
【０４３２】
さらに、図１４４の条件検証画面７８０において、検出条件設定欄７８１に設けられた検出条件詳細設定ボタン７８９を押下すると、図１４８の検出条件詳細設定画面８２０に切り替わる。検出条件詳細設定画面８２０には、把持位置の検出条件設定欄８２１と、エンドエフェクタと箱、床との干渉判定設定欄８２２と、エンドエフェクタと三次元点群との干渉判定設定欄８２３が設けられている。
【０４３３】
このようにして、条件検証工程を終えると、最後にワークの載置位置を規定するプレース設定工程に移行する。プレース設定画面８３０の一例を図１４９に示す。プレース設定画面８３０の３Ｄピックガイダンス欄６５５では、ハイライト表示が「条件・検証」アイコンから「プレース設定」アイコンに移る。操作欄１４２には、ツール座標設定欄８３１と、プレース位置登録欄８３２が設けられている。この画面からユーザは、ワークのプレースに関する設定を行う。
【産業上の利用可能性】
【０４３４】
本発明のロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器は、ロボットのバラ積みピッキングの動作を検証する用途に好適に利用できる。
【符号の説明】
【０４３５】
１０００、２０００、３０００、４０００、７０００、８０００、９０００…ロボットシステム
１００、２００、３００、４００、７００、８００、９００…ロボット設定装置
２…センサ部：２ｂ…センサ制御部；２ｃ…入力画像取得部
３、３Ｂ…表示部；３ａ…六面図表示領域；３ｂ…画像表示領域；３ｃ…把持解候補表示領域；３ｄ…ワーク把持可否表示領域；３ｅ…ワーク把持不能要因表示領域；３ｆ…表示インターフェース
４…操作部；４ｂ…入出力インターフェース
５…ロボット本体
６…ロボットコントローラ；６ｂ…ロボットインターフェース
７…ロボット操作具
８ｃ…位置決め部；８ｄ…把持位置特定部；８ｄ１…ワーク側把持箇所指定部；８ｄ２…エンドエフェクタ側把持設定部；８ｄ３…把持基準点設定部；８ｄ４…把持方向設定部；８ｄ５…相対位置設定部；８ｄ６…第二指定部；８ｄ７…第三指定部；８ｄ８…把持位置コピー部；８ｄ９…第一指定部；８ｅ…基本方向画像選択部；８ｆ…エンドエフェクタ取付面設定部；８ｇ…サーチモデル登録部；８ｇ’…モデル登録部；８ｈ…回転角度制限部；８ｉ…サーチモデル選択部；８ｊ…画像選択部；８ｋ…三次元サーチ部；８ｌ…三次元ピック判定部；８ｍ…干渉判定部；８ｎ…傾斜角度設定部；８ｏ…角度判定部；８ｐ…サーチ結果統合部；８ｑ…評価指標演算部；８ｒ…把持優先順位決定部；８ｓ…断面モデル生成部；８ｔ…ワークモデル登録部；８ｕ…エンドエフェクタモデル登録部；８ｖ…追加モデル作成部；８ｗ…キャリブレーション部；８ｘ…変換部；８ｙ…エンドエフェクタ取付位置較正部；８ｚ…画像推定部
９…記憶部；９ｂ…把持位置保存部
１０…演算部
８ｅ’…基本方向画像生成部
１３０、１３０Ｂ…サーチモデル登録画面
１３１…「登録対象」チェックボックス；１３１Ｂ…選択チェックボックス
１４０…把持登録画面
１４１…画像表示欄
１４２…操作欄
１４３…サーチモデル選択欄
１４４…把持姿勢表示欄
１４５…編集ボタン
１４６…追加ボタン
１４７…削除ボタン
１５０…把持姿勢追加画面
１５３…把持姿勢座標情報
１５４…「フィット」ボタン
１６０…傾斜角度・回転角度設定画面
１６１…姿勢制限サーチモデル選択欄
１６２…傾斜角度上限設定欄
１６３…回転角度範囲設定欄；１６３ａ…基準角度設定欄；１６３ｂ…範囲設定欄
１７０…エンドエフェクタ取付位置設定画面
１７１…エンドエフェクタ取付位置設定欄
１８０…把持位置指定画面
１８１…把持位置指定欄
１９０…複数把持位置選択画面
１９１…面選択欄
１９２…把持位置一覧表示
２１０…ワーク選択画面
２１１…対象ワーク選択欄
２１２…検出サーチモデル表示欄
２１３…「把持確認」ボタン
２２０…把持解候補表示画面
２２１…把持解候補表示欄
２２３…ワーク把持位置表示欄
２２４…ワーク把持可否表示欄
２２５…ワーク把持不能要因表示欄
２３０…Ｘ−Ｙ指定画面
２４０…Ｚ−ＲZ指定画面
２４１…Ｚ座標指定欄
２４２…ＲZ回転角指定欄
２５０…ＲY指定画面
２５１…ＲY回転角指定欄
２６０…ＲX指定画面
２６１…ＲX回転角指定欄
２７０…位置パラメータ指定画面
２７１…Ｘ、Ｙ座標指定欄
２７２…「次へ」ボタン
２７３…Ｚ座標、ＲZ回転角指定欄
２７４…ＲX、ＲY回転角指定欄
２８０…Ｘ−Ｙ−Ｚ指定画面
２８１…Ｘ、Ｙ、Ｚ座標指定欄
２９０…三次元画像ビューワ
３１０…追加領域設定画面
３１１…基本図形表示欄
３１２…「追加」ボタン
３１３…「編集」ボタン
３２０…基本図形編集画面
３２１…基本画像パラメータ調整欄
３２７…背景除去設定欄
３３０…エンドエフェクタ撮像画面
３３１…エンドエフェクタ位置指定欄
３３２…「撮像」ボタン
３４０…機能選択画面
３４１…機能一覧表示欄
３４２…「３Ｄサーチ」ボタン
３４３…「３Ｄピック」ボタン
３５０…サーチモデル登録方法選択画面
３５１…フロー表示部
３５２…「モデル登録」アイコン
３５３…「床・箱設定」アイコン
３５４…「サーチ設定」アイコン
３５５…モデル登録方法選択欄
３５６…「ＯＫ」ボタン
３６０…実測データ撮像画面
３６１…「計測実行」ボタン
３６２…モデル領域
３６３…「次へ」ボタン
３６４…「？」ボタン
３７０…サーチモデル除外領域設定画面
３７１…「？」ボタン
３７２…背景除去設定欄
３７３…「？」ボタン
３７４…「マスク領域」ボタン
３７５…「次へ」ボタン
３８０…回転対称性設定画面
３８１…「？」ボタン
３８２…回転対称設定欄
３８３…「登録」ボタン
３９０…サーチモデル登録画面
３９１…モデル一覧表示欄
３９２…「追加」ボタン
３９３…モデル登録方法指定欄
４１０…サーチモデル登録画面
４１１…「完了」ボタン
４２０…サーチ領域設定画面
４２１…サーチ領域設定欄
４２２…「指定方法選択ナビ」ボタン
４２３…指定方法選択欄
４３０…サーチ領域設定画面
４３１…床面指定ダイヤログ
４４０…サーチ領域設定画面
４４１…床面情報表示欄
４４２…ノイズ除去欄
４４３…「完了」ボタン
４５０…サーチパラメータ設定画面
４５１…検出条件設定欄
４５２…特徴抽出条件設定欄
４５３…判定条件設定欄
４５４…検出個数指定欄
４５５…傾斜角度上限指定欄
４５６…スコア下限指定欄
４５７…詳細設定ボタン
４６０…サーチパラメータ設定画面
４６１…検出詳細条件設定ダイヤログ
４６２…基本設定欄
４６３…検出条件詳細設定欄
４６４…オプション設定欄
４６５…サーチ感度設定欄
４６６…サーチ精度設定欄
４６７…サーチモデル個別指定欄；４６７ｂ…サーチモデル選択欄
４６８…ラベル順序指定欄
４６９…判定ラベル指定欄
４７０…サーチパラメータ設定画面
４７１…「ＯＫ」ボタン
４８０…サーチモデル登録方法選択画面
４８１…「ＯＫ」ボタン
４９０…サーチモデル登録画面
４９１…ＣＡＤデータ読み込みダイヤログ
４９２…ファイル一覧表示欄
４９３…「実行」ボタン
５１０…サーチモデル登録画面
５１１…登録モデル選択画面
５１２…「次へ」ボタン
５２０…サーチモデル登録画面
５２１…回転対称指定ダイヤログ
５２２…「登録」ボタン
５３０…サーチモデル登録画面
５３１…「編集」ボタン
５４０…サーチ結果表示画面
５４１…サーチ結果一覧表示欄
５４２…切り替えボタン
５４３…画面数
５５０…サーチ結果表示画面
５６０、５７０、５８０、５９０、６１０…サーチ結果表示画面
６２０…モデル編集画面
６２１…モデル領域設定欄
６２２…特徴設定欄
６２３…モデル登録欄
６２４…詳細設定ボタン
６２５…詳細設定ボタン
６３０…モデル領域詳細設定画面
６３１…マスク領域指定欄
６３２…重み付け領域指定欄
６４０…特徴詳細設定画面
６４１…特徴詳細設定欄
６４２…特徴抽出間隔指定欄
６４３…エッジ抽出閾値設定欄
６５０…三次元ピック初期設定画面
６５１…キャリブレーションデータ選択欄
６５２…検出ツール設定欄
６５３…ハンド登録欄
６５４…「ハンドモデルの作成」ボタン
６５５…３Ｄピックガイダンス欄
６６０…エンドエフェクタモデル設定画面
６６１…ハンドモデル一覧表示欄
６６２…「追加」ボタン
６７０…エンドエフェクタモデル編集画面
６７１…パーツ一覧表示欄
６７２…「追加」ボタン
６７３…ツール座標指定欄
６７４…「ＯＫ」ボタン
６８０…パーツ追加ダイヤログ
６８１…「追加」ボタン
６９０…ＣＡＤ位置姿勢設定画面
６９１…位置姿勢欄
６９２…「ＯＫ」ボタン
６９３…サイズ指定欄
７１０…把持登録画面
７１１…サーチモデル切替欄
７１２…把持登録一覧表示欄
７１３…「追加」ボタン
７１４…「コピー」ボタン
７１５…「編集」ボタン
７１６…「完了」ボタン
７２０…把持設定ダイヤログ
７２１…基本設定欄
７２２…把持ラベル設定欄
７２３…ハンド選択欄
７２４…把持位置座標指定欄
７２５…座標姿勢指定欄
７２６…「簡単設定ナビ」ボタン
７２７…移動量設定欄
７３０…設定方法選択ダイヤログ
７３１…「ＯＫ」ボタン
７４０…Ｘ−Ｙ指定画面
７４１…ＸＹ座標指定欄
７４２…「次へ」ボタン
７５０…Ｚ−ＲZ指定画面
７５１…Ｚ−ＲZ指定欄
７５２…Ｚ指定欄
７５３…ＲZ指定欄
７５４…角度選択ボタン
７５５…「次へ」ボタン
７６０…ＲY指定画面
７６１…ＲY指定欄
７６２…「次へ」ボタン
７７０…ＲX指定画面
７７１…ＲX指定欄
７７２…「完了」ボタン
７８０…条件検証画面
７８１…検出条件設定欄
７８２…検出個数指定欄
７８３…ハンド傾斜角度上限指定欄
７８４…マージン設定欄
７８５…検証欄
７８６…検出個数表示欄
７８７…表示ラベル指定欄
７８８…「ワーク毎の検証」ボタン
７８９…検出条件詳細設定ボタン
７９０…検証ダイヤログ
７９１…対象ワーク選択欄
７９２…検出サーチモデル表示欄
７９３…「把持確認」ボタン
８１０…検出結果表示ダイヤログ
８１１…把持解候補表示欄
８２０…検出条件詳細設定画面
８２１…把持位置の検出条件設定欄
８２２…エンドエフェクタと箱、床との干渉判定設定欄
８２３…エンドエフェクタと三次元点群との干渉判定設定欄
８３０…プレース設定画面
８３１…ツール座標設定欄
８３２…プレース位置登録欄
８４０、８５０…ずれ補正画面
８４１…エンドエフェクタ設定欄
８４２…「ＯＫ」ボタン
８４３…「自動補正」ボタン
ＴＡＸ…ツール座標軸
ＢＡＸ…基準座標軸
ＲＡＸ…回転済み座標軸
ＨＢＰ…把持基準点
ＥＥＴ、ＥＥＴ２、ＥＥＴ３…エンドエフェクタ
ＡＲＭ…アーム
ＷＫ、ＷＫ６、ＷＫ７、ＷＫ１０…ワーク
ＷＫ２…空洞を有するワーク
ＷＫ３…板状のワーク
ＷＫ９…平板状のワーク
ＷＫＣ…立方体状のワーク
ＣＷＭ…三次元ＣＡＤデータのワークモデル
ＣＤＭ…ＣＡＤモデル
ＷＭ９…平板状のワークモデル
ＷＭ１０、ＷＭ１１…ワークモデル
ＷＭ１１Ｆ…平面図状に表示されたワークモデル
ＷＭ１１Ｐ…斜視図状に表示されたワークモデル
ＷＭＲ…サーチモデル登録時のワークモデル
ＷＫＩ…入力画像として得られたワーク
ＡＤＡ…追加領域
ＦＬＳ…フランジ面
ＶＰ…外積ベクトル
ＷＫＩ’…回転された入力画像
ＩＢＸ…仮想直方体
ＭＷＭ…実測データ
ＢＤＩ…基本方向画像
ＳＭ…サーチモデル
ＳＭＡ…サーチモデル
Ｐ１…把持指定位置
ＳＣＰ…表面上の特徴点
ＯＣＰ…輪郭上の特徴点
ＥＥＭ、ＥＭ１０…エンドエフェクタモデル
ＰＲＪ…プロジェクタ
ＣＭＥ１、ＣＭＥ２、ＣＭＥ３、ＣＭＥ４…カメラ
ＰＣ…点群
ＢＳＬ…基本軸
ＳＰ１〜ＳＰ５…断面位置
ＳＳ１〜ＳＳ５…断面
ＴＤＰ…三次元点
ＰＰ３…投影点
ＲＢＴ…ロボット
ＢＸ…収納容器
ＳＴＧ…ステージ
ＡＸＸ…補正回転Ｘ軸
ＡＸＹ…補正回転Ｙ軸
ＡＸＺ…補正回転Ｚ軸
【図１】
2018144161.tif 000003
【図２】
2018144161.tif 000004
【図３】
2018144161.tif 000005
【図４】
2018144161.tif 000006
【図５】
2018144161.tif 000007
【図６】
2018144161.tif 000008
【図７】
2018144161.tif 000009
【図８】
2018144161.tif 000010
【図９】
2018144161.tif 000011
【図１０】
2018144161.tif 000012
【図１１】
2018144161.tif 000013
【図１２】
2018144161.tif 000014
【図１３】
2018144161.tif 000015
【図１４】
2018144161.tif 000016
【図１５】
2018144161.tif 000017
【図１６】
2018144161.tif 000018
【図１７】
2018144161.tif 000019
【図１８】
2018144161.tif 000020
【図１９】
2018144161.tif 000021
【図２０】
2018144161.tif 000022
【図２１】
2018144161.tif 000023
【図２２】
2018144161.tif 000024
【図２３】
2018144161.tif 000025
【図２４】
2018144161.tif 000026
【図２５】
2018144161.tif 000027
【図２６】
2018144161.tif 000028
【図２７】
2018144161.tif 000029
【図２８】
2018144161.tif 000030
【図２９】
2018144161.tif 000031
【図３０】
2018144161.tif 000032
【図３１】
2018144161.tif 000033
【図３２】
2018144161.tif 000034
【図３３】
2018144161.tif 000035
【図３４】
2018144161.tif 000036
【図３５】
2018144161.tif 000037
【図３６】
2018144161.tif 000038
【図３７】
2018144161.tif 000039
【図３８】
2018144161.tif 000040
【図３９】
2018144161.tif 000041
【図４０】
2018144161.tif 000042
【図４１】
2018144161.tif 000043
【図４２】
2018144161.tif 000044
【図４３】
2018144161.tif 000045
【図４４】
2018144161.tif 000046
【図４５】
2018144161.tif 000047
【図４６】
2018144161.tif 000048
【図４７】
2018144161.tif 000049
【図４８】
2018144161.tif 000050
【図４９】
2018144161.tif 000051
【図５０】
2018144161.tif 000052
【図５１】
2018144161.tif 000053
【図５２】
2018144161.tif 000054
【図５３】
2018144161.tif 000055
【図５４】
2018144161.tif 000056
【図５５】
2018144161.tif 000057
【図５６】
2018144161.tif 000058
【図５７】
2018144161.tif 000059
【図５８】
2018144161.tif 000060
【図５９】
2018144161.tif 000061
【図６０】
2018144161.tif 000062
【図６１】
2018144161.tif 000063
【図６２】
2018144161.tif 000064
【図６３】
2018144161.tif 000065
【図６４】
2018144161.tif 000066
【図６５】
2018144161.tif 000067
【図６６】
2018144161.tif 000068
【図６７】
2018144161.tif 000069
【図６８】
2018144161.tif 000070
【図６９】
2018144161.tif 000071
【図７０】
2018144161.tif 000072
【図７１】
2018144161.tif 000073
【図７２】
2018144161.tif 000074
【図７３】
2018144161.tif 000075
【図７４】
2018144161.tif 000076
【図７５】
2018144161.tif 000077
【図７６】
2018144161.tif 000078
【図７７】
2018144161.tif 000079
【図７８】
2018144161.tif 000080
【図７９】
2018144161.tif 000081
【図８０】
2018144161.tif 000082
【図８１】
2018144161.tif 000083
【図８２】
2018144161.tif 000084
【図８３】
2018144161.tif 000085
【図８４】
2018144161.tif 000086
【図８５】
2018144161.tif 000087
【図８６】
2018144161.tif 000088
【図８７】
2018144161.tif 000089
【図８８】
2018144161.tif 000090
【図８９】
2018144161.tif 000091
【図９０】
2018144161.tif 000092
【図９１】
2018144161.tif 000093
【図９２】
2018144161.tif 000094
【図９３】
2018144161.tif 000095
【図９４】
2018144161.tif 000096
【図９５】
2018144161.tif 000097
【図９６】
2018144161.tif 000098
【図９７】
2018144161.tif 000099
【図９８】
2018144161.tif 000100
【図９９】
2018144161.tif 000101
【図１００】
2018144161.tif 000102
【図１０１】
2018144161.tif 000103
【図１０２】
2018144161.tif 000104
【図１０３】
2018144161.tif 000105
【図１０４】
2018144161.tif 000106
【図１０５】
2018144161.tif 000107
【図１０６】
2018144161.tif 000108
【図１０７】
2018144161.tif 000109
【図１０８】
2018144161.tif 000110
【図１０９】
2018144161.tif 000111
【図１１０】
2018144161.tif 000112
【図１１１】
2018144161.tif 000113
【図１１２】
2018144161.tif 000114
【図１１３】
2018144161.tif 000115
【図１１４】
2018144161.tif 000116
【図１１５】
2018144161.tif 000117
【図１１６】
2018144161.tif 000118
【図１１７】
2018144161.tif 000119
【図１１８】
2018144161.tif 000120
【図１１９】
2018144161.tif 000121
【図１２０】
2018144161.tif 000122
【図１２１】
2018144161.tif 000123
【図１２２】
2018144161.tif 000124
【図１２３】
2018144161.tif 000125
【図１２４】
2018144161.tif 000126
【図１２５】
2018144161.tif 000127
【図１２６】
2018144161.tif 000128
【図１２７】
2018144161.tif 000129
【図１２８】
2018144161.tif 000130
【図１２９】
2018144161.tif 000131
【図１３０】
2018144161.tif 000132
【図１３１】
2018144161.tif 000133
【図１３２】
2018144161.tif 000134
【図１３３】
2018144161.tif 000135
【図１３４】
2018144161.tif 000136
【図１３５】
2018144161.tif 000137
【図１３６】
2018144161.tif 000138
【図１３７】
2018144161.tif 000139
【図１３８】
2018144161.tif 000140
【図１３９】
2018144161.tif 000141
【図１４０】
2018144161.tif 000142
【図１４１】
2018144161.tif 000143
【図１４２】
2018144161.tif 000144
【図１４３】
2018144161.tif 000145
【図１４４】
2018144161.tif 000146
【図１４５】
2018144161.tif 000147
【図１４６】
2018144161.tif 000148
【図１４７】
2018144161.tif 000149
【図１４８】
2018144161.tif 000150
【図１４９】
2018144161.tif 000151
【図１５０】
2018144161.tif 000152
【図１５１】
2018144161.tif 000153
【図１５２】
2018144161.tif 000154
【図１５３】
2018144161.tif 000155