(57)【要約】  組立作業を実施するロボットのための組立教示装置を、組立対象部品の組立順序情報と、組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、配置情報、およびロボットハンドの寸法、配置情報とを取得するデータ読込部と、組立設備上での組立対象部品の配置情報から該部品の組付点を算出する組付点生成部と、組立対象部品の他部品との接触面情報から組付方向を算出する組付方向算出部と、シミュレーションを行い、干渉を起こす周辺部品の有無を判定し、周辺部品が有る場合には周辺部品を回避する退避点（Ｐｓ）を、及び周辺部品の有無に係らず組付直前の退避点（Ｐｂ）、および組付直後の退避点（Ｐａ）を算出する退避点生成部と、組立順序情報、算出した組付点および退避点からロボット動作プログラムを生成するプログラム生成部と、生成したロボット動作プログラムを外部機器に出力する組立教示出力部とを備えて構成した。
2016151862.tif 000002
【特許請求の範囲】
【請求項１】
組立作業を実施するロボットのための組立教示装置において、   組立対象部品の組立順序情報と、組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、配置情報、およびロボットハンドの寸法、配置情報とを取得するデータ読込部と、   組立設備上での組立対象部品の配置情報から該部品の組付点を算出する組付点生成部と、  組立対象部品の他部品との接触面情報から組付方向を算出する組付方向算出部と、  ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出する退避点生成部と、  組立順序情報と、算出した組付点および退避点からロボット動作プログラムを生成するプログラム生成部と、  生成したロボット動作プログラムを外部機器に出力する組立教示出力部とを有することを特徴とする組立教示装置。
【請求項２】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  ユーザが指定入力した周辺部品判定距離Ｅ’に従って、周辺部品を回避する退避点Ｐｓ、またはその暫定値、および組付直前の退避点Ｐｂを算出し、  前記退避点Ｐｓから前記退避点Ｐｂまで評価対象ロボットによる搬送をシミュレーションして、組立対象部品個別の周辺部品判定距離Ｅを算出し、  前記周辺部品判定距離Ｅに従って、干渉を起こす周辺部品の有無を再度判定することを特徴とする組立教示装置。
【請求項３】
前記退避点生成部が算出する周辺部品を回避する退避点Ｐｓ、組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａは、前記組付方向算出部が算出した組付方向の逆方向に前記組付点からベクトルを設定した場合に、いずれの退避点も同一方向のベクトル上に設定されていることを特徴とする請求項１に記載の組立教示装置。
【請求項４】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  組立対象部品を挿入部品か、否かを判定し、  挿入部品の場合は、組立対象部品の寸法情報から組付方向における部品の長さと挿入部長さを抽出し、  前記部品の挿入部長さから組付直前の退避点Ｐｂを算出し、  前記部品の長さと挿入部長さとの差分から組付直後の退避点Ｐａを算出し、  前記組付点と前記組付直前の退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項５】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  組立対象部品を挿入部品か、否かを判定し、  挿入部品の場合は、組立対象部品の寸法情報から部品の挿入部長さを抽出し、  前記挿入部品の組付け動作で干渉する周辺部品が存在するかを判定し、  干渉する周辺部品が存在する場合に、前記挿入部品の組付方向において前記組付点と前記干渉する周辺部品の前記組付方向と逆方向に最も遠い面との距離(周辺部品距離)を抽出し、  前記部品の挿入部長さと前記周辺部品距離から周辺部品を回避する退避点Ｐｓを算出し、  前記周辺部品距離から組付直後の退避点Ｐａを算出し、  前記組付点と前記周辺部品を回避する退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項６】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  組立対象部品が被組立対象部品の突出部に挿入されて組み付けられる部品か否かを判定し、  被組立対象部品の突出部に挿入されて組み付けられる部品の場合に、被組立対象部品の突出部の長さを前記組立対象部品の挿入部長さとして抽出し、  前記部品の挿入部長さから組付直前の退避点Ｐｂを算出し、  前記組付点と前記組付直前の退避点との距離が前記組付点と組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項７】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  組立対象部品を挿入部品か、否かを判定し、  前記組立対象部品が挿入部品で無く、かつ干渉する周辺部品が存在しない場合に、前記組付点と組付直前の退避点との距離と前記組付点と組付直後の退避点との距離とが同じとなる退避点を生成することを特徴とする組立教示装置。
【請求項８】
請求項１に記載の組立教示装置において、  前記退避点生成部は、  組立対象部品が挿入部品か、否かを判定し、  前記組立対象部品が挿入部品で無い場合に、前記組立対象部品の寸法情報から組付け方向の部品の長さを抽出し、  前記非挿入部品の組付け動作で干渉する周辺部品が存在するかを判定し、  干渉する周辺部品が存在する場合に、前記非挿入部品の組付方向において前記組付点と前記干渉する周辺部品の前記組付方向と逆方向に最も遠い面との距離(周辺部品距離)を抽出し、  前記組付け方向の部品の長さと前記周辺部品距離から周辺部品を回避する退避点Ｐｓを算出し、  前記周辺部品距離から組付直後の退避点Ｐａを算出し、  前記組付点と前記周辺部品を回避する退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項９】
組立作業を実施するロボットのための組立教示方法において、   組立対象部品の組立順序情報と、組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、配置情報、およびロボットハンドの寸法、配置情報とを取得するステップと、   組立設備上での組立対象部品の配置情報から該部品の組付点を算出するステップと、  組立対象部品の他部品との接触面情報から組付方向を算出するステップと、  ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出するステップと、  組立順序情報と、算出した組付点および退避点からロボット動作プログラムを生成するステップと、  生成したロボット動作プログラムを外部機器に出力するステップとを有することを特徴とする組立教示方法。
【請求項１０】
請求項９に記載の組立教示方法において、  ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出する前記ステップは、更に、  ユーザが指定入力した周辺部品判定距離Ｅ’に従って、周辺部品を回避する退避点Ｐｓ、またはその暫定値、および組付直前の退避点Ｐｂを算出し、  前記退避点Ｐｓから前記退避点Ｐｂまで評価対象ロボットによる搬送をシミュレーションして、組立対象部品個別の周辺部品判定距離Ｅを算出し、  前記周辺部品判定距離Ｅに従って、干渉を起こす周辺部品の有無を再度判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出するステップであることを特徴とする組立教示方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、部品の組立教示装置、および組立教示方法に関する。
【背景技術】
【０００２】  ロボットを活用して部品を組み立てる場合、ロボットの動作プログラムは部品のピックアップ位置や組付位置といったロボットが経由する地点、いわゆる動作点にロボットを動かして座標・姿勢を登録し、登録した動作点を繋いだ動作をプログラム化するティーチングプレイバック手法を用いて作成するのが一般的である。部品の組立においてティーチングプレイバック手法で登録する必要がある動作点は、部品のピックアップ位置や組付位置といった最終目的位置だけでなく、最終目的位置到達までに通過する経由位置や、最終目的位置直前の退避位置など、ひとつの動作に対して複数存在する。また、ロボットを活用した組立作業の場合は直線的な動作の組合せではないため、動作点は３次元空間上に複雑に配置される。【０００３】  多関節ロボットにより部品の組立て動作を行わせる場合には、最終組付位置直前には、最終組付位置まで部品を移動させる軌道は、直線補間制御により部品の姿勢を精度良く保った状態で直線動作を行わせることが必要となる。しかし、各関節を協調動作させて直線補間制御を行うと、速度が遅くなることから、なるべく直線補間制御をする距離は短くして、その他の動作点間のロボット動作は、全関節を協調せずに同時に制御するＰＴＰ軌道制御を多く採用することが、生産性を高める上で一般的に行われている。【０００４】  ティーチングプレイバック手法には、ロボットをコントローラで直接操作して動作点を登録するダイレクト方式と、計算機空間上に実空間と同様のロボットモデルを構築して直接ロボットを操作せずにシミュレータで仮想的に動作点を登録するオフライン方式がある。どちらの方式においても、教示して登録した退避位置の動作点が最終目的位置から遠くなるほどロボットが不必要に長い経路を直線補間制御により通過して、組立に余計な時間がかかり生産性が低下する。また、近傍に他部品が配置されている場合には、登録した退避位置の動作点によっては他部品と衝突して破損する恐れもあるため、動作点の教示には熟練した作業者が必要となっていた。【０００５】  本技術分野の背景技術として、特開２００６−４２６２号公報（特許文献１）がある。この公報には、「各作業対象点で実行予定の作業と、エンドエフェクタの特性との関係まで考慮して、オフラインティーチング用のデータが作成できるロボット教示データの作成方法を提供する。コンピュータ上で仮想のロボットを動作させて、ロボットのティーチングを行うオフラインティーチング方法において、ロボットが作業を行うワーク上の各作業対象点について、ロボットが実行予定の作業内容と作業に用いる工具の工具特性とが適合しているか否かを判定する適合判定段階（ステップＳ３）を含むことを特徴とするオフラインティーチング方法。」と記載されている（要約参照）。【０００６】  また、特開平１１−１９４８１２号公報（特許文献２）がある。この公報には、「ロボットのオフラインティーチングにおいて、ティーチング後のデータ変更が極力少なくなるような、より適切な動作軌跡を得ることができるオフラインティーチング方法を提供する。ロボットが作業を行うワーク上の複数の教示対象点に対して、各教示対象点ごとに、ロボットが作業するための進��角度を抽出する段階（Ｓ２）と、抽出した各教示対象点でのロボットの進入角度を全数比較し、その角度が予め定められた許容範囲内に収まる教示対象点をグループ化し、各グループ内において、ロボットが連続的に動作するように各グループ内の各教示対象点を結線する動作軌跡を作成する段階（Ｓ３）と、を有することを特徴とするオフラインティーチング方法。」と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−４２６２号公報
【特許文献２】特開平１１−１９４８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】  しかしながら、上記特許文献１および２の方法は、事前に登録した動作点に対して成立性の判定や最適化をしているため、動作点自体の最適化は教示者の熟練度に依存する。また、最終目的位置直前の退避位置の動作点登録は別途必要となる。【０００９】  本発明は、このような事情を鑑みてなされたものであって、部品やロボット等の位置関係が３次元的に図示されたデータを用いて、組立作業における最終目的位置の動作点（組付点）および最終目的位置直前の退避位置の動作点（退避点）を算出してロボットに教示する組立教示装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】  上記課題を解決するために本発明では、組立作業を実施するロボットのための組立教示装置を、組立対象部品の組立順序情報と、組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、配置情報、およびロボットハンドの寸法、配置情報とを取得するデータ読込部と、組立設備上での組立対象部品の配置情報から該部品の組付点を算出する組付点生成部と、組立対象部品の他部品との接触面情報から組付方向を算出する組付方向算出部と、ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出する退避点生成部と、組立順序情報と、算出した組付点および退避点からロボット動作プログラムを生成するプログラム生成部と、生成したロボット動作プログラムを外部機器に出力する組立教示出力部とを備えて構成した。【００１１】  また、上記課題を解決するために本発明では、前記組立教示装置において、前記退避点生成部は、ユーザが指定入力した周辺部品判定距離Ｅ’に従って、周辺部品を回避する退避点Ｐｓ、またはその暫定値、および組付直前の退避点Ｐｂを算出し、前記退避点Ｐｓから前記退避点Ｐｂまで評価対象ロボットによる搬送をシミュレーションして、組立対象部品個別の周辺部品判定距離Ｅを算出し、前記周辺部品判定距離Ｅに従って、干渉を起こす周辺部品の有無を再度判定するように構成した。【００１２】  また、上記課題を解決するために本発明では、前記組立教示装置において、前記退避点生成部は、組立対象部品を挿入部品か、否かを判定し、挿入部品の場合は、組立対象部品の寸法情報から部品の挿入部長さを抽出し、前記挿入部品の組付け動作で干渉する周辺部品が存在するかを判定し、干渉する周辺部品が存在する場合に、前記挿入部品の組付方向において前記組付点と前記干渉する周辺部品の前記組付方向と逆方向に最も遠い面との距離(周辺部品距離)を抽出し、前記部品の挿入部長さと前記周辺部品距離から周辺部品を回避する退避点Ｐｓを算出し、前記周辺部品距離から組付直後の退避点Ｐａを算出し、前記組付点と前記周辺部品を回避する退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成するように構成した。【００１３】  また、上記課題を解決するために本発明では、組立作業を実施するロボットのための組立教示方法において、組立対象部品の組立順序情報と、組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、配置情報、およびロボットハンドの寸法、配置情報とを取得するステップと、組立設備上での組立対象部品の配置情報から該部品の組付点を算出するステップと、組立対象部品の他部品との接触面情報から組付方向を算出するステップと、ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出するステップと、組立順序��報と、算出した組付点および退避点からロボット動作プログラムを生成するステップと、生成したロボット動作プログラムを外部機器に出力するステップとを有するようにした。
【発明の効果】
【００１４】  本発明によれば、部品の挿入組立において、部品の長さと挿入長さ、周辺部品との位置関係を考慮した動作点を自動生成することができる。また、教示者の熟練度に依存しない動作点登録を可能にし、ロボットの動作距離を最短化できるため、生産性向上に貢献する組立教示装置を得ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例に関わる組立教示装置の概略構成図である。
【図２】本発明の実施例に関わる３次元図面情報の要素を説明する図である。
【図３】本発明の実施例に関わる組立教示処理のフローチャートである。
【図４】本発明の実施例に関わる組立教示装置における退避点算出の処理フローを示した図である。
【図５】本発明の実施例に関わる挿入部品の退避点算出の処理フローを示した図である。
【図６】組付対象部品の周辺に他部品が存在する場合のロボットの組立動作について説明した図である。
【図７】組付対象部品の周辺に他部品が存在しない場合のロボットの組立動作について説明した図である。
【図８】組付対象部品が被組付対象部品の位置決めピンに挿入される場合のロボットの組立動作について説明した図である。
【図９】本発明の実施例に関わる非挿入部品の退避点算出の処理フローを示した図である。
【図１０】組付対象部品の周辺に他部品が存在する場合のロボットの組立動作について説明した図である。
【図１１】組付対象部品の周辺に他部品が存在しない場合のロボットの組立動作について説明した図である。
【図１２】ロボットによる組立作業におけるロボットの動作を説明した図である。
【図１３】ロボットによる組立作業において、周辺部品を回避する退避点Ｐｓから組付直前の退避点Ｐｂまで円弧を描いて移動した際の、任意の時間ｔにおけるロボットの位置Ｐｔを示した図である。
【図１４】ロボットハンドによる組立対象部品の把持状態と周辺部品の有無を判定するための距離Ｅの関係を説明した図である。
【図１５】表示部に表示される組立教示装置の表示画面例について説明した図である。
【図１６】組立教示装置によって出力された組付点および退避点をロボットシミュレータで表示した例について説明した図である。
【発明を実施するための形態】
【００１６】  以下、本発明の実施形態の例について図面を参照しながら説明する。
【実施例１】
【００１７】  図１〜１６を用いて、本発明の組立教示装置の一実施例として、部品組立作業を例にとって説明する。【００１８】  《組立教示装置の構成》  図１に、本発明の組立教示装置１００の概略構成図の１例を示す。  組立教示装置１００は、汎用の計算機上に構成することができて、そのハードウェア構成は、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）などより構成される演算部１１０、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）などより構成される記憶部１２０、キーボードやマウス等の入力デバイスより構成される入力部１３０、ＬＣＤ（Liquid Crystal Display）などの表示装置、各種出力装置などより構成される表示部１４０、ＮＩＣ（Network Interface Card）などにより構成される通信部１５０、などを備える。  通信部１５０は、ネットワーク１９０を介して外部のＣＡＤ装置１６０、ロボットコントローラ１７０、ロボットシミュレータ１８０などと接続されている。【００１９】  記憶部１２０は、本発明の組立教示処理を実行する組立教示処理プログラムを記憶する領域１２１と、ＣＡＤ装置１６０により作成されてネットワーク１９０を介して受信された、または同じ装置１００に実装されたＣＡＤシステム(図示せず)が作成した部品、設備、ロボットハンドなどの３次元の図面情報を記憶する領域１２２と、ＣＡＭシステム(図示せず)などで作成された部品の組立て順序を記載した組立順序情報記憶領域１２３と、生成した動作点、ロボット動作プログラムなどを記憶する組立教示結果記憶領域１２４を備える。【００２０】  演算部１１０は、記憶部１２０に記憶されている組立教示処理プログラム１２１をロードして実行することにより、以下の各機能部を実現する。  演算部１１０は、前記３次元図面情報１２２や前記組立順序情報１２３を読み込むデータ読込部１１１と、３次元図面情報１２２から最終目的位置となる組付位置の動作点を算出する組付点生成部１１２と、３次元図面情報１２２から部品の組付方向を算出する組付方向算出部１１３と、３次元図面情報１２２と組立順序情報１２３から最終目的位置直前の退避位置の動作点を算出する退避点生成部１１４と、生成した動作点を順に並べてロボット動作プログラムとして記述するプログラム生成部１１５と、出力先となるロボットを直接動かすロボットコントローラ１７０または計算機上でロボット動作を確認するロボットシミュレータ１８０に合わせたファイル形式で生成したロボット動作プログラムを出力する、及び組立教示結果記憶領域１２４へ記録する組立教示出力部１１６とを備えている。【００２１】  組立教示装置１００には、組立教示処理プログラム１２１以外に、その他のティーチング機能のプログラム、ＣＡＤシステム、ＣＡＭシステムなどのプログラムを併存させて実装する構成であってもよい。ただし、図１では、本発明の組立教示処理プログラム１２１に関わる機能部、記憶領域のみを記載している。【００２２】  《３次元図面情報》  組立教示装置１００で読み込む３次元の図面情報１２２は、３次元の画像として表示できる必要は必ずしもなく、部品の寸法や配置されている座標などが格納されている文字情報であってもよい。  例えば、３次元の図面情報１２２は、図２に示すような要素が���まれる。要素は、組立対象とする部品、ロボットハンドおよびロボットであり、各要素が複数個存在する場合にはＩＤにより識別する。部品には８種の項目が格納されており、部品の種別、組付方向の長さ、挿入部長さ、バウンディングボックスおよび構成面の寸法に関する情報と、他部品との接触面番号、設備上での配置（ピックアップ時）および設備上での配置（組付時）の配置に関する情報とが格納されている。ロボットハンドには３種の項目が格納されており、部品把持時のハンド寸法と部品の把持位置の寸法に関する情報と、ロボット上での配置情報が格納されている。ロボットには２種の項目が格納されており、軸間の寸法情報と設備上での配置情報が格納されている。これらの情報は、３次元ＣＡＤモデルのプロパティとして追記する方法、テキスト形式やＸＭＬ形式で定義する方法などにより入力される。【００２３】  《組立教示装置の動作》  図３は、本発明による組立教示処理のフローチャートについて説明した図である。組立教示処理では第１に、データ読込部１１１において３次元の図面情報１２２や部品の組立順序情報１２３を読み込む（Ｓ８０１）。  第２に、組付点生成部１１２において、３次元の図面情報１２２に格納された組立対象部品の組付時の設備上での配置を抽出し、組付点Ｐｍを算出する（Ｓ８０２）。ここでいう組付点Ｐｍとは、組立作業における最終目的位置となる被組立対象部品に組み付けられた際の組立対象部品の位置座標情報および姿勢情報である。組付点Ｐｍは、組立対象部品をロボットハンドで把持したときのロボットハンドの先端と一致する点として定義する。【００２４】  第３に、組付方向算出部１１３において、３次元の図面情報１２２に格納された組立対象部品の他部品との接触面を抽出し、接触面の位置関係から組立対象部品の組付方向を算出する（Ｓ８０３）。組付方向は、例えば１つの平面で接触していた場合は接触面の法線ベクトルを組付方向とし、１つの円筒面で接触していた場合は接触面の軸ベクトルを組付方向として算出する。  第４に、退避点生成部１１４において退避点を算出する（Ｓ８０４）。退避点算出については図４、５、９にて説明する（後述）。【００２５】  第５に、プログラム生成部１１５において組立順序情報１２３とステップＳ８０２とステップＳ８０４で算出した組付点および退避点を用い、組立順序に従って組付点および退避点を順に繋いだ経路をロボット動作経路として生成し、ロボット動作用のプログラムを生成する（Ｓ８０５）。  第６に、組立教示出力部１１６において、生成したロボット動作プログラムをロボットコントローラ１７０またはロボットシミュレータ１８０、及び組立教示結果記憶領域１２４に出力する（Ｓ８０６）。【００２６】  《退避点生成部における退避点算出処理》  図４は、本発明による組立教示装置における退避点算出の処理フローについて説明した図である。退避点算出では第１に、３次元の図面情報１２２に格納された組立対象部品の挿入部長さ情報を取得する（Ｓ９０１）。  第２に、取得した挿入部長さ情報をもとに、組立対象部品が挿入部品であるか判定する（Ｓ９０２）。判定は、挿入部長さ情報の有無により行い、挿入部長さ情報が格納されているねじやコネクタ��いった部品は挿入部品と判定し、挿入部長さ情報が格納されていないカバーや基板といった部品は挿入部品ではないと判定する。ただし、挿入部長さ情報が格納されておらず挿入部品ではないと判定する部品であっても、位置決め用の穴が設けられ、位置決めピンに挿入して組み立てる部品の場合がある。このため、挿入部品ではないと判定する部品種別の場合は、３次元の図面情報１２２に格納された部品の組付時の設備上での配置情報、バウンディングボックス情報、および他部品との接触面情報から、組立対象部品と接触する他部品との位置関係を抽出し、組付時の組立対象部品が周辺の他部品のバウンディングボックスと干渉していた場合は他部品の内部に一部挿入されるものとみなして挿入部品と判定する。挿入部品であった場合は第３に挿入部品の退避点を算出し（Ｓ９１０）、挿入部品でなかった場合は第３に非挿入部品の退避点を算出する（Ｓ９４０）。【００２７】  《挿入部品の退避点算出処理》  挿入部品の退避点算出処理（Ｓ９１０）について、図５、６、７、８を用いて説明する。  図５は、挿入部品の退避点算出における処理フローについて説明した図である。図６は、組付対象部品の周辺に他部品が存在する場合のロボットの組立動作について説明した図である。図７は、組付対象部品の周辺に他部品が存在しない場合のロボットの組立動作について説明した図である。図８は、組付対象部品が被組付対象部品の位置決めピンに挿入される場合のロボットの組立動作について説明した図である。【００２８】  挿入部品の退避点算出処理ではステップＳ９１１において、図６(Ａ)または図７(Ａ)に示す組立対象部品の長さＭと挿入部の長さＬを３次元の図面情報１２２から取得する。なお、前述のように位置決めピンに挿入して組み立てられる部品も挿入部品とすることから、図８(Ａ)に示すように、位置決めピンに挿入して組み立てられる部品であれば位置決めピンの長さを挿入部の長さＬ(被組付対象部品側の３次元図面情報の挿入部長さにデータが格納されている。)として取得する。【００２９】  ステップＳ９１２において、組立対象部品の周囲Ｅ’以内に配置されている周辺部品を抽出する。（組立対象部品を被組立対象部品へ組み付ける際に、最終組付位置までロボットハンドで組付け動作をする過程で、既存の周辺部品に組立対象部品、またはロボットハンドが干渉する可能性をチェックする。図１３にて後述するが、ロボットの機種、位置、姿勢、軌道補間方法により、円弧軌道は異なるので、組立対象部品毎に調べる必要があるが、本ステップでは、最終組付位置に位置決めした組立対象部品の周囲を判定する距離Ｅ’をユーザが指定して、周辺部品の判定に暫定的な固定値として使用する。）  周辺部品の抽出の際、組立順序情報１２３を利用し、既に組み付けられている部品は周辺部品として判定対象とし、まだ組み付けられていない部品は周辺部品の判定対象としない。組立作業の進展に応じて周辺部品を増加させることで、各場面での組立対象の状態を周辺部品判定に反映させることができる。【００３０】  ステップＳ９１３において、周辺部品の有無を判定する。周辺部品の判定の詳細については後述する。周辺部品が有る場合はステップＳ９２１へ移行し、無い場合はステ���プＳ９３３へ移行する。周辺部品の有無により以降の処理が異なるため、まずは周辺部品が存在する場合について、図６を用いて説明する。【００３１】  周辺部品が存在する場合、ステップＳ９２１において、組付点生成部１１２により得られた組付点Ｐｍと、組付方向算出部１１３により得られた組立対象部品の組付方向Ｕと、３次元の図面情報１２２に格納された周辺部品の構成面情報と設備上での配置情報から、図６(Ａ)に示した組付点Ｐｍと周辺部品の前面との距離Ｈを取得する。周辺部品の構成面情報と設備上での配置情報において組付方向Ｕと逆方向で組付点Ｐｍから最も遠い面を前面として抽出し、組付方向Ｕと逆方向における周辺部品の前面と組付点Ｐｍとの距離を算出して距離Ｈとする。【００３２】  ステップＳ９２２において、図６(Ａ)に示した周辺部品を回避する退避点Ｐｓを算出する。このとき、設備内における組付点Ｐｍの座標を（Ｍｘ，Ｍｙ，Ｍｚ）とし、周辺部品を回避する退避点Ｐｓの座標を（Ｓｘ，Ｓｙ，Ｓｚ）としたとき、組付点Ｐｍと周辺部品を回避する退避点Ｐｓとの関係は、組付方向の単位ベクトルｕ＝（ｕｘ，ｕｙ，ｕｚ）を用いて以下の式で表わされる。（数１）（Ｓｘ，Ｓｙ，Ｓｚ）＝（Ｍｘ，Ｍｙ，Ｍｚ）−ｓ（ｕｘ，ｕｙ，ｕｚ）（数２）ｓ＝Ｌ＋δ＋Ｈここで、δは退避距離の余裕長を示す定数、ｓは退避点Ｐｓと組付点Ｐｍとの距離である。  退避点Ｐｓは組付点Ｐｍに対して組付方向Ｕの同軸上に配置され、この計算式で定義される周辺部品を回避する退避点Ｐｓを算出することにより、周辺部品を考慮した上で組付点から退避点までの距離ｓを最小化し、かつ他部品との干渉も回避することが可能となる。【００３３】  ステップＳ９２３において、図６(Ｂ)に示した組付直前の退避点Ｐｂを算出する。このとき、設備内における組付直前の退避点Ｐｂの座標を（Ｂｘ，Ｂｙ，Ｂｚ）としたとき、組付点Ｐｍと組付直前の退避点Ｐｂとの関係は組付方向の単位ベクトルｕを用いて以下の式で表わされる。（数３）（Ｂｘ，Ｂｙ，Ｂｚ）＝（Ｍｘ，Ｍｙ，Ｍｚ）−ｂ（ｕｘ，ｕｙ，ｕｚ）（数４）ｂ＝Ｌ＋δここで、ｂは退避点Ｐｂと組付点Ｐｍとの距離である。  退避点Ｐｂは退避点Ｐｓと同様に組付点Ｐｍに対して組付方向Ｕの同軸上に配置され、この計算式で定義される組付直前の退避点Ｐｂを算出することにより、組付点のより近傍に退避点を定義して組付点から退避点までの距離ｂを最小化することが可能となる。【００３４】  ステップＳ９２４において、図６(Ｄ)に示した組付直後の退避点Ｐａを算出する。このとき、設備内における組付直後の退避点Ｐａの座標を（Ａｘ，Ａｙ，Ａｚ）としたとき、組付点Ｐｍと組付直後の退避点Ｐａとの関係は組付方向の単位ベクトルｕを用いて以下の式で表わされる。（数５）（Ａｘ，Ａｙ，Ａｚ）＝（Ｍｘ，Ｍｙ，Ｍｚ）−ａ（ｕｘ，ｕｙ，ｕｚ）（数６）ａ＝δ＋Ｈここで、ａは退避点Ｐａと組付点Ｐｍとの距離である。【００３５】  部品を組み付けた後は部品を把持していないため、組付前の周辺部品を回避する退避点Ｐｓまで退避する必要はなく、周辺部品のみを考慮した位置まで退避すればよい。退避点Ｐａも退避点Ｐｓ、Ｐｂと同様に組付点Ｐｍに対して組付方向Ｕの同軸上に配置され、この計算式で定���される組付直後の退避点Ｐａを算出することにより、組付後の部品を把持していない時の組付点から退避点までの距離ａを最小化することが可能となる。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｓとの距離ｓは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００３６】  ステップＳ９２５において、組立対象部品ごとの周辺部品判定距離Ｅを、暫定値Ｅ’により算出した退避点Ｐｓ(周辺部品が無いと暫定値Ｅ’により判定されて、退避点Ｐｓが算出されていない場合には、退避点Ｐｂより所定の高さだけ上部に暫定的に退避点Ｐｓを設定してロボットのシミュレーションに使用する。)、Ｐｂの間を評価対象のロボットにより、使用する軌道補間制御方法により組立対象部品を移動させるシミュレーションを行い、後述する(数１１)によって算出する。【００３７】  ステップＳ９２６において、算出した周辺部品判定距離Ｅを使用して、組立対象部品の周囲Ｅ以内に配置されている周辺部品を再度抽出する。  ステップＳ９２７において、ステップＳ９２６で抽出した周辺部品の中に、ステップＳ９１２で抽出した周辺部品以外の周辺部品が有る場合にはステップＳ９２１へ移行し、無い場合には、挿入部品の退避点算出処理を終了する。【００３８】  次に、周辺部品が存在しない場合について、図７、８を用いて説明する。周辺部品が存在しない場合、ステップＳ９３３において、図７(Ａ)または図８(Ａ)に示した組付直前の退避点Ｐｂを算出する。このとき、組付点Ｐｍと組付直前の退避点Ｐｂとの関係は周辺部品が存在する場合と同じ（数４）となる。【００３９】  ステップＳ９３４において、図７(Ｃ)に示した組付直後の退避点Ｐａを算出する。このとき、組付点Ｐｍと組付直後の退避点Ｐａとの関係は以下の式で表わされる。（数７）ａ＝Ｍ−Ｌ＋δ  部品を組み付けた後は部品を把持していないため、組付直前の退避点Ｐｂまで退避する必要はないが、部品の挿入されていない部分の長さＭ−Ｌを考慮して退避しなければならない。これらの計算式で定義される組付直後の退避点Ｐａを算出することにより、部品の挿入されていない部分を考慮した上で組付後の部品を把持していない時の組付点から退避点までの距離ａを最小化することが可能となる。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｂとの距離ｂは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００４０】  図８(Ｃ)に示した位置決めピンに挿入して組み付けられる部品においては組付後に退避する距離が異なり、以下の式で表わされる。（数８）ａ＝δこれは、組付後に挿入されていない部分の長さを考慮せずに退避可能なためである。これらの計算式で定義される組付直後の退避点Ｐａを算出することにより、部品の挿入されていない部分を考慮した上で組付後の部品を把持していない時の組付点から退避点までの距離ａを最小化することが可能となる。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｂとの距離ｂは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００４１】  退避点生成部１１４が算出する周辺部品を回避する退避点Ｐｓ、組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａは、組付方向算出部１１３が算出した組付方向の逆方向に��記組付点からベクトルを設定した場合に、いずれの退避点も同一方向のベクトル上に設定されている  《非挿入部品の退避点算出処理》  非挿入部品の退避点算出処理Ｓ９４０について、図９、１０、１１を用いて説明する。図９は、非挿入部品の退避点算出処理におけるフローチャートについて説明した図である。図１０は、組付対象部品の周辺に他部品が存在する場合のロボットの組立動作について説明した図である。図１１は、組付対象部品の周辺に他部品が存在しない場合のロボットの組立動作について説明した図である。【００４２】  非挿入部品の退避点算出処理ではステップＳ９４１において、図１０(Ａ)または１１(Ａ)に示す３次元の図面情報１２２に格納された組立対象部品の長さＭを取得する。  ステップＳ９４２において、組立対象部品の周囲Ｅ’（ステップＳ９１２における説明と同様に、ユーザが指定した周辺部品判定距離Ｅ’を使用する。）以内に配置されている周辺部品を抽出する。この際、組立対象部品が挿入部品であった場合と同様に、組立順序情報１２３を利用し、既に組み付けられている部品は周辺部品として判定対象とし、まだ組み付けられていない部品は周辺部品の判定対象としないことで、各場面での組立対象の状態を周辺部品判定に反映させることができる。【００４３】  ステップＳ９４３において、周辺部品の有無を判定する。周辺部品の判定の詳細については後述する。周辺部品が有る場合はステップＳ９５１へ移行し、無い場合はステップＳ９６３へ移行する。周辺部品の有無により以降の処理が異なるため、まずは周辺部品が存在する場合について、図１０を用いて説明する。【００４４】  周辺部品が存在する場合、ステップＳ９５１において、挿入部品の退避点算出のステップＳ９２１と同様に、組付点生成部１１２により得られた組付点Ｐｍと、組付方向算出部１１３により得られた組立対象部品の組付方向Ｕと、３次元の図面情報１２２に格納された周辺部品の構成面情報と設備上での配置情報から、図１０(Ａ)に示した組付点Ｐｍと周辺部品の前面との距離Ｈを取得する。【００４５】  続いてステップＳ９５２において、図１０(Ａ)に示した周辺部品を回避する退避点Ｐｓを算出する。このとき、組付点Ｐｍと周辺部品を回避する退避点Ｐｓとの関係は以下の式で表わされる。（数９）ｓ＝Ｍ＋δ＋Ｈこの計算式で定義される周辺部品を回避する退避点Ｐｓを算出することにより、周辺部品を考慮した上で組付点から退避点までの距離ｓを最小化し、かつ他部品との干渉も回避することが可能となる。【００４６】  ステップＳ９５３において、図１０(Ｂ)に示した組付直前の退避点Ｐｂを算出する。このとき、組付点Ｐｍと組付直前の退避点Ｐｂとの関係は以下の式で表わされる。（数１０）ｂ＝δ対象部品が挿入部品であった場合と異なり、挿入部の長さを考慮せず組付直前の退避点Ｐｂを算出する。この計算式で定義される組付直前の退避点Ｐｂを算出することにより、組付点のより近傍に退避点を定義して組付点から退避点までの距離ｂを最小化することが可能となる。【００４７】  ステップＳ９５４において、図１０(Ｄ)に示した組付直後の退避点Ｐａを算出する。このとき、組付点Ｐｍと組付直後の退避点Ｐａとの関係は挿入部品であった場合と同じ（数���）となる。これは、部品を把持していない場合は部品種別に関係なく同様に算出できるためである。この計算式で定義される組付直後の退避点Ｐａを算出することにより、組付後の部品を把持していない時の組付点から退避点までの距離ａを最小化することが可能となる。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｓとの距離ｓは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００４８】  次に、周辺部品が存在しない場合について、図１１を用いて説明する。周辺部品が存在しない場合、ステップＳ９６３において、図１１(Ａ)に示した組付直前の退避点Ｐｂを算出する。このとき、組付点Ｐｍと組付直前の退避点Ｐｂとの関係は周辺部品が存在する場合と同じ（数１０）となる。これは、部品の挿入がないために部品の長さに関係なく退避距離が決定するためである。【００４９】  ステップＳ９６４において、図１１(Ｃ)に示した組付直後の退避点Ｐａを算出する。このとき、組付点Ｐｍと組付直後の退避点Ｐａとの関係は、位置決めピンに挿入して組み付けられる部品の場合と同じ（数８）となる。これは、位置決めピンへの挿入有無にかかわらず組付後の組立対象部品の位置が同じになるためである。これらの計算式で定義される組付直前の退避点Ｐｂと組付直後の退避点Ｐａを算出することにより、組付前後の組付点から退避点までの距離ｂおよびａを最小化することが可能となる。【００５０】  《周辺部品の判定》  図５のステップＳ９１２，Ｓ９２６、および図９のステップＳ９４２，Ｓ９５６に示した周辺部品の判定について、図１２、１３、１４を用いて説明する。【００５１】  図１２は、ロボットによる組立作業におけるロボットの動作を説明した図であり、例として６軸駆動の垂直多関節ロボットを用いた場合について示している。ロボットによる組立では、組立対象部品２２２をロボットハンド２１０で把持し、ロボット２５０を周辺部品を回避する退避点Ｐｓから組付直前の退避点Ｐｂへ移動させ、組付直前の退避点Ｐｂから組付点Ｐｍへ移動させて被組立対象部品２４０に組み付ける。周辺部品を回避する退避点Ｐｓから組付直前の退避点Ｐｂまでの移動の際、ロボット２５０は組立対象部品２２２の姿勢を固定しつつＪ１〜Ｊ６軸の６つの動作軸を回転させ、各動作軸の回転運動を合成した動作により目的の位置まで図１２(Ａ)に示すような円弧を描いて移動する。このとき、図１２(Ｂ)に示すように近傍に周辺部品２３１が存在する場合には組立動作の途中で周辺部品２３１と干渉し、組立対象部品２２２または周辺部品２３１を破損する恐れがある。このため、組立対象部品２２２を把持したロボット２５０の動作範囲内に周辺部品２３１が存在する場合には、周辺部品を回避する退避点Ｐｓから組付点直前の退避点Ｐｂまでロボットを直線運動させる必要がある。【００５２】  図１３は、ロボットによる組立作業において、周辺部品を回避する退避点Ｐｓから組付直前の退避点Ｐｂまで円弧を描いて移動した際の、任意の時間ｔにおけるロボットの位置Ｐｔを示した図である。図１３に示した例では、組立対象部品２２２はＸＹ平面上に−Ｚ方向に組み付けるため、＋Ｚ方向には組付途中で干渉する周辺部品はない。よって、組立対象部品２２２を被組立��象部品２４０に組み付けた状態から、ＸＹ平面上において組立対象部品から所定の距離Ｅ内に周辺部品が存在するかを判定する。図１３に示した例では、周辺部品２３１は周辺部品と判定され、周辺部品２３２は周辺部品と判定されない。周辺部品の有無を判定するための距離Ｅとは、ロボットが円弧運動したときにＸＹ平面上で動作する範囲である。ここで、任意の時間ｔにおけるロボットの位置Ｐｔと組付直前の退避点Ｐｂとの直線距離をＥｔとすると、直線距離ＥｔをＸＹ平面上に射影した値Ｅｏの最大値が周辺部品の有無を判定するための距離Ｅとなる。組付直前の退避点Ｐｂの座標を（Ｂｘ，Ｂｙ，Ｂｚ）、任意の時間ｔにおけるロボットの位置Ｐｔの座標を（ｔｘ，ｔｙ，ｔｚ）としたとき、周辺部品の有無を判定するための距離Ｅは以下の式で表わされる。（数１１）Ｅ＝Ｅｏ＋β            ＝ｍａｘ０≦ｔ≦Ｔ（√｛（ｔｘ−Ｂｘ）２＋（ｔｙ−Ｂｙ）２｝）＋βここで、Ｔは周辺部品を回避する退避点Ｐｓから組付直前の退避点Ｐｂに到達するまでの時間、βはロボットハンドが組立対象部品を把持したときに、ＸＹ平面上でロボットハンドが組立対象部品の最外周から飛び出した距離である。【００５３】  図１４は、ロボットハンドによる組立対象部品の把持状態と周辺部品の有無を判定するための距離Ｅの関係を説明した図である。図１４(Ａ)に示すように、ＸＹ平面上でロボットハンド２１０から組立対象部品２２２が飛び出している場合、移動中に最初に周辺部品と干渉するのは組立対象部品２２２となる。よって、組立対象部品２２２の最外周から周辺部品の有無を判定するための距離Ｅの範囲で周辺部品の有無を判定する必要があるため、βを０として周辺部品の有無を判定するための距離Ｅを算出する。  一方、図１４(Ｂ)に示すように、ＸＹ平面上で組立対象部品２２３よりもロボットハンド２１０が一部飛び出している場合、移動中に最初に周辺部品と干渉するのはロボットハンド２１０となる。よって、ロボットハンド２１０が飛び出している側は組立対象部品２２３の最外周からではなくロボットハンド２１０の最外周から周辺部品の有無を判定するための距離Ｅの範囲で周辺部品の有無を判定し、ロボットハンド２１０が飛び出していない側は図１４(Ａ)と同様に組立対象部品２２３の最外周から周辺部品の有無を判定するための距離Ｅの範囲で周辺部品の有無を判定する必要がある。ＸＹ平面上でロボットハンドが組立対象部品の最外周から飛び出した距離βは、３次元の図面情報１２２に格納された部品のバウンディングボックスとロボットハンドの部品把持時のハンド寸法情報から算出できることから、状況に応じてＸＹ平面上でロボットハンドが組立対象部品の最外周から飛び出した距離βを加算して周辺部品の有無を判定するための距離Ｅを算出する。【００５４】  組立対象部品ごとの周辺部品判定距離Ｅは、暫定値Ｅ’により算出した退避点Ｐｓ(周辺部品が無いと暫定値Ｅ’により判定されて、退避点Ｐｓが算出されていない場合には、退避点Ｐｂより所定の高さだけ上部に暫定的に退避点Ｐｓを設定してロボットのシミュレーションに使用する。)、Ｐｂの間を評価対象のロボットにより、使用する軌道補間制御方法により組立対象部品を移動させるシミュレーションを行い、使用するロボットハンドが組立対象部品の最外周から飛び出した距離を算出して、(数１１)により周辺部品判定距離Ｅを求める。【００５５】  なお、図１３および図１４では部品をＸＹ平面上に組み付ける例を示したため、周辺部品の有無を判定するための距離Ｅおよびロボットハンドの飛び出した距離βをＸＹ平面上で算出したが、これらの値は３次元の図面情報１２２に格納された他部品との接触面情報から得られる組立対象部品と被組立対象部品との接触面に合わせて算出する。(数１１)で定義される距離Ｅで周辺部品の有無を判定することにより、干渉回避の対象とすべき周辺部品を選定することができる。これにより、不要な周辺部品の退避点Ｐｓを設定せず、組付前後の組付点から退避点までの距離を最小化することが可能となる。【００５６】  《プログラム生成手順》  以上説明した退避点生成を含むロボット動作用のプログラム生成手順について、図１５、図１６を用いて説明する。図１５は、表示部１４０に表示される組立教示装置１００の表示画面例について説明した図である。表示画面３０１は、入力情報の設定欄３０２、出力先の設定欄３０３、出力結果のログ表示欄３０５、出力用のボタン３０４で構成される。入力情報の設定欄３０２では、組立教示装置１００の入力情報となる３次元の図面情報１２２が格納されたファイルおよび組立順序情報１２３が格納されたファイルを指定し、退避距離の余裕長δを入力する。出力先の設定欄３０３では、出力先としてロボットコントローラ１７０またはロボットシミュレータ１８０を選択し、それぞれロボットコントローラの機種やロボットシミュレータのソフトを選択する。入力情報と出力先の設定が完了した時点で出力用のボタン３０４を押すと、退避点生成を含むロボット動作用のプログラムが生成される。プログラム生成の出力の経過はログ表示欄３０５に表示される。【００５７】  ログ表示欄３０５では、出力開始後にまず組立対象とする部品の数を抽出し、組付点生成が完了したことを表示する。次に、抽出した部品ごとに退避点生成が完了したことを表示する。その際、図４のステップＳ９０１で示した挿入部品かどうかの判定で挿入部品と判定された部品であれば挿入長Ｌを、図５のステップＳ９１３および図９のステップＳ９４３で示した周辺部品の有無の判定で周辺部品ありと判定された部品であれば組立対象部品の組付方向における組付点と周辺部品の前面との距離Ｈを表示する。図１５では、組立対象部品４部品に対して、ＩＤ１およびＩＤ２の部品が非挿入部品、ＩＤ３およびＩＤ４の部品が挿入部品であり、ＩＤ２およびＩＤ４の部品が周辺部品ありの判定である結果を表示している。部品点数分の退避点生成が完了した後、組付点と退避点の情報から生成されるロボット動作プログラムの生成が完了したことを表示する。最後に、生成されたロボット動作プログラムが出力先に合わせたファイル形式で出力されたことを表示する。【００５８】  図１６は、組立教示装置によって出力された組付点および退避点をロボットシミュレータで表示した例について説明した図である。図１５で示した組立対象部品４部品における組付点と退避点の生成結果について示しており、図１５における部品ＩＤ１が図１６における組立対象部品２６１、図１５における部品ＩＤ２が図１６における組立対象部品２６２、図１５における部品ＩＤ３が図１６における組立対象部品２６３、図１５における部品ＩＤ４が図１６における組立対象部品２６４に対応している。【００５９】  まず、組立対象部品２６１に非挿入部品である組立対象部品２６２をＵ方向で組み付ける際の退避点は、組立対象部品２６１が周辺部品と判定され、図９に示したフローにおける周辺部品ありの場合で算出される。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｓとの距離ｓは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００６０】  次に、組立対象部品２６２が組立対象部品２６１に組み付けられた後に挿入部品である組立対象部品２６３をＵ方向で組み付ける際の退避点は、周辺部品なしと判定され、図５に示したフローにおける周辺部品なしの場合で算出される。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｂとの距離ｂは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００６１】  最後に、組立対象部品２６２が組立対象部品２６１に組み付けられた後に挿入部品である組立対象部品２６４をＵ方向で組み付ける際の退避点は、組立対象部品２６１が周辺部品と判定され、図５に示したフローにおける周辺部品ありの場合で算出される。このとき、部品の把持・非把持の関係から、組付点Ｐｍと退避点Ｐｓとの距離ｓは、組付点Ｐｍと退避点Ｐａとの距離ａよりも長くなる。【００６２】  以上説明した実施例によれば、部品の長さＭと挿入長さＬ、および周辺部品との位置関係Ｈを考慮して最終目的位置に最も近い退避位置を動作点Ｐｓ、Ｐｂ、Ｐａとして自動で出力することで教示者の熟練度に依存しない動作点登録を可能にし、ロボットの動作距離を最短化できるため、生産性向上に貢献する組立教示装置を得ることができる。【００６３】  以上、本発明について部品組付を例に実施形態に基づき具体的に説明したが、本発明は前記発明の実施形態に限定されるものではなく、部品のピックアップ時におけるピックアップ位置を最終目的位置としたロボット動作も同様に説明することができることから、動作点の教示を伴う組立教示装置において、その要旨を逸脱しない範囲において変更可能であることは言うまでもない。
【符号の説明】
【００６４】１００・・・組立教示装置１１０・・・演算部１１１・・・データ読込部１１２・・・組付点生成部１１３・・・組付方向算出部１１４・・・退避点生成部１１５・・・プログラム生成部１１６・・・組立教示出力部１２０・・・記憶部１２１・・・組立教示処理プログラム(記憶領域)１２２・・・３次元図面情報(記憶領域)１２３・・・組立順序情報(記憶領域)１２４・・・組立教示結果１３０・・・入力部１４０・・・表示部１５０・・・通信部１６０・・・ＣＡＤ装置１７０・・・ロボットコントローラ１８０・・・ロボットシミュレータ１９０・・・ネットワーク２１０，２２１・・・ロボットハンド２２０・・・組立対象部品（挿入部品）２２１・・・組立対象部品（位置決めピンによる挿入部品）２２２・・・組立対象部品（非挿入部品）２２３・・・組立対象部品（非挿入部品）２３０・・・周辺部品２３１・・・周辺部品２３２・・・周辺部品２４０・・・被組立対象部品（位置決めピンなし）２４１・・・被組立対象部品（位置決めピンあり）２５０・・・ロボット２６１・・・組立対象部品２６２・・・組立対象部品（非挿入部品）２６３・・・組立対象部品（挿入部品）２６４・・・組立対象部品（挿入部品）３０１・・・組立教示装置の表示画面３０２・・・入力情報の設定欄３０３・・・出力先の設定欄３０４・・・出力用のボタン３０５・・・出力結果のログ表示欄Ｐｍ・・・組付点Ｐｓ・・・周辺部品を回避する退避点Ｐｂ・・・組付直前の退避点Ｐａ・・・組付直後の退避点Ｐｔ・・・組付途中の点Ｍ・・・組立対象部品の組付方向の長さＬ・・・組立対象部品の挿入部長さＨ・・・組立対象部品の組付方向における組付点と周辺部品の前面との距離δ・・・退避距離の余裕長Ｅ・・・周辺部品の有無を判定するための距離Ｅｔ・・・組付途中の点から組付直前の退避点までの直線距離Ｅｏ・・・ＥｔをＸＹ平面上に射影した距離β・・・部品把持時に部品の最外周からロボットハンドが飛び出す距離Ｕ・・・組付方向ｕ・・・組付方向の単位ベクトルｓ・・・周辺部品を回避する退避点と組付点との距離ｂ・・・組付直前の退避点と組付点との距離ａ・・・組付直後の退避点と組付点との距離
【図１】
2016151862.tif 000003
【図２】
2016151862.tif 000004
【図３】
2016151862.tif 000005
【図４】
2016151862.tif 000006
【図５】
2016151862.tif 000007
【図６】
2016151862.tif 000008
【図７】
2016151862.tif 000009
【図８】
2016151862.tif 000010
【図９】
2016151862.tif 000011
【図１０】
2016151862.tif 000012
【図１１】
2016151862.tif 000013
【図１２】
2016151862.tif 000014
【図１３】
2016151862.tif 000015
【図１４】
2016151862.tif 000016
【図１５】
2016151862.tif 000017
【図１６】
2016151862.tif 000018
【手続補正書】
【提出日】平成28年10月26日(2016.10.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
組立作業を実施するロボットのための組立教示装置において、 
組立対象部品の組立順序情報と、３次元ＣＡＤモデルより作成した組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、設備上での配置情報、およびロボットハンドの寸法、部品の把持位置、ロボット上での配置情報とを取得するデータ読込部と、 
組立設備上に設置されたロボットに搭載されたロボットハンドで把持した組立対象部品を、前記組立対象部品の設備上での配置情報で特定される組付け位置へ組付けるロボットハンドの組付点を前記各情報より算出する組付点生成部と、
前記組立対象部品の他部品との接触面情報から組付方向を算出する組付方向算出部と、
ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出する退避点生成部と、
前記組立順序情報と、算出した組付点および退避点からロボット動作プログラムを生成するプログラム生成部と、
生成したロボット動作プログラムを外部機器に出力する組立教示出力部と
を有することを特徴とする組立教示装置。
【請求項２】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
ユーザが指定入力した周辺部品判定距離Ｅ’に従って、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓ、および周辺部品の有無に係わらず組付直前の退避点Ｐｂを算出し、周辺部品が無い場合には退避点Ｐｂと共に、退避点Ｐｂより所定の高さだけ上部に暫定的に退避点Ｐｓを算出し、
前記退避点Ｐｓから前記退避点Ｐｂまで評価対象ロボットによる前記組立対象部品の搬送をシミュレーションして、組立対象部品個別の周辺部品判定距離Ｅを算出し、
前記周辺部品判定距離Ｅに従って、干渉を起こす周辺部品の有無を再度判定することを特徴とする組立教示装置。
【請求項３】
前記退避点生成部が算出する周辺部品を回避する退避点Ｐｓ、組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａは、前記組付方向算出部が算出した組付方向の逆方向に前記組付点からベクトルを設定した場合に、いずれの退避点も同一方向のベクトル上に設定されていることを特徴とする請求項１に記載の組立教示装置。
【請求項４】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
組立対象部品を挿入部品か、否かを判定し、
挿入部品の場合は、組立対象部品の寸法情報から組付方向における部品の長さと挿入部長さを抽出し、
前記部品の挿入部長さから組付直前の退避点Ｐｂを算出し、
前記部品の長さと挿入部長さとの差分から組付直後の退避点Ｐａを算出し、
前記組付点と前記組付直前の退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項５】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
組立対象部品を挿入部品か、否かを判定し、
挿入部品の場合は、組立対象部品の寸法情報から部品の挿入部長さを抽出し、
前記挿入部品の組付け動作で干渉する周辺部品が存在するかを判定し、
干渉する周辺部品が存在する場合に、前記挿入部品の組付方向において前記組付点と前記干渉する周辺部品の前記組付方向と逆方向に最も遠い面との距離(周辺部品距離)を抽出し、
前記部品の挿入部長さと前記周辺部品距離から周辺部品を回避する退避点Ｐｓを算出し、
前記周辺部品距離から組付直後の退避点Ｐａを算出し、
前記組付点と前記周辺部品を回避する退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項６】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
組立対象部品が被組立対象部品の突出部に挿入されて組み付けられる部品か否かを判定し、
被組立対象部品の突出部に挿入されて組み付けられる部品の場合に、被組立対象部品の突出部の長さを前記組立対象部品の挿入部長さとして抽出し、
前記部品の挿入部長さから組付直前の退避点Ｐｂを算出し、
前記組付点と前記組付直前の退避点との距離が前記組付点と組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項７】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
組立対象部品を挿入部品か、否かを判定し、
前記組立対象部品が挿入部品で無く、かつ干渉する周辺部品が存在しない場合に、前記組付点と組付直前の退避点との距離と前記組付点と組付直後の退避点との距離とが同じとなる退避点を生成することを特徴とする組立教示装置。
【請求項８】
請求項１に記載の組立教示装置において、
前記退避点生成部は、
組立対象部品が挿入部品か、否かを判定し、
前記組立対象部品が挿入部品で無い場合(非挿入部品)に、前記組立対象部品の寸法情報から組付け方向の部品の長さを抽出し、
前記非挿入部品の組付け動作で干渉する周辺部品が存在するかを判定し、
干渉する周辺部品が存在する場合に、前記非挿入部品の組付方向において前記組付点と前記干渉する周辺部品の前記組付方向と逆方向に最も遠い面との距離(周辺部品距離)を抽出し、
前記組付け方向の部品の長さと前記周辺部品距離から周辺部品を回避する退避点Ｐｓを算出し、
前記周辺部品距離から組付直後の退避点Ｐａを算出し、
前記組付点と前記周辺部品を回避する退避点との距離が前記組付点と前記組付直後の退避点との距離よりも長い退避点を生成することを特徴とする組立教示装置。
【請求項９】
組立作業を実施するロボットのための組立教示方法において、 
組立対象部品の組立順序情報と、３次元ＣＡＤモデルより作成した組立対象部品の寸法情報、他部品との接触面情報、設備上での配置情報、ロボットの寸法、設備上での配置情報、およびロボットハンドの寸法、部品の把持位置、ロボット上での配置情報とを取得するステップと、 
組立設備上に設置されたロボットに搭載されたロボットハンドで把持した組立対象部品を、前記組立対象部品の設備上での配置情報で特定される組付け位置へ組付けるロボットハンドの組付点を前記各情報より算出するステップと、
前記組立対象部品の他部品との接触面情報から組付方向を算出するステップと、
ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出するステップと、
前記組立順序情報と、算出した組付点および退避点からロボット動作プログラムを生成するステップと、
生成したロボット動作プログラムを外部機器に出力するステップと
を有することを特徴とする組立教示方法。
【請求項１０】
請求項９に記載の組立教示方法において、
ロボットハンドによる組立対象部品の組付けをシミュレーションして、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出する前記ステップは、更に、
ユーザが指定入力した周辺部品判定距離Ｅ’に従って、干渉を起こす周辺部品の有無を判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓ、および周辺部品の有無に係わらず組付直前の退避点Ｐｂを算出し、周辺部品が無い場合には退避点Ｐｂと共に、退避点Ｐｂより所定の高さだけ上部に暫定的に退避点Ｐｓを算出し、
前記退避点Ｐｓから前記退避点Ｐｂまで評価対象ロボットによる前記組立対象部品の搬送をシミュレーションして、組立対象部品個別の周辺部品判定距離Ｅを算出し、
前記周辺部品判定距離Ｅに従って、干渉を起こす周辺部品の有無を再度判定して、周辺部品が有る場合には周辺部品を回避する退避点Ｐｓを、及び周辺部品の有無に係らず組付直前の退避点Ｐｂ、および組付直後の退避点Ｐａを算出するステップであることを特徴とする組立教示方法。
【国際調査報告】
2016151862.tif 000019
2016151862.tif 000020
2016151862.tif 000021
2016151862.tif 000022