(57)【要約】【課題】ロボットの工程動作を取り扱う制御端末において、工程動作において干渉が発生しないことを確認し、その結果に応じて制御端末からロボット装置への教示点のコピーを制御できるようにする。【解決手段】ロボット装置の動作を記述した、工程動作データおよび教示点データに基づき、仮想環境を用いてロボット装置の動作を実行させる（シミュレーション実行部３）。シミュレーション結果に基づき、ロボット装置とロボット装置以外の物体との干渉の有無を確認する（干渉確認部４）。干渉確認の結果に基づき動作状態を判定し、その動作状態判定結果を表現したフラグを教示点データごとに生成する（動作状態設定部５）。そしてフラグ生成工程で特定の教示点データに関して生成したフラグの状態に基づき、特定の教示点データをロボット装置に転送するか否かを決定する（教示点転送部７）。【選択図】図１
2019081204.tif 000002
【特許請求の範囲】
【請求項１】
工程動作データと教示点データとに基づきロボット装置を動作させるロボット制御方法であって、
前記工程動作データおよび前記教示点データに基づき、仮想環境を用いて前記ロボット装置の動作を実行させるシミュレーション工程と、
前記シミュレーション工程の実行結果に基づき、前記ロボット装置と、前記ロボット装置とは別の物体と、の干渉の有無を確認する干渉確認工程と、
前記干渉確認工程の実行結果に基づき動作状態を判定し、その動作状態判定結果を表現したフラグを前記教示点データごとに生成するフラグ生成工程と、
前記フラグ生成工程で生成した前記フラグの状態に基づき、前記フラグに対応する教示点データを前記ロボット装置に転送するか否かを決定する転送制御工程と、を備えたロボット制御方法。
【請求項２】
請求項１に記載のロボット制御方法において、前記フラグ生成工程で生成される前記フラグの値には、前記ロボット装置が前記ロボット装置とは別の物体と干渉しない動作状態判定結果を示す第１のフラグ値と、前記ロボット装置が前記ロボット装置とは別の物体と干渉する動作状態判定結果を示す第２のフラグ値と、が含まれるロボット制御方法。
【請求項３】
請求項２に記載のロボット制御方法において、特定の教示点データに関して前記フラグ生成工程によって生成されたフラグが前記第２のフラグ値を有する場合、前記特定の教示点データの前記ロボット装置への転送が禁止されるロボット制御方法。
【請求項４】
請求項２または３に記載のロボット制御方法において、前記フラグ生成工程で生成される前記フラグの値には、前記ロボット装置が前記ロボット装置とは別の物体と干渉する可能性のある動作状態判定結果を示す第３のフラグ値が含まれるロボット制御方法。
【請求項５】
請求項１から４のいずれか１項に記載のロボット制御方法において、前記干渉確認工程が実行されていない教示点データに関する前記フラグが、前記干渉確認工程が実行されていない旨を示す値を取るロボット制御方法。
【請求項６】
請求項１から５のいずれか１項に記載のロボット制御方法において、オペレータの編集操作に応じて前記工程動作データ、または前記教示点データの内容を編集する編集工程を備えたロボット制御方法。
【請求項７】
請求項６に記載のロボット制御方法において、前記編集工程で特定の教示点データの内容が編集された場合、前記特定の教示点データと、前記特定の教示点データに先行する教示点データと、前記特定の教示点データに後続する教示点データと、に関する各フラグをそれぞれ初期値に変更するロボット制御方法。
【請求項８】
請求項１から７のいずれか１項に記載のロボット制御方法の各工程を実行する制御装置。
【請求項９】
請求項８に記載の制御装置と、表示装置と、を備えた制御端末。
【請求項１０】
請求項９に記載の制御端末において、前記表示装置は、前記シミュレーション工程における仮想環境での前記ロボット装置の動作を表示する制御端末。
【請求項１１】
請求項９または１０に記載の制御端末において、前記表示装置は、前記ロボット装置が、特定の教示点データに基づき動作するのに伴ない前記特定の教示点データの内容を表示する制御端末。
【請求項１２】
請求項８に記載の制御装置に前記各工程を実行させる制御プログラム。
【請求項１３】
請求項１２に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１４】
請求項８に記載の制御装置と、前記制御装置によって動作させるロボット装置と、を備えたロボットシステムであって、
前記制御装置から前記ロボット装置に前記工程動作データないし前記教示点データが転送されるロボットシステム。
【請求項１５】
請求項１４に記載のロボットシステムにおいて、前記制御装置より転送された前記工程動作データ、または前記教示点データに基づき前記ロボット装置が工程動作を行うことにより部品を製造する部品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御端末で検証した教示点データを、制御端末からロボット装置に転送して使用させるロボット制御方法、その制御端末、およびそのロボット制御方法を用いるロボットシステムに関する。
【背景技術】
【０００２】
産業用ロボットなどのロボット装置において、ロボットの動作を作成する際、ロボットが動作目標とする位置、すなわち教示点を作成する。この教示点の表現には、ロボットアームの手先などの所定の基準位置の３次元座標値や、ロボットアームの各関節の関節角指令値などが用いられる。教示点の作成手法としては、例えばティーチングペンダントなどのロボット操作装置を用いて、ロボットを任意の位置に動作させ、決定した位置をロボットコントローラ上に記憶させる方法が知られている。
【０００３】
また、近年では、ロボットの実機を用いず、ロボットプログラミングのための制御端末により、ロボット動作をプログラミングする手法が用いられることがある（例えば下記の特許文献１）。その場合、例えばシミュレータ端末上で、３Ｄ仮想表示を行うことにより、実機環境を模した仮想環境内で、実機に対応するロボットを動作させながらロボットプログラミングを行うことも考えられる。
【０００４】
実環境で、ロボット装置が障害物や他のロボット装置と干渉（衝突、接触などを）すると、場合によっては、修理や再調整のために大きな復旧コストを生じる可能性がある。そのため、実環境を用いたロボットプログラミングでは、作業環境内の障害物や他のロボット装置との干渉を生じないよう細心の注意を払う必要がある。これに対して、ロボットの実機を用いずオフラインで仮想環境内でロボットを動作させ、教示点を生成する場合には、例えば干渉状態などを監視しつつ動作確認を行う必要がない。そのため、効率よくロボットプログラミングを行うことができる可能性がある。
【０００５】
ロボットプログラミング端末により作成した教示点データは、実機のロボット装置、例えば、ロボットアームを制御するロボット制御装置にコピー（転送）して使用される。ただし、通常は、直ちにコピーした教示点データを用いて生産ラインなどに配置したロボット装置を本稼働させることはせず、実機を用いたテストや検証動作を行い、必要であれば教示点の修正などを行う。例えば、実環境のロボット装置では模擬しきれないロボットのたわみなどが存在し、そのために、実機がロボットプログラミング端末上の動作と異なる動作をする可能性がある。そこで、シミュレータ上である程度の精度が出ている教示点を、実環境でのテストや検証動作を介して修正することによって、実際に実機を動作させるための最終的なロボット教示点が作成される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１６−６４４８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ロボット装置の実機を用いず、制御端末やシミュレータにより、教示点を作成／修正する場合、例えば工程動作をテストする。そして、ロボットアームと作業環境内の物体の干渉、あるいは複数のロボットアームが設置される構成においてはアーム同士の干渉などがないことを確認する。しかし、ロボットの工程動作が非常に多く、複雑なロボット装置である場合、教示点を修正するたびに全ての工程をシミュレーションし、干渉確認を行っていては作業効率が向上しない。とはいえ、干渉確認などに漏れがあると、シミュレータで作成した教示点を実機で確認する際に実機上での動作で干渉が発生し、実環境でクラッシュのような障害を生じる可能性がある。
【０００８】
上記の特許文献１には、教示点ごとに読み書き、参照、などのアクセスを制御するパーミッション（アクセス権限）情報を付与する技術が記載されている。このようなパーミッション（アクセス権限）情報を用いて、例えば、シミュレータやロボットプログラミング端末、実機のロボット装置のような拠点間の教示点データのコピーを制御することができる。しかしながら、特許文献１の構成は、パーミッション（アクセス権限）情報を教示点毎に作業者が手動で設定することが前提となっており、煩雑な作業が必要である。また、未確認パーミッション（アクセス権限）情報の設定ミスが発生した場合に、期待する効果を得られないことがある。
【０００９】
本発明の課題は、以上の事情に鑑み、ロボットの工程動作を取り扱う制御端末において、工程動作において干渉が発生しないことを確認し、その結果に応じて制御端末からロボット装置への教示点のコピーを制御できるようにすることにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明においては、工程動作データと教示点データとに基づきロボット装置を動作させるロボット制御方法であって、前記工程動作データおよび前記教示点データに基づき、仮想環境を用いて前記ロボット装置の動作を実行させるシミュレーション工程と、前記シミュレーション工程の実行結果に基づき、前記ロボット装置と、前記ロボット装置とは別の物体と、の干渉の有無を確認する干渉確認工程と、前記干渉確認工程の実行結果に基づき動作状態を判定し、その動作状態判定結果を表現したフラグを前記教示点データごとに生成するフラグ生成工程と、前記フラグ生成工程で生成した前記フラグの状態に基づき、前記フラグに対応する教示点データを前記ロボット装置に転送するか否かを決定する転送制御工程と、を備えた構成を採用した。
【発明の効果】
【００１１】
以上の構成によれば、ロボットプログラミングを行う制御端末において、工程動作において干渉が発生しないことを確認し、その結果に応じて制御端末からロボット装置への教示点のコピーを制御することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態１に係る制御端末の機能ブロックの構成を示した説明図である。
【図２】本発明の実施形態１に係る教示点データと教示点ごとに生成されたフラグを示した説明図である。
【図３】本発明の実施形態１に係る教示点データの構成例を示した説明図である。
【図４】本発明の実施形態１において教示点データごとに生成されるフラグの値を示した説明図である。
【図５】本発明の実施形態１において教示点データごとに生成されるフラグの値と、その教示点データの転送可否の制御割り当て例を示した説明図である。
【図６】本発明の実施形態１に係る制御端末あるいはロボット制御装置の制御系の具体的な構成の一例を示したブロック図である。
【図７】本発明の実施形態２に係る制御端末、およびロボット装置の機能ブロックの構成を示した説明図である。
【図８】本発明に係るロボット装置による作業環境、またはその仮想環境上の表示を示した説明図である。
【図９】教示点データの編集が行われた時のフラグの取り扱いの一例を示した説明図である。
【図１０】本発明に係る工程動作データないし教示点データに関するシミュレーションを行って干渉確認を行う工程と、その結果に応じて教示点データごとにフラグを生成するフラグ生成工程を示したフローチャート図である。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１４】
＜実施形態１＞
本発明のロボット制御方法を実施可能なロボットシステムは、ロボット装置と、このロボット装置の動作を記述した工程動作データおよび教示点データを取り扱う制御端末と、を備える。
【００１５】
図６は、これら制御端末６００と、ロボット装置７００がネットワークＮＷを介して接続された構成を示している。図６は、ＣＰＵ６０１廻りに配置された各ブロックから成る制御端末６００のハードウェア構成を中心に示している。しかしながら、このＣＰＵ６０１廻りに配置された各ブロックから成る構成は、例えば、ロボット装置７００のロボット制御装置などにおいてもほぼ同様に適用できる。なお、図６のＣＰＵ６０１廻りの構成を、制御端末６００以外のハードウェアに適用する場合については、以下で必要に応じて説明する。
【００１６】
図６の制御端末６００を構成するハードウェアは、例えば、ＣＰＵ６０１、ＲＯＭ６０２、ＲＡＭ６０３などを主たる制御手段（制御装置）として用いた構成である。
【００１７】
図６の制御装置は、主制御手段としてのＣＰＵ６０１、記憶装置としてのＲＯＭ６０２、およびＲＡＭ６０３を備える。ＲＯＭ６０２には、後述する制御手順を実現するためのＣＰＵ６０１の制御プログラムや定数情報などを格納しておくことができる。また、ＲＡＭ６０３は、後述する制御手順を実行する時にＣＰＵ６０１のワークエリアなどとして使用される。
【００１８】
図６の構成が、制御端末６００の場合には、ユーザーインターフェース装置として、例えばディスプレイ６０８、および操作部６０９がインターフェース６０７に接続される。操作部６０９は、例えばフルキーボードおよびポインティングデバイスなどから構成することができる。
【００１９】
図６の制御端末６００には、ネットワークＮＷを介して通信する通信手段としてネットワークインターフェース６０５が接続されている。制御端末６００は、ネットワークインターフェース６０５〜ネットワークＮＷを介してロボット装置７００との間で例えば上記の教示点データや工程動作データを授受することができる。その場合、ネットワークインターフェース６０５は、例えばＩＥＥＥ  ８０２．３のような有線通信、ＩＥＥＥ  ８０２．１１、８０２．１５のような無線通信による通信規格で構成する。しかしながら、ネットワークＮＷもちろん、それ以外の任意の通信規格を採用しても構わない。
【００２０】
なお、後述の制御手順を実現するためのＣＰＵ６０１の制御プログラムは、ＨＤＤやＳＳＤなどから成る外部記憶装置６０４や、ＲＯＭ６０２（の例えばＥＥＰＲＯＭ領域）のような記憶部に格納しておくこともできる。その場合、後述の制御手順を実現するためのＣＰＵ６０１の制御プログラムは、ネットワークインターフェース６０５を介して、上記の各記憶部に供給し、また新しい（別の）プログラムに更新することができる。あるいは、後述の制御手順を実現するためのＣＰＵ６０１の制御プログラムは、各種の磁気ディスクや光ディスク、フラッシュメモリなどの記憶手段と、そのためのドライブ装置を経由して、上記の各記憶部に供給し、またその内容を更新することができる。上述の制御手順を実現するためのＣＰＵ６０１の制御プログラムを格納した状態における各種の記憶手段、記憶部は、本発明の制御手順を格納したコンピュータ読み取り可能な記録媒体を構成することになる。
【００２１】
なお、図６のＣＰＵ６０１を中心とした構成は、例えば、図６中の「６００」と「７００」の参照符号を相互に交換して読み換えると、ロボット装置７００（あるいはそのロボットアームを制御するロボット制御装置）の構成として考えることができる。ロボット装置７００の場合には、ロボットアームの各部のモータやソレノイドなど（不図示）を駆動するドライバ回路７０１（１１）がインターフェース６０６に接続される。なお、このドライバ回路７０１（１１）は、後述の実施形態２においては動作実行部１１に相当する（図７）。
【００２２】
また、ディスプレイ６０８および操作部６０９から成るユーザーインターフェースは、ロボット装置７００の場合には、ティーチングペンダントのような操作端末（実施形態２のロボット操作部１４：図７）に置き換えてもよい。また、ディスプレイ６０８はロボット装置７００にも配置しておき、実施形態２で示す表示部１２（図７）として用いてもよい。その場合、表示部１２は、実行中の工程動作や教示点、教示点に関連づけられたフラグの内容を表示するために用いることができる。
【００２３】
図１は、本実施形態において、制御端末６００のロボット制御、特に工程動作データおよび教示点データの検証を行うために必要な構成を機能ブロックの形態で示している。図１の各機能ブロックは、シミュレータ工程動作記憶部２、シミュレータ教示点記憶部１、シミュレーション実行部３、干渉確認部４、動作状態設定部５、確認フラグ記憶部６、教示点転送部７、および、実機教示点記憶部８である。これら図１の各機能ブロックは、例えば、図６のＣＰＵ６０１のハードウェアおよびソフトウェア（制御プログラム）によって実現することができる。
【００２４】
なお、図１では、「シミュレーション」、ないし「シミュレータ」の語についてはとして”Ｓｉｍ”の略語を表示している。また、図１の実機教示点記憶部８は、厳密には制御端末６００に属するものではなく、外部装置、特に工程動作データおよび教示点データを用いるロボット装置７００の教示点記憶部に相当する。従って、図６の構成では、教示点転送部７と実機教示点記憶部８の間には、実際にはネットワークインターフェース６０５とネットワークＮＷが存在する。
【００２５】
図１のシミュレータ教示点記憶部１は、シミュレータ上で、シミュレーション実行時に、ロボット装置７００がどのような位置姿勢を取るかを定義した情報である。シミュレータ教示点記憶部１は、例えば図３に示すような教示点データをデータリストとして記憶する。図３の構成では、教示点データは、例えば教示点の番号を示す教示点番号２１と、教示点の座標値を示す教示点値２２から構成されている。図３では、便宜上、教示点番号２１ごとに教示点値２２として１個の実数値を示してあるが、教示点値２２の表現形式は任意である。教示点値２２としては、例えば、ロボットアームの所定部位（例えば手先のＴＣＰ：Ｔｏｏｌ  Ｃｅｎｔｅｒ  Ｐｏｉｎｔ）が作業空間で占める３次元座標値などを用いてもよい。あるいは、教示点値２２の他の表現としては、ロボットアームの全関節の駆動角の指令値などが用いられる場合もある。
【００２６】
図１のシミュレータ工程動作記憶部２は、工程動作データ、例えば、シミュレータ上で、シミュレーション実行時に、ロボットがどのような動作を行うかを定義した情報を記憶する。工程動作データは、例えば図２に示すように、工程番号を示す工程６１と、その工程で動作する先の教示点番号を示す移動先教示点番号６２と、後述のシミュレータによる動作確認の状態（動作状態判定結果）を記録する干渉フラグ６３と、から成る。
【００２７】
図１のシミュレーション実行部３は、シミュレータ工程動作記憶部２と、シミュレータ教示点記憶部１にそれぞれ格納されている工程動作データおよび教示点データにより定義されたロボット動作を仮想環境中で実行させるロボットの動作シミュレーション行う。なお、この仮想環境中には、ロボット装置（ロボットアーム）が配置され現実の作業環境に応じて、障害物（柱や空調ダクト、部品供給装置など他の装置）も配置しておく。このような仮想環境としては、ロボット装置（ロボットアーム）や障害物を例えばワイヤフレームなどによって表現した３Ｄ仮想環境を用いることが考えられる。
【００２８】
シミュレーション実行部３による動作シミュレーションでは、ロボットアームと他の物体の干渉の有無の検知を行う。ここで「干渉」とは、検証対象であるロボットアームと、他の物体、例えば仮想環境中に配置された障害物、あるいは別のロボットアームと、が相互に衝突や接触などの好ましくない位置（姿勢）の関係になることをいう。
【００２９】
干渉確認部４（干渉確認工程）について説明する。干渉確認部４は、シミュレーション実行部３から取得した実行工程番号と、干渉状態を取得し、シミュレーションを実行した工程毎に、干渉状態を決定する。具体的には、干渉確認部４は、例えば、図４に示すように、いくつかの特定の干渉状態を示すデータと、その特定の干渉状態に遷移するための条件を関連づけたデータテーブルなどから構成することができる。同図に示すように、本実施形態では干渉状態４１に「ＯＫ」、「警告」、「干渉」、「未確認」の４つの状態を定義している。この４つの状態は、後述の干渉フラグ６３の取り得るフラグ値に相当する。
【００３０】
また、「ＯＫ」、「警告」、「干渉」、「未確認」の各々の干渉状態４１に遷移する条件４２は、それぞれ「干渉なし」、「クリアランス内」、「干渉あり」、「動作未確認」となっている。ここで「干渉」は、上記のロボットアームと他の物体との干渉状態を示す。また、「クリアランス内」とは、「干渉」状態に至ってはいないが、ロボットアームと他の物体とのクリアランス（離間距離）が非常に近いことを示す。例えば、動作中のロボットアームと他の物体とのクリアランスについては、ロボットアームのハードウェア仕様、ロボットシステムの仕様などに応じて予め適当な値（例えば何ｍｍ以上、のような基準）が定められている。本実施形態では、最低のクリアランス（例えばＸｍｍ以上）は満たされているが、シミュレーションの結果、ロボットアームと他の物体が非常に近接（例えばＸ＋数ｍｍ以内）しており、制御誤差によっては干渉状態となる可能性があることを意味する。「動作未確認」のステートは、シミュレーション実行部３によるシミュレーションがまだ実行されていない工程データや教示点データについて用いられる。
【００３１】
図１の動作状態設定部５は、特定の教示点データ毎に、干渉確認部４を用いて決定された干渉状態を取得し、対応する値の干渉フラグ６３を確認フラグ記憶部６にセットする。干渉フラグ６３は、教示点データ毎に確認フラグ記憶部６に確保される。また、干渉フラグ６３は、干渉確認部４を用いて決定された干渉状態に応じて「ＯＫ」（第１のフラグ値）、「干渉」（第２のフラグ値）、「警告」（第３のフラグ値）、「未確認」のいずれかの値がセットされる。この「（動作）未確認」のフラグの値は、干渉確認工程が実行されていない旨を示す値であって、具体的な値としては、例えば、当該のフラグについて予め定義されている初期値やデフォルト値を用いてよい。
【００３２】
なお、初期状態では、教示点データ毎に確認フラグ記憶部６に確保される干渉フラグ６３が、「未確認」または「未定義」を示す値にセットされている仕様を用いてもよい。
【００３３】
また、物体モデルの干渉状態は、必ずしも特定の教示点の位置姿勢においてのみ生じるものではなく、例えば始点の教示点から終点の教示点に向かうある工程動作の途中で生じることもある。従って、干渉確認部４は各教示点データの位置姿勢のみにおいて、不連続的に干渉確認を行うのではなく、始点の教示点から終点の教示点に向かう工程動作の途中でも干渉状態が生じるかどうかを監視する。もし、教示点から次の教示点の間の工程動作の途中で干渉状態が検出された場合には、その工程の始点または終点の教示点データのいずれか、あるいはその双方に関連付けられた干渉フラグ６３に「干渉」レベルをセットする。このように工程動作の途中で干渉状態が検出された場合に、どの教示点データに関連付けられた「干渉」レベルをセットするかは、あらかじめシステムの規約などによって定めておけばよい。
【００３４】
図１の確認フラグ記憶部６は、動作状態設定部５の動作に応じて、シミュレータ工程動作記憶部２が記憶する教示点データ（工程動作データ）に関連づけて、干渉フラグ６３を記憶する。
【００３５】
なお、本実施形態では、後述のように、シミュレータ教示点記憶部１に含まれる教示点を任意の手段により変更（編集）した場合に、確認フラグ記憶部６に配置された干渉フラグ６３の値を変更する。
【００３６】
図１の教示点転送部７は、教示点データ毎に確認フラグ記憶部６に記憶されている干渉フラグ６３の状態に基づき、当該の教示点データ（ないし関連する工程動作データ）を外部装置、例えば、ロボット装置７００に転送するか否かを制御する。教示点転送部７は、例えば、図５に示すように干渉フラグ６３の値７１と、転送可否７２の情報を関連づけたデータテーブルを用いて当該の教示点データ（ないし関連する工程動作データ）の転送を許可するか否かを決定する。本実施形態では、図５に示すように、干渉フラグ６３の「ＯＫ」（第１のフラグ値）、「干渉」（第２のフラグ値）、「警告」（第３のフラグ値）、「未確認」の各フラグ値（７１）にそれぞれ「可」、「否」、「可」、「否」の転送可否（７２）を対応付ける。
【００３７】
操作部６０９（図６）で適当な操作が行われると、教示点転送部７は、干渉フラグ６３の値に定義された転送可否７２に基づき、実機教示点記憶部８にコピーする。その場合、例えば、干渉フラグ６３の値に定義された転送可否７２が転送可を示す「可」の状態になっている教示点データ（ないし関連する工程動作データ）のみをシミュレータ教示点記憶部１からロボット装置７００の実機教示点記憶部８にコピーする。
【００３８】
あるいは、一連の工程に含まれる教示点データのうち、１つでも干渉フラグ６３の転送可否７２が転送禁止を示す「否」の状態になっている教示点データがあれば、その一連の工程の教示点データ全体の転送を（一時）停止する制御を行ってもよい。その場合には、例えば工程番号ｘｘの教示点データｙｙの干渉フラグが「干渉」状態であるため、転送を停止する旨の報知表示をディスプレイ６０８で行う。あるいはその場合、転送を強行するか否かを指令する作業者の応答操作を操作部６０９で行うよう促すユーザーインターフェースを採用してもよい。
【００３９】
次に、上記構成における制御端末６００の制御につき説明する。また、図１０は、制御端末６００の制御の主要部、特に工程動作のシミュレーションの実行結果に応じて干渉フラグ６３の値を決定する制御の流れを示している。図１０の制御手順は、例えばＣＰＵ６０１（図６）が実行可能な制御プログラムとしてＲＯＭ６０２や外部記憶装置６０４に格納しておくことができる。
【００４０】
上記構成において、シミュレータ工程動作記憶部２に記憶させる工程動作データないし教示点データを作成、編集する手段は任意である。例えば、ロボット動作を記述するプログラミング言語を用いて工程動作データないし教示点データを作成することができる。その場合、プログラミング言語、工程動作データや教示点データの作成、編集にはディスプレイ６０８、操作部６０９を用いたユーザユーザーインターフェース上でエディタを用いるなど手法を利用できる。あるいは、図８のように、ディスプレイ６０８にロボットアーム８０１、８０２や、ワークＷ、８０６〜８０８やそのパレット、環境中の他の物体８１０などを含む成る３Ｄ仮想環境を表示して工程動作データないし教示点データを作成、編集してもよい。その場合、操作部６０９のマウスなどの手段を用いてロボットアーム８０１、８０２にロボット動作を教示する手法を利用できる。
【００４１】
シミュレータ工程動作記憶部２に記憶させる教示点データは、特に明示的な操作を介して作成ないし編集することができる。例えば、エディタによる数値入力などによって、図３に示すような教示点番号２１とその教示点値２２を入力してもよい。あるいは、図８のようなディスプレイ６０８に３Ｄ仮想環境を表示して、アームの姿勢を動かす、アームの所定部位（ＴＣＰなど）を操作部６０９のマウスなどを用いて位置決めするなどの手法で、教示点を入力してもよい。また、予め、実機のロボット装置、例えば、ロボットアーム８０１、８０２それぞれについて、ティーチングペンダントのような操作端末を用いて個々に作成した教示点リストがあれば、それをネットワークＮＷを介して読み込んでもよい。
【００４２】
作成、編集し、シミュレータ工程動作記憶部２に記憶させた工程動作データないし教示点データは、シミュレーション実行部３に入力し、シミュレーションを実行させることができる。シミュレーション実行部３のシミュレーションの結果は、例えばディスプレイ６０８の３Ｄ仮想表示（図８）を用いて逐次モニタ表示する。
【００４３】
シミュレーション実行部３が動作している間干渉確認部４が、シミュレーション実行部３から、現在実行している工程動作番号と、干渉状態を取得する。そして、干渉確認部４は、取得した工程番号に対応する工程が終了するまで、干渉状態を監視する。例えば、初めに取得した工程番号が１であった場合、この工程（１）が終了するまで、すなわち１以外の工程番号が取得されるまで、干渉状態を監視する。干渉状態は、例えば、３Ｄ仮想環境中でシミュレーション生成された各物体（図８のロボットアーム８０１、８０２、環境中の障害物（８１０）、ワーク８０６〜８０８など）の輪郭が３次元空間中で重複したり接したりする状態を検出し、判定する。あるいは、その工程における、ロボットアームの掃引空間と他の物体やアームが占める（掃引）空間との重複を検出することにより干渉状態を判定してもよい。
【００４４】
その結果、干渉確認部４は、図４のようにシミュレーション環境中の物体の状態に相当する条件（４２）に応じて定義された「干渉状態」（４１）を検出する。干渉確認部４は、上記のようにしてシミュレーション実行部３が生成したシミュレーション結果を介して動作確認を行い、物体同士の干渉がなかった場合には、「ＯＫ」の状態を検出する。干渉はないが、事前に設定したクリアランスよりも接近するような動作を行った場合は「警告」の状態を検出する。クリアランスは、前述のように、ある２つ以上の物体モデルがどこまで接近してよいかを示す設計値である。また、シミュレーション実行部３が生成したシミュレーション結果を介して、動作確認を行い、物体同士の干渉が発生する場合には「干渉」の状態を検出する。また、まだ干渉確認部４による干渉確認が行われていない工程動作や教示点に関しては、は、「干渉状態」（４１）の値は「未確認」の状態とされる。なお、干渉確認を行っているか、どうか、ロボットの動作を行った結果、干渉があったかどうか、干渉がない場合でも、クリアランスを超えるような動作をしたかどうかに関しては、適当な閾値との比較演算によって判断してもよい。
【００４５】
なお、本実施形態では、図４、図５などに示したように、干渉フラグ６３の値には、「ＯＫ」（第１のフラグ値）、「干渉」（第２のフラグ値）、「警告」（第３のフラグ値）、「未確認」などの４つのフラグ値を生成する（フラグ生成工程）。しかしながら、これは一例に過ぎず、より多数のステートを用いて「干渉状態」を識別し、それに応じて干渉フラグ６３の値を制御してもよい。クリアランスを段階的に複数に分割し、「干渉」から「警告」の範囲のレベルを複数段階に分け、「干渉状態」を識別し、それに応じて干渉フラグ６３の値を制御してもよい。
【００４６】
以上では、干渉確認部４がシミュレーション実行部３から取得した工程が、工程（１）を読み込んだ際の流れを示した。多くのロボットシステムでは、一つのロボットシステムで複数の工程を実施する。例えば、工程（１）が終了した後、工程（２）を実行するといった具合である。その場合、現在読み込んでいた工程（上の例では工程（１））から、次の工程すなわち工程（２）に対応する工程番号（２）が取得される。この際、干渉確認部４は、前回まで読み込んでいた工程番号（１）と、最終的に決定した干渉状態を、動作状態設定部５に送信する。
【００４７】
以上のように、干渉状態設定部は、現在実行している工程番号および、その工程の状態を常に監視する。次の工程が開始する際（終了時でもよい）に、読み込んでいた工程の番号と、干渉フラグ６３を設定する。新しい工程が実施される度にこの処理を繰り返す。また、再び、同一工程が実施された場合は、その際のシミュレーション結果により干渉状態を更新する。
【００４８】
特定の工程について、干渉確認部４が干渉状態（４１：図４）を生成すると、動作状態設定部５は、干渉確認部４から取得した工程番号と干渉状態を確認フラグ記憶部６に送信する。この処理は、シミュレーションにより工程ないし教示点に対応する干渉フラグ６３が更新された際に発生する。
【００４９】
また、これ以外にも、シミュレータ教示点記憶部１とシミュレータ工程動作記憶部２で、教示点や工程動作に変更があった場合にも、動作状態設定部５に干渉フラグ６３の更新要求が送信される。シミュレータ教示点記憶部１および、シミュレータ工程動作記憶部２の情報が書き換わり、動作状態設定部５に干渉状態の更新要求が送信される動作は次のようになる。
【００５０】
ここでシミュレータ教示点記憶部１で記憶している教示点データが変更された際の処理につき説明する。制御端末６００上では、教示点値（２２：図３）は、３Ｄ仮想環境（図８）を用いた編集、あるいはエディタなどによる教示点データの直接編集などによって教示点データを変更（編集）することができる。このような手法によって教示点値（２２：図３）が更新された場合、変更した教示点番号（２１：図３）の情報が動作状態設定部５に送信される。
【００５１】
特定の教示点データが変更されると、動作状態設定部５は、当該の教示点データに関連づけられた干渉フラグ６３を更新する。また、その特定の教示点データに先行する教示点データと、特定の教示点データに後続する教示点データと、に関連づけられた干渉フラグ６３も更新する。この更新処理は例えば次のようにして行う。
【００５２】
動作状態設定部５は、まずシミュレータ教示点記憶部１から取得した、変更された教示点すなわち教示点番号（２１）と、確認フラグ記憶部６に保存されている移動先教示点番号（６２：図２）とを比較する。例えば、確認フラグ記憶部６の移動先教示点番号（６２）を先頭から走査し、シミュレータ教示点記憶部１から取得した、変更された教示点番号と同一のものを検索する。検索した教示点番号が同一のものがある場合、現在検索している工程および、一つ前と一つ後の工程に関して、確認フラグ記憶部６で記憶している干渉フラグ６３を、「未確認」レベルの値に設定する。これは、ある教示点の位置が修正された場合、前後の動作工程に影響が出るため、再度確認し直すためである。
【００５３】
例えば、図９は、ロボットアームのＴＣＰなどの所定部位が移動する教示点…Ｎ−２、Ｎ−１、Ｎ、Ｎ＋１、Ｎ＋２…とその編集の様子の一例を示している。ここでは、教示点に応じて移動するＴＣＰなどの所定部位の動きを２次元の図示によって仮想的に示している。図９の例では、教示点Ｎが何らかの編集操作Ｅによって図の上下方向に移動されている。図９のような２次元仮想表示でも明らかなように、教示点Ｎが移動されると、当然ながら教示点Ｎ−１から教示点Ｎへ、また教示点ＮからＮ＋１へ向かう軌道が変化することが判る。そこで、この図９の編集（Ｅ）の例では、教示点Ｎに関連づけられた干渉フラグ６３を「未確認」レベルの値に設定する。また、教示点Ｎに先行および後続する少なくとも１つの教示点Ｎ−１、Ｎ＋１に関連づけられた干渉フラグ６３を「未確認」レベルの値に設定する。
【００５４】
上記のように本実施形態では「未確認」状態の干渉フラグ６３を持つ教示点の例えば実機への転送が禁止されている。従って、以上のように、教示点データの編集が行われた時に、干渉フラグ６３を「未確認」の値（初期値）に更新することにより、未検証の教示点が実機ロボットへ転送され、実行されてしまうのを防止できる。なお、教示点データの編集が行われた場合には、例えば、図２のような工程動作を、再度、工程番号（１）からシミュレーション実行することにより、全ての工程動作および教示点が検証され、その結果に応じて干渉フラグ６３を再設定することができる。
【００５５】
もし、シミュレータ工程動作記憶部２で記憶している、工程動作データ（図２）が更新された場合には、変更した工程番号（６１：図２）の情報が、動作状態設定部５に送られる。これに応じて、動作状態設定部５は、シミュレータ工程動作記憶部２から取得した変更された工程番号（６１）と、少なくとも一つ前と一つ後の工程に関して、確認フラグ記憶部６の干渉フラグ６３を「未確認」レベルに設定する。このようにして、動作状態設定部５は、シミュレータ教示点記憶部１やシミュレータ工程動作記憶部２のデータ変更に応じて、確認フラグ記憶部６に配置された干渉フラグ６３の状態を更新することができる。
【００５６】
シミュレータ上で作成した工程動作データないし教示点データを、制御端末６００から外部装置、例えば実際にそのデータを用いて動作するロボット装置７００にコピーする場合には、教示点転送部７が次のような制御を行う。
【００５７】
教示点転送部７は、図５に示したように、干渉フラグ６３にどのような干渉状態（７１）がセットされているかに応じて転送を許可するかあるいは禁止するかの制御態様をデータテーブルなどの形式で保有する。本実施形態では、干渉フラグ６３の値（干渉状態）が「ＯＫ」（第１のフラグ値）または「警告」（第３のフラグ値）の場合には転送を許可し、「干渉」（第２のフラグ値）または「未確認」（初期値）の場合には、転送を禁止する制御を行う。
【００５８】
教示点転送部７は、シミュレータ教示点記憶部１および確認フラグ記憶部６を参照し、特定の教示点データ（例えば移動先（終点）教示点番号）と、それに関連して生成された干渉フラグ６３の値（干渉状態）を取得する。シミュレータ教示点記憶部１から読み込んだ教示点全てに対して実施し、実機教示点記憶部８へ転送可能な教示点を特定する。
【００５９】
また、教示点転送部７は、次のような転送制御を行ってもよい。即ち、教示点転送部７はシミュレータ教示点記憶部１に記憶されている教示点データを先頭から順に参照し、読み込んだ教示点番号と同一の番号を、移動先教示点番号から走査する。同一の移動先教示点番号が見つかった場合、その工程および、一つ前と一つ後の工程に関して格納されている干渉フラグ６３の示す値（干渉状態）を確認する。そして、同一の移動先教示点番号への移動が実行される工程および、少なくともその一つ前と一つ後の工程、の３つの工程の干渉フラグ６３に対応する干渉状態を取得する。そして、取得した干渉状態に対応する、転送可否が３つ全て「可」である場合、シミュレータ教示点記憶部１から読みこんだ教示点を、実機教示点記憶部８に転送する。このように、特定の教示点データとその前後の教示点データに関して格納された干渉フラグ６３が転送「可」を示す値であることを実機への転送の条件とする。これにより、より確実に干渉の生じにくい教示点データ（あるいはさらに工程動作データ）のみを実機のロボット装置７００に転送することができる。
【００６０】
図１０は、一例として、制御端末６００で、動作プログラム（Ｐｒｇ）によって工程動作データおよび教示点データが記述されている場合に、工程動作をシミュレーション実行部３で実行しつつ、干渉フラグ６３を設定していく処理の流れを示している。動作プログラム（Ｐｒｇ）は、例えばロボット制御言語のような何らかのプログラミング言語で記述されているものとする。工程動作データおよび教示点データは、そのプログラミング言語の仕様に応じて命令文とパラメータ、あるいはそれらの組合せなどによって記述される。
【００６１】
図１０のステップＳ１０では、制御端末６００のＣＰＵ６０１は、１単位、例えば１命令文のような単位に相当する動作プログラム（Ｐｒｇ）を外部装置や外部記憶装置６０４などから読み込む。ここで読み込まれる動作プログラム（Ｐｒｇ）はインタープリタ形式でもよく、予め中間言語やアセンブラ言語に変換された形式でもよい。図１０の全体の１つのループは、一連の工程動作を記述した命令文を順次、１つずつ読み込み、それをシミュレーション実行し、対応する教示点データ毎に干渉フラグ６３の状態を生成するようになっている。
【００６２】
ステップＳ１１では、読み込んだ動作プログラム（Ｐｒｇ）の命令文が、ロボット装置７００の動作を伴う、即ちロボット装置７００のロボットアームの位置姿勢が変化するような動作を指定しているか否かを判定する。動作プログラム（Ｐｒｇ）の命令文には、ロボットアームの位置姿勢が変化しないような命令が含まれていることがある。このような命令文は、例えばツールとしてロボットアームの先端に装着されたツール、例えばハンドの開閉などを記述していたり、あるいは照明装置や撮影装置の制御を記述していたりする場合がある。ロボット装置７００の動作を伴う命令文の場合にはステップＳ１２へ、命令文がロボットアームの位置姿勢が変化するような動作を指定していない場合にはステップＳ１４に移行する。ステップＳ１４では、当該のロボット動作を伴わない制御を実行してからステップＳ１８に移行する。
【００６３】
ステップＳ１２では、当該の命令文を解析して、その工程動作に関連する１つあるいは複数の教示点を特定し、教示点データの番号を読み込む。ステップＳ１３では、当該の工程動作をシミュレーション実行部３で実行し、ステップＳ１５では干渉確認部４による上記の干渉確認を行う。
【００６４】
図１０の例では、ステップＳ１５では干渉確認部４による干渉確認の結果に応じて、ステップＳ１６では既存値よりも干渉確認結果がよくないか否かを判定する。例えば、既に同じ教示点データについて干渉フラグ６３がセットされている場合に、今回の干渉確認で「ＯＫ」−＞「警告」、あるいは「警告」−＞「干渉」などのように干渉確認結果がよくない方向に変化している場合にはステップＳ１７に移行する。あるいは、干渉確認部４による干渉確認の結果得られた、シミュレーションした物体モデル同士の近接距離などを保存しておき、前回よりも近接距離が小さくなっている場合にステップＳ１７に移行するような制御を行ってもよい。一方、干渉確認結果がよくない方向に変化していない場合、あるいは、当該の教示点データの初めての干渉確認であり、干渉フラグ６３に既存値が存在しない（初期値である）場合などにはステップＳ１９に移行する。
【００６５】
ステップＳ１７では、既存値と今回の干渉確認結果の比較結果に応じて、干渉フラグ６３を当該の教示点データに関する適切なフラグ値に更新し、ステップＳ１８に移行する。ステップＳ１９では、今回の干渉確認結果に応じて、当該の教示点データに関する干渉フラグ６３の値を「ＯＫ」（第１のフラグ値）、「干渉」（第２のフラグ値）、「警告」（第３のフラグ値）のうち適当な値を設定する。
【００６６】
ステップＳ１８では、最後の動作プログラムの命令文を処理したか否かを判定し、もし、一連の工程を記述した全ての動作プログラムの命令文を処理した場合には、この制御プログラムを終了する。もし、最後の動作プログラムの命令文まで処理していない場合には、ステップＳ２０に移行し、ステップＳ１０で次の命令文を読み込めるようにプログラムカウンタやポインタを更新してからステップＳ１０に復帰し、上記の動作を繰り返す。
【００６７】
以上の処理により、シミュレータ上で作成した教示点のうち、干渉の生じないことが確認されている教示点のみをロボット装置にコピーすることができる。従って、動作確認を行っていない教示点ないし工程動作データをロボット装置に送信することにより意図しない動作が生じクラッシュなどの障害が発生するのを未然に防止することができる。
【００６８】
＜実施形態２＞
上記実施形態１では、シミュレータ上で作成した教示点のうち、干渉確認が済んでいる教示点のみを実機教示点にコピーすることができる。そして、例えば、動作確認を行っていない工程を実機上で動作させ、意図しない動作によりクラッシュなどの障害が発生するのを防止することができる。特に、上記実施形態１では、干渉フラグ６３が「ＯＫ」（第１のフラグ値）、即ち干渉無し、および物体同士のクリアランスを満たす教示点と、「警告」（第３のフラグ値）即ち干渉は無いがクリアランスが近接している教示点のコピーを許容している。しかしながら、実施形態１の構成で、干渉フラグ６３「警告」（第３のフラグ値）の教示点のコピーを禁止するよう制御すれば、確実に動作確認の取れた余裕のある教示点のみを実機上で動作させることが可能である。
【００６９】
しかし、限られたスペースで、複雑な動作を伴う多能工ロボットシステムにおいては、どうしても、ロボットやワークなどが限りなく接近する工程動作を作らざるを得ない状況が存在する。その場合には、クリアランスは満たしていないが、干渉は発生していないようなきわどい動作についても、やむを得ず実機上で動作させたい場合がある。このような事情から、干渉状態が「警告」であっても実機にコピーして確認したい需要が存在するものと考えられる。
【００７０】
しかし、干渉フラグ６３が、「ＯＫ」（第１のフラグ値）である教示点に比べて、「警告」（第３のフラグ値）である教示点は特に注意して実機上での動作確認を行う必要がある。例えば、実機のロボット装置７００にコピーした教示点データや工程動作データを、いきなり本工程で使用することはなく、何らかのテスト動作を行う。本実施形態２では、このようなテスト動作において、ロボット装置７００が特定の教示点データに関連する干渉フラグ６３の状態を参照して、テスト動作を制御する構成を示す。以下では、図１と同様の表示形式を有する図７を参照して本実施形態の構成と制御の一例につき説明する。なお、以下では、上記実施形態と同一ないし相当する部材には同一の参照符号を付し、その詳細な説明は省略するものとする。
【００７１】
図７の左側に示した制御端末６００の構成は、図１の制御端末６００とほぼ同様である。図１と異なるのは、明示的に動作状態設定部５とともに判定値保存部１３を図示している点、明示的にネットワークＮＷを図示している点、図６に示したディスプレイ６０８、操作部６０９を明示的に図示している点である。また、図７の下部には、６０、２０、４０、７０の同一参照符号をそれぞれ用いて、図２、図３、図４、図５に示したものと同じデータテーブルないし工程動作データを簡略図示している。
【００７２】
即ち、図７の制御端末６００の構成は、図１の制御端末６００とほぼ同様である。大きく異なるのは、実機のロボット装置７００と制御端末６００の関係であり、ネットワークＮＷを介して、ロボット装置７００が確認フラグ記憶部６に教示点データごとに格納された干渉フラグ６３の状態を参照できる点である。
【００７３】
図７ではロボット装置７００側の構成をさらに詳細に示しており、実施形態１と同じ、受信した教示点を記憶する教示点記憶部８の他、工程動作記憶部９と、動作判断部１０と、動作実行部１１と、表示部１２と、が追加されている。
【００７４】
工程動作記憶部９は、実機のロボット装置７００上で、工程動作実行時に、ロボットアームがどのような動作を行うかを定義した工程動作データを記憶する。この工程動作データは、制御端末６００側から転送されるか、あるいはロボット装置７００側で教示点データに基づき生成されてもよい。
【００７５】
動作判断部１０について説明する。動作判断部１０は、実機教示点記憶部８が記憶する教示点と実機工程動作記憶部９が記憶する工程動作と確認フラグ記憶部６に基づいて、ロボットの動作を制限する。
【００７６】
動作実行部１１は、図６の構成ではドライバ回路７０１に相当する駆動回路であり、動作判断部１０から指令された動作命令、例えば各関節の角度指令値などを生成し、ロボットアームに送信する。
【００７７】
表示部１２は、制御端末６００のディスプレイ６０８と同等の機能を有する表示手段で、ロボットアーム（図８の８０１、８０２の実機）で実行中の工程動作の内容、教示点データの数値表示を行う。ただし、表示部１２は図８のような表示を行える程、大型で高精細である必要はなく、実行中の工程動作の内容、教示点データの数値表示を行える程度の規模の部品でよい。表示部１２は、ロボットアーム（図８の８０１、８０２の実機）とともに配置されたロボット制御装置や、ティーチングペンダントなどの表示器によって実装されていてもよい。また、ロボット装置７００側のロボット操作部１４はティーチングペンダントなどの操作端末によって構成できる。
【００７８】
なお、図７のロボット装置７００側の各機能ブロック（８〜１２など）も、図１の制御端末６００の場合と同様、例えば、図６のＣＰＵ６０１のハードウェアおよびソフトウェア（制御プログラム）によって実現することができる。また、以下で説明する制御の手順については、ＣＰＵ６０１（図６）が実行可能な制御プログラムとしてＲＯＭ６０２や外部記憶装置６０４に格納しておくことができる。
【００７９】
次に、本実施形態２におけるロボット制御について詳細に説明する。実施形態１で述べたように、制御端末６００からロボット装置７００に対して、干渉フラグ６３が「ＯＫ」（第１のフラグ値）または「警告」（第３のフラグ値）と関連づけられている教示点データが転送され、教示点記憶部８に格納される。
【００８０】
本実施形態では、この教示点記憶部８の教示点データを実行する際、動作判断部１０が、教示点記憶部８から教示点データ、工程動作記憶部９から工程動作データを取得する。また、ネットワークＮＷを介して、確認フラグ記憶部６から工程動作または教示点データ毎に格納された干渉フラグ６３を取得する。
【００８１】
なお、干渉フラグ６３の内容は、テストしている教示点に対応するものを逐一ネットワークＮＷ越し制御端末６００側のものを参照しても良い。あるいは、制御端末６００から教示点データを受信する時に教示点データに関連する各々の干渉フラグ６３を同時に受信し、教示点記憶部８または教示点記憶部８に関連して配置した補助メモリ（不図示）などに格納しておくようにしてもよい。
【００８２】
動作判断部１０（ＣＰＵ６０１）は、ロボットアーム（図８の８０１、８０２の実機）を動作させるための工程動作データを先頭から読み込み、また、対応する各々の教示点データを特定する。
【００８３】
続いて、動作判断部１０は、読み込んだ工程動作の各々の教示点に関連づけられた干渉フラグ６３の状態を取得する。この時点での干渉フラグ６３の格納先は、前述のように制御端末６００側の確認フラグ記憶部６であってもよいし、教示点記憶部８または教示点記憶部８に関連して配置した補助メモリ（不図示）であってもよい。
【００８４】
動作判断部１０には予め、干渉フラグ６３の状態に応じて、実機のロボットをどのように制御するかが設定されているものとする。例えば、干渉フラグ６３が「ＯＫ」（第１のフラグ値）の場合は、動作実行部１１にロボット動作を通常実行させる。干渉フラグ６３が「警告」（第２のフラグ値）の場合には、例えば作業者が現場の状況をつぶさに確認できるよう、実機のロボットアーム（図８の８０１、８０２の実機）の実機の動作速度を変更（例えば低速化）することが考えられる。
【００８５】
その場合、例えば、干渉フラグ６３の値が「ＯＫ」（第１のフラグ値）である場合は、動作実行部１１の動作速度を上限速度に対して１００％で動作させる。また、干渉フラグ６３が「警告」（第３のフラグ値）である場合は、動作速度を上限速度に対して１０％（１／１０の低速）で動作させる。干渉フラグ６３として「干渉」や「未確認」のフラグ値が読み取られた場合には、基本的にはその工程動作は動作実行部１１に実行させない。
【００８６】
このような速度制御は、動作判断部１０、教示点データおよび動作速度のパラメータを動作実行部１１に送信することにより実現できる。動作実行部１１は、送信された教示点データおよび動作速度のパラメータを用いて、例えば関節角度指令値の制御データを刻々と生成し、ロボットアーム（図８の８０１、８０２の実機）に送信する。
【００８７】
本実施形態２では、以上のような制御を行うことにより、干渉確認ができている工程は、ロボットアームに通常動作を行わせる。また、ある程度、干渉フラグ６３によって工程動作がクリティカルであることが判明している教示点の周辺では低速動作でロボットアームを駆動する。また、干渉フラグ６３の確認ができていないものについてはロボットアームは動作させない。このようなロボット制御を行うことにより、干渉などの問題を生じることなく、また、つぶさに確認が必要な「警告」（第３のフラグ値）レベルの干渉フラグ６３の周囲では、低速動作によって、作業者は確実に動作確認を行える。そして、必要であればロボット操作部１４などを用いて教示点データを修正する、といった措置を講じることができる。
【００８８】
また、本実施形態２では、上記のロボット制御を通して、実機のロボットアームでこれから実行させようとしている、あるいは現在行っている工程動作の内容は、表示部１２によって表示させることができる。また、この表示部１２は、工程動作の進行に応じて、関連の干渉フラグ６３の内容を可読文字などによって、刻々と表示するのに用いることができる。このような情報表示を表示部１２で行うことにより、特に転送された工程動作を初めて（テスト）実行するような機会において、作業者、オペレータ、管理者などのユーザに、充分な制御情報を報知し、その判断や操作を支援することができる。
【００８９】
また、上記実施形態１および２のようにネットワークを介して制御端末６００から転送された工程動作データないし教示点データに基づきロボット装置７００に工程動作を行わせることにより、各種工業製品、ないしその部品を製造することができる。
【００９０】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９１】
１…シミュレータ教示点記憶部、２…シミュレータ工程動作記憶部、３…シミュレーション実行部、４…干渉確認部、５…動作状態設定部、６…確認フラグ記憶部、７…教示点転送部、８…実機教示点記憶部、９…実機工程動作記憶部、１０…動作判断部、１１…動作実行部、１２…表示部、２１…教示点番号、２２…教示点値、４１…干渉状態、４２…条件、６１…工程、６２…移動先教示点番号、６３…干渉フラグ、７１…干渉状態、７２…転送可否。
【図１】
2019081204.tif 000003
【図２】
2019081204.tif 000004
【図３】
2019081204.tif 000005
【図４】
2019081204.tif 000006
【図５】
2019081204.tif 000007
【図６】
2019081204.tif 000008
【図７】
2019081204.tif 000009
【図８】
2019081204.tif 000010
【図９】
2019081204.tif 000011
【図１０】
2019081204.tif 000012