(57)【特許請求の範囲】
【請求項１】
マニピュレータを駆動するロボットコントローラの機能を記憶メモリとオペレーティングシステムを含んだ計算機単体にてシミュレーションするロボットコントローラシミュレーション装置において、
前記計算機は、前記ロボットコントローラに搭載される機能ソフトウェアと同一種の機能ソフトウェアを搭載するとともに、
前記機能ソフトウェアが指令するシステムコールを前記計算機のオペレーティングシステムに対するシステムコールへと変換して前記オペレーティングシステムへと指令するオペレーティングシステム接続部と、
前記機能ソフトウェアがアクセスしようとするメモリアドレスを前記記憶メモリのアドレスへと変換するメモリアドレス変換部とを備え、
前記記憶メモリに前記ロボットコントローラに搭載されるものと同一種のジョブを備えることを特徴とするロボットコントローラシミュレーション装置。
【請求項２】
前記計算機は、前記ロボットコントローラに接続されるプログラミングペンダントと同一種のプログラミングペンダントを接続し、前記プログラミングペンダントと前記機能ソフトウェアとの通信を仲介するペンダント通信処理部を備えることを特徴とする請求項１のロボットコントローラシミュレーション装置。
【請求項３】
前記計算機は、前記ロボットコントローラと前記計算機との処理速度の差を調整する処理速度調整部を備え、
前記処理速度調整部は、前記計算機における前記機能ソフトウェアの命令実行を遅延させることを特徴とする請求項１乃至２記載のロボットコントローラシミュレーション装置。
【請求項４】
前記計算機は、前記ロボットコントローラに備えられているサーボ制御装置の遅れ時間を予め設定して入力するサーボ遅れ入力部と、
前記サーボ遅れ入力部に入力された値をもとに前記サーボ制御装置をシミュレーションするサーボシミュレーション部とを備え、
前記サーボシミュレーション部は前記機能ソフトウェアからの指令に対し、前記サーボ遅れ入力部に予め入力された前記遅れ時間の値に基づき応答を遅延させることを特徴とする請求項１乃至３記載のロボットコントローラシミュレーション装置。
【請求項５】
前記計算機は、外部機器を接続する外部機器接続部と、
前記ロボットコントローラの前記外部機器に対するスキャン時間を入力する外部機器制御時間入力部と、
前記外部機器制御時間入力部に入力された値に基づき前記外部機器接続部に接続された前記外部機器にアクセスする外部接続機能部とを備えることを特徴とする請求項１乃至４記載のロボットコントローラシミュレーション装置。
【請求項６】
前記計算機は、ディスプレイを備えたユーザインターフェース機器を接続し前記ユーザインターフェース機器と前記機能ソフトウェアとの通信を仲介する機能リソースアクセス部を備え、
前記機能リソースアクセス部は、前記ユーザインターフェース機器に対するユーザの操作に従って前記機能ソフトウェアに対し前記マニピュレータの動作に関する指令を送信するとともに、前記機能ソフトウェアが保持するデータにアクセスし前記ユーザインターフェース機器に送信することを特徴とする請求項１乃至５記載のロボットコントローラシミュレーション装置。
【請求項７】
前記計算機は、前記機能リソースアクセス部を介して接続された前記ディスプレイに前記機能ソフトウェアによって求めた前記マニピュレータの動作状況を表示することを特徴とする請求項６記載のロボットコントローラシミュレーション装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計算機にロボットコントローラのソフトウェアを搭載したロボットコントローラシミュレーション装置に関する。
【０００２】
【従来の技術】
一般に生産ラインを構築する場合には、作業を行わせる対象物の大きさからロボット機種の選定、目標とするサイクルタイムからロボットの配置数、周辺外部機器との制御時間タイミングなどを想定する必要がある。また、ロボットの軌跡精度向上のシミュレーションとして、ＲＲＳ（Ｒｅａｌｉｓｔｉｃ ＲｏｂｏｔＳｉｍｕｌａｔｉｏｎ）の規格を設けて、軌跡精度向上を図っている。これらの課題を解決するためのロボットシミュレーション装置が特開２００１−１５０３７３で開示されている。これを図１２を用いて説明する。図において、ロボットコントローラ１００はネットワーク等の通信手段１０１によって計算機１０５に接続されている。計算機１０５は例えばワークステーションが使用され、ディスプレイ１０２、本体１０３およびキーボード１０４から構成される。ロボットコントローラ１００は、プロセッサを中心に構成され、基本ソフトウェアおよびロボットプログラムに基づいてロボット動作を制御する。そのロボット動作制御の指令信号は本来ならばロボットに送られるが、ここでは通信手段１０１を経由して計算機１０５に転送される。計算機１０５はその指令信号に基づいてロボット動作のシミュレーションを行う。
【０００３】
【発明が解決しようとする課題】
ところが、従来の技術であるＲＲＳ規格では、ロボットの動作にのみ関する精度は向上しても、外部周辺機器を含む生産ライン全体のシミュレーションはできなかった。
また、特開２００１−１５０３７３に開示されているように、ロボットコントローラからデータを受け取ってシミュレーションを行うため、ロボットコントローラの制御をそのまま使用するため高精度のシミュレーションは可能である。しかし、サーボ等の実機ロボットを動作させるための機能が付随しているため、コストとスペースの問題が発生し、生産ラインを検討する上では、現実的ではないという問題があった。
本発明は、上記問題を解決するために、マニピュレータを駆動するロボットコントローラを接続することなく、マニピュレータを駆動するロボットコントローラに搭載された機能ソフトウェアを使用し、ロボットコントローラを高精度でシミュレーションするロボットコントローラシミュレーション装置を提供するものである。
【０００４】
【課題を解決するための手段】
本発明の請求項１記載のロボットシミュレーション装置は、マニピュレータを駆動するロボットコントローラの機能を記憶メモリとオペレーティングシステムを含んだ計算機単体にてシミュレーションするロボットコントローラシミュレーション装置において、前記計算機は、前記ロボットコントローラに搭載される機能ソフトウェアと同一種の機能ソフトウェアを搭載するとともに、前記機能ソフトウェアが指令するシステムコールを前記計算機のオペレーティングシステムに対するシステムコールへと変換して前記オペレーティングシステムへと指令するオペレーティングシステム接続部と、前記機能ソフトウェアがアクセスしようとするメモリアドレスを前記記憶メモリのアドレスへと変換するメモリアドレス変換部とを備え、前記記憶メモリに前記ロボットコントローラに搭載されるものと同一種のジョブを備えることを特徴とするものである。また、本発明の請求項２記載のロボットシミュレーション装置は、前記計算機は、前記ロボットコントローラに接続されるプログラミングペンダントと同一種のプログラミングペンダントを接続し、前記プログラミングペンダントと前記機能ソフトウェアとの通信を仲介するペンダント通信処理部を備えることを特徴とするものである。また、本発明の請求項３記載のロボットシミュレーション装置は、前記計算機は、前記ロボットコントローラと前記計算機との処理速度の差を調整する処理速度調整部を備え、前記処理速度調整部は、前記計算機における前記機能ソフトウェアの命令実行を遅延させることを特徴とするものである。また、本発明の請求項４記載のロボットシミュレーション装置は、前記計算機は、前記ロボットコントローラに備えられているサーボ制御装置の遅れ時間を予め設定して入力するサーボ遅れ入力部と、前記サーボ遅れ入力部に入力された値をもとに前記サーボ制御装置をシミュレーションするサーボシミュレーション部とを備え、前記サーボシミュレーション部は前記機能ソフトウェアからの指令に対し、前記サーボ遅れ入力部に予め入力された前記遅れ時間の値に基づき応答を遅延させることを特徴とするものである。また、本発明の請求項５記載のロボットシミュレーション装置は、前記計算機は、外部機器を接続する外部機器接続部と、前記ロボットコントローラの前記外部機器に対するスキャン時間を入力する外部機器制御時間入力部と、前記外部機器制御時間入力部に入力された値に基づき前記外部機器接続部に接続された前記外部機器にアクセスする外部接続機能部とを備えることを特徴とするものである。また、本発明の請求項６記載のロボットシミュレーション装置は、前記計算機は、ディスプレイを備えたユーザインターフェース機器を接続し前記ユーザインターフェース機器と前記機能ソフトウェアとの通信を仲介する機能リソースアクセス部を備え、前記機能リソースアクセス部は、前記ユーザインターフェース機器に対するユーザの操作に従って前記機能ソフトウェアに対し前記マニピュレータの動作に関する指令を送信するとともに、前記機能ソフトウェアが保持するデータにアクセスし前記ユーザインターフェース機器に送信することを特徴とするものである。また、本発明の請求項７記載のロボットシミュレーション装置は、前記計算機は、前記機能リソースアクセス部を介して接続された前記ディスプレイに前記機能ソフトウェアによって求めた前記マニピュレータの動作状況を表示することを特徴とするものである。
【０００５】
【発明の実施の形態】
以下、本発明の実施の形態を、図を参照して説明する。図１は、本発明の概要図である。計算機１は、記憶メモリ１０とオペレーティングシステム１１を含んでいる。オペレーティングシステム１１は、計算機１のハードウェアを直接制御するソフトウェアである。マニピュレータを駆動するロボットコントローラに搭載する機能ソフトウェア２は、ロボットの位置、速度等のロボット動作を行う命令や、外部機器との通信を行う命令などを実行するソフトウェアである。機能ソフトウェア２は、オペレーティングシステム接続部３を通じて、オペレーティングシステム１１をアクセスし、最終的には計算機１のハードウェアを制御する。また、機能ソフトウェア２に指示されているマニピュレータを駆動するロボットコントローラのアドレスについては、メモリアドレス変換部を通じて、計算機１に含まれるの記憶メモリ１０をアクセスする。
【０００６】
図２に、マニピュレータを駆動するロボットコントローラに搭載するソフトウェアの構成図を示す。通常、マニピュレータを駆動するロボットコントローラは、サーボモータ等を駆動するためにリアルタイム性が必要である。このため、図２に示すようにロボット制御用のオペレーティングシステム２０と機能ソフトウェア２の２つのソフトウェアから構成されている。マニピュレータを駆動するロボットコントローラの機能ソフトウェア２には、ロボット制御用のオペレーティングシステム２０に対するシステムコールが含まれる。システムコールとは、一般にオペレーティングシステムを呼出す処理の総称である。図３を用いて、機能ソフトウェア２がシステムコールを実行するフローを説明する。ステップ１は、機能ソフトウェア２が、ロボット制御用のオペレーティングシステム２０のシステムコールを指令したものである。ステップ２では、この指令をオペレーティングシステム接続部３が受け取る。予め、計算機１のオペレーティングシステム１１のシステムコールとロボット制御用のオペレーティングシステム２０のシステムコールとを対応させたシステムコール対応テーブル１２がある。ステップ３では、このテーブル１２を用いて、計算機１のオペレーティングシステム１１に対して処理を指令する。
【０００７】
また、機能ソフトウェア２には、マニピュレータを駆動するロボットコントローラ内のメモリにアクセスする指令が含まれている。図４を用いて、機能ソフトウェア２が計算機１の記憶メモリ１０をアクセスする処理フローを説明する。ステップ１では、機能ソフトウェア２が、実際のロボットコントローラ内のメモリをアクセスするように指令する。ステップ２では、この指令をメモリアドレス変換部４が受け取る。予め、計算機１のメモリアドレスとマニピュレータを駆動するロボットコントローラ内のメモリアドレスとを対応させたメモリアドレス対応テーブル１３がある。ステップ３では、このテーブル１３を用いて、計算機１のメモリをアクセスする。
【０００８】
次に、ロボット移動させるジョブ２１のシミュレーションを図５に示す。ジョブ２１には、ロボット移動命令であるＭＯＶ命令がある。機能ソフトウェア２は、ジョブ２１を読み込む処理を指令する。このとき、機能ソフトウェア２は、ジョブ２１が存在しているマニピュレータを駆動するロボットコントローラ内のメモリアドレス１０００番地から１００バイトを読み出すように、メモリアドレス変換部４に指令する。メモリアドレス変換部４は、メモリアドレス対応テーブル１３を読み出す。マニピュレータを駆動するロボットコントローラ内のメモリアドレス１０００番地に対応した計算機１のメモリアドレス１１０００番地を求める。そして、計算機１のメモリアドレス１１０００番地から１００バイトを読み出す。ジョブ２１が読み出され、機能ソフトウェア２は、命令を解釈する。命令を解釈する方法としては、命令を中間コードとして一度変換し、その中間コードに対応した処理関数に、ＣＰＵの制御を遷移させる。ここで、ＭＯＶ命令については、機能ソフトウェア２のロボット演算部において、一定周期毎の指令位置が作成される。通常、マニピュレータを駆動するロボットコントローラでは、この作成された指令位置をサーボ制御部に送信し、サーボモータを駆動させている。機能ソフトウェア２は、位置指令をマニピュレータを駆動するロボットコントローラ内のサーボ制御装置との通信部のアドレス２０００番地に書き込む。メモリアドレス変換部４は、メモリアドレス対応テーブル１３から、計算機１のメモリアドレス３００００番地を求める。このアドレスは、実際に物理的には、外部に接続されていないため、サーボ制御装置を制御するものではない。
【０００９】
また、通常の一般的なロボットコントローラでは、一定周期毎に指令を作成し、次の周期が到来する前に次のＭＯＶ命令の指令位置を演算する。これは、先読みと呼ばれており、タスクという概念でプログラムされている。つまり、最終的にサーボ制御装置に位置指令を払い出すためには、この先読みが完了していなければならない。この場合、この先読みが完了しているかどうかをロボット制御用のオペレーティングシステム２０のシステムコールであるメールによって判断している。図３を使ってこの処理を説明する。機能ソフトウェア２は、システムコールであるメールを利用するようにオペレーティングシステム接続部３に指令する。オペレーティングシステム接続部３は、システムコール対応テーブル１２を用いて、計算機１のオペレーティングシステム１１のシステムコールを指令する。こうすることで、機能ソフトウェア２は、システムコールであるメールを作成することが可能となる。
上記に記載したとおり本実施例では、マニピュレータを駆動するロボットコントローラの機能ソフトウェアを使用することで、計算機を用いたロボットコントローラシミュレーション装置で正確に、そして、安価に実現することができる。
【００１０】
本発明の第２の実施の形態について、図７をもとに説明する。プログラミングペンダント５は、マニピュレータを駆動するロボットコントローラに使用しているものである。プログラミングペンダント５とデータ通信を行うペンダント通信処理部６は、機能ソフトウェア２とプログラミングペンダント５とを接続するものである。通常、ロボットコントローラ内の基板とプログラミングペンダントは、シリアル伝送処理方法などのデータ通信を使用している。この基板には、通信回路素子およびプログラムが搭載されている。この実施例では、ペンダント通信処理部６は、この基板を想定している。また、プログラミングペンダント５との通信が、計算機１の外部機器接続部に予め用意された機能を使用できる場合には、ペンダント通信処理部６は、ソフトウェアのみとなる。例えば、プログラミングペンダント５に設置されている（Ｘ＋）キー５１が押下された場合、マニピュレータを駆動するロボットコントローラでは、ロボットをベース座標系（ロボットが持っている固有の座標系）のＸ軸に対してプラスの方向にロボットの制御点を移動させる。本実施例では、（Ｘ＋）キー５１が押下されると、そのキー情報がペンダント通信処理部６に送信される。この送信されたキー情報は、メモリアドレス変換４を通じて、機能ソフトウェア２が指定しているキー情報格納領域に格納される。また、実際のプログラミングペンダントの応答時間、言い換えれば、キーを一回押すことにより、そのキーを機能ソフトウェア２が認識するまでの時間、を予めペンダント通信処理部６に指定しておくことで、計算機１の処理速度を遅延させ、実機と同等の応答感覚を実現することができる。以上のように、本実施例では、マニピュレータを駆動するロボットコントローラに使用するプログラミングペンダントを利用することができるため、ロボットコントローラを実際に同じ感覚でシミュレーションすることができる。
【００１１】
本発明の第３の実施の形態について、図８をもとに説明する。計算機１に搭載された機能ソフトウェア２の処理速度は、計算機１のＣＰＵの処理速度に依存する。つまり、マニピュレータを駆動するロボットコントローラのＣＰＵ処理速度と計算機１とのＣＰＵの処理速度には、差が発生する。この差により、命令の処理速度が精度に影響するような処理（例えば、移動命令の軌跡補間）等の場合に、問題となる。これを解決するために、本実施例では、処理速度調整部７により、ロボットコントローラシミュレーション装置のＣＰＵの処理を遅延させるものである。たとえば、マニピュレータを駆動するロボットコントローラのＣＰＵの処理速度に対して、計算機１のＣＰＵ処理速度が、２倍であったとする。計算機１は、その命令を実行するために、１msec必要であった場合、命令終了後に１msecのＣＰＵの実行を停止する。命令実行開始から2msecとなったところで、この命令を完了するものである。
この実施例では、マニピュレータを駆動するロボットコントローラと命令単位で同じ処理速度になるので、軌跡精度が、マニピュレータを駆動するロボットコントローラと同じになる。
【００１２】
本発明の第４の実施の形態について、図９をもとに説明する。予め、サーボ遅れ入力部８に、サーボ遅れ時間を設定する。これは、マニピュレータを駆動するロボットコントローラがサーボ制御装置に指令を与え、その指令にもとづいて、ロボットが移動するまでの遅れ時間を設定するものである。機能ソフトウェア２は、指令として、パルスをサーボシミュレーション部９に払いだす。サーボシミュレーション部９は、サーボ遅れ入力部８で設定された値をもとに、その時間だけ応答を遅延させる。サーボシミュレーション部９は、設定された時間経過後、フィードバックパルスを想定して、機能ソフトウェア２に返す。このフィードバックパルスは、単なる指令をそのままフィードバックパルスとする方法、指令に乱数分加算してフィードバックパルスとする方法、ロボットの機構から計算できる負荷イナーシャや重力を考慮したものをフィードバックパルスとする方法などがある。この実施例によれば、実際のロボットの動作を正確に把握し、軌跡精度やタクトタイムを正確にシミュレーションすることができる。
【００１３】
本発明の第５の実施の形態について、図１０を用いて説明する。計算機１は、外部機器３０と外部機器接続部３１を介して接続されている。この外部機器接続部３１は、計算機１の内外のどちらでもよい。外部機器との接続は、フィールドバスなどの産業用ネットワークである。機能ソフトウェア２は、外部機器とＩ／Ｏまたはネットワークで接続されている。マニピュレータを駆動するロボットコントローラのＩ／Ｏスキャン時間を外部機器制御時間入力部３２に入力する。この時間毎に、外部接続機能部３３は、外部機器のＩ／Ｏのスキャンを実行する。機能ソフトウェア２は、メモリアドレス変換部、外部接続機能部３３を通じてＩ／Ｏデータにアクセスする。本実施例によれば、実機と同じタイミングで、外部機器とのシミュレーションをすることができ、外部機器とのインターロックを確認することが非常に簡単にできる。
【００１４】
本発明の第６の実施の形態について、図１１を用いて説明する。計算機１には、ディスプレイが接続されている。このディスプレイに操作パネル７２が表示されている。操作パネル７２には、非常停止、サーボ電源ＯＮ、スタート、ホールド等のロボットの起動・停止に関する操作ボタンが表示されている。このディスプレイは、タッチパネルであり、このボタンをタッチすることで、ロボットに対して指令を行うことができる。また、モードは、教示モード、プレイモードを選択するものである。操作パネル７２の指令は、機能リソースアクセス部３４を通じて、機能ソフトウェア２にアクセスする。その後、機能ソフトウェア２は、ロボット軌跡演算を行い、その結果を逐次、データ表示パネル７３と動作表示パネル７４に返す。データ表示パネルには、現在位置、サイクルタイム、ロボット動作時間など、ユーザが所望するデータを表示する。また、ロボットの位置を一定周期毎取得し、動作表示パネル７４にて、ロボットモデルを表示することができる。これにより、実際のロボットの動作をシミュレータ装置にて確認することができる。本実施例によれば、機能リソースアクセス部を通じて、ユーザが所望のデータ表示やシミュレーションをすることができるようになる。
【００１５】
また、その他の実施例として、ネットワークを介して、他の計算機からロボットシミュレーション装置に指令を与えること、及びデータを取得することはネットワークドライバを用いることで容易に行える。同様に、複数のロボットの設置を検討する場合に、複数のロボットコントローラシミュレーション装置をネットワークを介して通信することも可能となる。
【００１６】
【発明の効果】
本発明の装置によれば、マニピュレータを駆動するロボットコントローラに搭載する機能ソフトウェアをそのまま使用するため、マニピュレータを駆動するロボットコントローラを正確にシミュレーションすることができる。
また、実際にロボットコントローラに接続され使用するプログラミングペンダントを備えることで、操作性を実機と同じようにすることができる。
また、マニピュレータを駆動するロボットコントローラと計算機の処理速度を調整することができるため、ユーザは、一般に市販されている計算機を使用でき、安価に実現できるという特別の効果を奏するものである。ユーザは、機能リソースアクセス手段を用いて、ソフトウェアを作成する際に、一般の計算機を使用できるため、ユーザが好むソフトウェア開発環境（コンパイラ、アセンブラ等）を用いることができる。
【図面の簡単な説明】
【図１】本発明の概要図
【図２】マニピュレータを駆動するロボットコントローラのソフトウェア構成図
【図３】システムコールのフロー
【図４】アドレスアクセスのフロー
【図５】ジョブ実行のフロー
【図６】移動命令のフロー
【図７】第２の実施の形態の概要図
【図８】第３の実施の形態の概要図
【図９】第４の実施の形態の概要図
【図１０】第５の実施の形態の概要図
【図１１】第６の実施の形態の概要図
【図１２】従来技術の概要図
【符号の説明】
１：計算機
２：機能ソフトウェア
３：オペレーティングシステム接続部
４：メモリアドレス変換部
５：プログラミングペンダント
６：ペンダント通信処理部
７：処理速度調整部
８：サーボ遅れ入力部
９：サーボシミュレーション部
１１：オペレーティングシステム
１２：システムコール対応テーブル
１３：メモリアドレス対応テーブル
２０：ロボット制御用オペレーティングシステム
３０：外部機器
３１：外部機器接続部
３２：外部機器制御時間入力部
３３：外部接続機能部
３４：機能リソースアクセス部
【図１】
0003948329.tif 000002
【図２】
0003948329.tif 000003
【図３】
0003948329.tif 000004
【図４】
0003948329.tif 000005
【図５】
0003948329.tif 000006
【図６】
0003948329.tif 000007
【図７】
0003948329.tif 000008
【図８】
0003948329.tif 000009
【図９】
0003948329.tif 000010
【図１０】
0003948329.tif 000011
【図１１】
0003948329.tif 000012
【図１２】
0003948329.tif 000013