(57)【特許請求の範囲】
【請求項１】
ロボットや工作機械などのコンピュータプログラムによる複数の数値制御機械の動作を単一のコンピュータ上でシミュレート及び監視して、画面上に表示するシミュレータにおいて、
前記数値制御機械において生成される時系列の各軸座標を通信線路を介して入力する通信インターフェースと、
前記各数値制御機械に関して、教示データに基づいてその数値制御機械の各軸を制御するための各軸座標を時系列に発生させる、数値制御機械の種類毎に異なる軌跡演算プログラムを、新たにシミュレーションされる数値制御機械から入力する入力手段と、
前記入力手段により入力された前記軌跡演算プログラムを前記各数値制御機械毎に記憶する軌跡演算プログラム記憶手段と、
前記教示データを記憶する教示データ記憶手段と、
時系列の前記各軸座標を入力して、前記画面上に前記各数値制御機械の動作を表示するそれぞれの動作表示プログラムを記憶した動作表示プログラム記憶手段と、
複数の前記数値制御機械のうちで動作をシミュレート又は監視する数値制御機械を指定する指定手段と、
シミュレーションモードか監視モードかを指令するモード指令手段と、
前記モード指令手段によりシミュレーションモードが指令された場合には、
前記指定手段により指定された前記数値制御機械に対応する前記軌跡演算プログラムを前記軌跡演算プログラム記憶手段から読出して実行して、前記教示データ記憶手段に記憶されている前記教示データに基づき、補間点の各軸座標を時系列で生成し、前記指定手段により指定された前記数値制御機械に対応する前記動作表示プログラムを前記動作表示プログラム記憶手段から読出して、時系列で生成された前記各軸座標を、その動作表示プログラムに引き渡して、指定された数値制御機械の時間的に変化する動作を、前記画面上に表示し、
前記モード指令手段により監視モードとすることが指令された場合には、前記指定手段により指定された数値制御機械から出力される時系列の各軸座標を、前記通信インターフェースを介して入力し、前記指定手段により指定された数値制御機械に対応する動作表示プログラムを起動し、入力された前記各軸座標をその動作表示プログラムに引き渡して、指定された数値制御機械の時間的に変化する動作を前記画面上に表示して、その数値制御機械の動作を監視する
制御手段と、
を有することを特徴とする数値制御機械の動作シミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットや数値制御工作機械などのコンピュータプログラムにより各動作軸が数値制御される数値制御機械の動作を、１台のコンピュータによりシミュレートする装置に関する。
【背景技術】
【０００２】
従来から、下記特許文献１に開示されているように、ロボットや数値制御工作機械などの数値制御機械の動作を、その機械に取り付けられている画面上において、３次元モデルの動作として表示することが行われている。また、下記特許文献２においては、通信線路を用いて、工作機械の動作を３次元モデルの動作で監視する装置が開示されている。
【０００３】
【特許文献１】特開２００６−８５３２８
【特許文献２】特開２０００−１３２２１４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、上記の技術は、機械が実際に運転している時の動作を画面上で監視する装置である。したがって、機械に対して動作の教示をした後に、予め、コンピュータの画面上で、教示した動作を確認することはできない。このような、教示後の機械の動作を確認するには、各数値制御機械を動作させるためのプログラムと、３次元モデルによる動作を画面上に表示するプログラムとを一体化して、コンピュータで実行することが考えられる。すなわち、このようなコンピュータによるシミュレータは、動作プログラムの異なる各数値制御機械毎に、シミュレーションプログラムを作成する必要がある。このために、工場に、新たな種類の数値制御機械を導入する場合には、常に、その動作プログラムの開発とともに、この機械のためのシミュレションプログラムを新たに開発する必要があった。  
【０００５】
そこで、本発明は、上記のこのような課題を解決するために成されたものであり、その目的は、複数種類の数値制御機械の動作のシミュレーションを、一台のコンピュータにより、シミュレートする数値制御機械を指定して、実行可能とすると共に、新たな数値制御機械の導入時における、この機械の動作シミュレーションを容易に行えるようにすることである。
【課題を解決するための手段】
【０００６】
上記の課題を解決するための発明の構成は、ロボットや工作機械などのコンピュータプログラムによる複数の数値制御機械の動作を単一のコンピュータ上でシミュレート及び監視して、画面上に表示するシミュレータにおいて、数値制御機械において生成される時系列の各軸座標を通信線路を介して入力する通信インターフェースと、各数値制御機械に関して、教示データに基づいてその数値制御機械の各軸を制御するための各軸座標を時系列に発生させる、数値制御機械の種類毎に異なる軌跡演算プログラムを、新たにシミュレーションされる数値制御機械から入力する入力手段と、入力手段により入力された軌跡演算プログラムを各数値制御機械毎に記憶する軌跡演算プログラム記憶手段と、教示データを記憶する教示データ記憶手段と、時系列の各軸座標を入力して、画面上に各数値制御機械の動作を表示するそれぞれの動作表示プログラムを記憶した動作表示プログラム記憶手段と、複数の数値制御機械のうちで動作をシミュレート又は監視する数値制御機械を指定する指定手段と、シミュレーションモードか監視モードかを指令するモード指令手段と、モード指令手段によりシミュレーションモードが指令された場合には、指定手段により指定された数値制御機械に対応する軌跡演算プログラムを軌跡演算プログラム記憶手段から読出して実行して、教示データ記憶手段に記憶されている教示データに基づき、補間点の各軸座標を時系列で生成し、指定手段により指定された数値制御機械に対応する動作表示プログラムを動作表示プログラム記憶手段から読出して、時系列で生成された各軸座標を、その動作表示プログラムに引き渡して、指定された数値制御機械の時間的に変化する動作を、画面上に表示し、モード指令手段により監視モードとすることが指令された場合には、指定手段により指定された数値制御機械から出力される時系列の各軸座標を、通信インターフェースを介して入力し、指定手段により指定された数値制御機械に対応する動作表示プログラムを起動し、入力された各軸座標をその動作表示プログラムに引き渡して、指定された数値制御機械の時間的に変化する動作を画面上に表示して、その数値制御機械の動作を監視する制御手段と、を有することを特徴とする数値制御機械の動作シミュレータである。
【０００７】
ここにおいて、数値制御機械とは、ロボットや数値制御工作機械など、コンピュータプログラムにより、各動作軸が数値制御される全ての機械を指すものである。また、複数の数値制御機械は、各軸座標の補間点を時系列的に演算する軌跡演算プログラムが異なるものであれば、異なる数値制御機械とする。したがって、たとえば、同一の軌跡演算プログラムを使用する複数のロボットは、ここでは、１種類のロボットと見做す。逆に、製造者が異なることにより、軌跡演算プログラムが異なれば、同種のロボットであっても、異なる種類のロボットと見做す。数値制御工作機械についても同様である。
【０００８】
【発明の効果】
【０００９】
本発明によると、１台のコンピュータで、複数の数値制御機械のうち、指定手段により指定されて選択された数値制御機械の動作のシミュレーションを、画面上において実施することができる。したがって、各数値制御機械毎に、シミュレータを準備する必要がない。また、新たな数値制御機械を導入した場合には、その数値制御機械の各軸座標を時系列で発生させる軌跡演算プログラムがこの数値制御機械に搭載されているので、この数値制御機械から、その軌跡演算プログラムを読み出して、軌跡演算プログラム記憶手段に記憶させる。そして、その数値制御機械の動作表示プログラムを動作表示プログラム記憶手段に記憶する。この操作を実行するだけで、新たな数値制御機械に対する動作シミュレーションを、１台のコンピュータで実行することができる。
【００１０】
また、各数値制御機械の動作時に、その機械に搭載されている軌跡演算プログラムが実行されて、時系列の各軸座標が生成されると、その各軸座標は、本発明のシミュレータに、通信線路を介して入力される。この時系列の各軸座標に基づいて、その数値制御機械に対応する動作表示プログラムが実行されて、画面上に、その数値制御機械の動作が表示されて、その機械の動作監視を行うことができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明を具体的な実施例に基づいて説明する。
ただし、本発明の実施形態は、以下に示す個々の実施例に限定されるものではない。
【実施例１】
【００１２】
図１に、本実施例に係る数値制御機械の動作シミュレータの構成を示す。本動作シミュレータは、コンピュータシステムによって構成されている。演算を実行するＣＰＵ１０、プログラムやデータを記憶するＲＯＭ４０、ＲＡＭ２０、入出力インターフェース４２、キーボード４４、表示装置４６、ＣＤ駆動装置４８、教示データ入力装置５０、ハードディスク装置５２とから主として構成されている。ＲＡＭ２０には、各種の数値制御機械における軌跡演算プログラムを記憶する軌跡演算プログラムメモリ２２、各数値制御機械の動作を３次元画像として表示するための動作表示プログラムを記憶する動作表示プログラムメモリ２４、教示データメモリ２６、各軸座標メモリ２８が、設けられている。軌跡演算プログラムメモリ２２には、No.1からNo.nまでのn 個の軌跡演算プログラムが記憶できる。また、動作表示プログラムメモリ２４には、No.1からNo.nまでのn 個の動作表示プログラムが記憶できる。教示データメモリ２６は、教示データ入力装置５０により作成された動作軌跡上の教示点の座標、姿勢を４×４の行列で表現した位置姿勢行列が教示データとして記憶される。各軸座標メモリ２８には、教示データを軌跡演算プログラムに与えて、教示点間の補間点における位置及び姿勢を演算し、この補間点の位置姿勢行列から、各軸座標に変換して、出力される各軸座標が記憶される。
【００１３】
次に、本装置の処理手順を、ＣＰＵ１０の実施する図２に示すフローチャートに基づいて説明する。このプログラムは、ハードディスク装置５２に記憶されており、ＲＡＭ２０のプログラム領域に実行形式プログラムに変換されてロードされて、順次、命令語が読み出されて実行される。ステップ１００では、各種の軌跡演算プログラムが、ＣＤ駆動装置４８やハードディスク装置５２から、読み出されて、ＲＡＭ２０の軌跡演算プログラムメモリ２２に記憶される。たとえば、No.1の軌跡演算プログラムからNo.nまでのｎ個の軌跡演算プログラムが、軌跡演算プログラムメモリ２２に記憶される。
【００１４】
次に、ステップ１０２において、軌跡演算プログラムメモリ２２に記憶されているプログラムに対応する数値制御機械の識別情報の一覧表が、表示装置４６に表示される。作業者は、表示から、シミュレータしたい数値制御機械を、キーボード４４からのデータ入力により選択する。ここでは、数値制御機械は、６軸ロボットとする。ステップ１０２では、この数値制御機械の指定データが入力される。次に、ステップ１０４において、教示データ入力装置５０により作成された、指定の数値制御機械に対する教示データ群が読み出され、ＲＡＭ２０の教示データメモリ２６に記憶される。ここでは、教示点の数はｍ個とする。
【００１５】
次に、ステップ１０６において、教示データメモリ２６から、最初の教示データＤ（１）を初期値として読み込み、データ変数ｉが２に設定される。次に、ステップ１０８において、次の教示データＤ（ｉ）が、教示データメモリ２６から読み出され、ステップ１１０において、ステップ１０２で指定された数値制御機械に対応する軌跡演算プログラムメモリ２２の所定アドレスから記憶されている軌跡演算プログラムが起動される。この軌跡演算プログラムには、２点の教示データＤ（ｉ−１）、Ｄ（ｉ）が、渡される。教示データＤ（ｉ）は、工具先端に固定された３軸の直交座標系である工具座標系におけるノーマル、オリエント、アプローチの各単位ベクトルの床に固定されたｏ−ｘｙｚ座標系から成るワールド座標系における各軸成分で構成される３×３の姿勢行列に、工具先端のワールド座標系における成分（ｘ，ｙ，ｚ）の位置ベクトルを加味した、４行４列の位置姿勢行列で表される。次に、図３に示すように、２点の教示データＤ（ｉ−１）、Ｄ（ｉ）から、回転主軸法により、３×３の姿勢行列を回転させる回転主軸が決定され、回転主軸の回りの回転角Δφが決定される。補間点の数をＦとすると、角度ｊΔφ／Ｆの回転行列をＤ（ｉ−１）に掛けることで、各補間点ｊ（ｊは自然数）における３×３の姿勢行列Ｓj が得られる。位置ベクトルに関しては、２つの教示点間を曲線で近似して、この曲線をＦ分割して、順次、曲線上の点Ｐj のワールド座標を決定すれば良い。このＳj とＰj から補間点ｊにおける４×４の位置姿勢行列が求められる。次に、この補間点の位置姿勢行列が求められれば、良く知られているように、これを逆変換して、補間点Ｐj における６軸の回転角θk （ｋ＝１，…，６）を得ることができる。この各軸座標θk は、各軸座標メモリ２８に、順次、記憶される。ステップ１１０での軌跡演算プログラムの起動は、指定された移動速度が実現するる時間間隔で、補間点Ｐj の各軸座標θk が発生される。
【００１６】
そして、各補間点の各軸座標θk が発生される毎に、ステップ１１２の動作表示プログラムが起動される。この動作表示プログラムは、動作表示プログラムメモリ２４に記憶されている複数の動作表示プログラムのうちで、ステップ１０２において、指定された数値制御機械に対応する動作表示プログラムである。動作表示プログラムは、各軸座標θk により、６軸の回転角度を決定して、ロボットの各アーム、ハンドが、その角度になるように、３次元のロボットのモデル画像を運動させるプログラムである。これは、各アーム、ハンドなどのパーツ画像を、床に近い軸の座標θ1 から、順に、回転して位置決めすることにより実現できる。この３次元モデルの移動方法は、良く知られているので、詳しい説明は省略する。
【００１７】
指令された速度を実現する時間間隔毎に、ステップ１１０、１１２での１補間点Ｐj の演算と、表示装置４６上における３次元モデルの位置決めと表示が実行されることにより、ロボットの３次元モデルの位置と姿勢は、図３に示すように、順次、教示点Ｄ（ｉ−１）から教示点Ｄ（ｉ）に向けて、移動することになる。そして、３次元モデルが、教示点Ｄ（ｉ）に位置決めされると、ステップ１１４に移行して、データ変数ｉが最終のｍか否かが判定され、最終でなければ、ステップ１１６において、データ変数ｉは、１だけ加算更新されて、ステップ１０８に戻り、次の教示データＤ（ｉ）が、教示データメモリ２６から読み出されて、上記の処理が繰り返される。なお、ステップ１１０の補間演算は、教示データが、次の点に更新された場合でも、所定の移動速度を満たすように、所定時間間隔で、次の教示データの入力と、補間演算が実行されるため、３次元モデルは、教示点Ｄ（ｉ）で静止することはなく、滑らかに、教示点を移動する。３次元モデルとしては、たとえば、図４に示すようなものである。
【００１８】
このようにして、本実施例装置では、１台のシミュレータを用いて、複数種類の数値制御機械の中から、任意の数値制御機械を選択するだけで、その機械の動作を３次元モデルを用いて表示装置４６に表示させることができる。このようにして、教示データが正確であるか否かを、ロボットを実際に動作させる前に、確認することができる。
【００１９】
同一種類のロボットで、動作軌跡が異なるだけの場合には、教示データを変更すれば良いので、この場合には、同一の動作軌跡プログラムと動作表示プログラムとを用いて、動作のシミュレーションを行うことができる。また、ロボットアームの長さだけが異なるような場合には、ワールド座標から各軸座標への変換は、このロボットアームの長さによって異なるだけであるので、ロボットアームの長さを機械パラメータとして、記憶しておけば、同一の動作軌跡プログラムを用いることができる。また、同様に、機械パラメータを用いて、アームなどのパーツの長さを変更すれば良いので、動作表示プログラム自体は、同一のプログラムとすることができる。すなわち、プログラムの共通化を図ることができる。また、種類の異なるロボット、たとえば、６軸、５軸、３軸ロボットなどであれば、それらに応じた軌跡演算プログラムや動作表示プログラムをＲＡＭ２０上に記憶することになる。また、３次元モデルは、その構成要素であるアームなどのパーツの図形を部品化しておいて、パーツとその長さを指定するだけで、構成することができる。このようにすれば、異なる種類のロボットであっても、ロボットを構成するパーツのリストを指定するだけで、３次元モデルを形成することができ、異なる種類のロボット間でも動作表示プログラムを共通化することができる。
【００２０】
数値制御機械が数値制御工作機械であっても、上記と同様なシミュレーションを行うことができる。数値制御工作機械の場合には、上記の教示データは、ＮＣプログラムにより与えられる位置指令データを含むものである。工場に、ロボットや数値制御工作機械が設置されており、新たに、機種の異なるロボットや数値制御工作機械などが導入された場合には、本実施例のシミュレータに、そのロボットや数値制御工作機械の動作軌跡プログラムと動作表示プログラムだけを、ＲＡＭ２０上に入力すれば、その数値制御機械の３次元モデルによる動作シミュレーションを実行できる。このようにして、１台のシミュレータで、多数の種類の数値制御機械の動作確認ができる。
【実施例２】
【００２１】
図５に、実施例２に係るシミュレータの構成を示す。本装置は、図１に示す実施例１の構成に、通信ドライバ６０を設けて、通信ドライバ６０と、各ロボット７１、７２…７ｑ、数値制御工作機械８１、８２…８ｒをＬＡＮネットワーク６２に接続したものである。実施例２のシミュレータの処理手順を図６に示す。ステップ２００では、キーボード４４の入力により、モード指令が入力される。ステップ２０２で監視モード指令でないと判定される場合にはステップ２０４で、シミュレーションモード指令か否かが判定され、シミュレーションモード指令の場合には、ステップ２０６において、図２のシミュレーションプログラムが実行される。また、ステップ２０２で、監視モード指令と判定された場合には、ステップ２０８以下が実行される。
【００２２】
ステップ２０８では、動作表示プログラムメモリ２４に記憶されているプログラムに対応する数値制御機械の識別情報の一覧表が表示装置４６に表示されて、監視する数値制御機械が作業者により指定されて、この指定情報が読み込まれる。一方、別の通信制御プログラムの平行実行により、監視する数値制御機械からは、各軸座標θk が、ＬＡＮネットワーク６２を介して、通信ドライバ６０で受信されて、ＲＡＭ２０の各軸座標メモリ２８に、順次、記憶される。
【００２３】
この状態で、本シミュレータが、監視モードに指定されると、ステップ２１０では、監視終了指令が付与されたか否かが判定され、監視終了指令が付与されていない場合には、ステップ２１２において、各軸座標メモリ２８からその時刻で受信した各軸座標θk が、読み込まれる。そして、ステップ２１４において、その各軸座標θk はは、指定された数値制御機械に対応する動作表示プログラムに引き渡されて、上記した動作表示プログラムが実行される。そして、ステップ２１０に戻り、ステップ２１２に移行して、次の時刻における各軸座標が受信されて、各軸座標メモリ２８に記憶されている場合には、ステップ２１２、２１４の処理が繰り返し実行される。これにより、上記したように、現実に動作させているロボットの監視が指定された場合には、このロボットの３次元モデルの動作が図４に示すように、表示装置４６において、表示される。すなわち、現実のロボットの動作と同期して、３次元モデルが移動することになり、ロボットの動作を監視することができる。この動作表示プログラムは、ステップ２１０で監視終了指令が付与されたと判定されるまで、繰り替えされることになる。したがって、本シミュレータでは、ロボットの実際の動作に同期して受信される各軸座標によって、リアルタイムで３次元モデルが動作することになる。
本実施例においても、数値制御機械は数値制御工作機械であっても良い。数値制御工作機械の各軸モータを駆動する指令座標、又は現実の座標で与えられる各軸座標を入力して、数値制御工作機械を３次元モデルで表示して、この３次元モデルを、リアルタイムで各軸座標に基づいて動作させても良い。
【００２４】
本発明と実施例との関係を説明する。入力手段は、キーボード４４、ステップ１００で実現される。軌跡演算プログラム記憶手段は、ＲＡＭ２０の軌跡演算プログラムメモリ２２で実現される。教示データ記憶手段は、ＲＡＭ２０の教示データメモリ２６で実現される。動作表示プログラム記憶手段は、ＲＡＭ２０の動作表示プログラムメモリ２４で実現される。指定手段は、キーボード４４、ステップ１０２で実現される。制御手段は、ＣＰＵ１０、実施例１では、ステップ１０４−１１６、実施例２では、ステップ２１０−２１４で実現される。通信インターフェースは、通信ドライバ６０、通信線路はＬＡＮネットワーク６２、モード指令手段は、キーボード４４、ステップ２００、２０８で実現される。
【産業上の利用可能性】
【００２５】
本発明は、コンピュータプログラムにより数値制御される数値制御機械の実行前のシミュレーションや、実際の動作を監視するのに用いることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の具体的な一実施例に係るシミュレータを示す構成図。
【図２】同実施例装置の処理手順を示したフローチャート。
【図３】同実施例装置の処理手順を示した説明図。
【図４】同実施例装置による３次元モデルを示した説明図。
【図５】本発明の具体的な実施例２に係るシミュレータを示す構成図。
【図６】同実施例装置の処理手順を示したフローチャート。
【符号の説明】
【００２７】
１０…ＣＰＵ
２０…ＲＡＭ
２２…軌跡演算プログラムメモリ
２４…動作表示プログラムメモリ
２６…教示データメモリ
２８…各軸座標メモリ
【図１】
0005272447.tif 000002
【図２】
0005272447.tif 000003
【図３】
0005272447.tif 000004
【図４】
0005272447.tif 000005
【図５】
0005272447.tif 000006
【図６】
0005272447.tif 000007