以下、本発明の実施形態を図面に基づいて説明する。ただし、以下に示す実施形態は、本発明の技術思想を具体化するための例示であって、本発明は以下のものに特定されない。また、本明細書は特許請求の範囲に示される部材を、実施形態の部材に特定するものでは決してない。特に実施形態に記載されている構成部品の寸法、材質、形状、その相対的配置等は特に特定的な記載がない限りは、本発明の範囲をそれのみに限定する趣旨ではなく、単なる説明例にすぎない。なお、各図面が示す部材の大きさや位置関係等は、説明を明確にするため誇張していることがある。さらに以下の説明において、同一の名称、符号については同一若しくは同質の部材を示しており、詳細説明を適宜省略する。さらに、本発明を構成する各要素は、複数の要素を同一の部材で構成して一の部材で複数の要素を兼用する態様としてもよいし、逆に一の部材の機能を複数の部材で分担して実現することもできる。
(実施形態1)
実施形態1として、ピッキング対象のワークのピッキングを行うためのロボットシステム1000の構成例を図1に示す。この例では、作業空間に積み上げられた複数のワークWKを、ロボットRBTを用いて順次取り出し、所定の位置に配置するバラ積みピッキングを行う例について示している。ロボットRBTはマニピュレータ等とも呼ばれ、アーム部ARMと、アーム部ARMの先端に設けられたエンドエフェクタHNDを備える。アーム部ARMは複数の可動部を備えており、2本のアームが互いになす角度やアーム支点の回転により、エンドエフェクタEETを所望の位置へ移動させる。エンドエフェクタEETはワークWKを把持又は解放可能としている。
このロボットRBTは、ロボットコントローラ6で動作を制御される。ロボットコントローラ6はアーム部ARMの可動やエンドエフェクタEETの開閉動作を制御する。またロボットコントローラ6は画像処理装置100から、ロボットRBTの制御に必要な情報を取得する。例えば、収納容器BXに無作為に投入された多数の部品であるワークWKを、三次元カメラや照明等のセンサ部2で三次元形状を取得し、画像処理装置100の演算部10でワークの位置や姿勢を検出して、情報をロボットコントローラ6に送る。ロボットコントローラ6は、ワークWKを一つづつ、ロボットRBTのアーム部ARMの先端に設けられたエンドエフェクタEETでもって把持し、ステージSTG上の所定の位置、例えばコンベアベルト上に並べていく。
ロボットシステム1000の機能ブロック図を図2に示す。この図に示すロボットシステム1000は、画像処理装置100と、センサ部2と、表示部3と、操作部4と、ロボット本体5と、ロボットコントローラ6と、ロボット操作具7とを備える。
操作部4では、画像処理に関する設定を行う。またセンサ部2で、ワークを撮像しての三次元形状を取得する。さらに表示部3で、設定や動作状態の確認を行う。さらにまた演算部10で、三次元サーチや干渉判定、把持解の算出等を行う。一方、ロボットコントローラ6は演算部10の結果に従い、ロボットの制御を行う。またロボット操作具7は、ロボットの動作設定を行う。なお、図2の例では操作部4とロボット操作具7を別個の部材としているが、これらを共通の部材としてもよい。
センサ部2は、ロボットビジョンなどと呼ばれる、作業空間やワークを撮像する部材である。センサ部2で撮像された画像から、バラ積みされたワークの三次元形状を示す三次元形状データが取得される。なお三次元形状を取得する方法は、パターン投影法、ステレオ法、レンズ焦点法、光切断法、光レーダ法、干渉法、TOF方式などがある。本実施形態においては、パターン投影法の内、位相シフト法を用いている。
センサ部2の構成は、三次元形状の計測技術に応じて決定される。このセンサ部2は、カメラ、照明又はプロジェクタ等を備える。例えば位相シフト法でワークの三次元形状を計測する場合は、センサ部2として図3に示すように、プロジェクタPRJと複数のカメラCME1、CME2、CME3、CME4を備える。なおセンサ部は、カメラやプロジェクタといった複数の部材で構成する他、これらを一体的に構成してもよい。例えばカメラやプロジェクタを統合してヘッド状とした3D撮像ヘッドを、センサ部とすることができる。
また三次元形状データの生成自体を、センサ部側で行うこともできる。この場合、センサ部側に三次元形状データの生成機能を実現する画像処理IC等を設ける。あるいは、三次元形状データの生成を、画像処理装置側で行わず、センサ部で撮像した生画像を、画像処理装置側で画像処理して三次元画像等の三次元形状データを生成する構成としてもよい。
さらに、センサ部2で撮像された画像に基づいて、後述するキャリブレーションを実行することにより、実際のワークWKの位置座標(エンドエフェクタEETの移動位置の座標)と、表示部3上に表示された画像上の位置座標とをリンクさせることができる。
画像処理装置100は、このようにして得られたワークの三次元形状データに基づいて、三次元サーチ、干渉判定、把持解算出等を行う。この画像処理装置100は、専用の画像処理プログラムをインストールした汎用のコンピュータや、専用に設計された画像処理コントローラ、ロボットビジョン装置等が利用できる。なお図2の例では、センサ部2やロボットコントローラ6等を画像処理装置100とは別個の部材で構成する例を示しているが、本発明はこの構成に限られず、例えばセンサ部と画像処理装置を一体化したり、あるいはロボットコントローラを画像処理装置に組み込むこともできる。このように、図2に示す部材の区分けは一例であって、複数の部材を統合させることもできる。例えば画像処理装置100を操作する操作部4と、ロボットコントローラ6を操作するロボット操作具7とを、共通の部材としてもよい。
ただし、センサ部2はロボット本体5と別体とする。すなわち、本願発明はセンサ部2をロボット本体5のアーム部ARMに設けない、オフハンド形式と呼ばれる形態を対象としている。いいかえると、センサ部をエンドエフェクタに設ける、オンハンド形式等と呼ばれる態様は、本願発明に含まれない。
表示部3は、画像処理装置100で取得されたワークの三次元形状を表示させたり、各種設定や動作状態の確認を行うための部材であり、液晶モニタや有機ELディスプレイ、CRT等が利用できる。操作部4は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部と表示部を一体化することもできる。
例えば画像処理装置100を、画像処理プログラムをインストールしたコンピュータで構成した場合、表示部3上には画像処理プログラムのグラフィカルユーザインターフェース(GUI)画面が表示される。表示部3上に表示されたGUI上から各種の設定を行うことができ、またシミュレーション結果等の処理結果を表示させることができる。この場合、表示部3を各種の設定を行うための設定部として利用できる。
ロボットコントローラ6は、センサ部2で撮像した情報に基づいてロボットの動作を制御する。またロボット操作具7は、ロボット本体5の動作設定を行うための部材であり、ペンダントなどが利用できる。
ロボット本体5は、可動式のアーム部ARMと、アーム部ARMの先端に固定されたエンドエフェクタEETを備える。このロボット本体5はロボットコントローラ6に駆動されて、アーム部ARMを動作させ、一個のワークWKをピッキングして、これを所望の位置に移動させて載置した後、リリースする。このためアーム部ARMの先端には、ワークWKを把持するためのエンドエフェクタEETを備えている。またワークWKを載置する載置位置は、例えばトレイ上やコンベア上等が挙げられる。
ワークWKは、図1に示すように複数個が通い箱等の収容容器BXに無作為に収納されている。このような作業空間の上方には、センサ部2が配置されている。センサ部2はカメラや照明を備えており、このセンサ部2で、ワークWKの三次元形状を計測することができる。ロボットコントローラ6は、センサ部2で計測されたワークWKの三次元形状に基づいて、複数のワークの内から、把持対象のワークWKを特定して、このワークWKを把持するよう、ロボットを制御する。そして、ワークWKを把持したまま、アーム部ARMを動作させて予め定められた載置位置、例えばステージSTG上まで移動させ、所定の姿勢でワークWKを載置する。いいかえると、ロボットコントローラ6は、センサ部2でピッキング対象のワークWKを特定し、このワークWKをエンドエフェクタEETで把持して、把持したワークWKを所定の基準姿勢にて、載置する位置である載置位置に載置してエンドエフェクタEETを開放するようにロボットの動作を制御する。
ここで本明細書においてバラ積みピッキングとは、図4Aに示すような収納容器BXに入れられて無作為に積み上げられたワークWKを、ロボットで把持して、所定の位置に載置する他、図4Bに示すような収納容器を用いずに所定の領域に積み上げられたワークWKに対して把持、載置を行う例、あるいは図4Cに示すような所定の姿勢で並べられて積み上げられたワークWKを順次把持、載置する例も含む意味で使用する。また、必ずしもワーク同士が積み重ねられている状態であることは要さず、ワーク同士の重なりがない状態で平面上にランダムに置かれたワークについても、本明細書においてはバラ積みと呼ぶ(順次ピッキングされていき、ピッキングの終盤でワーク同士の重なりがない状態となった場合でも依然としてバラ積みピッキングと呼ばれるのと同じ理由である)。なお、本発明はバラ積みピッキングに必ずしも限定するものでなく、バラ積みされていないワークをピックアップする用途にも適用できる。
また、図1の例ではセンサ部2を作業空間の上方に固定しているが、作業空間を撮像できる位置であれば足り、例えば斜めや側方、下方など、任意の定位置に配置できる。ただし、アーム部ARM上のような、可動する不定位置にセンサ部を配置する態様は除かれる。さらにセンサ部2が有するカメラや照明の数も、一個に限らず複数個としてもよい。さらにまたセンサ部2やロボット、ロボットコントローラ6との接続は、有線接続に限られず、無線接続としてもよい。
またワークの把持とは、図5Aに示すようにワークWKの外側を挟み込む他、図5Bに示すような、空洞を有するワークWK2の内部にエンドエフェクタEET2の爪部を挿入して拡開させることによって保持する例や、図5Cに示すような板状のワークWK3を吸引して保持するエンドエフェクタEET3の例を含む意味で使用する。以下では、ワークの把持の例としてワークの外側面を両側から掴む態様について説明する。またワークは、図1に示すように収納容器BXに多数個が収納されて無作為に積み上げられた状態で、このような複数のワークWKに対して一つづつ、エンドエフェクタEETで把持して、載置位置に載置する作業を繰り返すバラ積みピッキング動作における把持位置の設定(ティーチング作業)について、以下説明する。
ロボットシステム1000でバラ積みピッキング動作を行うにあたり、予めバラ積みピッキング動作を行わせるための設定を含めたティーチングを行う。具体的には、ワークのどの部位を、エンドエフェクタがどのような姿勢で把持するのか、把持位置などの登録を行う。このような設定は、ペンダント等のロボット操作具7で行う。
(ティーチング作業)
上述した把持位置をティーチングする機能を実現する画像処理装置を含むロボットシステムの機能ブロック図を、図6に示す。この図に示すロボットシステム1000は、画像処理装置100と、表示部3と、操作部4と、センサ部2と、ロボットRBTを備える。
センサ部2は、作業位置に配置されたワークの三次元形状を三次元計測する。このセンサ部2は、センサ制御部2bにより制御される。なお、この例ではセンサ制御部2bをセンサ部2と一体に構成しているが、これらを個別に設けてもよい。ロボット部は、アーム部ARMとエンドエフェクタEETを備える。このロボットは、画像処理装置100に制御されて、ワークを把持位置で把持して、把持位置に把持する。ここでは、基準姿勢でワークを把持して、基準姿勢で載置する状態を、センサ部2で撮像して登録していく。ここで基準姿勢には、ワークの位置と姿勢が含まれる。
(表示部3)
表示部3は、ワークの三次元形状を仮想的に表現するワークモデルや、エンドエフェクタの三次元形状を仮想的に表現する、三次元CADデータで構成されたエンドエフェクタモデルを、仮想的な三次元空間上でそれぞれ三次元状に表示させる。なお高さ画像は、高さ情報を有する画像であって、距離画像等とも呼ばれる。さらにこの表示部3は、ワークモデルの基本方向画像を六面図として表示させる六面図表示領域3aを有している。これにより、ワークモデルの各姿勢を六面図で表示させて、把持位置を設定し易い基本方向画像に対して把持位置の設定作業を行えるようになり、従来面倒であった把持位置の設定作業を容易に行えるようになる。
操作部4は、画像処理等の各種設定を行うための部材であり、キーボードやマウス等の入力デバイスが利用できる。また表示部3をタッチパネルとすることで、操作部と表示部を一体化することもできる。
(画像処理装置100)
図6の画像処理装置100は、入力画像取得部2cと、記憶部9と、演算部10と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。
入力画像取得部2cは、センサ部2で測定された複数のワーク及びその周囲の物体を含む画像から三次元形状を有する入力画像を取得する。なお、三次元形状を有する入力画像は、センサ部やセンサ制御部側で構築してもよいし、あるいは画像処理装置側(例えば入力画像取得部)で構築してもよい。また図6の例では、センサ部2で取得された三次元形状を示す入力画像を、画像処理装置100が取得するための入力インターフェースを構成している。ただ、この構成に限らず、予め撮像されて記録媒体等の記憶部に把持された入力画像を読み出して取得する構成としてもよい。
記憶部9は、各種設定を把持するための部材であり、不揮発性メモリやハードディスク、記憶媒体等が利用できる。この記憶部9は、ワークモデルやエンドエフェクタモデルの把持位置を保存するための把持位置保存部として機能する。
入出力インターフェース4bは、キーボードやマウス等の入力デバイスと接続され、データの入力を受け付ける。
表示インターフェース3fは、表示部との出力インターフェースを構成し、演算部10で構築された表示部に表示する画像データを表示するよう制御する。
ロボットインターフェース6bは、ロボットコントローラ6との通信インターフェースを構成する。
(演算部10)
演算部10は、位置決め部8cと、基本方向画像生成部8e’と、基本方向画像選択部8eと、サーチモデル選択部8iと、ワークモデル登録部8tと、サーチモデル登録部8gと、エンドエフェクタモデル登録部8uと、把持位置特定部8dと、エンドエフェクタ取付面設定部8fと、回転角度制限部8hと、三次元サーチ部8kと、三次元ピック判定部8lとを備える。
位置決め部8cは、表示部3に表示されたワークモデルの位置及び姿勢を、仮想三次元空間上で調整するための部材である。
基本方向画像生成部8e’は、位置決め部8cで仮想三次元空間上において位置決めされたワークモデルに対して、この仮想三次元空間上で互いに直交する三軸の各軸方向からそれぞれ見た、少なくとも三つの高さ画像を基本方向画像として生成するための部材である。このように基本方向画像を自動的に生成させることで、ユーザは手動でワークの方向を変えて個別に基本方向画像を取得する必要がなくなり、把持位置の登録作業を省力化できる利点が得られる。
基本方向画像選択部8eは、表示部3に表示された少なくとも三つの基本方向画像に対して、見え方が他の基本方向画像と異なる複数の基本方向画像の中からいずれかを選択するための部材である。このように、見え方が共通する面を削除することで、不要な基本方向画像の表示等を排除して、設定作業をより簡素化できる。例えば円柱状のワークの天面と底面のように、見た目が同じ基本方向画像については一方を削除する。基本方向画像選択部8eは、表示部3に少なくとも三つの基本方向画像を表示させた状態で、ユーザに手動で選択させるように構成することができる。あるいは、基本方向画像選択部が、少なくとも三つの基本方向画像の内、見え方が共通する基本方向画像を自動で抽出して選択するよう構成してもよい。
サーチモデル選択部8iは、サーチモデルとして登録する基本方向画像を選択するための部材である。なお後述する通り、三次元サーチに用いるサーチモデルと、把持位置を特定するモデルとを共通化することで、サーチモデル選択部8iと基本方向画像選択部8eと共通の画像選択部8jで構成できる。
ワークモデル登録部8tは、ワークの三次元形状を仮想的に表現するワークモデルを登録するための部材である。ここでは、例えば、ワークモデル登録部8tは、実際のワークを撮像した三次元点群データをワークモデルとする。この場合は、センサ部2や入力画像取得部2cで取得された三次元点群データを、ワークモデル登録部8tでワークモデルとして登録する。あるいは、別途作成したワークの形状を表す三次元CADデータを読み込んでワークモデルとして登録する。この場合は、入出力インターフェース4bを介して入力された三次元CADデータをワークモデル登録部8tでワークモデルとして登録する。あるいはまた、ワークを模した三次元CADデータを作成して登録してもよい。この場合はワークモデル登録部8tが、簡易的な三次元CADの機能を実現する。
(サーチモデル登録部8g)
サーチモデル登録部8gは、入力画像取得部2cで取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いる、ワークの三次元形状を仮想的に表現したサーチモデルを登録するための部材である。このようにサーチモデル登録部8gを設けたことで、三次元サーチを行うサーチモデルを、ワークモデルの把持位置を指定する基本方向画像と共通として登録することで、ユーザは設定作業を省力化できる。また実運用時においても、把持できるワークをサーチする基本方向画像毎に、ワークの把持位置を登録することで、把持位置のない基本方向画像をサーチするような無駄を無くし、逆にサーチされた基本方向画像に対して、この基本方向画像に設定された把持位置で把持可能かどうかを検討できるため、効率良く処理を行うことが可能となる。
またサーチモデル登録部8gは、基本方向画像選択部8eで選択された基本方向画像に対して、三次元サーチ用のサーチモデルとして使用するか否かの選択を行うよう構成することが好ましい。これにより、基本方向画像に対して三次元サーチ用のサーチモデルとして使用するか否かを選択でき、いいかえると不要な基本方向画像を三次元サーチの対象から排除できるので、例えば板状のワークを側面から見た画像と誤検出する可能性がある基本方向画像を排除することで、板状のワークが直立した状態を三次元サーチしないように設定でき、実質的にワークモデルの姿勢に対する制限を簡単に設定することが可能となる。
なおサーチモデル登録部8gと、ワークモデル登録部8tは、個別に設ける他、これらを統合することもできる。例えば図6のロボットシステム1000においては、サーチモデル登録部8gとワークモデル登録部8tを、共通のモデル登録部8g’として統合している。これにより、一のワークに関するモデルを登録することで、把持位置の登録と三次元サーチ用のサーチモデルの登録に共用することが可能となり、設定を簡素化できる利点が得られる。
エンドエフェクタモデル登録部8uは、エンドエフェクタの三次元形状を三次元CADデータで仮想的に表現したエンドエフェクタモデルを登録するための部材である。
エンドエフェクタ取付面設定部8fは、表示部3にエンドエフェクタモデルと、このエンドエフェクタモデルをロボットのアーム部の先端に取り付ける取付面を表示させると共に、この取付面を表示部3に表示させた状態で、この取付面に対するエンドエフェクタモデルの姿勢を規定するための部材である。
回転角度制限部8hは、基本方向画像のいずれかを、バラ積みされた複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するためのサーチモデル登録部8gと、選択された各サーチモデル毎に、該ワークモデルの回転に対して個別に、許容される回転角度の範囲を設定するための部材である。
(把持位置特定部8d)
把持位置特定部8dは、位置決め部8cで仮想三次元空間上において位置決めされたワークモデルに対して、この仮想三次元空間上で互いに直交する三軸の各軸方向からそれぞれ見た、少なくとも三つの基本方向画像を表示部3に表示させた状態で、少なくとも何れかの高さ画像に対して、このワークモデルをエンドエフェクタで把持する把持位置を特定するための部材である。この把持位置特定部8dは、ワーク側把持箇所指定部8d1と、エンドエフェクタ側把持設定部8d2と、相対位置設定部8d5を備える。
ワーク側把持箇所指定部8d1は、基本方向画像選択部8eで選択された複数の基本方向画像を表示部3に表示させた状態で、いずれかの基本方向画像に対して、該基本方向画像が示すワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。このワーク側把持箇所指定部8d1は、複数の基本方向画像のそれぞれに対して、複数の把持位置を登録可能に構成している。
(エンドエフェクタ側把持設定部8d2)
エンドエフェクタ側把持設定部8d2は、エンドエフェクタモデルに対して、ワークモデルの把持に関する設定を行う部材である。エンドエフェクタ側把持設定部8d2は、把持基準点設定部8d3と、把持方向設定部8d4を含むことができる。把持基準点設定部8d3は、エンドエフェクタモデルに対して、ワークモデルを把持する位置に対応した把持基準点を規定する。一方把持方向設定部8d4は、エンドエフェクタモデルでワークモデルを把持する把持方向を規定する。これら把持基準点設定部8d3、把持方向設定部8d4は、共通の部材としてもよいし、個別に構成することもできる。また把持基準点設定部8d3、把持方向設定部8d4は、それぞれ把持基準点や把持方向を予め設定された所定値とすることができる。例えば、把持基準点を、エンドエフェクタモデルの先端に設けられた、ワークを挟み込む爪部同士の間の中心とする。また把持方向は、エンドエフェクタモデルを規定するツール座標軸を構成する何れかの座標軸とする。例えばZ軸方向とすることで、Z軸方向すなわち高さ方向に沿ってエンドエフェクタモデルを移動させて、ワークモデルを把持するために接近させる動作に近付け、ユーザにおいて感覚的に把握し易くできる。あるいは、把持基準点設定部8d3、把持方向設定部8d4は、把持基準点や把持方向を、ユーザにより調整可能としてもよい。
(相対位置設定部8d5)
相対位置設定部8d5は、表示部3に表示されたエンドエフェクタモデルを、ワークモデルに干渉するまで移動させ、干渉位置に至った位置から所定分だけ離間させた姿勢にて把持状態を自動的に規定するための部材である。これにより、ユーザが手動でエンドエフェクタモデルを移動させてワークに接触させることなく、自動でエンドエフェクタモデルを移動させてワークに接触させて、把持位置を示すことが可能となり、ユーザ側に必要な作業を大幅に省力化できる利点が得られる。
(把持位置の登録)
ティーチング作業においては、ワークを把持するときのワークとエンドエフェクタとの位置関係を把持位置として登録することが行われる。以下では、把持の代表例として、エンドエフェクタとしてハンド部を用いて、ハンド部でワークを把持する例について説明する。把持位置を登録した状態で、ロボットビジョンを用いたロボットピッキングの実運用時には、複数のワークがバラ積みされたワーク群の中から、ロボットビジョンで各ワークを検出し、検出されたワークの位置や姿勢に対して、エンドエフェクタ側の把持位置を計算して、計算された位置にエンドエフェクタが位置するようにロボットを動作させて、ピッキングする。ここで、把持位置の登録方法としては、実際にロボットを動作させて登録する方法や、三次元CADを用いた仮想三次元空間上でエンドエフェクタモデルを動作させて登録する方法がある。しかしながら、実際にロボットを動作させて把持位置を登録する方法では、実際にロボットを動かせながら手間のかかる登録作業が必要となり、大掛かりな検証環境を要したり、試行錯誤に時間がかかるといった問題があった。一方、三次元CADの空間上でロボットを仮想的に動作させて登録する方法では、ロボット不要で登録できる利点があるものの、仮想的なワークモデルの三次元的な姿勢に対し、仮想的なエンドエフェクタモデルの三次元的な姿勢を正確に合致させる必要があり、三次元の座標の位置合わせといった設定が難解であった。またこの方法ではワークとエンドエフェクタの三次元CADデータを必須とするため、三次元CADデータが手元にない状態では設定できなかった。
そこで本実施形態においては、三次元CADモデルの各軸方向から見た高さ画像を基本方向画像として複数表示させ、この中から、ユーザの所望する基本方向画像を選択させて、選択された基本方向画像に対して把持位置を設定することで、仮想三次元空間上での把持登録を容易に行えるようにしている。この結果、ワークを模した三次元CADデータのワークモデルを配置した仮想三次元空間上でエンドエフェクタモデルを動作させて登録する際に、仮想三次元空間を規定する各軸方向から見た基本方向画像を選択して把持登録を行うことで、各基本方向画像に対して略垂直方向から見たエンドエフェクタモデルの姿勢を基準に登録することができるため、把持の設定が簡単に行えるようになる。またこの方法によれば、三次元CADデータがない場合でも、実際のワークを三次元計測して得られるデータを基本方向画像として用いることができる。このため、三次元CADデータがない場合でも、同様の手順で仮想三次元空間上で簡単に把持登録を行うことができる。
(三次元ピック判定部8l)
三次元ピック判定部8lは、把持方向設定部8d4で規定した把持方向が、画像表示領域に表示されたワークモデルの姿勢を表すワーク平面に対して直交し、かつこの把持方向に沿うように把持基準点と把持位置を位置させるよう、エンドエフェクタモデルとワークモデルの相対位置を調整するための部材である。これにより、ワークをエンドエフェクタで把持する把持状態をシミュレーションする際、エンドエフェクタモデルでワークモデルを把持する位置の設定作業を容易に行える利点が得られる。特に、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させることで、後はエンドエフェクタモデルを把持方向に沿ってワークモデルに近付けるだけで把持位置を調整できるようになるので、ユーザ側の作業負担が大幅に軽減される利点が得られる。従来はユーザが手動でエンドエフェクタを移動させながら、目視でワークを把持する姿勢に合わせ込む作業を行っており、エンドエフェクタの位置や姿勢をどのように調整するのか、パラメータが多く自由度が大きいことから、極めて繁雑な作業となっていた。これに対して、予めエンドエフェクタモデル側に把持基準位置と把持方向を規定し、把持方向がワーク平面と直交し、かつ把持方向の軸上に、エンドエフェクタモデルの把持基準点とワークの把持位置とが位置するように設定することで、エンドエフェクタモデルの移動方向が規定され、ユーザはエンドエフェクタモデルとワークモデルとの距離のみを調整することで把持状態を得ることができるようになる。この結果、従来極めて煩雑であったエンドエフェクタモデルとワークモデルとの把持位置の摺り合わせ作業の大幅な省力化が期待できる。
このようなエンドエフェクタモデルとワークモデルの相対位置を、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させるよう調整する作業は、三次元ピック判定部8lにより自動で行わせることが好ましい。これにより、予めエンドエフェクタモデル側に把持基準位置と把持方向を規定し、把持方向がワーク平面と直交し、かつ把持方向の軸上に、エンドエフェクタモデルの把持基準点とワークの把持位置とが位置するように自動調整することで、エンドエフェクタモデルの移動方向が規定され、ユーザはエンドエフェクタモデルとワークモデルとの距離のみを調整することで把持状態を得ることができるようになる。この結果、従来極めて煩雑であったエンドエフェクタモデルとワークモデルとの把持位置の摺り合わせ作業の大幅な省力化が期待できる。
ただ、必ずしも三次元ピック判定部による自動調整に限らず、例えば位置決め部8cでもってユーザが手動で把持方向をワーク平面と直交させ、かつ把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させる調整を行う際に、三次元ピック判定部がこのような調整作業を支援するように構成してもよい。例えば、第一段階としてワーク平面と把持方向を画像表示領域に表示させた状態で、これらが直交するように補助線をユーザに示したり、文字や画像でもって「ワーク平面に把持方向が直交するように、エンドエフェクタモデルを調整してください。」等と表示させて、ユーザに調整作業を促すように構成してもよい。さらに第二段階として、把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させるよう、把持方向の延長線を画像表示領域に表示させ、「把持方向の軸上にエンドエフェクタモデルの把持基準点とワークの把持位置とを位置させるよう、調整してください。」等のメッセージを表示させて、設定を促すように三次元ピック判定部が誘導することもできる。
また三次元ピック判定部8lでもって、フィット機能を実現することもできる。例えば三次元ピック判定部8lが、エンドエフェクタモデルとワークモデルの相対位置を、把持方向がワーク平面に直交し、かつ把持方向の軸上に把持基準点と把持位置を位置させた状態で、エンドエフェクタモデルを把持方向に沿ってワークモデルに干渉するまで移動させ、干渉位置に至った位置から所定分だけ離間させた姿勢にて把持状態を自動的に規定するよう構成できる。これにより、エンドエフェクタモデルでワークモデルを把持する位置及び姿勢に自動で調整することが可能となり、ユーザ側の作業負担を一層軽減できる利点が得られる。
(三次元サーチ部)
三次元サーチ部は、入力画像中から、サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行うための部材である。三次元サーチに先立ち、サーチモデル登録部でもって、複数のワーク群をバラ積みした状態を示す入力画像中から、この入力画像に含まれる各ワークの姿勢と位置を特定する三次元サーチを行う際に用いる、ワークの三次元形状を仮想的に表現したサーチモデルを予め登録しておく。この状態で三次元ピック判定部8lが、三次元サーチ部でサーチされた入力画像中のサーチ結果に対して、ワーク側把持箇所指定部でこのワークに対して指定された把持位置において、エンドエフェクタで把持可能か否かを判定する。例えば入力画像取得部で、センサ部で測定された複数のワーク群の画像から三次元形状を有する入力画像を取得し、この入力画像中から、三次元サーチ部で、サーチモデル登録部で登録されたサーチモデルを用いて、各ワークの姿勢と位置を特定する三次元サーチを行う。これにより、実際にワークを撮像して取得した入力画像に対して、三次元サーチを行うことが可能となり、より実情に即した把持判定を行えるようになる。
(サーチモデル)
バラ積みピッキングにおいては、バラ積みされた複数のワーク群の中から、把持可能なワークを決定するために、まずワーク単位で抽出する必要がある。ここでは、センサ部で得られた高さ情報を有するワーク群の形状に対して、予め検索対象のワークの形状をワークモデルとして登録しておき、このワークモデルで三次元サーチを行い、ワーク毎に位置及び姿勢を検出する。
(基本方向画像)
ワークを三次元サーチするためのサーチモデルは、ワークを特定の方向から見たときの高さ画像を用いて作成する。サーチモデルとして用いる高さ画像は、ワークを三次元的に表現したワークモデルである三次元CADデータや、センサ部で実際にワークを撮像した実測データが利用できる。ここでは、三次元CADデータをサーチモデルとして登録する例について説明する。例えば、図7のような三次元CADデータで構築されたワークモデルCWMを、サーチモデルとして使用する場合を考える。このワークモデルCWMから、仮想三次元空間上で互いに直交する三軸(例えばX軸、Y軸、Z軸)の各軸方向の正方向、負方向からそれぞれ見た6枚の高さ画像、すなわち六面図を、基本方向画像として取得する。例えば図6の基本方向画像生成部8e’が、6枚の基本方向画像を生成して、表示部3の六面図表示領域3aに表示させる。6枚の基本方向画像は、例えばワークモデルCWMの「上」、「下」、「左」、「右」、「前」、「後」、すなわち平面図、底面図、左側面図、右側面図、正面図、背面図となるように、基本方向画像生成部8e’が自動的にワークモデルCWMの原点(詳しくは後述)やワークモデルCWMを構成する面から演算する。ここで「上」はZ軸の正方向(+側)から見た高さ画像、「下」はZ軸の負方向(−側)から見た高さ画像、「左」はX軸の負方向から見た高さ画像、「右」はX軸の正方向から見た高さ画像、「前」はY軸の負方向から見た高さ画像、「後」はY軸の正方向から見た高さ画像を、それぞれ示している。ただ、これらは一例であって、異なる座標系を用いてもよいし、X−Y平面におけるX=Yの直線を軸として、この軸と互いに直交する座標系に基づいて、各軸の正負方向から見た高さ画像を用いてもよい。また、三次元CADデータから、高さ画像を生成する際、必ずしもCADの軸に直交した方向(「上」、「下」、「左」、「右」、「前」、「後」)から見た高さ画像である必要はなく、例えばワークモデルの姿勢(視点)を任意に変えて、変えた状態の視点から高さ画像を生成するようにしても良い。
(ワークモデルの原点)
ここでワークモデルの原点は、三次元CADデータが有する座標情報から、画像処理装置が自動的に決定する。例えば図7のワークモデルCWMの三次元CADデータに対して、図8において破線で示すように、ワークモデルCWMに外接する仮想直方体IBXを規定し、この仮想直方体IBXの重心をワークモデルの原点Oとして設定する。
(基本方向画像選択部8e)
なお基本方向画像は必ずしも6枚とする必要はなく、少なくとも複数枚あれば足りる。例えば、直方体のように対向する面が同じ形状であれば、いずれか一方の面から見た基本方向画像で足りる。いいかえると、同じ形状になる基本方向画像を排除して、三次元サーチの処理負荷を低減できる。このような、見え方がいずれかの基本方向画像と共通する基本方向画像を削除する機能は、基本方向画像選択部8eにより実現される。一例として、図7のワークモデルCWMから取得した基本方向画像を図9A〜図9Dに示す.これらの図において、図9Aは図7のワークモデルCWMをX軸の正方向から見た高さ画像であり、図9BはY軸の正方向から見た高さ画像であり、図9CはZ軸の正方向から見た高さ画像であり、図9DはZ軸の負方向から見た高さ画像である。ここでは高さ画像として、高さが高い点ほど明るく、低い点ほど暗くなるように、高さ情報を輝度値として表現した高さ画像を用いている。
ここで、見え方の一致/不一致は、ワークの上下(Z軸の±方向)、前後(Y軸の±方向)、左右(X軸の±方向)から見た、計六面の高さ画像を生成し、一致確認を行うことで確認する。ここでは90°の刻み角度で回転一致を確認し、他の面と一致する見え方となる面は、サーチモデルの登録対象から除外する。図7のワークモデルCWMにおいては、X軸の負方向から見た高さ画像と、Y軸の負方向から見た高さ画像は、見え方がそれぞれ図9A、図9Bと一致する状態になるため、サーチモデル生成の対象から除外される。このようにして、見え方が異なる面数分、サーチモデルが生成される。このようにして不要な高さ画像を除外した基本方向画像を、六面図表示領域3aに表示させる。なお六面図表示領域とは、その名称に限らず、必ずしもワークモデルの六面すべてを表示させる必要はなく、上述の通り見え方の共通する高さ画像を不要画像として排除し、五面以下で表示させる態様も含めて本明細書では六面図表示領域と呼ぶ。
(サーチモデル登録画面130)
また、このような除外は、ユーザが手動で行うこともできるし、画像処理装置側で自動で行わせてもよいし、あるいはこれらを組み合わせてもよい。
例えば、図10に示す三次元サーチのサーチモデルとして基本方向画像BDIを登録するサーチモデル登録画面130において、基本方向画像生成部8e’が自動的に六面図に相当する基本方向画像BDIを生成し、表示部3の六面図表示領域3aに表示させる。この際、共通する基本方向画像が存在する場合は、サーチモデルの登録対象から排除するようユーザに促す。ここでは、サーチモデルの登録可否を設定するサーチモデル選択部8iとして、サーチモデルの候補となる基本方向画像BDIに対して、それぞれ「登録対象」チェックボックス131を設けている。ユーザは「登録対象」チェックボックス131をONにすると、この基本方向画像BDIをサーチモデルとして登録し、「登録対象」チェックボックス131をOFFにすると、この基本方向画像をサーチモデルから除外することができる。
この際、見え方が共通する基本方向画像については、基本方向画像選択部8eによって、予め「登録対象」チェックボックス131をOFFにした状態でユーザにサーチモデル登録画面130を表示させる。ユーザは、初期状態としてサーチモデルに登録すべき基本方向画像BDI、及びサーチモデルから排除すべき基本方向画像が正しく選択されていることを確認した上で、この選択を承認したり、必要に応じて修正や入れ替えを行うことができる。このように、デフォルトで三次元サーチのサーチモデルとして登録すべき基本方向画像を選択し、かつ登録から排除すべき基本方向画像の候補を提示させることで、ユーザによるサーチモデルの登録作業を省力化できる。
(実測データMWM)
以上は、三次元サーチのサーチモデルとして三次元CADデータを用いる例を説明した。ただ本発明は上述の通り、サーチモデルを必ずしも三次元CADデータに限定せず、例えば複数の二次元CADデータを解析して三次元データ化したものを用いたり、あるいはセンサ部で実際にワークを撮像した実測データを、サーチモデルとして利用することもできる。一例として、図7のワークモデルCWMに対応するワークをX軸の正方向から撮像した実測データMWMを、図11に示す。このように、ワークのCADデータがない場合は、実ワークを三次元計測したデータを用いることも可能である。図10で示したように、三次元サーチに必要な数の実測データMWMを撮像して登録していく。
なお、実ワークを登録する場合は、ワークを置いた底面の情報(例えばワーク周辺の床の形状)も三次元計測されることになる。そこで、例えば底面から一定以上の高さの箇所のみをしきい値処理で切り出す等して、不要な底面の情報を除外することが好ましい。これによって、三次元サーチに必要な形状部分のみを登録することが可能となる。
(特徴点の抽出)
次に、このようにしてサーチモデルの対象となるワークの各面に相当する高さ画像を登録した状態で、登録された面のサーチモデルを生成する。ここでは、登録された各面毎に、三次元サーチに必要な特徴点を抽出する。ここでは特徴点として、形状の輪郭を現す特徴点(輪郭上の特徴点)と、表面形状を表す特徴点(表面上の特徴点)の、2種類の特徴点を用いる例を説明する。図12Aに、X軸方向から見た高さ画像(図9Aに相当)のサーチモデルSMに対して、2種類の特徴点を抽出した状態を示す。またこのサーチモデルSMを斜視図で表示した状態を図12Bに示す。ここで表面上の特徴点SCPと輪郭上の特徴点OCPは、表示態様を変えて表示させることが好ましい。例えば表面上の特徴点SCPを白色で、輪郭上の特徴点OCPを水色で表示させる。あるいは、表面上の特徴点の白と、より区別がつきやすいように紫色で表示する等、他の配色としても良い。このように色を変えて特徴点を表示させることで、ユーザは各特徴点の意味合いを視覚的に区別することが容易となる。
表面上の特徴点SCPは、例えばワークモデルの表面を一定間隔で抽出する。一方、輪郭上の特徴点OCPは、例えば高さが変化する箇所等のエッジ抽出を行って、さらに細線化処理した箇所を、一定間隔で特徴点として抽出する。このように、各特徴点は、面の三次元的な形状を表す特徴となっている。
(三次元サーチ方法)
このようにして特徴点を抽出したサーチモデルを用いて、三次元サーチを行う。ここで、入力画像として、図13Aや図13Bに示すように複数のワークをバラ積みしたワーク群を撮像して三次元形状を取得した状態から、ワーク別に抽出するために三次元サーチを行う方法について説明する。まずサーチモデルの各特徴点が、最も一致する状態の、位置及び姿勢(X、Y、Z、RX、RY、RZ)を、入力画像の中から探索する。ここでRX、RY、RZは、それぞれX軸に対する回転角、Y軸に対する回転角、Z軸に対する回転角を表す。このような回転角度の表現方法は種々提案されているところ、ここではZ−Y−X系オイラー角を用いる(詳細は後述)。また一致する位置及び姿勢は、各サーチモデルに対して、一つである必要はなく、一定以上一致する位置及び姿勢を、複数検出しても良い。
ここでは入力画像として、図13Aのような二次元表示、あるいはこれを三次元表示させた図13Bのようなワーク群に対して、三次元サーチを行い、入力画像全体を探索する。この結果、図13Cのような二次元表示、あるいはこれを三次元表示させた図13Dに示すようなサーチ済み画像が三次元サーチ結果として得られる。図13C、図13Dに示すように、サーチモデルの特徴点が入力画像中から検索されて、サーチモデルと対応するワークが検出されていることが判る。図13Dにおいては、サーチモデルAとサーチモデルBのサーチ結果が得られている様子を示している。これらサーチモデルA、サーチモデルBは、後述する図14のサーチモデル選択欄で表示されたサーチモデルA、Bと対応している。なお図13Dの右側のワークWKについては、同じワークでサーチモデルA、Bの2つのサーチ結果が得られている。よって、各サーチモデルに登録された把持位置での把持が可能であれば、複数の把持位置がこのワークでは得られていることになる。
このように三次元サーチに用いるサーチモデルとして、ワークを六面図のように、面ごとに見た画像を用いることで、斜視図などを用いる場合と比べ、三次元サーチの演算処理を簡素化でき、処理を軽負荷、高速化できる利点が得られる。また、サーチモデルの登録作業に際しても表示された状態が見易くなり、ユーザにも視覚的に判り易くできる。
(三次元サーチ結果の評価指標)
さらに、三次元サーチ結果の評価指標を設定することもできる。例えば図13Cや図13Dに示す例において、対応する特徴点が、入力画像中に対してどの程度存在したか(例えばサーチ結果に対し、一定の距離以下の誤差で対応した特徴点の点数割合や、規定の計算式により特徴点の誤差量をペナルティとして減点した値などによって、三次元サーチ結果をスコア付けする。この方法では、三次元計測できなかった無効データ(無効画素)が多い状態では、スコアが低くなる。このようにスコアを、三次元サーチ結果の信頼性を表す指標として用いることができる。例えば、スコアが高い順に、優先的にワークを把持するように設定できる。また、一定のスコア以下の三次元サーチ結果は、誤検出している可能性が高いと判断して、ワークの把持対象から外すように設定してもよい。例えば図6の画像処理装置100において演算部10に評価指標演算部8qを設け、所定の基準に基づいてサーチ結果に対して評価指標を演算する。これにより、評価指標の高いサーチ結果から順に優先順位を設定し、この優先順位に従いワークを把持するように設定することができる。例えば、一定のスコア以上の結果の中で、Z方向の位置が最も高いものから優先的に把持するように設定することができる。Z方向の位置が高いものほど、他のワークと干渉しにくい特性があるため、Z方向の位置が最も高いものから優先的に把持するように設定することで、干渉判定の処理負荷を下げる効果を得られる。
このようにしてバラ積みされたワーク群から、ワーク毎に検出することで、把持対象のワークを画像処理装置側で認識できるようになる。次に、ワークをエンドエフェクタで把持するためには、ワーク毎に、ワークのどの位置をどのような姿勢で把持するかを認識させる必要がある。このため、ワークの把持位置を登録する。なお本明細書では、「把持位置」、「把持姿勢」の登録というとき、ワークを把持する位置と、そのときの姿勢を含む意味で使用する。ワークの把持位置は、ワークに対して一箇所以上を登録できる。また、把持位置の登録は、ワークの面単位で行うことで、把持登録の作業の容易性や把持位置の認識の点で好ましい。すなわちワークの姿勢を、特定の面を上面とした姿勢に規定した上で、把持位置を登録する。
(把持登録画面140)
ここで、エンドエフェクタモデルがワークモデルを把持する把持位置を登録する把持登録を行うユーザインターフェース画面の例を、図14、図15に示す。把持登録画面140では、ワークモデルの登録する面を指定し、各面に対し、把持姿勢を登録する。図14の例では、4種類の面(サーチモデルの各面)を指定して、把持姿勢を登録するユーザインターフェース画面を示している。ここではA〜Dのサーチモデルの内、サーチモデル「C」を選択しており、このサーチモデルCには3つの把持姿勢が表示されている。
図14の把持登録画面140では、左側に画像を表示させるための画像表示欄141、右側に各種の操作を行うための操作欄142を設けている。画像表示欄141には、ワークモデルCWMとエンドエフェクタモデルEEMが表示される。画像表示欄141の画面をドラッグすることで、視点を変更できる。このように、表示領域に表示されたワークモデルの位置や姿勢を、仮想三次元空間上で調整する位置決め部8cとして機能する。また画像表示欄141の表示態様を、二次元的な表示や三次元的な表示に切り替えることもできる。現在の表示態様を判り易く示すため、画像表示欄141には三次元の基準座標軸BAXを重ねて表示している。図14の例では、画像表示欄141には、操作欄142で選択されている把持姿勢001に登録された把持姿勢、すなわちワークモデルCWMの一部をエンドエフェクタモデルEEMで把持する様子が表示されている。なお、この例ではエンドエフェクタモデルEEMの全体を表示させているが、把持登録に際しては必ずしもエンドエフェクタモデルの全体を表示させる必要はなく、少なくともワークモデルCWMを把持する部位、例えば爪部を表示させれば足りる。
また操作欄142には、サーチモデルを選択するためのサーチモデル選択欄143、及びサーチモデル選択欄143で選択されたサーチモデルに対して登録されている把持姿勢を示す把持姿勢表示欄144が設けられている。サーチモデル選択欄143で一覧表示された把持姿勢を選択すると、これに対応する登録済みの把持姿勢が、画像表示欄141に表示される。また、編集ボタン145を押下すると、登録済みの把持姿勢を修正することが可能となる。さらに操作欄142には、把持姿勢を追加する追加ボタン146や、登録済みの把持姿勢を削除する削除ボタン147が設けられている。削除ボタン147を押すと、選択されている把持姿勢が削除される。
(把持姿勢追加画面150)
把持姿勢を新たに追加したい場合は、追加ボタン146を押す。これによって図15に示すように把持姿勢追加画面150が表示され、把持姿勢を追加することが可能となる。画像表示欄141にはエンドエフェクタモデルEEMとワークモデルCWMが表示される。また操作欄142には、把持姿勢を規定する把持姿勢座標情報153が表示される。ここで、把持姿勢座標情報153として表示される位置パラメータであるX、Y、Z、RX、RY、RZは、サーチモデルの原点に対する、エンドエフェクタモデルEEMの位置及び姿勢のデータを表している。なおサーチモデルの原点は、上述の通りワークモデルCWMの重心や、CADデータの中心座標などとできる。
把持姿勢座標情報153のX、Y、Z、RX、RY、RZの値を変更すると、画像表示欄141で三次元的に表示されているエンドエフェクタモデルEEMの位置及び姿勢がこれに応じて更新される。逆に、画像表示欄141のエンドエフェクタモデルEEMをドラッグして移動させることで、操作欄142における把持姿勢座標情報153の表示内容が移動後の把持姿勢座標に更新される。これにより、ユーザは画像表示欄141のエンドエフェクタモデルEEMと、操作欄142の把持姿勢座標情報153を確認しながら、把持位置及び姿勢を登録することができる。また画像表示欄141には、三次元の基準座標軸BAXを重ねて表示することができる。
把持位置の登録に際して、画像表示欄141に表示されるエンドエフェクタモデルEEMに対して、ワークモデルCWMを把持する位置に対応した把持基準点と、エンドエフェクタモデルEEMでワークモデルCWMを把持する把持方向を規定する。これら把持基準点と把持方向は、画像処理装置100側でデフォルト値として設定しておくことが好ましい。そして、図15の把持姿勢追加画面150において、把持方向が、ワークモデルCWMの姿勢を表すワーク平面に対して直交するように、ワークモデルCWMの位置及び姿勢に応じて、エンドエフェクタモデルEEMの位置及び姿勢を自動的に調整する。この調整は、例えば三次元ピック判定部8lに行わせることができる。あるいは、ユーザが位置決め部8cを用いて、エンドエフェクタモデルEEMの把持方向が、ワークモデルCWMのワーク平面と直交するように、エンドエフェクタモデルEEMの位置及び姿勢を手動で調整するように構成してもよい。
さらに把持位置の登録に際して、図15の把持姿勢追加画面150を開いた初期状態において、エンドエフェクタモデルEEMの位置及び姿勢は、エンドエフェクタモデルEEMを下向きの姿勢として、ワークモデルCWMがエンドエフェクタモデルEEMの下方に位置する状態を初期値としている。このようにすれば、エンドエフェクタモデルEEMを降下させてワークモデルCWMに接触させるようにすれば把持姿勢が決まるため、ユーザ側の操作を直感的に行うことができ、従来、三次元での位置合わせが面倒であった問題を低減できる。すなわち、基本的にエンドエフェクタモデルEEMのX、Y、Z方向の位置合わせと、Z軸に対する回転を設定するのみで、簡単に把持姿勢を登録できる。
さらにまた、ワークモデルCWMに対して、エンドエフェクタモデルEEMで把持する把持位置を設定することで、この把持位置が把持方向を延長した軸上に位置するよう、エンドエフェクタモデルEEMの位置を自動的に調整するよう構成することもできる。
なお、把持姿勢の登録は、ワークの画像を基準に行う。このため、必ずしもCADデータを用いる必要はなく、ワークを実際に撮像して得られた実測データに対し、把持姿勢を登録することもできることは上述の通りである。
(フィット機能)
さらに、把持位置を指定する際、エンドエフェクタモデルをワークモデルの把持位置に移動させる作業をユーザが手動で行うのみならず、これを自動的に行うフィット機能を設けることもできる。従来、エンドエフェクタモデルでワークモデルを把持する把持位置X、Y、Zや把持姿勢RX、RY、RZを指定する際、例えば図15の画像表示欄141において、エンドエフェクタモデルをドラッグしてワークモデルに接触するまで移動させたり、操作欄142において高さ方向のZに数値を入力したりして設定していた。しかしながら、ユーザが目視によりエンドエフェクタモデルを移動させてワークモデルを把持する姿勢に合わせ込む作業は面倒であり、また位置パラメータの数値を指定するのも、6つの位置パラメータをどのように調整すればよいのかが判り難い。そこで、エンドエフェクタモデルをワークモデルの把持位置に位置させる作業を自動的に行うフィット機能を設けている。
ここで、ワークモデルやエンドエフェクタモデルが三次元CADデータのように高さ情報を有している場合は、ワークモデル上の把持させたい位置をマウスのクリック等により指定し、この位置の高さ方向、すなわちZ座標を取得し、そのZ座標にオフセットを加味した位置を、エンドエフェクタモデルの移動後のZ座標として設定する。これによって、把持位置までエンドエフェクタモデルをユーザが手動で移動させたり、Z座標などの位置パラメータを手動で入力させる手間を省き、しかも正確に把持位置を指定することができる。このようなフィット機能の一例として、図15の把持姿勢追加画面150に示す操作欄142には、相対位置設定部8d5の一態様である「フィット」ボタン154を配置している。「フィット」ボタン154を押下すると、エンドエフェクタモデルEEMがZ方向に仮想的に移動されて、ワークモデルCWMに接触する位置で停止され、この干渉位置から逆方向に、オフセット量だけ戻した位置を、把持位置とする。オフセット量は、エンドエフェクタモデルEEMの先端がワークモデルCWMと接触して干渉したり傷付けることを避けるため、若干離間させるための数値であり、例えば1mmなど、ワークや用途に応じて規定できる。
以上の例では、三次元サーチを行うための三次元サーチモデル生成の際に用いた高さ画像を用いて、把持登録を行う方法を説明した。このようにワークを抽出するためのサーチモデルと、把持位置を登録するモデルとを共通化することで、ユーザは共通のワークに対して三次元サーチや把持位置の設定を行うことができ、操作に統一感が得られ感覚的にも理解し易くなる。ただ、本発明は必ずしも、三次元サーチのサーチモデルと把持登録の対象となるモデルとを一致させることを要しない。三次元サーチモデルと、把持登録に用いるモデルとの対応関係が判っておれば、必ずしもサーチモデルとして用いたモデルを把持登録に用いる必要はない。
また、三次元CADデータから高さ画像を生成した後の、見え方の一致確認は、各軸の正負方向同士の確認のみに限定する必要はない。例えば、立方体等のワークは、X軸の±方向、Y軸の±方向、Z軸の±方向の、どの方向から見ても見え方が一致するため、1つの面のみ、サーチモデルを生成すれば良い。同様に、把持位置の登録も、1つの面に対して把持を指定するだけで足りる。これだけで、全ての面(X軸の±方向、Y軸の±方向、Z軸の±方向)に対して、把持できる状態になる。例えば、図16Aに示すような立方体状のワークWKCのバラ積みに対しては、立方体の1面を、図16Bのようにモデル登録し、この面を真上から掴む把持姿勢を1つ登録するだけで、図16Cに示すように六面全ての面に対する三次元サーチ及びエンドエフェクタモデルEEMによる把持が可能となる。
(キャリブレーション)
上述した把持登録画面140では、サーチモデルの原点に対して、ワークを把持する際のエンドエフェクタモデルEEMの相対的な位置及び姿勢を登録している。一方、実際のエンドエフェクタでワークをピッキングする際には、センサ部でワークを撮像した三次元空間(ビジョン空間)の座標であるビジョン座標から、ロボットコントローラ6がロボットを実際に駆動させる際に用いるロボット座標に変換する必要がある。具体的には、三次元サーチの結果得られるワークの位置及び姿勢は、ビジョン空間における、位置(X、Y、Z)と姿勢(RX、RY、RZ)で求められる(なお姿勢(RX、RY、RZ)は、後述するZ−Y−X系オイラー角で表現された姿勢を示している)。また、これを把持するエンドエフェクタの姿勢についても、同様に画像処理装置の仮想三次元空間における位置(X、Y、Z)と姿勢(RX、RY、RZ)として求められる。このようなビジョン空間における位置及び姿勢に基づいて、ロボットコントローラ6がロボットを駆動させるには、これらをロボット空間における位置(X’、Y’、Z’)と姿勢(RX’、RY’、RZ’)に変換する必要がある。このような画像処理装置で表示される座標系で算出された位置及び姿勢を、ロボットコントローラがエンドエフェクタを動作させる座標系の位置及び姿勢に座標変換するための変換式を算出する処理は、キャリブレーションと呼ばれる。
(実施形態2)
このような画像処理装置(マシンビジョン装置)とロボット間のキャリブレーション機能を備えるロボットシステムの例を、実施形態2として図17の機能ブロック図に示す。この図に示すロボットシステム2000は、画像処理装置200と、表示部3と、操作部4と、センサ部2と、ロボットコントローラ6と、ロボットRBTを備える。なおこの図に示すロボットシステムにおいて、上述した図6等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
(画像処理装置200)
画像処理装置200は、入力画像取得部2cと、記憶部9と、演算部10と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。
入力画像取得部2cは、センサ部で測定されたエンドエフェクタを含む画像から三次元形状を有する入力画像を取得する。この入力画像取得部2cで、エンドエフェクタの入力画像を取得する際、ロボットのアーム部の先端のフランジ面に取り付けた取付位置を含むように撮像することが好ましい。また、エンドエフェクタの面積が大きくなる姿勢で入力画像を撮像する。例えば、エンドエフェクタを水平姿勢として横向きの姿勢から入力画像を撮像するよう、ユーザはロボットを操作する。
演算部10は、エンドエフェクタモデル登録部8uと、ワークモデル登録部8tと、キャリブレーション部8wと、サーチモデル登録部8gと、三次元サーチ部8kと、変換部8xと、エンドエフェクタ取付位置較正部8yと、把持位置特定部8dとを備える。
エンドエフェクタモデル登録部8uは、エンドエフェクタの三次元形状を仮想的に表現する、三次元CADデータであるエンドエフェクタモデルを登録するための部材である。例えばエンドエフェクタモデル登録部8uは、別途作成したエンドエフェクタの形状を表す三次元CADデータを読み込んでエンドエフェクタモデルとして登録する。この場合は、入出力インターフェース4bを介して入力された三次元CADデータを、エンドエフェクタモデル登録部8uでエンドエフェクタモデルとして登録する。あるいは、実際のエンドエフェクタを撮像した三次元点群データをエンドエフェクタモデルとすることもできる。この場合は、センサ部2や入力画像取得部2cで取得された三次元点群データを、エンドエフェクタモデル登録部8uでエンドエフェクタモデルとして登録する。あるいはまた、エンドエフェクタを模した三次元CADデータを作成して登録してもよい。この場合はエンドエフェクタモデル登録部8uが、簡易的な三次元CADの機能を実現する。
キャリブレーション部8wは、表示部上で表示される仮想的な三次元空間であるビジョン空間の座標系で算出された位置及び姿勢を、ロボットコントローラがエンドエフェクタを動作させるロボット空間の座標系の位置及び姿勢に座標変換するキャリブレーション情報を取得するための部材である。
キャリブレーション部8wは、複数の位置座標について、ロボットのエンドエフェクタEETの実際の位置座標と、画像処理装置に表示されている画像上の位置座標との間の変換式を算出する。なお座標変換の方法は、特に限定されるものではなく、例えば三次元アフィン変換等、既知の方法を適宜利用できる。
記憶部9は、キャリブレーション部8wによるキャリブレーション情報を保存する。
三次元サーチ部8kは、入力画像取得部2cで取得された入力画像中から、エンドエフェクタモデルをサーチモデルとして、エンドエフェクタの位置及び姿勢に対応する画像領域を特定する三次元サーチを行うための部材である。
変換部8xは、キャリブレーション部8wで得られたキャリブレーション情報に基づいて、ビジョン座標をロボット座標に変換する。この変換部8xは、記憶部9に保存されたキャリブレーション情報を読み出す。
エンドエフェクタ取付位置較正部8yは、三次元サーチ部でサーチされたビジョン空間上のエンドエフェクタの位置及び姿勢を、変換部8xでロボット空間上の位置及び姿勢に変換して得られた情報でもって、エンドエフェクタのビジョン空間上の位置及び姿勢とロボット空間上の位置及び姿勢との誤差を較正する。これにより、エンドエフェクタモデルを用いて三次元サーチすることで、仮想的なエンドエフェクタモデルを実際のエンドエフェクタの取付状態に即して誤差を補正することが可能となり、より正確な設定作業を行えるようになる。
把持位置特定部8dは、ワークモデル登録部8tで登録されたワークモデルに対して、該ワークモデルをエンドエフェクタモデルで把持する把持位置を一以上、特定する。
(Z−Y−X系オイラー角)
ここで、Z−Y−X系オイラー角について説明する。従来より、ワークをエンドエフェクタで把持する把持位置を規定するために、三次元CADデータをワークモデルやエンドエフェクタモデルの姿勢の位置決めにZ−Y−X系オイラー角が用いられている。この場合、ワークモデルに対するエンドエフェクタモデルの位置及び姿勢は6つの位置パラメータ(X,Y,Z,RX,RY,RZ)で表現される。ここでX、Y、Zは三次元空間を規定する直交座標軸であり、RX、RY、RZはそれぞれX軸、Y軸、Z軸を中心として回転させる回転角度を示している。
ここで、Z−Y−X系オイラー角に従ってエンドエフェクタモデルを回転させる例を、図18〜図21に基づいて説明する。まず図18に、表示部3の画像表示領域にエンドエフェクタモデルEEMとワークモデルWM11を表示させた状態を示す。この例では、説明を判り易くするため、仮想三次元空間を規定する基準座標軸BAX(XYZ)と、回転させる回転対象物(ここではエンドエフェクタモデルEEM)が回転した後の三次元空間座標軸である回転済み座標軸RAX(XYZ)を、それぞれ表示させている。
図18の例では、ワークモデルWM11側を静止させ、エンドエフェクタモデルEEM側を回転させているため、基準座標軸BAXはワークモデルWM11の位置及び姿勢を、回転済み座標軸RAXはエンドエフェクタモデルEEMの位置及び姿勢を、それぞれ示している。なお、エンドエフェクタモデルEEM側の回転済み座標軸RAXは、その原点をエンドエフェクタモデルEEMの把持位置となる把持基準点HBPと一致させている(詳細は後述)。
さらに回転前の状態では、XYZ軸の回転角度RX、RY、RZはそれぞれRX=0°、RY=0°、RZ=0°であり、基準座標軸BAXと回転済み座標軸RAXは一致している。この状態で、エンドエフェクタモデルEEMをZ軸を中心として反時計回りに90°回転させると、図19に示すようになる。図19の状態では、回転角度RX、RY、RZはそれぞれRX=0°、RY=0°、RZ=90°となり、これに応じて画像表示領域に表示される回転済み座標軸RAXは、回転後の姿勢に更新される。さらに図19の状態から、Y軸を中心として時計回りに90°回転させると、図20のようになる。この状態では、回転角度RX、RY、RZはそれぞれRX=0°、RY=90°、RZ=90°となり、これに応じて回転済み座標軸RAXも同様に回転後の姿勢に更新される。さらに図20の状態から、X軸を中心として時計回りに90°回転させると、図21の状態となり、回転角度RX、RY、RZはそれぞれRX=90°RY=90°RZ=90°となる。
従来は、このようなZ−Y−X系オイラー角を用いて、ワークモデルやエンドエフェクタモデルの生成や位置を表現していた。しかしながら、操作可能な位置パラメータの数が6個と多いため、これらの位置パラメータを調整してユーザが想定している位置や姿勢に調整する作業は容易でなかった。また姿勢を維持したまま位置を移動させる際に用いるXYZ軸と、回転で用いるRX、RY、RZ軸とが異なるため、この位置パラメータを変化させると、どのように変化するのかが直感的に判り難いという問題があった。この様子を図22に基づいて説明する。
今、図21の状態で、画像表示領域には、回転角度RX=90、RY=90、RZ=90の回転後の直交座標軸である回転済み座標軸RAXが表示されている。この状態からRYやRZを変更すると、表示されている回転済み座標軸RAXとは異なる軸を中心に回転することになる。例えばRYの回転は、図22の回転済み座標軸RAXで示すY軸ではなく、図22に破線で示すように、RX回転前のY軸(図19の回転済み座標軸RAXで示すY軸)を中心に回転することになる。またRZも、図22の回転済み座標軸RAXで示すZ軸を中心に回転するでなく、破線で示すRX,RY回転前のZ軸(図18の回転済み座標軸RAXで示すZ軸)を中心に回転することになる。
これは、Z−Y−X系オイラー角が、Z軸、Y軸、X軸の順に回転させることを前提に規定されていることによる。Z−Y−X系オイラー角によれば、Z軸が基準であり、Z軸回りのRZの回転によってRX、RYの回転軸がそれぞれ回転する。ここでZ軸回りの回転軸は動かない一方、RX、RYは、Z軸回りの回転RZによって回転軸自体が回転する。これに従って決定されたY軸回りにRYだけ回転させると、これに応じてX軸も回転される。ここでY軸回りの回転軸は、Z軸回りの回転RZによって決まっているため、X軸回りにRXだけ回転させても、Y軸回りの回転軸もZ軸回りの回転軸も変化しない。いいかえると、Z−Y−X系オイラー角では、RZが独立した回転軸を有し、RYはRZに従属した回転軸を有し、RXはRYに従属した回転軸を有するということができる。
このように、従来よりロボットの制御で一般的に用いられているZ−Y−X系オイラー角では、3つの回転軸が相互に関連して、他の回転軸回りの回転後の軸でもって回転するため、ユーザにとってはどの軸が回転軸になるのかが極めて把握し難くなり、意図通りの方向に回転させることが容易でなかった。
(補正回転軸の表示)
これに対して本実施形態に係る方法では、RX、RY、RZの回転軸を、それぞれ実際の回転軸を基準として表示するようにしている。この軸は、従来のZ−Y−X系オイラー角を用いた三次元空間の表示で行われていたもの(図18〜図21)とは異なり、あくまでも他の回転軸回りの回転後の状態を考慮して補正した、現実の回転軸を補正回転軸として表示させるものである。例えば図22の状態で、RZの補正回転軸を表示する例を考える。この場合は図23に示すように、RX,RYを0°として計算したときのZ軸が、補正回転軸となる。ここで表示される補正回転Z軸AXZは、RX=0°、RY=0°、RZ=90°のときのZ軸である。
一方、図22の状態でRYの補正回転軸を表示するには、図24に示すように、RXを0°として計算したときのY軸が、現実の回転軸となる。ここで表示される補正回転Y軸AXYは、RX=0°、RY=90°、RZ=90のときのY軸である。
さらに図22の状態でRXの補正回転軸を表示するには、そのままX軸を表示すればよい。補正回転軸として補正回転X軸を表示させた例を図25に示す。ここで表示される補正回転X軸AXXは、RX=90°、RY=90°、RZ=90°のときのX軸である。
なお、これらの補正回転軸の始点は、エンドエフェクタモデルの回転の中心とすることが好ましい。例えば、エンドエフェクタモデルEEMの把持位置である一対の爪部の中間位置とする。
(X−Y−Zオイラー角)
この補正回転軸は、回転させる順番を変更した場合であっても、同様の考え方で回転軸を表示できる。例えば上述した図23〜図25の例では、Z−Y−X系オイラー角を採用したため、RZ、RY、RXの順で回転させている。一方、X−Y−Zオイラー角を採用すると、RX、RY、RZの順で回転させることから、0°として計算する軸がZ−Y−X系オイラー角とは異なる。例えばX−Y−Zオイラー角で補正回転軸を得るために、図18〜図21と同様にRX、RY、RZの順で回転させたと仮定すると、補正回転軸としてZ軸を表示するには、そのまま回転後のZ軸を表示させる。また補正回転軸としてY軸を表示するには、RZを0°として計算したときのY軸を表示させる。さらに補正回転軸としてX軸を表示させるには、RZとRYを0°として計算したときのX軸を表示させる。
このようにして、オイラー角を用いて把持位置や姿勢の設定をユーザが行うに際して、回転軸を判り易く表示させることができ、複雑なオイラー角の概念を理解せずとも感覚的に操作し易くできる。
(実施形態3)
オイラー角のような、複数の位置パラメータで規定されるエンドエフェクタやワークの位置や姿勢を、ユーザが設定することは容易でない。そこで、複数の位置パラメータの内、指定可能な位置パラメータを制限してユーザに指定させるよう、位置パラメータの設定手順を誘導して、誘導に従い順次必要な位置パラメータを設定させることもできる。このような例を実施形態3に係るロボットシステム3000として、図26に示す。この図に示すロボットシステム3000は、画像処理装置300と、表示部3Bと、操作部4と、センサ部2と、ロボットコントローラ6と、ロボットRBTを備える。なおこの図に示すロボットシステムにおいて、図6等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
(画像処理装置300)
画像処理装置300は、入力画像取得部2cと、演算部10と、記憶部9と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。記憶部9は、把持位置保存部9bを有する。把持位置保存部9bは、把持位置特定部8dで指定されたワークモデル又はエンドエフェクタモデルの把持位置を、保存するための部材である。
演算部10は、把持位置特定部8dと、把持位置コピー部8d8と、相対位置設定部8d5と、サーチモデル登録部8gと、三次元サーチ部8kと、三次元ピック判定部8lと、断面モデル生成部8sとを備える。
把持位置特定部8dは、表示部上の仮想三次元空間上に表示されたワークモデル又はエンドエフェクタモデルの何れか又は両方の、位置及び姿勢を特定する、X軸、Y軸、Z軸上の座標位置であるX座標、Y座標、Z座標、及びX軸、Y軸、Z軸を中心とする回転角度であるRX回転角、RY回転角、RZ回転角の6つの位置パラメータを、それぞれ指定するための部材である。
把持位置コピー部8d8は、把持位置保存部9bに保存されたワークモデル又はエンドエフェクタモデルの把持位置を読み出して、該把持位置を変更して新たな把持位置として登録するための部材である。これにより、複数の把持位置を登録する際、既に登録された把持位置を読み出して、これをベースにして把持位置を変更し、新たな把持位置として登録可能とすることで、一から把持位置を登録する場合に比べ、より簡単に把持位置を追加でき、登録作業の省力化が図られる。
三次元ピック判定部8lは、三次元サーチ部8kでサーチされた各サーチ結果に対して、把持位置特定部8dでワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。
断面モデル生成部8sは、エンドエフェクタモデルに対して一方向に設定された直線状の基本軸に沿って、この基本軸と直交する平面でエンドエフェクタモデルを切断した断面と、各断面を含む直交平面が基本軸と交差する点を断面位置として、複数の断面と断面位置との組で構成された断面モデルを生成する。この断面モデルを作成するためのエンドエフェクタモデルには、ポリゴンデータ等が用いられる。
(把持位置特定部8d)
図26に示す把持位置特定部8dは、第一指定部8d9と、第二指定部8d6と、第三指定部8d7を含む。第一指定部8d9は、X座標、Y座標、Z座標の少なくともいずれかを指定可能で、かつ他の位置パラメータは指定不可能な部材である。第二指定部8d6は、第一指定部8d9で一部の位置パラメータが指定された状態のワークモデル又はエンドエフェクタモデルに対して、RX回転角、RY回転角、RZ回転角の少なくともいずれかを指定可能で、かつ他の位置パラメータは指定不可能な部材である。第三指定部8d7は、第一指定部8d9及び第二指定部8d6で一部の位置パラメータが指定された状態のワークモデル又はエンドエフェクタモデルに対して、RX回転角、RY回転角、RZ回転角の少なくともいずれかの内、第二指定部8d6で指定されていない位置パラメータを指定可能で、かつ他の位置パラメータは指定不可能とした部材である。
これにより、把持位置の指定を、6つの位置パラメータのすべてを一つの画面上で指定させるのでなく、指定可能なパラメータをそれぞれ限定した複数の指定部に分けて、それぞれで位置パラメータを個別に指定させることで、複数の位置パラメータが相互に絡み合って位置や姿勢の把握がし難くなる事態を避け、さらに順次位置パラメータを着ていさせることで、位置及び姿勢の特定に必要な情報を設定させることが可能となる。特に、第一指定部8d9で把持位置の初期位置を、表示部に平面状に表示させたワークモデル上の何れかの部位を、マウスのクリック等で指定させる構成としたことで、見易い姿勢としたワークモデル上を直接指定するという視覚的に判り易い方法でユーザに指定させることが可能となり、従来のような姿勢の確定や数値の規定といった複雑で面倒な作業と比べて遙かに簡単化できる。なお、第一指定部8d9では必ずしもワークモデルを二次元状に表示させる態様に限られず、三次元状に表示させてもよい。
(設定作成時の手順)
ここで、ロボットシステムを動作させるための設定作業を、実運用の前に行うティーチング作業の手順を図27のフローチャートに基づいて説明する。
まずステップS2701において、ワークを三次元サーチするためのサーチモデルの登録を行う。ここでサーチモデルは、上述の通りワークモデル、ここでは三次元のCADデータを登録することができる。あるいは、センサ部で実際にワークを撮像した実測データをサーチモデルとして登録してもよい。
次にステップS2702において、ロボットのエンドエフェクタモデルを登録する。ここでも、エンドエフェクタモデルとして、三次元CADデータを登録することができる。次にステップS2703において、把持するワークモデルの面を、高さ画像中から選択する。次にステップS2704において、選択した面に対する把持するときのロボットの位置及び姿勢を登録する。次にステップS2705において、必要数の位置及び姿勢を登録できたか否かを判定し、未だの場合はステップS2703に戻って上記処理を繰り返す。そして必要数の登録ができた場合は、処理を終了する。
(三次元CADデータをサーチモデルに登録する手順)
ここで、ステップS2701において、サーチモデルとして三次元CADデータを用いる場合の、ワークのサーチモデルを登録する手順の例を、図28のフローチャートに基づいて説明する。まずステップS2801において、ワークの三次元CADデータモデルを読み込む。次にステップS2802において、三次元CADデータモデルの外接直方体の中心を、三次元CADデータの原点に補正する。さらにステップS2803において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を生成する。ここで、三次元CADデータから高さ画像を生成する際は、CADの原点が高さ画像の中心になるように生成する。
次にステップS2804において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。最後にステップS2805において、生成された高さ画像を用いてサーチモデルを登録する。
このようにして、三次元サーチに用いるサーチモデルを、ユーザはガイダンスに沿って登録することができる。
(エンドエフェクタモデルの登録)
次に、図27のステップS2702でエンドエフェクタモデルを登録する手順の詳細を、図29のフローチャートに基づいて説明する。ここでは、エンドエフェクタモデルを構成する三次元CADデータが、ポリゴンデータで構成されているものとする。
まず、ステップS2901において、エンドエフェクタモデルのポリゴンデータを読み込む。次にステップS2902において、断面を作成する方向を決定する。さらにステップS2903において、断面モデルを作成する。断面モデルは、図26の断面モデル生成部8sで作成される。断面モデルの作成の詳細については、後述する。このようにして、エンドエフェクタモデルが記憶部9に登録される。
(追加領域)
また、エンドエフェクタモデルの登録に際して、元のエンドエフェクタモデルに追加領域を付加することもできる。このような手順を、図30のフローチャートに基づいて説明する。まずステップS3001において、エンドエフェクタモデルを登録する。例えばSTLデータ等の三次元CADデータで構成されたエンドエフェクタモデルを読み込む。
次にステップS3002において、追加領域を設定する。追加領域は、例えば干渉判定(詳細は後述)に際して、実際のエンドエフェクタの形状や付加されているカバーやハーネス類等を模した形状を、エンドエフェクタモデルの表面に追加するものであり、これによって干渉判定の精度を向上させることができる。
(実施形態4)
このような追加領域の設定には、追加モデル作成機能を用いる。追加モデルの作成機能を付加したロボットシステムの例を、実施形態4として、図31のブロック図に示す。この図に示すロボットシステム4000は、画像処理装置400と、表示部3と、操作部4と、センサ部2と、ロボットコントローラ6と、ロボットRBTを備える。なおこの図に示すロボットシステムにおいて、図6等と共通する部材については、同じ符号を付して詳細説明を適宜省略する。
(画像処理装置400)
画像処理装置400は、入力画像取得部2cと、演算部10と、記憶部9と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。
演算部10は、ワークモデル登録部8tと、エンドエフェクタモデル登録部8uと、追加モデル作成部8vと、把持位置特定部8dと、サーチモデル登録部8gと、三次元サーチ部8kと、干渉判定部8mと、断面モデル生成部8sとを備える。
追加モデル作成部8vは、予め規定された一以上の立体的な図形で表現した追加領域を、エンドエフェクタモデルの表面に追加した追加モデルを作成するための部材である。これにより、三次元CADデータを編集することなく、エンドエフェクタモデルに対して直方体や円柱などの単純形状で干渉判定領域を追加して、それぞれの領域に応じた干渉判定を行うことにより、簡便に干渉判定を行えるようになる。なお、立体的な図形には、予め画像処理装置側で用意されている基本的な図形の他、ユーザが自由に設計可能な図形も含まれる。
把持位置特定部8dは、ワークモデル登録部8tで登録されたワークモデルに対して、このワークモデルをエンドエフェクタモデルで把持する把持位置を一以上、特定するための部材である。
三次元サーチ部8kは、入力画像取得部2cで取得された入力画像中から、サーチモデル登録部8gで登録されたサーチモデルを用いて、各ワークの位置及び姿勢に対応する画像領域を特定する三次元サーチを行うための部材である。
干渉判定部8mは、追加モデル作成部8vで作成された追加モデルでもって、エンドエフェクタを動作させた際に、該動作を妨げる可能性のある他の物体との干渉の有無を判定する干渉判定を行うための部材である。この干渉判定部8mは、入力画像取得部2cで取得された入力画像に含まれる複数のワークの何れかを把持しようとしてエンドエフェクタを当該位置に移動させる際に、このワークの周囲の物体がエンドエフェクタと干渉するか否かを判定するために、入力画像の内でこのワークの周囲の物体を構成する画像に対して、干渉判定を実行する。これにより、エンドエフェクタモデルを入力画像と対比して干渉判定することができる。干渉判定部8mは例えば、三次元サーチ部8kで入力画像中からサーチされた各ワークの位置及び姿勢に対応するサーチ結果に対して、このワークを把持するために把持位置特定部8dで特定された把持位置にエンドエフェクタモデルを配置する場合に、このワークの周囲に存在する物体との干渉の有無を判定する。
(追加領域設定画面310)
追加領域は、三次元CADデータで構成されたエンドエフェクタモデルに付加される。ここで、追加モデル作成部8vの一態様として、エンドエフェクタモデルに追加領域を追加する追加領域設定画面310を、図32に示す。この追加領域設定画面310は、エンドエフェクタの三次元CADデータであるエンドエフェクタモデルEEMを読み込んで、これに図形を付加することができる。追加領域設定画面310は、画像表示欄141と操作欄142を備えている。画像表示欄141には、読み込まれたエンドエフェクタモデルEEMの三次元CADデータが表示されている。また操作欄142には、基本図形表示欄311が設けられている。基本図形表示欄311には、選択可能な基本図形が一覧表示されている。基本図形には、直方体や円柱、円錐や三角錐、六角柱等が挙げられる。ユーザは所望の基本図形を、基本図形表示欄311から選択して、「追加」ボタン312を押すことで、エンドエフェクタモデルEEM上の指定した位置に基本図形を追加することができる。また基本図形表示欄311で一覧表示された各行には、「編集」ボタン313が設けられており、このボタンを押下すると、選択した基本図形の設定を変更できる。例えば底面の一辺の長さや半径、高さ等の基本図形パラメータを調整できる。
図32の例では追加したい基本図形として直方体が選択されており、基本図形表示欄311でハイライト表示されている。この状態で「編集」ボタン313を押下すると、図33の基本図形編集画面320が表示される。基本図形編集画面320の操作欄142には、基本画像パラメータ調整欄321が設けられており、ここから基本図形のサイズや、エンドエフェクタの基準位置に対する位置や姿勢を変更できる。なお基本画像パラメータ調整欄321から基本図形パラメータを調整すると、これに応じて画像表示欄141の表示内容も更新される。
図32の例では、追加領域ADAを、アーム部の先端のフランジ面FLSとエンドエフェクタモデルEEMとの間に挿入している。これにより、アーム部とエンドエフェクタとの間に取付治具等が介在された状態を再現できる。また、アーム部先端のフランジ面が、画像処理装置側で演算用に設定された面とずれがある場合に、このずれ量をオフセットさせるために使用することもできる。
さらに図形は、複数を追加できる。図32の例では、基本図形表示欄311から所望の基本図形を選択して「追加」ボタン312を押すことで、様々な基本図形を追加できる。これによって、複数の基本図形を組み合わせて、様々な形状を表現することが可能となる。
このように、エンドエフェクタモデルに対して追加領域を設定する機能を備えることで、従来のように三次元CADデータの形状を直接編集する等して形状を変更することなく、予め用意された基本図形を追加するだけで、容易に形状を付加することが可能となる。この結果、エンドエフェクタをワークを把持する把持位置に配置した際に、ワークの周囲の物体と干渉するかどうかを予め確認する干渉判定において、エンドエフェクタモデルに含まれていないが、実際には存在する部材が存在する場合、これらを模した形状として判定結果の精度を向上させることができる。例えば、エンドエフェクタを、アーム部の先端にジョイントを介して接続している際、エンドエフェクタ全体がオフセットされ、先端が若干突出した状態となることがある。また、エンドエフェクタの外側に、接触防止用のカバーを被せたり、あるいはエンドエフェクタからの延びるケーブルといった、付加的な要素が存在することがある。このような付加的な要素は、エンドエフェクタモデルの三次元CADデータに含まれていないことが多く、また別途CADデータが用意されていることも少ない。かといって、エンドエフェクタモデルの三次元CADデータを加工して、これらの付加的な要素に応じた形状に変更するよう編集するのは、手間がかかる。また複雑な形状をCADデータで表現できたとしても、このような複雑な形状の三次元CADデータを干渉判定に用いると、演算処理が複雑となって処理時間も長くなってしまう。
そこで、このような付加的な要素を、図形で表現することで、面倒な編集作業を経ることなく、簡単な追加領域で実情に近付けた形態のエンドエフェクタモデルを得ることができ、実態に即した形状を容易に表現できるようになる。また、この方法であればCADデータの形は変えずに干渉判定領域を追加しているため、処理時間の増加量を抑えられる。
(把持位置の設定手順)
次に、図27のステップS2704において、エンドエフェクタでワークを把持する把持位置及び姿勢を登録する手順について、図34のフローチャート及び図35A〜図38に基づいて説明する。ここでは、三次元CADデータで構成されたワークモデルWM11及びエンドエフェクタモデルEEMを用いて、ワークモデルWM11を固定したまま、このワークモデルWM11を把持する際の、ワークモデルWM11に対するエンドエフェクタモデルEEMの位置及び姿勢(以下、これらを纏めて「把持位置」と呼ぶ。)を規定する6つの位置パラメータ、すなわち把持位置X,Y,Zと把持姿勢RX,RY,RZを、図34のフローチャートに示す手順で順に設定していく。
(X−Y指定部)
まずステップS3401において、把持位置のX座標及びY座標を指定する。ここでは、X−Y指定部でもってワークをある平面に投影した二次元状の平面画像を表示させて、この平面画像上で把持位置を指定する。このようなX−Y指定部の一形態として、X−Y指定画面230を図35Bに示す。この図に示すX−Y指定画面230は、図35Aに示すワークの三次元CADデータを、画像表示欄141で平面図状に表示させている。この状態でユーザに、平面図状に表示されたワークモデルWM11Fのどの位置をエンドエフェクタモデルで把持させたいかを指定させる。図35Bのように平面図上で把持位置をマウス等のポインティングデバイスで選択させることで、姿勢や回転角などを意識することなく、判り易い態様で所望の位置を指定させることができる。特に、平面図状に表示されたワークモデルWM11F上で把持する位置をクリックで指定することで、数値を入力して位置を調整するのに比べて、容易に指定できる利点が得られる。そして、ユーザが手動で指定した位置と画像の縮尺から、把持位置のX、Y座標を決定できる。なお、X、Y座標を数値で表示させるX、Y座標表示欄をX−Y指定画面に設けてもよい。
(Z−RZ指定部)
次にステップS3402において、把持位置Z及び把持姿勢RZをZ−RZ指定部から指定する。Z−RZ指定部の一形態として、Z−RZ指定画面240を図36に示す。この図に示すZ−RZ指定画面240は、画像表示欄141と、操作欄142を備える。操作欄142には、把持位置のZ座標を指定するためのZ座標指定欄241と、把持姿勢のRZ回転角を指定するためのRZ回転角指定欄242が設けられる。この段階では、X、Y座標はステップS3401において既に決定されているので、Z軸のみを表示すれば足りる。このためエンドエフェクタモデルEEMとワークモデルWM11を画像表示欄に表示させた状態で、補正回転軸として補正回転Z軸AXZのみを重ねて表示させている。これにより、ユーザは回転角度を変更した際に、画像表示欄141で表示されるエンドエフェクタモデルEEMがどのように回転されるかをイメージし易くなり、エンドエフェクタモデルEEMの位置調整作業を容易にできる利点が得られる。特に、他の回転軸を表示させないことで、ユーザは混乱することなく、回転方向を視覚的に把握できる。さらにZ座標とRZ回転角以外の他の位置パラメータは指定不能としたことで、誤って他の位置パラメータを変更するといったことも排除され、ユーザは指定可能な位置パラメータのみに集中して設定することができ、誤解や誤設定といった混乱を排除した状態で必要な設定のみに専念できる。
エンドエフェクタモデルEEMの回転は、RZ回転角指定欄242で数値を入力すると、これに応じて画像表示欄141におけるエンドエフェクタモデルEEMが自動的に回転されて表示される。また、画像表示欄141で表示されるエンドエフェクタモデルEEMをドラッグして回転させると、これに応じてRZ回転角指定欄242で表示されるRZ回転角の値も変更される。
(RY指定部)
さらにステップS3403において、把持姿勢RYを指定する。ここでは、図37に示すRY指定画面250を用いて、RY回転角をRY回転角指定欄251から指定する。この例では、エンドエフェクタモデルEEMやワークモデルWM11の姿勢をZ−Y−X系オイラー角で表現している。そのためステップS3402で指定したRZの値を用いることで、RYの回転軸の方向を補正できる。計算された補正回転軸である補正回転Y軸AXYは、上記と同様に画像表示欄141に表示される。このように回転軸を表示させることで、RY回転角を調整するとエンドエフェクタモデルEEMがどのように変化するのかをユーザが想像し易くなリ、設定のし易さに?がる。
(RX指定部)
最後にステップS3404において、把持姿勢RXを指定する。ここでは、図38に示すRX指定画面260を用いて、RX回転角をRX回転角指定欄261から指定する。ここでも同様に、RXの回転軸の方向を示す補正回転X軸AXXを、画像表示欄141に表示させる。
このようにして、エンドエフェクタでワークを把持する把持位置として、X,Y,Z、RX,RY,RZの6つの位置パラメータをユーザが指定できる。特に、調整可能な位置パラメータを画面毎に制限し、また表示させる回転軸も、指定に係る位置パラメータに関する回転軸のみの表示に限定することで、ユーザはこのようなガイダンスに従って設定していくことで、必要な位置パラメータを順次規定することができる。この結果、従来難解であった、三次元の位置及び姿勢を指定した把持位置の指定作業をスムーズに行わせることができる。また、オイラー角のRX、RY、RZ回転角を設定する際に、その回転軸を計算して、補正回転軸として画像表示欄141に表示させることで、ユーザが設定中の位置パラメータの変更により、どう動くのかが容易に想像できるようになる。
さらに、把持位置の登録を複数のステップに分けて、各ステップで調整できる位置パラメータを限定することで、その位置パラメータを動かすとどう動くのかが容易に想像できるようになる。特に、各ステップ毎に指定画面を設けて、異なる指定画面で異なる位置パラメータを登録させることで、混乱無くユーザに設定すべき位置パラメータを提示でき、設定作業を誘導することが可能となる。なお、図36〜図38の例では、異なる指定画面を設ける例を説明したが、この例に限られない。例えば図39の位置パラメータ指定画面270に示すように、複数の位置パラメータを指定する共通の指定画面を用いつつ、ステップ毎に、指定可能な位置パラメータを制限することもできる。図39の例では、X、Y座標のみX、Y座標指定欄271から指定可能で、他の位置パラメータについては指定できないようにグレーアウトさせて選択不能としている。そしてX、Y座標を指定し終えると、「次へ」ボタン272を押下させることで、次のステップとして別の位置パラメータ、例えばZ座標とRZ回転角のみをZ座標、RZ回転角指定欄273から指定可能として、これ以外の位置パラメータについては、指定済みのX、Y座標も含め、すべてグレーアウトさせたり、非表示とする等して、選択不能とする。そしてZ座標とRZ回転角の指定後に再度「次へ」ボタン272を押下させることで、次のステップとしてさらに別の位置パラメータ、例えばRX、RY回転角のみをRX、RY回転角指定欄274から指定可能とし、他の位置パラメータは選択不能とする。このような構成でも、ユーザに対し、指定可能な位置パラメータを制限して提示し、順次設定させていくガイダンス機能を実現できる。
さらに、位置パラメータを順次規定するステップの数や区分けについても、上述の例に限定されるものでない。例えば、Z座標とRZ回転角は別ステップになっていてもよいし、あるいはRX回転角とRY回転角が同じステップで設定できるようになっていてもよい。例えば、位置のステップを複数のステップに分割する例として、Z−RZ指定部を、Z座標を指定するためのZ指定部と、Z軸を中心としたRZ回転角を指定するためRZ指定部で構成する。あるいは、RX−RY指定部を、X軸を中心としたRX回転角を指定するためのRX指定部と、Y軸を中心としたRY回転角を指定するためのRY指定部で構成することもできる。あるいはまた、図37と図38を統合し、RX回転角とRY回転角を一画面で指定可能なRX−RY指定部としてもよい。
なお、以上の例ではワークモデル側を固定した状態で、エンドエフェクタモデルの位置及び姿勢を調整する例を説明したが、これに限らず、エンドエフェクタモデルを固定した状態で、ワークモデル側の位置及び姿勢を調整させてもよい。あるいは、エンドエフェクタモデルとワークモデルの両方の位置及び姿勢を調整するように構成してもよい。
また以上の例では、X,Y,Z、RX,RY,RZの6つの位置パラメータを、X−Y指定部でX、Y座標、Z−RZ指定部でZ座標とRZ回転角、RX−RY指定部でRX、RY回転角を順に規定する例を説明したが、各位置パラメータを規定する順序や組み合わせは、上記構成に限定されない。例えば、X−Y−Z指定部と、RZ指定部と、RX−RY指定部を用意し、X−Y−Z指定部で、エンドエフェクタモデルやワークモデルのX、Y、Z座標を指定し、次にRZ指定部で、Z軸を中心としたRZ回転角を指定し、最後にRX−RY指定部でX軸を中心としたRX回転角と、Y軸を中心としたRY回転角を指定させてもよい。この場合、X−Y−Z指定部は、例えば図40に示すようなX−Y−Z指定画面280が利用でき、三次元的に表示させたエンドエフェクタモデルEEMやワークモデルに対して、X、Y、Z座標をX、Y、Z座標指定欄281から指定することができる。このように、把持位置を最初に指定させるための画像は、図35Bに示したようなXY平面に投影した平面画像に限られず、異なる投影方向が利用でき、例えば図41に示すような、斜め方向から投影させた斜視図WM11Pを用いて指定させることもできる。
さらに、上述した図35Bのように平面に一旦投影させた画像上から把持位置を指定させる方法に限らず、図35Aのような投影しない状態で把持位置を指定させてもよい。例えば図42に示すような三次元画像ビューワ290上でワークモデルWM11を三次元的に表示させた状態で、この画面上から把持位置をマウス等のポインティングデバイスで構成された操作部を用いて指定する。
(変形例)
さらに、以上の例ではZ−Y−X系オイラー角に従い、X,Y,Z、RX,RY,RZの6つの位置パラメータを指定する手順について説明したが、本発明はこの態様に限定されず、エンドエフェクタやワークの位置及び姿勢を規定する他の態様、例えばX−Y−Z系オイラー角、X−Z−Y系オイラー角、Y−X−Z系オイラー角、Y−Z−X系オイラー角、Z−X−Y系オイラー角、X−Y−X系オイラー角、X−Z−X系オイラー角、Y−X−Y系オイラー角、Y−Z−Y系オイラー角、Z−X−Z系オイラー角、Z−Y−Z系オイラー角、あるいはロール・ピッチ・ヨー角表現、回転軸・回転角表現等に従って、エンドエフェクタ等の位置及び姿勢を規定することもできる。
また、以上の例では補正回転軸として、指定しようとする位置パラメータに関する補正回転軸のみを表示させる例について説明したが、他の補正回転軸については、完全に非表示とする構成に限定するものでない。例えば、他の補正回転軸を含めて直交する3軸を表示させつつ、指定しようとする回転角に係る回転軸を、他の補正回転軸よりも強調して表示させても、同様の効果を得ることができる。一例として、回転角を指定中の回転軸を太字で表示させたり、着色や点滅などのハイライト表示させたり、逆に指定不可とされた回転軸をグレーアウトさせたり、細線で表示させるなどして、外観上区別するようにする。特に画像の三次元表示においては、直交する座標軸があると三次元表示中であることをユーザが直感的に把握できるので、三軸の表示を維持しつつも、対象となる回転軸を他と区別することで、ユーザに対し混同を起こさせ難くできる。さらにこのような三軸を表示させる際の原点は、回転の中心とすることが好ましい。例えば、上述したエンドエフェクタモデルEEMの把持位置である一対の爪部の中間位置とする。
(把持位置コピー機能)
さらに、複数の把持位置を登録する際、既に登録された把持位置を読み出して、これをベースにして把持位置を変更し、新たな把持位置として登録可能とする把持位置コピー機能を備えてもよい。一般に、一のワークに対して把持位置を複数登録することが多い。これは、把持位置を複数登録しておけば、複数の把持解の中から最適な解を選ぶことができるため、仮に得られた把持解候補が干渉する場合であっても、他の把持解候補があれば、把持可能と判定される可能性が高まるからである。このような把持解を複数登録する際、その都度把持登録を一から行うと、同様の把持位置を登録する際に手数が多くなり作業が面倒となる。そこで、既に登録済みの把持位置をコピーして、この把持位置で設定された位置パラメータの一部を変更して、新たな把持位置として保存可能とすることで、手間を省いて複数の把持位置を容易に登録できるようになる。また、同様に既存の把持位置の読み出して、位置パラメータを適宜修正して上書き保存することも可能である。
(把持位置コピー部8d8)
このような把持位置コピー機能や把持位置編集機能は、図26で示した把持位置コピー部8d8でもって実現される。把持位置コピー部8d8は、把持位置保存部9bに保存されたワークモデルやエンドエフェクタモデルの把持位置を読み出して、把持位置を構成する位置パラメータを変更して登録する。また、把持位置コピー部8d8で把持位置を変更する際にも、上述したように、ガイダンスに従って順を登録するように構成すると、どのステップでどの位置パラメータを変更すればよいかが判り易くなり、より把持の登録が簡単になる。
さらに、把持位置を指定する際に、エンドエフェクタモデルをワークモデルの把持位置に自動的に移動させるフィット機能を付加してもよいことは、上述の通りである。例えば図36のZ−RZ指定画面240で操作欄142に「フィット」ボタン154を設けることで、フィット機能を実行させて、Z座標を自動的に設定させることができる。
(実施形態5)
さらに、三次元サーチの精度を向上させるために、サーチモデルの取り得る姿勢や角度を制限することもできる。例えば、図43に示すような平板状のワークWK9を複数個バラ積みしたワーク群から三次元サーチでワークの位置及び姿勢を検出することを考える。この場合、図43のワークWK9を三次元CADデータで示したワークモデルWM9の各面は、図44A〜図44Fに示すようになる。すなわち、図44AはワークモデルWM9の平面図、図44Bは底面図、図44Cは正面図、図44Dは背面図、図44Eは右側面図、図44Fは左側面図をそれぞれ示している。これらの基本方向画像の内から、重複する面を除いてサーチモデルとして登録する。ここでは、図44A、図44B、図44C、図44Eの四面を登録したとする。この状態で、バラ積みワーク群を撮像して三次元情報を有する点群データを取得して、三次元サーチを行う。この結果、図45においてXで示すような縦置きの姿勢でワークが存在しているかのように誤検出されることがある。実際には、薄い平板状のワークが直立した姿勢で存在することは考え難いところ、平板状のワークの正面図は図44Cに示すようにほぼ直線状、あるいは矩形状となるため、ワークの表面を構成する他の部位、例えば図44Aや図44Bの一部の形状と共通することがあり、その結果誤検出が生じる。
これに対して、ワークの取り得る姿勢を制限して三次元サーチを行うことも考えられるが、姿勢制限を行う条件の設定が極めて難解となる。例えば、図46に示すようなZ−Y−Z系のオイラー角を用いて、Z軸、Y軸、Z軸の回転角度範囲を規定することで、ワークのあらゆる姿勢を表現できることが知られているものの、この方法で各軸の回転角度を、ユーザが所望する姿勢範囲となるように規定することは容易ではない。
そこで実施形態5においては、このような面倒な概念を用いずともユーザがワークの取り得る姿勢を容易に設定できるようにした。具体的には、サーチモデルを登録する際に、ばら積みしたときに起こりそうにない姿勢を排除することで、このような面が検出されることがないようにする。このような設定には、図6に示したサーチモデル登録部8gを用いる。サーチモデル登録部8gは、基本方向画像のいずれかの中から、バラ積みされた複数のワーク群に対して、各ワークの位置と姿勢を特定する三次元サーチを行うためのサーチモデルとして登録する基本方向画像を選択する。サーチモデル登録部8gと基本方向画像選択部8eとの違いは、基本方向画像選択部8eが、見え方が同じ基本方向画像に対していずれか一を選択するものである。これに対してサーチモデル登録部8gは、三次元サーチに際してサーチの対象外としたい基本方向画像を、サーチモデルの登録対象から除外するためのものである。好ましくは、基本方向画像選択部8eで見え方が重複する基本方向画像を排除した状態で、さらにサーチモデル登録部8gでもって、不要な基本方向画像をサーチモデルの登録対象から除外する。あるいは、サーチしたい基本方向画像を選択する。これによって、予めサーチモデルの登録の候補となる基本方向画像に絞り込んだ状態でユーザに選択させることで、候補数を少なくしてサーチモデルの登録作業をより行い易くできるようになる。
(サーチモデル登録画面130B)
ここで、上述した図43のワークに対して、サーチモデルを登録するサーチモデル登録画面130Bの例を図47に示す。この図に示すサーチモデル登録画面130Bでは、図43のワークWK9に対応するワークモデルWM9から、基本方向画像生成部8e’で生成された六面図に相当する6枚の基本方向画像に対し、予め基本方向画像選択部8eが、見え方が重複する基本方向画像、図44の例では図44Dと図44Fの2枚を排除した状態で、残りの4枚の基本方向画像を表示部の六面図表示領域3aに表示させている。この状態で、サーチモデルの登録可否を設定するサーチモデル登録部8gの一形態として、サーチモデル登録画面130B中の各基本方向画像に表示された「登録する」との選択チェックボックス131Bを設けている。ユーザが、選択チェックボックス131Bをチェックすれば、この基本方向画像をサーチモデルとして登録され、逆に選択チェックボックス131Bをオフすれば、この基本方向画像をサーチモデルの登録対象から除外する。ユーザは、六面図表示領域3aに表示された各基本方向画像を見ながら、実際のバラ積み状態では起こり難い姿勢を排除することができる。図47の例では、モデルCとモデルDの選択チェックボックス131Bをオフしており、このような側面が見える姿勢、すなわち板状のワークが直立した姿勢を、三次元サーチの対象から除外することができる。これによって、面倒なワークの角度計算や範囲指定といった作業を経ること無く、ユーザはワークの姿勢を示す基本方向画像を見ながら、サーチの必要の無い画像を排除し、あるいは必要な画像のみを選択して、容易に三次元サーチの対象となるワークの姿勢に制限をかけることが可能となる。
なお、サーチモデル登録部8gは、ユーザが手動でサーチモデルの登録対象、あるいは排除対象を選択する態様のみに限られず、ワークモデルの形状や重心等を演算して、生じ難い姿勢の基本方向画像を自動で抽出して排除するように構成してもよい。
あるいは、自動演算と手動選択の組み合わせ、例えば図47に示すように、サーチモデル登録画面130Bで、基本方向画像選択部8eで選択済みの基本方向画像をすべて表示させつつ、演算により生じ難いと判定された基本方向画像については、初期状態として選択チェックボックス131Bをオフして表示させるように構成してもよい。ユーザはサーチモデル登録部8gによる自動判定の結果を参照しながら、手動で必要に応じて選択の修正を行い、OKを押すことで、より確実にサーチモデルの登録を適切に行うことができる。
また図47においては、基本方向画像選択部8eによる選択を自動演算とした例を説明したが、基本方向画像選択部による自動判定、あるいは手動選択についても、同様に組み合わせることができる。例えば基本方向画像選択部による判定の結果、見え方が共通する基本方向画像と判定された一方の画像については、グレーアウトさせて六面図表示領域に表示させることで、ユーザに対して基本方向画像選択部による自動判定の結果を確認させることができる。判定結果が誤っている場合は、ユーザが当該基本方向画像を手動で選択して、基本方向画像として残したり、あるいは逆に排除したりすることができる。このように、自動演算の結果を表示させてユーザに確認させることで、より画像の選択の精度を高めることができる。また、自動判定結果に基づいて予め選択/非選択を設定した状態を初期状態とすることで、自動判定による選択の結果が正しければユーザがOKを押してこれを承認することができ、ユーザ側の手間も最小限とすることができる。
また、不要な面を三次元サーチの対象から除外する目的は、ワークの直立状態以外にも適用できる。例えば完全にランダムにワークを積む態様以外に、特定の面のみが表出するような態様でワーク群が入力画像として与えられる場面においては、表出しない面を排除することで誤検出を回避できる。特に、表裏の形状が似ており、裏面が誤検出し易いようなワークに対しては有効となる。このように、実際には見えることのない裏面のサーチモデルを三次元サーチの対象から外すだけで、ワークの裏面側が検出されないようにワークの姿勢を制限したことと同様の効果を得ることができる。
(サーチモデルを登録する手順)
上述した、姿勢制限を設けたサーチモデルの登録手順を、図48のフローチャートに基づいて説明する。ここでは、ワークの三次元CADデータをサーチモデルとして登録する手順について説明する。
まずステップS4801において、ワークの三次元CADデータを読み込む。次にステップS4802において、三次元CADデータモデルの外接直方体の中心を、三次元CADデータの原点に補正する。さらにステップS4803において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を生成する。ここで、三次元CADデータから高さ画像を生成する際は、CADの原点が高さ画像の中心になるように生成する。さらにまたステップS4804において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。
次にステップS4805において、残った高さ画像の中で、三次元サーチに用いるサーチモデルを選択する。ここでは、サーチモデル選択部8iでもって、不要な基本方向画像を排除し、必要な基本方向画像を選択する。
最後にステップS4806において、選択された高さ画像をサーチモデルとして登録する。ここでは、サーチモデル登録部8gでもってサーチモデルを登録する。このようにして、不要な姿勢の基本方向画像を排除することで、実質的に姿勢制限を設けた状態でサーチモデルを登録することが可能となる。
(実施形態6)
以上は、数値でなく実際の画像を用いて三次元サーチの対象を制限する例について説明した。ただ、本発明はこの態様に限られず、これに代えて、あるいはこれに加えて、サーチモデルの傾斜角度や回転角度で姿勢を制限することもできる。これによって、ワークの実際の積まれ方に応じて三次元サーチの条件を適切に設定し、サーチの誤検出を減らすことが可能となる。このような傾斜角度及び回転角度による姿勢制限を行う傾斜角度・回転角度設定画面160の例を、実施形態6として図49に示す。この図に示す傾斜角度・回転角度設定画面160は、姿勢制限を行うサーチモデルを選択するための姿勢制限サーチモデル選択欄161、傾斜を許容する角度の上限を指定するための傾斜角度上限設定欄162、回転を許容する角度範囲を規定する回転角度範囲設定欄163を備えている。
(傾斜角度・回転角度設定画面160)
この傾斜角度・回転角度設定画面160では、ワークに対して三次元的な姿勢、例えば座標軸の回転角度を示すRX、RY、RZで指定するといった難解な方法ではなく、専門的知識がなくても理解が容易なパラメータとして、サーチモデルの登録時の姿勢からの「傾斜角度」、「回転角度」を用いて指定させる。ここでは、サーチモデルとして登録した基本方向画像を登録姿勢として、この状態からの傾斜角度と回転角度を指定していく(詳細は後述)。
具体的に、図49の傾斜角度・回転角度設定画面160において、姿勢制限サーチモデル選択欄161では、姿勢制限を加える対象となるサーチモデルを選択する。図49の例では、図47のサーチモデル登録画面130Bで登録されたモデルAのサーチモデルを選択している。
また傾斜角度上限設定欄162では、登録時の姿勢に対して、何度以内の傾斜角度を三次元サーチの結果として出力するかを設定する。
さらに回転角度範囲設定欄163では、基準角度と角度範囲を設定する。まず基準角度設定欄では、登録時の姿勢に対する回転角度を入力する。ここで設定した回転角度が、回転角度範囲を指定する際の基準角度となる。さらに範囲設定欄では、基準角度設定欄で設定した基準角度に対し、三次元サーチの結果として出力する回転角度範囲を設定する。
(傾斜角度・回転角度による姿勢制限方法)
ここで、サーチモデルの三次元上の姿勢から、傾斜角度、回転角度を求める方法について説明する。上述した三次元サーチにおいてサーチモデルとして登録する面を限定する方法では、自動的に姿勢制限が加わる形となる。一方で、サーチモデルとして登録した面に対して姿勢制限を加えるには、面で登録していることを利用する。
ここでは、登録した姿勢に対する「傾斜角度」と、登録した姿勢に対する真上から見た「回転角度」の2つの角度で姿勢制限を行う。この2つの角度であれば、概念としても判り易く、比較的簡単に角度制限を行うことができるようになる。
(傾斜角度)
まず傾斜角度は、図50A〜図50Cに示すように、サーチモデルとしての登録時のワークモデルの姿勢のZ鉛直方向に対する角度で規定される。図50Aはサーチモデル登録時のワークモデルWMRの姿勢及びこのワークモデルの鉛直方向として規定されたZ軸を示している。これに対して、入力画像として得られたワークWKIの姿勢、及びこのワークWKIの鉛直方向として規定されたZ’軸が図50Bに示すような状態であったとする。このような状態で、「傾斜角度」を図50Cに示すように、Z軸とZ’軸の傾斜角度、すなわちワークの鉛直方向の傾きと定義する。これによって、傾斜の方向に関係なく、サーチモデルの登録状態からの傾きという、一つの角度で表すことができる。また、ユーザにとっても概念としても把握し易い利点が得られる。
(回転角度)
一方回転角度は、登録時の鉛直方向すなわちZ軸から見たときの回転角で定義される。ここで回転角度を図51A〜図51Cに基づいて説明する。これらの図において、図51Aはサーチモデル登録時のワークモデルWMR、及びXY平面を規定するY軸を示している。これに対して入力画像として得られたワークWKIの姿勢及びXY平面を規定するY’軸が図51Bに示すような状態であったとする。このような状態で、図51Cに示すように「回転角度」を、鉛直方向すなわちZ軸から見た時の回転角と定義する。この例では、ワークモデルやワークを規定するY軸方向の座標軸を基準に、Z軸方向から見たY軸の角度でもって回転角度としている。このように規定することで、従来の二次元でのパターンサーチにおける角度と同じ概念として、ユーザにおいても把握し易い利点が得られる。
なお、ワークに対して原点及びXYZ軸を規定する手法は、既知のアルゴリズムが利用できる。例えば、図8で示したようにワークモデルや入力画像が有するワークの形状情報から、ワークに外接する図形、例えば直方体や球を演算し、その重心を演算してこれをワークの原点とし、XYZ軸を規定する。XYZ軸の規定方法は、CADデータを用いる場合、元のCADデータの座標軸の方向をそのまま各XYZ軸の方向として用いれば良い。実際にワークを3D撮像した実測データを用いる場合は、実測データの鉛直方向をZ軸とし、Y軸については実測データの平面視の上方向とし、X軸については実測データの平面視の右方向とすれば良い。原点については、ワークモデルの重心や、CADデータの中心座標を原点としてもよい。
(三次元姿勢から傾斜角度と回転角度を求める手順)
ここで、三次元姿勢から傾斜角度と回転角度を求める手順を、図52のフローチャートに基づいて説明する。まずステップS5201において、傾斜角度を求める。例えば図53Aに示すような状態の登録時のワークモデルWMRに対して、入力画像として得られたワークWKIの姿勢が図53Bのようであった場合は、図53Cに示すようにZ軸の鉛直方向の傾きとして傾斜角度を求める。
次にステップS5202において、Z’軸をZ軸に一致させるように、入力画像を三次元的に回転させる。いいかえると、傾斜を無くす。例えば図53Cの入力画像WKIに対して、図54Aに示すようにZ’軸のベクトルとZ軸のベクトルとの外積ベクトルVPを回転軸として、Z’軸がZ軸と重なるように回転させる。この結果、図54Bのように回転された入力画像WKI’が得られ、傾斜が取り除かれた状態となる。
最後にステップS5203において、回転角度を求める。例えば図55Aに示す登録時のワークモデルWMRのY軸と、図55Bに示すように傾斜を除いた状態の入力画像WKI’のY’軸を、それぞれ求める。この状態で、図55Cに示すように、鉛直方向すなわちZ軸から見た時のY軸とY’軸の角度を、回転角度として求める。このようにして、入力画像の三次元姿勢から傾斜角度と回転角度を求めることができる。
(傾斜角度の上限の設定)
図49の傾斜角度・回転角度設定画面160で傾斜角度上限を設定する例として、例えば光沢の強い金属ワークの場合は、面が傾斜するにつれて、三次元計測ができない範囲が増えてくる。このような状態で三次元サーチを行うと、三次元サーチが誤検出となるリスクが高まる。そこで、この誤検出のリスクのある一定以上傾き過ぎた姿勢を三次元サーチの対象から除外することで、信頼性の高いサーチ結果のみを残すことが可能となる。例えば、40度以上傾くと、誤検出し易くなるワークに対しては、傾斜角度上限を40度に設定することで、40度以上傾くサーチ結果を除外することができる。
(回転角度範囲の上限の設定)
一方、図49の傾斜角度・回転角度設定画面160で回転角度範囲を設定する例として、例えば上述した図47のモデルAやモデルBは、180度回転した状態でも、全体の形状特徴が似ている部分が多いため、多重反射等の影響で三次元計測できていない箇所が増えると、回転姿勢を180度誤るケースが生じ得る。また、実際のワークの積まれ方として、一定の向きしか生じない場合には、この姿勢制限を用いることで、逆向きの結果を排除することができる。例えば、回転角度範囲を、基準角度に対し±30度に設定した場合は、この角度範囲内のサーチ結果のみが検出される形になる。
(エンドエフェクタ取付位置設定画面170)
以上のオイラー角を用いた位置及び姿勢の規定方法は、ワークモデルをエンドエフェクタモデルで把持する位置及び姿勢の規定のみならず、エンドエフェクタをロボットのアーム部先端に取り付ける位置の規定においても利用できる。ここで、エンドエフェクタを、ロボットのアーム部の先端に取り付ける位置を設定する手順について説明する。このようなエンドエフェクタの取り付け位置の設定は、図56に示すようなエンドエフェクタ取付位置設定画面170で行う。この図に示すエンドエフェクタ取付位置設定画面170は、画像表示欄141と、操作欄142を備えている。画像表示欄141には、エンドエフェクタモデルを表示させる。エンドエフェクタモデルは、予め作成された三次元CADデータを読み込む。あるいは、エンドエフェクタを模して直方体や円柱などの基本図形で構成して、表示させてもよい。
操作欄142には、アーム部の先端に装着されるエンドエフェクタの取付位置を規定するエンドエフェクタ取付位置設定欄171を設けている。エンドエフェクタ取付位置設定欄171で設定するエンドエフェクタ取付位置パラメータは、エンドエフェクタモデルの取付位置(X,Y,Z)と取付姿勢(RX,RY,RZ)である。例えば、アーム部先端のフランジ面FLSの中心に対して、オイラー角を用いて規定する。
なお、上述した図14等で示したワークモデルの把持位置の登録画面では、ワークモデルを把持するエンドエフェクタモデルの部位(例えば先端に設けられた一対の爪部)と、把持するワークとの位置関係を登録している。これに対し、エンドエフェクタ取付位置設定画面170では、エンドエフェクタモデルをアーム部の先端に装着する取付位置を登録している。よって、ワークモデル等の表示は不要で、画像表示欄141には、エンドエフェクタモデルとフランジ面FLSが表示される。
(把持位置指定画面180)
これに対して、ワークモデルの把持位置を指定する把持位置指定画面180では、図57に示すように、エンドエフェクタモデルとワークモデルを表示させて、ワークモデルを把持する箇所を指定する。この図に示す把持位置指定画面180は、画像表示欄141と操作欄142を設けており、画像表示欄141には、把持対象のワークを選択して、このワークを把持する面を上面に向けた姿勢で三次元状に画像を描画して表示させる。さらにエンドエフェクタモデルを表示させて、ワークモデルを把持する位置及び姿勢に調整する。操作欄142には、把持位置を指定する把持位置指定欄181が設けられる。ユーザはワークモデルとエンドエフェクタモデルとの相対関係が正しくなるよう、把持位置指定欄181から位置パラメータを調整する。あるいは、画像表示欄141で表示されるエンドエフェクタモデルやワークモデルをドラッグするなどして、画面上で位置や姿勢を調整する。画面上で調整された位置パラメータは、把持位置指定欄181に反映される。この把持位置指定欄181での位置パラメータの表記も、上述したオイラー角を用いることができる。(複数把持位置選択画面190)
さらに、把持位置の登録は一のワークの一の面(例えば基本方向画像)に対して一箇所に限られず、上述の通り複数箇所を指定することができる。また、複数箇所で登録された把持位置を、画像で確認することもできる。例えば図58に、複数把持位置選択画面190の一例を示す。この複数把持位置選択画面190も、画像表示欄141と、操作欄142を備えている。操作欄142には、把持位置を規定したワークモデルの面を選択する面選択欄191と、面選択欄191で選択された面に設定された把持位置を一覧表示する把持位置一覧表示192が設けられる。この例では、面選択欄191で面Cが選択され、この面Cに設定された把持位置として把持1〜3が、把持位置一覧表示192に一覧表示されている。この内、把持2を選択すると、これに応じて画像表示欄141において、把持2で登録された把持位置、姿勢で、エンドエフェクタモデルがワークモデルを把持する様子が表示される。このようにしてユーザは、登録済みの複数の把持位置を選択して確認することができる。また、必要に応じて登録済みの把持位置を修正して、更新することもできる。ここでも、上述したオイラー角を用いて把持姿勢を表示させることができる。このようにして、オイラー角を用いた登録を行いつつも、ユーザ側においては、難解なオイラー角の概念を詳細に理解せずとも、視覚的に判り易く表示させ、かつ回転軸も補正して表示させ、さらにガイダンス機能により調整可能なパラメータを制限することで、混乱を少なくして設定作業を進めることが可能となる。
(エンドエフェクタ取付位置の較正機能)
上述の通り、エンドエフェクタは、ロボットのアーム部の先端に取り付けられる。一方、上述した把持位置の登録(ティーチング)や、登録された位置及び姿勢でエンドエフェクタモデルがワークモデルを把持できるかどうかの把持判定(シミュレーション)等は、実際のエンドエフェクタでなく、画像処理装置側(ロボットビジョン側)の仮想三次元空間上で行われている。そして仮想三次元空間であるビジョン空間の座標位置から、実空間であるロボット空間の座標位置への変換は、図17のキャリブレーション部8wで得られたキャリブレーション情報に基づいて、変換部8xによって行われている。
しかしながら、画像処理装置側で仮想的に設定しているエンドエフェクタモデルの取付状態と、実際のロボットRBTのエンドエフェクタEETの取付状態が異なると、キャリブレーション情報で規定されたビジョン空間とロボット空間との対応関係が維持されなくなり、実際のロボットRBTを使ってワークを把持しようとする際に、ずれが生じてしまう。
ここで、エンドエフェクタモデルとフランジ面FLSの位置関係を図59に示す。この図において、ロボットのアーム部の先端のフランジ面FLSの原点OFと、エンドエフェクタモデルEEMの位置として、エンドエフェクタモデルEEMの中心OEを、それぞれ示している。このエンドエフェクタモデルEEMの位置は、画像処理装置側では、ロボットのアーム部先端のフランジ面FLSに対する、位置(X,Y,Z)、姿勢(RX,RY,RZ)として設定されている。すなわち、図59の例ではフランジ面FLSの原点OFから見た、エンドエフェクタモデルEEMの中心OEの、位置(X,Y,Z)と姿勢(RX,RY,RZ)が設定されている。ここで、エンドエフェクタの実際の取付状態に誤差が生じると、フランジ面FLSの原点に対するエンドエフェクタモデルEEMの位置にずれが生じ得る。この結果、エンドエフェクタの取付状態に起因して、画像処理装置側とロボット側とで、ずれた位置で把持を行ってしまうことになる。
そこで本実施形態においては、このようなずれや誤差が生じないように、実際のエンドエフェクタの取付状態を、画像処理装置側に反映させるエンドエフェクタ取付位置の較正機能を備えている。エンドエフェクタ取付位置の較正機能は、図17に示したエンドエフェクタ取付位置較正部8yで行われる。具体的には、ワークの把持位置の登録や、エンドエフェクタを配置したときの干渉判定に用いたエンドエフェクタモデルである、エンドエフェクタの三次元形状を仮想的に表現した三次元CADデータを使って、実際のエンドエフェクタを撮像して三次元計測した実測データに対し、三次元サーチを行い、実際の取付位置の位置及び姿勢を取得することで、このような誤差を検出して、画像処理装置側のエンドエフェクタの取付位置の設定を較正する。このように、実際のエンドエフェクタを三次元計測した点群と、画像処理装置側で仮想三次元空間上で規定したエンドエフェクタモデルの取付状態とのずれを、ユーザが表示部の画像表示領域上で確認しながら手動で調整することができる。
(ずれの自動補正の手順)
ここで、実際のエンドエフェクタと、三次元CADデータ等で構成されたエンドエフェクタモデルとの誤差を自動で補正する較正機能について、図60のフローチャートに基づいて説明する。なお、予め仮想空間であるビジョン空間の座標位置を、実空間であるロボット空間の座標位置に変換するキャリブレーションを、図17に示したキャリブレーション部8wで実行し、キャリブレーション情報を記憶部9に把持しているものとする。さらに、エンドエフェクタモデルも三次元CADデータとして用意されているものとする。
(エンドエフェクタ撮像画面330)
まずステップS6001において、センサ部で実際のエンドエフェクタを撮像するための準備を行う。具体的には、センサ部の一形態である三次元カメラにエンドエフェクタが映るように、ロボットを操作してエンドエフェクタを移動させる。次にステップS6002において、エンドエフェクタに対し三次元計測を実施する。
このような、センサ部で実際のエンドエフェクタを撮像するためのエンドエフェクタ撮像部の一態様として、例えば、図61に示すエンドエフェクタ撮像画面330を利用する。このエンドエフェクタ撮像画面330は、画像表示欄141と、操作欄142を設けている。画像表示欄141にはセンサ部2で撮像されたアーム部ARM先端のフランジ部に取り付けられたエンドエフェクタEETがリアルタイムで表示される。また操作欄142には、エンドエフェクタEETの位置及び姿勢を示すエンドエフェクタ位置指定欄331が設けられる。このエンドエフェクタ撮像画面330から、センサ部を構成するカメラにロボットのエンドエフェクタEETが映るように、ユーザが手動でロボットを操作する。このとき、撮像の対象となるのはワークを把持するエンドエフェクタEETの爪部でなく、アーム部との取付状態である。よってエンドエフェクタEETの面積が大きくなるように撮像することが望ましい。好ましくは、エンドエフェクタEETを、通常のワークを把持し易い下向きの姿勢から、横向きの姿勢として、全体像がカメラに映るようにする。このようにして、ユーザはエンドエフェクタEETの姿勢を位置決めした後、「撮像」ボタン332を押下する。これにより、エンドエフェクタの三次元撮像画像が取得される。いいかえると、エンドエフェクタに対し三次元計測が実施される。
次にステップS6003において、ロボット座標系のフランジ部の位置姿勢Aを取得する。ここでロボット座標系の位置姿勢Aは、例えば撮像したエンドエフェクタが取り付けられているフランジ部FLSの、ロボット座標系の位置及び姿勢とする。なお、ステップS6003とステップS6002の工程の順序は、入れ替えてもよい。
さらにステップS6004において、ロボット座標系のフランジ部の位置姿勢Aをビジョン空間上の位置姿勢Bに変換する。ここでは、予めキャリブレーションを実行して得られたロボット空間とビジョン空間との座標変換を行うキャリブレーション情報に基づいて、図17の変換部8xが実空間と仮想空間との変換を行う。
さらにステップS6005において、三次元サーチを実施し、ビジョン空間上のエンドエフェクタの位置姿勢Cを検出する。ここでは、エンドエフェクタモデルに使用したCADデータをサーチモデルとして、ステップS6002で得た三次元計測データに対して三次元サーチを実施する。三次元サーチの方法は、既知のアルゴリズムを適宜利用できる。これにより、ビジョン空間上のエンドエフェクタの位置及び姿勢が検出される。
さらにステップS6006において、ビジョン空間上のフランジ部FLSの位置姿勢Bに対するエンドエフェクタの位置姿勢Cの相対的な位置姿勢を算出する。ここで得られた座標位置が、フランジ部FLSに対する正確な、いいかえると位置ずれ等を考慮したエンドエフェクタモデルの位置及び姿勢となる。
最後にステップS6007において、得られた位置及び姿勢をビジョン側のエンドエフェクタ設定に反映する。すなわち、ビジョン側のエンドエフェクタモデルの位置及び姿勢の設定に反映する。このようにして、実際のエンドエフェクタの取付状態を、ビジョン側に自動反映することができる。
(ずれの手動補正の手順)
以上は、ロボット空間とビジョン空間のずれを自動で補正する手順について説明した。ただ、本発明はずれの補正を自動で行う構成に限られず、手動で行わせることもできる。次に、手動でずれ補正を行う手順について、図150のフローチャートに基づいて説明する。ここで、ステップS1501〜ステップS1504においては、上述した自動補正に係る図60のステップS6001〜S6004の手順と同じであり、詳細説明を省略する。すなわち、ステップS1501において、三次元カメラにロボットのエンドエフェクタが映るようロボットを操作し、ステップS1502において、エンドエフェクタに対し三次元計測の実施し、ステップS1503において、ロボット座標系のフランジ部の位置姿勢Aを取得し、ステップS1504において、ロボット座標系のフランジ部の位置姿勢Aをビジョン空間上の位置姿勢Bに変換する。
次にステップS1505において、ビジョン空間上のフランジ部の位置姿勢Bから、エンドエフェクタ設定に基づいてエンドエフェクタの位置姿勢Dを算出する。ここでは、ビジョン空間上のロボットの先端であるフランジ部の位置姿勢Bと、エンドエフェクタ設定に設定されたフランジ部に対するエンドエフェクタの位置姿勢の情報から、エンドエフェクタの位置姿勢Dを求める。
次にステップS1506において、三次元計測された点群と、エンドエフェクタの位置姿勢DのCAD表示を重畳表示させる。ここでは、ステップS1505で求めたエンドエフェクタの位置姿勢Dの位置に、エンドエフェクタの三次元CADデータであるエンドエフェクタモデルEEMを表示させると共に、実際のエンドエフェクタについて三次元計測して得られた点群PCを重畳表示させる。このような重畳表示をさせた、ずれ補正画面の例を、図151及び図152に示す。
そしてステップS1507において、点群とCAD表示との間に、無視できないずれがあるか否かを判定する。無視できないずれがある場合は、ステップS1508に進み、ずれを補正するようにエンドエフェクタ設定を変更して、ステップS1505に戻って上述した処理を繰り返す。このエンドエフェクタ設定は、フランジ部に対するエンドエフェクタの位置及び姿勢を含む。一方、ずれがない場合は、処理を終了する。
(ずれ補正部)
このようなずれ補正を行うずれ補正部の一態様として、ずれ補正画面の例を図151及びcに示す。これらの図において、図151は、無視できないずれが存在する場合を示している。この図に示すずれ補正画面840は、画像表示欄141に、エンドエフェクタモデルEEMに点群PCを重畳表示させている。この図に示すように、白点で示す、実際にエンドエフェクタを三次元計測した点群PCが、エンドエフェクタモデルEEMよりも左斜め下方向にずれている状態が確認できる。
また操作欄142には、エンドエフェクタ設定欄841が設けられており、フランジ部に対するエンドエフェクタの位置(X、Y、Z)と姿勢(RX、RY、RZ)を規定する。ここでは、図において右側に示す長い方のXYZの座標軸が、ロボット先端であるフランジ部FLSの原点OFを示している。また左側に示す短い方のXYZの座標軸が、ロボット先端(フランジ部)に対する、エンドエフェクタモデルEEMの三次元CADデータの原点OEを表している。ユーザは、画像表示欄141に表示されたエンドエフェクタモデルEEMと点群PCを確認しながら、エンドエフェクタモデルEEMの位置及び姿勢を調整する。例えば操作欄142のエンドエフェクタ設定欄841で、エンドエフェクタモデルEEMの位置姿勢を数値で指定したり、画像表示欄141上でエンドエフェクタモデルEEMをドラッグして移動させる等して、エンドエフェクタモデルEEMが点群PCと重なるように調整する。
このようにしてエンドエフェクタモデルEEMを点群PCと合致させた例を、図152に示す。この例では、エンドエフェクタ設定欄841において、Z方向の位置を90mmに設定して、Z方向にエンドエフェクタモデルEEMをオフセットさせることで合致させている。エンドエフェクタモデルの位置及び姿勢が調整された後、「OK」ボタン842を押下すると、エンドエフェクタ設定が更新される。これにより、実際のエンドエフェクタの取付状態に応じて、ビジョン側の位置姿勢を調整できる。
さらに、上述したずれの手動補正を、自動補正と組み合わせて行うことも可能である。このような例を図153のずれ補正画面850に基づいて説明する。この図に示すずれ補正画面850は、操作欄142に、手動でエンドエフェクタモデルEEMの位置姿勢を調整するためのエンドエフェクタ設定欄841を設けると共に、下段に「自動補正」ボタン843を設けている。この「自動補正」ボタン843を押下すると、内部的に三次元サーチが実行されて、自動でエンドエフェクタモデルEEMの位置姿勢が点群PCと一致するように補正される。例えば、画像表示欄141で重畳表示させたエンドエフェクタモデルEEMと点群PCの状態を確認しながら、ずれの自動補正を実行したり、自動補正結果を手動で微調整することができる。特に、エンドエフェクタに光沢の強い金属を使っており、反射光によって点群PCが正確に検出されないことなどから自動補正がうまく機能できない場合、例えば三次元サーチに失敗する場合などには、手動による調整で対応できる。このようにして、ユーザが手動で、ロボット空間とビジョン空間のずれを補正することが可能となる。
従来、フランジ部とエンドエフェクタの取付部分に、例えば実際にはコネクタのような取り付け用の部材が組み付けられているにもかかわらず、ビジョン側でそのオフセット分を設定し忘れているような場合に、位置や姿勢がずれてしまう問題が生じていた。このような場合に、ずれを確認する機能や、ずれを補正する機能がないと、実運用時にロボットで把持させる際に、うまく把持できなかったり、衝突等の問題が生じることがあった。このような誤差が発生する要因は様々であり、従来は原因追究やデバッグに非常に時間や労力がかかってしまっていた。これに対して本実施形態によれば、このようなずれを手動や自動で補正することが可能となり、実際のエンドエフェクタの取付状態に応じた柔軟な調整を容易に行うことができる。
なお、図59の例では、エンドエフェクタモデルEEMの位置を、三次元CADデータの中心位置としているが、この例に限らず、他の位置を規定することもできる。例えば図59では、三次元CADデータに外接する直方体の中心としたが、外接直方体の端部分や、入力元の三次元CADデータの原点を基準にしても良い。
(実測データをサーチモデルに登録する手順)
以上は、三次元CADデータをサーチモデルとして登録する場合の手順について説明した。ただ本発明は上述の通り、サーチモデルとして三次元CADデータに限らず、例えばセンサ部で実際にワークを撮像した実測データをサーチモデルとして登録することもできる。ここで、図27のステップS2701において、このような実測データをサーチモデルとして登録する手順を、図62のフローチャートに基づいて説明する。
まずステップS6201において、ワークの登録したい面を上向きにして、ワークを平面上に載置して、センサ部で三次元計測を行う。
次にステップS6202において、得られた実測データをサーチモデルとして登録する。
最後にステップS6203において、三次元サーチに必要な分のサーチモデルを登録し終えたか否かを判定し、未だの場合はステップS6201に戻って上記の処理を繰り返し、必要数を登録し終えた場合は処理を終了する。これらの手順の詳細は、図102〜図106を参照しながら後述する。
(実運用時の手順その1)
以上のようにして必要な設定作業が終了した状態で、実際にバラ積みされたワーク群に対して、ピッキング動作を行う。ここで、図28の手順でサーチモデルが登録された状態で、実運用時に、ワークの把持可能かどうか、すなわち検出された各ワークに対して把持解があるか否かを判定する手順を、図63のフローチャートに基づいて説明する。ここでは、図6の演算部10が把持解の有無を判定する。
まずステップS6301において、バラ積みワークに対して三次元計測を開始する。ここでは、センサ部でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を取得する。
次にステップS6302において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。
次にステップS6303において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
次にステップS6304において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
そしてステップS6305において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
一方、干渉していると判定された場合は、ステップS6306に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップS6303に戻って、この把持位置に対して上記処理を繰り返す。
一方、別の把持位置が登録されていない場合は、ステップS6307に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップS6303に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
このようにして、図6の演算部10がワークを把持可能な把持解の有無を判定する。そして把持解が得られた場合は、そのワークに対して、エンドエフェクタでもって決定された把持位置にてピックするよう、ロボットコントローラ6に指示を送る。これに従いロボットコントローラ6は、指示されたワークをピックするようにエンドエフェクタを制御する。
以上の手順では、いずれかのワークで把持解が得られると、その時点で把持位置を検討する処理を終了して、得られた把持解に該当する把持位置でワークを把持するように制御している。ただ、この方法に限らず、例えば把持可能なすべての把持位置を把持位置候補として求めた上で、いずれの把持位置候補を選択するかを決定するように構成してもよい。例えば各把持位置候補の評価指標として評価指標演算部8qでスコアを算出して、得られたスコアの最も高いものを把持位置として選択する。また、ワークの置かれた高さ情報に注目し、ワークが置かれた高さが高いもの、いいかえると、バラ積みされたワーク群の内で、より上方に位置するものを把持位置として選択することもできる。好ましくは、スコアと高さ情報の両方を考慮して、演算部10が複数の把持解の中から選択していく。このようにすることで、より適切なピッキングを行うことが可能となる。
(実運用時の手順2)
以上は、図28の手順でサーチモデルが登録された状態で、実運用時の手順を説明した。サーチモデルの登録に際しては、図48で示したとおり、サーチモデルの姿勢に制限を加えた状態で登録することもできる。ここで、図48の手順でサーチモデルを登録した状態で、実際にバラ積みされたワーク群に対して、ピッキング動作を行う実運用時の手順を、図64のフローチャートに基づいて説明する。まずステップS6401において、バラ積みワークに対して三次元計測を開始する。ここでは、センサ部でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を取得する。
次にステップS6402において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。
次にステップS6403において、傾斜角度、回転角度の範囲設定から範囲外の姿勢を除外する。
次にステップS6404において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
次にステップS6405において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
そしてステップS6406において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
一方、干渉していると判定された場合は、ステップS6407に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップS6404に戻って、この把持位置に対して上記処理を繰り返す。
一方、別の把持位置が登録されていない場合は、ステップS6408に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップS6404に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
(干渉判定)
ここで、上述した図63のステップS6304や図64のステップS6405における、エンドエフェクタモデルを用いた干渉判定の方法について説明する。ワークをエンドエフェクタで把持する際に、エンドエフェクタが他のワークや収納容器など、周囲の障害物と干渉してしまうと、把持を正しく行うことができない。そこで、予め把持位置候補でエンドエフェクタモデルがワークモデルを把持する際の、エンドエフェクタの位置や姿勢を図31の干渉判定部8mで演算することで、周囲の部材との干渉判定を行う。この際、周囲の部材としては、実際にセンサ部2で実測して得られたバラ積みされたワーク群や収納容器の三次元点群が用いられる。また、事前に収納容器などの位置を登録しておき、エンドエフェクタモデルと干渉判定を行うこともできる。一方、エンドエフェクタの三次元CADデータは一般にポリゴンデータで構成される。例えば三次元CADデータとして多用されるSTLデータは、ポリゴンと呼ばれる微小な三角形の集合体で表現されている。
このようなポリゴンデータと三次元点群データとで干渉判定を行うには、従来、三次元点群データを構成する各三次元点が、エンドエフェクタモデルの内側にあるか外側にあるを調べ、内側にある場合は干渉、外側にある場合は干渉しないと判定していた。しかしながらこの方法では、各点毎に演算や対比を行う必要があり、データが大きくなると演算量が膨大になってしまう。
(断面モデルを用いた干渉判定の手順)
そこで本発明の各実施形態においては、エンドエフェクタモデルのポリゴンデータから断面モデルを作成し、三次元点群データの各点を断面モデルに投影して、内外を判定することにより、干渉を判定している。このような干渉判定は、図31の干渉判定部8mにて行われる。ここで、干渉判定を行う手順を図65のフローチャートに基づいて説明する。
まず、ステップS6501において、エンドエフェクタのポリゴンデータを読み込む。次にステップS6502において、エンドエフェクタのポリゴンデータから断面モデルを作成する。断面モデルは、図26の断面モデル生成部8sでもって生成する。ここで、断面モデル生成部8sが断面モデルを作成する方法を、図66〜図67Eに基づいて説明する。まず、図66に示すエンドエフェクタモデルEEMのポリゴンデータに対して、基本軸BSLを設定する。好ましくは、基本軸BSLはエンドエフェクタモデルEEMの長手方向に沿って設定される。さらに、この基本軸BSLに直交する直交平面でエンドエフェクタモデルを切断して、断面を複数作成する。ここで、断面を作成する位置は、例えばポリゴンデータの頂点位置とする。あるいは、基本軸に沿って一定距離ごとに断面を複数作成した上で、得られた断面の内、形状に応じて整理してもよい。例えば、同じ形状の断面は排除する。断面の作成は、必要な断面の総数が少なくなるように、基本軸BSLを設定することが好ましい。例えば断面モデル生成部が、断面の数が少なくなるような基本軸BSLの方向を自動的演算するように構成してもよい。また、設定された基本軸BSLにおいて断面を取得する断面位置の指定は、例えば変化の大きい断面を自動的に抽出するように指定することもできる。
このようにして、エンドエフェクタモデルEEMの基本軸BSLに沿った各断面の形状と、各断面と対応する基本軸BSL上の断面位置を持った断面モデルが作成できる。例えば図66の例では、基本軸BSL上に沿った断面位置SP1〜SP5の5つの位置で、それぞれ、図67A〜図67Eに示す形状の断面SS1〜断面SS5が得られる。このようにして得られた断面モデルを用いて、エンドエフェクタモデルが三次元点群と干渉するか否かを判定する。
具体的には、ステップS6503において、三次元点群を構成する内、干渉判定の対象となる三次元点を選び、この点の基本軸BSL方向における位置から、断面モデルが有する複数の断面の内、どの断面と干渉判定するかを選択する。この選択には、各断面に設定された断面位置を用いる。例えば三次元点の内、図68Aに示す三次元点TDPに対して、エンドエフェクタモデルEEMとの干渉判定を行う場合を考える。三次元点TDPは、基本軸BSLに沿う方向において、断面位置SP3とSP4の間に位置する。よってこの間の断面形状を示す断面SS3でもって、三次元点TDPとの干渉判定を行う。
具体的には、ステップS6504において、三次元点TDPから断面SS3を含む直交平面上に投影した投影点PP3を演算する。そしてステップS6505において干渉判定を行う。ここでは、三次元点の投影点PP3の位置が、図68Bに示すように断面SS3の外側であれば干渉していないと判定する。一方、図68Cのように断面SS3の内側であれば、干渉していると判定する。最後にステップS6506において、他の三次元点があるか否かを判定し、未処理の三次元点が残っている場合はステップS6503に戻って上記処理を繰り返す。そしてすべての三次元点で干渉判定を終えると、処理を終了する。
このようにして、計測した三次元点群とエンドエフェクタモデルとの干渉判定を行うことができる。また、以上では三次元点群データとの干渉判定について説明したが、本発明は干渉判定の対象を三次元点に限らず、他の物体、例えば線や面についても、同様の手順でも干渉判定を実施できる。
さらに、以上の例ではエンドエフェクタのCADデータがポリゴンデータの例について説明したが、エンドエフェクタの断面形状が計算できる形式であれば、ポリゴンデータに限らず、他のCADデータ形式でも同様に干渉判定を行える。さらに以上の例では、断面形状を二次元状の平面図で表現する場合について説明したが、断面形状のデータの持ち方もこの形態に限られず、例えば輪郭線の集合のような形式のデータで持っていてもよい。
(追加領域を加えた追加モデルでの干渉判定)
またエンドエフェクタモデルの干渉判定において、エンドエフェクタモデルに立体的な基本図形で表現した追加領域を追加した追加モデルを用いて干渉判定を行うこともできる。このような追加モデルを用いた干渉判定の手順を、図69のフローチャートに基づいて説明する。ここでは、基本図形として直方体と円柱を組み合わせた追加領域を、三次元CADモデルに追加した追加モデルに対して干渉判定を行う例を説明する。
まず、ステップS6901において、追加領域を構成する基本図形の内、直方体の領域について干渉判定を実行する。この結果に応じて、ステップS6902において、干渉ありと判定された場合は、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
一方、干渉なしと判定された場合は、ステップS6903に進み、追加領域を構成する基本図形の内、他の図形である円柱との干渉判定を行う。この結果、ステップS6904において、干渉ありと判定されれば、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
一方、干渉なしと判定された場合は、ステップS6905に進み、三次元CADデータとの干渉判定を行う。この結果、ステップS6906において、干渉ありと判定されれば、干渉判定の処理を中止し、干渉ありと出力して処理を終了する。
一方、干渉なしと判定された場合は、干渉なしとして処理を終了する。
このように、基本図形毎、あるいは三次元CADデータ単位で干渉判定を順次行い、いずれで干渉ありと判定されると、その時点で干渉判定処理を中止して干渉判定ありと出力する。なお、以上は追加領域が直方体と円柱の2つの基本図形で構成された例について説明したが、基本図形が多くなっても手順は同じで、基本図形毎に干渉判定を順次行い、その都度、干渉ありと判定されれば処理を中止する。
(実施形態7)
(把持可否判定検証機能)
以上は、実運用時に干渉判定の結果、把持解の有無を判別する手順について説明した。ただ本発明は、把持解の有無を判別するのみならず、把持解が得られなかった把持位置の候補について、どのような理由で把持解が得られなかったのかを検証する把持可否判定検証機能を設けてもよい。例えば、把持解候補を一覧表示させ、干渉判定の結果、把持解ありと判定された把持位置はOK、把持解なしと判定された把持位置候補はNGと表示させる。この状態で、NGと判定された把持位置を選択して、どのような理由で把持解なしと判定されたかを表示させることで、ユーザはこの情報を参考にして、どのような把持位置であれば把持解として選択されうるかを検討し、把持位置を修正したり、新たな把持位置を追加できるようになる。このような例を実施形態7に係るロボットシステム7000として、図70のブロック図に示す。この図に示すロボットシステム7000は、画像処理装置700と、表示部3Bと、操作部4と、センサ部2と、ロボットコントローラ6と、ロボットRBTを備える。なお、図6と同じ部材については、同じ符号を付して詳細説明を適宜省略する。
(表示部3B)
表示部3Bは、画像表示領域3bと、把持解候補表示領域3cを備える。把持解候補表示領域3cは、ワーク把持可否表示領域3dと、ワーク把持不能要因表示領域3eを含む。
画像表示領域3bは、エンドエフェクタの三次元形状を仮想的に表現する、三次元CADデータで構成されたエンドエフェクタモデルを、仮想的な三次元空間上で三次元状に表示させるための部材である。
把持解候補表示領域3cは、三次元サーチ部8kでサーチされた一以上のワークのサーチ結果の任意の一に対して、設定されている把持位置を全て列挙して表示させるための部材である。
ワーク把持可否表示領域3dは、三次元ピック判定部8lによる、各ワークに対して指定された把持位置における把持の可否の判定結果を表示させるための部材である。
ワーク把持不能要因表示領域3eは、三次元ピック判定部8lによる、各ワークに対して指定された把持位置における把持が不能と判定された把持位置に対して、該把持不能とされた要因を表示させるための部材である。
(画像処理装置700)
画像処理装置700は、入力画像取得部2cと、演算部10と、記憶部9と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。演算部10は、エンドエフェクタモデル登録部8uと、ワークモデル登録部8tと、把持位置特定部8dと、サーチモデル登録部8gと、三次元サーチ部8kと、三次元ピック判定部8lと、傾斜角度設定部8nとを備える。
この把持位置特定部8dは、ワーク側把持箇所指定部8d1と、エンドエフェクタ側把持設定部8d2を備える。ワーク側把持箇所指定部8d1は、画像表示領域3bにエンドエフェクタモデルを表示させた状態で、ワークの三次元形状を仮想的に表現する、三次元CADデータで構成されたワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。エンドエフェクタ側把持設定部8d2は、画像表示領域3bに表示されるエンドエフェクタモデルに対して、ワークを把持する把持位置を指定するための部材である。
サーチモデル登録部8gは、ワークの三次元形状を仮想的に表現する第二ワークモデルを、入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行うためのサーチモデルとして登録するための部材である。なおサーチモデルとして登録する第二ワークモデルを、ワーク側把持箇所指定部8d1で把持位置を指定するワークモデルと同じとすることが好ましい。これにより、三次元サーチを行うサーチモデルを、把持位置を指定するワークモデルと共通化することで、ユーザは設定作業を省力化できる。また実運用時においても、把持できるワークをサーチするワークモデルと、把持判定を行うワークモデルと一致させることで、サーチされたワークモデルに対して、このワークモデルに設定された把持位置で把持可能かどうかを検討できるため、効率良く処理を行うことが可能となる。
傾斜角度設定部8nは、ワークの姿勢に対し、許容される傾斜角度の範囲を設定するための部材である。
三次元ピック判定部8lは、三次元サーチ部8kでサーチされた各ワークのサーチ結果に対して、ワーク側把持箇所指定部8d1で当該ワークに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。この三次元ピック判定部8lは、干渉判定部8mと、角度判定部8oとを含む。
干渉判定部8mは、三次元サーチ部8kでサーチされた各ワークのサーチ結果に対して、ワーク側把持箇所指定部8d1でこのワークに対して指定された把持位置について、該ワークの周囲に存在する物体との干渉の有無を判定するための部材である。また干渉判定部8mにより干渉ありと判定されたワークに対して、三次元ピック判定部8lが把持不能と判定する。これにより、ワークを把持できない場合の原因が示されることで、ユーザは例えば、どのような把持位置を追加すればよいかを検討しやすくなる等、把持位置の再設定に資することができる。
角度判定部8oは、三次元サーチ部8kでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部8nで設定された傾斜角度範囲内か否かを判定するための部材である。
三次元ピック判定部8lは、角度判定部8oにより、三次元サーチ部8kでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部8nで設定された傾斜角度範囲内でないと判定された場合に、該ワークを把持不能と判定するよう構成される。これにより、ワークの姿勢が急峻すぎて把持ができない、あるいは三次元測定の精度が期待できない場合に、これを排除することで把持位置の選択や判定の誤判定を回避し、信頼性を高めることができる。
(把持解候補一覧表示機能)
次に、把持解NGの理由を表示させる手順を、図71のフローチャートに基づいて説明する。なお、設定時の手順、及び実運用時の手順は、上述した図27、図28、図63等と基本的に同様であり、詳細説明を適宜省略する。
まずステップS7101において、対象となるワーク群に対して三次元計測を行う。ここではバラ積みされたワーク群に対して、センサ部を用いて形状の情報を有する実測データを取得し、これを入力画像とする。
次にステップS7102において、入力画像に対して三次元サーチを実施し、入力画像中における各ワークの位置及び姿勢をそれぞれ検出する。
そしてステップS7103において、検出されたワークの中から、検証対象のワークを一、選択する。
さらにステップS7104において、選択したワークの検出位置と、このワークに対して予め登録された把持姿勢から、このワークをエンドエフェクタで把持しようとする場合の、エンドエフェクタモデルの位置及び姿勢を計算する。
次にステップS7105において、演算されたエンドエフェクタモデルの位置及び姿勢における傾斜角度が、設定された範囲外か否かを判定する。ここで設定範囲外と判定された場合はステップS7106に進み、把持NGと判定とすると共に、NGの要因を「傾斜角度」と設定した上で、ステップS7111にジャンプする。
一方、ステップS7105において、エンドエフェクタモデルの傾斜角度が設定範囲内と判定された場合はステップS7107に進み、計算した位置においてエンドエフェクタモデルと周囲の物体との干渉判定を実施する。ここで周囲の物体とは、エンドエフェクタモデルの周囲に存在する、収納容器や他のワーク等である。予め周囲の物体を、三次元CADデータ等でモデル化しておき、ワークモデルを把持する位置及び姿勢にエンドエフェクタモデルを移動させた場合、これらとエンドエフェクタモデルとが干渉するか否かを演算により判定する。
そしてステップS7108において、干渉判定の結果、エンドエフェクタモデルが周囲の物体と干渉していると判定された場合は、ステップS7109において、把持NG判定とし、NGの要因を「点群干渉」と設定した上で、ステップS7111にジャンプする。
一方、ステップS7108において、干渉判定の結果、エンドエフェクタモデルが周囲の物体と干渉していないと判定された場合は、ステップS7110において、把持OK判定とした上で、ステップS7111に進む。
そしてステップS7111において、選択したワークに別の把持姿勢が設定されているか否かを判定し、別の把持姿勢がある場合は、ステップS7104に戻り、上記の処理を繰り返す。一方、把持姿勢がないと判定された場合は、ステップS7112において、全ての把持解の候補について、把持OK/把持NGの判定結果と、把持NGの場合の要因をワーク把持不能要因表示領域3eに表示させる。
このようにして、与えられたワーク群に対して把持が可能かどうかを検証し、さらに把持できない場合の要因をリストアップすることができる。
(把持シミュレーション)
次に、具体的な把持の判定を行う把持シミュレーションの詳細について説明する。ここでは、図72に示すようなワークWK10を用いてバラ積みピッキングを行う場合に、把持が可能かどうかの判定を行う例について説明する。このワークWK10について、基本方向画像生成部8e’で六面図に相当する基本方向画像を生成し、各基本方向画像をサーチモデルとして、サーチモデル登録部8gで登録する。基本方向画像の例を、図73A〜図73Eに示す。これらの図において、図73Aは図72のワークをZ軸の正方向側から見た高さ画像Aであり、図73BはZ軸の負方向側から見た高さ画像Bであり、図73CはX軸の正方向側から見た高さ画像Cであり、図73DはX軸の負方向側から見た高さ画像Dであり、図73EはY軸の正方向側から見た高さ画像Eであり、図73FはY軸の負方向側から見た高さ画像Fを、それぞれ示している。
(ワーク選択画面210)
ワークをエンドエフェクタで把持可能かどうかの判定を行うために、バラ積みされたワーク群を撮像した入力画像に対して三次元サーチを行い、ワークを検出した状態において、対象となるワークを選択する(図71のステップS7103)。ワークの選択は、例えば図74に示すワーク選択画面210から行う。この図に示すワーク選択画面210は、画像表示欄141と操作欄142を備える。画像表示欄141には、バラ積みされたワーク群を撮像した実測データである入力画像が表示されている。また入力画像に対し、ワークが検出された位置に重ねてサーチ結果が点群で表示されている。画像表示欄141の画面をドラッグすることで、視点を変更できる。
(ラベル番号、モデル番号)
操作欄142には、対象となるワークを選択するための対象ワーク選択欄211と、この対象ワークを三次元サーチするために用いたサーチモデルを示す検出サーチモデル表示欄212と、選択されたワークに対する、すべての把持位置候補を一覧表示させるための「把持確認」ボタン213が設けられる。図74の例では、入力画像に対して三次元サーチした結果、ワークが18個存在しており、この中で3番目のワークを選択している状態を示している。ここで検出されたサーチ結果を区別するため、サーチ結果には識別情報が設定される。ここでは識別情報として、通し番号のラベル番号が設定されている。図74の対象ワーク選択欄211には、選択中の対象ワークのラベル番号として「3」が表示されている。また画像表示欄141中では、選択された対象ワークのサーチ結果が、表示されている。具体的には、サーチ結果の様子として、該当するサーチモデルの特徴点が入力画像の点群に重畳表示した形で表示されている。この状態で対象ワークのラベル番号を変更すると、これに応じて画像表示欄141中で選択されているワークも変更される。さらに検出サーチモデル表示欄212には、対象ワークを三次元サーチするために用いたサーチモデルとして、サーチモデルE(図73Eの高さ画像)が表示されている。なお、サーチモデルにも個別の識別情報が付与されており、ここではモデル番号と呼ぶ。図74では検出サーチモデル表示欄212にモデル番号として、通し番号のラベル番号3のワークモデルの「E」が表示されている。
(把持解候補表示画面220)
さらに、ワーク毎に設定されている把持位置、すなわち把持解候補を把持解候補表示領域3cに一覧表示させることもできる。図74のワーク選択画面210の例では、「把持確認」ボタン213を押下すると、図75の把持解候補表示画面220が表示部に表示される。把持解候補表示領域3cの一形態である把持解候補表示画面220では、図74の対象ワーク選択欄211で選択された対象ワークに対して設定されたすべての把持位置が把持解候補として把持解候補表示欄221に列挙される。把持解候補表示欄221には、把持解毎に、把持位置のラベル番号を示すワーク把持位置表示欄223と、ワークの把持可否判定結果を示すワーク把持可否表示欄224と、把持不能の場合にその理由を示すワーク把持不能要因表示欄225が設けられる。図75の例では、対象ワーク選択欄211で選択された選択された3番目のサーチ結果の対象ワークに対し、すべて把持候補である5つがリストアップされ、把持OK、NGの判定結果と共に、NGとなった原因が表示される。また把持解候補表示欄221で選択されているワークの把持位置に対応して、画像表示欄141で選択されたワークと、これを把持するエンドエフェクタモデルが、把持位置を把持する姿勢で表示される。そして把持解候補表示欄221で把持位置の選択を変更すると、これに応じて画像表示欄141中のワークも変更され、さらにこのワークを把持するエンドエフェクタモデルの姿勢も更新される。
図75の例では、図73Eのワークをラベル番号3番の把持位置候補で把持する状態を示している。ここでは把持OKの判定結果であるため、ワーク把持不能要因表示欄225には何も表示されない。一方、ワーク把持不能要因表示欄225でラベル番号4番の把持位置候補を選択すると、図76に示すように画像表示欄141中の表示も変更される。ラベル番号4の把持位置候補は把持NGの判定結果であるため、ワーク把持不能要因表示欄225には把持不能と判定された理由が表示される。さらに画像表示欄141中では、これに対応するエンドエフェクタモデルが表示され、実際に把持姿勢がどのような状態となっているかを視覚的に確認することができる。ここでは「点群干渉」と表示され、エンドエフェクタが収納容器の平面と干渉していることが確認できる。この結果、ユーザはこのような姿勢のワークに対し、干渉しない位置や姿勢での把持位置の追加を検討することが可能となる。
同様に、ワーク把持不能要因表示欄225でラベル番号2番の把持位置候補を選択すると、図77に示す把持解候補表示画面220となり、ラベル番号2の把持位置候補が把持NGの判定結果となった理由として、「傾斜角度」とワーク把持不能要因表示欄225に表示される。さらに画像表示欄141中では、これに対応するエンドエフェクタモデルが表示され、エンドエフェクタが急峻な傾斜角度で把持しようとした状態となっており、そもそも干渉判定対象から除外されていることが判る。
また、判定結果に応じて、画像表示欄141で表示されるエンドエフェクタの表示態様を変更させてもよい。図75の例では、把持OKの場合にエンドエフェクタモデルを白色で表示させ、また図76や図77の例では、把持NGの場合にエンドエフェクタモデルを赤色で表示させている。これによりユーザは視覚的に把持の判定結果を容易に区別できる。また、把持位置を追加する際に、エンドエフェクタモデルの姿勢を調整して、干渉しない状態となった時点で表示態様を変更するように、画像表示欄141における表示を更新させる構成にしてもよい。このように構成することで、ユーザは例えばエンドエフェクタモデルの姿勢を、赤色から白色になるまで変更することができ、姿勢の調整作業を判り易く行える利点が得られる。
このように把持可否判定検証機能を設けることで、把持したいワークが把持不能と判定された場合に、どのように把持を設定すればよいか、例えば新たな把持位置を追加したり、既存の把持位置の設定を変更するなどの作業を検討する際の指針となる。例えば、図78、図79に示す例では、サーチモデルC(図73C)のワークに対して2つの把持位置候補が存在しているものの、いずれも点群干渉が理由で把持不能ととなっている。いずれも、画像表示欄141中に破線の円で示すように、エンドエフェクタモデルの爪の先端が別のワークに干渉していることが原因であることが判る。このことから、現在の把持位置の反対側の箇所を把持するように、新たな把持位置を追加すれば、OKの把持解が得られることが判る。そこで、現在の把持位置の反対側にも新たな把持位置(把持姿勢C−002)を追加するよう把持位置特定部8dで設定すると、図80に示すように、把持OKの判定結果を得られるようになる。このようにして、把持位置や姿勢の調整作業をユーザが行う際、対応策を検討しやすい環境が与えられ、設定が容易なロボットシステムが実現される。
また、エンドエフェクタの傾斜角度のしきい値を、ユーザによる設定で変更することも可能である。例えば、ワークの収納容器として底の深い箱を用いる場合には、エンドエフェクタの傾斜が大きくなると、エンドエフェクタ以外にロボットのアーム部分が収納容器の壁と衝突し易くなるため、角度範囲を狭く設定する。逆に、収納容器として底の浅い箱を用いる場合は、エンドエフェクタさえ干渉しなければ、ロボットのアーム部分が箱に衝突するケースは生じ難いため、角度範囲を広く設定することができる。このように、角度範囲の設定を調整することで、実際の状況に応じて把持の可否判定を柔軟に調整することが可能となる。
以上のようにして、選択したワークに対する全ての把持解が一覧表示され、NGだったものについては、そのNG要因が合わせて表示されるため、取れそうなのに、いつまでの把持解の候補とならないワークがあった場合に、それがどういう要因で把持されないのか、原因を特定することが容易になる。また、原因が特定できるため、新たにどのような把持姿勢を追加すれば良いかも判り易くなる。
(実施形態8)
以上の例では、三次元サーチに際して、サーチモデル毎に個別にサーチ結果を取得する例について説明した。すなわち、同じワークの異なる面を示す複数の基本方向画像でもって三次元サーチを行い、得られた結果についてもそれぞれ別々のワークとして認識される。いいかえると、同じワークの異なる面についても、それぞれ個別にサーチされる結果、異なるワークとして検出されることが起こり得る。一方、従来の三次元サーチでは、一のワークモデルを示す三次元形状でもってサーチされるため、このようなことは生じず、同じワークの異なる面も、一つのワークとして検出される。ただし、多くの面が存在するワークではサーチが複雑になる上、誤検出の可能性も高くなる。これに対して上述した実施形態に係る方法では、単純な面でサーチすることから、サーチの処理を簡素化でき、低負荷化、高速化等の点で有利となる。反面、面ごとにサーチされる結果、上述の通り得られるサーチ結果が、別個のワークとして捉えられ、同じワークであっても別の面がそれぞれ個別に検出されるという問題があった。
そこで、得られたサーチ結果を統合し、ワーク毎に纏めたり、ある面のサーチ結果から別の面のサーチ結果を推定することで、三次元サーチでは検出できなかった面や、検出精度が低い面についても、把持解の候補として利用できるようにすることができる。このような例を実施形態8に係るロボットシステムとして、図81のブロック図に示す。この図に示すロボットシステム8000は、画像処理装置800と、表示部3Bと、操作部4と、センサ部2と、ロボットRBTを備える。なお、図6、図70等と同じ部材については、同じ番号を付して詳細説明を適宜省略する。
(画像処理装置800)
画像処理装置800は、入力画像取得部2cと、演算部10と、記憶部9と、入出力インターフェース4bと、表示インターフェース3fと、ロボットインターフェース6bを備える。演算部10は、基本方向画像生成部8e’と、把持位置特定部8dと、サーチモデル登録部8gと、三次元サーチ部8kと、画像推定部8zと、サーチ結果統合部8pと、三次元ピック判定部8lと、傾斜角度設定部8nとを備える。
基本方向画像生成部8e’は、ワークモデルに対して、仮想三次元空間上で互いに直交する三軸の各軸方向のいずれかから見た複数の高さ画像を、基本方向画像として生成するための部材である。
把持位置特定部8dは、基本方向画像生成部8e’で生成された基本方向画像の一に対して、該基本方向画像が示すワークモデルをエンドエフェクタで把持する把持位置を複数、特定するための部材である。この把持位置特定部8dは、ワーク側把持箇所指定部8d1と、エンドエフェクタ側把持設定部8d2を備える。
ワーク側把持箇所指定部8d1は、画像表示領域3bにエンドエフェクタモデルを表示させた状態で、ワークの三次元形状を仮想的に表現する、三次元CADデータで構成されたワークモデルをエンドエフェクタモデルで把持する際の把持位置を指定するための部材である。
エンドエフェクタ側把持設定部8d2は、画像表示領域3bに表示されるエンドエフェクタモデルに対して、ワークを把持する把持位置を指定するための部材である。
サーチモデル登録部8gは、基本方向画像生成部8e’で生成された複数の基本方向画像を、入力画像取得部2cで取得された入力画像に含まれる複数のワーク群に対して、各ワークの姿勢と位置を特定する三次元サーチを行う際に用いるサーチモデルとしてそれぞれ登録するための部材である。またサーチモデル登録部8gは、複数登録されるサーチモデル同士の相対位置を関係性情報として登録することもできる(詳細は後述)。
画像推定部8zは、三次元サーチ部8kでサーチされ、入力画像中からサーチモデル単位で抽出された、各サーチ結果に対して、このサーチに用いられた各サーチモデルが、元のワークモデルをどの方向から見た基本方向画像であり、このワークモデルに対して登録されている他のサーチモデルの基本方向画像との相対的な位置関係に基づいて、このサーチ結果が示すワークモデルに対して、三次元サーチ部のサーチ結果に含まれていない未サーチの基本方向画像の位置及び姿勢を推定画像として推定するための部材である。この画像推定部8zは、例えば後述する角度判定部8oにより、三次元サーチ部8kでサーチされたワークのサーチ結果の姿勢が、傾斜角度設定部8nで設定された傾斜角度範囲内にある場合は、このサーチ結果と相対的な位置関係を有する推定画像を推定するよう構成できる。
サーチ結果統合部8pは、三次元サーチ部8kでサーチされ、入力画像中からサーチモデル単位で抽出された、各サーチ結果に対して、サーチに用いられた各サーチモデルが、元のワークモデルをどの方向から見た基本方向画像であるかの相対的な位置関係に基づいて、複数のサーチ結果の内、隣接するもの同士を共通のワークに関する統合結果として統合するための部材である。
三次元ピック判定部8lは、サーチ結果統合部8pで統合された統合結果、及び三次元サーチ部8kでサーチされた未統合の各サーチ結果に対して、把持位置特定部8dでワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定するための部材である。この三次元ピック判定部8lは、干渉判定部8mと、角度判定部8oとを備える。
これにより、三次元サーチされたサーチ結果に対して、個別に保持判定を行うのでなく、面同士の関係性情報を用いてワークの位置及び姿勢をより正確に推定できるので、サーチされていない面、あるいはサーチ結果の精度が低い面についても、検出できるようになり、通常であればサーチが困難な面も含めて保持位置候補として検討することが可能となり、保持解が得られる可能性を高めることが可能となる。
(面同士の関係性情報を含めたサーチモデルを登録する手順)
以上の画像処理装置に対して、ワークモデルやエンドエフェクタモデルの登録、把持位置の登録などの設定を行う手順は、例えば図27のフローチャートで示した手順が利用できる。ここで、図27のステップS2701において、サーチモデルとして三次元CADデータを用いると共に、ワークの面同士の関係性情報を含めたサーチモデルを登録する手順を、図82のフローチャートに基づいて説明する。
まずステップS8201において、ワークの三次元CADデータモデルを読み込む。
次にステップS8202において、三次元CADデータモデルの外接直方体の中心を、三次元CADデータの原点に補正する。
さらにステップS8203において、「上」「下」「左」「右」「前」「後」の各方向から見た高さ画像を基本方向画像として生成する。基本方向画像は、図81の基本方向画像生成部8e’で行われる。ここで、三次元CADデータから高さ画像を生成する際は、CADの原点が高さ画像の中心になるように生成する。
次にステップS8204において、生成した高さ画像の中で、同じ見え方になる高さ画像を削除する。
さらにステップS8205において、複数登録されるサーチモデル同士の相対位置を関係性情報として登録する。ここでは、サーチモデル登録部8gが、残った高さ画像と、上下左右前後の各面の関係性情報を保存する。
最後にステップS8205において、生成された高さ画像を用いてサーチモデルを登録する。このようにして、ワークの面同士の関係性情報を含めたサーチモデルが登録される。
(面の関係性情報)
ここでワークを特定方向から見た面同士の相対位置関係を示す関係性情報について説明する。例えば、図7に示したようなワークの場合、見え方の異なる面は、図9A〜図9Dで示した4面となる。これらの図において、図9Aで示すモデルAは、X軸の正方向から見た高さ画像である。ただ、X軸の負方向から見た画像にも一致する。また図9Bに示すモデルBはY軸の正方向から見た高さ画像であるところ、Y軸の負方向から見た画像にも一致する。一方で図9Cに示すモデルCは、Z軸の正方向から見た画像のみに一致する。また図9Dに示すモデルDは、Z軸の負方向から見た画像のみに一致する。
ここで、予め生成された高さ画像であるモデルA、B、C、Dが、図7に示すワークの三次元CADデータを、どの座標軸方向から、どの回転状態で見た画像と一致するかという情報を、面の関係性情報を表す情報とする。このような、面の関係性情報があれば、各モデルのサーチ結果から、元の三次元CADモデルの姿勢を求めることができるようになる。例えば、図9AにおけるモデルAの左右の面には、図9BのモデルBがそれぞれ隣り合って存在する。またモデルAの上面には図9CのモデルCが、下面には図9DのモデルDが、それぞれ隣り合って存在する。この結果、三次元サーチの結果得られたサーチ済み画像において、モデルAとモデルBの検出結果が隣り合っていた場合に、同じワークに対するサーチが行われた結果であることが判る。よってこれらのサーチ結果を、1つのサーチ結果として統合することができる。ここで、統合されたサーチ結果の集合を統合結果と呼ぶ。
またサーチ結果を統合することで、評価指標を更新することもできる。すなわち、精度が高くないサーチ結果であっても、統合結果に精度の高いサーチ結果が得られている場合は、統合結果の評価指数を高くして、把持位置の選択等に際して正しい把持解としてより優先させることができる。
(未サーチ基本方向画像)
さらに、三次元サーチに失敗した場合やサーチ自体が行われなかった場合のように、サーチされない面があっても、統合結果を利用して推定することが可能となる。すなわち、複数のサーチ結果を統合してワークの統合結果を得た際に、このワークを構成する面の内で三次元サーチで検出されなかった面が存在する場合であっても、他の面でサーチ結果が得られていれば、ワーク自体の姿勢や位置を演算できる。この結果、予めワークに対して把持位置を登録したワークモデルや三次元サーチ用のサーチモデルが登録されている場合は、サーチされていない面の情報も、ワークの姿勢から推定できる。よって、このようなサーチの結果として得られたのでない、推定によって得られた面(未サーチ基本方向画像と呼ぶ。)をも、把持位置の候補に利用することで、実際にサーチされなかった面の把持位置をも把持解の候補として検討でき、適切な把持解が得られ易くなる利点が得られる。例えば三次元サーチの結果、図9Bに示すモデルBが得られた場合に、その横には図9Aに示すモデルAの面が存在するものと推定できる。これにより、仮にモデルAがサーチ結果として実際に検出されていなかったとしても、モデルBのサーチ結果から、モデルAの面を推定することができるため、把持解の候補としてモデルAの面に登録された把持姿勢を用いることができるようになり、この結果、把持解の候補が増えてピッキングされ易くなる。
(面の関係性情報を用いた把持解の算出)
次に、面の関係性情報を用いた把持解算出の効果について、図72に示したワークWK10を用いて説明する。このワークWK10の三次元CADデータから、図73A〜図73Fに示す基本方向画像を基本方向画像生成部8e’でもって生成し、これらをサーチモデルとしてサーチモデル登録部8gで登録する。これらの図において、図73AはZ軸の正方向から見た高さ画像であり、これをモデルAとする。同様に図73BはZ軸の負方向から見た高さ画像であり、これをモデルBとする。また図73CはX軸の正方向から見た高さ画像であり、モデルCとする。さらに図73DはX軸の負方向から見た高さ画像であってモデルD、図73EはY軸の正方向から見た高さ画像であってモデルE、図73FはY軸の負方向から見た高さ画像であってモデルFを、それぞれ示している。
ここで、これらの各基本方向画像に対し、図83A〜図83Fに示すように、ワークモデルWM10をエンドエフェクタモデルEM10で把持する把持姿勢が1つずつ、把持位置特定部8dで登録されているものとする。ここで図83Aは、図73Aの基本方向画像に対して、把持姿勢A−000を登録している状態を示している。また図83Bは、図73Bの基本方向画像に対して、把持姿勢B−000を登録している状態を示している。さらに図83Cは、図73Cの基本方向画像に対して、把持姿勢C−000を登録している状態、図83Dは、図73Dの基本方向画像に対して、把持姿勢D−000を登録している状態、図83Eは、図73Eの基本方向画像に対して、把持姿勢E−000を登録している状態、図83Fは、図73Fの基本方向画像に対して、把持姿勢F−000を登録している状態を、それぞれ示している。この場合に、面の関係性情報を用いた把持解の算出について、図84、図85、図86に基づいて説明する。
図84のワーク選択画面210は、バラ積みされたワーク群を撮像した入力画像に対して三次元サーチを行った結果、12個のワークが検出されている状態を示している。画像表示欄141には、入力画像が表示されている。また操作欄142には、対象となるワークを選択するための対象ワーク選択欄211と、検出サーチモデル表示欄212と、選択されたワークにおける把持位置候補を一覧表示させるための「把持確認」ボタン213が設けられている。図84の例では、三次元サーチされた12個のワークの内、2番目のワークが対象ワーク選択欄211で選択されており、また画像表示欄141中では、選択された2番目の対象ワークのサーチ結果が表示されている。具体的には、サーチ結果の様子として、該当するサーチモデルの特徴点が入力画像の点群に重畳表示した形で表示されている。さらに検出サーチモデル表示欄212には、2番目の対象ワークを検出したサーチモデルとして、サーチモデルC,F,Aが表示されている。この状態で、3種類のサーチモデルC、F、A(図73C、図73F、図73A)が統合されている。
ここで、仮にワークの面の関係性情報を用いなかったとすると、モデルFやモデルAは、画像表示欄141に示すように入力画像上で側面の一部しか見えていない状態であるため、サーチ結果としては検出困難であったと思われる。また仮に検出できていたとしても、評価指標が低く、優先度の低い結果となると思われる。これに対し、関係性情報を用いることで、図84のように、サーチモデルCのみならず、サーチモデルFやサーチモデルAも検出され、あるいは推定されて、把持位置候補として利用すること可能となる。
図84のワーク選択画面210において、「把持確認」ボタン213を押下すると、図85の把持解候補表示画面220が表示される。この把持解候補表示画面220では、図84の対象ワーク選択欄211で選択された2番目の対象ワークに対して設定された把持位置が把持解候補として把持解候補表示欄221に列挙される。把持解候補表示欄221には、検出サーチモデル表示欄212で表示されたサーチモデルC、F、Aに対し、それぞれ設定された把持位置(図83C、図83F、図83A)に対するワークの把持可否判定結果がワーク把持可否表示欄224に、把持不能の理由がワーク把持不能要因表示欄225に、それぞれ表示されている。まずサーチモデルCについては、判定結果が把持NGであり、その理由が点群データの干渉であることが示されている。また画像表示領域においては、把持位置C−000に対応する姿勢でワークを把持しようとするエンドエフェクタモデルEM10が赤色に表示されており、干渉して把持できない様子を示している。ここで、仮に面の関係性情報を用いなかったとすると、サーチモデルCのみが三次元サーチされる結果、把持解の候補はこのサーチモデルのC−000のみであり、結果として把持解を得られないこととなる。
これに対して、関係性情報を用いることで、図85、図86に示すようにサーチモデルC以外にサーチモデルF、Aも対象となり、把持位置候補もF−000とA−000が追加されていることが判る。そして追加された把持位置候補の内、サーチモデルFの把持位置候補F−000においては、把持NGの判定結果となっているが、サーチモデルAの把持位置候補A−000においては、把持OKの判定結果が得られており、図86に示すようにエンドエフェクタが白色で表示され、点群データに干渉することなく、無事に把持解が得られている。この結果、関係性情報を用いないと把持解が得られなかった場合でも、関係性情報を用いることで、把持解を得ることが可能となる。すなわち、三次元サーチの設定を変更、例えば照明やカメラの配置を調整したり、サーチのアルゴリズム等を変更することなく、同じサーチ条件のままで、言い換えると三次元サーチの精度を変更することなく、把持解が得られる可能性を高めることが可能となる。このように、面の関係性情報を用いることで、把持解の候補を増やし、ピッキングされ易い結果が得られる。
(実運用時の手順その3)
ここで、図82の手順でサーチモデルが登録された状態で、実運用時に、三次元サーチと把持可否判定を行う手順を、図87のフローチャートに基づいて説明する。
まずステップS8701において、バラ積みワークに対して三次元計測を開始する。ここでは、図81に示すセンサ部2でバラ積みされたワーク群を撮像して三次元計測を行い、高さ情報を有する三次元形状を入力画像として入力画像取得部2cでもって取得する。
次にステップS8702において、得られたワーク群の三次元形状に対して、ワークモデルを用いて三次元サーチを実施し、各ワークの位置及び姿勢を検出する。三次元サーチは、図81の三次元サーチ部8kで行われる。
(統合結果の生成)
さらにステップS8703において、三次元サーチのサーチ結果と、各面の関係性情報から、同じワークを示す結果を統合する。ここではサーチ結果統合部8pが、サーチに用いたサーチモデルに登録された関係性情報を利用して、同じワークを撮像したサーチ結果同士を関連付ける。すなわち、サーチ結果をサーチした元となる共通のワークモデルをどの方向から見た基本方向画像であるかの相対的な位置関係に基づいて、複数のサーチ結果の内、隣接するもの同士を、サーチ結果統合部8pで統合する。このようにして得られた統合結果は、同じワークを示すものとして共通に扱う。
(未サーチ基本方向画像の生成)
さらにステップS8704において、三次元サーチ結果と各面の関係性情報から、検出されていない面を推定する。ここでは、統合結果が示すワークの姿勢及び位置に基づいて、このワークに関して三次元サーチの結果には含まれていない未サーチの基本方向画像の位置及び姿勢を推定する。そして、この未サーチ基本方向画像に対して把持位置特定部8dで設定された把持位置を、把持可否判定の対象とする。これにより、三次元サーチの結果、本来サーチされなかったワークの面についても、統合されたサーチ結果が示すワークの姿勢及び位置から推定することで、把持可否判定の対象とすることができ、把持解が得られる可能性をより高めることができる。
次にステップS8705において、検出された一のワークに対して、このワークの位置と、設定時に登録したワークの把持姿勢に基づいて、エンドエフェクタを配置すべき位置と姿勢を計算する。
次にステップS8706において、計算された位置において、エンドエフェクタが周囲の物体と干渉しないかどうかを、エンドエフェクタモデルを用いて干渉判定を実施する。
そしてステップS8707において、エンドエフェクタが干渉するか否かを判定し、干渉していない場合は、このワークに対して把持解ありとして処理を終了する。
一方、干渉していると判定された場合は、ステップS8708に進み、このワークに対して登録された別の把持位置があるか否かを判定する。別の把持位置が登録されている場合は、ステップS8705に戻って、この把持位置に対して上記処理を繰り返す。
一方、別の把持位置が登録されていない場合は、ステップS8709に進み、検出された別のワークがあるか否かを判定する。別のワークがある場合は、ステップS8705に戻って、ワークを代えて上記処理を繰り返す。別のワークが無い場合は、把持解なしとして処理を終了する。
このようにして、統合結果や未サーチ基本方向画像を用いて、ワークを把持可能な把持解の有無を判定する。そして把持解が得られた場合は、そのワークに対して、エンドエフェクタでもって決定された把持位置にてピックするよう、ロボットコントローラ6を制御する。
なお、本明細書において画像とは、厳密に連続したデータに限られず、例えば点群データの集合のような離散的なデータの集合も含む意味で使用する。
(実施形態9)
(評価指標の統合)
また、以上の手順に加えて、統合結果に対して、優先順位を規定する評価指標を統合することもできる。このような例を実施形態9に係るロボットシステム9000として、図88に示す。この図に示す画像処理装置900は、評価指標演算部8qと、把持優先順位決定部8rを備える。なお、図81等に示す部材と共通の部材については、同じ符号を付して詳細説明を省略する。
評価指標演算部8qは、三次元ピック判定部8lで把持可能と判定された把持位置を把持位置候補として、各把持位置候補について、評価指標を演算するための部材である。
また把持優先順位決定部8rは、評価指標演算部8qで演算された評価指標に基づいて、ワークをエンドエフェクタで把持する優先順位を決定するための部材である。
この画像処理装置は、評価指標演算部8qでもって、サーチ結果に対してそれぞれ評価指標を演算する。評価指標としては、上述の通り、例えばサーチ結果に含まれる、一定の距離以下の誤差で対応した特徴点の点数割合等が利用できる。
ここで、サーチ結果統合部8pが、統合結果を構成する各サーチ結果に対して評価指標演算部8qで演算された評価指標の内、最も高い評価指標を統合結果に付与する。一般に三次元サーチの評価指標では、サーチの条件やワークの姿勢(例えばワークの傾斜角度が大きく、十分な反射光が得られない場合、逆に光沢のあるワークによって反射光が強すぎる場合)等に左右される。このため、サーチ結果の評価指数が低く演算されることがあり、低い優先順位となったり、あるいはそもそも反射光が得られない等の理由で三次元サーチの対象から除外されることがある。これらは、把持位置の候補として下位になったり、候補に挙がらないことになるが、このようなワークの中には、単に三次元サーチに適切な姿勢で配置されていないというだけで、把持には適した姿勢で配置されていることも考えられる。このような場合であっても、従来であれば三次元サーチの段階で除外されたり低い優先順位となっていたため、把持解として選択される可能性が低く、十分に活用することができなかった。これに対して本実施形態によれば、たとえ三次元サーチの結果としては、評価指数が低いサーチ結果であっても、隣接する他のサーチ結果で高い評価値が得られている場合は、これを利用することで、高い優先順位でもって把持位置の候補として利用することが可能となる。これにより、従来であれば活用されなかった把持位置の候補であっても、利用できるようになり、把持解を得られる可能性を高めることができるようになる。いいかえると、三次元サーチの精度によらず、適切なワークを把持することが可能となる。
以上の方法では、統合結果を構成する各サーチ結果の内で、最も高い評価指標でもって、統合結果全体を評価したり、あるいは各サーチ結果の評価指数を本来の評価値からより高い評価値に書き換える態様について説明した。これは、高い評価指数を得たサーチ結果については、三次元サーチ結果の信頼性が高いとの信頼性に基づくものである。ただ、本発明はこの態様に限らず、他の態様、例えば、統合結果を構成する各サーチ結果の評価指数を平均して、この統合結果の評価指数として扱うようにしてもい。いずれの場合も、元々低い評価指標だったサーチ結果を、他の評価指数の高いサーチ結果を利用して、把持位置等の候補となり得るように元の評価指数よりも高い評価指数でもって評価されるようにすることが、本実施形態の趣旨である。
(画像処理プログラムのGUI)
ここで、画像処理プログラムのGUIの一例を図89〜図149に基づいて説明する。図89は各種機能を選択するための機能選択画面340を示しており、利用可能な機能が機能一覧表示欄341にボタン状に一覧表示されている。この状態から「3Dサーチ」ボタン342を押下すると、三次元サーチ機能が実行される。
(三次元サーチ画面)
三次元サーチ機能の実行にあたり、必要な設定を行う必要がある。具体的には、サーチモデルの登録、ワークを載置する床面や収納容器の登録、三次元サーチの条件設定などが挙げられる。これらの設定は、すべての項目をユーザが任意に設定可能とする他、必要な手順をユーザに順次示しながら、項目毎に設定させることもできる。このような設定のガイダンス機能について、図90〜図101の三次元サーチ画面に基づいて説明する。
これらの三次元サーチ画面では、画面左下の画像表示欄141の上段に、設定すべき手順のフローを表示させるフロー表示部351を設けている。フロー表示部351では、各手順の概要をテキストや図柄等で示すと共に、現在設定中の手順がハイライト表示される。図90の例では、「モデル登録」アイコン352が明るい色に表示され、他の「床・箱設定」アイコン353や「サーチ設定」アイコン354は暗い色で表示されており、ユーザに対し現在設定を行っている対象を告知することができる。さらに三次元サーチ画面の右側に設けられた操作欄142には、現在設定中の項目の説明がテキスト等で表示され、ユーザに対して行うべき設定を文字で説明することができる。説明はテキスト情報のみならず、必要に応じて、図柄や動画を適宜組み合わせてもよい。また、設定すべきパラメータの設定欄等も設けられている。
(実測データに基づくサーチモデルの登録)
図90〜図101の三次元サーチ画面では、センサ部でワークの現物を撮像した実測データをサーチモデルとして登録する例を示している。この登録手順は、図27のフローチャートで説明した手順にて行うことができる。これら図90〜図101の三次元サーチ画面では、上述の通りフロー表示部351に、1番目の手順として「モデル登録」アイコン352がハイライト表示されている。
図90は、サーチモデルとして登録する方法を選択するためのサーチモデル登録方法選択画面350を示している。このサーチモデル登録方法選択画面350の操作欄142には、モデルを登録する方法を選択するためのモデル登録方法選択欄355が設けられている。このモデル登録方法選択欄355では、モデル登録方法として、実際のワークを撮像して登録するか、CADデータから登録するかをラジオボタンで選択できる。図90のサーチモデル登録方法選択画面350の例では、実ワークを撮像して登録することを選択しており、これに応じて操作欄142には、実ワークを撮像して登録する手順の説明が文字と図柄で表示されている。この例では、「カメラから見えるワーク表面の三次元情報をモデル化します。サーチさせたい面の数だけ登録します。本ツールでは、さまざまな姿勢を取るワークに対して、登録した表面モデルをマッチングさせることで、そのワークの位置と姿勢を認識します。」とテキスト情報と図柄でもって、行うべき作業をユーザに示している。これによってユーザは、この画面で行うべき作業を容易に把握できるようになる。図90のサーチモデル登録方法選択画面350で実ワークの登録を選択した上で「OK」ボタン356を押下すると、ワークの撮像に移行する。
(実測データ撮像部)
実際に実ワークを登録する手順は、図91〜図93のようになる。この例では、モデル登録の作業を3つの画面に分けて、ユーザに対して順次説明していく。まず図91の実測データ撮像画面360では、モデル登録の1番目の作業として、ワークを撮像する。この例では、操作欄142に、ユーザが行うべき作業として「1.登録したいワーク表面がカメラに見えるようにワークを平面上に配置して、右下の「計測実行」ボタンを押して下さい。2.左のカメラ画面上でワークを囲むようにモデル領域を配置して下さい。」と説明される。さらに、最適なワークの配置についての詳細な説明を、「?」ボタン364を押下して、別画面で表示させることもできる。これにより、多くの情報を画面上に表示させて画面が見づらくなったりユーザを混乱させる事態を回避できる。このようにしてユーザは、ワークをセンサ部で撮像可能な位置に配置して、画像表示欄141でワークの様子を確認しながら位置決めを行う。そして、「計測実行」ボタン361を押下すると、図91に示すように撮像されたワークが表示される。ここでは三次元状の画像として、得られたワークの高さに応じて色を変えた画像として表示される。なお、カラー表示に限らず、画素の輝度値で高さを表現する高さ画像としてもよい。図91の例では、同じ形状のワークを6個並べて、それぞれ異なる姿勢で配置している。この状態でユーザは、サーチモデルとして登録したいワークの画像を囲むよう、モデル領域362を設定する。モデル領域362の設定を終えると、「次へ」ボタン363を押下する。これによって、図92に示すサーチモデル除外領域設定画面370に切り替わる。
(背景除去設定部)
図92のサーチモデル除外領域設定画面370においては、モデル登録の2番目の作業として、サーチモデルとして登録する際に除外する除外領域を設定する。サーチモデル除外領域の一例として、実ワークの登録に際して、ワークを載置した床面のような背景を除去する機能が挙げられる。図92のサーチモデル除外領域設定画面370では、モデル登録の2番目の作業として、操作欄142に、「1.登録したいワーク表面だけが残るように背景除去を設定してください。」と説明される。また「?」ボタン371を押下して、背景除去の設定方法の詳細説明を別画面で表示させることもできる。さらに操作欄142の中段には、背景除去設定欄372が設けられ、背景として除去する高さを数値で指定する。この例では1.5mmが指定されており、モデル領域362として指定された範囲の内、高さ0〜1.5mmまでの範囲がサーチモデルの登録対象から除外される。この背景除去設定欄372での設定に応じて、画像表示欄141で表示されるモデル領域362が更新され、サーチモデルの登録対象から除外された領域が黒塗りで表示される。ユーザはこの様子を確認しながら、除外領域の設定が妥当かどうかを判断でき、必要に応じて再設定等を行える。
(マスク領域設定部)
さらに高さ方向のみならず、平面方向においてサーチモデルの登録対象から除外したい範囲を、マスク領域として指定することもできる。図92のサーチモデル除外領域設定画面370の背景除去設定欄372の下には、「2.登録したいワーク表面以外のものが残ってしまう場合はマスク領域を配置してください。」と説明される。同様に「?」ボタン373を押下して、マスク領域の設定方法の詳細説明を別画面で表示させることもできる。「マスク領域」ボタン374を押下すると、モデル領域362として指定された範囲内に、サーチモデルの登録対象から除外する領域としてマスク領域を設定することが可能となる。マスク領域は、矩形状や円形などの規定の図形の他、自由曲線や境界部分の自動検出などによって設定できる。また、マスク領域の設定に応じて、画像表示欄141で表示されるモデル領域362が更新されることも上述の通りである。
なお、図92の例では、背景除去設定の後、マスク領域設定を行わせているが、これらの順序を入れ替えてもよい。このようにして、サーチモデルの登録から除外したい領域の設定を終えると、「次へ」ボタン375を押下する。これによって、図93に示す回転対称性設定画面380に切り替わる。
(回転対称性設定部)
図93の回転対称性設定画面380においては、モデル登録の3番目の作業として、回転対称性を設定する。この例では、操作欄142に、「1.登録するワーク表面が回転対称性を持つ場合は、該当するものを指定して下さい。」と説明される。同様に「?」ボタン381を押下して、回転対称の設定方法の詳細説明を別画面で表示させることもできる。操作欄142の中段には、回転対称設定欄382が設けられ、回転対称性の候補として、円対称、N回対称、なし等の選択肢から選択することができる。さらに、N回対称を選択した場合は、対称数の数値入力ボックスが表示され、ワーク表面の形状に応じた回転対称数を設定する。例えば、ワーク表面が長方形状であり、ワーク表面を真上か見た軸に対し180度回転した見え方が同一になる場合、回転対称数は2が適切値となる。あるいは、ワーク表面が正方形上で、ワーク表面を真上か見た軸に対し90度毎に回転した見え方が全て同一になる場合、回転対称数は4が適切値となる。あるいはまた、ワーク表面が6角形状で、ワーク表面を真上か見た軸に対し30度毎に回転した見え方が同一になる場合、回転対称数は6が適切値となる。一方、円対称については、球体や円柱状のワークを真上から見た時に、ワーク表面が円形に見える場合など、任意の回転角度の対し、回転した見え方が全て同一になる場合に設定するのが推奨される。回転対称性が設定されると、サーチモデルの登録時に、回転対称性として指定された姿勢にワークがある場合も、同じワークとして認識されるようになる。例えば、回転対称数が2と設定された2回対称のワークの場合、180度回転した姿勢も、回転前の姿勢も、同じワークとして認識されるようになる。
このようにして、回転対称性の設定を終えると、「登録」ボタン383を押下する。これによって、設定された条件に従ってサーチモデルが登録される。なお、モデル登録に必要な3つの作業の内、2番目と3番目は入れ替えてもよい。
(サーチモデルの複数登録)
サーチモデルが登録されると、図94に示すサーチモデル登録画面390が表示される。サーチモデル登録画面390の操作欄142には、登録済みのサーチモデルの一覧を表示させるモデル一覧表示欄391が設けられている。ここでは、登録済みのサーチモデルとしてモデル番号0のサーチモデルが、縮小画像と共に表示される。また当該サーチモデルについて、回転対称性の設定が「なし」であることも表示される。
さらに追加のサーチモデルを登録するには、「追加」ボタン392を押下する。これにより、上述したのと同様の手順でサーチモデルを登録できる。なおサーチモデルの登録の方法として、実ワークを撮像して登録するか、あるいは三次元CADデータから登録するかを、モデル登録方法指定欄393で選択できる。ここではモデル登録方法指定欄393で「実ワークで登録」を選択して追加登録する。
このようにしてサーチモデルを追加したサーチモデル登録画面410を図95に示す。この図に示すサーチモデル登録画面410では、新たにサーチモデルとして、画像表示欄141に並べた6個のワークの内、左下に配置されたワークを追加登録している。追加登録されたサーチモデルは、モデル一覧表示欄391にモデル番号1として追加されている。
(簡易三次元サーチ結果の表示)
さらに、図94、図95のサーチモデル登録画面では、登録済みのサーチモデルを用いて簡易的に三次元サーチを行った結果を表示させることもできる。例えば図94の例では、モデル番号0のサーチモデルを用いて、画像表示欄141で表示される6つのワークに対して三次元サーチを行った結果、登録に用いた左上のワークがサーチされている。サーチされたワーク上には、サーチモデルに合致した点群が表示されている。この例では、サーチモデルの表面形状の内、面状の点群を白色で、輪郭を示す点群を紫色で、それぞれ表示させている。さらに簡易三次元サーチ結果の評価指標として演算されたスコアを、数値で表示させることもできる。図94の例ではスコア値として96.4が表示されている。なお、サーチモデルとして登録した元のワークに対して、スコアが最高値(この例では99.9)とならないのは、モデル登録時の撮像状態と、三次元サーチ実行時の入力画像とに変動があり、若干スコアが下がった結果となっているためである。スコア値の結果から、おおよそ96%以上、モデル登録時の状態と一致している状態であると捉えることができる。
(サーチ領域設定部)
このようにしてサーチモデルが登録されると、次に三次元サーチ機能の設定として、サーチ領域を設定する。具体的には、図95のサーチモデル登録画面410で、必要なサーチモデルの登録を終えた後、右下の「完了」ボタン411を押下すると、図96のサーチ領域設定画面420に進む。このサーチ領域設定画面420では、三次元サーチを行うサーチ領域を指定する。画面上部のフロー表示部351には、ハイライト表示が「モデル登録」アイコン352から「床・箱設定」アイコン353に移り、モデル登録が終了して現在はワークを載置する床面や収納容器の登録を行う段階であることがユーザに示される。
サーチ領域設定画面420の操作欄142には、サーチ領域設定欄421が設けられる。サーチ領域設定欄421には、三次元サーチを行うサーチ領域の指定方法のユーザに説明するための「指定方法選択ナビ」ボタン422と、サーチ領域の指定方法を選択する指定方法選択欄423が設けられる。「指定方法選択ナビ」ボタン422を押下すると、三次元サーチを行うサーチ領域の指定方法をユーザに案内するナビゲーション画面が表示される。一方、指定方法選択欄423では、ドロップボックスから、選択肢として、床指定、箱指定、箱サーチ、指定なしの何れかを選択できる。この内、床指定を選択すると図97のサーチ領域設定画面430となって、床面指定ダイヤログ431が表示され、「床面を算出するための3点をクリックしてください。」との説明がユーザに示される。これに従いユーザが画像表示欄141上から、床面を示す任意の点をマウス等のポインティングデバイスで指定すると、指定された点の空間座標(X,Y,Z)が表示される。また、抽出領域としてゲージが表示される。この抽出領域は、クリックした点におけるZ座標値算出の際に、クリックした位置を中心に、どの範囲まで参照して求めるかを表している。三次元計測された1点1点のデータには誤差も含まれるため、誤差の影響を抑えるために、一定範囲内のデータの平均値や、中央値(メディアン)によって求めた値を用いるのが好ましい。今回のケースでは、抽出領域によって指定される範囲の平均値によって、Z座標値を求めている。このようにして床面が指定されると、床面の情報が演算されて、図98のサーチ領域設定画面440のように、サーチ領域設定欄421において演算された床面情報が床面情報表示欄441に表示される。ここでは床面情報表示欄421において、床面のX傾き、Y傾き、Z切片がそれぞれ数値で床面情報として表示されている。また必要に応じて、オフセット量を設定することもできる。例えば収納容器の床面の厚さの変動などを考慮して、床面からの所定の高さ分をサーチ領域から除去する。図98の例では、床面からのノイズ除去のため、ノイズ除去欄442を設けている。ここでは、指定された床面の高さから、ノイズ除去欄442で指定された高さ1.5mmまでの範囲を、三次元サーチの対象領域から除外する。以上のようにして床面の設定が終了すると、「完了」ボタン443を押下する。これによって図99のサーチパラメータ設定画面450に切り替わる。
(サーチパラメータ設定部)
図99のサーチパラメータ設定画面450では、三次元サーチを実行する条件としてサーチパラメータを設定する。画面上部のフロー表示部351には、ハイライト表示が「床・箱設定」アイコン353から「サーチ設定」アイコン354に移り、サーチ領域設定が終了して現在はサーチ条件を設定する段階に移行していることがユーザに示される。サーチパラメータ設定画面450の操作欄142には、三次元サーチの実行に必要なサーチパラメータをそれぞれ設定するための欄が設けられている。具体的には、検出条件設定欄451と、特徴抽出条件設定欄452と、判定条件設定欄453が設けられている。この内、特徴抽出条件設定欄452は、入力画像中からワークを検出するにあたり、エッジを抽出する閾値(しきいち)であるエッジ抽出閾値を設定する。また判定条件設定欄453では、スコアの計測値に対して上限や下限、あるいは位置のX座標の計測値に対して上限や下限を設定し、サーチ結果として選択するか否かの判定条件を設定する。
検出条件設定欄451では、ワークを検出する条件を設定する。この例では、ワークを検出する個数の上限を指定する検出個数指定欄454、検出されるワークの傾斜角度の上限を指定する傾斜角度上限指定欄455、評価指標であるスコアの下限を指定するスコア下限指定欄456が設けられている。また、指定は数値で行う他、スライダ等によって連続的に調整することもできる。さらに、詳細設定ボタン457を押下すると、、図100のサーチパラメータ設定画面460に切り替わり、より詳細な検出条件を設定するための検出詳細条件設定ダイヤログ461が表示される。
検出詳細条件設定ダイヤログ461においては、基本設定欄462、検出条件詳細設定欄463、オプション設定欄464が設けられている。基本設定欄462においては、検出個数指定欄454に加えて、三次元サーチの感度を設定するサーチ感度設定欄465、三次元サーチの精度を設定するサーチ精度設定欄466が設けられている。また検出条件詳細設定欄463においては、傾斜角度上限指定欄455、スコア下限指定欄456に加えて、回転角度範囲設定欄163として、基準角度を設定するための基準角度設定欄163a、角度範囲を設定するための範囲設定欄163bを設けている。
加えて、検出条件はサーチモデル共通で設定する他、サーチモデル毎に個別に設定することもできる。図100の例では、サーチモデル個別指定欄467を設けており、このチェックボックスをONすることで、サーチモデル毎に個別に三次元サーチの検出条件を設定することができる。このような例を図101のサーチパラメータ設定画面470に示す。ここでは、サーチモデル個別指定欄467のチェックボックスをONにすると、サーチモデル選択欄467bが表示され、検出条件を設定するサーチモデルを選択できる。この例ではサーチモデルAが選択された状態を示しており、図94等のモデル一覧表示欄391に示されたサーチモデルAに関する検出条件として、傾斜角度上限指定欄455、基準角度設定欄163a、範囲設定欄163b、スコア下限指定欄456をそれぞれ個別に指定することができる。
一方、図100等に示すオプション設定欄464においては、サーチ結果を識別するための通し番号として振られるラベル番号に対し、ラベルの順序を規定するラベル順序指定欄468、判定ラベルを指定する判定ラベル指定欄469を設けている。ラベル順序指定欄468では、相関値の降順、昇順やZ方向の高さの降順、昇順などを選択できる。ここでいう相関値とは、上述の「スコア」と同意語である。判定ラベル指定欄469では、特定のサーチ結果に対し、想定と異なる位置や姿勢になっていないか、判定する対象を指定できる。ここではサーチ結果を識別するための通し番号により指定する。例えば、サーチ結果が想定外の位置や、回転角度・傾斜角度になっていないかなど、サーチ結果として信頼性のないデータとなっていないかを判定する必要がある場合に設定を行う。
このようにして、三次元サーチのサーチ設定を順に終えると、操作欄142の右下に設けられらた「OK」ボタン471を押下して、三次元サーチの条件設定を終了する。
(三次元CADデータに基づくサーチモデルの登録)
以上の例では、サーチモデルとして実際のワークを撮像して登録する手順を説明した(図62等に対応)。ただ本発明は上述した図28等で説明した通り、予め作成されたワークの形状を示す三次元CADデータをサーチモデルとして登録することもできる。以下、このような三次元CADデータをワークモデルとして登録する手順を図102〜図106に基づいて説明する。
まず図102のサーチモデル登録方法選択画面480において、モデル登録方法選択欄355から、CADデータ(STL形式)から登録するをラジオボタンで選択する。これに応じて操作欄142には、三次元CADデータをサーチモデルとして登録する手順の説明が文字と図柄で表示されている。この例では、「三次元CADデータ中のXYZ軸の各正負方向(計6方向)から見えるワーク表面の三次元情報をモデル化します。生成されたモデルの中からサーチさせたい面のみ選択します。本ツールでは、さまざまな姿勢を取るワークに対して、登録した表面モデルをマッチングさせることで、そのワークの位置と姿勢を認識します。」とテキスト情報と図柄でもって、行うべき作業をユーザに示している。このようにして102のサーチモデル登録方法選択画面480でCADデータからの登録を選択した上で「OK」ボタン481を押下すると、図103のCADデータの読み込み画面に移行する。具体的には、サーチモデル登録画面490に移行し、CADデータ読み込みダイヤログ491が表示される。
(CADデータ読み込み部)
図103に示すCADデータ読み込みダイヤログ491では、読み込むCADデータの格納先を指定し、さらにCADデータを選択する。読み込み先は、記憶部9の他、半導体メモリ等の読み取り媒体を選択することもできる。ファイル一覧表示欄492からファイルを選択して「実行」ボタン493を押下すると、三次元CADデータの読み込みが実行される。
(登録モデル選択部)
三次元CADデータが読み込まれると、サーチモデルとして登録する面を選択する。ここでは図104に示すサーチモデル登録画面510が表示されて、ワークモデルの基本方向画像に対応する六面図が登録モデル選択画面511に自動的に表示される。この状態でユーザは、登録したい面を選択できる。ここでは、デフォルトでチェックボックスがONされており、サーチモデルとして登録が不要な面についてはチェックボックスをOFFにすることで、サーチモデルから排除することができる。このようにして登録対象を選択すると、「次へ」ボタン512を押下して図105のサーチモデル登録画面520に進む。
(回転対称指定部)
図105のサーチモデル登録画面520では、回転対称指定ダイヤログ521が表示されており、ユーザは登録対象として選択した基本方向画像の内、回転対称性を有するものについて、上下や前後、左右など、回転させても対称な形状を有する面を設定できる。このようにして回転対称性の設定を終えると、「登録」ボタンを押下して、サーチモデルの登録を実行する。
サーチモデルが登録されると、図106のサーチモデル登録画面530のように、モデル一覧表示欄391に登録されたサーチモデルが一覧表示される。なお一のワークに対して、複数のサーチモデルを登録可能であることは上述の通りである。例えば図106の例では、モデル番号0の三次元CADワークモデルに対して、図105等で示したA、B、C、D、E、Fの6つのサーチモデルを登録している。よってモデル一覧表示欄391には、モデル番号0のサーチモデルA〜Fが一覧表示されている。モデル一覧表示欄391において一画面で表示しきれないサーチモデルは、スクロールして表示を切り替えることができる。
(サーチモデル編集部)
さらに、登録済みのサーチモデルを編集することもできる。図106の例では、操作欄142の「編集」ボタン531を押下すると、図114に示すモデル編集画面620が表示される。このモデル編集画面620では、画像表示欄141に登録済みのサーチモデルが表示されると共に、操作欄142には、設定済みの項目が表示される。ここでは、モデル領域設定欄621、特徴設定欄622として背景除去設定欄327、回転対称設定欄382、モデル登録欄623としてモデル番号表示欄が設けられる。ユーザは変更したい項目を選択して適宜変更することができる。
(モデル領域詳細設定部)
モデル領域設定欄621に設けられた詳細設定ボタン624を押下すると、図115に示すモデル領域詳細設定画面630が表示される。モデル領域詳細設定画面630は、画像表示欄141に表示されたモデル領域362の範囲内に、サーチモデルの登録対象から除外したい領域としてマスク領域を設定することが可能となる。操作欄142には、モデル領域指定欄621、マスク領域指定欄631、重み付け領域指定欄632が設けられている。マスク領域指定欄631では、複数のマスク領域を設定できる。各マスク領域は、矩形状や円形などの規定の図形の他、自由曲線や境界部分の自動検出などによって設定できる。また各マスク領域とは別に、重み付け領域指定欄632でもって重み付けを設定することができる。
サーチ結果に対するスコア付けを行う際に、サーチモデルに含まれる他の特徴点よりも重視したい特徴点の箇所があれば、重み付け領域で囲むことでスコア結果を調整することができる。例えば、全体の形状の中で一部の特徴の有無によってサーチモデルの特定に繋がったり、回転方向の姿勢が定まるような形状があった場合に、その重要な特徴に対して重み付け領域を設定することで、サーチの検出能力を向上させることができる。また、他の特徴点に対する重み付け度合を、比率によって指定することもできる。例えば、重み付け度合を「3」と設定した場合には、他の特徴点よりも3倍の影響度でスコア値を算出するように調整できる。
(特徴詳細設定部)
さらに、特徴設定欄622に設けられた詳細設定ボタン625を押下すると、図116に示す特徴詳細設定画面640が表示される。特徴詳細設定画面640では、画像表示欄141に表示されたモデル領域362に対して、特徴設定や回転対称の有無を設定する。操作欄142には、特徴詳細設定欄641と回転対象設定欄382が設けられる。特徴詳細設定欄641には、特徴の抽出間隔を指定する特徴抽出間隔指定欄642、背景除去設定欄327、エッジ抽出閾値設定欄643が設けられる。特徴の抽出間隔は、サーチモデル生成時の特徴点の抽出間隔に影響するパラメータであり、「精度優先」と「標準」と「速度優先」が選択できるようになっている。「精度優先」を選択した場合、サーチモデルにおける特徴点の抽出間隔が狭くなり、より細かい特徴まで捉えられて検出精度が上がる反面、データ量が増えて処理時間は遅くなる。一方、「速度優先」を選択した場合、サーチモデルにおける特徴点の抽出間隔が広くなり、細かい特徴が抜けて検出精度が下がる反面、データ量が少なくなり処理時間は速くなる。用いるワークの形状や大きさや、許容される処理時間・検出精度によって、調整することができる。
このようにしてユーザは、簡易三次元サーチの結果や得られたスコアなどを参照しながら、より適切なサーチ結果が得られるように、必要な項目を調整できる。このようにしてサーチモデルの登録を終えると、これに続く以降の手順(サーチ領域設定、サーチパラメータ設定)は、上述した図96〜図101で説明した、実ワークを撮像してサーチモデルを登録する手順と同様であり、説明を省略する。
以上のようにして事前にサーチモデルを登録した上で、三次元サーチを行う。三次元サーチは、実運用、すなわちバラ積みされたワーク群をセンサ部で撮像して、把持可能なワークの把持位置を特定するバラ積みピッキングを行う際に用いる他、事前に三次元ピックのシミュレーションを行う場合等にも用いられる。三次元ピックのシミュレーションとは、三次元サーチ部8kでサーチされた各サーチ結果に対して、把持位置特定部8dで予めワークモデルに対して指定された把持位置にて、エンドエフェクタで把持可能か否かを判定する動作である。
(サーチ結果表示部)
次に、バラ積みされたワークに対して三次元サーチを行う例を、図107〜図113に基づいて説明する。図107は、バラ積みされたワーク群に対して三次元サーチを実行した結果を示すサーチ結果表示画面540の例を示している。サーチ結果表示画面540には画像表示欄141と操作欄142が設けられ、操作欄142には三次元サーチに用いたサーチモデルの一覧がモデル一覧表示欄391に縦方向に表示される。一方画像表示欄141には、入力画像として得られたバラ積み状態のワークに対して、サーチ結果として得られたワークに重ねて、サーチ結果である点群と、その評価指標であるスコアを表示させている。
(サーチ結果一覧部)
また画像表示欄141の上段には、サーチ結果一覧表示欄541が設けられ、サーチされたサーチ結果に対して、用いたサーチモデルとスコアの一覧が表示される。ここでは、サーチされた個数、ワークの有無、総体積/ワークの体積、特定のラベル番号のサーチ結果のモデル番号やスコア、位置(X,Y,Z)などが表示される。総体積/ワークの体積は、床面や通い箱の底面よりも高い位置にある点群の総体積を、登録されているサーチモデルから想定される平均体積で割った値を示しており、入力画像中に、ワークが何個相当分存在するかを示したデータとなる。この数値が一定以上大きい場合、ワークの有無の結果が有り(1)と判定される。サーチされた個数が0個で把持解が得られなかった場合などに、このワーク有無の結果が有りか無しかを確認することで、ワークが実際になくなった状態でピッキングが終了したのか、ワークが残存した状態で終了したのかを確認することができる。
サーチ結果一覧表示欄541の表示は切り替えることができる。例えば図107に示すサーチ結果表示画面540のサーチ結果一覧表示欄541の右下に、表示内容を切り替える切り替えボタン542が設けられている。切り替えボタン542は左右の矢印で構成されており、さらにその上部に画面数543が表示されている。この例では画面数543として11画面中の1番目であることを示す「1/11」が表示されており、切り替えボタン542を押下して番号を上限させることで、これに応じてサーチ結果一覧表示欄541の表示内容を切り替えることができる。例えば切り替えボタン542を操作して画面数543を「2/11」に変更すると、図108に示すサーチ結果表示画面550に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要が表示される。ここではサーチされた個数、ワークの有無、総体積/ワークの体積に加え、傾斜角度、回転角度、姿勢(RX,RY,RZ)等が表示される。また画面数543を「3/11」に変更すると、図109に示すサーチ結果表示画面560に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要として、サーチされた個数、ワークの有無、総体積/ワークの体積に加え、床面の情報としてXYZの傾き等が表示される。
さらに画面数543を「4/11」に変更すると、図110に示すサーチ結果表示画面570に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に、このサーチ結果の検出に用いたサーチモデルのモデル番号とスコアを横方向に表示している。さらにまた画面数543を「5/11」に変更すると、図111に示すサーチ結果表示画面580に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に、位置(X,Y,Z)が表示される。さらにまた画面数543を「6/11」に変更すると、図112に示すサーチ結果表示画面590に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に傾斜角度及び回転角度が表示される。さらにまた画面数543を「7/11」に変更すると、図113に示すサーチ結果表示画面610に切り替わり、サーチ結果一覧表示欄541には三次元サーチ結果の概要として、サーチ結果を識別するラベル番号毎に姿勢(RX,RY,RZ)が表示される。
(三次元ピック)
次に、三次元サーチされた各サーチ結果に対して、エンドエフェクタで把持可能か否かを判定する三次元ピックのシミュレーションを行う手順について、図117〜図149に基づいて説明する。図89の機能選択画面340において、「3Dピック」ボタン343を押下すると、図117の三次元ピック初期設定画面650が表示され、ユーザに対して三次元ピックを行うために必要な設定を順次行うよう、ガイダンス機能が実行される。ここでは、操作欄142の上段に、3Dピックガイダンス欄655が表示され、順次行われる作業がアイコンで表示される。この例では、「初期設定」、「把持登録」、「条件・懸賞」、「プレース設定」の4つの工程が表示されている。
(三次元ピック初期設定画面)
図117の三次元ピック初期設定画面650では、まず三次元ピックを行うための初期設定を行う。操作欄142上段の3Dピックガイダンス欄655では、「初期設定」アイコンがハイライト表示され、ユーザに対してこの段階で行うべき作業が示される。操作欄142には、キャリブレーションデータ選択欄651と、検出ツール設定欄652と、ハンド登録欄653が設けられる。キャリブレーションデータ選択欄651では、予め画像処理装置で表示される座標系を、ロボットコントローラがエンドエフェクタを動作させる座標系に座標変換するために演算されたキャリブレーションデータを呼び出して登録する。検出ツール設定欄652では、ワークを検出するための手段を指定する。この例では、ツール番号100番に設定されたワーク検出用三次元サーチが選択されている。上述した三次元サーチの設定を経て登録されたサーチモデルの設定が読み込まれる。別のツール番号に異なるワークのサーチモデルが予め設定されていた場合、この検出ツールの選択を切り替えることで、三次元ピックの設定対象を切り替えることができる。
(エンドエフェクタモデル設定部)
ハンド登録欄653では、エンドエフェクタモデルを登録する。ここで「ハンドモデルの作成」ボタン654を押下すると、図118に示すエンドエフェクタモデル設定画面660が表示される。エンドエフェクタモデル設定画面660では、登録済みのエンドエフェクタモデルの一覧が、ハンドモデル一覧表示欄661に表示される。図118の例は未登録のため、画像表示欄141にも、操作欄142のエンドエフェクタモデル一覧表示欄661にも、エンドエフェクタモデルは表示されていない。そこで、「追加」ボタン662を押下して、エンドエフェクタモデルを追加する。なおエンドエフェクタモデル設定画面660の画像表示欄141には、エンドエフェクタモデルを配置するロボットのアーム部先端の基準面としてフランジ面FLSが表示される。さらに、エンドエフェクタモデルEEM側の座標軸を示すツール座標軸TAXも表示される(詳細は後述)。
(エンドエフェクタモデル編集部)
図118で「追加」ボタン662を押下すると、図119に示すエンドエフェクタモデル編集画面670が表示される。エンドエフェクタモデル編集画面670では、エンドエフェクタモデルを構成するパーツを設定する。ここでは、登録済みのパーツがパーツ一覧表示欄671に表示される。図119の例では未だパーツが登録されていないため、パーツ一覧表示欄671には何も表示されていない。この状態で「追加」ボタン672を押下すると、図120に示すパーツ追加ダイヤログが表示され、追加するパーツをCADデータを読み込んで登録するか、直方体モデル、または円柱モデルで新たに作成するかをラジオボタンで選択する。なお、追加パーツは上述した追加領域の一形態であり、直方体や円柱に限らず、角柱状や三角形状、球状等、任意の形状を利用できる。図120の例ではCADデータを選択している。「追加」ボタン681を押下して作成済みの三次元CADデータを選択すると、図121に示すCAD位置姿勢設定画面690となり、三次元CADデータが読み込まれて画像表示欄141にCADで作成されたCADモデルCDMが表示されると共に、操作欄142には、このCADモデルCDMの位置及び姿勢を指定する位置姿勢欄691が表示される。CADモデルCDMの位置及び姿勢は、フランジ面FLSを基準に指定される。ユーザは、位置姿勢欄691から、エンドエフェクタモデルの取付位置や角度を指定する。例えば図121の状態から回転角RXとして20°を指定すると、図122に示すように画像表示欄141で表示されるCADモデルCDMが、X軸を中心として20°回転した姿勢に表示される。あるいは図121の状態からZ方向に50mmを指定すると、図123に示すようにCADモデルCDMがZ方向に50mmオフセットされて表示される。このようにしてCADモデルCDMの位置及び姿勢を調整して、図121の「OK」ボタン692を押下すると、CADデータが登録されて、パーツ一覧表示欄671に表示される。
パーツは複数を追加することができる。例えば図124のエンドエフェクタモデル編集画面から「追加」ボタン682を押下して、図120のパーツ追加ダイヤログ680で円柱モデルを選択して「追加」ボタン681を押下すると、図125の追加領域位置姿勢設定画面となり、画像表示欄141には新たに追加領域ADAとして、円柱状のモデルが表示される。なお、編集中のパーツはハイライト表示される。図125の例では、追加領域ADAが赤色で表示され、CADモデルCDMは灰色やワイヤフレームで表示される。これによってユーザに対し、現在編集中のパーツを視覚的に把握させ易くできる。また同様に、追加される追加領域ADAの位置及び姿勢を位置姿勢欄691から指定する。この例では位置姿勢欄691でZ位置を−50mmに指定しており、フランジ面FLSからCADモデルCDMと逆方向に追加領域ADAが配置されている。また追加領域ADAのサイズとして、円柱状モデルの半径や高さをサイズ指定欄693で指定できる。このようにして追加領域ADAの条件を設定した後、「OK」ボタン692を押下すると、追加領域ADAが登録されて、図126に示すようにエンドエフェクタモデル編集画面のパーツ一覧表示欄671に円柱が追加されて表示される。
(ツール座標指定部)
また、登録されたパーツの位置及び姿勢を調整することもできる。例えば図126のエンドエフェクタモデル編集画面から、選択されるパーツを追加領域ADAからCADモデルCDMに、画像表示欄141またはパーツ一覧表示欄671から変更すると図127のようになり、この状態でユーザは、ツール座標指定欄673で、位置(X,Y,Z)及び姿勢(RX,RY,RZ)を調整できる。例えば図128に示すように、Z位置を145mmに指定すると、画像表示欄141においてツール座標軸TAXが、指定された距離だけフランジ面FLSからZ方向に移動されて表示される。さらにこの状態で図129に示すように回転RXを20°に指定すると、ツール座標軸TAXがX軸を中心に時計回りに20°回転されて表示される。
このようにして複数のパーツを登録していき、これらを組み合わせてエンドエフェクタモデルEEMを構築していく。各パーツの設定が終わると、図128等のエンドエフェクタモデル編集画面で「OK」ボタン674を押下すると、複数のパーツが合成されてエンドエフェクタモデルEEMとして登録され、図130のエンドエフェクタモデル設定画面660に示すように、ハンドモデル一覧表示欄661に「ハンド0」として表示される。また、画像表示欄141には、ばらばらに表示されていたパーツが一体のエンドエフェクタモデルEEMとして表示される。
なお、この例ではパーツを組み合わせてエンドエフェクタモデルを構成する例を説明したが、パーツは必ずしもエンドエフェクタモデルやその一部に限定されず、例えばケーブル類などをパーツで表現することもできる。このようにパーツは、エンドエフェクタモデルの一部やその表面に追加した物体、あるいは周辺部材などを表現する追加モデルの一形態をなす。
(把持基準点HBP)
さらに、エンドエフェクタモデルEEMの把持基準点HBPが、画像表示欄141に重ねて表示される。把持基準点HBPは、エンドエフェクタモデルEEMでワークを把持する位置を示している。例えば、エンドエフェクタモデルEEMの内、ワークを把持する爪部同士の間の中間を把持基準点HBPとする。なお、把持基準点HBPは、所定の規則に従って決定されるように画像処理装置側で演算する他、ユーザが任意の位置を指定できるように構成してもよい。
さらに、エンドエフェクタモデルEEMの位置及び姿勢を規定するツール座標軸も、画像表示欄141に重ねて表示させることが好ましい。このツール座標軸は、エンドエフェクタモデルEEMの回転に応じて変化させた回転済み座標軸RAXとすることが好ましい。さらに、回転済み座標軸RAXの原点を、把持基準点HBPと一致させることがより好ましい。これによって、把持位置を設定する際のエンドエフェクタモデルEEMの状態をユーザが視覚的に把握し易くできる。
(把持登録部)
このようにして初期設定としてエンドエフェクタモデルEEMが登録されると、次に把持位置の登録を行う。図131の把持登録画面710では、3Dピックガイダンス欄655でハイライト表示が「初期設定」アイコンから「把持登録」アイコンに移る。操作欄142には、登録済みのサーチモデルを選択するサーチモデル切替欄711と、サーチモデル切替欄712で選択されたサーチモデルに対して、登録された把持位置の一覧を示す把持登録一覧表示欄712が表示されている。なお上述の通り、この例では把持位置を登録するワークモデルを、三次元サーチに用いるサーチモデルと共通にしている。ここでは、サーチモデル切替欄711には、登録済みのサーチモデルとして、図104で登録したモデル番号0のサーチモデルA〜Fの6つが登録されているものとする。また図131の例では、未だ把持位置が登録されていないため、把持登録一覧表示欄712には何も表示されていない。サーチモデル切替欄711ではサーチモデルAが選択されており、画像表示欄141にはAに対応するサーチモデルSMAが表示されている。さらに、サーチモデルSMAの位置姿勢を示す座標軸である基準座標軸BAXが重ねて表示されている。この状態からユーザは、サーチモデルAに対して把持位置を登録していく。具体的には「追加」ボタン713を押下すると、図132の把持登録画面に切り替わり、把持設定ダイヤログ720が表示される。
(把持設定部)
把持設定ダイヤログ720では、操作欄142に、基本設定欄721と、把持位置座標指定欄724と、移動量設定欄727が設けられている。基本設定欄721は、把持ラベル設定欄722とハンド選択欄723を設けている。把持ラベル設定欄722では、把持位置を特定する識別情報である把持ラベルを設定する。ここでは把持ラベルとして、サーチモデルを示す「A」と、把持位置の通し番号「000」を設定している。またハンド選択欄723では、把持ラベル設定欄722で設定された把持位置を把持するエンドエフェクタモデルEEMを選択する。この例ではハンド選択欄723で「ハンド0」が選択されており、これに応じて画像表示欄141には、エンドエフェクタモデルEEMが表示される。このように、把持位置は、エンドエフェクタモデルEEMと紐付けて設定される。
把持位置座標指定欄724では、把持位置を示す座標位置(X,Y,Z)と姿勢(RX,RY,RZ)を、ユーザが数値で直接指定可能な座標姿勢指定欄725と、把持位置の設定をユーザに案内するガイダンス機能を実行するための「簡単設定ナビ」ボタン726が設けられる。
また移動量設定欄727では、エンドエフェクタモデルEEMを移動させる方向を規定する。ここではエンドエフェクタモデルEEMでサーチモデルSMAを把持するように、エンドエフェクタモデルEEMをサーチモデルSMAに近付けるアプローチ移動量を、X方向、Y方向、Z方向の距離として規定している。図132の例では、Z方向に100mm移動させる例を示している。
(把持位置設定ガイダンス機能)
図132の画面から「簡単設定ナビ」ボタン726を押下すると、把持位置設定ガイダンス機能が実行される。具体的には図133に示すように設定方法選択ダイヤログ730が表示され、ユーザに対し、把持位置を三次元ビューワを使って設定するか、あるいはロボットを使って選択するかの何れかを、ラジオボタンで選択させる。この例では、三次元ビューワ上で設定することを選択している。この状態で「OK」ボタン731を押下すると、三次元ビューワ上での登録ガイダンス機能が実行される。
(三次元ビューワ上での登録ガイダンス機能)
三次元ビューワ上での登録ガイダンス機能では、4つの工程を経て把持位置を登録させる。ここでは、図134〜図141に示す三次元ビューワ登録画面を経て、ユーザに対し把持位置を指定させる。具体的には図133で「OK」ボタン731を押下すると、図134のX−Y指定画面740に切り替わる。
(第一工程:X−Y指定)
図134では、X−Y指定部の一形態としてX−Y指定画面740が表示される。ここでは、把持位置を登録するための第一工程として、サーチモデルSMAを平面図状に表示させた状態で、平面図上から把持位置を指定させる。具体的には、サーチモデルSMAをXY平面における二次元状に画像表示欄141に表示させて、把持するX、Y座標をサーチモデルSMA上で指定させる。操作欄142には、STEP1として、ユーザに対し行うべき作業をテキスト等で説明する。ここでは「把持するXY位置をカメラ画像上で選択してください。」と表示される。また図134の例では、画像表示欄141には、サーチモデルAが高さ画像(サーチモデルSMA)として拡大表示されており、この状態でユーザはマウス等のポインティングデバイスを用いて、把持する部位P1を選択する。この把持指定位置P1に応じて、XY座標がXY座標指定欄741に入力される。また、XY座標指定欄741のX座標、Y座標を調整すると、これに応じて画像表示欄141の把持指定位置P1も更新される。なお、このX−Y指定画面740では、位置パラメータの内、X座標とY座標の指定のみを可能としており、言い換えると他の位置パラメータの指定は不可能としている。このように、従来のような多数の位置パラメータを同時に設定可能としたことでユーザが混乱する事態を避け、設定可能な位置パラメータを制限することで、ユーザは設定可能な位置パラメータを的確に把握して、順次位置パラメータを設定するように案内される。このようにしてXY座標の指定を終えると、「次へ」ボタン742を押下する。これにより、第二工程に移り、図135のZ−RZ指定画面750に切り替わる。
(第二工程:Z−RZ指定)
図135のZ−RZ指定画面750は、Z−RZ指定部の一形態であり、Z座標と姿勢RZをユーザに指定させるための画面である。操作欄142には、第二工程でユーザが行うべき作業をテキストで表示して説明する。ここでは「STEP2 把持するZ位置と、ハンドの姿勢角度RZを指定してください」と表示させている。また操作欄142には、Z−RZ指定欄751として、Z位置を指定するZ指定欄752とRZ姿勢を指定するRZ指定欄753が設けられる。また画像表示欄141には、エンドエフェクタモデルEEMとサーチモデルSMAが三次元状に表示されている。すなわち画像表示欄141は、エンドエフェクタモデルやサーチモデルを三次元状に表示させる三次元ビューワとして機能する。Z指定欄752やRZ指定欄753の数値を変更すると、これに応じて画像表示欄141のエンドエフェクタモデルEEMやサーチモデルSMAの三次元状表示内容が更新される。また、画像表示欄141をドラッグすることで、ユーザは三次元ビューアの視点を変更することができるため、把持の設定状態を詳細に確認することができる。
加えて三次元ビューワである画像表示欄141には、座標軸の内、現在設定中の位置パラメータに関する座標軸として、Z軸のみを表示させている。このZ軸は、上述したZ−Y−Xオイラー角で表示した補正後の補正回転Z軸AXZである。このように、現在調整可能な座標軸のみを表示させ、さらに他の位置パラメータの調整をこの画面上では不可能とすることで、ユーザに対して無用な混乱を生じさせず、所定の順序に従い適切な位置パラメータのみを順次設定させるように適切に案内することが実現される。
また図135等の例では、把持基準点HBPを通って把持方向の軸(ここでは補正回転Z軸AXZ)が延びるように表示させることで、ユーザに対し、エンドエフェクタモデルEEMをワークモデルに近付けるための移動方向を判り易く示すことができる。また、エンドエフェクタモデルの移動方向を矢印で示すように構成してもよい。この際、エンドエフェクタモデルの移動方向は、把持方向の軸上に重ねて表示してもよいし、あるいは別の位置に表示させてもよい。
さらにZ−RZ指定画面750は、相対位置設定部の一形態として「フィット」ボタン154を設けている。上述の通り「フィット」ボタン154は、エンドエフェクタモデルをワークモデルの把持位置に自動的に移動させるフィット機能を実現する。「フィット」ボタン154を押下すると、図136に示すようにエンドエフェクタモデルEEMが移動され、サーチモデルSMAに接触された状態に変化する。すなわち、エンドエフェクタモデルEEMの把持基準点HBPが、サーチモデルSMAの把持指定位置P1に向かって移動される。この移動方向がZ軸と一致するように、図135の状態で、エンドエフェクタモデルEEMの表示させる際の初期位置を調整することが好ましい。これによって、エンドエフェクタモデルEEMをZ方向にのみ移動させることで、サーチモデルSMAに接触させることができ、感覚的に判り易く表示させることができる上、ユーザがエンドエフェクタモデルEEMを移動させる作業も簡便に行える。
また画像表示欄141におけるエンドエフェクタモデルEEMの移動に応じて、操作欄142におけるZ指定欄752のZ位置が変更される。この例では、図135の200mmから50mmに変更されている。ここでは、フィット機能により、図134で指定された把持指定位置P1に向かって、エンドエフェクタモデルEEMを高さ方向すなわちZ軸方向に移動させたとき、サーチモデルSMAに接触する位置を基準として、ここから所定のオフセット量だけ手前に戻した位置に移動される。また、把持指定位置P1を基準として、座標軸の内、現在設定中のZ軸のみを画像表示欄141に表示させている。
この状態でユーザは、さらに姿勢RZをRZ指定欄753から指定する。図136に示すエンドエフェクタモデルEEMの姿勢では、ハ字状に傾斜されたサーチモデルSMAの側面を把持している状態となっているため、エンドエフェクタモデルEEMをZ軸方向に回転させて、平行な面を把持するように調整する。この際、RZ指定欄753にユーザが直接回転角を入力する他、所定の角度を入力する角度選択ボタン754を設けることで、より簡便にエンドエフェクタモデルEEMの回転を指定することができる。この例では角度選択ボタン754として、0°、90°、180°、−90°の4つの角度ボタンを配置している。ユーザは90°ボタンを押下することで、RZ指定欄753に90°が入力されて、図137に示すようにエンドエフェクタモデルEEMがZ軸方向に90°回転され、サーチモデルSMAを正しく把持できる状態に修正できる。
(第三工程:RY指定)
このようにして第二工程のZ−RZ指定を終えると、「次へ」ボタン755を押下して、第三工程のRY指定に進む。具体的には、「次へ」ボタン755を押下すると、図138のRY指定画面760に移行する。RY指定画面760はRY指定部の一形態であり、姿勢RYを指定する。RY指定画面760の操作欄142には、RY指定欄761が表示され、またユーザに対して第三工程で行うべき作業として、「STEP3 ハンドの姿勢角度RYを指定してください」と表示される。さらに画像表示欄141には、座標軸の内、現在設定中のY軸である補正回転Y軸AXYのみを表示させている。この状態からユーザは、サーチモデルSMAを把持するエンドエフェクタモデルEEMの姿勢に応じて、姿勢RYをRY指定画面760から指定する。あるいは三次元ビューワである画像表示欄141上で、エンドエフェクタモデルEEMをドラッグして回転させる。例えば図138の状態で、RY指定画面760から姿勢RYとして90°を指定すると、図139のRY指定画面に切り替わり、エンドエフェクタモデルEEMがY軸を中心に90°回転された姿勢に表示される。このようにして第三工程のRY指定を終えると、「次へ」ボタン762を押下して、第四工程のRY指定に移行する。
(第四工程:RY指定)
図140は、第四工程のRX指定画面770を示している。RX指定画面770はRX指定部の一形態であり、姿勢RXを指定するためのRX指定欄771を設けている。また画像表示欄141には、エンドエフェクタモデルEEMとサーチモデルSMAに重ねて、座標軸の内でRX指定画面770で設定可能な位置パラメータRXに関するX軸である補正回転X軸AXXが表示される。この状態でユーザは、RX指定欄771から姿勢RXを指定する。あるいは画像表示欄141でエンドエフェクタモデルEEMをドラッグして回転させる。例えば姿勢RXとして、図140の例ではRX指定欄771に、現在の把持位置と対応して180°が入力されているところ、150°を指定すると、図141のように、指定された姿勢RXに応じてエンドエフェクタモデルEEMとサーチモデルSMAの姿勢が三次元ビューワである画像表示欄141において変化する。
このようにして姿勢RXの指定を終えると、「完了」ボタン772を押下して、把持位置を登録を終了する。把持位置が登録されると、図142に示すように、把持登録一覧表示欄712に、把持登録A−000が追加される。また把持登録A−000と対応するサーチモデルAが、サーチモデル切替欄711においてハイライト表示される。さらに画像表示欄141には、この把持登録されたエンドエフェクタモデルEEMの位置及び姿勢でサーチモデルSMAを把持する様子が三次元状に表示される。さらに座標軸として、サーチモデルSMA側の基準座標軸BAXが重ねて表示されている。
以下同様にして、サーチモデルAに別の把持位置を登録したり、あるいは他のサーチモデルB〜Fに、把持位置を追加していく。把持位置の追加は、上述の通り把持登録一覧表示欄712に設けられた「追加」ボタン713を押下することで行える。図143の例では、サーチモデルBに対する把持登録B−000を登録した例を示している。
(コピー機能)
また、把持位置を追加登録する際に、既に登録した把持位置をコピーするコピー機能を利用できる。図142等の画面で把持登録一覧表示欄712に設けられた「コピー」ボタン714を押下すると、登録済みの把持位置を複製できる。さらにコピーした把持位置をベースにして修正することで、効率的に把持位置の登録作業を行うこともできる。図142等の状態から、「編集」ボタン715を押下すると、把持設定ダイヤログが表示されて、上述の通り把持位置の設定を行うことができる。ここで、上述の通り「簡単設定ナビ」ボタン726を押下して把持位置設定ガイダンス機能を実行し、必要な箇所を修正することもできる。
(条件検証画面780)
以上のようにしてサーチモデルA〜Fに把持位置を登録し終えると、図143等の画面で「完了」ボタン716を押下して、把持登録工程を終了し、条件検証工程に移行する。条件検証工程においては、バラ積みされたワーク群に対して、三次元サーチを行いワークを検出して、このワークを指定された把持位置でエンドエフェクタで把持できるかを検証する。ここでは、エンドエフェクタモデルEEMとサーチモデルを用いてシミュレーションを行う。条件検証画面780の例を図144に示す。この条件検証画面780では、3Dピックガイダンス欄655でハイライト表示が「把持登録」アイコンから「条件・検証」アイコンに移る。操作欄142には、三次元サーチ結果を元に把持位置を検出する条件を設定する検出条件設定欄781と、検出されたワークの把持可否を検証するための検証欄785が設けられる。検出条件設定欄781では、検出する把持解の個数の上限を指定する検出個数指定欄782と、エンドエフェクタモデルの傾斜角度の上限を指定するハンド傾斜角度上限指定欄783と、エンドエフェクタモデルが干渉する範囲を拡張するため、収納容器の壁面からのマージンを設定するマージン設定欄784を設けている。マージン設定欄784で指定された距離(図144では5mm)の範囲に、エンドエフェクタモデルEEMが浸入すると、干渉すると判断される。
一方、検証欄785には、三次元サーチのシミュレーションの結果、実際に検出されたサーチ結果の個数を示す検出個数表示欄786と、検出されたサーチ結果の内で検証したいサーチモデルのラベル番号を指定する表示ラベル指定欄787と、ワーク毎に検証を実行するための「ワーク毎の検証」ボタン788を設けている。表示ラベル指定欄787で指定されたラベル番号のサーチ結果が、画像表示欄141に表示される。
(ワーク毎の検証)
また「ワーク毎の検証」ボタン788を押下すると、図145に示す検証ダイヤログ790が表示される。検証ダイヤログ790は、図74で説明したワーク選択画面210の一形態である。図145の検証ダイヤログ790では、検出されたワーク毎に、把持可能かどうかを検証する。この例では、検証ダイヤログ790は対象ワーク選択欄791と、検出サーチモデル表示欄792と「把持確認」ボタン793を設けている。「把持確認」ボタン783を押下すると、図146に示す検出結果表示ダイヤログ810が表示される。この検出結果表示ダイヤログ810は、図75等で示した把持解候補表示画面220の一形態である。ここでは、対象ワーク選択欄791で選択したワーク(図145では2番目のワーク)に対して検出された面(サーチ画像及び推定画像)毎に、設定された把持位置での把持可否の判定結果が把持解候補表示欄811に一覧表示される。図146の例では把持ラベルC−000が選択されており、これに応じて画像表示欄141には、対応する把持位置にエンドエフェクタモデルEEMを配置して表示させると共に、判定結果に応じてエンドエフェクタモデルEEMを着色表示させる。この例では、判定結果がNGであるため、エンドエフェクタモデルEEMは赤色に表示される。また把持解候補表示欄811には、把持不能となった原因として、点群干渉エラーと表示される。これにより、ユーザは必要な対策、例えば把持位置の修正や追加等を行う際の指針が与えられる。
また、図147の検出結果表示ダイヤログで、判定OKである把持ラベルA−000を選択すると、これに応じて画像表示欄141には、対応する把持位置で把持するエンドエフェクタモデルEEMが、白色にて表示される。このようにして、把持の可否を判定すると共に、必要に応じて適切な対策を講じることが可能となる。
さらに、図144の条件検証画面780において、検出条件設定欄781に設けられた検出条件詳細設定ボタン789を押下すると、図148の検出条件詳細設定画面820に切り替わる。検出条件詳細設定画面820には、把持位置の検出条件設定欄821と、エンドエフェクタと箱、床との干渉判定設定欄822と、エンドエフェクタと三次元点群との干渉判定設定欄823が設けられている。
このようにして、条件検証工程を終えると、最後にワークの載置位置を規定するプレース設定工程に移行する。プレース設定画面830の一例を図149に示す。プレース設定画面830の3Dピックガイダンス欄655では、ハイライト表示が「条件・検証」アイコンから「プレース設定」アイコンに移る。操作欄142には、ツール座標設定欄831と、プレース位置登録欄832が設けられている。この画面からユーザは、ワークのプレースに関する設定を行う。