(57)【要約】【課題】  はめあて部位にあそびが存在するような部品であっても、その組み立ての成功もしくは失敗を判定可能にするための技術を提供すること。【解決手段】  一方の部品に対する他方の部品の組み付けが成功した状態と失敗した状態の少なくともいずれか一方の状態に該当する複数の、該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢、を取得する。取得した複数の相対的な位置及び／又は姿勢の分布を用いて、組み付けが成功したかを判断するための情報を生成する。【選択図】  図１
2015178138.tif 000002
【特許請求の範囲】
【請求項１】
一方の部品に対する他方の部品の組み付けが成功した状態と失敗した状態の少なくともいずれか一方の状態に該当する複数の、該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢、を取得する取得手段と、
前記取得手段が取得した複数の相対的な位置及び／又は姿勢の分布を用いて、前記組み付けが成功したかを判断するための情報を生成する生成手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記取得手段は、
ユーザ操作により前記一方の部品を表す仮想物体及び／又は前記他方の部品を表す仮想物体を移動させて前記一方の部品を表す仮想物体に前記他方の部品を表す仮想物体を組み付けた状態にした場合の該一方の部品を表す仮想物体と該他方の部品を表す仮想物体との間の相対的な位置及び／又は姿勢を、該一方の部品に対する該他方の部品の組み付けが成功した状態に該当する該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢として取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記相対的な位置及び／又は姿勢の各成分のうち一部の成分は固定され、前記ユーザ操作では、前記相対的な位置及び／又は姿勢の各成分のうち該一部の成分以外の成分を変更することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記取得手段は、
前記一方の部品に前記他方の部品を組み付けた状態における該一方の部品及び該他方の部品の撮像画像から、該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢を、該一方の部品に対する該他方の部品の組み付けが成功した状態に該当する該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢として取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記取得手段は、
前記一方の部品と前記他方の部品との間の相対的な位置及び／又は姿勢を用いて、前記一方の部品を表す仮想物体と前記他方の部品を表す仮想物体との間に干渉が生じているか否かを判断し、該干渉が生じていなければ、該相対的な位置及び／又は姿勢を、該一方の部品に対する該他方の部品の組み付けが成功した状態に該当する該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢として取得することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記生成手段は、
前記取得手段が取得した複数の相対的な位置及び／又は姿勢の確率密度分布を、前記一方の部品に対する前記他方の部品の組み付けが成功したか否かを判断するための情報として生成することを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記生成手段は、
前記確率密度分布において、ユーザ操作によって指定された相対的な位置及び／又は姿勢に対応する確率密度を０に設定することで該確率密度分布を更新することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記生成手段は、
前記確率密度分布において、ユーザ操作によって指定された相対的な位置及び／又は姿勢に対応する確率密度を規定量だけ上げることで該確率密度分布を更新することを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
情報処理装置が行う情報処理方法であって、
前記情報処理装置の取得手段が、一方の部品に対する他方の部品の組み付けが成功した状態と失敗した状態の少なくともいずれか一方の状態に該当する複数の、該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢、を取得する取得工程と、
前記情報処理装置の生成手段が、前記取得工程で取得した複数の相対的な位置及び／又は姿勢の分布を用いて、前記組み付けが成功したかを判断するための情報を生成する生成工程と
を備えることを特徴とする情報処理方法。
【請求項１０】
コンピュータを、請求項１乃至８の何れか１項に記載の情報処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、部品組み付けの成功可否を判断するための技術に関するものである。
【背景技術】
【０００２】
近年のロボット技術の発展とともに、工業製品の組み立てのような、これまで人間が行っていた複雑なタスクをロボットが代わりに行うようになりつつある。このようなロボットでは、ハンドなどのエンドエフェクタによって部品をピックして組み付けを行う。ロボットによる部品ピックやその後の組み付け作業では、ハンド機構による部品把持時の部品位置姿勢のずれや正常でない部品の混入等の原因により部品組み付けに失敗することがある。そのため、部品を組み付けた後に、正常に組み付けが行われたかどうかを確認する部品組み付け後検査が必要になる。この組み付け後検査として、これまでは組み付け作業者の目視による検査が一般的であったが、近年はこの検査の自動化を目的とした取り組みが行われ始めている。
【０００３】
例えば、特許文献１に開示されている技術では、部品組み立て時を観察する三台のカメラの二次元画像を用いて、組立時の差異を検査する領域を画面で指定する。指定した部位は、少なくとも２台のカメラからの三角測量を用いて三次元の点として取得できるので、部品組み付け部位における三次元点の差異を見ることで組み立て検査が可能となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１０−５２８３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、はめあて部位にあそびと呼ばれる隙間が存在する部品に関しては、組み立てに成功する場合であっても組み立て対象の複数部品間の相対的な位置姿勢に自由度があるため、特許文献１のように単一の位置姿勢のみを組み立て成功と設定しただけでは、相対位置姿勢が自由度（あそび）の範囲内であっても、組み立て失敗と判定されてしまうことがある。
【０００６】
本発明はこのような問題に鑑みてなされたものであり、はめあて部位にあそびが存在するような部品であっても、その組み立ての成功もしくは失敗を判定可能にするための技術を提供する。
【課題を解決するための手段】
【０００７】
本発明の一様態によれば、一方の部品に対する他方の部品の組み付けが成功した状態と失敗した状態の少なくともいずれか一方の状態に該当する複数の、該一方の部品と該他方の部品との間の相対的な位置及び／又は姿勢、を取得する取得手段と、前記取得手段が取得した複数の相対的な位置及び／又は姿勢の分布を用いて、前記組み付けが成功したかを判断するための情報を生成する生成手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明の構成により、はめあて部位にあそびが存在するような部品であっても、その組み立ての成功もしくは失敗を判定可能にするための技術を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】情報処理装置１の機能構成例を示すブロック図。
【図２】仮想物体を説明する図。
【図３】位置及び姿勢を説明する図。
【図４】相対位置姿勢の分布及び確率密度分布を示す図。
【図５】情報処理装置が行う処理のフローチャート。
【図６】情報処理装置２の機能構成例を示すブロック図。
【図７】仮想物体を説明する図。
【図８】情報処理装置３の機能構成例を示すブロック図。
【図９】情報処理装置４の機能構成例を示すブロック図。
【図１０】情報処理装置５の機能構成例を示すブロック図。
【図１１】組み付け成功確認部４１が表示させる画面の表示例を示す図。
【図１２】情報処理装置６の機能構成例を示すブロック図。
【図１３】システムの外観例を示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１１】
［第１の実施形態］
本実施形態では、一方の部品に対する他方の部品の組み付けが成功したか否かを判断するための情報（部品組み付けの成否判定条件）を生成するために、ユーザは画面上に表示された「一方の部品を表す仮想物体」及び／又は「他方の部品を表す仮想物体」を操作してその位置や姿勢を変更し、「一方の部品を表す仮想物体」に「他方の部品を表す仮想物体」を組み付けた状態にする。一方の部品に対する他方の部品の組み付けパターンは様々であるので、ユーザは様々な組み付けパターンで「一方の部品を表す仮想物体」に「他方の部品を表す仮想物体」を組み付け、本実施形態に係る情報処理装置は、組み付けパターン毎に、該組み付けパターンにおける「一方の部品を表す仮想物体」と「他方の部品を表す仮想物体」との間の相対的な位置姿勢を取得する。そして本実施形態に係る情報処理装置は、取得した相対的な位置姿勢の分布から、上記の「部品組み付けの成否判定条件」、すなわち、相対的な位置姿勢の６自由度空間中の連続領域として、組み付け成功範囲を生成する。
【００１２】
先ず、本実施形態に係る情報処理装置１の機能構成例について、図１のブロック図を用いて説明する。図１に示す如く、本実施形態に係る情報処理装置１は、拘束条件生成部１２と、組み付け成功範囲決定部１３と、を有し、更に、情報処理装置１には、３次元形状モデル保持部１１が接続されている。なお、図１では３次元形状モデル保持部１１は、情報処理装置１の外部記憶装置として示しているが、情報処理装置１内に設けられたメモリとしても良い。
【００１３】
先ず、３次元形状モデル保持部１１について説明する。３次元形状モデル保持部１１には、組み付け元の部品の仮想物体（３次元形状モデル）のデータと、組み付け先の部品の仮想物体（３次元形状モデル）のデータと、が保存されている。本実施形態では、仮想物体はポリゴンで構成されているものとして説明するので、３次元形状モデル保持部１１には、仮想物体を構成する各ポリゴンを規定するデータが保存されていることになる。
【００１４】
なお、仮想物体の３次元的な幾何情報（図７（ｃ））を表すための表現方法には様々なものがあり、本実施形態には様々な表現方法を適用しても構わない。例えば、単純な３次元点の集合や、稜線を表す３次元ラインの集合、３点の３次元点で構成される面および線の集合で表される単純な３次元点の集合など、他の表現で表しても良い。
【００１５】
拘束条件生成部１２は、３次元形状モデル保持部１１に保存されているデータを用いて、組み付け元の部品の仮想物体と組み付け先の部品の仮想物体とを生成し、該生成したそれぞれの仮想物体を情報処理装置１に接続されている不図示の表示装置に表示する。ユーザはこの表示装置に表示されたそれぞれの仮想物体を見ながら、情報処理装置１に接続されている不図示の操作部を用いて一方若しくは両方の仮想物体の位置や姿勢を変更させて、組み付け元の部品の仮想物体に組み付け先の部品の仮想物体を組み付けた状態（組み付け成功状態）にする。ここで、「位置」とは、図３に示す如く並進成分（ｘ、ｙ、ｚ）で表され、「姿勢」とは、図３に示す如くオイラー角で示された回転成分（α、β、γ）で表されるものとするが、表現方法はこれに限るものではない。
【００１６】
なお、組み付け元の部品の仮想物体に組み付け先の部品の仮想物体を組み付けた状態（組み付け成功状態）にするための方法は上記の方法に限るものではない。例えば、ユーザが並進成分や回転成分を数値として入力すると、拘束条件生成部１２は、入力された並進成分や回転成分に応じて仮想物体の位置や姿勢を変更する、という方法を採用しても構わない。
【００１７】
そして、ユーザは組み付けが完了したと判断した場合には、その旨を操作部を用いて入力するので、拘束条件生成部１２は、この時点における仮想物体間の相対的な位置姿勢を取得する。ユーザはこの作業（操作部を用いて一方若しくは両方の仮想物体の位置や姿勢を変更させて組み付け元の部品の仮想物体に組み付け先の部品の仮想物体を組み付けた状態にし、組み付けが完了したと判断した場合には、その旨を操作部を用いて入力する）を複数回行うので、拘束条件生成部１２はその都度、その時点における仮想物体間の相対的な位置姿勢を取得する。
【００１８】
なお、組み付け成功状態にある仮想物体間の相対的な位置姿勢が登録されたファイル群を予め作成して３次元形状モデル保持部１１に登録しておいても良い。この場合、拘束条件生成部１２は、ユーザによる操作部の操作に応じて、このファイル群を表示装置に一覧表示させ、ユーザが操作部を用いて選択したファイルに登録されている「仮想物体間の相対的な位置姿勢」を取得することになる。
【００１９】
組み付け成功範囲決定部１３は、ユーザが操作部を用いて上記作業を終了する旨の指示を入力し、この入力を検知すると、拘束条件生成部１２が取得した複数の「相対的な位置姿勢」から、組み付け成功とみなす「相対的な位置姿勢」の確率密度分布を、部品組み付けの成否判定条件として求める。ここで言う分布とは６自由度パラメータ空間で表された分布である。本実施形態では組み付け成功の確率密度分布としてガウス分布を想定し、組み付け成功となる相対的な位置姿勢の分布を求める。図４（ａ）に、このようにして得られた位置姿勢分布の一例を示す。本例では説明を簡単にするために位置姿勢はｘ，ｙの２パラメータで表しているが、実際のフィッティングにおける６パラメータの位置姿勢においても同様に実行することが可能である。この場合、組み付け成功範囲決定部１３は、拘束条件生成部１２が取得した複数の「相対的な位置姿勢」を用いて、相対位置姿勢の平均ベクトルμと共分散行列Σを算出する。図４（ｂ）に、２次元ガウス分布において確率密度が一定となる等高線を図４（ａ）に重ねたものを示す。
【００２０】
そして組み付け成功範囲決定部１３は、このようにして求めた分布を３次元形状モデル保持部１１等のメモリに登録する。このような分布を求めておけば、実際に組み付け元の部品と組み付け先の部品との間の相対的な位置姿勢が、ある位置姿勢Ｘとなった場合に、この位置姿勢Ｘが、組み付け成功に該当する位置姿勢であるのかを、この分布を用いて判断することができる。具体的には、分布において位置姿勢Ｘに対応する分布値（確率密度）が閾値以上であれば、位置姿勢Ｘは組み付け成功に該当する位置姿勢である、すなわち、組み付け元の部品と組み付け先の部品との組付けは成功であると判断することができる。
【００２１】
なお、本実施形態では、組み付け成功の確率密度分布としてガウス分布を適用したが、相対的な位置姿勢を連続した空間領域として近似する分布であれば他の分布であってもよいし、それぞれの相対的な位置姿勢を包含する方形状の分布を適用してもよい。また、分布の値は連続した実数値であっても構わないし、成功あるいは失敗を２値で表してもよい。次に、情報処理装置１が部品組み付けの成否判定条件を生成するために行う処理について、同処理のフローチャートを示す図５を用いて説明する。
【００２２】
（ステップＳ１０００）
拘束条件生成部１２は、３次元形状モデル保持部１１に保存されているデータを用いて、組み付け元の部品の仮想物体と組み付け先の部品の仮想物体とを生成し、該生成したそれぞれの仮想物体を情報処理装置１に接続されている不図示の表示装置に表示する。そして、ユーザは組み付けが完了したと判断した場合には、その旨を操作部を用いて入力するので、拘束条件生成部１２は、この入力を検知するたびに、この時点における仮想物体間の相対的な位置姿勢を取得する。
【００２３】
（ステップＳ１１００）
組み付け成功範囲決定部１３は、ユーザが操作部を用いて上記作業を終了する旨の指示を入力し、この入力を検知すると、拘束条件生成部１２が取得した複数の「相対的な位置姿勢」から、組み付け成功とみなす「相対的な位置姿勢」の確率密度分布を、部品組み付けの成否判定条件として求める。
【００２４】
このように、本実施形態によれば、分布を指定するという難しい作業を行わずに、組み付けが成功した状態における仮想物体間の相対的な位置姿勢をユーザが指定することで、あそびがある部品であっても、組み付け成否判定を可能にするための情報を生成することができる。
【００２５】
＜変形例１＞
第１の実施形態では、位置や姿勢を拘束条件無しに変動させて仮想物体の組み付けを行っていたが、例えば、組み付け方向をユーザが指定して、６自由度ある相対位置姿勢に拘束を与え、分布を作成するときのパラメータ数を減らして計算してもよい。例えば、並進ｙ方向から組み付ける場合は並進成分ｙ以外のパラメータは固定し、並進成分ｙのみ変動させて、仮想物体の組み付けを行っても構わない。すなわち、相対的な位置及び／又は姿勢の各成分のうち一部の成分は固定し、ユーザ操作では、相対的な位置及び／又は姿勢の各成分のうち該一部の成分以外の成分を変更する。このように、仮想物体の変動に拘束条件を追加することで、操作の手間を減らして、組み付けが成功状態にある仮想物体間の相対位置姿勢をより厳密に求めることができる。
【００２６】
＜変形例２＞
例えば、円筒形状の部品を円筒形状の穴に挿入する場合のように、ある方向の位置姿勢変動（この例の場合は円筒の軸周り回転）が組み付けの成功／失敗には関係がない場合には、拘束条件生成部１２では、この方向と、この方向には位置姿勢が自由に変動できること、の２つを指定し、組み付け成功範囲決定部１３は、この方向に相当する位置姿勢パラメータ空間中の連続領域を一括して組付け成功となる領域として決定する。これにより、組み付け時に位置姿勢が自由に変動できる部品に関しても、組み付け成否判定を行うことが可能となる。
【００２７】
＜変形例３＞
第１の実施形態では、一方の部品に対する他方の部品の組み付けが成功した状態に該当する複数の「一方の部品と他方の部品との間の相対的な位置姿勢」をユーザ操作により指定していた。しかし、逆に、一方の部品に対する他方の部品の組み付けが失敗した状態に該当する複数の「一方の部品と他方の部品との間の相対的な位置姿勢」をユーザ操作により指定しても良い。この場合に組み付け成功範囲決定部１３が生成する確率密度分布としてガウス分布を想定し、組み付け失敗となる相対位置姿勢の分布を求める。
【００２８】
このような分布を求めておけば、実際に組み付け元の部品と組み付け先の部品との間の相対的な位置姿勢が、ある位置姿勢Ｘとなった場合に、この位置姿勢Ｘが、組み付け成功に該当する位置姿勢であるのかを、この分布を用いて判断することができる。具体的には、分布において位置姿勢Ｘに対応する分布値が閾値未満であれば、位置姿勢Ｘは組み付け成功に該当する位置姿勢である、すなわち、組み付け元の部品と組み付け先の部品との組付けは成功であると判断することができる。
【００２９】
また、一方の部品に対する他方の部品の組み付けが成功した状態に該当する相対的な位置姿勢と、失敗した状態に該当する複数の相対的な位置姿勢と、をそれぞれ取得し、組み付け成否の判定に用いてもかまわない。
【００３０】
［第２の実施形態］
第１の実施形態やその変形例では、組み付けが成功状態にある部品間の相対的な位置及び／又は姿勢は、ユーザが操作部を用いて指定していた。本実施形態では、組み付けが成功状態にあるそれぞれの部品の撮像画像を用いて、部品間の相対的な位置及び／又は姿勢を取得する。
【００３１】
本実施形態に係る情報処理装置２の機能構成例について、図６のブロック図を用いて説明する。図６に示した構成は、拘束条件生成部１２が画像入力部２１及び相対位置姿勢計算部２２を有する点、画像入力部２１に２次元画像撮像装置２６及び距離画像撮像装置２７が接続されている点、で図１の構成と異なる。以下では、第１の実施形態との相違点について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとして説明する。
【００３２】
なお、これは第１の実施形態でも同様であるが、仮想物体のデータとしては、図７（ｂ）に示すような、３次元位置と３次元法線方向から構成される物体表面上の局所的な３次元平面情報（以後、局所面特徴と称する）と、図７（ａ）に示すような、３次元位置と３次元線分方向から構成される物体輪郭上の局所的な３次元線分情報（以後、局所線特徴と称し、単に幾何特徴と称した場合は、局所面特徴と局所線特徴の両方を指す）によって構成されるものを用いる。また、図２に示す如く、組み付け元の部品を表す仮想物体２９９において組み付け先の部品の仮想物体２９８と接触する箇所（斜線部分）１００の幾何特徴と、組み付け先の部品を表す仮想物体２９８において組み付け元の部品の仮想物体２９９と接触する箇所（斜線部分）２００の幾何特徴と、を参照可能に３次元形状モデル保持部１１に登録するようにしても構わない。
【００３３】
２次元画像撮像装置２６は、撮像レンズと、撮像素子と、を備えるカメラである。撮像レンズは、撮像対象を撮像素子上に結像させるよう構成された光学系である。撮像素子は、ＣＭＯＳセンサ、ＣＣＤセンサなどの各種光電変換素子である。撮像される画像はグレー画像でもカラー画像でもよいが、本実施形態では、グレー画像であるものとする。撮像レンズの焦点距離や主点位置、レンズ歪みパラメータなどの内部パラメータは、使用する機器の仕様を参照するか、または、［Ｒ．  Ｙ．  Ｔｓａｉ，  ”Ａ  ｖｅｒｓａｔｉｌｅ  ｃａｍｅｒａ  ｃａｌｉｂｒａｔｉｏｎ  ｔｅｃｈｎｉｑｕｅ  ｆｏｒ  ｈｉｇｈ−ａｃｃｕｒａｃｙ  ３Ｄ  ｍａｃｈｉｎｅ  ｖｉｓｉｏｎ  ｍｅｔｒｏｌｏｇｙ  ｕｓｉｎｇ  ｏｆｆ−ｔｈｅ−ｓｈｅｌｆ  ＴＶ  ｃａｍｅｒａｓ  ａｎｄ  ｌｅｎｓｅｓ，  ”  ＩＥＥＥ  Ｊｏｕｒｎａｌ  ｏｆ  Ｒｏｂｏｔｉｃｓ  ａｎｄ  Ａｕｔｏｍａｔｉｏｎ，  ｖｏｌ．ＲＡ−３，  ｎｏ．４，  １９８７．］で開示される方法によって事前にキャリブレーションしておく。
【００３４】
距離画像撮像装置２７は、計測対象である部品表面上の点の３次元情報を計測する。距離画像撮像装置２７として距離画像を出力する距離センサを用いる。距離画像は、各画素が奥行きの情報を持つ画像である。本実施形態では、距離センサとしては、波長の異なる色ＩＤを付与したマルチスリットラインを対象に照射し、その反射光をカメラで撮像して三角測量によって距離計測を行うワンショットアクティブ式のものを利用する。しかしながら、距離センサはこれに限るものではなく、光の飛行時間を利用するＴｉｍｅ−ｏｆ−ｆｌｉｇｈｔ方式であってもよい。また、ステレオカメラが撮影する画像から三角測量によって各画素の奥行きを計算するパッシブ式であってもよい。その他、距離画像を計測するものであれば如何なる装置を距離画像撮像装置２７に適用しても構わない。
【００３５】
なお、距離画像撮像装置２７の光軸と２次元画像撮像装置２６の光軸とは一致しており、２次元画像撮像装置２６が出力する濃淡画像の各画素と、距離画像撮像装置２７が出力する距離画像の各画素と、の対応関係は既知であるとする。しかしながら、濃淡画像と距離画像とが同一の視点であることは、条件によっては必須ではない。例えば、濃淡画像を撮像する撮像装置と距離画像を撮像する撮像装置とが別の位置姿勢にあり、濃淡画像と距離画像とをそれぞれ別の視点から撮像しても良い。この場合は、撮像装置間の相対的な位置姿勢は既知であることが必要であり、この相対的な位置姿勢を用いて距離画像中の３次元点群を濃淡画像上に投影することにより、濃淡画像上の各画素と距離画像上の各画素との対応を取る。同一の物体を撮像する撮像装置間の相対的な位置姿勢が既知であり、その画像間の対応が計算できる限り、撮像装置間の位置姿勢関係に特に制限はない。
【００３６】
画像入力部２１は、２次元画像撮像装置２６が撮像した撮像画像及び距離画像撮像装置２７が撮像した距離画像を、後段の相対位置姿勢計算部２２に対して転送する。２次元画像撮像装置２６及び距離画像撮像装置２７のそれぞれが動画像を撮像するのであれば、画像入力部２１は、２次元画像撮像装置２６が撮像した各フレームの撮像画像及び距離画像撮像装置２７が撮像した各フレームの距離画像を、後段の相対位置姿勢計算部２２に対して転送することになる。
【００３７】
相対位置姿勢計算部２２は、画像入力部２１から転送された撮像画像及び距離画像と、３次元形状モデル保持部１１から取得した組み付け元の部品の仮想物体のデータ及び組み付け先の部品の仮想物体のデータと、を用いて、仮想物体間の相対的な位置姿勢を求める。相対位置姿勢計算部２２が仮想物体間の相対的な位置姿勢を求めるために行う処理について詳細に説明する。
【００３８】
先ず、２次元画像撮像装置２６と距離画像撮像装置２７に対する組み付け元の部品と組み付け先の部品の位置及び姿勢の概略値を取得する。この概略値は、部品の置かれているおおよその位置や姿勢があらかじめわかっているものとして、その値を概略値として用いる。この概略値はユーザが操作部を用いて入力しても構わないし、この概略値が予め３次元形状モデル保持部１１に登録されている場合には、この概略値を３次元形状モデル保持部１１から取得すれば良い。すなわち、概略値の取得方法は特定の方法に限るものではない。
【００３９】
例えば、情報処理装置２が時間軸方向に連続して部品の位置及び姿勢の計測を行うものとして、前回（前時刻）の計測値を概略の位置及び姿勢として用いてもよい。また、過去の位置及び姿勢の計測をもとに部品の速度や角速度を時系列フィルタにより推定し、過去の位置及び姿勢と推定された速度・加速度から現在の位置及び姿勢を予測したものでもよい。また、様々な姿勢で撮像した部品の画像をテンプレートとして保持しておき、入力した画像に対してテンプレートマッチングを行うことによって、部品の大まかな位置と姿勢を推定してもよい。あるいは、他のセンサによる部品の位置及び姿勢の計測が可能である場合には、該センサによる出力値を位置及び姿勢の概略値として用いてもよい。センサは、例えばトランスミッタが発する磁界を部品に装着するレシーバで検出することにより位置及び姿勢を計測する磁気式センサであってもよい。また、部品上に配置されたマーカをシーンに固定されたカメラによって撮影することにより位置及び姿勢を計測する光学式センサであってもよい。その他、６自由度の位置及び姿勢を計測するセンサであれば如何なるセンサであってもよい。
【００４０】
次に、組み付け元の部品の概略位置姿勢と組み付け先の部品の概略位置姿勢と、に基づいて、距離画像中の３次元点群と、組み付け元の部品の仮想物体及び組み付け先の部品の仮想物体との対応付けを行う。それぞれの部品の概略位置姿勢と校正済みの距離画像撮像装置２７の内部パラメータを用いて、仮想物体を構成する各局所面特徴を距離画像上に投影する。そして、投影した各局所面特徴に対応する距離画像上の距離点を、各面に対応する３次元点として保持する。このとき、仮想物体同士が画像上で重なりオクルージョンが発生している場合は、オクルージョン領域の推定を行い、オクルージョン領域における対応付けを抑制しても良い。具体的には、それぞれの仮想物体に対応する部品の概略位置姿勢に基づいて、仮想物体間の相対的な位置姿勢を求め、撮像装置に対する仮想物体間の前後判定を行う。これにより、大まかにオクルージョン領域を推定し、オクルージョンが発生している領域では仮想物体と画像との対応付けを抑制することで処理を行う。
【００４１】
次に、濃淡画像上のエッジと仮想物体との対応付けを行う。それぞれの仮想物体の概略位置姿勢と校正済みの２次元画像撮像装置２６の内部パラメータを用いて仮想物体を構成する局所線特徴を画像へ投影し、画像上で検出されたエッジと仮想物体中の局所線特徴とを対応付けする。エッジが各局所線特徴に対応して複数検出された場合には、複数検出されたエッジのうち、投影された局所線特徴に対して画像上で最も近いエッジを対応付ける。
【００４２】
次に、検出した仮想物体中の各線分に対応する濃淡画像上のエッジと、算出した仮想物体中の各面に対応する距離画像中の３次元点との対応データに基づいて、組み付け先の部品および組み付け元の部品の位置及び姿勢を算出する。本ステップでは、算出した対応データに基づいて、計測データと仮想物体との間の誤差が最小になるように、線形連立方程式を解くことで、位置姿勢の更新を行う。
【００４３】
ここで、画像上の距離と３次元空間中での距離は尺度が異なるため、単純に連立方程式を解くだけでは計測データのどちらか一方に寄与率が偏ってしまう可能性がある。そのため、本実施形態では、[立野，小竹，内山，“ビンピッキングのための距離・濃淡画像を最ゆうに統合する高精度高安定なモデルフィッティング手法，”電子情報通信学会論文誌Ｄ， 情報・システム Ｊ９４-Ｄ（８）， １４１０−１４２２， ２０１１．]に示すような最尤推定に基づく最適化を行うことで、尺度を合わせた位置姿勢推定を行う。最尤推定に基づく位置姿勢推定方法に関しては、周知であるため、詳細な説明は省略する。詳細は上述の文献を参照されたい。なお、計測対象物体の位置及び姿勢の算出方法は、上述の最尤推定に基づく手法に限るものでなく、例えば、Ｌｅｖｅｎｂｅｒｇ‐Ｍａｒｑｕａｒｄｔ法による繰り返し演算を行っても良いし、よりシンプルな方法である最急降下法によって行ってもよい。また、共役勾配法やＩＣＣＧ法など、他の非線形最適化計算手法を用いてもよい。また、最適化計算ベースの位置姿勢算出以外にも、概略の位置及び姿勢を中心に一定範囲において６自由度の値が網羅的にカバーできるように多数の位置及び姿勢を生成し、それぞれの位置及び姿勢において観測できる幾何特徴と濃淡画像及び距離画像とのマッチング具合を評価することで、位置姿勢の推定を行っても良い。
【００４４】
次に、更新した位置姿勢が、収束しているか否か、すなわち、さらに反復計算を必要とするか否かの判定を行う。具体的には、補正値がほぼ０である場合や、誤差ベクトルの二乗和の補正前と補正後の差がほぼ０である場合に収束したと判定する。収束していなければ、更新した位置姿勢を用いて、再度位置姿勢算出処理を行う。収束していると判断した場合は、撮像装置と計測対象物体間の相対的な位置姿勢の最終的な推定値が決定される。
【００４５】
このようにして拘束条件生成部１２は、組み付け元の部品の位置姿勢と、組み付け先の部品の位置姿勢と、を求めることができるので、求めたこれらの位置姿勢を用いて、仮想物体間の相対的な位置姿勢を求める。この求めた位置姿勢は、即ち、組み付けが成功状態にある部品間の相対的な位置姿勢である。
【００４６】
本実施形態に係る情報処理装置２が部品組み付けの成否判定条件を生成するために行う処理では、ステップＳ１０００において拘束条件生成部１２は上記の処理を行うことで、仮想物体間の相対的な位置姿勢を求める。ステップＳ１１００では、第１の実施形態と同様の処理を行う。
【００４７】
なお、本実施形態では、２次元画像撮像装置２６による撮像画像と、距離画像撮像装置２７による距離画像と、の両方を用いて仮想物体間の相対的な位置姿勢を求めていたが、何れか一方のみを用いて仮想物体間の相対的な位置姿勢を求めても構わない。
【００４８】
このように、本実施形態によれば、操作者による上記の作業を行うことなく、あそびがある部品であっても、組み付け成否判定を可能にするための情報を生成することができる。
【００４９】
［第３の実施形態］
本実施形態では、拘束条件生成部１２は、仮想物体間で取り得る相対位置姿勢のうち、仮想物体間で干渉が生じない相対位置姿勢を取得する。本実施形態に係る情報処理装置３の機能構成例について、図８のブロック図を用いて説明する。図８に示した構成は、拘束条件生成部１２が相対位置姿勢設定部３１及び部品干渉判定部３２を有する点で図１の構成と異なる。以下では、第１の実施形態との相違点について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとして説明する。
【００５０】
相対位置姿勢設定部３１は、第１の実施形態と同様にして、ユーザにより指定された仮想物体間の相対位置姿勢を複数個取得する。
【００５１】
部品干渉判定部３２は、相対位置姿勢設定部３１が取得したそれぞれの相対位置姿勢について、該相対位置姿勢を有する仮想物体間に干渉が生じているか否かを判断する。仮想物体間に干渉が生じているか否かを判断する処理は、一般にテレビゲームの分野でもキャラクタ同士の干渉判定を行っていることから周知であるので、この処理に係る説明は省略する。そして部品干渉判定部３２は、相対位置姿勢設定部３１が取得したそれぞれの相対位置姿勢のうち、仮想物体間に干渉が生じない相対位置姿勢を選択して組み付け成功範囲決定部１３に対して出力する。これにより組み付け成功範囲決定部１３は、ユーザにより指定された仮想物体間の相対位置姿勢のうち仮想物体間に干渉が生じない相対位置姿勢に基づく確率密度分布を生成することになる。
【００５２】
このように、本実施形態によれば、ユーザによって指定された相対位置姿勢のうち、仮想物体間に干渉が生じない相対位置姿勢を組み付け成功範囲決定部１３に送出するので、より厳密に組み付け成否判定を可能にするための情報を生成することができる。
【００５３】
＜変形例１＞
第３の実施形態では、ユーザによって指定された相対位置姿勢に対して干渉判定を行っていたが、他の方法でもって取得した相対位置姿勢に対して干渉判定を行っても良い。例えば、シミュレーションによって様々な相対位置姿勢を発生させ、該発生させたそれぞれの相対位置姿勢について上記の干渉判定を行っても良い。これによって、ユーザによる指定を行わずとも、成否判定を可能にするための情報を生成することができる。
【００５４】
［第４の実施形態］
本実施形態では、第１〜３の実施形態やそれらの変形例で組み付け成功範囲決定部１３によって得られた確率密度分布内のそれぞれの相対位置姿勢について、該相対位置姿勢にある仮想物体の位置関係をユーザに視認させる。本実施形態に係る情報処理装置４の機能構成例について、図９のブロック図を用いて説明する。図９に示した構成は、図１の構成に、組み付け成功確認部４１を加えたものである。以下では、第１の実施形態との相違点について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとして説明する。
【００５５】
組み付け成功確認部４１は、図１１に示す如く、拘束条件生成部１２が確率密度分布作成用に取得した相対位置姿勢をプロットした画面（図１１では説明を簡単にするために位置姿勢はｘ，ｙの２パラメータで表している）を表示装置に表示させる。なお、表示範囲は、組み付け成功範囲決定部１３が生成した確率密度分布において、拘束条件生成部１２が確率密度分布作成用に取得した相対位置姿勢を含む範囲であり、この範囲を複数の矩形領域に分割して表示している。なお、分割パターンは図１１のような均等に分割するパターンに限るものではなく、設定した位置姿勢の個数だけランダムに提示し、ユーザに確認させてもよい。
【００５６】
ユーザが操作部を用いて、複数の矩形領域のうち１つを指定すると、組み付け成功確認部４１は、この指定された矩形領域の中心位置（例えば図中の三角形）に対応する相対位置姿勢を特定し、該相対位置姿勢を有する２つの仮想物体を表示装置に表示させる。これにより、ユーザは、確率密度分布内のそれぞれの矩形領域に対応する仮想物体間の相対的な位置姿勢関係を視認することができる。
【００５７】
なお、指定対象は矩形領域に限るものではなく、プロットした点（相対位置姿勢）を指定できるようにしてもよい。その場合、指定された点に対応する相対位置姿勢を有する２つの仮想物体を表示装置に表示させることになる。
【００５８】
［第５の実施形態］
本実施形態では、ユーザは、組み付け成功確認部４１が表示装置に表示させた上記画面中のそれぞれのプロット点を指定したりして、該プロット点に対応する相対位置姿勢が組み付け成功に該当する相対位置姿勢であるのかを確認する。確認方法はこれに限らない。そしてユーザが該プロット点に対応する相対位置姿勢が組み付け成功に該当していないと判断した場合には、該プロット点は対象外である旨を操作部を用いて指定する。指定したプロット点は表示形態を変更しても構わないし、非表示にしても構わない。この指定により、現在の確率密度分布において、指定されたプロット点に対応する相対位置姿勢に対応する確率密度を０にすることで、該確率密度分布を更新する。
【００５９】
本実施形態に係る情報処理装置５の機能構成例について、図１０のブロック図を用いて説明する。図１０に示した構成は、図９の情報処理装置４に、組み付け判定部５１及び組み付け成功範囲変更部５２を加えたものである。以下では、第４の実施形態との相違点について重点的に説明し、以下で特に触れない限りは第４の実施形態と同様であるものとして説明する。
【００６０】
組み付け判定部５１は、プロット点に対する対象外指定を、操作部を介して受け付ける。組み付け成功範囲変更部５２は、現在の確率密度分布において、対象外として指定されたプロット点に対応する相対位置姿勢に対応する確率密度を０にすることで、該確率密度分布を更新する。
【００６１】
このように、本実施形態によれば、拘束条件生成部１２が生成した相対位置姿勢が、組み付け成功に該当する相対位置姿勢であるのかをユーザが判断し、その判断結果を、部品組み付けの成否判定条件に反映させることができる。然るに、より正確に組み付け成功範囲を決定することができる。
【００６２】
［第６の実施形態］
本実施形態では、組み付け成功範囲を求めた後に組み付け成功判定を伴う処理を実行し、その判定結果に応じて組み付け成功範囲を更新する。以下では、ロボットアームによって部品の組み付け作業を行い、該組み付け作業による組み付け成功判定の結果に応じて、組み付け成功範囲を更新する。本実施形態に係る情報処理装置６の機能構成例を図１２に示す。また、本実施形態に係るシステムの外観例を図１３に示す。図１２，１３において既出の参照番号が示すものは以下で特に触れない限りは、既出の説明の通りである。
【００６３】
ロボット９０は、ロボットコントローラ８０により制御され、指令された位置にアームの手先を移動させ、物体の把持・組み付け処理などを行う。組み付け済み部品７０は、組み付け元の部品と組み付け先の部品により構成される。２次元画像撮像装置２６及び距離画像撮像装置２７は、ロボット９０のアームの手先等の被計測物体（本実施形態の場合は組み付け済み部品７０）を撮像できる位置に設置されている。
【００６４】
ランタイム相対位置姿勢算出部６１は、相対位置姿勢計算部２２と同様にして、画像入力部２１から転送された撮像画像及び距離画像と、３次元形状モデル保持部１１から取得した組み付け元の部品の仮想物体のデータ及び組み付け先の部品の仮想物体のデータと、を用いて、仮想物体間の相対的な位置姿勢を求める。
【００６５】
より詳しくは、ランタイム相対位置姿勢算出部６１は、図２に示すような箇所（斜線部分）１００に属する局所面特徴と、箇所（斜線部分）２００に属する局所面特徴と、の間で最近傍となるペアの算出を行う。法線付き３次元点間の最近傍対応付けの方法としては、例えば、[大石岳史，中澤篤志，池内克史， ”インデックス画像を用いた複数距離画像の高速同時位置あわせ、” 電子情報通信学会論文誌， Ｖｏｌ．Ｊ８９−Ｄ Ｎｏ．３， ｐｐ．５１３−５２１，Ｍａｒ．２００６．]等の距離画像位置合わせにおける対応付け方法を用いればよい。そして、ランタイム相対位置姿勢算出部６１は、ペアとなった局所面特徴間の相対位置姿勢を算出する。なお、ここでは、組み付けの一部に着目して相対位置姿勢を求めていたが、部品全体に対してモデルフィッティングを行い、相対位置姿勢を推定し、その値を用いてもよい。
【００６６】
ロボット９０が部品組み付けを終えた後、ランタイム組み付け判定部６２は、この組み付けが成功しているか否かをユーザに問い合わせるための画面を表示装置に表示する。ユーザは組み付け済み部品７０を視認し、該組み付け済み部品７０における組み付けが成功しているか否かの判断結果を操作部を用いて入力するので、ランタイム組み付け判定部６２は、この判断結果を取得する。なお、ランタイム組み付け判定部６２が、組み付け済み部品７０における組み付けが成功しているか否かを示す情報を取得する方法はこれに限るものではなく、例えば、ロボットの圧力センサなどで異常な圧力値を示した時に失敗と判定させてもよい。ランタイム組み付け判定部６２は、組み付け済み部品７０における組み付けが失敗したか否かを示す情報（操作部を介してユーザが入力）と、この時点でランタイム相対位置姿勢算出部６１が求めた相対位置姿勢と、を組み付け成功範囲変更部５２に対して送出する。
【００６７】
組み付け成功範囲変更部５２は、ランタイム組み付け判定部６２から受けた「組み付け済み部品７０における組み付けが失敗したか否かを示す情報」が「失敗した」ことを示す場合には、現在の確率密度分布において、該情報と共にランタイム組み付け判定部６２から受けた相対位置姿勢に対応する確率密度を０にすることで、該確率密度分布を更新する。なお、組み付け成功範囲変更部５２は、ランタイム組み付け判定部６２から受けた「組み付け済み部品７０における組み付けが失敗したか否かを示す情報」が「成功した」ことを示す場合には、現在の確率密度分布において、該情報と共にランタイム組み付け判定部６２から受けた相対位置姿勢に対応する確率密度を規定量だけ上げるようにしても構わない。
【００６８】
このように、本実施形態によれば、組み付け時における相対位置姿勢及びその成否判定をフィードバックすることによって、より正確に組み付け成功範囲を決定することができる。なお、以上説明した実施形態や変形例はその一部若しくは全部を適宜組み合わせて用いても構わない。
【００６９】
［第７の実施形態］
図１，６，８，９，１０，１２に示した情報処理装置内の各機能部はハードウェアで構成しても構わないが、ソフトウェア（コンピュータプログラム）で構成しても構わない。この場合、このコンピュータプログラムを保持するメモリと、該コンピュータプログラムを実行する実行部と、を有するコンピュータであれば、上記の各実施形態や変形例で説明した情報処理装置に適用することができる。なお、上記の説明において操作部として説明したものは、マウスやキーボードなどのユーザインターフェースを用いて構成することができるし、表示装置として説明したものは、ＣＲＴや液晶画面などを用いて構成することができる。
【００７０】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015178138.tif 000003
【図２】
2015178138.tif 000004
【図３】
2015178138.tif 000005
【図４】
2015178138.tif 000006
【図５】
2015178138.tif 000007
【図６】
2015178138.tif 000008
【図７】
2015178138.tif 000009
【図８】
2015178138.tif 000010
【図９】
2015178138.tif 000011
【図１０】
2015178138.tif 000012
【図１１】
2015178138.tif 000013
【図１２】
2015178138.tif 000014
【図１３】
2015178138.tif 000015