被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得手段と、前記センシングデータに基づいて前記組付け対象部品の位置または姿勢の少なくとも一方を部品位置姿勢として検出する検出手段と、前記部品位置姿勢と前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定手段と、前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方を、ハンド位置姿勢候補として算出する算出手段と、前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて、前記ハンド機構による把持動作のための教示データ候補として生成する生成手段と、を備えることを特徴とする情報処理装置。前記設定手段は、前記センシングデータから抽出可能な部分を、前記把持部位候補として設定することを特徴とする請求項1に記載の情報処理装置。前記組付け対象部品の形状データに対応付けて予め定められた把持部位の候補情報を保持する把持部位情報保持手段をさらに備え、前記設定手段は、前記検出手段により検出された前記部品位置姿勢と、前記把持部位情報保持手段に保持されている前記候補情報とに基づいて、前記把持部位候補を設定することを特徴とする請求項1または2に記載の情報処理装置。前記算出手段は、前記把持部位候補を把持可能な前記ハンド機構と前記組付け対象部品との相対的な把持姿勢を算出し、前記教示データ候補は、前記相対的な把持姿勢の情報をさらに含むことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。前記教示データ候補は、前記センシングデータを、組み付け目標状態を教示するためのデータとしてさらに含むことを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。前記ハンド機構および当該ハンド機構と接続されたロボットアームの駆動を制御する制御手段と、前記ハンド機構および前記ロボットアームの駆動時に、前記被組付け部品または作業環境との間で干渉が発生したことを検知する干渉検知手段と、前記制御手段が前記教示データ候補に基づいて前記ハンド機構および前記ロボットアームの駆動を制御して、前記被組付け部品の所定位置へ組付けられた状態の前記組付け対象部品を把持させる際に、前記干渉検知手段により前記干渉の発生が検知されなかった場合の前記教示データ候補を、教示データとして決定する決定手段と、をさらに備えることを特徴とする請求項1乃至5の何れか1項に記載の情報処理装置。前記算出手段は、前記ロボットアームおよび前記ハンド機構の形状データ、前記被組付け部品の形状データ、前記組付け対象部品の形状データに基づいて、各形状データに重なりが生じるか否かを判定することにより、組付け時に干渉が生じないハンド位置姿勢候補を算出することを特徴とする請求項6に記載の情報処理装置。前記制御手段は、前記算出手段により算出された前記ハンド位置姿勢候補と合致するように、前記ロボットアームおよび前記ハンド機構を駆動して前記被組付け部品の所定位置へ組付けられた状態の前記組付け対象部品を把持させた後に、前記組付け対象部品を部品供給トレイへ戻すように動作させ、前記教示データ候補は、前記組付け対象部品を前記部品供給トレイへ戻す動作における、前記ロボットアームおよび前記ハンド機構の位置姿勢の時系列変化を示す情報をさらに含むことを特徴とする請求項6または7に記載の情報処理装置。ユーザの操作を受け付ける操作受付手段をさらに備え、前記制御手段により前記組付け対象部品を前記部品供給トレイへ戻す動作は、前記ユーザの操作により実行されることを特徴とする請求項8に記載の情報処理装置。前記センシングデータは、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域の画像データであることを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。前記センシングデータは、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域の距離情報であることを特徴とする請求項1乃至9の何れか1項に記載の情報処理装置。取得手段と、検出手段と、設定手段と、算出手段と、生成手段とを備える情報処理装置の制御方法であって、前記取得手段が、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得工程と、前記検出手段が、前記センシングデータに基づいて前記組付け対象部品の位置または姿勢の少なくとも一方を部品位置姿勢として検出する検出工程と、前記設定手段が、前記部品位置姿勢と前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定工程と、前記算出手段が、前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方を、ハンド位置姿勢候補として算出する算出工程と、前記生成手段が、前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて、前記ハンド機構による把持動作のための教示データ候補として生成する生成工程と、を有することを特徴とする情報処理装置の制御方法。請求項12に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。しかしながら、上述の従来技術には以下に示すような課題がある。すなわち、特許文献1に開示される技術では、教示操作を行うユーザが2回の目標位置指定を行う必要がある。また、対象物に対する把持姿勢や移動後の目標姿勢については、これだけでは教示することができない。特許文献2に開示される技術では、第2部品の組付け部を模した模擬部品が目標位置に対応する位置に設けられた実工程では不要な部材を含むマスタ部品を、教示のためだけに用意する必要がある。また、組付け時の偏差を計算して修正するためのものであり、第2部品の把持位置を教示することはできない。特許文献3に開示される技術は、中子の把持はステレオカメラを用いたマッチングにより行っている。つまり中子に対する把持部位や把持姿勢は予めなんらかの方法で決めておく必要があり、当該技術を用いて教示するものではない。上記の課題に鑑み、本発明は、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことを目的とする。上記の目的を達成する本発明に係る情報処理装置は、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得手段と、前記センシングデータに基づいて前記組付け対象部品の位置または姿勢の少なくとも一方を部品位置姿勢として検出する検出手段と、前記部品位置姿勢と前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定手段と、前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方をハンド位置姿勢候補として算出する算出手段と、前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて教示データ候補として生成する生成手段と、を備えることを特徴とする。本発明によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことができる。第1実施形態図1は、第1実施形態に係る組立ロボットシステムの構成を示す図である。組立ロボットシステム10は、ロボットアーム101と、ハンド機構102と、カメラ装置103と、コントローラ106とを備える。ハンド機構102は、ロボットアーム101のエンドエフェクタであり、組付け対象部品104を把持するために用いられる。部品供給トレイ105には、組付け対象部品104が山積み状態で積載されている。なお、図1のように山積み状態で部品供給されなくてもよい。例えばパレット等の上に一定の向きに整列された状態で部品供給されてもよく、部品供給の方法は本発明において限定されるものではない。被組付け部品116は、組付け対象部品104が組み付けられる対象となる部品である。図1の例では、既に組付け対象部品104が所定位置に組付けられた状態が示されている。カメラ装置103は、部品供給トレイ105や被組付け部品116、ハンド機構102を含む作業環境の状態を取得するセンシング機能を有する。カメラ装置103は、作業環境内の非可動部に固定的に設置された固定センシング部の一例であり、作業環境を撮影し画像データ等をセンシングデータとして取得する。なお、カメラ装置103は、二次元輝度画像情報を得るための単眼カメラであってもよいし、距離情報を得るためのステレオカメラやTOFセンサ、レーザーレンジファインダのような測距センサであってもよく、本発明において限定されるものではない。コントローラ106は、組立ロボットシステムが備える、ロボットアーム101やハンド機構102、カメラ装置103の動作を制御する。また、組付け動作を教示するための情報処理装置として機能する。なお、本発明においける組み立てロボットシステムにおいてカメラ装置103はシステムに含まれずシステムの外部に存在してもよい。コントローラ106は、カメラ制御部107と、部品位置姿勢検出処理部108と、部品データ格納部109と、組付け対象部品設定部110と、ロボット制御部111と、ハンド位置姿勢候補算出部112と、教示データ生成部113と、教示データ格納部114と、干渉検知部115とを備える。カメラ制御部107は、カメラ装置103の撮影制御を行う。また、カメラ制御部107は、センシングデータを入力する機能も有し、カメラ装置103が撮影した画像データ等をセンシングデータとしてコントローラ106内に入力する。部品位置姿勢検出処理部108は、入力されたセンシングデータをスキャンして、組付け対象部品104が存在する位置姿勢を検出する。カメラ装置103は、作業環境内における位置関係と合致するように予めキャリブレーションされているので、センシングデータから検出された部品の位置姿勢は、実作業空間上の位置姿勢情報へと変換可能である。部品データ格納部109は、検出処理のために用いられる組付け対象部品104の形状特徴や寸法等のデータを格納する。なお、ロボットシステムによっては、例えば、組付け対象部品104は常に一定の姿勢で供給され、ハンド機構102による把持後は3次元的な平行移動のみで被組付け部品116の所定位置へと組付けられるような場合、組付け対象部品104の位置のみを検出するようにすることもできる。或いは、部品供給位置や組付け位置は一定であるが姿勢のみが不明であるような場合は、姿勢のみを検出するようにすることも可能であり、ロボットシステムに応じて位置と姿勢のどちらか一方のみ検出すればよい場合もあり得る。また、部品位置姿勢検出処理部108は、教示動作時にも用いられる。カメラ装置103から入力されるセンシングデータには被組付け部品116に組付けられた状態の組付け対象部品104の情報が含まれる。このセンシングデータに対して同様の処理を行い、組付けられた状態にある組付け対象部品104の位置姿勢を検出する。さらに、検出された位置姿勢情報と部品データ格納部109に保持されている部品の形状情報とに基づき、当該部品の把持位置の候補を設定する。組付け対象部品設定部110は、カメラ装置103により撮影された部品供給トレイ105を含む領域のセンシングデータを、部品位置姿勢検出処理部108で処理した結果に基づいて、組付け対象として把持する候補の部品を選択し、その把持位置とハンドの把持姿勢とを設定する。このとき教示データ格納部114に格納されている、組付け対象部品104の把持位置情報と対応する把持姿勢を参照する。組付け対象とする部品の選択方法は特に問わないが、本実施形態のように山積みで供給される場合は、例えば最も上部にあって把持位置が隠されていない部品や、部品位置姿勢検出処理部108による検出信頼度が高い部品を選択する方法が考えられる。ロボット制御部111は、設定された把持位置とハンドの把持姿勢の情報に基づき、ロボットアーム101およびハンド機構102を制御して、選択された組付け対象部品104の把持動作を行わせる。そして把持後に、教示データ格納部114に保持されている組付け動作教示データを参照し、組付け対象部品104を被組付け部品116の所定位置へと組付ける動作を行わせる。なお、この組付け動作教示データには、組付け目標位置と組付け完了時のハンド位置姿勢情報を含んでおり、ロボット制御部111はハンド機構102がこの位置姿勢状態となるように動作計画を立ててロボットアーム101を駆動する。ハンド位置姿勢候補算出部112は、教示動作時に、部品位置姿勢検出処理部108により設定された把持位置の候補各々に対し、これを把持することのできるハンド機構102の位置姿勢すなわち組付け完了状態の候補を算出する。教示データ生成部113は、ハンド位置姿勢候補算出部112により算出されたハンド機構の位置姿勢の候補を、目標状態として、ロボット制御部111に設定する。ロボット制御部111は当該目標状態となるようにロボットアーム101とハンド機構102とを駆動制御する。駆動した結果、干渉等が発生せず目標状態となったら、当該目標状態は、組付け教示データの一つとして、教示データを保持する教示データ格納部114に格納される。ロボットアーム101或いはハンド機構102の駆動時に、被組付け部品116や作業環境等に、ロボットアーム101、ハンド機構102、あるいは組付け対象部品104が衝突すると、ロボットアーム101およびハンド機構102に備えられた不図示の力覚センサは異常値を出力する。干渉検知部115は、ロボット制御部111を介してこれらの力覚センサの出力値を監視しており、異常値を検知すると干渉が発生したもの判断して教示データ生成部113へ通知する。ここで、部品位置姿勢検出処理部108は、対象物の位置を検出すると共に姿勢をクラス分けするクラス分類器である。各クラスに対応する姿勢を代表姿勢と称し、測地ドームと面内回転を組み合わせて定義する。ここで測地ドームとは、正多面体の各頂点や面素の中心点、或いは、各三角形面素を再帰的に同一面積の三角形に分割してそれらの頂点を用いることで、球面を均一に離散化表現する公知の手法である。図2は、正二十面体を基本とする測地ドームの例を示している。正二十面体の中心点に、所定姿勢の対象物の重心点が一致するように配置し、例えば、各頂点と各三角形面素の中心点を視点として見た対象物の見え方を代表姿勢の定義とする。各視点からの視線は、対象物の中心点すなわち正二十面体の重心点で交差する。正二十面体においては頂点の数は16、面素の数は20であるので、正二十面体をそのまま用いた測地ドームでは、計36の視点からの代表姿勢が定義可能である。しかしながら、通常これだけの粒度では、把持を行うのに十分な精度とはならないため、本実施形態では、各面素の辺をさらに2分割している。すると正二十面体の各正三角形面素は、正三角形面素203に示すように4つの同一面積の小正三角形で構成されることになる。ここで視点201は、元の正二十面体の頂点と面素中央点とで定義された計4点の視点を表し、視点202は、小三角形に分割することにより増えた6点の視点を表している。面中心点の数は分割前の元の三角形面素の数20面の4倍、頂点の数は元の正二十面体の辺の数分=34本増えることになるので、この分割により163420×4=130通りの視点からの代表姿勢を定義することができる。画像群206は、面内回転の例を示している。画像205は、視点204から取得した部品の画像であって、これを所定角度ずつ回転させることにより、画像群206示すような複数の代表姿勢を得ることができる。本実施形態においては、面内回転を10度ずつで定義するものとする。すなわち上述の130の各視点に対し36通りの面内回転パターンが存在することになるので、130×36=4680通りの代表姿勢が定義される。ここで視点とは、すなわちカメラ装置103であるので、代表姿勢とはカメラ装置103により取得される個々の対象物の画像のバリエーションに対応する。部品データ格納部109は、予め、部品の姿勢を変化させて撮影した全ての代表姿勢の画像データに基づく照合データを保持している。図3a-eは、各代表姿勢の画像データの例を示す。図3fは、所定位置に配置された被組付け部品116をカメラ装置103で撮影して取得した画像データの一例を示している。そして図3gは、この被組付け部品116に、組付け対象部品104を組み付けた状態の画像データの一例を示している。カメラ装置103から観察した組付けられた状態の組付け対象部品104の姿勢は、図3cに示される例と一致するが、一部分が被組付け部品116に隠され見えなくなっている。本実施形態においては、部品位置姿勢検出処理部108は、所謂テンプレートマッチング処理に基づいて、カメラ装置103を基準とする座標系であるカメラ座標系における各組付け対象部品104の位置姿勢を検出する。従って、部品データ格納部109は、4680通りの代表姿勢クラスに対応する照合データテンプレートを全て保持している。しかしながら、テンプレート全てを保持せずに、各視点から0°回転の130通りのテンプレートのみを保持しておき、面内回転分については照合の都度、回転処理により生成するようにすることで、保持するデータ量を削減するように構成してもよい。ここで、カメラ座標系における組付け対象部品104の基準点物体中心等の位置を、カメラ座標系の原点からの平行移動ベクトルPwとして表す。これが検出された組付け対象部品104の位置情報に相当する。カメラから見た奥行き方向の位置は、検出された部品の画像中の大きさに基づいて推定するか、若しくは、別途レンジファインダのような測距センサを用いてより正確に推定するようにしてもよい。そして、いずれの代表姿勢クラスのテンプレートに最も合致するかを判定し、対象物の姿勢を推定する。ここで対象物の姿勢は、カメラ座標系における部品座標系3軸の方向ベクトルの組による姿勢行列EW=[eWX、eWY、eWZ]で表すことができる。eWX、eWY、eWZは、組付け対象部品に基準位置からそれぞれ3方向に直交して固定された、長さ1の単位列ベクトルである。すなわち、各代表姿勢には、それぞれ固有の姿勢行列EWが対応付けられている。また、ハンド機構102により把持すべき部品の位置把持部位は、組付けに適した位置である必要がある。つまり組付け完了状態となったときに把持可能である部位である必要があるので、図3gの組付け完了状態において被組付け部品116に隠されずに見えている部位が候補となる。把持部位の具体的な設定方法に関しては後述する。組付け対象部品104の把持部位を把持した状態は、ハンド機構102を基準とするハンド座標系における組付け対象部品の中心位置Phおよび姿勢行列Ehにより定義できる。これがハンドと部品との相対的な把持姿勢を表すパラメータとなる。なお、ハンド座標系の原点は把持を行う二指の把持点の中心すなわち把持中心であり、3軸の方向は所定方向に固定されているものとする。ロボット制御部111は、把持しようとする組付け対象部品104のカメラ座標系における中心位置Pwおよび姿勢EWが、ハンド座標系における中心位置Phおよび姿勢Ehと一致するように、ロボットアーム101の各関節やハンド機構102に対する把持動作計画および制御を行う。ロボットアームの可動関節によって区切られる軸リンクの各々には、それぞれ個別の座標系3軸が固定されており、ハンド座標系を含めて連結する2つのリンクは互いの座標系で相互に位置と姿勢を表すことができる。すなわちハンドからリンクを順次辿って座標変換していくと、最終的に作業環境に固定された3軸の座標系で位置姿勢を表すことができる。本実施形態では、この座標系をロボットの固定位置を基準とするロボット座標系とする。なお、連結する2つのリンクの可能な回転方向は、関節によって決まっている。ロボット制御部111はリンク間の回転自由度等の連結関係を表すロボットモデルを保持しており、動作計画を立てて制御を行う。ここで、図4および図5を参照して、本実施形態に係る部品位置姿勢検出処理部108で行われるテンプレートマッチング処理による位置姿勢検出手法を説明する。図4aはテンプレートの一例を示している。このテンプレートは、カメラ装置103から見て、図3cに一致する姿勢の組付け対象部品104を検出するためのテンプレートである。他の姿勢のテンプレートについてはここでは図示しないが、以下同様に処理を行う。図4bは、画像400をスキャン処理して、テンプレートマッチングによる位置姿勢検出処理を行う様子を示している。画像400は、組付け対象部品104が所定位置に組付けられた状態の被組付け部品116を含む領域を、カメラ装置103で撮影した画像データの一例である。切り出しウィンドウ401は、画像400上に設定されたテンプレートと同サイズのウィンドウを示す。切り出しウィンドウ401は、画像全域若しくは、部品の存在することが予め分かっている範囲を、隈なくスキャンする。切り出しウィンドウ401により切り出された矩形領域の部分画像は、テンプレートと相関演算され、最も相関の高くなる位置にテンプレートに対応する代表姿勢の部品が有るものと判別する。本処理を行う際に組付け状態のカメラ装置103視点での姿勢が分かっていない場合は、複数の代表姿勢に対応するテンプレートを順次用いて、同様の処理を行う。そして、各位置において所定閾値以上の相関を示すテンプレートが複数ある場合は、最も相関の高いテンプレートに対応する代表姿勢を部品の姿勢であるものとして判別する。また、検出された部品の大きさに基づき部品までの距離を推定する場合は、テンプレートを所定範囲で変倍し、最も合致した大きさのテンプレートに対応する距離に部品があるものとして判別する。その他の例として、カメラ装置103をステレオカメラとし、撮影したステレオ画像を用いて2枚の画像から検出された部品の位置を対応付けて三角測量の原理により距離を推定してもよいし、別途レンジファインダ等を併用してもよい。さらに、用いるテンプレートを輝度画像そのままとするのではなく、所定のエッジ抽出等の前処理を行い、画像400に対しても同様の処理を行ってからスキャンを行うようにしてもよい。これにより不要なノイズ等の情報が除去され、検出精度の向上が期待できる。なお、図4bから明らかなように、所定位置に組付けられた状態では、組付け対象部品104は、全体が画像データに写っている訳ではない。従って部品供給位置等にある全体が写った組付け対象部品104を検出する場合に比べ、テンプレートとの一致度を測る閾値を下げて検出処理を行う必要がある。本実施形態では以上のテンプレートマッチングに基づく部品位置姿勢検出処理を適用しているが、本発明はこれに限定されるものではない。例えば局所マッチング結果を投票して位置姿勢検出するようなハフ変換をベースとする検出処理であっても、本発明を適用可能である。次に、図5のフローチャートを参照して、本実施形態の組立ロボットシステムで行われる組付け動作を教示するための教示処理の手順を説明する。本教示処理では、組付けに適したハンド把持姿勢を、組付け対象部品104の把持部位と対応付けた教示データとして生成し、組付け動作時に使用できるように保持する。本教示処理は、ユーザが予め組付け対象部品を被組付け部品に組付け、所定位置に配置した状態で開始する。この所定位置は、ロボットが組付け動作を行う際に、被組付け部品を配置する位置と同位置である。ステップS501において、カメラ装置103は、被組付け部品116に組付けられた状態の組付け対象部品104を含む領域を撮影して画像データを取得する。ステップS502において、部品位置姿勢検出処理部108は、取得された画像データにおける組付け対象部品104の位置姿勢を検出する。この処理では、前述したようにテンプレートマッチング処理に基づいてカメラ視点からの各姿勢クラスの部品の検出を行う。ステップS503において、部品位置姿勢検出処理部108は、検出結果と部品データ格納部109に格納されている部品の形状モデルデータとのフィッティング処理を行う。図7を参照してこのフィッティング処理の様子を説明する。ステップS502で取得された代表姿勢と画像データ中の位置情報とに基づいて、形状モデルデータから計算されるカメラ視点での部品の理想的なフレームデータ図7aの点線701を初期状態として画像中に配置する。また、画像データには前処理として予めエッジ抽出処理をかけておく。そして、フレームデータの各エッジが、画像中のエッジと最も一致する位置を探索し、探索した位置をカメラ座標系における正確な部品の位置として算出する図7bにおいて点線701と部品とのずれが解消。なお、センシングデータが距離画像である場合は、同様の探索をエッジではなく面に対して行うことができる。フィッティング処理により得られる部品の位置情報は、上述したカメラ座標系における組付け対象部品の基準点の原点からの位置ベクトルPwであり、姿勢情報は姿勢行列EWとして表される。カメラ装置は作業空間に対してキャリブレーションされているので、これを作業空間に固定された座標系本実施形態ではロボット座標系に変換するのは容易である。ステップS504において、部品位置姿勢検出処理部108は、組付け対象部品104の見えている部分を、組み付け動作を行う際に使用可能な部品の把持部位の候補として判別する処理を行う。図7bから明らかなように、組付け対象部品104の見えていない部分のエッジは、画像データのエッジと一致していない。従って、画像データのエッジとの一致度が高いフレームデータのエッジに対応する部品の位置センシングデータから抽出可能な位置を、見えている部分として判定することができる。このため、ステップS503では予め、部品位置姿勢検出処理部108は、部品の形状モデルデータからフレームデータを生成する際に、フレームデータを構成するエッジを所定の微小長に分割し、分割エッジ毎にインデックスを付けて部品の位置情報と対応付けられるようにしておく。このときの部品の位置情報は、部品座標系における位置座標として表される。そしてステップS504において、部品位置姿勢検出処理部108は、分割エッジ毎に画像データのエッジとの一致度を計算し、閾値処理して2値化する。次に、一致しているものとして残った分割エッジに対し、隣接する分割エッジが残っているかを調べ、残っていないものはたまたまエッジが一致しただけのアウトライヤであるものと判断して除外する。最終的に残った分割エッジの位置情報を統合することにより、部品の見えている範囲を判別することが可能となる。これを部品の形状データと照らし合わせることにより、見えている各部分の幅や重心までの近さ、把持した際のハンドとの接触面積の大きさ等を考慮して、安定的に把持するのに適した部位を選択する。ここでは複数の部位が候補として選択され得る。各把持部位の候補は、部品座標系における原点からの位置ベクトルで表される。或いは、事前に部品の形状データに基づき把持部位の候補を定めて、部品データ格納部109にこの情報を保持する把持部位情報保持部を備えるようにすることもできる。この場合、ステップS504において、部品位置姿勢検出処理部108は、把持部位情報保持部に保持されている把持部位の候補情報を参照するのみでよい。なお、ステップS503のフィッティング処理で確定した部品の位置姿勢を、部品の形状情報に対応付けることにより、各把持部位の候補を実作業空間中における位置に変換することは公知の技術を用いて行われる。ステップS505において、ハンド位置姿勢候補算出部112は、1つの組付け用把持部位候補を選び、この部位を把持することが可能なハンド機構102の組付け対象部品104に対する相対的な把持姿勢を、候補としていくつか算出する。このときハンドの把持姿勢の候補は、部品座標系でハンド座標系の3軸の姿勢と原点位置を表すものとするが、ハンド座標系で部品の位置姿勢を表した前述の位置Phおよび姿勢行列Ehへの変換は容易である。同一部位を把持することの可能なハンド姿勢は1つに定まるとは限らず、通常は、図8aおよびbに示されるように、把持部位を中心として回転させたある範囲の姿勢が把持可能姿勢となる。この範囲の中から所定角度ずつをサンプリングして定めた複数の姿勢を、ハンド把持姿勢候補として抽出する。なお、図8aおよびbでは、把持される組付け対象部品104の面が異なっている。図8bの面804は曲面形状であり、被組付け部品116と干渉せずに把持できる回転角度範囲は広いが、被組付け部品116の形状から狭いハンドとの接触面積しか得られないため、図8aの面803の方が安定的に把持可能である。図8aにおいて、姿勢802よりも姿勢801の方が組付け対象部品104と被組付け部品116との接触面積は大きく、安定的に把持可能である。これらを加味して、複数の姿勢候補に対して優先順位を付けることができる。さらに、ステップS506において、ハンド位置姿勢候補算出部112は、抽出されたハンド把持姿勢候補の各々について、作業空間内に配置されて、被組付け部品116に組付けられた状態の組付け対象部品104の把持部位の候補を実際に把持するための、ハンド機構102の位置姿勢を算出する。ここでは部品座標系をS503で抽出されたロボット座標系における組付け対象部品の位置姿勢に合致させることにより、ハンド把持位置姿勢をロボット座標系へ変換する。以上、算出された組付け対象部品104の把持部位候補と、各把持部位候補を把持するのに適したハンド機構102の相対的な把持姿勢と、組付けられた状態の組付け対象部品104の把持位置を把持する作業空間中のハンド機構102の位置姿勢候補とは、セットで教示データ候補として管理される。ステップS507において、ロボット制御部111は、S506で算出されたたハンド把持位置姿勢となるように、ロボットアーム101の各リンク間角度の目標状態を計算し、把持動作を行わせる。ここではS506で計算したハンド把持位置姿勢を目標として、ロボットの固定軸のリンクから順に、連結するリンクが目標位置に近づく方向に回転させて、最終的にハンドが目標位置姿勢に一致するときの全リンク間の角度を計算する。目標位置姿勢と一致させることができなかった場合は、当該ハンド把持位置姿勢は本ロボットシステムでは実行不可能な姿勢であるものと判断し、把持動作は行わない。ステップS508において、干渉検知部115は、計画した把持動作が成功したか否かを判定する。動作中に干渉検知部115により干渉が検知された場合は、把持動作は失敗したものと判定される。把持動作が成功したと判定された場合S508;YES、S509へ進む。一方、把持動作が失敗したと判定された場合S508;NO、S510へ進む。ステップS509において、教示データ格納部114は、当該組付け用ハンド把持姿勢と、部品の把持部位と、追加的に組付け後の目標位置姿勢とを対応付けて、組付け目標状態を教示する教示データの一つとして決定して格納する。ステップS510において、ハンド位置姿勢候補算出部112は、処理中の把持部位候補に対するハンド把持姿勢候補の処理が一通り完了したか否かを判定する。ハンド把持姿勢候補の処理が一通り完了したと判定された場合S510;YES、S512へ進む。一方、まだ完了していないハンド姿勢候補があると判定された場合S510;NO、S511へ進む。ステップS511において、ハンド位置姿勢候補算出部112は、次の組付け用ハンド姿勢候補を選択する。その後、S506へ戻る。ステップS512において、部品位置姿勢検出処理部108は、部品の把持部位候補の処理が一通り完了したか否かを判定する。部品の把持部位候補の処理が一通り完了したと判定された場合S512;YES、処理を終了する。一方、まだ完了していない把持部位候補があると判定された場合S512;NO、S513へ進む。ステップS513において、部品位置姿勢検出処理部108は、次の組付け用把持部位候補を選択する。その後、S504へ戻る。以上の教示処理フローにより、組付け用ハンド把持姿勢、部品の把持部位のセットが、通常は複数通り教示データとして生成されて保存される。さらには、センシングデータを組付け後の目標位置姿勢情報として教示データに含めてもよい。次に図6のフローチャートを参照して、図5の処理で生成された教示データを用いた、部品の把持および組付け動作の処理の手順を説明する。ステップS601において、カメラ装置103は、組付け対象部品104が積載された部品供給トレイ105を撮影して、画像データを取得する。本実施形態では、図1に示すように山積み状態の部品供給トレイを想定しているが、前述のとおり本発明において供給形態は限定されるものではない。ステップS602において、部品位置姿勢検出処理部108は、撮影された画像データに基づいて、組付け対象部品104の位置姿勢を検出する。この処理は図5の教示処理フローのステップS502の処理と同様であり、必要に応じて閾値等のパラメータは調整される。ステップS502の処理とは異なり、ここでは複数の部品の位置姿勢が検出される可能性があるが、以下の処理は1つの部品を選択した上で行う。ステップS603において、部品位置姿勢検出処理部108は、ステップS503の処理と同様に部品形状データとのフィッティング処理を行い、まずはカメラ座標系における選択した部品の正確な位置姿勢を算出し、その後、これを作業空間中のロボット座標系へ変換する。ステップS604において、ロボット制御部111は、教示データ格納部114に格納されている組付け用ハンド把持姿勢、部品の把持部位、さらには追加的に組付け後の目標位置姿勢、のセットである教示データを1つ選択して読み出す。そしてステップS605において、ロボット制御部111は、検出された組み付け対象部品104が、当該教示データの組付け用ハンド把持姿勢で把持可能であるか否かを判定する。把持可能であると判定された場合S605;YES、S607へ進む。一方、把持可能でないと判定された場合S605;NO、S606へ進む。具体的には、教示データの部品座標系で表されたハンド機構102の位置姿勢を、選択された組付け対象部品104の位置姿勢に基づいて、作業空間中のロボット座標系で表される位置姿勢へ変換する。その上で、当該ハンド機構102の位置姿勢をロボットアーム101の駆動で取ることが可能であり、かつハンド機構102やロボットアーム101が部品供給トレイ105その他の作業環境と干渉しない場合は、把持可能であると判定される。ステップS606において、ロボット制御部111は、今回用いた教示データが最後の教示データであるか否かを判定する。最後の教示データであると判定された場合S606;YES、検出された組付け対象部品104は把持不可能であるとして、次の組付け対象部品104若しくは次の部品供給トレイ105に対する処理へ移る。一方、他の教示データが残っていると判定された場合S606;NO、SS604へ戻る。ステップS607において、ロボット制御部111は、ステップS605で計算されたロボット座標系でのハンド把持位置姿勢となるように、ロボットアーム101およびハンド機構102の各リンク間角度を計算し、組付け対象部品104を把持する動作を実行する。ステップS608において、ロボット制御部111は、組付け対象部品104を把持した状態のまま、教示データの組付け後のハンド機構102の目標位置姿勢のデータに基づいて、ロボットアーム101を駆動して、組付け動作を行う。ステップS609において、ロボット制御部111は、把持状態を解除してハンド機構102を所定位置に戻し、組付け動作を終了する。本実施形態によれば、ユーザは被組付け部品の所定位置に組付けられた状態の組付け対象部品を作業環境中の所定位置へ配置した情報のみで、組立ロボットに対する組付け動作の教示を容易に行うことが可能となる。本実施形態によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことができる。第2実施形態第1実施形態において、ステップS507では計算したハンド位置姿勢となるようにロボットを駆動し、ステップS508で当該動作中に干渉が生じたか否かを判別している。干渉は、ロボットのアームやハンド、把持した組付け対象部品等の可動部分が、被組付け部品や部品供給トレイ、作業台等の作業環境中の固定部分と衝突することにより生ずるものであるから、その頻度をできるだけ少なくすることが、耐故障性の観点で求められる。本実施形態では、組付け状態の組付け対象部品の把持動作を、干渉可能性の低い場合に限って実行することで、故障する可能性を低減した教示処理フローを実現している。以下、図9のフローチャートを参照して、本実施形態における教示処理の手順を説明する。図9において、ステップS901乃至ステップS906までの各処理は、図5のステップS501乃至ステップS506までの各処理と同様であるため、詳細な説明は省略する。またステップS908乃至ステップS914までの各処理は、ステップS507乃至ステップS513まで各の処理と同様である。ステップS907において、ハンド位置姿勢候補算出部112は、ステップS906で計算された組付けられた状態の組付け対象部品104を把持するハンド把持位置姿勢に対し、ステップS507で行われる計算と同等の計算を行い、最終的にハンドが目標位置姿勢に一致するときの全リンク間の角度を計算する。そしてこれらのリンクを、作業空間を簡易にモデル化した仮想空間中に配置する。図10は、仮想空間の例を示している。ロボットアーム101およびハンド機構102は、各関節から次の関節までの軸をリンク1001として、これらを接続したものをベースに、各リンクに固定された直方体によりモデル化されている。接続されたリンク同志は、それぞれ角度に機械的な拘束条件があり、取り得る回転方向および角度は所定範囲内となっている。リンクに固定された直方体は実空間中ではロボットアーム101またはハンド機構102の一部であり、拘束条件の範囲内では干渉しないようになっているため、仮想空間中で接続する2つのリンクの直方体同志の重なりが生じても、干渉は無いものとして無視する。また、組付けられた状態の組付け対象部品1002、所定位置に配置された被組付け部品1003、部品供給トレイ1004、作業台1005等の作業環境データは、仮想空間中に固定された直方体の組み合わせでモデル化される。ステップS907において、ハンド位置姿勢候補算出部112は、この仮想空間中において、前述の接続した2つのリンクの直方体以外のいずれかの直方体が、他の直方体の存在する空間に重なって存在していないかを確認する計算を行う。重なりが生じていなければ、実際に把持動作をさせた際に干渉が発生する可能性は低いものと判断できる。すなわちハンド位置姿勢候補算出部112は、算出した位置姿勢への移動に際して干渉可能性が低いか否かを判定する。干渉可能性が低いと判定された場合S907;YES、S908へ進む。ステップS908以降の処理において、第1実施形態と同様に、実際に干渉が発生しないことを確認して教示データとする。一方、干渉可能性が高いと判定された場合S907;NO、ロボットアーム101の駆動は行わずに、S911へ進む。本実施形態によれば、ロボットアームを動作させた場合に干渉が発生する確率を低減することができ、ロボットシステムの耐故障性が向上する。第3実施形態本発明は、作業環境中に固定して配置されたカメラ装置103等のセンシング部に限らず、例えばロボットのハンドやアームに取り付けたセンシング部を用いて、センシング方向を可変とすることも可能である。図11aは、図1で説明したロボットアーム101のハンド機構102に、オンハンドカメラ117を装備した状態を示している。オンハンドカメラ117を用いる場合においても、図5或いは図9で説明した教示フローを用いることが可能で、図6の組付け動作フローにより組付け動作を行うことができる。但し、本実施形態では、オンハンドカメラ座標系はロボット座標系に対して固定されているわけではなくハンドのリンク座標系に固定される。従って、撮影画像から検出した部品の位置姿勢をロボット座標系に変換する際には、リンクを順に辿って計算する必要がある。尚、オンハンドカメラ117を、把持組付け動作を行うロボットとは別のロボットに取り付けた構成とすることも、もちろん可能である。また、ステップS509或いはステップS910で把持が成功して教示データを保存する際に、改めてセンシング部により、組付け完了状態のセンシングデータを取得するようにすることも可能である。図11bは、オンハンドカメラ117により撮影した組付け完了状態の画像データの例を示している。これを教示データに加えて保持しておくことで、組付け動作を行う際の目標状態を表すデータとして利用することができる。さらに撮影した組付け完了状態の画像データに対し、前述した部品位置姿勢検出処理を行うようにしてもよい。組付け完了した把持状態では、対象部品にハンドが接触しているので、把持する前の組付け状態よりも対象部品は見えにくくなっている可能性が高い。撮影した画像データに対し部品位置姿勢検出処理を行うことで、検出されやすい画像に対応する把持姿勢が、組付け時に対象部品が見えやすい、すなわち組付け動作に適した把持姿勢であるものと判断できる。なお、もちろん組付け完了状態のセンシングデータの取得は、オンハンドカメラに限らず第1実施形態で説明した固定のカメラ装置103により行うようにしても構わない。さらには、固定カメラとオンハンドカメラとを併用する構成としてもよい。さらに、カメラに限らず、測距センサ等の他のセンシング部をオンハンドあるいは固定のセンシング部として用いることも可能である。第4実施形態組付け完了状態の教示データを取得するだけでなく、組付け動作の途中経路の各状態を示す教示データを生成するようにすることも可能である。図12のフローチャートを参照して、本実施形態における途中経路状態教示データの生成処理の手順を説明する。図12において、ステップS1201乃至ステップS1209までの各処理は、図5のステップS501乃至ステップS509までの各処理と同様であるので、詳細な説明は省略する。またステップS1216乃至ステップS1219までの各処理は、ステップS510乃至ステップS513までの処理と同様である。本実施形態に係る教示フローでは、ステップS1210乃至ステップS1215までの各処理が新たに追加された処理となっている。ステップS1208で組付け状態の対象部品の把持が成功し、ステップS1209で組付け目標状態を教示する教示データが保存されたら、ステップS1210において、ロボット制御部111は、組付け状態の対象部品を引き抜き、部品供給トレイへと戻す動作の経路の候補を計算する。通常、この経路の候補は複数通りあり得る。図13a-cは、経路候補の一例により部品を戻す動作を行った際の途中状態を示しており、図13aの組付け完了状態から、図13b、図13cの順にロボットの状態が変化していく様子を示している。経路候補を算出する上では、図13cの部品供給トレイ105付近の状態は実際には把持する部品の位置姿勢に応じて変化するものであるので、例えば部品トレイの中心付近の位置を目標位置とするだけでよく、厳密な目標姿勢は定義しない。次にステップS1211において、ロボット制御部111は、一つの経路候補を選んで、把持している組付け状態の対象部品を供給トレイへと戻す動作を実行する。そしてステップS1212において、干渉検知部115は、部品供給トレイ105へ戻す動作が成功したか否かを判定する。ここではステップS1208と同様に、干渉検知部115は、動作中に干渉が生じたか否かを判定する。干渉が生じていた場合は、続く処理をスキップして、ステップS1214へ進む。干渉が生じなかった場合は、実際の組付け時に用いることのできる経路であるものと判断し、ステップS1213において、教示データ格納部114は、図13に示したような時系列変化の途中状態を逆順に並べて、組付け動作の途中経路を教示する教示データとして格納する。そしてステップS1214において、ロボット制御部111は、戻す動作の経路候補がまだ残っているかを確認し、残っていればステップS1215へ進み、次の経路を選択して、ステップS1211へ戻る。一方、残っていなければ、ステップS1216へ進む。以降の処理は図5のステップS510以降の処理と同様である。なお、ステップS1210およびステップS1211の各処理は、ユーザが不図示のロボット操作受付部を用いて手動の操作により行うようにしてもよい。精度を要求される組付け完了状態は既にステップS1209までの処理で完了しており、組付け状態から対象部品を供給トレイに戻す動作は、通常それほど高い精度は要求されないため、手動の操作でも容易に実行可能である。ユーザが作業環境を見ながら手動で操作することにより、不必要な干渉の発生を抑えられシステムを故障させる可能性を低減できる。以上により、組立ロボットシステムで対象部品の組付け動作を行う際の、組付け目標状態だけでなく経路情報も併せて教示することが可能となる。以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形変更が可能である。例えば、生産用ロボットシステムに限らず、家庭用ロボット等の種々のロボットシステムにおける教示方法としても適用可能であることは言うまでもない。本発明によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことを目的とする。その他の実施形態また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェアプログラムを、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータまたはCPUやMPU等がプログラムを読み出して実行する処理である。