(57)【特許請求の範囲】
【請求項１】
被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得手段と、
前記センシングデータと前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定手段と、
前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方を、ハンド位置姿勢候補として算出する算出手段と、
前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて、前記ハンド機構による把持動作のための教示データ候補として生成する生成手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
更に、前記センシングデータに基づいて、前記組付け対象部品の位置または姿勢の少なくとも一方を部品位置姿勢として検出する検出手段を備え、
前記設定手段は、前記部品位置姿勢と前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記設定手段は、前記センシングデータから抽出可能な部分を、前記把持部位候補として設定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記組付け対象部品の形状データに対応付けて予め定められた把持部位の候補情報を保持する把持部位情報保持手段をさらに備え、
前記設定手段は、前記検出手段により検出された前記部品位置姿勢と、前記把持部位情報保持手段に保持されている前記候補情報とに基づいて、前記把持部位候補を設定することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記算出手段は、前記把持部位候補を把持可能な前記ハンド機構と前記組付け対象部品との相対的な把持姿勢を算出し、
前記教示データ候補は、前記相対的な把持姿勢の情報をさらに含むことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記教示データ候補は、前記センシングデータを、組み付け目標状態を教示するためのデータとしてさらに含むことを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記ハンド機構および当該ハンド機構と接続されたロボットアームの駆動を制御する制御手段と、
前記ハンド機構および前記ロボットアームの駆動時に、前記被組付け部品または作業環境との間で干渉が発生したことを検知する干渉検知手段と、
前記制御手段が前記教示データ候補に基づいて前記ハンド機構および前記ロボットアームの駆動を制御して、前記被組付け部品の所定位置へ組付けられた状態の前記組付け対象部品を把持させる際に、前記干渉検知手段により前記干渉の発生が検知されなかった場合の前記教示データ候補を、教示データとして決定する決定手段と、
をさらに備えることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記算出手段は、前記ロボットアームおよび前記ハンド機構の形状データ、前記被組付け部品の形状データ、前記組付け対象部品の形状データに基づいて、各形状データに重なりが生じるか否かを判定することにより、組付け時に干渉が生じないハンド位置姿勢候補を算出することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記制御手段は、前記算出手段により算出された前記ハンド位置姿勢候補と合致するように、前記ロボットアームおよび前記ハンド機構を駆動して前記被組付け部品の所定位置へ組付けられた状態の前記組付け対象部品を把持させた後に、前記組付け対象部品を部品供給トレイへ戻すように動作させ、
前記教示データ候補は、前記組付け対象部品を前記部品供給トレイへ戻す動作における、前記ロボットアームおよび前記ハンド機構の位置姿勢の時系列変化を示す情報をさらに含むことを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
ユーザの操作を受け付ける操作受付手段をさらに備え、
前記制御手段により前記組付け対象部品を前記部品供給トレイへ戻す動作は、前記ユーザの操作により実行されることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記センシングデータは、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域の画像データであることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記センシングデータは、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域の距離情報であることを特徴とする請求項１乃至１０の何れか１項に記載の情報処理装置。
【請求項１３】
取得手段と、設定手段と、算出手段と、生成手段とを備える情報処理装置の制御方法であって、
前記取得手段が、被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得工程と、
前記設定手段が、前記センシングデータと前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定工程と、
前記算出手段が、前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方を、ハンド位置姿勢候補として算出する算出工程と、
前記生成手段が、前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて、前記ハンド機構による把持動作のための教示データ候補として生成する生成工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１４】
請求項１３に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法、およびプログラムに関し、特に、対象部品を把持して被組付け部品の所定位置へ組付ける動作を行う組立ロボットのための教示データを生成する情報処理装置、情報処理装置の制御方法、およびプログラムに関する。
【背景技術】
【０００２】
カメラや測距センサのようなセンシング機能を用いて、対象物の輝度画像や対象物までの距離情報等のセンシングデータを取得し、取得したデータに基づき対象物をハンド機構で把持して、組付け位置等の目標位置まで移動させるロボットシステムが存在する。
【０００３】
このようなロボットシステムにおいては、作業環境中における移動目標位置や対象物或いはハンド機構の目標姿勢、ハンド機構が対象物を把持する際の相対的な把持姿勢、目標位置までの移動経路等の情報を、如何に容易に教示できるかが、使いやすさを左右する一つの鍵となる。
【０００４】
特許文献１に開示される技術は、手先カメラで撮影した画像上に、教示操作を行うユーザが目標点を指定する。そして、その位置情報に基づき当該手先カメラを移動させ、新たに撮影した画像上で再びユーザが同一の目標点を指定することで、目標点の空間的な位置を特定している。
【０００５】
特許文献２に開示される技術は、第１部品の組付部へ組み付けられる第２部品の組付部を模した模擬部品が目標位置に対応する位置に設けられているマスタ部品を、パレットに固定し、パレットに固定したカメラで撮影する。次に、マスタ部品が固定されていない状態のパレットに対して第２部品がロボットによって保持された状態で撮影する。これら２枚の画像から模擬部品の位置と第２部品の位置との間の偏差を計算している。
【０００６】
特許文献３に開示される技術は、鋳物の鋳造工程において主型内への中子納めを中子納めロボットを用いて行なう場合に、中子納め位置のティーチングを実際の主型と中子とを用いて行っている。まず、所定の中子納め位置に位置させた主型内へ中子を納め、この中子の上方位置へハンド部を移動させ、このハンド部を下降させて中子を把持する。この中子を把持した際のハンド部の揺動を揺動検出部により検出し、その揺動を解消する位置へアームを位置補正し、この位置補正後のアームの位置を中子納めのティーチング位置として記憶部へ記憶させる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第０４１６７９５４号公報
【特許文献２】特開２００９−２７９７１９号公報
【特許文献３】特許第０３３１２８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述の従来技術には以下に示すような課題がある。すなわち、特許文献１に開示される技術では、教示操作を行うユーザが２回の目標位置指定を行う必要がある。また、対象物に対する把持姿勢や移動後の目標姿勢については、これだけでは教示することができない。
【０００９】
特許文献２に開示される技術では、第２部品の組付け部を模した模擬部品が目標位置に対応する位置に設けられた実工程では不要な部材を含むマスタ部品を、教示のためだけに用意する必要がある。また、組付け時の偏差を計算して修正するためのものであり、第２部品の把持位置を教示することはできない。
【００１０】
特許文献３に開示される技術は、中子の把持はステレオカメラを用いたマッチングにより行っている。つまり中子に対する把持部位や把持姿勢は予めなんらかの方法で決めておく必要があり、当該技術を用いて教示するものではない。
【００１１】
上記の課題に鑑み、本発明は、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことを目的とする。
【課題を解決するための手段】
【００１２】
上記の目的を達成する本発明に係る情報処理装置は、
被組付け部品の所定位置に組付けられた状態の組付け対象部品を含む領域のセンシングデータを取得する取得手段と、
前記センシングデータと前記組付け対象部品の形状データとに基づいて、ハンド機構により把持される前記組付け対象部品の把持部位候補を設定する設定手段と、
前記把持部位候補を把持可能な前記ハンド機構の位置または姿勢の少なくとも一方を、ハンド位置姿勢候補として算出する算出手段と、
前記把持部位候補と前記ハンド位置姿勢候補とを対応付けて、前記ハンド機構による把持動作のための教示データ候補として生成する生成手段と、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る組立ロボットシステムの構成を示す図。
【図２】姿勢検出のための正二十面体を基本とする測地ドームの例を説明する図。
【図３】組付け対象部品の代表姿勢の例と、被組付けを部品の例を示す図。
【図４】テンプレート・マッチングによる組付け対象部品の位置姿勢検出処理を説明する図。
【図５】第１実施形態に係る教示処理の手順を示すフローチャート。
【図６】第１実施形態に係る組付け処理の手順を示すフローチャート。
【図７】フィッティング処理の様子の一例を示す図。
【図８】組付け対象部品に対する可能な把持姿勢の探索の一例を示す図。
【図９】第２実施形態に係る干渉を起こす可能性を低減した教示処理の手順を示すフローチャート。
【図１０】仮想空間の一例を示す図。
【図１１】オンハンドカメラと、当該オンハンドカメラにより撮影された組付け状態の対象部品とを含む領域の画像の一例を示す図。
【図１２】第４実施形態に係る組付け動作の途中経路を教示する教示処理の手順を示すフローチャート。
【図１３】部品を戻す動作を行う途中の状態の一例を示す図。
【発明を実施するための形態】
【００１５】
（第１実施形態）
図１は、第１実施形態に係る組立ロボットシステムの構成を示す図である。組立ロボットシステム１０は、ロボットアーム１０１と、ハンド機構１０２と、カメラ装置１０３と、コントローラ１０６とを備える。ハンド機構１０２は、ロボットアーム１０１のエンドエフェクタであり、組付け対象部品１０４を把持するために用いられる。部品供給トレイ１０５には、組付け対象部品１０４が山積み状態で積載されている。なお、図１のように山積み状態で部品供給されなくてもよい。例えばパレット等の上に一定の向きに整列された状態で部品供給されてもよく、部品供給の方法は本発明において限定されるものではない。被組付け部品１１６は、組付け対象部品１０４が組み付けられる対象となる部品である。図１の例では、既に組付け対象部品１０４が所定位置に組付けられた状態が示されている。
【００１６】
カメラ装置１０３は、部品供給トレイ１０５や被組付け部品１１６、ハンド機構１０２を含む作業環境の状態を取得するセンシング機能を有する。カメラ装置１０３は、作業環境内の非可動部に固定的に設置された固定センシング部の一例であり、作業環境を撮影し画像データ等をセンシングデータとして取得する。なお、カメラ装置１０３は、二次元輝度画像情報を得るための単眼カメラであってもよいし、距離情報を得るためのステレオカメラやＴＯＦセンサ、レーザーレンジファインダのような測距センサであってもよく、本発明において限定されるものではない。コントローラ１０６は、組立ロボットシステムが備える、ロボットアーム１０１やハンド機構１０２、カメラ装置１０３の動作を制御する。また、組付け動作を教示するための情報処理装置として機能する。なお、本発明においける組み立てロボットシステムにおいてカメラ装置１０３はシステムに含まれずシステムの外部に存在してもよい。
【００１７】
コントローラ１０６は、カメラ制御部１０７と、部品位置姿勢検出処理部１０８と、部品データ格納部１０９と、組付け対象部品設定部１１０と、ロボット制御部１１１と、ハンド位置姿勢候補算出部１１２と、教示データ生成部１１３と、教示データ格納部１１４と、干渉検知部１１５とを備える。
【００１８】
カメラ制御部１０７は、カメラ装置１０３の撮影制御を行う。また、カメラ制御部１０７は、センシングデータを入力する機能も有し、カメラ装置１０３が撮影した画像データ等をセンシングデータとしてコントローラ１０６内に入力する。
【００１９】
部品位置姿勢検出処理部１０８は、入力されたセンシングデータをスキャンして、組付け対象部品１０４が存在する位置姿勢を検出する。カメラ装置１０３は、作業環境内における位置関係と合致するように予めキャリブレーションされているので、センシングデータから検出された部品の位置姿勢は、実作業空間上の位置姿勢情報へと変換可能である。
【００２０】
部品データ格納部１０９は、検出処理のために用いられる組付け対象部品１０４の形状特徴や寸法等のデータを格納する。
【００２１】
なお、ロボットシステムによっては、例えば、組付け対象部品１０４は常に一定の姿勢で供給され、ハンド機構１０２による把持後は３次元的な平行移動のみで被組付け部品１１６の所定位置へと組付けられるような場合、組付け対象部品１０４の位置のみを検出するようにすることもできる。或いは、部品供給位置や組付け位置は一定であるが姿勢のみが不明であるような場合は、姿勢のみを検出するようにすることも可能であり、ロボットシステムに応じて位置と姿勢のどちらか一方のみ検出すればよい場合もあり得る。
【００２２】
また、部品位置姿勢検出処理部１０８は、教示動作時にも用いられる。カメラ装置１０３から入力されるセンシングデータには被組付け部品１１６に組付けられた状態の組付け対象部品１０４の情報が含まれる。このセンシングデータに対して同様の処理を行い、組付けられた状態にある組付け対象部品１０４の位置姿勢を検出する。さらに、検出された位置姿勢情報と部品データ格納部１０９に保持されている部品の形状情報とに基づき、当該部品の把持位置の候補を設定する。
【００２３】
組付け対象部品設定部１１０は、カメラ装置１０３により撮影された部品供給トレイ１０５を含む領域のセンシングデータを、部品位置姿勢検出処理部１０８で処理した結果に基づいて、組付け対象として把持する候補の部品を選択し、その把持位置とハンドの把持姿勢とを設定する。このとき教示データ格納部１１４に格納されている、組付け対象部品１０４の把持位置情報と対応する把持姿勢を参照する。組付け対象とする部品の選択方法は特に問わないが、本実施形態のように山積みで供給される場合は、例えば最も上部にあって把持位置が隠されていない部品や、部品位置姿勢検出処理部１０８による検出信頼度が高い部品を選択する方法が考えられる。
【００２４】
ロボット制御部１１１は、設定された把持位置とハンドの把持姿勢の情報に基づき、ロボットアーム１０１およびハンド機構１０２を制御して、選択された組付け対象部品１０４の把持動作を行わせる。そして把持後に、教示データ格納部１１４に保持されている組付け動作教示データを参照し、組付け対象部品１０４を被組付け部品１１６の所定位置へと組付ける動作を行わせる。なお、この組付け動作教示データには、組付け目標位置と組付け完了時のハンド位置姿勢情報を含んでおり、ロボット制御部１１１はハンド機構１０２がこの位置姿勢状態となるように動作計画を立ててロボットアーム１０１を駆動する。
【００２５】
ハンド位置姿勢候補算出部１１２は、教示動作時に、部品位置姿勢検出処理部１０８により設定された把持位置の候補各々に対し、これを把持することのできるハンド機構１０２の位置姿勢（すなわち組付け完了状態）の候補を算出する。
【００２６】
教示データ生成部１１３は、ハンド位置姿勢候補算出部１１２により算出されたハンド機構の位置姿勢の候補を、目標状態として、ロボット制御部１１１に設定する。ロボット制御部１１１は当該目標状態となるようにロボットアーム１０１とハンド機構１０２とを駆動制御する。駆動した結果、干渉等が発生せず目標状態となったら、当該目標状態は、組付け教示データの一つとして、教示データを保持する教示データ格納部１１４に格納される。
【００２７】
ロボットアーム１０１或いはハンド機構１０２の駆動時に、被組付け部品１１６や作業環境等に、ロボットアーム１０１、ハンド機構１０２、あるいは組付け対象部品１０４が衝突すると、ロボットアーム１０１およびハンド機構１０２に備えられた不図示の力覚センサは異常値を出力する。干渉検知部１１５は、ロボット制御部１１１を介してこれらの力覚センサの出力値を監視しており、異常値を検知すると干渉が発生したもの判断して教示データ生成部１１３へ通知する。
【００２８】
ここで、部品位置姿勢検出処理部１０８は、対象物の位置を検出すると共に姿勢をクラス分けするクラス分類器である。各クラスに対応する姿勢を代表姿勢と称し、測地ドームと面内回転を組み合わせて定義する。ここで測地ドームとは、正多面体の各頂点や面素の中心点、或いは、各三角形面素を再帰的に同一面積の三角形に分割してそれらの頂点を用いることで、球面を均一に離散化表現する公知の手法である。
【００２９】
図２は、正二十面体を基本とする測地ドームの例を示している。正二十面体の中心点に、所定姿勢の対象物の重心点が一致するように配置し、例えば、各頂点と各三角形面素の中心点を視点として見た対象物の見え方を代表姿勢の定義とする。各視点からの視線は、対象物の中心点すなわち正二十面体の重心点で交差する。正二十面体においては頂点の数は１６、面素の数は２０であるので、正二十面体をそのまま用いた測地ドームでは、計３６の視点からの代表姿勢が定義可能である。
【００３０】
しかしながら、通常これだけの粒度では、把持を行うのに十分な精度とはならないため、本実施形態では、各面素の辺をさらに２分割している。すると正二十面体の各正三角形面素は、正三角形面素２０３に示すように４つの同一面積の小正三角形で構成されることになる。ここで視点２０１は、元の正二十面体の頂点と面素中央点とで定義された計４点の視点を表し、視点２０２は、小三角形に分割することにより増えた６点の視点を表している。面中心点の数は分割前の元の三角形面素の数（２０面）の４倍、頂点の数は元の正二十面体の辺の数分（＝３４本）増えることになるので、この分割により１６＋３４＋２０×４＝１３０通りの視点からの代表姿勢を定義することができる。
【００３１】
画像群２０６は、面内回転の例を示している。画像２０５は、視点２０４から取得した部品の画像であって、これを所定角度ずつ回転させることにより、画像群２０６示すような複数の代表姿勢を得ることができる。本実施形態においては、面内回転を１０度ずつで定義するものとする。すなわち上述の１３０の各視点に対し３６通りの面内回転パターンが存在することになるので、１３０×３６＝４６８０通りの代表姿勢が定義される。
【００３２】
ここで視点とは、すなわちカメラ装置１０３であるので、代表姿勢とはカメラ装置１０３により取得される個々の対象物の画像のバリエーションに対応する。部品データ格納部１０９は、予め、部品の姿勢を変化させて撮影した全ての代表姿勢の画像データに基づく照合データを保持している。図３（ａ）−（ｅ）は、各代表姿勢の画像データの例を示す。
【００３３】
図３（ｆ）は、所定位置に配置された被組付け部品１１６をカメラ装置１０３で撮影して取得した画像データの一例を示している。そして図３（ｇ）は、この被組付け部品１１６に、組付け対象部品１０４を組み付けた状態の画像データの一例を示している。カメラ装置１０３から観察した組付けられた状態の組付け対象部品１０４の姿勢は、図３（ｃ）に示される例と一致するが、一部分が被組付け部品１１６に隠され見えなくなっている。
【００３４】
本実施形態においては、部品位置姿勢検出処理部１０８は、所謂テンプレート・マッチング処理に基づいて、カメラ装置１０３を基準とする座標系であるカメラ座標系における各組付け対象部品１０４の位置姿勢を検出する。
【００３５】
従って、部品データ格納部１０９は、４６８０通りの代表姿勢クラスに対応する照合データ（テンプレート）を全て保持している。しかしながら、テンプレート全てを保持せずに、各視点から０°回転の１３０通りのテンプレートのみを保持しておき、面内回転分については照合の都度、回転処理により生成するようにすることで、保持するデータ量を削減するように構成してもよい。
【００３６】
ここで、カメラ座標系における組付け対象部品１０４の基準点（物体中心等）の位置を、カメラ座標系の原点からの平行移動ベクトルＰｗとして表す。これが検出された組付け対象部品１０４の位置情報に相当する。カメラから見た奥行き方向の位置は、検出された部品の画像中の大きさに基づいて推定するか、若しくは、別途レンジファインダのような測距センサを用いてより正確に推定するようにしてもよい。
【００３７】
そして、いずれの代表姿勢クラスのテンプレートに最も合致するかを判定し、対象物の姿勢を推定する。ここで対象物の姿勢は、カメラ座標系における部品座標系３軸の方向ベクトルの組による姿勢行列ＥＷ＝［ｅＷＸ、ｅＷＹ、ｅＷＺ］で表すことができる。ｅＷＸ、ｅＷＹ、ｅＷＺは、組付け対象部品に基準位置からそれぞれ３方向に直交して固定された、長さ１の単位列ベクトルである。すなわち、各代表姿勢には、それぞれ固有の姿勢行列ＥＷが対応付けられている。
【００３８】
また、ハンド機構１０２により把持すべき部品の位置（把持部位）は、組付けに適した位置である必要がある。つまり組付け完了状態となったときに把持可能である部位である必要があるので、図３（ｇ）の組付け完了状態において被組付け部品１１６に隠されずに見えている部位が候補となる。把持部位の具体的な設定方法に関しては後述する。
【００３９】
組付け対象部品１０４の把持部位を把持した状態は、ハンド機構１０２を基準とするハンド座標系における組付け対象部品の中心位置Ｐｈおよび姿勢行列Ｅｈにより定義できる。これがハンドと部品との相対的な把持姿勢を表すパラメータとなる。なお、ハンド座標系の原点は把持を行う二指の把持点の中心すなわち把持中心であり、３軸の方向は所定方向に固定されているものとする。ロボット制御部１１１は、把持しようとする組付け対象部品１０４のカメラ座標系における中心位置Ｐｗおよび姿勢ＥＷが、ハンド座標系における中心位置Ｐｈおよび姿勢Ｅｈと一致するように、ロボットアーム１０１の各関節やハンド機構１０２に対する把持動作計画および制御を行う。
【００４０】
ロボットアームの可動関節によって区切られる軸（リンク）の各々には、それぞれ個別の座標系３軸が固定されており、ハンド座標系を含めて連結する２つのリンクは互いの座標系で相互に位置と姿勢を表すことができる。すなわちハンドからリンクを順次辿って座標変換していくと、最終的に作業環境に固定された３軸の座標系で位置姿勢を表すことができる。本実施形態では、この座標系をロボットの固定位置を基準とするロボット座標系とする。なお、連結する２つのリンクの可能な回転方向は、関節によって決まっている。ロボット制御部１１１はリンク間の回転自由度等の連結関係を表すロボットモデルを保持しており、動作計画を立てて制御を行う。
【００４１】
ここで、図４および図５を参照して、本実施形態に係る部品位置姿勢検出処理部１０８で行われるテンプレート・マッチング処理による位置姿勢検出手法を説明する。  図４（ａ）はテンプレートの一例を示している。このテンプレートは、カメラ装置１０３から見て、図３（ｃ）に一致する姿勢の組付け対象部品１０４を検出するためのテンプレートである。他の姿勢のテンプレートについてはここでは図示しないが、以下同様に処理を行う。
【００４２】
図４（ｂ）は、画像４００をスキャン処理して、テンプレート・マッチングによる位置姿勢検出処理を行う様子を示している。画像４００は、組付け対象部品１０４が所定位置に組付けられた状態の被組付け部品１１６を含む領域を、カメラ装置１０３で撮影した画像データの一例である。切り出しウィンドウ４０１は、画像４００上に設定されたテンプレートと同サイズのウィンドウを示す。切り出しウィンドウ４０１は、画像全域（若しくは、部品の存在することが予め分かっている範囲）を、隈なくスキャンする。
【００４３】
切り出しウィンドウ４０１により切り出された矩形領域の部分画像は、テンプレートと相関演算され、最も相関の高くなる位置にテンプレートに対応する代表姿勢の部品が有るものと判別する。本処理を行う際に組付け状態のカメラ装置１０３視点での姿勢が分かっていない場合は、複数の代表姿勢に対応するテンプレートを順次用いて、同様の処理を行う。そして、各位置において所定閾値以上の相関を示すテンプレートが複数ある場合は、最も相関の高いテンプレートに対応する代表姿勢を部品の姿勢であるものとして判別する。
【００４４】
また、検出された部品の大きさに基づき部品までの距離を推定する場合は、テンプレートを所定範囲で変倍し、最も合致した大きさのテンプレートに対応する距離に部品があるものとして判別する。その他の例として、カメラ装置１０３をステレオカメラとし、撮影したステレオ画像を用いて２枚の画像から検出された部品の位置を対応付けて三角測量の原理により距離を推定してもよいし、別途レンジファインダ等を併用してもよい。
【００４５】
さらに、用いるテンプレートを輝度画像そのままとするのではなく、所定のエッジ抽出等の前処理を行い、画像４００に対しても同様の処理を行ってからスキャンを行うようにしてもよい。これにより不要なノイズ等の情報が除去され、検出精度の向上が期待できる。
【００４６】
なお、図４（ｂ）から明らかなように、所定位置に組付けられた状態では、組付け対象部品１０４は、全体が画像データに写っている訳ではない。従って部品供給位置等にある全体が写った組付け対象部品１０４を検出する場合に比べ、テンプレートとの一致度を測る閾値を下げて検出処理を行う必要がある。
【００４７】
本実施形態では以上のテンプレート・マッチングに基づく部品位置姿勢検出処理を適用しているが、本発明はこれに限定されるものではない。例えば局所マッチング結果を投票して位置姿勢検出するようなハフ変換をベースとする検出処理であっても、本発明を適用可能である。
【００４８】
次に、図５のフローチャートを参照して、本実施形態の組立ロボットシステムで行われる組付け動作を教示するための教示処理の手順を説明する。本教示処理では、組付けに適したハンド把持姿勢を、組付け対象部品１０４の把持部位と対応付けた教示データとして生成し、組付け動作時に使用できるように保持する。本教示処理は、ユーザが予め組付け対象部品を被組付け部品に組付け、所定位置に配置した状態で開始する。この所定位置は、ロボットが組付け動作を行う際に、被組付け部品を配置する位置と同位置である。
【００４９】
ステップＳ５０１において、カメラ装置１０３は、被組付け部品１１６に組付けられた状態の組付け対象部品１０４を含む領域を撮影して画像データを取得する。ステップＳ５０２において、部品位置姿勢検出処理部１０８は、取得された画像データにおける組付け対象部品１０４の位置姿勢を検出する。この処理では、前述したようにテンプレート・マッチング処理に基づいてカメラ視点からの各姿勢クラスの部品の検出を行う。
【００５０】
ステップＳ５０３において、部品位置姿勢検出処理部１０８は、検出結果と部品データ格納部１０９に格納されている部品の形状モデルデータとのフィッティング処理を行う。図７を参照してこのフィッティング処理の様子を説明する。ステップＳ５０２で取得された代表姿勢と画像データ中の位置情報とに基づいて、形状モデルデータから計算されるカメラ視点での部品の理想的なフレームデータ（図７（ａ）の点線７０１）を初期状態として画像中に配置する。また、画像データには前処理として予めエッジ抽出処理をかけておく。そして、フレームデータの各エッジが、画像中のエッジと最も一致する位置を探索し、探索した位置をカメラ座標系における正確な部品の位置として算出する（図７（ｂ）において点線７０１と部品とのずれが解消）。なお、センシングデータが距離画像である場合は、同様の探索をエッジではなく面に対して行うことができる。
【００５１】
フィッティング処理により得られる部品の位置情報は、上述したカメラ座標系における組付け対象部品の基準点の原点からの位置ベクトルＰｗであり、姿勢情報は姿勢行列ＥＷとして表される。カメラ装置は作業空間に対してキャリブレーションされているので、これを作業空間に固定された座標系（本実施形態ではロボット座標系）に変換するのは容易である。
【００５２】
ステップＳ５０４において、部品位置姿勢検出処理部１０８は、組付け対象部品１０４の見えている部分を、組み付け動作を行う際に使用可能な部品の把持部位の候補として判別する処理を行う。図７（ｂ）から明らかなように、組付け対象部品１０４の見えていない部分のエッジは、画像データのエッジと一致していない。従って、画像データのエッジとの一致度が高いフレームデータのエッジに対応する部品の位置（センシングデータから抽出可能な位置）を、見えている部分として判定することができる。
【００５３】
このため、ステップＳ５０３では予め、部品位置姿勢検出処理部１０８は、部品の形状モデルデータからフレームデータを生成する際に、フレームデータを構成するエッジを所定の微小長に分割し、分割エッジ毎にインデックスを付けて部品の位置情報と対応付けられるようにしておく。このときの部品の位置情報は、部品座標系における位置座標として表される。そしてステップＳ５０４において、部品位置姿勢検出処理部１０８は、分割エッジ毎に画像データのエッジとの一致度を計算し、閾値処理して２値化する。次に、一致しているものとして残った分割エッジに対し、隣接する分割エッジが残っているかを調べ、残っていないものはたまたまエッジが一致しただけのアウトライヤであるものと判断して除外する。最終的に残った分割エッジの位置情報を統合することにより、部品の見えている範囲を判別することが可能となる。
【００５４】
これを部品の形状データと照らし合わせることにより、見えている各部分の幅や重心までの近さ、把持した際のハンドとの接触面積の大きさ等を考慮して、安定的に把持するのに適した部位を選択する。ここでは複数の部位が候補として選択され得る。各把持部位の候補は、部品座標系における原点からの位置ベクトルで表される。
【００５５】
或いは、事前に部品の形状データに基づき把持部位の候補を定めて、部品データ格納部１０９にこの情報を保持する把持部位情報保持部を備えるようにすることもできる。この場合、ステップＳ５０４において、部品位置姿勢検出処理部１０８は、把持部位情報保持部に保持されている把持部位の候補情報を参照するのみでよい。
【００５６】
なお、ステップＳ５０３のフィッティング処理で確定した部品の位置姿勢を、部品の形状情報に対応付けることにより、各把持部位の候補を実作業空間中における位置に変換することは公知の技術を用いて行われる。
【００５７】
ステップＳ５０５において、ハンド位置姿勢候補算出部１１２は、１つの組付け用把持部位候補を選び、この部位を把持することが可能なハンド機構１０２の組付け対象部品１０４に対する相対的な把持姿勢を、候補としていくつか算出する。このときハンドの把持姿勢の候補は、部品座標系でハンド座標系の３軸の姿勢と原点位置を表すものとするが、ハンド座標系で部品の位置姿勢を表した前述の位置Ｐｈおよび姿勢行列Ｅｈへの変換は容易である。同一部位を把持することの可能なハンド姿勢は１つに定まるとは限らず、通常は、図８（ａ）および（ｂ）に示されるように、把持部位を中心として回転させたある範囲の姿勢が把持可能姿勢となる。この範囲の中から所定角度ずつをサンプリングして定めた複数の姿勢を、ハンド把持姿勢候補として抽出する。
【００５８】
なお、図８（ａ）および（ｂ）では、把持される組付け対象部品１０４の面が異なっている。図８（ｂ）の面８０４は曲面形状であり、被組付け部品１１６と干渉せずに把持できる回転角度範囲は広いが、被組付け部品１１６の形状から狭いハンドとの接触面積しか得られないため、図８（ａ）の面８０３の方が安定的に把持可能である。図８（ａ）において、姿勢８０２よりも姿勢８０１の方が組付け対象部品１０４と被組付け部品１１６との接触面積は大きく、安定的に把持可能である。これらを加味して、複数の姿勢候補に対して優先順位を付けることができる。
【００５９】
さらに、ステップＳ５０６において、ハンド位置姿勢候補算出部１１２は、抽出されたハンド把持姿勢候補の各々について、作業空間内に配置されて、被組付け部品１１６に組付けられた状態の組付け対象部品１０４の把持部位の候補を実際に把持するための、ハンド機構１０２の位置姿勢を算出する。ここでは部品座標系をＳ５０３で抽出されたロボット座標系における組付け対象部品の位置姿勢に合致させることにより、ハンド把持位置姿勢をロボット座標系へ変換する。
【００６０】
以上、算出された組付け対象部品１０４の把持部位候補と、各把持部位候補を把持するのに適したハンド機構１０２の相対的な把持姿勢と、組付けられた状態の組付け対象部品１０４の把持位置を把持する作業空間中のハンド機構１０２の位置姿勢候補とは、セットで教示データ候補として管理される。
【００６１】
ステップＳ５０７において、ロボット制御部１１１は、Ｓ５０６で算出されたたハンド把持位置姿勢となるように、ロボットアーム１０１の各リンク間角度の目標状態を計算し、把持動作を行わせる。ここではＳ５０６で計算したハンド把持位置姿勢を目標として、ロボットの固定軸のリンクから順に、連結するリンクが目標位置に近づく方向に回転させて、最終的にハンドが目標位置姿勢に一致するときの全リンク間の角度を計算する。目標位置姿勢と一致させることができなかった場合は、当該ハンド把持位置姿勢は本ロボットシステムでは実行不可能な姿勢であるものと判断し、把持動作は行わない。
【００６２】
ステップＳ５０８において、干渉検知部１１５は、計画した把持動作が成功したか否かを判定する。動作中に干渉検知部１１５により干渉が検知された場合は、把持動作は失敗したものと判定される。把持動作が成功したと判定された場合（Ｓ５０８；ＹＥＳ）、Ｓ５０９へ進む。一方、把持動作が失敗したと判定された場合（Ｓ５０８；ＮＯ）、Ｓ５１０へ進む。
【００６３】
ステップＳ５０９において、教示データ格納部１１４は、当該組付け用ハンド把持姿勢と、部品の把持部位と、追加的に組付け後の目標位置姿勢とを対応付けて、組付け目標状態を教示する教示データの一つとして決定して格納する。
【００６４】
ステップＳ５１０において、ハンド位置姿勢候補算出部１１２は、処理中の把持部位候補に対するハンド把持姿勢候補の処理が一通り完了したか否かを判定する。ハンド把持姿勢候補の処理が一通り完了したと判定された場合（Ｓ５１０；ＹＥＳ）、Ｓ５１２へ進む。一方、まだ完了していないハンド姿勢候補があると判定された場合（Ｓ５１０；ＮＯ）、Ｓ５１１へ進む。
【００６５】
ステップＳ５１１において、ハンド位置姿勢候補算出部１１２は、次の組付け用ハンド姿勢候補を選択する。その後、Ｓ５０６へ戻る。ステップＳ５１２において、部品位置姿勢検出処理部１０８は、部品の把持部位候補の処理が一通り完了したか否かを判定する。部品の把持部位候補の処理が一通り完了したと判定された場合（Ｓ５１２；ＹＥＳ）、処理を終了する。一方、まだ完了していない把持部位候補があると判定された場合（Ｓ５１２；ＮＯ）、Ｓ５１３へ進む。ステップＳ５１３において、部品位置姿勢検出処理部１０８は、次の組付け用把持部位候補を選択する。その後、Ｓ５０４へ戻る。
【００６６】
以上の教示処理フローにより、組付け用ハンド把持姿勢、部品の把持部位のセットが、通常は複数通り教示データとして生成されて保存される。さらには、センシングデータを組付け後の目標位置姿勢情報として教示データに含めてもよい。
【００６７】
次に図６のフローチャートを参照して、図５の処理で生成された教示データを用いた、部品の把持および組付け動作の処理の手順を説明する。
【００６８】
ステップＳ６０１において、カメラ装置１０３は、組付け対象部品１０４が積載された部品供給トレイ１０５を撮影して、画像データを取得する。本実施形態では、図１に示すように山積み状態の部品供給トレイを想定しているが、前述のとおり本発明において供給形態は限定されるものではない。
【００６９】
ステップＳ６０２において、部品位置姿勢検出処理部１０８は、撮影された画像データに基づいて、組付け対象部品１０４の位置姿勢を検出する。この処理は図５の教示処理フローのステップＳ５０２の処理と同様であり、必要に応じて閾値等のパラメータは調整される。ステップＳ５０２の処理とは異なり、ここでは複数の部品の位置姿勢が検出される可能性があるが、以下の処理は１つの部品を選択した上で行う。
【００７０】
ステップＳ６０３において、部品位置姿勢検出処理部１０８は、ステップＳ５０３の処理と同様に部品形状データとのフィッティング処理を行い、まずはカメラ座標系における選択した部品の正確な位置姿勢を算出し、その後、これを作業空間中のロボット座標系へ変換する。
【００７１】
ステップＳ６０４において、ロボット制御部１１１は、教示データ格納部１１４に格納されている組付け用ハンド把持姿勢、部品の把持部位、さらには追加的に組付け後の目標位置姿勢、のセットである教示データを１つ選択して読み出す。
【００７２】
そしてステップＳ６０５において、ロボット制御部１１１は、検出された組み付け対象部品１０４が、当該教示データの組付け用ハンド把持姿勢で把持可能であるか否かを判定する。把持可能であると判定された場合（Ｓ６０５；ＹＥＳ）、Ｓ６０７へ進む。一方、把持可能でないと判定された場合（Ｓ６０５；ＮＯ）、Ｓ６０６へ進む。具体的には、教示データの部品座標系で表されたハンド機構１０２の位置姿勢を、選択された組付け対象部品１０４の位置姿勢に基づいて、作業空間中のロボット座標系で表される位置姿勢へ変換する。その上で、当該ハンド機構１０２の位置姿勢をロボットアーム１０１の駆動で取ることが可能であり、かつハンド機構１０２やロボットアーム１０１が部品供給トレイ１０５その他の作業環境と干渉しない場合は、把持可能であると判定される。
【００７３】
ステップＳ６０６において、ロボット制御部１１１は、今回用いた教示データが最後の教示データであるか否かを判定する。最後の教示データであると判定された場合（Ｓ６０６；ＹＥＳ）、検出された組付け対象部品１０４は把持不可能であるとして、次の組付け対象部品１０４若しくは次の部品供給トレイ１０５に対する処理へ移る。一方、他の教示データが残っていると判定された場合（Ｓ６０６；ＮＯ）、ＳＳ６０４へ戻る。
【００７４】
ステップＳ６０７において、ロボット制御部１１１は、ステップＳ６０５で計算されたロボット座標系でのハンド把持位置姿勢となるように、ロボットアーム１０１およびハンド機構１０２の各リンク間角度を計算し、組付け対象部品１０４を把持する動作を実行する。
【００７５】
ステップＳ６０８において、ロボット制御部１１１は、組付け対象部品１０４を把持した状態のまま、教示データの組付け後のハンド機構１０２の目標位置姿勢のデータに基づいて、ロボットアーム１０１を駆動して、組付け動作を行う。
【００７６】
ステップＳ６０９において、ロボット制御部１１１は、把持状態を解除してハンド機構１０２を所定位置に戻し、組付け動作を終了する。
【００７７】
本実施形態によれば、ユーザは被組付け部品の所定位置に組付けられた状態の組付け対象部品を作業環境中の所定位置へ配置した情報のみで、組立ロボットに対する組付け動作の教示を容易に行うことが可能となる。
【００７８】
本実施形態によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことができる。
【００７９】
（第２実施形態）
第１実施形態において、ステップＳ５０７では計算したハンド位置姿勢となるようにロボットを駆動し、ステップＳ５０８で当該動作中に干渉が生じたか否かを判別している。干渉は、ロボットのアームやハンド、把持した組付け対象部品等の可動部分が、被組付け部品や部品供給トレイ、作業台等の作業環境中の固定部分と衝突することにより生ずるものであるから、その頻度をできるだけ少なくすることが、耐故障性の観点で求められる。
【００８０】
本実施形態では、組付け状態の組付け対象部品の把持動作を、干渉可能性の低い場合に限って実行することで、故障する可能性を低減した教示処理フローを実現している。以下、図９のフローチャートを参照して、本実施形態における教示処理の手順を説明する。
【００８１】
図９において、ステップＳ９０１乃至ステップＳ９０６までの各処理は、図５のステップＳ５０１乃至ステップＳ５０６までの各処理と同様であるため、詳細な説明は省略する。またステップＳ９０８乃至ステップＳ９１４までの各処理は、ステップＳ５０７乃至ステップＳ５１３まで各の処理と同様である。
【００８２】
ステップＳ９０７において、ハンド位置姿勢候補算出部１１２は、ステップＳ９０６で計算された組付けられた状態の組付け対象部品１０４を把持するハンド把持位置姿勢に対し、ステップＳ５０７で行われる計算と同等の計算を行い、最終的にハンドが目標位置姿勢に一致するときの全リンク間の角度を計算する。そしてこれらのリンクを、作業空間を簡易にモデル化した仮想空間中に配置する。
【００８３】
図１０は、仮想空間の例を示している。ロボットアーム１０１およびハンド機構１０２は、各関節から次の関節までの軸をリンク１００１として、これらを接続したものをベースに、各リンクに固定された直方体によりモデル化されている。接続されたリンク同志は、それぞれ角度に機械的な拘束条件があり、取り得る回転方向および角度は所定範囲内となっている。リンクに固定された直方体は実空間中ではロボットアーム１０１またはハンド機構１０２の一部であり、拘束条件の範囲内では干渉しないようになっているため、仮想空間中で接続する２つのリンクの直方体同志の重なりが生じても、干渉は無いものとして無視する。
【００８４】
また、組付けられた状態の組付け対象部品１００２、所定位置に配置された被組付け部品１００３、部品供給トレイ１００４、作業台１００５等の作業環境データは、仮想空間中に固定された直方体の組み合わせでモデル化される。
【００８５】
ステップＳ９０７において、ハンド位置姿勢候補算出部１１２は、この仮想空間中において、前述の接続した２つのリンクの直方体以外のいずれかの直方体が、他の直方体の存在する空間に重なって存在していないかを確認する計算を行う。重なりが生じていなければ、実際に把持動作をさせた際に干渉が発生する可能性は低いものと判断できる。すなわちハンド位置姿勢候補算出部１１２は、算出した位置姿勢への移動に際して干渉可能性が低いか否かを判定する。干渉可能性が低いと判定された場合（Ｓ９０７；ＹＥＳ）、Ｓ９０８へ進む。ステップＳ９０８以降の処理において、第１実施形態と同様に、実際に干渉が発生しないことを確認して教示データとする。一方、干渉可能性が高いと判定された場合（Ｓ９０７；ＮＯ）、ロボットアーム１０１の駆動は行わずに、Ｓ９１１へ進む。
【００８６】
本実施形態によれば、ロボットアームを動作させた場合に干渉が発生する確率を低減することができ、ロボットシステムの耐故障性が向上する。
【００８７】
（第３実施形態）
本発明は、作業環境中に固定して配置されたカメラ装置１０３等のセンシング部に限らず、例えばロボットのハンドやアームに取り付けたセンシング部を用いて、センシング方向を可変とすることも可能である。
【００８８】
図１１（ａ）は、図１で説明したロボットアーム１０１のハンド機構１０２に、オンハンドカメラ１１７を装備した状態を示している。オンハンドカメラ１１７を用いる場合においても、図５或いは図９で説明した教示フローを用いることが可能で、図６の組付け動作フローにより組付け動作を行うことができる。但し、本実施形態では、オンハンドカメラ座標系はロボット座標系に対して固定されているわけではなくハンドのリンク座標系に固定される。従って、撮影画像から検出した部品の位置姿勢をロボット座標系に変換する際には、リンクを順に辿って計算する必要がある。尚、オンハンドカメラ１１７を、把持組付け動作を行うロボットとは別のロボットに取り付けた構成とすることも、もちろん可能である。
【００８９】
また、ステップＳ５０９或いはステップＳ９１０で把持が成功して教示データを保存する際に、改めてセンシング部により、組付け完了状態のセンシングデータを取得するようにすることも可能である。図１１（ｂ）は、オンハンドカメラ１１７により撮影した組付け完了状態の画像データの例を示している。これを教示データに加えて保持しておくことで、組付け動作を行う際の目標状態を表すデータとして利用することができる。
【００９０】
さらに撮影した組付け完了状態の画像データに対し、前述した部品位置姿勢検出処理を行うようにしてもよい。組付け完了した把持状態では、対象部品にハンドが接触しているので、把持する前の組付け状態よりも対象部品は見えにくくなっている可能性が高い。撮影した画像データに対し部品位置姿勢検出処理を行うことで、検出されやすい画像に対応する把持姿勢が、組付け時に対象部品が見えやすい、すなわち組付け動作に適した把持姿勢であるものと判断できる。
【００９１】
なお、もちろん組付け完了状態のセンシングデータの取得は、オンハンドカメラに限らず第１実施形態で説明した固定のカメラ装置１０３により行うようにしても構わない。さらには、固定カメラとオンハンドカメラとを併用する構成としてもよい。さらに、カメラに限らず、測距センサ等の他のセンシング部をオンハンドあるいは固定のセンシング部として用いることも可能である。
【００９２】
（第４実施形態）
組付け完了状態の教示データを取得するだけでなく、組付け動作の途中経路の各状態を示す教示データを生成するようにすることも可能である。図１２のフローチャートを参照して、本実施形態における途中経路状態教示データの生成処理の手順を説明する。
【００９３】
図１２において、ステップＳ１２０１乃至ステップＳ１２０９までの各処理は、図５のステップＳ５０１乃至ステップＳ５０９までの各処理と同様であるので、詳細な説明は省略する。またステップＳ１２１６乃至ステップＳ１２１９までの各処理は、ステップＳ５１０乃至ステップＳ５１３までの処理と同様である。本実施形態に係る教示フローでは、ステップＳ１２１０乃至ステップＳ１２１５までの各処理が新たに追加された処理となっている。
【００９４】
ステップＳ１２０８で組付け状態の対象部品の把持が成功し、ステップＳ１２０９で組付け目標状態を教示する教示データが保存されたら、ステップＳ１２１０において、ロボット制御部１１１は、組付け状態の対象部品を引き抜き、部品供給トレイへと戻す動作の経路の候補を計算する。通常、この経路の候補は複数通りあり得る。図１３（ａ）−（ｃ）は、経路候補の一例により部品を戻す動作を行った際の途中状態を示しており、図１３（ａ）の組付け完了状態から、図１３（ｂ）、図１３（ｃ）の順にロボットの状態が変化していく様子を示している。経路候補を算出する上では、図１３（ｃ）の部品供給トレイ１０５付近の状態は実際には把持する部品の位置姿勢に応じて変化するものであるので、例えば部品トレイの中心付近の位置を目標位置とするだけでよく、厳密な目標姿勢は定義しない。
【００９５】
次にステップＳ１２１１において、ロボット制御部１１１は、一つの経路候補を選んで、把持している組付け状態の対象部品を供給トレイへと戻す動作を実行する。
【００９６】
そしてステップＳ１２１２において、干渉検知部１１５は、部品供給トレイ１０５へ戻す動作が成功したか否かを判定する。ここではステップＳ１２０８と同様に、干渉検知部１１５は、動作中に干渉が生じたか否かを判定する。干渉が生じていた場合は、続く処理をスキップして、ステップＳ１２１４へ進む。
【００９７】
干渉が生じなかった場合は、実際の組付け時に用いることのできる経路であるものと判断し、ステップＳ１２１３において、教示データ格納部１１４は、図１３に示したような時系列変化の途中状態を逆順に並べて、組付け動作の途中経路を教示する教示データとして格納する。
【００９８】
そしてステップＳ１２１４において、ロボット制御部１１１は、戻す動作の経路候補がまだ残っているかを確認し、残っていればステップＳ１２１５へ進み、次の経路を選択して、ステップＳ１２１１へ戻る。一方、残っていなければ、ステップＳ１２１６へ進む。
【００９９】
以降の処理は図５のステップＳ５１０以降の処理と同様である。
【０１００】
なお、ステップＳ１２１０およびステップＳ１２１１の各処理は、ユーザが不図示のロボット操作受付部を用いて手動の操作により行うようにしてもよい。精度を要求される組付け完了状態は既にステップＳ１２０９までの処理で完了しており、組付け状態から対象部品を供給トレイに戻す動作は、通常それほど高い精度は要求されないため、手動の操作でも容易に実行可能である。ユーザが作業環境を見ながら手動で操作することにより、不必要な干渉の発生を抑えられシステムを故障させる可能性を低減できる。
【０１０１】
以上により、組立ロボットシステムで対象部品の組付け動作を行う際の、組付け目標状態だけでなく経路情報も併せて教示することが可能となる。
【０１０２】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。例えば、生産用ロボットシステムに限らず、家庭用ロボット等の種々のロボットシステムにおける教示方法としても適用可能であることは言うまでもない。
【０１０３】
本発明によれば、組立ロボットに対する組付け動作の教示を、特別な治具等を必要とせず、またユーザによる煩雑な指定操作を必要とせずに、容易に行うことを目的とする。
【０１０４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005852364.tif 000002
【図５】
0005852364.tif 000003
【図６】
0005852364.tif 000004
【図８】
0005852364.tif 000005
【図９】
0005852364.tif 000006
【図１０】
0005852364.tif 000007
【図１２】
0005852364.tif 000008
【図１３】
0005852364.tif 000009
【図２】
0005852364.tif 000010
【図３】
0005852364.tif 000011
【図４】
0005852364.tif 000012
【図７】
0005852364.tif 000013
【図１１】
0005852364.tif 000014