(57)【特許請求の範囲】
【請求項１】
ユーザインターフェイスを構成するコンピュータと、ロボットの制御アルゴリズムを装備したロボット制御装置と、前記コンピュータを前記ロボット制御装置に接続するための接続手段とを備え、
動作プログラムのシミュレーション並びに該シミュレーションの結果に基づく前記動作プログラムの修正を、前記コンピュータ上に前記動作プログラムを保持して行う、ロボットのオフラインシミュレーションシステムにおいて、
前記コンピュータは、該コンピュータ上に用意されてシミュレーション対象とされる動作プログラムについて動作プログラムを解釈し、前記接続手段を介して前記ロボット制御装置に動作指令を送付する手段を備え、
前記ロボット制御装置は、前記動作指令を受信し、前記ロボットの動作を計算する受信・計算手段と、該受信・計算手段による計算結果を前記コンピュータに前記接続手段を介して送る手段とを備え、
更に、前記コンピュータは、前記ロボット制御装置から受取った前記計算結果に基づいて動作シミュレーションの結果を表示するシミュレーション結果表示手段を備えている、ロボットのオフラインシミュレーションシステム。
【請求項２】
前記ロボット制御装置と前記コンピュータとの間の前記接続手段が、電話回線を含んでいる、請求項１に記載されたロボットのオフラインシミュレーションシステム。
【請求項３】
少なくとも前記シミュレーション実行指令の入力が可能な操作手段と、前記シミュレーション結果表示手段とは、前記ユーザインターフェイスを構成するコンピュータに付属している、請求項１または請求項２に記載された、ロボットのオフラインシミュレーションシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、産業用ロボット（以下、単に「ロボット」と言う。）のためのオフラインミュレーションシステムに関する。
【０００２】
【従来の技術】
ロボットにオフラインで動作を教示する一つの方式として、ロボットの実機を制御する制御装置（以下、「ロボット制御装置」と言う。）とは別にコンピュータ（オフラインプログラミング装置）を用意し、このコンピュータ上でロボットを仮想的に構築し、この仮想構築されたロボットをキー操作で動作させながら、動作プログラムを作成していくという方式がある。そして、この方式を拡張したものとして、作成された動作プログラムの再生運転（動作シミュレーション）をコンピュータ上で行なわせるようにしたオフラインシミュレーションシステムが知られている。
【０００３】
【発明が解決しようとする課題】
上記システムは、動作プログラムの作成に加えて、その動作プログラムによる動作の確認、更に、それに基づく動作プログラムの修正等をオフラインで行える点で非常に有用なものであるが、実際にこれを採用するにあたっては大きな問題に直面する。
【０００４】
即ち、上記従来のシステムを用いて動作シミュレーションを行なう場合には、実際にロボット（実機）を制御する際に用いられるのと同等の制御アルゴリズムをユーザインターフェイスとして使用されるコンピュータ上に構築する必要がある。これらアルゴリズム及び関連データには、例えば、ロボット制御装置と同等の態様で加減速制御の内容を定め、補間処理、逆変換処理等を実行するためのものが含まれる。要するに、ユーザインターフェイスとして使用されるコンピュータ上に、実際にロボットの制御に用いられるロボット制御装置とほぼ同等の制御アルゴリズムを構築しなければならない。
【０００５】
ユーザインターフェイス側で用意する制御アルゴリズムを簡単なものですませればこの負担は軽減されるが、当然、シミュレーションの精度も低下する。従って、従来方式で精度の良い動作シミュレーションを行うためには、ユーザインターフェイス上に制御アルゴリズムを構築するために多大な工数を必要とし、短期間で安価に正確なオフラインシステムを提供することが困難だった。
【０００６】
そこで、本発明の目的は、大きな作業負担を要する制御アルゴリズム並びに関連データをユーザインターフェイス側で用意する負担を無くし、動作プログラムに基づくロボットの動作シミュレーションを簡便に実行することが出来るオフラインシミュレーションシステムを提供することにある。
【０００７】
また、別の観点から言えば、本発明は、ユーザインターフェイス側で制御アルゴリズムを用意する代わりに、通信回線を介してロボット制御装置に元来装備されている制御アルゴリズムを借用するという基本的な特徴を活かして、遠隔地においても電話回線を利用して端末からオフラインシステムを利用可能とし、オフラインシステムを個別に購入する必要を無くすことをも企図している。
【０００８】
【課題を解決するための手段】
本発明は、コンピュータにロボットの実機の制御に用いることが出来るロボット制御装置を接続し、コンピュータ上の仮想的なロボットの動作をその接続されたロボット制御装置上で計算し、その計算結果をコンピュータに送り、その送られた結果に基づいて動作内容を表示装置等に出力することで、上記目的を解決したものである。
【０００９】
即ち、本発明は、上記従来手法でコンピュータへの入力が必要とされるアルゴリズムや関連データの内、ロボットの動作を計算する部分（軌道計画、移動指令作成等）は、ロボット制御装置に当然用意されているものあることに着目し、その部分についてロボット制御装置の機能を一部借用することでコンピュータ上にロボット制御装置と同等の制御アルゴリズムを構築するに要した膨大な負担を不要にしたものである。
【００１０】
本発明は、ユーザインターフェイスを構成するコンピュータと、ロボットの制御アルゴリズムを装備したロボット制御装置と、前記コンピュータを前記ロボット制御装置に接続するための接続手段とを備え、動作プログラムのシミュレーション並びに該シミュレーションの結果に基づく前記動作プログラムの修正を、前記コンピュータ上に前記動作プログラムを保持して行う、ロボットのオフラインシミュレーションシステムに係るもので、前記コンピュータは、該コンピュータ上に用意されてシミュレーション対象とされる動作プログラムについて動作プログラムを解釈し、前記接続手段を介して前記ロボット制御装置に動作指令を送付する手段とを備え、前記ロボット制御装置は、前記動作指令を受信し、前記ロボットの動作を計算する受信・計算手段と、該受信・計算手段による計算結果を前記コンピュータに前記接続手段を介して送る手段とを備え、更に、前記コンピュータは、前記ロボット制御装置から受取った前記計算結果に基づいて動作シミュレーションの結果を表示するシミュレーション結果表示手段を備えている。
【００１１】
ロボット制御装置とコンピュータとの間の前記接続手段は、電話回線を含むものとすることが出来る。オフラインシステムの諸構成要素の内、少なくとも前記シミュレーション実行指令の入力が可能な操作手段と、前記シミュレーション結果表示手段とは、前記ユーザインターフェイスを構成するコンピュータに付属していることが望ましい。
【００１２】
【発明の実施の形態】
図１は、本発明に従ったオフラインシミュレーションシステムの全体構成を要部ブロックで表わしたものである。同図に示したように、システム全体はオフラインプログラミング装置として用いられるワークステーション１０、ロボット制御装置２０、両者を結ぶ通信回線３０、ワークステーション１０に付属するディスプレイ４０及びキーボード５０で構成されている。
【００１３】
ワークステーション１０はユーザインターフェイスを構成するもので、ハードウェア構成は通常のものと特に変わるところは無い。符号１１で指示されたＣＰＵに対し、バス１６を介してメモリ１２、ロボット制御装置２０とのインターフェイス（通信インターフェイス）１３、ディスプレイ３０とのインターフェイス１４、キーボード５０用の入出力装置１５等が接続されている。
【００１４】
メモリ１２は、ＲＯＭ、ＲＡＭ、不揮発性メモリ等で構成される。ソフトウェアを含めた構成の観点から言えば、メモリ１２と関連回路で構成されるブロックは、「ロボット、ワークの形状データ」、「３Ｄグラフィック表示」、「インタプリタ」、「教示データ」等の機能ブロックからなる。
【００１５】
なお、図２を参照して後述するシミュレーション実行時の処理（ワークステーション１０とロボット制御装置２０の間の論理的インターフェイス）に必要なプログラム及び関連パラメータもメモリ１２に格納されるが、以下の説明ではそれらを含めて「ロボット制御装置とのインターフェイス」と呼ぶことにする。また、ＣＰＵ１１が行なう各種処理に必要なデータの一時記憶には、ＲＡＭで構成されるメモリ領域が利用される。
【００１６】
ワークステーション１０に与えられる３Ｄグラフィック表示機能は、ロボットとワーク、周辺機器、ツール等を、ディスプレイ４０の画面上に表示するもので、画面上の形状表示には上記の「ロボット、ワークの形状データ」が利用される。
【００１７】
ロボットのように関節等の機構のある装置は、各リンク毎の形状がデータとして記録されており、また、リンク間の位置関係等については変更（書換え）可能な態様で記録されている。例えば、回転関節では、回転軸の位置とその可動範囲がシミュレーション対象のロボットに即して記録されている。
【００１８】
「教示データ」は、ロボットの動作を記述するデータで構成される。教示点の位置のデータに限らず、教示点の順序、点間の移動速度、補間形式等もこれに含まれている。また、ロボットの動作命令だけでなく、Ｉ／Ｏ命令やレジスタの命令、あるいは、ロボットプログラム自身を制御する、if〜then、call等の制御命令をも含み得る。
【００１９】
「インタプリタ」は、教示データを解釈し、教示データを実際のロボットが実行したときの、時々刻々のロボットの挙動（動作に限らず、Ｉ／Ｏ等を含め）を求めるためのソフトウェアである。動作命令については、教示データの中の動作命令を解釈し、目的の位置、速度、補間タイプ等を（「ロボット制御装置とのインターフェイス」を経由して）ロボット制御装置に渡し、時々刻々のロボットの各関節（「関節」という語は、回転関節に限らず、直動関節等の可動部分全体を含む）の変位量、すなわち補間データを問い合わせる。
【００２０】
「ロボット制御装置とのインターフェイス」は、インタプリンタが解釈した動作命令に含まれる、目的の位置、速度、補間タイプ等を所定のプロトコルにて、実際のロボット制御装置に送る。更に、送った動作命令をロボット制御装置が実行した結果として、時々刻々（一定の時間間隔でも、一定でなくてもよい）の補間データを受け取る。受けとった時々刻々の補間データは、インタプリンタに返される。
【００２１】
ディスプレイとのインターフェイス１４及びキーボード用Ｉ／Ｏ１５は、それぞれ、３Ｄグラフィック表示機能による表示画面を提供するディスプレイ４０（ＣＲＴ、ＬＣＤ等）並びにワークステーション１０の操作部を構成するキーボード５０のための入出力装置である。ディスプレイ４０については、後に図３を参照して詳しく述べる。
【００２２】
一方、ロボット制御装置２０は、ロボットの実機を制御するために通常使用されているものと基本的に同じものである。符号２１はマイクロプロセッサで構成されるＣＰＵで、バス２４を介してメモリ２２、ワークステーション制御装置２０とのインターフェイス（通信インターフェイス）２３の他、ここでは表記を省略したが、ディジタルサーボ回路に接続される軸制御部、教示操作盤とのインターフェイス等が接続されている。なお、本発明では不要であるが、ロボットの実機を制御する場合にはディジタルサーボ回路の出力側にロボットの実機が接続される。
【００２３】
メモリ２２も、ＲＯＭ、ＲＡＭ、不揮発性メモリ等で構成されるもので、通常のロボット制御装置と同じく、シミュレーション対象としている機種のロボットの実機を制御するために必要な制御アルゴリズムが、その他のプログラム及び関連データとともに格納されている。なお、実際にロボットの実機を動作させる場合には、通常の再生運転の場合と同じく、動作プログラムがメモリ２２内に用意される（ワークステーション１０で作成したものを転送することも有り得る）。また、ＣＰＵ２１が行なう各種処理に必要なデータの一時記憶には、ＲＡＭで構成されるメモリ領域が利用されることも通常のロボット制御装置と同様である。
【００２４】
ワークステーションとのインターフェイス２３は、ワークステーション（場合によっては他のユーザインターフェイス機器、例えばパーソナルコンピュータ、ＣＡＤ等）のロボット制御装置とのインターフェイス１４と接続し、そこから動作命令毎の目的位置、速度、補間タイプ等のデータを受け取る。受け取ったデータは、ロボット制御装置２０内の「制御アルゴリズム（動作計画プログラムの関連部分）」に渡される。
【００２５】
「制御アルゴリズム」、特に動作計画プログラムの関連部分は、時々刻々の補間データを計算して求め、これをワークステーションとのインターフェイス２３に返す。そして、ワークステーションとのインターフェイス２３は、この補間データをワークステーション１０のロボット制御装置とのインターフェイス１３に送る。なお、ワークステーションとのインターフェイス２３は、必要に応じて、動作計画プログラム関連部分から送られる時々刻々の補間データを一旦内部にバッファして送ることもある（メモリ２２内のＲＡＭ領域を利用）。また、間引き（データ圧縮）した上で送ることもあり得る。
【００２６】
通信回線３０は、ワークステーション１０側のロボット制御装置とのインターフェイス１３とロボット制御装置２０側のワークステーションとのインターフェイス２３の間の物理的な接続手段を提供するもので、例えばＲＳ２３２Ｃ等のシリアル回線であってもよいし、Ｅｔｈｅｒｎｅｔ（登録商標）等のネットワーク回線であってもよい。
【００２７】
各回線として、商用の電話回線（通信衛星を利用した通信回線を含む）を利用することが出来るから、ワークステーション１０（一般にはユーザインターフェイス）とアルゴリズムを提供するロボット制御装置２０との間は物理的に遠隔していても構わない。
【００２８】
更に、ワークステーション１０の各要素の内、ユーザインターフェイス部とグラフィック部をインタプリタ部と教示データから分離し、これらの間を電話回線等で接続することによって、ユーザインターフェイス部とグラフィック部のみを遠隔地に置く構成も考えられる。
【００２９】
次に、図２は本システムを用いて動作シミュレーションを実行する際に作動する、ワークステーション１０とロボット制御装置２０の間（より特定的に言えば、両インターフェイス１３、１４間）の論理的なインターフェイスを、フローチャートで示したものである。
本実施形態のシステムのシミュレーション動作は、オペレータがキーボード５０を操作して、指定した動作プログラムについてシミュレーションの開始指令を入力することで開始される。
【００３０】
先ず、ワークステーション１０側で動作シミュレーションの対象とした動作プログラムについて教示データの読み出しがすべて完了しているか否かをチェックする（ステップＳ１）。全教示データの読み出し完了時を除き、ステップＳ２へ進み、１ブロック分の動作命令を読み出す。次いで、これを解釈（デコード）し（ステップＳ３）、動作命令の形でロボット制御装置２０側へ送信する（破線矢印Ｃ１）。
【００３１】
ここでワークステーション１０からロボット制御装置２に０送信される動作命令には、ロボットの移動目標位置（教示点位置）、指令速度、補間タイプ（直線／円弧／各軸の別）、位置決め割合等を規定する情報が含まれている。続くステップＳ５では次なる動作命令の要求をロボット制御装置２０から受信していないことを確認し、更にステップＳ６へ進んで補間データをロボット制御装置２０側から受信する（破線矢印Ｃ３）。
【００３２】
後述するように、この補間データはロボット制御装置１０側で制御アルゴリズムに含まれる動作計画プログラムに従った処理によって求められたものである。また、ステップＳ５で次なる動作命令の要求がロボット制御装置２０から送信されて来るのは、その教示区間の経路計算処理（後述ステップＴ２〜ステップＴ４参照）が完了した直後である。
【００３３】
ステップＳ６で受信した補間データは、インタプリタに渡され、メモリ１２の関連部分に一旦格納される（ステップＳ７）。この処理が完了したらステップＳ５に戻り、再度動作命令の要求の受信の有無を確認する。以下、ステップＳ５でイエス（動作命令要求の受信有り）の出力を得るまで、ステップＳ５〜ステップＳ７の処理サイクルが繰り返される。
【００３４】
やがて、ロボット制御装置２０側でその教示区間の経路計算処理（後述ステップＴ２〜ステップＴ４参照）が完了し、その直後にステップＳ５でイエス（動作命令要求の受信有り）の出力を得る。しからばステップＳ５からステップＳ１へ戻り、教示データの読み出しがすべて完了しているか否かを再チェックする。以下、このステップＳ１でイエスの出力が得られるまで、上述のステップＳ２以下の処理を繰り返す。
【００３５】
一方、ロボット制御装置２０側のステップＴ１では、上述のステップＳ４（破線矢印Ｃ１）でワークステーション１０から送信された動作命令のデータを受信する。上記した通り、この動作命令のデータには、ロボットの移動目標位置（教示点位置）、指令速度、補間タイプ（直線／円弧／各軸の別）、位置決め割合等を規定する情報が含まれている。
【００３６】
ステップＴ２では、その動作命令の対象としている区間分の動作命令が完了しているか否かをチェックし、完了していない場合はステップＴ３へ進み、完了していている場合はステップＴ５へ進む。ステップＴ３で、ＣＰＵ２１は通常の実機の再生運転時と同様の態様で制御アルゴリズム（特に、動作計画プログラム）を発動し、ステップＴ１で受信したデータに即して加減速制御の加減速時定数等を定め、１ＩＴＰ分（１計算周期分）の補間処理を行なう。
【００３７】
続くステップＴ４で、ステップＴ３で得られた補間データをワークステーション１０に送信し（破線矢印Ｃ３参照）、ステップＴ２へ戻り、次の１ＩＴＰ分（１計算周期分）の補間処理を行なう。以下、同様にステップＴ２〜ステップＴ４の処理サイクルと補間データの送信を繰り返し、やがてその動作命令の対象としている区間分の動作命令が完了すると、ステップＴ２の判断出力がイエスとなり、ステップＴ５へ進み、次の動作命令の要求をワークステーション１０に送信し（破線矢印Ｃ２参照）、ステップＴ１へ戻り、次の動作命令の受信を待つ。
【００３８】
なお、フローチャートへの表記は省略したが、ワークステーション１０側のステップＳ１でイエスの判断出力が出されて処理終了となった場合には、ロボット制御装置２０に処理終了命令が送信されて、ロボット制御装置２０側の処理も終了する。
【００３９】
１つの動作プログラムについて以上の論理的インターフェイスに基づく処理が完了した時点で、ワークステーション１０のメモリ１２には動作シミュレーションの結果を表わすデータが蓄積されている。そこで、これを３Ｄグラフィック機能を利用してディスプレイ４０上に表示させれば、ユーザはその動作プログラムについての動作シミュレーションの結果を確認・評価することが出来る。
【００４０】
なお、一旦蓄積したデータに従ってシミュレーションの結果を表示する代わりに、ステップＳ７でインタプリタが補間データを受け取る毎に経路を描画、あるいは、ロボットの姿勢を変えて描画することが出来る。
【００４１】
図３には、ディスプレイ４０の外観を動作シミュレーション結果を表示するグラフィック画像とともに例示したものである。ディスプレイ４０は、画面４１と操作ボタン４２〜４５を備えている。画面４１は、例えば液晶表示パネルからなるもので、カラー表示が行えることが好ましい。
【００４２】
画面４１には、ロボット、ワーク、作業室内のレイアウトなどの作業環境が、ロボットの動作経路を表示するための背景として、グラフィック表示される。ここでは、背景画像として、ロボット像Ｒとワーク像Ｗがワイヤフレーム描示方式で表示されている。ロボット像Ｒには、ベース、ロボットアームのグラフィック画像Ｒ1 ，Ｒ2 及びロボットの基準位置を代表するツール先端点のグラフィック画像Ｐ0 が含まれる。基準位置としては、初期位置、ベース座標系原点位置などが適宜設定される。また、本例のワーク像Ｗには、ワークの突起部の存在を表わすグラフィック画像Ｗ’が含まれている。
【００４３】
以下、上述した動作シミュレーションで得られた補間点データを用いて、ツール先端点（基準位置Ｐ0 ）の動作経路を表示する方法について簡単に説明する。なお、このような経路のグラフィック表示に利用される技術自体は種々の形態のものが周知となっている。
【００４４】
ツール先端点の表示は、赤色点像、点滅点像、進行方向を表わす小矢印付の点像など、識別容易なもので行なうことが好ましい。ここでは、ツール先端点の動作経路、移動速度、加減速等がディスプレイの観察者に実感されるように、ツール先端点の位置を時系列的に点列表示（Ｐ1 ，Ｐ2 ，Ｐ3 ・・）する。これら点像Ｐ1 ，Ｐ2 ・・は、所定数の補間点のデータ毎に順次表示される（後述の表示処理参照）。点列の時系列的な表示は、繰り返し行なうことが出来る。
また、教示点の位置は、他の点と識別可能に表示する。図示した例では、×印で表示されている。Ｐ0 はロボットの初期位置（実機の待機位置）を示すものとして表示する。これにより、図３に示されているように、Ｐ0 は動作経路の始点位置として表示されることになる。
【００４５】
操作ボタン４２〜４４は、グラフィック表示の視線方向、縮尺及び視点の位置を調整するボタンである。視線方向と視点の位置は、ボタン４２，４４の押下部位（４個所）に応じて上下左右方向への調整が可能となっている。また、縮尺はボタン４３の押下部位（２個所）に応じて表示倍率を増大あるいは低下する方向への調整が可能となっている。
【００４６】
操作ボタン４５は、動作経路の表示の開始／終了のための指令をワークステーション１０へ送るためのボタンである。オペレータは、動作経路の表示開始を希望する時に操作ボタン４５を押下すると、点列Ｐ0 ，Ｐ1 ，Ｐ2 ・・・の繰り返し表示が開始される。再度操作ボタン４５を押下すると、表示は中止される。
【００４７】
図４は、本実施形態のシステムの３Ｄグラフィック表示機能を用いた動作シミュレーション結果の表示のための処理の概要を記したフローチャートである。オペレータが、キーボードを操作してワークステーション１０を動作経路確認モードにする。すると、ＣＰＵ１１が３Ｄグラフィック表示のプログラムを起動させ、画面４１に背景画像がグラフィック表示される。この段階で表示されるロボット位置は基準位置（点像Ｐ0 ）のみである。
【００４８】
次いで、背景表示処理に続いて、図４のフローチャートに示したような動作経路表示処理が開始される。なお、フローチャート中、記号Ｆはロボットの動作経路表示中（Ｆ＝１）／非表示中（Ｆ＝０）に対応したフラグで、フローチャート中に記したように、ディスプレイ４０の操作ボタン４５を１回押下する毎に反転する。
【００４９】
背景画像がグラフィック表示されると、ＣＰＵ１１はディスプレイ４０からの指令入力を待つ態勢に入る（ステップＤ１）。操作ボタン４２〜４４のいずれかが押下された場合であれば、ステップＤ２からステップＤ３へ進み、押下された操作ボタンに応じた表示条件調整処理（グラフィック表示の視線方向、縮尺、視点位置の調整など）を実行する。
【００５０】
動作経路表示の開始を希望する場合、オペレータは操作ボタン４５を押下する。すると、ステップＤ２からステップＤ４へ進み、Ｆ＝０（動作経路非表示中）を確認した上で、フラグをＦ＝１に反転させる（ステップＤ５）。
【００５１】
そして、ロボット制御装置１０から転送されて蓄積された補間データの内、シミュレーション対象としている動作プログラムの１ブロック分を読み込む（ステップＤ６）。
【００５２】
読み込まれた補間点データは、予め設定された表示のためのサンプリング間隔（補間点の個数で指定）でサンプリングする（ステップＤ７）。なお、サンプリング間隔の設定は可変とし、全補間点の表示も可能（全数サンプリング）とすることが好ましい。
【００５３】
次いで、ステップＤ７でサンプリングされた補間点について、画面４１上の表示位置を計算する。表示位置は、補間点の示す空間位置と表示条件（視線方向、縮尺、視点の位置等）から求められる。
【００５４】
続くステップＤ９で未表示処理の動作経路（補間点データ）が残存しているかチェックする。残存していればステップＤ６へ戻る。そして、ステップＤ６〜ステップＤ９は、ステップ９でイエスの判断出力が得られるまで繰り返される。
【００５５】
ステップＤ９でイエスと判断されたならば、ステップＤ１０へ進み、サンプリングされた補間点データについて、全動作経路に沿って点列Ｐ1 ，Ｐ2 ・・・を表示する（初期位置を表わすＰ0 は表示済み）。点列Ｐ1 ，Ｐ2 ・・・の表示は、時系列的に行なわれることが好ましい。その場合には、Ｐ1 ，Ｐ2 ・・・の表示位置を順次計算し、それに応じた位置に点像を追加表示する処理を所定周期で繰り返し実行すれば良い。
【００５６】
また、教示点については、補間点とは別の表示（例えば、表示の色、サイズ、形状を変える。）を行なうことが好ましい。図４に示した例では、×印で表示されている。
【００５７】
１回分の点列の表示を行なう処理が完了したらステップＤ１１へ進み、新たな指令入力の有無をチェックする。操作ボタン４２〜４５のいずれも押下されていなければ、指令入力無しと判断され、ステップＤ１０へ戻り、再度同じ点列表示を行なう処理が実行される。即ち、オペレータが操作ボタン４２〜４５を新たに押下しない限り、同じ点列表示が短周期で繰り返される。これによって、オペレータは動作経路の全体の確認を余裕をもって行なうことが出来る。
【００５８】
操作ボタン４２〜４５のいずれかが押下さると、指令入力有りと判断され、ステップＤ２へ戻り、表示条件調整指令（操作ボタン４２〜４４の押下）であるかを先ず判断する。もし、そうであれば、ステップＤ３へ進み、グラフィック表示の視線方向、縮尺、視点位置の調整などを実行した上で、ステップＤ１へ戻る。もし、オペレータが操作ボタン４２〜４４の押下を繰り返すと、ステップＤ１→ステップＤ２→ステップＤ３→ステップＤ１のサイクルが繰り返される。なおこの間、表示条件が変更される毎に、点列Ｐ1 ，Ｐ2 ・・・の表示位置の修正計算が行なわれ、表示位置が修正されるようにする。
【００５９】
動作経路の確認を終え、オペレータが操作ボタン４５を押下すると、ステップＤ２でノーが出力され、フラグＦの値がチェックされる。ここではＦ＝１であるから、ステップＤ１２へ進み、表示を終了する処理（フラグＦの反転を含む。）を実行し、処理を終了する。
【００６０】
最後に、図３を更に参照して、ディスプレイの画面４１上で教示の誤りが発見される一つのケースを示し、併せて教示内容修正後に画面４１上に表示される画像について説明しておく。なお、表示される点列に対するＰi ，Ｑi の表記は一部のみについて行なった。また、Ｐ0 ，Ｐ1 ・・・，Ｑ0 ，Ｑ1 ・・・等のキャラクタ自身（点ではなく文字）の画面表示は通常は行われない。
【００６１】
図４において、Ｐ0 ，Ｐ1 ，Ｐ2 ・・・・Ｐ6 ・・・Ｐ11，Ｑ12・・・Ｑ15・・・Ｑ20・・・Ｐ23・・・Ｐ30は、ある動作プログラムについてシミュレーションを行い、その結果に基づいて画面４１上に表示された点列を表わしているものとする。このような点列の表示から、オペレータは次の事を読み取ることが可能である。
【００６２】
１．Ｐ0 〜Ｐ6 ；点列の軌跡の形から、初期位置Ｐ0 からアプローチ点Ｐ6 まで、各軸動作で移動することが理解される。また、隣合う点の間隔から、Ｐ0 スタート後の加速、とＰ6 到着前の減速が読み取れる。この区間については、特に問題は無いと判断される。
【００６３】
２．Ｐ6 〜Ｐ11；点列の軌跡の形から、アプローチ点に相当する教示点Ｐ6 から作業開始点に相当する教示点Ｐ11まで、直線動作で移動することが理解される。また、隣合う点の間隔が非常に小さいことから、指令速度が低いことが判る。この区間についても、特に問題は無いと判断される。
【００６４】
３．Ｐ11〜Ｑ20；点列の軌跡の形から、作業開始点に相当する教示点Ｐ11からコーナ点に相当する教示点Ｑ20まで、直線動作で移動することが理解される。また、隣合う点の間隔から、Ｐ11スタート後の加速、とＱ20到着前の減速が読み取れる。この区間については、明らかに問題がある。即ち、教示点Ｑ20は、ワークの突起部の存在を表わす画像Ｗ’と干渉する位置にあり、この背景画像が正しいとすると教示内容に誤りがあることになる。
【００６５】
４．Ｑ20〜Ｐ23；Ｐ11〜Ｑ20と同様に、教示点Ｑ20がワークの突起部の存在を表わす画像Ｗ’と干渉する位置にあり、明らかに問題がある。但し、作業終了点に相当する教示点Ｐ23の位置については、干渉を生じる位置に無く、作業内容に反しない限り、特に問題は無いと判断される。
【００６６】
５．Ｐ23〜Ｐ30；点列の軌跡の形から、作業終了点に相当する教示点Ｐ23からエスケープ点に相当する教示点Ｐ30まで、各軸動作で移動することが理解される。また、隣合う点の間隔から、Ｐ23スタート後の加速とＰ30到着前の減速が読み取れる。この区間については、特に問題は無いと判断される。
【００６７】
このような観察結果から、オペレータは教示点Ｑ20の位置の誤りについて重点的に再検討することになるであろう。そして、オペレータは検討結果に基づいて、ワークステーション１０上で動作プログラムを修正する。ここでは、教示点Ｑ20の位置データに誤りがあり、これを修正した動作プログラムを再登録したものとする。
【００６８】
再度前述の動作シミュレーションを実行し、その結果得られた補間点データに基づき図４のフローチャートで説明した処理を再実行する。これにより、修正後の動作プログラムに即した動作経路がディスプレイ画面４１上に表示される。
【００６９】
図３において、Ｐ0 ，Ｐ1 ，Ｐ2 ・・・・Ｐ6 ・・・Ｐ11，Ｐ12・・・Ｐ15・・・Ｐ18・・Ｐ23・・・Ｐ30は、このようにして新たに表示された点列の一例を表わしている。
【００７０】
この新たな点列の表示から、オペレータは、旧表示の点Ｑ20に代えて、コーナ点に相当する教示点として、Ｐ18が新たに表示されていることを確認出来る。また、修正前に表示されていた点列Ｐ11〜Ｑ20並びにＱ20〜Ｐ23に代えて、点列Ｐ11〜Ｐ20並びにＰ20〜Ｐ23が表示されていることから、これらの動作経路は、ワークの突起部の存在を表わす画像Ｗ’と干渉しない位置にあることが判る。Ｐ0 〜Ｐ6 ，Ｐ6 〜Ｐ11及びＰ23〜Ｐ30については、修正前のプログラムについて表示された点列と同一であることも確認される。
【００７１】
なお、ツール先端点の最新の表示位置の移動に合わせて、ロボット像Ｒを動画形式で表示する表示形態を採用しても良い。そのためには、３Ｄグラフィック機能の中に、３次元空間上の補間点から各軸値を逆変換によって計算し、それを用いてロボット姿勢を動画的に表示するソフトウェアを用意すれば良い。
【００７２】
以上説明したように、本実施形態のシステムにおいては、シミュレーション動作の開始をはじめとするオフラインシステムのユーザからの操作部を提供する部分、及び、シミュレーション結果の表示部を提供する部分が、ユーザインターフェイスとなるコンピュータに付属しているから、ロボット動作計算を担当する部分（ロボット制御装置）他の残り部分が遠隔地にあっても、ユーザにとって不便を感じさせることがない。
【００７３】
【発明の効果】
本発明のオフラインシミュレーションシステムによれば、ユーザインターフェイスとなるコンピュータをロボット制御装置と接続し、ロボット制御装置側が元来持っている制御アルゴリズムを動作シミュレーション時に必要となる経路等の計算処理に借用し、ユーザインターフェイス用のコンピュータ側でその計算結果を受取り、これをディスプレイによる経路表示等を通してユーザに提供するようにしたので、従来のオフラインシミュレーションシステムとは異なり、動作シミュレーションのための制御アルゴリズムをユーザインターフェイス側で用意する必要がなくなる。
【００７４】
また、ユーザインターフェイスとなるコンピュータとロボット制御装置との接続手段に電話回線を利用すれば、シミュレーションのためのロボット制御装置を用意する必要はなくなる。更に、ユーザインターフェイス部とグラフィック部をオフラインシステム本体（インタプリタ部と教示データ）から分離して公共回線で接続すれば、端末からオフラインシステムを利用することが可能になる。そのため、高価なオフラインシステムを購入する必要がなくなり利用料金だけの安価なシステムを提供することが可能になる。
【図面の簡単な説明】
【図１】本発明に従ったオフラインシミュレーションシステムの全体構成を要部ブロックで表わしたものである。
【図２】本システムを用いて動作シミュレーションを実行する際に作動する、ワークステーションとロボット制御装置の間の論理的なインターフェイスを、フローチャートで示したものである。
【図３】実施形態のシステムで用いられるディスプレイの外観を動作シミュレーション結果を表示するグラフィック画像とともに例示したものである。
【図４】実施形態のシステムの３Ｄグラフィック表示機能を用いた動作シミュレーション結果の表示のための処理の概要を記したフローチャートである。
【符号の説明】
１０  ワークステーション
１１  ＣＰＵ
１２  メモリ
１３  ロボット制御装置とのインターフェイス
１４  ディスプレイとのインターフェイス
１５  キーボード用入出力装置
１６  バス
２０  ロボット制御装置
２１  ＣＰＵ
２２  メモリ
２３  ワークステーションとのインターフェイス
２４  バス
３０  通信回線
４０  ディスプレイ
４１  ディスプレイの画面
４２〜４５  ディスプレイの操作ボタン
５０  キーボード
【図１】
0003742493.tif 000002
【図２】
0003742493.tif 000003
【図３】
0003742493.tif 000004
【図４】
0003742493.tif 000005