(57)【要約】【課題】一連の組立作業の順序における事後的な変更に起因した教示点の変更を容易化すること。【解決手段】組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出することを含む、コンピュータにより実行される組立作業ロボットの動作生成方法が開示される。【選択図】図１
2018083277.tif 000002
【特許請求の範囲】
【請求項１】
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出することを含む、コンピュータにより実行される組立作業ロボットの動作生成方法。
【請求項２】
前記組立対象製品の組立状態を再現することは、前記一の組立作業に係る作業対象ワークと、前記作業対象ワークが組付けられる組付け先とを特定することを含む、請求項１に記載の組立作業ロボットの動作生成方法。
【請求項３】
前記組立対象製品の組立状態を再現することは、更に、前記一の組立作業の開始時における前記作業対象ワーク及び前記組付け先のそれぞれの位置を導出することを含む、請求項２に記載の組立作業ロボットの動作生成方法。
【請求項４】
前記一の組立作業の開始時における前記作業対象ワーク及び前記組付け先のそれぞれの前記位置と、前記組立対象製品の組立に用いる組立設備に表す組立設備データとに基づいて、前記教示点を導出する、請求項３に記載の組立作業ロボットの動作生成方法。
【請求項５】
前記組立設備に前記組立作業ロボットが干渉しない態様で、前記教示点を導出する、請求項４に記載の組立作業ロボットの動作生成方法。
【請求項６】
前記組立対象製品の組立状態を再現すること、及び、前記教示点を導出することを、前記一連の組立作業に含まれる複数の組立作業のそれぞれを前記一の組立作業として、繰り返すことを含む、請求項１〜５のうちのいずれか１項に記載の組立作業ロボットの動作生成方法。
【請求項７】
導出した前記教示点に基づいて、前記組立作業ロボットの動作プログラムを生成することを更に含む、請求項１〜６のうちのいずれか１項に記載の組立作業ロボットの動作生成方法。
【請求項８】
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現する組立状態再現部と、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出する教示点導出部とを含む、組立作業ロボットの動作生成装置。
【請求項９】
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出する、
処理をコンピュータに実行させる組立作業ロボットの動作生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、組立作業ロボットの動作生成方法、組立作業ロボットの動作生成プログラム、及び組立作業ロボットの動作生成装置に関する。
【背景技術】
【０００２】
ＣＡＤ（Computer-Aided  Design）データ等を用いて組立作業ロボットの教示点を導出する方法が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平10-222219号公報
【特許文献２】特開2005-149216号公報
【特許文献３】特開昭64-64016号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のような従来技術では、組立対象製品を組み立てる際の一連の組立作業の順序が事後的に変更された場合に、該変更に起因した教示点の変更が難しい。例えば、現実的には、一連の組立作業の順序が事後的に変更されることがあり、それに伴って組立作業ロボットの適切な教示点が変化しうる。この場合、再度、一から各教示点を導出し直すことは、ユーザにとって比較的大きな負荷である。
【０００５】
そこで、１つの側面では、本発明は、一連の組立作業の順序における事後的な変更に起因した教示点の変更を容易化することを目的とする。
【課題を解決するための手段】
【０００６】
１つの側面では、組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出することを含む、コンピュータにより実行される組立作業ロボットの動作生成方法が提供される。
【発明の効果】
【０００７】
１つの側面では、本発明によれば、一連の組立作業の順序における事後的な変更に起因した教示点の変更が容易となる。
【図面の簡単な説明】
【０００８】
【図１】一実施例による組立作業ロボットの動作生成装置１を示す構成図である。
【図２】処理装置のハードウェア構成の一例を示す図である。
【図３】ロボット動作テンプレートの一例を示す図である。
【図４】ロボット動作テンプレートの説明図である。
【図５】動作生成装置１の動作例を示す概略フローチャートである。
【図６】組立状態再現処理に係る入力の一例を模式的に示す図である。
【図７】組立状態再現処理に係る出力の一例を模式的に示す図である。
【図８】組立状態再現処理の一例を示すフローチャートである。
【図９】各種フラグのイメージ図である。
【図１０】教示点導出処理の説明図である。
【図１１】教示点導出処理の説明図である。
【図１２】教示点導出処理の一例を示すフローチャートである。
【図１３】ロボット動作プログラムの生成処理の説明図である。
【図１４】ロボット動作プログラムの生成処理の一例を示すフローチャートである。
【図１５】動作生成装置がサーバとクライアントコンピュータとで実現される例の説明図である。
【図１６】処理装置の機能の分散態様の例を示す表図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照しながら各実施例について詳細に説明する。
【００１０】
図１は、一実施例による組立作業ロボット（以下、単に「ロボット」と称する）の動作生成装置１を示す構成図である。図２は、処理装置１００のハードウェア構成の一例を示す図である。
【００１１】
動作生成装置１は、処理装置１００を含む。処理装置１００は、ユーザの位置にあるコンピュータにより実現されてよいし、ユーザから離れた遠隔位置にあるコンピュータ（例えばサーバ）により実現されてもよいし、これらの組み合わせで実現されてもよい（図１５参照）。
【００１２】
図２に示す例では、処理装置１００は、制御部１０１、主記憶部１０２、補助記憶部１０３、ドライブ装置１０４、ネットワークＩ／Ｆ部１０６、入力部１０７を含む。
【００１３】
制御部１０１は、主記憶部１０２や補助記憶部１０３に記憶されたプログラムを実行する演算装置であり、入力部１０７や記憶装置からデータを受け取り、演算、加工した上で、記憶装置などに出力する。
【００１４】
主記憶部１０２は、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などである。主記憶部１０２は、制御部１０１が実行する基本ソフトウェアであるＯＳ（Operating  System）やアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【００１５】
補助記憶部１０３は、ＨＤＤ（Hard  Disk  Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【００１６】
ドライブ装置１０４は、記録媒体１０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【００１７】
記録媒体１０５は、所定のプログラムを格納する。この記録媒体１０５に格納されたプログラムは、ドライブ装置１０４を介して処理装置１００にインストールされる。インストールされた所定のプログラムは、処理装置１００により実行可能となる。
【００１８】
ネットワークＩ／Ｆ部１０６は、有線及び／又は無線回線などのデータ伝送路により構築されたネットワークを介して接続された通信機能を有する周辺機器と処理装置１００とのインターフェースである。
【００１９】
入力部１０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、マウスやタッチパッド等を有する。
【００２０】
尚、図２に示す例において、以下で説明する各種処理等は、プログラムを処理装置１００に実行させることで実現することができる。また、プログラムを記録媒体１０５に記録し、このプログラムが記録された記録媒体１０５を処理装置１００に読み取らせて、以下で説明する各種処理等を実現させることも可能である。なお、記録媒体１０５は、様々なタイプの記録媒体を用いることができる。例えば、記録媒体１０５は、ＣＤ(Compact  Disc)−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等であってよい。なお、記録媒体１０５には、搬送波は含まれない。
【００２１】
処理装置１００は、機能部として、図１に示すように、データ取得部１０と、変数設定部１２と、組立状態再現部１４と、教示点導出部１６と、ロボット動作生成部１８とを含む。データ取得部１０、変数設定部１２、組立状態再現部１４、教示点導出部１６、及びロボット動作生成部１８は、それぞれ、制御部１０１が主記憶部１０２に記憶された１つ以上のプログラムを実行することで実現できる。
【００２２】
また、処理装置１００は、組立作業順序データ記憶部２０、ロボット動作テンプレート記憶部２１、製品データ記憶部２２、設備データ記憶部２３、組立状態再現データ記憶部２４、教示点リスト記憶部２５、及びロボット動作プログラム記憶部２６を含む。また、処理装置１００は、ロボット動作テンプレートデータベース２７（以下、「ロボット動作テンプレートＤＢ２７」と称する）を含む。組立作業順序データ記憶部２０、ロボット動作テンプレート記憶部２１、製品データ記憶部２２、設備データ記憶部２３、組立状態再現データ記憶部２４、教示点リスト記憶部２５及びロボット動作プログラム記憶部２６は、例えば補助記憶部１０３により実現できる。また、ロボット動作テンプレートＤＢ２７は、例えば補助記憶部１０３により実現できる。
【００２３】
組立作業順序データ記憶部２０は、組立対象製品を組み立てる際の一連の組立作業の順序データ（以下、「組立作業順序データ」と称する）を記憶する。組立対象製品の組み立てには、ロボットが少なくとも部分的に用いられる。例えば、組立対象製品の組み立ては、ロボットと人とで協動して実現されてもよいし、完全にロボットにより実現されてもよい。組立作業順序データは、ユーザにより生成される。組立対象製品は、任意であり、例えば各種の半導体製品や、各種の電子機器、各種の機械等であってよい。
【００２４】
ロボット動作テンプレート記憶部２１は、ロボット動作生成部１８で使用されるロボット動作テンプレート（後述）が記憶される。ロボット動作テンプレート記憶部２１には、後述のロボット動作テンプレートＤＢ２７内の各種のロボット動作テンプレートのうちの、ロボット動作生成部１８で使用される特定の１つ以上のロボット動作テンプレートが記憶される。
【００２５】
製品データ記憶部２２は、組立対象製品の製品データを記憶する。製品データは、組立対象製品を形成する各部品の３次元（３Ｄ）データ（以下、「部品３Ｄデータ」とも称する）、及び、同製品の部品構成データを含む。部品３Ｄデータは、各部品の単品状態のデータと、各部品が組み立てられた状態のデータとを含む。各部品が組み立てられた状態のデータに代えて、各部品が組み立てられた状態を再現できる他のデータ（例えば各部品の配置を表すデータ等）が用いられてもよい。部品構成データは、各部品の親子関係を表すデータであり、例えばアセンブリツリー（図６のアセンブリツリー４０２参照）の形態である。製品データは、既知データとしてユーザにより生成される。
【００２６】
設備データ記憶部２３は、組立設備データを記憶する。組立設備データは、組立対象製品を組み立てる設備に関するデータであり、設備の３Ｄデータを含む。設備は、ロボット等を含む。設備の３Ｄデータは、好ましくは、設備をほぼ再現できるデータである。但し、設備の３Ｄデータは、以下説明する各種処理に関連しない設備部分については含んでいなくてもよい。組立設備データは、既知データとしてユーザにより生成される。
【００２７】
組立状態再現データ記憶部２４は、組立状態再現データを記憶する。組立状態再現データは、一連の組立作業に含まれる一の組立作業の開始時における組立対象製品の組立状態を再現するデータであり、組立状態再現部１４により生成される。一の組立作業の単位は、作業分類に対応してよく、例えば、一の組立作業と、他の一の組立作業とは、作業分類が異なり得る関係がある。但し、一の組立作業は、複数の作業分類の作業の複合であってもよい。組立状態再現データについては後述する。
【００２８】
教示点リスト記憶部２５は、教示点リストを記憶する。後述するように、教示点リストは、教示点導出部１６によりロボット動作テンプレート毎に生成される。教示点リストは、例えば、対応するロボット動作テンプレートに紐付けられる態様で記憶される。
【００２９】
ロボット動作プログラム記憶部２６は、組立対象製品に係るロボット動作プログラムを記憶する。組立対象製品に係るロボット動作プログラムは、後述するようにロボット動作生成部１８により生成される。
【００３０】
ロボット動作テンプレートＤＢ２７は、組立対象製品に係るロボット動作プログラムを生成するためのロボット動作テンプレートを記憶する。ロボット動作テンプレートは、教示点に係る情報を変数で表したロボットプログラムの雛形である。尚、教示点は、後述の座標値及び姿勢値で表すことができる。ロボット動作テンプレートは、予め用意され、ユーザにより変数等が設定される。ロボット動作テンプレートは、作業分類（組立作業の属性）ごとに用意される。例えば、ロボット動作テンプレートでは、個別の作業に依存した情報(設備情報や、ワーク部品の属性、把持や組付け時の要件、移動量等)が変数化され、作業分類ごとのロボット動作がテンプレート化される。作業分類とは、ピック、プレイス、運搬、撮像、貼付け等である。
【００３１】
ここで、図３及び図４を参照して、ロボット動作テンプレートの例について説明する。ここでは、一例として、作業分類「ピック」に関するロボット動作テンプレートの例について説明する。
【００３２】
図３は、ロボット動作テンプレートの一例を示す図である。図４は、ロボット動作テンプレートの説明図であり、テンプレート化したロボット動作を概略的に示す図である。図４には、供給機９００からワーク部品８００をピックする作業に関するロボットハンド７００の動きが、複数の各教示点P1〜P5と共に、点線の矢印で示される。
【００３３】
ロボット動作テンプレートは、教示点変数化部３００と、教示点順序記述部３０２とを含む。
【００３４】
教示点変数化部３００では、ロボット動作テンプレートで使用する変数の変数名や値が記述される。尚、ユーザは、目的動作に応じて変数の値を変更できる。図３に示す例では、教示点変数化部３００は、基準点（後述）からの距離の情報３１０と、使用設備情報３１２とを含む。基準点は、例えば、ロボットハンドによる部品把持位置や部品組付け位置であり、導出方法は後述する。使用設備情報３１２は、使用するロボットを特定する情報や、使用するロボットハンドを特定する情報等を含む。
【００３５】
教示点順序記述部３０２では、ロボットの動作の各教示点の順序（動作に従った順序）に従って、各教示点の変数が記述される。各教示点の変数の具体的な値は、後述のように教示点導出部１６により導出される。図３に示す例では、教示点順序記述部３０２は、動作順序の情報３１４を含む。ここでは、動作順序の情報３１４は、図４に示す教示点６０１〜６０５に係る情報である。教示点６０１〜６０５は、図３に示すように、ロボットの動作に従った順序で記述される。
【００３６】
尚、必須ではないが、ロボット動作テンプレートは、その他の情報として、動作速度、動作方法（補間方法）、ＩＯ時間、初期把持状態等の情報を含んでよい。尚、ロボット動作テンプレートは、例えば、教示点変数化部３００における変数の値がデフォルト値に設定された状態（又は無効値に設定された状態）でロボット動作テンプレートＤＢ２７内に保存される。
【００３７】
データ取得部１０は、組立作業順序データ記憶部２０、製品データ記憶部２２、設備データ記憶部２３、及びロボット動作テンプレートＤＢ２７から、変数設定部１２や組立状態再現部１４や教示点導出部１６で利用する各種データ等を取得する。
【００３８】
変数設定部１２は、ユーザからの入力に基づいて、ロボット動作テンプレートにおける各種変数（図３の教示点変数化部３００参照）を設定する。尚、ユーザからの入力は、入力部１０７を介して取得される。
【００３９】
組立状態再現部１４は、組立作業順序データ記憶部２０内の組立作業順序データと、製品データ記憶部２２内の製品データとに基づいて、一連の組立作業に含まれる一の組立作業の開始時における製品の組立状態を再現する。組立状態再現部１４は、再現結果である組立状態再現データを生成する。組立状態再現部１４による組立状態再現方法の具体例は後述する。
【００４０】
教示点導出部１６は、一連の組立作業に含まれる一の組立作業ごとに、組立状態再現データ記憶部２４内の組立状態再現データに基づいて、該一の組立作業に係る教示点を導出する。教示点導出部１６は、一連の組立作業に含まれる各一の組立作業に対して、教示点を導出する。
【００４１】
ロボット動作生成部１８は、一連の組立作業に含まれる一の組立作業ごとに、教示点導出部１６により導出された教示点に基づいて、該一の組立作業に係る動作プログラムを、生成する。ロボット動作生成部１８は、一連の組立作業に含まれる各一の組立作業に対して、動作プログラムを生成し、各動作プログラムを組み合わせることで、最終的なロボット動作プログラムを生成する。
【００４２】
次に、図５を参照して、動作生成装置１の動作例について説明する。
【００４３】
図５は、ある一連の組立作業を対象としたときの動作生成装置１の動作例を示す概略フローチャートである。ここでは、一例として、対象の一連の組立作業は、Ｎ個の組立作業からなるものとする。
【００４４】
ステップＳ５００では、データ取得部１０は、対象の一連の組立作業に係る各種データを、組立作業順序データ記憶部２０、製品データ記憶部２２、及び設備データ記憶部２３のそれぞれから取得する。
【００４５】
ステップＳ５０２では、データ取得部１０は、ステップＳ５００で取得した組立作業順序データに基づいて、ロボット動作テンプレートＤＢ２７（図示せず）から、対象の一連の組立作業に係るロボット動作テンプレートを抽出（取得）する。例えば、データ取得部１０は、対象の一連の組立作業に含まれる各組立作業の作業分類に基づいて、作業分類に応じたロボット動作テンプレートを抽出する。ここでは、データ取得部１０は、Ｎ個の組立作業に対応して、Ｎ個のロボット動作テンプレートを抽出する。尚、データ取得部１０は、組立作業順序データに基づいてＮ個のロボット動作テンプレートを自動的に抽出することに代えて、ユーザからの入力（選択）に基づいてＮ個のロボット動作テンプレートを抽出してもよい。即ち、使用するロボット動作テンプレートは、ユーザにより選択されてもよい。
【００４６】
ステップＳ５０４では、変数設定部１２は、ステップＳ５０２で取得したロボット動作テンプレートにおける変数の設定処理を行う。例えば、変数設定部１２は、変数の設定作業をユーザに要求する。ロボット動作テンプレートは、例えば、教示点変数化部３００における変数の値がデフォルト値に設定された状態（又は無効値に設定された状態）でロボット動作テンプレートＤＢ２７から取得される。ステップＳ５０２で取得した全てのロボット動作テンプレートに対してユーザによる変数設定作業が完了すると、変数設定部１２は、変数が設定された全てのロボット動作テンプレートを、ロボット動作テンプレート記憶部２１に記憶する。ステップＳ５０４が終了すると、ステップＳ５０６に進む。
【００４７】
ステップＳ５０６では、組立状態再現部１４は、ｋを“１”に設定（初期化）する。
【００４８】
ステップＳ５０８では、組立状態再現部１４は、組立作業順序でｋ番目のロボット動作テンプレートを選択する。以下、Ｎ個の組立作業のうちの、ｋ番目のロボット動作テンプレートに対応する組立作業を、「対象作業」と称する。
【００４９】
ステップＳ５１０では、組立状態再現部１４は、ｋ番目のロボット動作テンプレートに係る組立状態再現処理を行う。ｋ番目のロボット動作テンプレートに係る組立状態再現処理は、ｋ番目のロボット動作テンプレートに係る一の組立作業の開始時における製品の組立状態を再現する処理である。即ち、ｋ番目のロボット動作テンプレートに係る組立状態再現処理は、対象作業の開始時における製品の組立状態を再現する処理である。組立状態再現処理の例は、図６乃至図８を参照して後述する。
【００５０】
ステップＳ５１２では、教示点導出部１６は、組立状態再現データ記憶部２４から、ｋ番目のロボット動作テンプレートに係る組立状態再現データ（ステップＳ５１０で生成された組立状態再現データ）を取得する。
【００５１】
ステップＳ５１４では、教示点導出部１６は、ステップＳ５００で取得された組立設備データと、ステップＳ５１２で取得した組立状態再現データとに基づいて、ｋ番目のロボット動作テンプレートに係る教示点導出処理を行う。即ち、教示点導出部１６は、対象作業に係る教示点導出処理を行う。教示点導出処理の例は、図１０乃至図１２を参照して後述する。
【００５２】
ステップＳ５１６では、教示点導出部１６は、ｋ＝Ｎであるか否かを判定する。Ｎは、上述のように、対象の一連の組立作業の含まれる組立作業の数である。ｋ＝Ｎの場合は、ステップＳ５２０に進み、ｋ≠Ｎの場合は、ステップＳ５１８を経て、ステップＳ５０８に戻る。
【００５３】
ステップＳ５１８では、教示点導出部１６は、ｋを“１”だけインクリメントする。
【００５４】
ステップＳ５２０では、ロボット動作生成部１８は、教示点リスト記憶部２５内の教示点リスト（対象の一連の組立作業に係る教示点リスト）と、ステップＳ５０２で取得したロボット動作テンプレートとに基づいて、ロボット動作プログラムを生成する。教示点リスに基づくロボット動作プログラムの生成処理の例は、図１３及び図１４を参照して後述する。
【００５５】
次に、図６乃至図８を参照して、組立状態再現処理の例について説明する。
【００５６】
図６は、組立状態再現処理に係る入力の一例を模式的に示す図である。
【００５７】
図６には、組立作業順序データ４００と、初期位置データ４０１と、組立対象製品のアセンブリツリー４０２と、組立対象製品の組立状態に係る部品３Ｄデータ４０４とが模式的に示される。
【００５８】
組立作業順序データ４００によれば、組立対象製品は、以下の手順（組立作業の順序）で組付けられる。
手順１．部品Ｃを部品Ａに組付ける。
手順２．部品Ａを部品Ｘに組付ける。
手順３．部品Ｗを部品Ｘに組付ける。
手順４．部品Ｙを部品Ｚに組付ける。
手順５．部品Ｚを部品Ｗに組付ける。
手順６．部品Ｄを部品Ｃに組付ける。
手順７．部品Ｂを部品Ａに組付ける。
各手順に係る組立作業は、作業対象のワーク部品（以下、単に「作業対象ワーク部品」と称する）と、該作業対象ワークの組付け先となる部品（以下、単に「組付け先部品」と称する）との関係を表す。例えば、手順１に係る組立作業では、部品Ｃが作業対象ワーク部品であり、部品Ａが組付け先部品である。
【００５９】
ここでは、一例として、手順１〜７は、部品単位で規定されているが、部品単位とサブアセンブリ（２つ以上の部品の組立体：部品組立体）単位との組み合わせで規定されてもよい。
【００６０】
また、初期位置データ４０１は、作業対象ワーク部品及び組付け先部品の各初期位置を表す。初期位置データ４０１によれば、作業対象ワーク部品及び組付け先部品の各初期位置は、それぞれの供給位置及び組付け位置であり、例えば以下の座標である。
作業対象ワーク部品：（１０，２０，１０，０，９０，９０）
組付け先部品：（１００，０，−３０，０，０，０）
ここで、上記の座標の表記（以下の説明における同表記も同様）は、Ｘ軸、Ｙ軸、及びＺ軸の３軸の各座標（ｘ、ｙ、ｚ）と、姿勢（向き）を表すオイラー角（α、β、γ）とからなる。以下、作業対象ワーク部品等の位置を表すとき、Ｘ軸、Ｙ軸、及びＺ軸の３軸の各座標の値を、「座標値」とも称し、各オイラー角の値を、「姿勢値」とも称する。
【００６１】
また、アセンブリツリー４０２によれば、組立対象製品は、部品Ｘと、サブアセンブリSubAssy１と、サブアセンブリSubAssy３との組み合わせからなる。サブアセンブリSubAssy１は、部品Ａと、部品Ｂと、サブアセンブリSubAssy２との組み合わせからなる。また、サブアセンブリSubAssy２は、部品Ｃと部品Ｄとからなり、サブアセンブリSubAssy３は、部品Ｗと部品Ｚと部品Ｙとからなる。尚、以下の説明において、アセンブリツリーにおいて、ある部品に関する“子供”とは、該部品の配下にある部品（ツリー構造上で該部品が枝元となる部品）にある部品を指す。
【００６２】
また、部品３Ｄデータ４０４によれば、組立対象製品は、部品Ｘの上に、サブアセンブリSubAssy１と、サブアセンブリSubAssy３とが別々の位置に配置されている。サブアセンブリSubAssy１は、部品Ａの上に、部品ＢとサブアセンブリSubAssy２とが別々の位置に配置されている。サブアセンブリSubAssy２は、部品Ｃの上に部品Ｄが配置されている。サブアセンブリSubAssy３は、部品Ｗの上に部品Ｚが配置され、部品Ｚの上に部品Ｙが配置されている。
【００６３】
図７は、組立状態再現処理に係る出力の一例を模式的に示す図である。ここでは、図７には、手順５に係る組立作業“部品Ｚを部品Ｗに組付ける”が対象作業であるとする。
【００６４】
図７には、組立状態再現処理の結果（出力）が概念的に示される。具体的には、図７には、アセンブリツリー４１２と、作業対象ワークの３Ｄデータ４１４と、組付け先の３Ｄデータ４１６とが模式的に示される。尚、アセンブリツリー４１２では、手順６及び手順７が実行されていない状態が示される。
【００６５】
手順５に係る組立作業“部品Ｚを部品Ｗに組付ける”が対象作業であるとき、作業対象ワーク部品は、部品Ｚである。部品Ｚには、手順５よりも前に（即ち手順４にて）、部品Ｙが既に組付けられているので、作業対象ワークは、３Ｄデータ４１４に示すように、部品Ｚと部品Ｙとなる（即ち部品Ｙが組付けられた部品Ｚとなる）。
【００６６】
また、手順５に係る組立作業“部品Ｚを部品Ｗに組付ける”が対象作業であるとき、組付け先部品は、部品Ｗである。部品Ｗには、手順５よりも前に（即ち手順３等にて）、部品Ｘ等が既に組付けられているので、組付け先は、３Ｄデータ４１６に示すように、部品Ｘ，部品Ａ，部品Ｃと部品Ｗとなる。即ち、組付け先は、３Ｄデータ４１６に示すように、部品Ｃ、部品Ａ、及び部品Ｘの３部品が組付けられた部品Ｗとなる。
【００６７】
図８は、組立状態再現処理の一例を示すフローチャートである。図９は、図８の説明図であり、各種フラグのイメージ図である。図８に示す処理は、図５のステップＳ５１０として実行される。
【００６８】
ステップＳ８００では、組立状態再現部１４は、組立対象製品のアセンブリツリー（図６のアセンブリツリー４０２参照）の全ての部品に、チェック用フラグと表示用フラグを付け加える（図９参照）。
【００６９】
ステップＳ８０２では、組立状態再現部１４は、全ての部品に係るチェック用フラグ及び表示用フラグを“Ｆａｌｓｅ”に初期化する。
【００７０】
ステップＳ８０４では、組立状態再現部１４は、ｊ＝ｋに設定する。
【００７１】
ステップＳ８０６では、組立状態再現部１４は、ｊ番目の組立作業（ｊ番目のロボット動作テンプレートに対応する組立作業）に係る作業対象ワーク部品と、同組立作業に係る組付け先部品のそれぞれに係るチェック用フラグ及び表示用フラグを“Ｔｒｕｅ”にセットする。
【００７２】
ステップＳ８０８では、組立状態再現部１４は、ステップＳ８０６でチェック用フラグを“Ｔｒｕｅ”にセットした各部品に、子供がいるか否かを判定する。子供がいる場合は、ステップＳ８１０に進み、それ以外の場合は、ステップＳ８１２に進む。
【００７３】
ステップＳ８１０では、組立状態再現部１４は、子供に対応する部品に係るチェック用フラグを“Ｔｒｕｅ”にセットにして、ステップＳ８０８に戻る。このようにして、子供の子供（孫）、孫の子供（ひ孫）といった具合に、最下層までチェック用フラグが“Ｔｒｕｅ”にセットされる。
【００７４】
ステップＳ８１２では、組立状態再現部１４は、ｊを“１”デクリメントする。即ち、処理対象が、前の組立作業に移行される。
【００７５】
ステップＳ８１４では、組立状態再現部１４は、ｊ＝０であるか否かを判定する。ｊ＝０であることは、前の組立作業が無いことを意味し、従って、手順１までの組立作業が考慮されたことを意味する。ｊ＝０の場合は、ステップＳ８１８に進み、ｊ≠０の場合は、ステップＳ８１６に進む。
【００７６】
ステップＳ８１６では、組立状態再現部１４は、ｊ番目の組立作業に係る作業対象ワーク部品及び組付け先部品のいずれかに係るチェック用フラグが“Ｔｒｕｅ”であるか否かを判定する。判定結果が“ＹＥＳ”の場合は、ステップＳ８０６に戻り、それ以外の場合は、ステップＳ８１２に戻る。
【００７７】
ステップＳ８１８では、組立状態再現部１４は、表示用フラグが“Ｔｒｕｅ”のサブアセンブリがあり、且つ、該サブアセンブリの配下の全ての部品の表示用フラグが“Ｆａｌｓｅ”であるか否かを判定する。サブアセンブリの配下の全ての部品とは、該サブアセンブリを形成する各部品の全てに対応する。例えば図６に示す例では、サブアセンブリSubAssy１の配下の全ての部品とは、部品Ａ、部品Ｂ，部品Ｃ，及び部品Ｄである。判定結果が“ＹＥＳ”の場合は、ステップＳ８２０に進み、それ以外の場合は、ステップＳ８２２にスキップする。
【００７８】
ステップＳ８２０では、組立状態再現部１４は、表示用フラグが“Ｔｒｕｅ”のサブアセンブリの配下にある全ての部品の表示用フラグを“Ｔｒｕｅ”にセットする。
【００７９】
ステップＳ８２２では、組立状態再現部１４は、表示用フラグが“Ｔｒｕｅ”の各部品を初期位置に移動させる。この際、組立状態再現部１４は、ｋ番目のロボット動作テンプレートに係る作業分類に応じて、それぞれの部品を初期位置へ移動させる。例えば、組立状態再現部１４は、作業対象ワーク部品及び組付け先部品を、それぞれ、それぞれの供給位置及び組付け位置に移動させる。供給位置及び組付け位置は、作業分類に応じて、組立設備データに基づいて導出されてよい。組立状態再現部１４は、作業対象ワーク部品に組付けられている他の部品が存在する場合は、作業対象ワーク部品及び該他の部品に係る部品３Ｄデータに基づいて、該他の部品を作業対象ワーク部品に対して位置付ける。これにより、作業対象ワークの３Ｄデータが再現される。同様に、組立状態再現部１４は、組付け先部品に組付けられている他の部品が存在する場合は、組付け先部品及び該他の部品に係る部品３Ｄデータに基づいて、該他の部品を組付け先部品に対して位置付ける。これにより、組付け先の３Ｄデータが再現される。このようにして、ｋ番目のロボット動作テンプレートに係る一の組立作業の開始時における製品の組立状態が再現される（図７参照）。組立状態再現部１４は、再現した組立状態のデータ（組立状態再現データ）を、組立状態再現データ記憶部２４に記憶する。図７では、手順５に係る一の組立作業の開始時における製品の組立状態の再現（出力）が示されている。
【００８０】
ところで、実際の工場では、生産変動の対応のために作業順序の組み換えが行われており、その度にロボット動作生成をやり直すのは不便である。例えば、図６に示す例では、当初は、以下のような手順（組立作業の順序）が規定されていたが、上述のような手順に変更されている。
手順０１．部品Ｃを部品Ｄに組付ける。
手順０２．サブアセンブリSubAssy２を部品Ａに組付ける。
手順０３．部品Ｂを部品Ａに組付ける。
手順０４．部品Ｙを部品Ｚに組付ける。
手順０５．部品Ｚを部品Ｗに組付ける。
手順０６．サブアセンブリSubAssy３を部品Ｘに組付ける。
手順０７．サブアセンブリSubAssy１を部品Ｘに組付ける。
このような、作業順序に依存する組立対象製品の組立状態をテンプレート化することは難しい。作業順序の場合の数は、膨大であり、例えば、50作業ある場合は、作業順序は50!(1064)通りにも上る。
【００８１】
この点、本実施例によれば、組立状態再現部１４は、組立作業順序データ記憶部２０内の組立作業順序データと、製品データ記憶部２２内の製品データとに基づいて、特定の一の組立作業の開始時における組立状態を再現する。従って、ユーザは、作業順序の組み換えのような作業順序の変更時には、それに伴い組立作業順序データを変更するだけでよくなる。
【００８２】
他方、作業順序の組み換えのような作業順序の変更時には、製品データ記憶部２２内の製品データのうちの、部品構成データについても変更が必要となる場合があり得る。例えば、当初はサブアセンブリとして組付けられる予定であった部品が、単独で組付けられるように変更された場合、部品構成が変更されることになる。
【００８３】
この点、部品構成データについてもユーザに変更してもらうことしてもよいが、図８に示す処理によれば、かかるユーザによる部品構成データの変更を必要とせずに、特定の一の組立作業の開始時における製品の組立状態を再現できる。具体的には、図８に示す処理によれば、組立作業順序データに基づいて組立作業を遡りながら表示用フラグを“Ｔｒｕｅ”にセットするので（ステップＳ８１２、ステップＳ８１６等参照）、部品構成の変更の影響を低減できる。また、図８に示す処理によれば、ステップＳ８１８及びステップＳ８２０を設けることで、サブアセンブリ単位で作業順序が規定される場合でも、サブアセンブリ配下の部品が省略されない態様で組立状態を再現できる。
【００８４】
また、実際の工場では、一連の組立作業の途中で、組み立て途中のサブアセンブリなどとは、別の組立作業を行うことがあるため、対象作業ワークに関係ある部品だけを再現することが望ましい。
【００８５】
この点、図８に示す処理によれば、ステップＳ８０６〜ステップＳ８１６を行うことで、対象作業ワークに関係ある部品だけを再現できる。即ち、特定の一の組立作業に係る作業対象ワーク部品と、同組立作業に係る組付け先部品とに基づいて、該作業対象ワーク部品に既に組付けられている部品を含む作業対象ワークと、該組付け先部品に既に組付けられている組付けとを再現できる。
【００８６】
次に、図１０乃至図１２を参照して、教示点導出処理の例について説明する。
【００８７】
図１０及び図１１は、教示点導出処理の説明図である。図１０は、作業対象ワークの把持時（ピック）に対する教示点を側面視で模式的に示す図であり、図１１は、組付け先への作業対象ワークの組付け時（プレイス）に対する教示点を側面視で模式的に示す図である。
【００８８】
図１０には、部品供給トレイ９０２上の作業対象ワーク８１０がロボットハンド７００で把持された状態が示される。図１０において、Ｐ１０は、把持位置に関する教示点であり、Ｐ１１は、アプローチ位置に関する教示点であり、Ｐ１２は、持ち上げ位置に関する教示点である。尚、各教示点間でのロボットハンド７００の動作方向は、直線であってよい。
【００８９】
図１１には、組付け先８２０への作業対象ワークの組付け時の状態が示される。図１１において、Ｐ１３は、組付け位置に関する教示点であり、Ｐ１４は、退避位置に関する教示点であり、Ｐ１５は、アプローチ位置に関する教示点である。尚、各教示点間でのロボットハンド７００の動作方向は、直線であってよい。
【００９０】
教示点導出部１６は、部品供給トレイ９０２上の作業対象ワーク８１０の把持位置でのロボットハンド７００の姿勢値と、組付け先８２０への作業対象ワークの組付け位置でのロボットハンド７００の姿勢値とを導出する。把持位置及び組付け位置でのロボットハンド７００の姿勢は、組立状態再現データ（即ち組立状態再現処理の出力）等に基づいて、導出できる。この際、教示点導出部１６は、組立設備データに基づいて、ロボットハンド７００が組立設備に載置される物体や組立設備自体にぶつかることなく（干渉することなく）把持及び組付けできる姿勢値を導出する。組立設備に載置される物体は、例えば、組立対象製品に係る部品や部品組立体であって、作業対象ワークや組み付け先とは関係のない部品や部品組立体であり、以下、「仮置き物体」と称する。尚、組立設備に仮置き物体が無い場合は、かかる仮置き物体は考慮されない（以下の説明においても同様である）。
【００９１】
また、教示点導出部１６は、組立設備データに基づいて、把持位置から組付け位置までロボットハンド７００が組立設備自体や仮置き物体にぶつかることなく移動できる動作方向（作業対象ワークの移動軌跡）を導出する。
【００９２】
図１２は、教示点導出処理の一例を示すフローチャートである。図１２に示す処理は、図５のステップＳ５１４として実行される。
【００９３】
ステップＳ１２００では、教示点導出部１６は、作業対象ワークに対する部品把持位置の座標値（ｘ10、ｙ10、ｚ10）をグローバル座標系で導出する。グローバル座標系での部品把持位置の座標値は、作業対象ワークに係る部品把持位置（部品座標系）と、組立状態再現データ（グローバル座標系）に基づく作業対象ワークの位置とに基づいて、導出されてよい。尚、ここで使用される組立状態再現データは、ｋ番目のロボット動作テンプレートに係る一の組立作業の開始時における製品の組立状態に係るデータである。
【００９４】
ステップＳ１２０２では、教示点導出部１６は、作業対象ワークに係る部品把持位置（部品座標系）に基づいて、作業対象ワークを把持できる姿勢値（α10、β10、γ10）をグローバル座標系で導出する。この際、教示点導出部１６は、組立設備データに基づいて、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく、作業対象ワークを把持できる姿勢値（α10、β10、γ10）を導出する。この導出結果と、ステップＳ１２００の導出結果とから、グローバル座標系で把持位置に関する教示点（ｘ10、ｙ10、ｚ10、α10、β10、γ10）（図１０のＰ１０参照）が得られる。
【００９５】
ステップＳ１２０４では、教示点導出部１６は、組立状態再現データに基づいて、組付け先への作業対象ワークの組付け位置（部品組付け位置）の座標値（ｘ13、ｙ13、ｚ13）をグローバル座標系で導出する。グローバル座標系での組付け位置の座標値は、組立状態再現データ（グローバル座標系）に基づく組付け先部品の位置に基づいて導出できる。例えば、作業対象ワーク部品の組付け位置は、組付け先部品の供給位置情報と、製品組立時の作業対象ワーク部品と組付け先部品の相対位置、から導出できる。
【００９６】
ステップＳ１２０６では、教示点導出部１６は、作業対象ワークに係る部品組付け位置（グローバル座標系）に基づいて、作業対象ワークを組付け先に組付けできる姿勢値（α13、β13、γ13）をグローバル座標系で導出する。この際、教示点導出部１６は、組立設備データに基づいて、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく、作業対象ワークを組付け先に組付けできる姿勢値（α13、β13、γ13）を導出する。この導出結果と、ステップＳ１２０４の導出結果とから、グローバル座標系で組付け位置に関する教示点（ｘ13、ｙ13、ｚ13、α13、β13、γ13）（図１１のＰ１３参照）が得られる。
【００９７】
ステップＳ１２０８では、教示点導出部１６は、組立設備データに基づいて、ステップＳ１２０２で得た把持位置に関して、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる軌跡を導出する。即ち、教示点導出部１６は、座標値（ｘ10、ｙ10、ｚ10）までの軌跡及びからの軌跡であって、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる軌跡（動作方向）を導出する。この際、教示点導出部１６は、組立設備データに基づいて、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる姿勢値（軌跡上の各位置における姿勢値）を導出する。軌跡上の各位置における姿勢値は、一定であってもよいし、変化される値であってもよい。
【００９８】
ステップＳ１２１０では、教示点導出部１６は、ステップＳ１２０８で得た軌跡（動作方向）と、ｋ番目のロボット動作テンプレートに記述される基準点からの距離とに基づいて、軌跡上の各教示点を導出する。このとき、基準点としては、把持位置に関する教示点（ｘ10、ｙ10、ｚ10、α10、β10、γ10）が用いられる。この結果、例えば、グローバル座標系でアプローチ位置に関する教示点（ｘ11、ｙ11、ｚ11、α11、β11、γ11）（図１０のＰ１１参照）や持ち上げ位置に関する教示点（ｘ12、ｙ12、ｚ12、α12、β12、γ12）（図１０のＰ１２参照）が得られる。
【００９９】
ステップＳ１２１２では、教示点導出部１６は、組立設備データに基づいて、ステップＳ１２０６で得た組付け位置に関して、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる軌跡を導出する。即ち、教示点導出部１６は、座標値（ｘ13、ｙ13、ｚ13）までの軌跡及びからの軌跡であって、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる軌跡（動作方向）を導出する。この際、教示点導出部１６は、組立設備データに基づいて、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる姿勢値（軌跡上の各位置における姿勢値）を導出する。軌跡上の各位置における姿勢値は、一定であってもよいし、変化される値であってもよい。
【０１００】
ステップＳ１２１４では、教示点導出部１６は、ステップＳ１２１２で得た軌跡（動作方向）と、ｋ番目のロボット動作テンプレートに記述される基準点からの距離とに基づいて、軌跡上の各教示点を導出する。このとき、基準点としては、組付け位置に関する教示点（ｘ13、ｙ13、ｚ13、α13、β13、γ13）が用いられる。この結果、例えば、グローバル座標系で退避位置に関する教示点（ｘ14、ｙ14、ｚ14、α14、β14、γ14）（図１１のＰ１４参照）やアプローチ位置に関する教示点（ｘ15、ｙ15、ｚ15、α15、β15、γ15）（図１１のＰ１５参照）が得られる。
【０１０１】
ステップＳ１２１６では、教示点導出部１６は、ステップＳ１２０２、ステップＳ１２０６、ステップＳ１２１０及びステップＳ１２１４で得た各教示点を、教示点順序に従ってリスト化した教示点リストを生成（出力）し、教示点リスト記憶部２５に記憶する。
【０１０２】
図１２に示す処理によれば、組立状態再現データに基づいて、作業対象ワークに対する部品把持位置の座標値、及び、組付け先への作業対象ワークの組付け位置の座標値が導出される。これにより、例えば作業対象ワークや組付け先が部品単体ではなくサブアセンブリであった場合でも、かかる状態が再現される組立状態再現データに基づいて同座標値を導出できる。
【０１０３】
また、図１２に示す処理によれば、作業順序の組み換えのような作業順序の変更時には、それに応じて変化した組立状態再現データに基づいて、作業対象ワークに対する部品把持位置の座標値等の各教示点を導出できる。また、図１２に示す処理によれば、組立設備データに基づいて、ロボットハンド７００が仮置き物体や組立設備にぶつかることなく移動できる各教示点を導出できる。
【０１０４】
次に、図１３及び図１４を参照して、ロボット動作プログラムの生成処理について説明する。
【０１０５】
図１３は、ロボット動作プログラムの生成処理の流れを模式的に示す図である。図１３には、基準点情報１３０１と、基準オフセット情報１３０２と、ロボット動作テンプレートの一部（図３の教示点順序記述部３０２参照）１３０３と、教示点リスト１３０４と、動作プログラム１３０５とが示される。
【０１０６】
基準点情報１３０１は、基準点ＲＥＦの情報である。基準点ＲＥＦは、例えば、図１２のステップＳ１２０２で得られる把持位置に関する教示点（ｘ10、ｙ10、ｚ10、α10、β10、γ10）や、ステップＳ１２０６で得られる組付け位置に関する教示点（ｘ13、ｙ13、ｚ13、α13、β13、γ13）である。
【０１０７】
基準オフセット情報１３０２は、各教示点に関して、基準点ＲＥＦからの距離であり、図３の教示点変数化部３００の情報３１０から取得される。即ち、基準オフセット情報１３０２は、ユーザにより設定される情報である。
【０１０８】
教示点リスト１３０４は、上述のように教示点導出部１６により生成される（図１２のステップＳ１２１６参照）。
【０１０９】
図１３に示す例では、ロボット動作生成部１８は、教示点リスト１３０４に記載の各教示点を、ロボット動作テンプレート１３０３の教示点順序記述部３０２における対応する個所の変数に代入することで、ロボット動作プログラム１３０５を生成する。
【０１１０】
図１４は、ロボット動作プログラムの生成処理の一例を示すフローチャートである。図１４に示す処理は、図５のステップＳ５２０として実行される。
【０１１１】
ステップＳ１４００では、ロボット動作生成部１８は、ｉ番目のロボット動作テンプレートを選択する。ｉの初期値は“１”である。
【０１１２】
ステップＳ１４０２では、ロボット動作生成部１８は、教示点リスト記憶部２５からｉ番目のロボット動作テンプレートに係る教示点リストを読み出す。教示点リストは、上述のように、ステップＳ５１４（図５及び図１２）によりＮ個のロボット動作テンプレートに対して、それぞれのロボット動作テンプレート毎に生成される。
【０１１３】
ステップＳ１４０４では、ロボット動作生成部１８は、教示点リスト内の各教示点を、ｉ番目のロボット動作テンプレートにおける対応する個所の変数に代入することで、ｉ番目のロボット動作テンプレートを完成させる（動作プログラムを生成する）。
【０１１４】
ステップＳ１４０６では、ロボット動作生成部１８は、ｉ＝Ｎであるか否かを判定する。Ｎは、上述のように、対象の一連の組立作業の含まれる組立作業の数である。ｉ＝Ｎの場合は、ステップＳ１４１０に進み、ｉ≠Ｎの場合は、ステップＳ１４０８を経て、ステップＳ１４００に戻る。
【０１１５】
ステップＳ１４０８では、ロボット動作生成部１８は、ｉを“１”だけインクリメントする。
【０１１６】
ステップＳ１４１０では、ロボット動作生成部１８は、完成させたＮ個のロボット動作テンプレートを、最終的なロボット動作プログラムとしてロボット動作プログラム記憶部２６に記憶する。
【０１１７】
本実施例によれば、上述のように、組立作業ロボットの専門知識が無いユーザでも、容易かつ短時間でロボット動作プログラムを作成することが可能となる。これにより、製品の組立状態を考慮したロボットの動作生成にかかる工数を削減できる。例えば、ユーザは、組立作業順序データ記憶部２０、製品データ記憶部２２、及び設備データ記憶部２３内の各データを生成し、ロボット動作テンプレートの変数設定作業を行うことで、ロボット動作プログラムを得ることができる。また、上述のように、作業順序の組み換えのような作業順序の変更時には、組立作業順序データを変更するだけで、該変更が反映されたロボット動作プログラムを得ることができる。
【０１１８】
次に、図１５及び図１６を参照して、動作生成装置１の実現例について説明する。
【０１１９】
図１５は、動作生成装置１がサーバとクライアントコンピュータとで実現される例の説明図である。
【０１２０】
サーバ９０は、クライアントコンピュータ７０と双方向に通信可能である。通信時、サーバ９０は、ネットワーク８を介してクライアントコンピュータ７０に接続される。ネットワーク８は、無線通信網や、インターネット、World  Wide  Web、VPN（virtual  private  network）、WAN（Wide  Area  Network）、有線ネットワーク、又はこれらの任意の組み合わせ等を含んでもよい。サーバ９０とクライアントコンピュータ７０との間の通信は、ネットワーク８を介して実現される。
【０１２１】
クライアントコンピュータ７０は、ユーザの位置にあるコンピュータの一例であり、サーバ９０は、ユーザから離れた遠隔位置にあるコンピュータの一例である。尚、クライアントコンピュータ７０は、複数のユーザに対応して、複数個存在しうる。
【０１２２】
図１６は、動作生成装置１の処理装置１００の各構成要素の分散態様の一例を示す表図である。図１６において、処理装置１００の各構成要素は、クライアントコンピュータ７０及びサーバ９０のうちの、○が付けられた方に設けられることを意味する。
【０１２３】
動作生成装置１の処理装置１００の各構成要素は、図１６に示すように、クライアントコンピュータ７０及びサーバ９０に分散して設けられてよい。尚、図１６に示す例は、分散態様の一例であり、多様な態様で変更可能である。例えば、図１６に示す例に対する一変形例として、変数設定部１２と、ロボット動作プログラム記憶部２６とがクライアントコンピュータ７０に設けられ、他の構成要素がサーバ９０に設けられてもよい。この場合、クライアントコンピュータ７０は、組立作業順序データや製品データ、設備データをサーバ９０にアップデートし、それに応じてサーバ９０からロボット動作テンプレートを取得する。次いで、クライアントコンピュータ７０は、ユーザからの入力に基づく変数設定部１２による設定結果をサーバ９０に送信し、サーバ９０は、該設定結果に基づいて、ロボット動作プログラムを生成する。そして、サーバ９０は、生成したロボット動作プログラムをクライアントコンピュータ７０に送信し、クライアントコンピュータ７０は、受信したロボット動作プログラムをロボット動作プログラム記憶部２６に記憶して使用する。
【０１２４】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１２５】
例えば、上述した実施例では、製品データは、組立対象製品を形成する各部品の部品３Ｄデータ、及び、同製品の部品構成データを含むが、部品構成データは省略されてもよい。
【０１２６】
なお、以上の実施例に関し、さらに以下の付記を開示する。
［付記１］
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出することを含む、コンピュータにより実行される組立作業ロボットの動作生成方法。
［付記２］
前記組立対象製品の組立状態を再現することは、前記一の組立作業に係る作業対象ワークと、前記作業対象ワークが組付けられる組付け先とを特定することを含む、付記１に記載の組立作業ロボットの動作生成方法。
［付記３］
前記組立対象製品の組立状態を再現することは、更に、
前記順序データに基づいて、複数の前記部品の中から、前記一の組立作業に係る作業対象ワーク部品と、前記作業対象ワーク部品が組付けられる組付け先部品とを特定すること、及び、
前記順序データに基づいて、複数の前記部品の中に、前記一の組立作業よりも前に行われる組立作業で前記作業対象ワーク部品又は前記組付け先部品に組み付けられる部品があるか否かを判定すること、
を含む、付記２に記載の組立作業ロボットの動作生成方法。
［付記４］
複数の前記部品の中に、前記一の組立作業よりも前に行われる組立作業で前記作業対象ワーク部品に組み付けられる部品があると判定した場合に、該部品が組み付けられた前記作業対象ワーク部品に基づいて、前記作業対象ワークを特定する、付記３に記載の組立作業ロボットの動作生成方法。
［付記５］
複数の前記部品の中に、前記一の組立作業よりも前に行われる組立作業で前記組付け先部品に組み付けられる部品があると判定した場合に、該部品が組み付けられた前記組付け先部品に基づいて、前記組付け先を特定する、付記３又は４に記載の組立作業ロボットの動作生成方法。
［付記６］
複数の前記部品の関係を表す部品構成データに更に基づいて、前記作業対象ワーク及び前記組付け先を特定する、付記３〜５のうちのいずれか1項に記載の組立作業ロボットの動作生成方法。
［付記７］
前記組立対象製品の組立状態を再現することは、更に、前記一の組立作業の開始時における前記作業対象ワーク及び前記組付け先のそれぞれの位置を導出することを含む、付記２に記載の組立作業ロボットの動作生成方法。
［付記８］
前記一の組立作業の開始時における前記作業対象ワーク及び前記組付け先のそれぞれの前記位置と、前記組立対象製品の組立に用いる組立設備に表す組立設備データとに基づいて、前記教示点を導出する、付記７に記載の組立作業ロボットの動作生成方法。
［付記９］
前記組立設備に前記組立作業ロボットが干渉しない態様で、前記教示点を導出する、付記８に記載の組立作業ロボットの動作生成方法。
［付記１０］
前記組立設備に加えて、前記組立設備に載置される物体にも前記組立作業ロボットが干渉しない態様で、前記教示点を導出する、付記９に記載の組立作業ロボットの動作生成方法。
［付記１１］
前記組立対象製品の組立状態を再現すること、及び、前記教示点を導出することを、前記一連の組立作業に含まれる複数の組立作業のそれぞれを前記一の組立作業として、繰り返すことを含む、付記１〜１０のうちのいずれか１項に記載の組立作業ロボットの動作生成方法。
［付記１２］
導出した前記教示点に基づいて、前記組立作業ロボットの動作プログラムを生成することを更に含む、付記１〜１１のうちのいずれか１項に記載の組立作業ロボットの動作生成方法。
［付記１３］
前記教示点を導出することは、作業分類ごとに用意されたテンプレートであって、前記教示点に係る情報を変数化したテンプレートにおける変数を導出することを含む、付記１〜１２のうちのいずれか１項に記載の組立作業ロボットの動作生成方法。
［付記１４］
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現する組立状態再現部と、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出する教示点導出部とを含む、組立作業ロボットの動作生成装置。
［付記１５］
組立作業ロボットを少なくとも部分的に用いて組立対象製品を組み立てる際の一連の組立作業の順序データと、前記組立対象製品を形成する複数の部品の３Ｄデータとに基づいて、前記一連の組立作業に含まれる一の組立作業の開始時における前記組立対象製品の組立状態を再現し、
再現した前記組立状態に基づいて、前記一の組立作業に係る前記組立作業ロボットに対する教示点を導出する、
処理をコンピュータに実行させる組立作業ロボットの動作生成プログラム。
【符号の説明】
【０１２７】
１  動作生成装置
１０  データ取得部
１２  変数設定部
１４  組立状態再現部
１６  教示点導出部
１８  ロボット動作生成部
２０  組立作業順序データ記憶部
２１  ロボット動作テンプレート記憶部
２２  製品データ記憶部
２３  設備データ記憶部
２４  組立状態再現データ記憶部
２５  教示点リスト記憶部
２６  ロボット動作プログラム記憶部
２７  ロボット動作テンプレートデータベース
【図１】
2018083277.tif 000003
【図２】
2018083277.tif 000004
【図３】
2018083277.tif 000005
【図４】
2018083277.tif 000006
【図５】
2018083277.tif 000007
【図６】
2018083277.tif 000008
【図７】
2018083277.tif 000009
【図８】
2018083277.tif 000010
【図９】
2018083277.tif 000011
【図１０】
2018083277.tif 000012
【図１１】
2018083277.tif 000013
【図１２】
2018083277.tif 000014
【図１３】
2018083277.tif 000015
【図１４】
2018083277.tif 000016
【図１５】
2018083277.tif 000017
【図１６】
2018083277.tif 000018