シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム
【課題】制御対象の実機への接続を伴わずにシミュレータを用いて検証する場合に、操作者が、製造装置などにおいてワークをハンドリングする動作を含めてシミュレーションを行えるようにする。
【解決手段】シミュレーション装置253が、ワーク状態と立体とを関係付けた複数のワーク状態データ及びワーク状態間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部210と、ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを行うダイナミクスシミュレータ205と、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部209と、イベント発生時におけるワーク状態とその相手立体との相対的な位置関係を表すデータを算出する相対位置算出部208と、位置関係データとアセンブリモデルデータとに基づきワークの拘束関係を表すデータを生成する拘束関係データ生成部207とを備える。
【解決手段】シミュレーション装置253が、ワーク状態と立体とを関係付けた複数のワーク状態データ及びワーク状態間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部210と、ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを行うダイナミクスシミュレータ205と、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部209と、イベント発生時におけるワーク状態とその相手立体との相対的な位置関係を表すデータを算出する相対位置算出部208と、位置関係データとアセンブリモデルデータとに基づきワークの拘束関係を表すデータを生成する拘束関係データ生成部207とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メカトロニクス機器などの制御プログラムについてその制御プログラムを制御対象である機械の実機への接続を伴わずにシミュレータを用いて検証するためのシミュレーションシステムに用いて好適な、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムに関する。
【背景技術】
【0002】
従来のアセンブリモデル作成方法としては、アセンブリのモデルに、機構解析や障害物回避動作計画に利用するために必要となる付加的な幾何拘束関係とそれに付随する機構パラメーターとを自動的に設定し、そのまま、機構解析や障害物回避動作計画を実行するものが知られている(例えば特許文献1参照)。また、テキストベースでの編集作業を行うことなく、システムの時間軸上の挙動をシミュレートするためのシミュレーションデータを容易に作成するシミュレーションデータ作成方法が提案されている(例えば特許文献2参照)。さらに、ハイブリッドモデルを利用して対象とする機構の挙動を時間軸に沿ってシミュレーションするシミュレーション方法が提案されている(例えば特許文献3参照)。ハイブリッドモデルに関しては、ハイブリッドモデリング言語を用いて、系を常微分連立方程式として表現する手法が知られている(例えば非特許文献1参照)。メカトロニクス機器のファームウェアの設計に関しては、上流段階での仕様のシミュレーションによるチェックなどにより、設計の後戻りを削減する手法が提案されている(例えば非特許文献2参照)。
【0003】
例えば半導体製造装置において、ロボットがシリコンウェハーというワークをハンドリングすることなど、一般に、製造装置やその製造装置に組み込まれたロボットを含むシステムにおいては、ワークをハンドリングする必要がある。
【0004】
これに近い状況の例として、コピー機やプリンタなどのメカトロニクス機器を用いたシミュレーションにおいては、紙搬送路が1次元的であるため、移動距離を与えることにより、機械の内部における紙の位置を求めてシミュレーションを行う。そこで、機構の定義の段階において、制御ソフト技術者は、紙の挙動モデルを予め定義しておき、定義した挙動モデルをデータファイルに含めたうえで、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、接続した制御ソフトウェアの検証を行うようにしている。
【特許文献1】特許第3643504号公報
【特許文献2】特開2002−140653号公報
【特許文献3】特開2004−178300号公報
【非特許文献1】「Use of Hybrid Models for Testing and Debugging Control Software for Electromechanical Systems」、IEEE/ASME Trans. Mechatronics, Vol.10, No.3, June 2005, pp.275-284
【非特許文献2】近藤浩一、星野享、本橋聖一:「シミュレーションによるメカトロニクス機器ファームウェア開発の革新」、東芝レビュー、Vol.60, No.1, 2005
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ワークのハンドリングにおいては、シミュレーション装置が、ロボットや搬送装置などの動きにより、次にどのような状態になるのかを予め決めておくことができない。そのうえ、例えば、ロボットがワークを台の上に置くなどの動作についても、シミュレーション装置は、ワークがどのような位置や姿勢で台に置かれるかを予め決定することができないという不具合がある。
【0006】
そこで本発明は、上記の課題に鑑み、制御プログラムを制御対象の実機への接続を伴わずにシミュレータを用いて検証するシミュレーションシステムにおいて、制御ソフト技術者が、製造装置などにおいてワークをハンドリングする動作を含めてシミュレーションを実行できる、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置が提供される。
【0008】
また、本発明の別の一態様によれば、シミュレーション装置におけるシミュレーション方法であって、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法が提供される。
【0009】
さらに、本発明の別の一態様によれば、シミュレーションプログラムであって、コンピュータに、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラムが提供される。
【発明の効果】
【0010】
本発明によれば、制御ソフト技術者が、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施形態に係るシミュレーション装置およびこのシミュレーション装置に利用されるシミュレーション方法並びにシミュレーションプログラムについて、図面を参照しながら説明する。なお、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0012】
本発明の実施の形態に係るシミュレーションシステムは、制御プログラムを制御対象のシミュレータを用いて検証するためのものであり、図1に示されるように、入力部(入力装置)251と、制御ボード252と、制御対象シミュレータ253とを備えて構成される。入力部251は、制御ソフト技術者の操作指令を制御ボード252に入力するものであり、例えば、リモコン(リモコン装置、リモートコントローラー)が用いられる。制御ボード252は、制御対象シミュレータ253に対して、制御コマンドを入力するものである。制御ボード252は、制御プログラムを記憶するROMや、ハードウェア制御用のLSIを搭載しており、本実施形態に係るシミュレーション方法により検証されるソフトウェア(ファームウェアともいう)が実行される。
【0013】
制御対象シミュレータ253は、ワークのハンドリング動作を含むロボットなどのメカトロニクス機器を制御対象とする制御プログラムを用いてそのメカトロニクス機器をシミュレーションすることにより、制御プログラムの検証を行うシミュレーション装置であり、ワークとしてのウェハーをハンドリングするロボットの動きや、ロボットの関節に取り付けられたモータなどのアクチュエータの動作をシミュレートする。この制御対象シミュレータ253は、ワークのハンドリング動作を含むロボットなどの動きをシミュレートする。制御対象シミュレータ253には、シミュレーションの状況を表示するためのパソコンディスプレイなどからなる表示部(表示装置)211が設けられている。
【0014】
制御ソフト技術者は、ファームウェアが実装された制御ボード252に、実機を接続する代わりに、制御対象シミュレータ253を接続する。これにより、入力部251からの操作指令に基づいて、制御ボード252上のファームウェアが実行され、制御ボード252から制御対象シミュレータ253に対して、モータのスタートやストップなどの制御コマンドが送られる。制御対象の実機の動きは、表示部211にコンピュータグラフィックスを用いて表示される。
【0015】
制御対象シミュレータ253は、図2に示されるように、シミュレータ本体201、機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段(ワーク状態及び属性データ記憶手段)213から構成される。シミュレータ本体201は、本実施形態に係るシミュレーションを行うものであり、パソコンを用いることができる。このシミュレータ本体201は、制御コマンドを出力するメカ制御システム(ないしはシミュレータ)212に接続されている。このメカ制御システム212は、図1の入力部251と制御ボード252とに相当する。
【0016】
機構モデルデータ記憶手段202は、複数の部品の形状を表すデータと複数の部品の間の拘束関係を表すデータとからなるロボットのアセンブリモデルデータを記憶するものである。
【0017】
ダイナミクスモデルデータ記憶手段203は、ロボットが有する駆動系等の動特性などのダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部である。また、ダイナミクスモデルデータ記憶手段203は、複数、例えば2つのダイナミクスモデルからなるハイブリッドモデルのダイナミクスモデルデータを記憶する。
【0018】
ワーク状態・属性データ記憶手段213は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するものである。また、ワーク状態・属性データ記憶手段213が記憶する属性データとは、ロボットとロボットが把持する物体や障害物などとの衝突又は接触を検出する干渉チェック処理を停止するための状態遷移条件データをさす。本実施形態に係る制御対象シミュレータ253は、この属性データを参照することにより、例えば離れたところにおかれた2個の物体が、ロボットのハンドリングによって、積み重ねられると、干渉を検出する。2個の物体が積み重ねられた後、制御対象シミュレータ253は、干渉チェック処理を停止し、これにより、計算量の低減を図っている。
【0019】
機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、いずれも、記憶装置からなり、パソコンに内蔵又は増設されたハードディスクなどを用いることができる。なお、機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、データを書き込み可能なCDやDVDもしくはシミュレータ本体201から挿抜可能な小型メモリ等の記憶媒体を用いることができ、あるいはシミュレータ本体201と一体に構成したり、あるいはシミュレータ本体201から取り外し可能に構成されてもよい。
【0020】
また、シミュレータ本体201は、ダイナミクスシミュレータ205、アセンブリモデル生成記憶手段(アセンブリモデル記憶手段)204、干渉チェック手段206、状態遷移イベント検出手段209、ワーク相対位置算出手段208、幾何拘束処理手段207、ワーク状態分類記憶手段(ワーク状態記憶手段)210を備えて構成される。
【0021】
ダイナミクスシミュレータ205は、制御プログラムからの制御コマンドにしたがって、ロボットのダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するものである。すなわち、ダイナミクスシミュレータ205は、ダイナミクスモデルデータを予め読み込み、シミュレーション実行中に制御プログラムからの制御コマンドをサイクル時間ごとに読み込みながら、ダイナミクスシミュレーションを実行する。また、ダイナミクスシミュレータ205は、ハイブリッドモデルにより記述されたロボットの複数のダイナミクスモデルにしたがってシミュレーションを実行するように構成され、状態遷移イベントの発生が検出された場合は、複数のダイナミクスモデルを切り替える。ダイナミクスシミュレータ205は、ロボットのダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部としても機能する。
【0022】
アセンブリモデル生成記憶手段204は、ロボットの機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部である。アセンブリモデル生成記憶手段204は、機構モデルデータ記憶手段202の機構モデルデータを予め読み込み、アセンブリモデルデータを生成し、生成したアセンブリモデルデータを記憶する。アセンブリモデル生成記憶手段204は、指定した関節の角度などの値を取得する機能(以下ではこの機能を機構モデルアナログセンサーと呼ぶ。関節の角度などの値は、指定された関節の角度や、指定された同種間又は異種間の2つの幾何要素間の距離など、アナログ値の参照であるためこのような名前とした。物理的なセンサーが実在するわけではない。)を有しており、関節の角度などの値をロボットの機構モデルのデータとして取得する機構モデルデータ取得部としても機能する。
【0023】
干渉チェック手段206は、ロボットの左手や右手が部品搬送路に接触する状況のようなロボットと物体との干渉の有無を判定するものであり、干渉有無判定部として機能する。干渉チェック手段206は、2つの立体を指定して、指定された立体間の干渉の有無を調べる機能(以下ではこの機能を干渉チェックセンサーと呼ぶことにする。こちらも物理的なセンサーが実在するわけではない。)を有し、この機能は、アセンブリモデル生成記憶手段204を参照して幾何学的な形状の干渉の有無を判断する。干渉チェック手段206で用いられる干渉チェックアルゴリズムについては、提案されている既存の様々の手法を用いることができる。
【0024】
状態遷移イベント検出手段209は、ワークの状態遷移イベントの発生を検出するものであり、ワーク状態分類記憶手段210に記憶されているワークの状態に遷移するかどうかを判断する。本実施形態に係る状態遷移イベント検出手段209は、機構モデルアナログセンサー、干渉チェックセンサーおよびダイナミクスモデル変数を参照し、機構モデルアナログセンサーが得たデータと、干渉チェックセンサーによる干渉の有無と、ダイナミクスモデルの変数値とのうちのいずれか1つ又はこれらのすべてを論理式の形で組み合わせて評価することにより、遷移条件を判定する。
【0025】
ワーク相対位置算出手段208は、複数のワーク状態データに基づいて、状態遷移イベントの発生時におけるワークのワーク状態とそのワーク状態に関係付けられた相手立体との間の相対的な位置関係を表す位置関係データを算出するものであり、相対位置算出部として機能する。すなわち、ワーク相対位置算出手段208は、ワークの状態が遷移する際に、ワークの相対的な位置関係を算出する。
【0026】
幾何拘束処理手段207は、位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する拘束関係データ生成部である。幾何拘束処理手段207は、アセンブリモデル生成記憶手段204を参照して幾何拘束の処理を行う。
【0027】
また、ワーク状態分類記憶手段210は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部である。ワーク状態分類記憶手段210は、ワークが、ロボットの左手によって把持されるか、又はロボットの右手によって把持されるかなど、ワークが何によって把持されているかによって、ワークが取りうる状態を予め分類し、分類したワーク状態を記憶しておく。
【0028】
なお、状態遷移イベント検出手段209、ワーク相対位置算出手段208、幾何拘束処理手段207、ワーク状態分類記憶手段210の各機能は、いずれも、CPU(中央演算装置)、ROM、RAM、IC、LSIおよびハードディスクなどにより実現される。
【0029】
これにより、本発明のシミュレーション方法は、最初に、制御対象シミュレータ253が、ロボットの機構モデルについてのアセンブリモデルデータ、ダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込む。制御対象シミュレータ253は、制御プログラムからの制御コマンドを読み込んでから、ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行する。制御対象シミュレータ253は、機構モデルアナログセンサーのアナログのデータと、干渉チェックセンサーの値と、ダイナミクスモデルの変数値とに基づいて、ワークの状態遷移イベントの発生を判定する。制御対象シミュレータ253は、状態遷移イベントが発生した場合に、その状態遷移イベントの発生時におけるワークとワークの相手となる立体との間の相対的な位置関係データを算出する。そして、制御対象シミュレータ253は、この位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する。
【0030】
また、本実施形態に係るシミュレーションシステムは、本発明のシミュレーション方法をパソコン等のコンピュータに実行させるためのプログラムを保存しておくこともできる。コンピュータが、そのプログラムを読み出すことにより、制御対象シミュレータ253に処理を実行させる。制御対象シミュレータ253は、このプログラムを、ハードディスクやパソコンから取り外し可能な各種の記憶媒体に保存することができ、このようにすれば、本実施形態に係るシミュレーション方法をコンピュータに実行させるためのプログラムの保存、運搬、販売等を容易に行える。
【0031】
本実施形態に係るシミュレーションシステムにおいては、制御ソフト技術者が、制御ソフトウェアが実装されたメカ制御システム212を、実機に接続する手順と同じ手順でシミュレータ本体201に接続してソフトウェアの検証を行えるという利便性を確保しつつ、制御対象シミュレータ253が、機械技術者が予め作成しておいた制御対象モデルデータを読み込むことにより、シミュレーションが実行可能な状態となるように構成されている。この制御対象モデルデータは、機構モデルデータ記憶手段202とダイナミクスモデルデータ記憶手段203とワーク状態・属性データ記憶手段213とのそれぞれに記憶されたデータをさす。
【0032】
具体的には、機構モデルデータとは、ロボットなどの機器を構成する各部品の3次元空間内における形状データと、各部品が組み合わせられたモデルのデータとを含むものをさす。
【0033】
ダイナミクスモデルデータは、モータなどのアクチュエータの動特性に関するモデルのデータをさす。ダイナミクスモデルデータ記憶手段203は、例えばモータの速度が時間変動する状況を微分方程式などのデータとして記憶しており、ダイナミクスシミュレータ205がこの微分方程式のデータを数値積分するなどの処理を行うことにより、ロボットの挙動が表現されるようになっている。さらに詳述すると、ダイナミクスモデルデータは、所望のタイミングにおいて、ロボットの関節角が45°、90°のときにその関節がどのような形状になるか、あるいは関節角が45°や90°のときに部品供給台とアームとの衝突が発生するかなど、3次元空間における衝突の有無の状態を判断するためのものである。ワークの重さに応じた時間遅れを検証したり、空気アクチュエータのある瞬間における姿勢や、アームの姿勢の時間変動など、部品の位置、姿勢および速度を検証するためにも、ダイナミクスモデルデータは用いられる。
【0034】
ワーク状態・属性データは、本発明に特有のデータであり、ワークの取りうる各状態が、「ワークがどの立体と関係があるのか」を基準に列挙されており、それぞれの状態ごとに、複数のその状態に遷移するための条件が記述されている。例えば、ワーク状態・属性データは、ワークが、「ロボットハンドに把持されているのか」、又は「台の上に乗っているのか」という視点で、ワークの相手の立体を指定するようにして列挙されている。ワークとその相手(ロボットハンドや台など)との幾何学的な位置関係は、予め決めることができないが、本実施形態に係る制御対象シミュレータ253は、ワークとその相手との幾何学的な位置関係を定義するため、ワーク状態・属性データ記憶手段213は、この幾何学的な位置関係データを記憶する必要がない。
【0035】
上述の構成により、本発明のシミュレーション装置の動作について説明する。
【0036】
図3に示されるように、シミュレーション実行前のステップS1において、アセンブリモデル生成記憶手段204は、機構モデルデータを読み込み、この機構モデルデータから生成したアセンブリモデルデータを記憶する。機構モデルデータは、幾何学的な機構のシミュレーションに際しては、幾何拘束処理手段207および干渉チェック手段206に参照される。幾何拘束処理手段207におけるアセンブリモデルの処理手順については後述する。ステップS1においては、ダイナミクスモデルデータも、同様にシミュレーション実行開始前に読み込まれ、ダイナミクスシミュレータ205にて記憶され、アクチュエータのダイナミクスシミュレーションに利用される。
【0037】
ステップS2において、シミュレータ本体201は、メカ制御システム212からシミュレーション開始指示を受け取る。
【0038】
ステップS3において、ダイナミクスシミュレータ205は、メカ制御システム212より送られる制御コマンドを受け取る。シミュレーションが開始されると、メカ制御システム212から送られる制御コマンドのみを外部から受け取るデータとしてシミュレーションが実行される。本実施形態に係るシミュレーションシステムにおいては、メカ制御システム212からの制御コマンドに応じて、系の状態を変化させている。本実施形態に係るシミュレーションモデルは、バルブ、バネおよびピストンからなる空気アクチュエータを含むものである。このシミュレーションモデルは、常微分方程式系で表現できる連続系のモデルではあるが、イベントの発生とともに、空気アクチュエータ内の空気の流れを右側又は左側のいずれの方向からも選択可能にしており、モデルを表現する式を入れ替えることが可能なハイブリッドモデルを採用している。
【0039】
このため、ステップS4において、ダイナミクスシミュレータ205は、ダイナミクスモデルの内部状態の切り替えの要否を判定し、内部状態がダイナミクスモデルに対応していない場合には、noルートを通り、ステップS6に進む。ステップS4において、内部状態がダイナミクスモデルに対応している場合、ダイナミクスシミュレータ205は、yesルートを通り、ステップS5において、ダイナミクスモデルの内部状態を切り替えてからステップS6に進む。なお、ハイブリッドモデルによってアクチュエータの挙動がどのようにシミュレーションされるかについては後述する。
【0040】
本実施形態に係るシミュレーションは、時間軸に沿って、サンプリング時間など、予め決められた時間の差分Δtごとに時間を進めて実行される。ステップS6において、ダイナミクスシミュレータ205は、関節の角度などについては、モータの特性に基づき例えば数値積分処理を行って算出する。ダイナミクスシミュレータ205が時間を1ステップ(Δt)進めると、そのΔtごとに状態遷移イベント検出手段209を起動する。
【0041】
ステップS7において、状態遷移イベント検出手段209は、ワーク状態分類記憶手段210に記憶されているワーク状態ごとに記憶されている状態遷移条件を参照する。状態遷移イベント検出手段209は、その状態遷移条件の内容に対応して、ダイナミクスシミュレータ205を参照し、指定された変数の値の取得処理の実行、ないしは干渉チェック手段206を起動して干渉の有無の問い合わせ処理の実行、ないしは幾何拘束処理手段207にアクセスして指定した関節の角度などの値を取得する処理を実行する。
【0042】
以下では、説明の便宜上、ダイナミクスシミュレータ205を参照して指定された変数の値の取得処理を、「ダイナミクスモデル変数値の参照」と呼ぶことにする。干渉チェック手段206を起動して干渉の有無の問い合わせ処理を行うことを、「干渉チェックセンサーの参照」と呼ぶことにする。この干渉チェックセンサーの参照とは、実際の立体同士の幾何学的な干渉をチェックする処理のほかに、フォトセンサーの光ビームを3次元形状として予め定義しておき、このビーム形状と他の立体の形状との幾何学的な干渉の有無を調べるためにフォトセンサーのオン又はオフをチェックする動作をも含める。また、幾何拘束処理手段207にアクセスし、指定した関節の角度などの値を取得する処理は、指定された関節の角度や、指定された同種間又は異種間の2つの幾何要素間の距離など、アナログ値の参照であるため、この処理を「機構モデルアナログセンサー(機構モデル・アナログ値センサー)の参照」と呼ぶことにする。
【0043】
ステップS8において、さらに、状態遷移イベント検出手段209は、これらのダイナミクスモデル変数値の参照、干渉チェックセンサーの参照、および機構モデルアナログセンサーの参照の各実行結果に基づき、これらの値又は実行結果の組み合わせからなる論理式を評価し、状態遷移イベントが発生しているか否かの判断をする。
【0044】
ステップS8において、状態遷移イベントの発生が検出されると、yesルートを通り、ステップS9に進む。ここで、その状態遷移イベントに対応する状態においてワークと一体に動くべき立体が、ワーク状態分類記憶手段210に記憶されているため、ステップS9において、状態遷移イベント検出手段209は、ワーク相対位置算出手段208を起動し、ワーク相対位置算出手段208は、ワークの相対位置を算出する。
【0045】
さらに、ステップS10において、ワーク相対位置算出手段208が幾何拘束処理手段207を起動し、この幾何拘束処理手段207が、ワーク状態分類記憶手段210を参照し、ワークと一体に動くべき立体と状態遷移イベントが発生したタイミングにおける位置関係とによって、幾何学的に固定された関係を定義する。また、幾何拘束処理手段207は、ステップS10において、冗長な幾何拘束関係を削除する。換言すれば、ワークの相手となる立体との相対的な位置関係を、ワーク相対位置算出手段208が算出し(ステップS9)、その算出結果である相対的な位置関係に基づいて、幾何拘束処理手段207が、幾何学的な固定関係を定義する(ステップS10)。
【0046】
これにより、アセンブリのモデルとしては、新たな関係の定義がなされ、異なる挙動を示すことになり、ワークのハンドリング動作が再現される。この新たな幾何学的な関係の定義処理など(ステップS10)が終了した場合、あるいはステップS8において、状態遷移イベントが発生しないと判定された場合(noルート)には、表示部211は、アセンブリ(機構モデル)の状態を、コンピュータグラフィックスにより表示する。これにより、制御ソフト技術者は、ワークがどこまで動いたか等の動きについて、時間軸上でどのように動いているか、あるいは、所望の時間における部品の位置、姿勢又は速度を検証したり、時間をシフトさせたときの部品の相対関係等を検証する。
【0047】
ステップS11において、ダイナミクスシミュレータ205は、時刻が予め決められたシミュレーション時間に到達したか否かを判定し、時刻が終了時間に到達してない場合には、yesルートを通り、ダイナミクスシミュレータ205は、さらに時間をΔt進める処理に進む。また、ダイナミクスシミュレータ205は、ステップS11において、時刻が予め決められたシミュレーション時間に到達したと判定した場合は、noルートを通り、シミュレーションを終了させる。この間、サンプリング時間Δtの間のシミュレーションが行われ、終了時間が到来するまで、又は操作者からのシミュレーション中断操作があるまでシミュレーションが実行される。
【0048】
このように、本発明によれば、制御ソフト技術者が制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【0049】
以下、上記一連の処理手順の各処理の詳細についてさらに詳しく説明する。
【0050】
(a)アセンブリモデルの表現および作成の方法について
本実施形態に係るアセンブリモデル生成記憶手段204におけるアセンブリモデルの表現および作成の各方法は、例えば本発明者による特許3643504号公報「アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体」に記述された考え方を用いることができる。図4に示されるような部品1、2、3からなるアセンブリモデルを作成する場合を例にして説明する。本実施形態に係るシミュレーションシステムは、部品1、2、3の各形状データを、例えばコンピュータの入力装置を用いてファイルより読み込み、記憶装置に記憶させる。このとき、読み込まれた各部品は、表示部211によって例えば図4に示されるように表示される。
【0051】
部分形状間の関係について入力すべき関係がある場合には、部分形状とその関係とを、上記入力装置を用いて入力し、上記記憶装置に格納する。例えば図4に示される部品1、2、3からアセンブリモデルを作成するために、部品1と部品2とに関して、部品1の部分形状である平面4と部品2の部分形状である平面6とが一致し、かつ部品1の部分形状である円筒面5と部品2の部分形状である円筒面7とが同軸であるという関係が入力される。同様に部品2と部品3とに関しては、部品2の部分形状である平面8と部品3の部分形状である平面10とが一致するという関係、および部品2の部分形状である平面9と部品3の部分形状である平面11とが一致するという関係がそれぞれ入力される。
【0052】
このように入力された関係が記憶装置においてどのように記憶されるかを模式的に示した例を図5に示す。図5から分かるように、記憶装置においては、部品1、2、3の情報および部分形状の情報のほかに、平面同士の一致関係12、14、15および同筒同士の同軸関係13がそれぞれデータとして存在している。
【0053】
次に、記憶装置に格納された情報に基づいて、ワーク相対位置算出手段208(図2)は、部品1、2、3の相対的位置関係を算出する。この相対的位置関係を算出する機能は、一般にソフトウェアとして提供されており、例えば英国D・Cubed社の3D−DCM(商品名)は、そのようなソフトウェアの一例である。以下、このようなソフトウェアを「幾何拘束処理ライブラリ」とも呼ぶことがある。具体的には、各部品には、部品特有のローカル座標系が設定されており、このローカル座標系と、アセンブリモデルを作成すべき空間に固定されたワールド座標系との間の変換マトリクスという形で上記相対的位置関係が表現される。すなわち、図5に示される部品間の関係12、13、14、15から、部品1と部品2および部品3との位置を表現する変換マトリクスが上記幾何拘束処理ライブラリによって自動的に計算される。
【0054】
ここでは、幾何拘束処理ライブラリの処理内容を2次元の簡単な例でさらに詳しく説明する。図6に示されるように、ワールド座標系101で示される空間には、部品102と部品103とが存在する。今、部品102の部分形状である直線104と部品103の部分形状である直線105とを一致させて、部品102と部品103との位置を計算することを考える。まず、直線104は、部品102のローカル座標系において、
【数1】
【0055】
と表現されている。また直線105は部品103のローカル座標系において、
【数2】
【0056】
という方程式で表現されている。部品102の位置を示すワールド座標系から部品102のローカル座標系への変換マトリックスは、
【数3】
【0057】
であり、ワールド座標系から部品103への変換マトリックスは、
【数4】
【0058】
であるとする。このとき、直線104のワールド座標系における方程式を、
【数5】
【0059】
とし、直線105のワールド座標系における方程式を、
【数6】
【0060】
とすると、これらの関係は以下のような連立方程式、
【数7】
【数8】
【数9】
【数10】
【0061】
で表される。
【0062】
一方、2つの直線が一致する条件は、
(1)一方の直線上の一点が他の直線上にある
(2)方向ベクトルが平行(外積が0)
の2つの幾何学的条件と等価である。これをワールド座標系において表現すると、
【数11】
【0063】
となる。この条件を加えて方程式を解くことにより、直線104と直線105とが一致する条件を満たす部品102および部品103の位置が算出される。方程式を解く都合からsinθとcosθとをそれぞれsとcとおくと、以下のような連立方程式になる。すなわち、
【数12】
【数13】
【数14】
【数15】
【数16】
【数17】
【0064】
という2次の連立方程式になる。これらの2次の連立方程式には、12の独立な式があり、直線104と直線105とのローカル座標系における各直線の方程式を表す8つの定数x1,y1,x2,y2,a1,b1,a2,b2が含まれる。変数の数は16であり、このうち求めたいものは部品102と部品103との位置を示すパラメーターc1,s1,c2,s2,α1,β1,α2,β2である。これらのc1,s1,c2,s2,α1,β1,α2,β2の値を求めるためには、上記2次連立方程式から8つの定数x1,y1,x2,y2,a1,b1,a2,b2と、変数のうちのパラメーターc1,s1,c2,s2,α1,β1,α2,β2と異なる他の変数とを消去すれば良い。このように変数を消去する方法としては、多項式イデアル(Polynomial ideal)のグレブナー基底(Groebner basis)を求めるブッフバーガーアルゴリズム(Buchberger algorithm)が知られているので、この方法を用いて不要な変数を消去してからc1,s1,c2,s2,α1,β1,α2,β2の値を求めてもよいし、上記2次連立方程式の定数を代入して直接解いてもよい。いずれにしても、式の数よりも変数の数が4多いことから、式として4自由度があることが分かる。この式は、ワールド座標系において定義されており、今注目している点が2つの部品の相対位置関係であることに注意すれば、どちらか一方の部品の位置を固定しても構わないため、例えば部品102を固定するとして、c1,α1,β1を定数とすると、式の数よりも変数が1つ多いことになり、相対的な自由度は1あることが分かる。部品103の位置を算出するためには、c2,s2,α2,β2の値のうち1つを定数として決めて(現在の値に固定して)、他の値を求めればよい。また一般に、拘束条件が実現できないような状況(例えば2つの直線が平行でかつ垂直である)で定義されている場合は、連立方程式に解が存在しなくなるため、この状況は検知可能である。このように、幾何拘束処理ライブラリは、与えられた拘束関係を代数的な式として表現しなおして、処理を行う。
【0065】
再び図5に戻り、説明を進める。
【0066】
上述の各部品の部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように、算出された部品間の相対的位置関係(アセンブリモデル)の一例を図7に示す。この図7に示される相対的位置関係は、自動的に計算された部品の変換マトリクスを、部品の形状データに作用させて(形状データを用いて変換して)得られた部品の位置を示している。
【0067】
この図7からも分かるように、上述のようにして求められたアセンブリモデルは、部品間の相対的位置関係を完全に決定するだけの拘束関係を一般的に有しているとは限らない。例えば、部品1と部品2との間で相対的な回転16を行っても、また、部品2と部品3との間で相対的に平行移動17を行っても、依然として図5に示される関係はすべて保たれている。すなわち図7に示されるアセンブリモデルは、回転自由度16と、並進自由度17とを有している。
【0068】
一方、機構解析などの分野においては、機構の自由度を規定するパラメーターにより運動を記述する。すなわち図7の例においては、回転16の回転自由度に対応する回転角と、平行移動17の並進自由度に対応する平行移動距離との2つのパラメーターがこれに対応する。
【0069】
これらのパラメーターを規定するための部分形状の例は、図4に対応して図8に示されるようになる。符号18,19は、それぞれ、円筒面の中心軸と直交する方向ベクトルを表す直線である。これらの直線18,19はともに円筒面に剛体接続されているとする。同筒同士が同軸という拘束関係があれば、上記直線18,19同士の角度を新たな拘束関係として付加することにより、この角度が回転自由度のパラメーターとなる。従って、このような直線18,19は円筒の形状ないしは位置姿勢を表す要素であるため、本発明は、直線18,19を部分形状と定義する。
【0070】
また、図8において、符号20,21は、それぞれ、部品2,3上の頂点である。これらの頂点20,21は平面同士が一致するという拘束関係が既に定義されている平面の部分形状ではないが、平面上の幾何要素でもあり、幾何学的又は位相的に関係している。このため、部品2の平面8と部品3の平面10とが一致している拘束関係の下で、各々の平面上の同一直線上の頂点20,21間の距離を新たな拘束関係として付加することにより、この距離が並進自由度のパラメーターとなる。
【0071】
図5に示されるアセンブリモデルに、図8に示される直線18,19のなす角度と、頂点20,21間の距離とを新たな拘束関係22,23として付加したときに記憶装置に記憶されている様子を図9に示す。図9に示されるように、各部品の部分形状と、部分形状間の拘束関係とに加えて、関節など駆動部を定義するために導入された新たな拘束関係とが記憶装置に記録される。
【0072】
機構解析を行う際には、図8に示される直線18,19のなす角度と、頂点20,21間の距離とをモータなどのアクチュエータに対応させることにより、アクチュエータパラメーター(モータの角度など)の変化から、機構の動きを求めるような簡単な機構解析は、以下のようにそのまま実行することも可能である。すなわち、以上の手順で決定された機構パラメーターに対して、ある時刻における値が与えられると、幾何拘束処理ライブラリは、個々の部品の3次元又は2次元空間における位置および姿勢を決定し、位置および姿勢を時刻の刻み幅にあわせて順次変化させるのである。これにより、機構としての動きをシミュレーションとして確認するなどの作業を行うことが可能になる。
【0073】
また、2つの回転軸が歯車で結合されているような場合には、上記図8に示される直線18,19のなす角度のような角度パラメーター同士の関係を、歯車の歯数比を係数とする1次式として表現すればよい。すなわち、本実施形態に係る制御対象シミュレータ253は、歯車のような機構をも多項式で表現できるため、幾何拘束処理ライブラリが、与えられた拘束関係を代数的な式として表現しなおして扱う方法と同じ方法を用いて統一的に処理、演算を行うことが可能である。具体的には、アセンブリモデル生成記憶手段204は、歯数比を係数とする1次式を連立方程式に加えればよく、歯車を加えることで、全体として自由度が1つ減少することも、立体間の自由度を計算した手法と同じ手法により拘束関係を算出できる。
【0074】
上記のようなアセンブリモデル生成記憶手段204のアセンブリモデルの作成方法により、本実施形態に係る制御対象シミュレータ253は、例えば製造装置の搬送機構やロボットの機構のモデルを表現し、その幾何学的な動きをシミュレーションすることが可能になる。図1に示される機構モデルデータ記憶手段202は、このアセンブリモデルの作成方法により作成されたデータである。
【0075】
本発明においては、さらに、搬送機構やロボットがハンドリングする対象物であるワークの動きをシミュレーションできるように、以下のような処理を行う。一例として、半導体製造装置内のロボットがハンドリングするウェハーがハンドリング対象のワークである。
【0076】
まず、本実施形態に係る制御対象シミュレータ253は、ロボットがワークを把持するような、ワークの状況を、ワークが何によって把持されているかによって分類する。すなわち、ワーク状態分類記憶手段210は、ワークがどのような状態を取りうるかを予め分類して記憶しておいたデータファイルを読み込む。あるいは、制御対象シミュレータ253は、マウスやキーボードなどの入力機器を用いてワークの状態を入力するなどを行い、入力したワークの状態を一旦データファイルとして保存し、そのデータファイルを読み込むことにより、データファイルをワーク状態分類記憶手段210に記憶する。
【0077】
図10に、多関節のロボット30が部品供給台32の上におかれたワーク31をハンドリングする状況の一例を示す(本例題は、制御対象シミュレータ253を用いてシミュレーション可能なものである)。この図10に示されるロボット30は、ハンド(ロボットハンド)37、アーム39、41、43、関節部40,42からなるアクチュエータ機構を有するモデルである。このアクチュエータ機構のまわりには、ロボット30の作業スペース分を空けて床面と略平行に並置された外観略箱形の部品パレット34,36と、部品パレット34,36をそれぞれ左右に搬送する搬送機構33,35とが設けられている。アーム43は、その一端が床面内で旋回自在に支持されるとともに、搬送機構33,35に沿って移動可能に構成され、さらに、他端が関節部42を介してアーム41の一端に回動可能に接続されている。また、アーム41の他端は、関節部40を介してアーム39の一端に回動可能に接続されており、アーム39の他端には、ワーク31を把持するハンド37が装着されている。関節部40,42は、いずれも、図示しないモータによって駆動されるようになっている。さらに、関節部40,42には、可変抵抗器からなる角度センサーが取り付けられており、アーム39,41の関節角およびアーム41,43の関節角は、いずれも、角度センサーが抵抗値の変化により計測し、検知可能にされている。本発明は、この角度が所定値以上になったときに、状態を変更すると予め記述されており、また、その角度の大きさは、位置関係により、予め計算されて取得される。
【0078】
ここで、ワーク31は、部品供給台32の上におかれるか、又は部品パレット34もしくは部品パレット36におかれるか、又はハンド37に把持されているかの4つの状態が想定される。部品パレット36上のどの位置にワーク31がおかれるかなどのことは、シミュレーションを実行しないと決定できないため、位置情報は予め登録することはできないが、本例題においては、ワーク31について上記4つの状態を取り得ることが、ワーク状態分類記憶手段210に記憶される。
【0079】
ワーク状態分類記憶手段210に記憶された4つのそれぞれのワーク状態に対して、本実施形態に係る制御対象シミュレータ253は、さらに、4つの状態に遷移する条件を定義する。遷移条件をどのように表現するかについては、その詳細については後述するが、例えば、部品供給台32と部品であるワーク31との幾何学的な接触が検出されたタイミングで、「ワーク31は部品供給台32の上におかれた状態に遷移する」といった状態遷移条件を定義しておく。すなわち、シミュレーション開始前に、ワーク31の4つの状態が列挙されており、4つの各状態への遷移条件が予め定義されるようにしておき、シミュレーション開始後の実行時に、ワーク31が4つの状態のうちのどの状態を取るのか、およびその状態における位置関係がどのようになるのかが、後述のとおり自動的に計算される。
【0080】
このように、本実施形態に係る制御対象シミュレータ253は、シミュレーション実行前に定義すべきデータと実行時に自動計算されるデータとを明確に分離している。従って、シミュレーション実行前に定義すべきデータは、例えば機械系の技術者が用意し、シミュレーションを使ってソフトウェアのチェックやデバッグを行う制御ソフト技術者は、不慣れなワークの状態の設定などに煩わされることなく、制御ソフトウェアの内容に集中できる。
【0081】
以下では、シミュレーション実行前に定義されたデータを用いて、シミュレーションがどのように実行されるかを、図10から図13を参照して一連の動作を説明する。
【0082】
図10の状況は、初期状態を示しており、ワーク31が部品供給台32におかれている。ロボット30は、各関節部40,42を駆動するモータへのコマンド実行や電圧印加などにより、図11に示される位置まで移動する。ここで、ハンド37とワーク31との間で幾何学的な干渉が検出されたときに、ワーク31がハンド37に把持される状態に遷移する、と条件が決められていると、図11の状況で、ワーク31の状態が変化する。ハンド37とワーク31との間で幾何学的な干渉検出のイベントが発生したタイミングで、状態が遷移するため、ワーク相対位置算出手段208は、指定された状態において相手となる立体(この場合はハンド37)との相対的な位置関係を計算する。3次元空間の位置関係は、関係を定義する一方の立体のローカル座標系から、他方の立体のローカル座標系への変換マトリックスとして表現される。3次元立体の場合は、4×4のマトリックスになり、現在のローカル座標系のグローバル座標系との変換マトリックスから計算できる。この4×4マトリックスは、2つのローカル座標系の間の幾何拘束となり、内部においては、図6の例を用いて説明したように、4×4マトリックスの要素を係数とする1次式として表現されている。
【0083】
ワーク31がハンド37に上記4×4マトリックスに対応する幾何拘束関係によって固定され(新たな座標系に取り込まれ)、これまでワーク31と部品供給台32との間に定義されていた幾何拘束又は関係がキャンセルされると、ワーク31はロボット30の動きに追従して動くことになる。
【0084】
図12の状況は、ロボット30が動いて、ワーク31が部品パレット36の上に移動した状態である。この状況は、ワーク31と部品パレット36との間の干渉チェックが検出されたことを示すイベントとして検知される。このときに、ワーク相対位置情報算出手段208により、ワーク31の部品パレット36からの相対位置、すなわち、部品パレット36のローカル座標系からワーク31のローカル座標系への変換マトリックスが算出される。そして、ワーク31とハンド37との間の幾何拘束がキャンセルされ、ワーク31と部品パレット36との間の幾何拘束が付加されて、ワーク31が部品パレット36の上におかれた状況に移行する。
【0085】
図13の状況は、ワーク31および部品パレット36が一体となってさらに移動した後の状況を示している。ワーク31は、幾何拘束により部品パレット36に固定されているので、部品パレット36とともに移動している。
【0086】
このようにして、シミュレーション実行前に定義されたデータを用いて、シミュレーションが実行される。
【0087】
以上は、ロボットなどのアセンブリモデルの表現およびシミュレーションと、ワークの扱いに関する3次元空間(ないしは2次元平面)内での機構的なモデル化とについての説明であった。
【0088】
(b)モータなどの特性表現について
次に、モータなどの特性表現について説明する。モータなどアクチュエータなどのモデル化では、加速や減速など時間軸上でどのような挙動をするかかの検証が重要であり、ダイナミクスの表現が必要となる。
【0089】
本実施形態に係る制御対象シミュレータ253は、ハイブリッドモデリング言語により、系を常微分連立方程式として表現する方法を用いる。ハイブリッドモデリング言語の具体的な細かな仕様および基本的な考え方については、発明者の論文「Use of hybrid models for testing and debugging control software for electromechanical systems」(IEEE/ASME Trans. Mechatronics, Vol.10, No.3, pp.275-284)に詳しく記述されている。
【0090】
単純なDC(直流)モータモデルの例と、そのシミュレーション結果の一例を図14に示す。
【数18】
【数19】
【数20】
【数21】
【数22】
【0091】
式20から式22が切り替えられる。
【0092】
ここで、モータの回転速度が上がるに伴って、コイルに逆起電力が生じ、加速が鈍って定速で回転するとしてモデル化し、上記のような微分方程式が得られている。なお、x1はモータ回転角、x1''およびx1'はそれぞれx1の2階微分および1階微分、b1は立ち上がりの急峻さを規定するパラメーター、a1は定常回転速度をそれぞれ表す。a1についての3つの式は、それぞれ、モータが正転モード、逆転モード、停止モードのいずれであるかによって切り替えられる。
【0093】
このようなハイブリッドシステムを記述する言語として他に知られているものとして、米国Xerox社のPalo Alto 研究所で研究され、発展研究が米国NASA Ames研究所で行われているHCC(Hybrid Concurrent Constraint Programming:ハイブリッドコンストレイントプログラミング)という言語がある。これは、制約処理プログラミング(コンストレイントプログラミング)と呼ばれる技術の一種であり、モデルを表現する微分方程式や代数方程式を制約と考え、これらの方程式をそのまま順不同で記述する。これに状態遷移を制御するプログラムを付加してモデルを完成させる。方程式をそのまま制約として羅列してプログラムとすることができる点は便利ではある。半面、これは一種のプログラミング言語であり、複雑なモデルを記述することができるが、コンストレイントプログラミングの理解が必要となり、プログラム言語として難解なため、プログラム作成能力習得が難しい。
【0094】
MathWorks社のMatlab(商品名)製品群は制御技術者などを中心によく使われているソフトウェアツールであり、ハイブリッドモデルで表現されるモデルを等価的に記述することが可能である。しかし、例えば微分方程式をそのまま連続系の記述することはできず、微分方程式の内容を分析して積分要素などの要素を組み合わせたブロック線図として定義しなおす必要がある。
【0095】
以下では、本発明によってハイブリッドモデルがどのように入力され、結果を出力できるかを具体的な例題により説明する。本例題も、本実施形態に係る制御対象シミュレータ253を用いてシミュレーションされるものである。まず、図15から図21を参照して簡単な例題を説明する。
【0096】
図15に示される機械装置は、バルブ301とバネ303とピストン302とからなる空気圧式のアクチュエータ機構のモデルである。エアシリンダの側面には、エアシリンダの内部と外部とを連通する通気穴が左右2箇所に形成されており、また、エアシリンダ本体に、圧縮空気を左通気路と右通気路とに切り替えて吸気させる構造を有するバルブ301が設けられている。エアシリンダ内には、先端に気密兼左右摺動自在な圧力板が固定されたピストン302が装着されている。バルブ301は、外部からの指令により、圧縮空気の流れを右側(以下Rightと呼ぶ)又は左側(以下Leftと呼ぶ)に切り替え可能になっている。以下の説明では、RightおよびLeftを状態、イベント又は変数の意味で使用することがある。
【0097】
図15の状況では、バルブ301がRightの状態であるため、右通気路からの空気が、エアシリンダと圧力板とにより形成される右室内に供給され、ピストン302には左向きの力がかかる。この状態を示す運動方程式は、
【数23】
【0098】
となる。
【0099】
図16の状況は、さらにピストン302が左方に移動し、圧力板がバネ303に当接した状態である。この状態においては、バネ303による反力が発生するため、別の運動方程式により状態が記述される。
【数24】
【0100】
図17の状況は、バルブ301がLeftにされた状態であり、左通気路からの空気が、エアシリンダと圧力板とにより形成される左室内に供給され、ピストン302には右向きの力がかかる。空気の流れの向きが変わるため、さらに別の運動方程式が用いられる。
【数25】
【0101】
図18の状況においては、圧縮されたバネ303の弾発力と左室内の空気圧とが、右室内の空気圧に勝り、これに連動して、ピストン302が右方に移動する。この状態は、バネ303からの反力がなくなった状態であり、さらに別の運動方程式により記述される。
【数26】
【0102】
図19は、以上の状態変化と各状態に対応する運動方程式とを状態遷移図として表現したものである。ハイブリッドモデルは、図19(a)から図19(d)に示されるように、状態遷移と各状態との記述が、微分方程式や代数方程式により表現される。
【0103】
図20は、図19の例をさらに簡略化して示す図である。図19(a)から図19(d)に示される状態遷移図の作成用に入力されたデータが、どのようにモデルの記述に出力されるかを平易に説明するため、ここでは、2つの状態と2つの状態間の状態遷移とを考える。図21に、図20のモデルの内容をHCCにより記述した例を示す。図21の(1)、(2)、(5)は、それぞれ、図15〜図18に示される機械装置の初期状態やバルブ操作のタイミングなどの運転条件を記述しており、(3)、(4)はともに図20(a)、図20(b)の状態遷移を表現したものである。HCCにより、運動方程式はそのまま記述可能である。各状態へ遷移する条件は、最初の「always if」の次に記述され、また、各状態から遷移する条件は、最後の「watching」の後に記述される。
【0104】
ハイブリッドコンストレイントプログラミング言語で記述されたモデルにおいては、プログラムの記述の順序(図21の(1)〜(5)の順序)に沿って実行されるわけではない。個別のプログラム記述のうち、シミュレーションを実行する時間軸に沿って成立するものが探索されて実行されるため、(1)〜(5)の順序は関係がない。例えば、シミュレーションを開始した時点では、(1)および(5)のみが有効である。開始時点において、イベントRightが(1)により発生するため、(4)の前提条件であるRightが有効となる。従って、(4)の第2の運動方程式が有効となり、図20(a)に示されるような左側の状態としてシミュレーションが実行される。また、図21において、時間が50となると、(2)が有効となり、イベントLeftが発生し、(4)の遷移条件(「watching」以降の条件)が有効となり、(4)の運動方程式が無効となる。(4)に代わり、(3)の前提条件が有効となり、第1の運動方程式が有効となる。
【0105】
(c)搬送システム33、34が空気アクチュエータで駆動されるモデルについて
次に、図11の搬送システム33、34が、上記空気アクチュエータにより駆動されるモデルについて説明する。このような駆動機構は、モータとボールネジとの組み合わせなどにより実現されることが多いが、簡略化した状況を想定する。
【0106】
搬送システム33、34の移動量をそれぞれx1、x2とすると、搬送システム33、34のそれぞれの運動は、図21のプログラムにおいてxをそれぞれx1、x2に書き換えることにより表現できる。さらなる正確な表現のために、f、m、Right、Leftなどの変数やイベントも、いずれかのピストンであるのかを表すサフィックス1又は2を付して説明する。
【0107】
メカ制御システム212(図1)は、制御対象シミュレータ253に対して、図20(a)又は図20(b)のモデルに対応するRight1、Left1又はRight2、Left2と表されるバルブ切り替えのための制御コマンドを送る。これにより、ダイナミクスシミュレータ205は、これらの制御コマンドが送られたタイミングとモデルとにより表現された微分方程式などを用いてピストンの左右の動きを算出する。従来のシミュレーション作業は、ロボットのオフラインプログラミングシステムにおいて、例えばロボットのハンド37の先端位置が追従すべき軌跡が曲線として与えられ、それに沿った動きを生成するものである。従って、本発明が対象とする制御ソフトウェアの設計および検証の作業は、従来のシミュレーション作業とは大きく異なるといえる。
【0108】
さらに、本発明によれば、ロボットの関節に上記DCモータなどのモデルを当てはめることにより、時間の経過とともにピストンやモータの移動量が算出され、また、これらの移動量をアセンブリモデルへの入力とすることにより、3次元空間内での動作のシミュレーションが実行できる。
【0109】
(d)ワークの状態遷移条件について
上述したように、アセンブリモデルの実現方法、ハンドリングされるワークの扱い方、およびアクチュエータのハイブリッドモデルなどによりモデル化方法などを説明した。次に、ワークの状態遷移条件について詳しく説明する。
【0110】
ワークの状態遷移条件は、機構モデルアナログセンサー(機構モデル・アナログ値センサー)の値、干渉チェックセンサー、ダイナミクスモデル変数の値およびこれらの組み合わせにより表現される。機構モデルアナログセンサーは、アセンブリモデルにおいて、指定された関節の角度を計測することなどに相当する。メカ制御システム212に接続するような実際の機械又は機器においては、4節リンク機構において、モータのない関節に取り付けられたポテンショメータを用いて、関節の角度を計測するような例が相当する。アセンブリモデルによるシミュレーションは、計測する関節の角度などの変数を含む連立代数方程式とし、この方程式を解くことにより、機構モデルアナログセンサー値を求めるようにする。
【0111】
また、一定時間ごとに部品を自動的に供給する機構をもつモデルをシミュレーションする場合に、状態遷移のタイミングの基準として、時間が用いられることがある。この場合、操作者は、制御対象シミュレータ253に予め条件を指定したうえで制御対象シミュレータ253を動作させる。すなわち、本実施形態に係るシミュレーションシステムは、ワークである部品の初期状態を、表示部211に表示させず、かつロボットの周囲との干渉チェックの対象にしないという属性を指定しておき、この属性の指定に加えて、シミュレーション開始後、決められた時間になった時点で部品供給台の上に、部品を表示部211に表示させるという条件で制御対象シミュレータ253を状態遷移させる。これにより、自動供給される部品を扱う機械の動作をシミュレーションすることができる。
【0112】
時間は、時間軸上でダイナミクスシミュレーションを行う場合に必須の変数又は特殊変数であるため、ダイナミクスシミュレータ205においては、組み込み済みの予約変数となっている。従って、制御対象シミュレータ253は、ダイナミクスシミュレータ205の変数として利用することにより、時間を使用した条件をシミュレーションすることができる。
【0113】
また、アセンブリモデルの3次元形状を用いた計算コストの大きい干渉チェックセンサーを用いずに、所望のアクチュエータの値を参照することによって条件を表現できる場合がある。図10などの例では、部品パレット36の位置は、アクチュエータとしてのロボット30の移動距離x2で表現できる。このx2は、ロボット30の移動距離であるため、ダイナミクスモデル変数である。
【0114】
さらに、条件の一つとして、ワーク31の重心位置を、ワールド座標系の原点とのx方向、y方向、z方向の機構アナログセンサー(距離センサー)としておくことにより、制御対象シミュレータ253は、ワーク31と部品パレット36との相対的な位置関係を表現し、ワーク31が部品パレット36上におかれた状態であるか否かを判断することができるようになる。
【0115】
さらに、ロボット30やワーク31の移動速度が、一定値以下という条件が必要な場合、制御対象シミュレータ253は、ダイナミクスモデル変数を参照する。このため、本発明は、機構モデルアナログセンサーの値、干渉チェックセンサーの値、ダイナミクスモデル変数の値を参照する構成に加え、さらにこれらを論理式(論理和又は論理積)の組み合わせにより、複雑な条件を表現できるようにしている。これにより、本実施形態に係る制御対象シミュレータ253は、タイミングが重要な制御ソフトウェアの検証のためにシミュレーションにおいて、シミュレーション目的に適合する状態遷移条件の表現を行うことができ、また、3次元の幾何学的な形状情報のみならず、時間的な要素も含む内容も含むシミュレーションが可能となる。以下に、本実施形態に係るシミュレーションシステムの状態遷移条件の一例を示す。
【表1】
【0116】
ここで、タイプ1からタイプ9までのセンサーチェック条件は、各々、機構モデルアナログセンサーの値、ないしは干渉チェックセンサー、ないしはダイナミクスモデル変数の値を参照する単独の条件である。各センサーチェック条件は、遷移条件の要素として機能する。このセンサーチェック条件に加えて、本実施形態に係る制御対象シミュレータ253は、1又は複数のセンサーチェック条件のAND結合条件とOR結合条件とを定義し、状態遷移条件を、木構造を用いて表現することにした。
【0117】
状態遷移条件は、図22に示されるように、0番から5番までの6つの要素により表現される。0番の要素は、Poten1と表現される機構モデルアナログセンサーの参照処理であり、制御対象シミュレータ253は、変数Poten1が10以下(タイプ1)と定義しておく。3番の要素は、干渉チェックセンサーのオン又はオフのチェックであり、制御対象シミュレータ253は、変数CSen1がオンになると定義しておく。制御対象シミュレータ253は、4番の要素のように、変数Work2が終了状態(タイプ9)とワークの状態を指定することにより、例えば、1つのワークの処理を終えると、次のワークが供給されるような状況を記述できる。
【0118】
制御対象シミュレータ253のワーク状態分類記憶手段210は、ワークが取り得る複数の状態を予めワーク状態・属性データ記憶手段213から読み込み、これらの複数の状態のいずれかに遷移するための状態遷移条件を、(Poten1が10以下でありかつ時間が30以降)又は(CSen1がオン)又は(Work2が終了状態)と定義し、状態遷移条件データを、属性データとして、ワーク状態分類記憶手段210自身に記憶しておくのである。換言すれば、属性データとは、0番から5番の各要素又は各要素の組み合わせからなるデータである。
【0119】
さらに詳述すると、状態遷移イベント検出手段209は、Poten1が10以下であるという要素が成立するか否かを機構モデルアナログセンサーの参照結果により判定する。状態遷移イベント検出手段209は、時間が30以降であるという要素が成立するか否かをダイナミクスシミュレータ205の変数を参照することにより判定する。状態遷移イベント検出手段209は、CSen1がオンであるという要素が成立するか否かを干渉チェックセンサーの値により判定する。また、状態遷移イベント検出手段209は、Work2が終了状態であるという要素の成立について、ワーク状態分類記憶手段210を参照することにより判定する。状態遷移イベント検出手段209は、4つの要素の組み合わせからなる状態遷移条件が成立するか否かを判定する。状態遷移イベント検出手段209は、状態遷移条件が成立したタイミングで、イベントが発生したと判定し、状態が遷移したことを認識する。このようにして、状態遷移イベント検出手段209は、ワークについて、その相手立体の変更を指令する。
【0120】
また、例えば、ハンド37がワーク31を把持している状態から、ワーク31が搬送機構33にのせられた状態に遷移した場合、状態遷移イベント検出手段209は、ワーク31と搬送機構33との干渉のチェック処理を停止させたり、干渉チェックの表示を停止させる。これにより、干渉チェックに要する冗長な計算処理が省かれるため、計算処理の高速化が図れる。
【0121】
以上説明したように、本発明のワークハンドリングシミュレーション方法によれば、制御ソフト技術者が制御ソフトウェアを実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証などを行うことができる。また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【0122】
開発現場において、ワークのハンドリングを含む製品の試作品や制御ボード252は、設計データから試作品の完成に至るまでにある程度の時間を要する。本発明によれば、制御ソフト開発者は、試作品の試作中に併行して、設計データに基づいて、製品のシミュレーションが行えるため、設計の後戻りが生じない。
【0123】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記のシミュレーションモデルは、空気圧アクチュエータ内の空気の流れの方向に応じて、ダイナミクスモデルの2種類の内部状態を切り替えているが、この内部状態は、モデルに応じて3種類以上の内部状態から選択切り替え可能にすることもできる。ワーク状態分類記憶手段210は、4つのワーク状態を記憶しているが、ワーク状態は、2、3又は5以上のワーク状態を記憶項することもできる。上記の入力部251と制御ボード252とは、別個に構成されていたが、これらは、一体に構成してもよい。機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、いずれも、同じ記憶装置又は異なる記憶装置に構成することができ、ないしは、制御対象シミュレータ253の外部に設けられた各種の記憶媒体を用いて構成してもよい。上記の遷移条件の判定は、論理式の組み合わせによるものであるが、別の条件を付加するなど種々の論理条件を用いることができる。
【0124】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0125】
【図1】本発明の実施形態に係るシミュレーションシステムの構成例を示す図である。
【図2】本発明の実施形態に係るシミュレーション装置のブロック図である。
【図3】本発明の実施形態に係るシミュレーション方法を説明するためのフローチャートである。
【図4】アセンブリモデルの構成部品を模式的に示す図である。
【図5】各部品の部分形状と部分形状間の拘束関係との関係を模式的に示す図である。
【図6】幾何拘束の代数方程式による表現方法を説明するための図である。
【図7】部分形状間に定義された拘束関係における自由度を説明するための図である。
【図8】機構の自由度を規定するパラメーターを表す部分形状の例を示す図である。
【図9】各部品の部分形状と部分形状間の拘束関係と新たな拘束関係との関係を模式的に示す図である。
【図10】ハンドリングを伴うシミュレーションにおいてワークの初期状態を示す図である。
【図11】ワークがハンドに把持された状態を示す図である。
【図12】ワークが部品パレット上にある状態を示す図である。
【図13】ワークおよび部品パレットが一体となった状態を示す図である。
【図14】ハイブリッドモデルで表現された直流モータモデルのシミュレーション結果の一例を示す図である。
【図15】空気アクチュエータの初期状態と初期状態に対応する微分方程式を示す図である。
【図16】空気アクチュエータのバネによる反力が発生したときの状態とその状態に対応する微分方程式を示す図である。
【図17】空気アクチュエータのピストンに右向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図18】空気アクチュエータのピストンに左向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図19】空気アクチュエータの状態遷移を説明するための図である。
【図20】空気アクチュエータの状態遷移を簡略化して説明するための図である。
【図21】図20に対応するハイブリッド制約プログラミング言語のプログラム例を示す図である。
【図22】ワーク状態保持部における状態遷移条件の内部表現の一例を示す図である。
【符号の説明】
【0126】
1,2,3…部品、4,6,8〜11…平面、5,7…円筒面、12〜15…関係、16,17,22,23…拘束関係、18,19…直線、20,21…頂点、30…ロボット、31…ワーク、32…部品供給台、33,35…搬送機構、34,36…部品パレット、37…ハンド、39,41…アーム、40,42…関節部、201…シミュレータ本体、202…機構モデルデータ記憶手段、203…ダイナミクスモデルデータ記憶手段、204…アセンブリモデル生成記憶手段(アセンブリモデルデータ取得部)、205…ダイナミクスシミュレータ(ダイナミクスモデル変数取得部)、206…干渉チェック手段(干渉有無判定部)、207…幾何拘束処理手段(拘束関係データ生成部)、208…ワーク相対位置算出手段(相対位置算出部)、209…状態遷移イベント検出手段(状態遷移イベント検出部)、210…ワーク状態分類記憶手段(拘束関係データ生成部)、211…表示装置、212…メカ制御システム、213…ワーク状態・属性データ記憶手段、251…入力部、252…制御ボード、253…制御対象シミュレータ(シミュレーション装置)、301…バルブ、302…ピストン、303…バネ。
【技術分野】
【0001】
本発明は、メカトロニクス機器などの制御プログラムについてその制御プログラムを制御対象である機械の実機への接続を伴わずにシミュレータを用いて検証するためのシミュレーションシステムに用いて好適な、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムに関する。
【背景技術】
【0002】
従来のアセンブリモデル作成方法としては、アセンブリのモデルに、機構解析や障害物回避動作計画に利用するために必要となる付加的な幾何拘束関係とそれに付随する機構パラメーターとを自動的に設定し、そのまま、機構解析や障害物回避動作計画を実行するものが知られている(例えば特許文献1参照)。また、テキストベースでの編集作業を行うことなく、システムの時間軸上の挙動をシミュレートするためのシミュレーションデータを容易に作成するシミュレーションデータ作成方法が提案されている(例えば特許文献2参照)。さらに、ハイブリッドモデルを利用して対象とする機構の挙動を時間軸に沿ってシミュレーションするシミュレーション方法が提案されている(例えば特許文献3参照)。ハイブリッドモデルに関しては、ハイブリッドモデリング言語を用いて、系を常微分連立方程式として表現する手法が知られている(例えば非特許文献1参照)。メカトロニクス機器のファームウェアの設計に関しては、上流段階での仕様のシミュレーションによるチェックなどにより、設計の後戻りを削減する手法が提案されている(例えば非特許文献2参照)。
【0003】
例えば半導体製造装置において、ロボットがシリコンウェハーというワークをハンドリングすることなど、一般に、製造装置やその製造装置に組み込まれたロボットを含むシステムにおいては、ワークをハンドリングする必要がある。
【0004】
これに近い状況の例として、コピー機やプリンタなどのメカトロニクス機器を用いたシミュレーションにおいては、紙搬送路が1次元的であるため、移動距離を与えることにより、機械の内部における紙の位置を求めてシミュレーションを行う。そこで、機構の定義の段階において、制御ソフト技術者は、紙の挙動モデルを予め定義しておき、定義した挙動モデルをデータファイルに含めたうえで、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、接続した制御ソフトウェアの検証を行うようにしている。
【特許文献1】特許第3643504号公報
【特許文献2】特開2002−140653号公報
【特許文献3】特開2004−178300号公報
【非特許文献1】「Use of Hybrid Models for Testing and Debugging Control Software for Electromechanical Systems」、IEEE/ASME Trans. Mechatronics, Vol.10, No.3, June 2005, pp.275-284
【非特許文献2】近藤浩一、星野享、本橋聖一:「シミュレーションによるメカトロニクス機器ファームウェア開発の革新」、東芝レビュー、Vol.60, No.1, 2005
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、ワークのハンドリングにおいては、シミュレーション装置が、ロボットや搬送装置などの動きにより、次にどのような状態になるのかを予め決めておくことができない。そのうえ、例えば、ロボットがワークを台の上に置くなどの動作についても、シミュレーション装置は、ワークがどのような位置や姿勢で台に置かれるかを予め決定することができないという不具合がある。
【0006】
そこで本発明は、上記の課題に鑑み、制御プログラムを制御対象の実機への接続を伴わずにシミュレータを用いて検証するシミュレーションシステムにおいて、制御ソフト技術者が、製造装置などにおいてワークをハンドリングする動作を含めてシミュレーションを実行できる、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様によれば、ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置が提供される。
【0008】
また、本発明の別の一態様によれば、シミュレーション装置におけるシミュレーション方法であって、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法が提供される。
【0009】
さらに、本発明の別の一態様によれば、シミュレーションプログラムであって、コンピュータに、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラムが提供される。
【発明の効果】
【0010】
本発明によれば、制御ソフト技術者が、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【発明を実施するための最良の形態】
【0011】
以下、本発明の実施形態に係るシミュレーション装置およびこのシミュレーション装置に利用されるシミュレーション方法並びにシミュレーションプログラムについて、図面を参照しながら説明する。なお、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【0012】
本発明の実施の形態に係るシミュレーションシステムは、制御プログラムを制御対象のシミュレータを用いて検証するためのものであり、図1に示されるように、入力部(入力装置)251と、制御ボード252と、制御対象シミュレータ253とを備えて構成される。入力部251は、制御ソフト技術者の操作指令を制御ボード252に入力するものであり、例えば、リモコン(リモコン装置、リモートコントローラー)が用いられる。制御ボード252は、制御対象シミュレータ253に対して、制御コマンドを入力するものである。制御ボード252は、制御プログラムを記憶するROMや、ハードウェア制御用のLSIを搭載しており、本実施形態に係るシミュレーション方法により検証されるソフトウェア(ファームウェアともいう)が実行される。
【0013】
制御対象シミュレータ253は、ワークのハンドリング動作を含むロボットなどのメカトロニクス機器を制御対象とする制御プログラムを用いてそのメカトロニクス機器をシミュレーションすることにより、制御プログラムの検証を行うシミュレーション装置であり、ワークとしてのウェハーをハンドリングするロボットの動きや、ロボットの関節に取り付けられたモータなどのアクチュエータの動作をシミュレートする。この制御対象シミュレータ253は、ワークのハンドリング動作を含むロボットなどの動きをシミュレートする。制御対象シミュレータ253には、シミュレーションの状況を表示するためのパソコンディスプレイなどからなる表示部(表示装置)211が設けられている。
【0014】
制御ソフト技術者は、ファームウェアが実装された制御ボード252に、実機を接続する代わりに、制御対象シミュレータ253を接続する。これにより、入力部251からの操作指令に基づいて、制御ボード252上のファームウェアが実行され、制御ボード252から制御対象シミュレータ253に対して、モータのスタートやストップなどの制御コマンドが送られる。制御対象の実機の動きは、表示部211にコンピュータグラフィックスを用いて表示される。
【0015】
制御対象シミュレータ253は、図2に示されるように、シミュレータ本体201、機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段(ワーク状態及び属性データ記憶手段)213から構成される。シミュレータ本体201は、本実施形態に係るシミュレーションを行うものであり、パソコンを用いることができる。このシミュレータ本体201は、制御コマンドを出力するメカ制御システム(ないしはシミュレータ)212に接続されている。このメカ制御システム212は、図1の入力部251と制御ボード252とに相当する。
【0016】
機構モデルデータ記憶手段202は、複数の部品の形状を表すデータと複数の部品の間の拘束関係を表すデータとからなるロボットのアセンブリモデルデータを記憶するものである。
【0017】
ダイナミクスモデルデータ記憶手段203は、ロボットが有する駆動系等の動特性などのダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部である。また、ダイナミクスモデルデータ記憶手段203は、複数、例えば2つのダイナミクスモデルからなるハイブリッドモデルのダイナミクスモデルデータを記憶する。
【0018】
ワーク状態・属性データ記憶手段213は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するものである。また、ワーク状態・属性データ記憶手段213が記憶する属性データとは、ロボットとロボットが把持する物体や障害物などとの衝突又は接触を検出する干渉チェック処理を停止するための状態遷移条件データをさす。本実施形態に係る制御対象シミュレータ253は、この属性データを参照することにより、例えば離れたところにおかれた2個の物体が、ロボットのハンドリングによって、積み重ねられると、干渉を検出する。2個の物体が積み重ねられた後、制御対象シミュレータ253は、干渉チェック処理を停止し、これにより、計算量の低減を図っている。
【0019】
機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、いずれも、記憶装置からなり、パソコンに内蔵又は増設されたハードディスクなどを用いることができる。なお、機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、データを書き込み可能なCDやDVDもしくはシミュレータ本体201から挿抜可能な小型メモリ等の記憶媒体を用いることができ、あるいはシミュレータ本体201と一体に構成したり、あるいはシミュレータ本体201から取り外し可能に構成されてもよい。
【0020】
また、シミュレータ本体201は、ダイナミクスシミュレータ205、アセンブリモデル生成記憶手段(アセンブリモデル記憶手段)204、干渉チェック手段206、状態遷移イベント検出手段209、ワーク相対位置算出手段208、幾何拘束処理手段207、ワーク状態分類記憶手段(ワーク状態記憶手段)210を備えて構成される。
【0021】
ダイナミクスシミュレータ205は、制御プログラムからの制御コマンドにしたがって、ロボットのダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するものである。すなわち、ダイナミクスシミュレータ205は、ダイナミクスモデルデータを予め読み込み、シミュレーション実行中に制御プログラムからの制御コマンドをサイクル時間ごとに読み込みながら、ダイナミクスシミュレーションを実行する。また、ダイナミクスシミュレータ205は、ハイブリッドモデルにより記述されたロボットの複数のダイナミクスモデルにしたがってシミュレーションを実行するように構成され、状態遷移イベントの発生が検出された場合は、複数のダイナミクスモデルを切り替える。ダイナミクスシミュレータ205は、ロボットのダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部としても機能する。
【0022】
アセンブリモデル生成記憶手段204は、ロボットの機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部である。アセンブリモデル生成記憶手段204は、機構モデルデータ記憶手段202の機構モデルデータを予め読み込み、アセンブリモデルデータを生成し、生成したアセンブリモデルデータを記憶する。アセンブリモデル生成記憶手段204は、指定した関節の角度などの値を取得する機能(以下ではこの機能を機構モデルアナログセンサーと呼ぶ。関節の角度などの値は、指定された関節の角度や、指定された同種間又は異種間の2つの幾何要素間の距離など、アナログ値の参照であるためこのような名前とした。物理的なセンサーが実在するわけではない。)を有しており、関節の角度などの値をロボットの機構モデルのデータとして取得する機構モデルデータ取得部としても機能する。
【0023】
干渉チェック手段206は、ロボットの左手や右手が部品搬送路に接触する状況のようなロボットと物体との干渉の有無を判定するものであり、干渉有無判定部として機能する。干渉チェック手段206は、2つの立体を指定して、指定された立体間の干渉の有無を調べる機能(以下ではこの機能を干渉チェックセンサーと呼ぶことにする。こちらも物理的なセンサーが実在するわけではない。)を有し、この機能は、アセンブリモデル生成記憶手段204を参照して幾何学的な形状の干渉の有無を判断する。干渉チェック手段206で用いられる干渉チェックアルゴリズムについては、提案されている既存の様々の手法を用いることができる。
【0024】
状態遷移イベント検出手段209は、ワークの状態遷移イベントの発生を検出するものであり、ワーク状態分類記憶手段210に記憶されているワークの状態に遷移するかどうかを判断する。本実施形態に係る状態遷移イベント検出手段209は、機構モデルアナログセンサー、干渉チェックセンサーおよびダイナミクスモデル変数を参照し、機構モデルアナログセンサーが得たデータと、干渉チェックセンサーによる干渉の有無と、ダイナミクスモデルの変数値とのうちのいずれか1つ又はこれらのすべてを論理式の形で組み合わせて評価することにより、遷移条件を判定する。
【0025】
ワーク相対位置算出手段208は、複数のワーク状態データに基づいて、状態遷移イベントの発生時におけるワークのワーク状態とそのワーク状態に関係付けられた相手立体との間の相対的な位置関係を表す位置関係データを算出するものであり、相対位置算出部として機能する。すなわち、ワーク相対位置算出手段208は、ワークの状態が遷移する際に、ワークの相対的な位置関係を算出する。
【0026】
幾何拘束処理手段207は、位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する拘束関係データ生成部である。幾何拘束処理手段207は、アセンブリモデル生成記憶手段204を参照して幾何拘束の処理を行う。
【0027】
また、ワーク状態分類記憶手段210は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部である。ワーク状態分類記憶手段210は、ワークが、ロボットの左手によって把持されるか、又はロボットの右手によって把持されるかなど、ワークが何によって把持されているかによって、ワークが取りうる状態を予め分類し、分類したワーク状態を記憶しておく。
【0028】
なお、状態遷移イベント検出手段209、ワーク相対位置算出手段208、幾何拘束処理手段207、ワーク状態分類記憶手段210の各機能は、いずれも、CPU(中央演算装置)、ROM、RAM、IC、LSIおよびハードディスクなどにより実現される。
【0029】
これにより、本発明のシミュレーション方法は、最初に、制御対象シミュレータ253が、ロボットの機構モデルについてのアセンブリモデルデータ、ダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込む。制御対象シミュレータ253は、制御プログラムからの制御コマンドを読み込んでから、ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行する。制御対象シミュレータ253は、機構モデルアナログセンサーのアナログのデータと、干渉チェックセンサーの値と、ダイナミクスモデルの変数値とに基づいて、ワークの状態遷移イベントの発生を判定する。制御対象シミュレータ253は、状態遷移イベントが発生した場合に、その状態遷移イベントの発生時におけるワークとワークの相手となる立体との間の相対的な位置関係データを算出する。そして、制御対象シミュレータ253は、この位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する。
【0030】
また、本実施形態に係るシミュレーションシステムは、本発明のシミュレーション方法をパソコン等のコンピュータに実行させるためのプログラムを保存しておくこともできる。コンピュータが、そのプログラムを読み出すことにより、制御対象シミュレータ253に処理を実行させる。制御対象シミュレータ253は、このプログラムを、ハードディスクやパソコンから取り外し可能な各種の記憶媒体に保存することができ、このようにすれば、本実施形態に係るシミュレーション方法をコンピュータに実行させるためのプログラムの保存、運搬、販売等を容易に行える。
【0031】
本実施形態に係るシミュレーションシステムにおいては、制御ソフト技術者が、制御ソフトウェアが実装されたメカ制御システム212を、実機に接続する手順と同じ手順でシミュレータ本体201に接続してソフトウェアの検証を行えるという利便性を確保しつつ、制御対象シミュレータ253が、機械技術者が予め作成しておいた制御対象モデルデータを読み込むことにより、シミュレーションが実行可能な状態となるように構成されている。この制御対象モデルデータは、機構モデルデータ記憶手段202とダイナミクスモデルデータ記憶手段203とワーク状態・属性データ記憶手段213とのそれぞれに記憶されたデータをさす。
【0032】
具体的には、機構モデルデータとは、ロボットなどの機器を構成する各部品の3次元空間内における形状データと、各部品が組み合わせられたモデルのデータとを含むものをさす。
【0033】
ダイナミクスモデルデータは、モータなどのアクチュエータの動特性に関するモデルのデータをさす。ダイナミクスモデルデータ記憶手段203は、例えばモータの速度が時間変動する状況を微分方程式などのデータとして記憶しており、ダイナミクスシミュレータ205がこの微分方程式のデータを数値積分するなどの処理を行うことにより、ロボットの挙動が表現されるようになっている。さらに詳述すると、ダイナミクスモデルデータは、所望のタイミングにおいて、ロボットの関節角が45°、90°のときにその関節がどのような形状になるか、あるいは関節角が45°や90°のときに部品供給台とアームとの衝突が発生するかなど、3次元空間における衝突の有無の状態を判断するためのものである。ワークの重さに応じた時間遅れを検証したり、空気アクチュエータのある瞬間における姿勢や、アームの姿勢の時間変動など、部品の位置、姿勢および速度を検証するためにも、ダイナミクスモデルデータは用いられる。
【0034】
ワーク状態・属性データは、本発明に特有のデータであり、ワークの取りうる各状態が、「ワークがどの立体と関係があるのか」を基準に列挙されており、それぞれの状態ごとに、複数のその状態に遷移するための条件が記述されている。例えば、ワーク状態・属性データは、ワークが、「ロボットハンドに把持されているのか」、又は「台の上に乗っているのか」という視点で、ワークの相手の立体を指定するようにして列挙されている。ワークとその相手(ロボットハンドや台など)との幾何学的な位置関係は、予め決めることができないが、本実施形態に係る制御対象シミュレータ253は、ワークとその相手との幾何学的な位置関係を定義するため、ワーク状態・属性データ記憶手段213は、この幾何学的な位置関係データを記憶する必要がない。
【0035】
上述の構成により、本発明のシミュレーション装置の動作について説明する。
【0036】
図3に示されるように、シミュレーション実行前のステップS1において、アセンブリモデル生成記憶手段204は、機構モデルデータを読み込み、この機構モデルデータから生成したアセンブリモデルデータを記憶する。機構モデルデータは、幾何学的な機構のシミュレーションに際しては、幾何拘束処理手段207および干渉チェック手段206に参照される。幾何拘束処理手段207におけるアセンブリモデルの処理手順については後述する。ステップS1においては、ダイナミクスモデルデータも、同様にシミュレーション実行開始前に読み込まれ、ダイナミクスシミュレータ205にて記憶され、アクチュエータのダイナミクスシミュレーションに利用される。
【0037】
ステップS2において、シミュレータ本体201は、メカ制御システム212からシミュレーション開始指示を受け取る。
【0038】
ステップS3において、ダイナミクスシミュレータ205は、メカ制御システム212より送られる制御コマンドを受け取る。シミュレーションが開始されると、メカ制御システム212から送られる制御コマンドのみを外部から受け取るデータとしてシミュレーションが実行される。本実施形態に係るシミュレーションシステムにおいては、メカ制御システム212からの制御コマンドに応じて、系の状態を変化させている。本実施形態に係るシミュレーションモデルは、バルブ、バネおよびピストンからなる空気アクチュエータを含むものである。このシミュレーションモデルは、常微分方程式系で表現できる連続系のモデルではあるが、イベントの発生とともに、空気アクチュエータ内の空気の流れを右側又は左側のいずれの方向からも選択可能にしており、モデルを表現する式を入れ替えることが可能なハイブリッドモデルを採用している。
【0039】
このため、ステップS4において、ダイナミクスシミュレータ205は、ダイナミクスモデルの内部状態の切り替えの要否を判定し、内部状態がダイナミクスモデルに対応していない場合には、noルートを通り、ステップS6に進む。ステップS4において、内部状態がダイナミクスモデルに対応している場合、ダイナミクスシミュレータ205は、yesルートを通り、ステップS5において、ダイナミクスモデルの内部状態を切り替えてからステップS6に進む。なお、ハイブリッドモデルによってアクチュエータの挙動がどのようにシミュレーションされるかについては後述する。
【0040】
本実施形態に係るシミュレーションは、時間軸に沿って、サンプリング時間など、予め決められた時間の差分Δtごとに時間を進めて実行される。ステップS6において、ダイナミクスシミュレータ205は、関節の角度などについては、モータの特性に基づき例えば数値積分処理を行って算出する。ダイナミクスシミュレータ205が時間を1ステップ(Δt)進めると、そのΔtごとに状態遷移イベント検出手段209を起動する。
【0041】
ステップS7において、状態遷移イベント検出手段209は、ワーク状態分類記憶手段210に記憶されているワーク状態ごとに記憶されている状態遷移条件を参照する。状態遷移イベント検出手段209は、その状態遷移条件の内容に対応して、ダイナミクスシミュレータ205を参照し、指定された変数の値の取得処理の実行、ないしは干渉チェック手段206を起動して干渉の有無の問い合わせ処理の実行、ないしは幾何拘束処理手段207にアクセスして指定した関節の角度などの値を取得する処理を実行する。
【0042】
以下では、説明の便宜上、ダイナミクスシミュレータ205を参照して指定された変数の値の取得処理を、「ダイナミクスモデル変数値の参照」と呼ぶことにする。干渉チェック手段206を起動して干渉の有無の問い合わせ処理を行うことを、「干渉チェックセンサーの参照」と呼ぶことにする。この干渉チェックセンサーの参照とは、実際の立体同士の幾何学的な干渉をチェックする処理のほかに、フォトセンサーの光ビームを3次元形状として予め定義しておき、このビーム形状と他の立体の形状との幾何学的な干渉の有無を調べるためにフォトセンサーのオン又はオフをチェックする動作をも含める。また、幾何拘束処理手段207にアクセスし、指定した関節の角度などの値を取得する処理は、指定された関節の角度や、指定された同種間又は異種間の2つの幾何要素間の距離など、アナログ値の参照であるため、この処理を「機構モデルアナログセンサー(機構モデル・アナログ値センサー)の参照」と呼ぶことにする。
【0043】
ステップS8において、さらに、状態遷移イベント検出手段209は、これらのダイナミクスモデル変数値の参照、干渉チェックセンサーの参照、および機構モデルアナログセンサーの参照の各実行結果に基づき、これらの値又は実行結果の組み合わせからなる論理式を評価し、状態遷移イベントが発生しているか否かの判断をする。
【0044】
ステップS8において、状態遷移イベントの発生が検出されると、yesルートを通り、ステップS9に進む。ここで、その状態遷移イベントに対応する状態においてワークと一体に動くべき立体が、ワーク状態分類記憶手段210に記憶されているため、ステップS9において、状態遷移イベント検出手段209は、ワーク相対位置算出手段208を起動し、ワーク相対位置算出手段208は、ワークの相対位置を算出する。
【0045】
さらに、ステップS10において、ワーク相対位置算出手段208が幾何拘束処理手段207を起動し、この幾何拘束処理手段207が、ワーク状態分類記憶手段210を参照し、ワークと一体に動くべき立体と状態遷移イベントが発生したタイミングにおける位置関係とによって、幾何学的に固定された関係を定義する。また、幾何拘束処理手段207は、ステップS10において、冗長な幾何拘束関係を削除する。換言すれば、ワークの相手となる立体との相対的な位置関係を、ワーク相対位置算出手段208が算出し(ステップS9)、その算出結果である相対的な位置関係に基づいて、幾何拘束処理手段207が、幾何学的な固定関係を定義する(ステップS10)。
【0046】
これにより、アセンブリのモデルとしては、新たな関係の定義がなされ、異なる挙動を示すことになり、ワークのハンドリング動作が再現される。この新たな幾何学的な関係の定義処理など(ステップS10)が終了した場合、あるいはステップS8において、状態遷移イベントが発生しないと判定された場合(noルート)には、表示部211は、アセンブリ(機構モデル)の状態を、コンピュータグラフィックスにより表示する。これにより、制御ソフト技術者は、ワークがどこまで動いたか等の動きについて、時間軸上でどのように動いているか、あるいは、所望の時間における部品の位置、姿勢又は速度を検証したり、時間をシフトさせたときの部品の相対関係等を検証する。
【0047】
ステップS11において、ダイナミクスシミュレータ205は、時刻が予め決められたシミュレーション時間に到達したか否かを判定し、時刻が終了時間に到達してない場合には、yesルートを通り、ダイナミクスシミュレータ205は、さらに時間をΔt進める処理に進む。また、ダイナミクスシミュレータ205は、ステップS11において、時刻が予め決められたシミュレーション時間に到達したと判定した場合は、noルートを通り、シミュレーションを終了させる。この間、サンプリング時間Δtの間のシミュレーションが行われ、終了時間が到来するまで、又は操作者からのシミュレーション中断操作があるまでシミュレーションが実行される。
【0048】
このように、本発明によれば、制御ソフト技術者が制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【0049】
以下、上記一連の処理手順の各処理の詳細についてさらに詳しく説明する。
【0050】
(a)アセンブリモデルの表現および作成の方法について
本実施形態に係るアセンブリモデル生成記憶手段204におけるアセンブリモデルの表現および作成の各方法は、例えば本発明者による特許3643504号公報「アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体」に記述された考え方を用いることができる。図4に示されるような部品1、2、3からなるアセンブリモデルを作成する場合を例にして説明する。本実施形態に係るシミュレーションシステムは、部品1、2、3の各形状データを、例えばコンピュータの入力装置を用いてファイルより読み込み、記憶装置に記憶させる。このとき、読み込まれた各部品は、表示部211によって例えば図4に示されるように表示される。
【0051】
部分形状間の関係について入力すべき関係がある場合には、部分形状とその関係とを、上記入力装置を用いて入力し、上記記憶装置に格納する。例えば図4に示される部品1、2、3からアセンブリモデルを作成するために、部品1と部品2とに関して、部品1の部分形状である平面4と部品2の部分形状である平面6とが一致し、かつ部品1の部分形状である円筒面5と部品2の部分形状である円筒面7とが同軸であるという関係が入力される。同様に部品2と部品3とに関しては、部品2の部分形状である平面8と部品3の部分形状である平面10とが一致するという関係、および部品2の部分形状である平面9と部品3の部分形状である平面11とが一致するという関係がそれぞれ入力される。
【0052】
このように入力された関係が記憶装置においてどのように記憶されるかを模式的に示した例を図5に示す。図5から分かるように、記憶装置においては、部品1、2、3の情報および部分形状の情報のほかに、平面同士の一致関係12、14、15および同筒同士の同軸関係13がそれぞれデータとして存在している。
【0053】
次に、記憶装置に格納された情報に基づいて、ワーク相対位置算出手段208(図2)は、部品1、2、3の相対的位置関係を算出する。この相対的位置関係を算出する機能は、一般にソフトウェアとして提供されており、例えば英国D・Cubed社の3D−DCM(商品名)は、そのようなソフトウェアの一例である。以下、このようなソフトウェアを「幾何拘束処理ライブラリ」とも呼ぶことがある。具体的には、各部品には、部品特有のローカル座標系が設定されており、このローカル座標系と、アセンブリモデルを作成すべき空間に固定されたワールド座標系との間の変換マトリクスという形で上記相対的位置関係が表現される。すなわち、図5に示される部品間の関係12、13、14、15から、部品1と部品2および部品3との位置を表現する変換マトリクスが上記幾何拘束処理ライブラリによって自動的に計算される。
【0054】
ここでは、幾何拘束処理ライブラリの処理内容を2次元の簡単な例でさらに詳しく説明する。図6に示されるように、ワールド座標系101で示される空間には、部品102と部品103とが存在する。今、部品102の部分形状である直線104と部品103の部分形状である直線105とを一致させて、部品102と部品103との位置を計算することを考える。まず、直線104は、部品102のローカル座標系において、
【数1】
【0055】
と表現されている。また直線105は部品103のローカル座標系において、
【数2】
【0056】
という方程式で表現されている。部品102の位置を示すワールド座標系から部品102のローカル座標系への変換マトリックスは、
【数3】
【0057】
であり、ワールド座標系から部品103への変換マトリックスは、
【数4】
【0058】
であるとする。このとき、直線104のワールド座標系における方程式を、
【数5】
【0059】
とし、直線105のワールド座標系における方程式を、
【数6】
【0060】
とすると、これらの関係は以下のような連立方程式、
【数7】
【数8】
【数9】
【数10】
【0061】
で表される。
【0062】
一方、2つの直線が一致する条件は、
(1)一方の直線上の一点が他の直線上にある
(2)方向ベクトルが平行(外積が0)
の2つの幾何学的条件と等価である。これをワールド座標系において表現すると、
【数11】
【0063】
となる。この条件を加えて方程式を解くことにより、直線104と直線105とが一致する条件を満たす部品102および部品103の位置が算出される。方程式を解く都合からsinθとcosθとをそれぞれsとcとおくと、以下のような連立方程式になる。すなわち、
【数12】
【数13】
【数14】
【数15】
【数16】
【数17】
【0064】
という2次の連立方程式になる。これらの2次の連立方程式には、12の独立な式があり、直線104と直線105とのローカル座標系における各直線の方程式を表す8つの定数x1,y1,x2,y2,a1,b1,a2,b2が含まれる。変数の数は16であり、このうち求めたいものは部品102と部品103との位置を示すパラメーターc1,s1,c2,s2,α1,β1,α2,β2である。これらのc1,s1,c2,s2,α1,β1,α2,β2の値を求めるためには、上記2次連立方程式から8つの定数x1,y1,x2,y2,a1,b1,a2,b2と、変数のうちのパラメーターc1,s1,c2,s2,α1,β1,α2,β2と異なる他の変数とを消去すれば良い。このように変数を消去する方法としては、多項式イデアル(Polynomial ideal)のグレブナー基底(Groebner basis)を求めるブッフバーガーアルゴリズム(Buchberger algorithm)が知られているので、この方法を用いて不要な変数を消去してからc1,s1,c2,s2,α1,β1,α2,β2の値を求めてもよいし、上記2次連立方程式の定数を代入して直接解いてもよい。いずれにしても、式の数よりも変数の数が4多いことから、式として4自由度があることが分かる。この式は、ワールド座標系において定義されており、今注目している点が2つの部品の相対位置関係であることに注意すれば、どちらか一方の部品の位置を固定しても構わないため、例えば部品102を固定するとして、c1,α1,β1を定数とすると、式の数よりも変数が1つ多いことになり、相対的な自由度は1あることが分かる。部品103の位置を算出するためには、c2,s2,α2,β2の値のうち1つを定数として決めて(現在の値に固定して)、他の値を求めればよい。また一般に、拘束条件が実現できないような状況(例えば2つの直線が平行でかつ垂直である)で定義されている場合は、連立方程式に解が存在しなくなるため、この状況は検知可能である。このように、幾何拘束処理ライブラリは、与えられた拘束関係を代数的な式として表現しなおして、処理を行う。
【0065】
再び図5に戻り、説明を進める。
【0066】
上述の各部品の部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように、算出された部品間の相対的位置関係(アセンブリモデル)の一例を図7に示す。この図7に示される相対的位置関係は、自動的に計算された部品の変換マトリクスを、部品の形状データに作用させて(形状データを用いて変換して)得られた部品の位置を示している。
【0067】
この図7からも分かるように、上述のようにして求められたアセンブリモデルは、部品間の相対的位置関係を完全に決定するだけの拘束関係を一般的に有しているとは限らない。例えば、部品1と部品2との間で相対的な回転16を行っても、また、部品2と部品3との間で相対的に平行移動17を行っても、依然として図5に示される関係はすべて保たれている。すなわち図7に示されるアセンブリモデルは、回転自由度16と、並進自由度17とを有している。
【0068】
一方、機構解析などの分野においては、機構の自由度を規定するパラメーターにより運動を記述する。すなわち図7の例においては、回転16の回転自由度に対応する回転角と、平行移動17の並進自由度に対応する平行移動距離との2つのパラメーターがこれに対応する。
【0069】
これらのパラメーターを規定するための部分形状の例は、図4に対応して図8に示されるようになる。符号18,19は、それぞれ、円筒面の中心軸と直交する方向ベクトルを表す直線である。これらの直線18,19はともに円筒面に剛体接続されているとする。同筒同士が同軸という拘束関係があれば、上記直線18,19同士の角度を新たな拘束関係として付加することにより、この角度が回転自由度のパラメーターとなる。従って、このような直線18,19は円筒の形状ないしは位置姿勢を表す要素であるため、本発明は、直線18,19を部分形状と定義する。
【0070】
また、図8において、符号20,21は、それぞれ、部品2,3上の頂点である。これらの頂点20,21は平面同士が一致するという拘束関係が既に定義されている平面の部分形状ではないが、平面上の幾何要素でもあり、幾何学的又は位相的に関係している。このため、部品2の平面8と部品3の平面10とが一致している拘束関係の下で、各々の平面上の同一直線上の頂点20,21間の距離を新たな拘束関係として付加することにより、この距離が並進自由度のパラメーターとなる。
【0071】
図5に示されるアセンブリモデルに、図8に示される直線18,19のなす角度と、頂点20,21間の距離とを新たな拘束関係22,23として付加したときに記憶装置に記憶されている様子を図9に示す。図9に示されるように、各部品の部分形状と、部分形状間の拘束関係とに加えて、関節など駆動部を定義するために導入された新たな拘束関係とが記憶装置に記録される。
【0072】
機構解析を行う際には、図8に示される直線18,19のなす角度と、頂点20,21間の距離とをモータなどのアクチュエータに対応させることにより、アクチュエータパラメーター(モータの角度など)の変化から、機構の動きを求めるような簡単な機構解析は、以下のようにそのまま実行することも可能である。すなわち、以上の手順で決定された機構パラメーターに対して、ある時刻における値が与えられると、幾何拘束処理ライブラリは、個々の部品の3次元又は2次元空間における位置および姿勢を決定し、位置および姿勢を時刻の刻み幅にあわせて順次変化させるのである。これにより、機構としての動きをシミュレーションとして確認するなどの作業を行うことが可能になる。
【0073】
また、2つの回転軸が歯車で結合されているような場合には、上記図8に示される直線18,19のなす角度のような角度パラメーター同士の関係を、歯車の歯数比を係数とする1次式として表現すればよい。すなわち、本実施形態に係る制御対象シミュレータ253は、歯車のような機構をも多項式で表現できるため、幾何拘束処理ライブラリが、与えられた拘束関係を代数的な式として表現しなおして扱う方法と同じ方法を用いて統一的に処理、演算を行うことが可能である。具体的には、アセンブリモデル生成記憶手段204は、歯数比を係数とする1次式を連立方程式に加えればよく、歯車を加えることで、全体として自由度が1つ減少することも、立体間の自由度を計算した手法と同じ手法により拘束関係を算出できる。
【0074】
上記のようなアセンブリモデル生成記憶手段204のアセンブリモデルの作成方法により、本実施形態に係る制御対象シミュレータ253は、例えば製造装置の搬送機構やロボットの機構のモデルを表現し、その幾何学的な動きをシミュレーションすることが可能になる。図1に示される機構モデルデータ記憶手段202は、このアセンブリモデルの作成方法により作成されたデータである。
【0075】
本発明においては、さらに、搬送機構やロボットがハンドリングする対象物であるワークの動きをシミュレーションできるように、以下のような処理を行う。一例として、半導体製造装置内のロボットがハンドリングするウェハーがハンドリング対象のワークである。
【0076】
まず、本実施形態に係る制御対象シミュレータ253は、ロボットがワークを把持するような、ワークの状況を、ワークが何によって把持されているかによって分類する。すなわち、ワーク状態分類記憶手段210は、ワークがどのような状態を取りうるかを予め分類して記憶しておいたデータファイルを読み込む。あるいは、制御対象シミュレータ253は、マウスやキーボードなどの入力機器を用いてワークの状態を入力するなどを行い、入力したワークの状態を一旦データファイルとして保存し、そのデータファイルを読み込むことにより、データファイルをワーク状態分類記憶手段210に記憶する。
【0077】
図10に、多関節のロボット30が部品供給台32の上におかれたワーク31をハンドリングする状況の一例を示す(本例題は、制御対象シミュレータ253を用いてシミュレーション可能なものである)。この図10に示されるロボット30は、ハンド(ロボットハンド)37、アーム39、41、43、関節部40,42からなるアクチュエータ機構を有するモデルである。このアクチュエータ機構のまわりには、ロボット30の作業スペース分を空けて床面と略平行に並置された外観略箱形の部品パレット34,36と、部品パレット34,36をそれぞれ左右に搬送する搬送機構33,35とが設けられている。アーム43は、その一端が床面内で旋回自在に支持されるとともに、搬送機構33,35に沿って移動可能に構成され、さらに、他端が関節部42を介してアーム41の一端に回動可能に接続されている。また、アーム41の他端は、関節部40を介してアーム39の一端に回動可能に接続されており、アーム39の他端には、ワーク31を把持するハンド37が装着されている。関節部40,42は、いずれも、図示しないモータによって駆動されるようになっている。さらに、関節部40,42には、可変抵抗器からなる角度センサーが取り付けられており、アーム39,41の関節角およびアーム41,43の関節角は、いずれも、角度センサーが抵抗値の変化により計測し、検知可能にされている。本発明は、この角度が所定値以上になったときに、状態を変更すると予め記述されており、また、その角度の大きさは、位置関係により、予め計算されて取得される。
【0078】
ここで、ワーク31は、部品供給台32の上におかれるか、又は部品パレット34もしくは部品パレット36におかれるか、又はハンド37に把持されているかの4つの状態が想定される。部品パレット36上のどの位置にワーク31がおかれるかなどのことは、シミュレーションを実行しないと決定できないため、位置情報は予め登録することはできないが、本例題においては、ワーク31について上記4つの状態を取り得ることが、ワーク状態分類記憶手段210に記憶される。
【0079】
ワーク状態分類記憶手段210に記憶された4つのそれぞれのワーク状態に対して、本実施形態に係る制御対象シミュレータ253は、さらに、4つの状態に遷移する条件を定義する。遷移条件をどのように表現するかについては、その詳細については後述するが、例えば、部品供給台32と部品であるワーク31との幾何学的な接触が検出されたタイミングで、「ワーク31は部品供給台32の上におかれた状態に遷移する」といった状態遷移条件を定義しておく。すなわち、シミュレーション開始前に、ワーク31の4つの状態が列挙されており、4つの各状態への遷移条件が予め定義されるようにしておき、シミュレーション開始後の実行時に、ワーク31が4つの状態のうちのどの状態を取るのか、およびその状態における位置関係がどのようになるのかが、後述のとおり自動的に計算される。
【0080】
このように、本実施形態に係る制御対象シミュレータ253は、シミュレーション実行前に定義すべきデータと実行時に自動計算されるデータとを明確に分離している。従って、シミュレーション実行前に定義すべきデータは、例えば機械系の技術者が用意し、シミュレーションを使ってソフトウェアのチェックやデバッグを行う制御ソフト技術者は、不慣れなワークの状態の設定などに煩わされることなく、制御ソフトウェアの内容に集中できる。
【0081】
以下では、シミュレーション実行前に定義されたデータを用いて、シミュレーションがどのように実行されるかを、図10から図13を参照して一連の動作を説明する。
【0082】
図10の状況は、初期状態を示しており、ワーク31が部品供給台32におかれている。ロボット30は、各関節部40,42を駆動するモータへのコマンド実行や電圧印加などにより、図11に示される位置まで移動する。ここで、ハンド37とワーク31との間で幾何学的な干渉が検出されたときに、ワーク31がハンド37に把持される状態に遷移する、と条件が決められていると、図11の状況で、ワーク31の状態が変化する。ハンド37とワーク31との間で幾何学的な干渉検出のイベントが発生したタイミングで、状態が遷移するため、ワーク相対位置算出手段208は、指定された状態において相手となる立体(この場合はハンド37)との相対的な位置関係を計算する。3次元空間の位置関係は、関係を定義する一方の立体のローカル座標系から、他方の立体のローカル座標系への変換マトリックスとして表現される。3次元立体の場合は、4×4のマトリックスになり、現在のローカル座標系のグローバル座標系との変換マトリックスから計算できる。この4×4マトリックスは、2つのローカル座標系の間の幾何拘束となり、内部においては、図6の例を用いて説明したように、4×4マトリックスの要素を係数とする1次式として表現されている。
【0083】
ワーク31がハンド37に上記4×4マトリックスに対応する幾何拘束関係によって固定され(新たな座標系に取り込まれ)、これまでワーク31と部品供給台32との間に定義されていた幾何拘束又は関係がキャンセルされると、ワーク31はロボット30の動きに追従して動くことになる。
【0084】
図12の状況は、ロボット30が動いて、ワーク31が部品パレット36の上に移動した状態である。この状況は、ワーク31と部品パレット36との間の干渉チェックが検出されたことを示すイベントとして検知される。このときに、ワーク相対位置情報算出手段208により、ワーク31の部品パレット36からの相対位置、すなわち、部品パレット36のローカル座標系からワーク31のローカル座標系への変換マトリックスが算出される。そして、ワーク31とハンド37との間の幾何拘束がキャンセルされ、ワーク31と部品パレット36との間の幾何拘束が付加されて、ワーク31が部品パレット36の上におかれた状況に移行する。
【0085】
図13の状況は、ワーク31および部品パレット36が一体となってさらに移動した後の状況を示している。ワーク31は、幾何拘束により部品パレット36に固定されているので、部品パレット36とともに移動している。
【0086】
このようにして、シミュレーション実行前に定義されたデータを用いて、シミュレーションが実行される。
【0087】
以上は、ロボットなどのアセンブリモデルの表現およびシミュレーションと、ワークの扱いに関する3次元空間(ないしは2次元平面)内での機構的なモデル化とについての説明であった。
【0088】
(b)モータなどの特性表現について
次に、モータなどの特性表現について説明する。モータなどアクチュエータなどのモデル化では、加速や減速など時間軸上でどのような挙動をするかかの検証が重要であり、ダイナミクスの表現が必要となる。
【0089】
本実施形態に係る制御対象シミュレータ253は、ハイブリッドモデリング言語により、系を常微分連立方程式として表現する方法を用いる。ハイブリッドモデリング言語の具体的な細かな仕様および基本的な考え方については、発明者の論文「Use of hybrid models for testing and debugging control software for electromechanical systems」(IEEE/ASME Trans. Mechatronics, Vol.10, No.3, pp.275-284)に詳しく記述されている。
【0090】
単純なDC(直流)モータモデルの例と、そのシミュレーション結果の一例を図14に示す。
【数18】
【数19】
【数20】
【数21】
【数22】
【0091】
式20から式22が切り替えられる。
【0092】
ここで、モータの回転速度が上がるに伴って、コイルに逆起電力が生じ、加速が鈍って定速で回転するとしてモデル化し、上記のような微分方程式が得られている。なお、x1はモータ回転角、x1''およびx1'はそれぞれx1の2階微分および1階微分、b1は立ち上がりの急峻さを規定するパラメーター、a1は定常回転速度をそれぞれ表す。a1についての3つの式は、それぞれ、モータが正転モード、逆転モード、停止モードのいずれであるかによって切り替えられる。
【0093】
このようなハイブリッドシステムを記述する言語として他に知られているものとして、米国Xerox社のPalo Alto 研究所で研究され、発展研究が米国NASA Ames研究所で行われているHCC(Hybrid Concurrent Constraint Programming:ハイブリッドコンストレイントプログラミング)という言語がある。これは、制約処理プログラミング(コンストレイントプログラミング)と呼ばれる技術の一種であり、モデルを表現する微分方程式や代数方程式を制約と考え、これらの方程式をそのまま順不同で記述する。これに状態遷移を制御するプログラムを付加してモデルを完成させる。方程式をそのまま制約として羅列してプログラムとすることができる点は便利ではある。半面、これは一種のプログラミング言語であり、複雑なモデルを記述することができるが、コンストレイントプログラミングの理解が必要となり、プログラム言語として難解なため、プログラム作成能力習得が難しい。
【0094】
MathWorks社のMatlab(商品名)製品群は制御技術者などを中心によく使われているソフトウェアツールであり、ハイブリッドモデルで表現されるモデルを等価的に記述することが可能である。しかし、例えば微分方程式をそのまま連続系の記述することはできず、微分方程式の内容を分析して積分要素などの要素を組み合わせたブロック線図として定義しなおす必要がある。
【0095】
以下では、本発明によってハイブリッドモデルがどのように入力され、結果を出力できるかを具体的な例題により説明する。本例題も、本実施形態に係る制御対象シミュレータ253を用いてシミュレーションされるものである。まず、図15から図21を参照して簡単な例題を説明する。
【0096】
図15に示される機械装置は、バルブ301とバネ303とピストン302とからなる空気圧式のアクチュエータ機構のモデルである。エアシリンダの側面には、エアシリンダの内部と外部とを連通する通気穴が左右2箇所に形成されており、また、エアシリンダ本体に、圧縮空気を左通気路と右通気路とに切り替えて吸気させる構造を有するバルブ301が設けられている。エアシリンダ内には、先端に気密兼左右摺動自在な圧力板が固定されたピストン302が装着されている。バルブ301は、外部からの指令により、圧縮空気の流れを右側(以下Rightと呼ぶ)又は左側(以下Leftと呼ぶ)に切り替え可能になっている。以下の説明では、RightおよびLeftを状態、イベント又は変数の意味で使用することがある。
【0097】
図15の状況では、バルブ301がRightの状態であるため、右通気路からの空気が、エアシリンダと圧力板とにより形成される右室内に供給され、ピストン302には左向きの力がかかる。この状態を示す運動方程式は、
【数23】
【0098】
となる。
【0099】
図16の状況は、さらにピストン302が左方に移動し、圧力板がバネ303に当接した状態である。この状態においては、バネ303による反力が発生するため、別の運動方程式により状態が記述される。
【数24】
【0100】
図17の状況は、バルブ301がLeftにされた状態であり、左通気路からの空気が、エアシリンダと圧力板とにより形成される左室内に供給され、ピストン302には右向きの力がかかる。空気の流れの向きが変わるため、さらに別の運動方程式が用いられる。
【数25】
【0101】
図18の状況においては、圧縮されたバネ303の弾発力と左室内の空気圧とが、右室内の空気圧に勝り、これに連動して、ピストン302が右方に移動する。この状態は、バネ303からの反力がなくなった状態であり、さらに別の運動方程式により記述される。
【数26】
【0102】
図19は、以上の状態変化と各状態に対応する運動方程式とを状態遷移図として表現したものである。ハイブリッドモデルは、図19(a)から図19(d)に示されるように、状態遷移と各状態との記述が、微分方程式や代数方程式により表現される。
【0103】
図20は、図19の例をさらに簡略化して示す図である。図19(a)から図19(d)に示される状態遷移図の作成用に入力されたデータが、どのようにモデルの記述に出力されるかを平易に説明するため、ここでは、2つの状態と2つの状態間の状態遷移とを考える。図21に、図20のモデルの内容をHCCにより記述した例を示す。図21の(1)、(2)、(5)は、それぞれ、図15〜図18に示される機械装置の初期状態やバルブ操作のタイミングなどの運転条件を記述しており、(3)、(4)はともに図20(a)、図20(b)の状態遷移を表現したものである。HCCにより、運動方程式はそのまま記述可能である。各状態へ遷移する条件は、最初の「always if」の次に記述され、また、各状態から遷移する条件は、最後の「watching」の後に記述される。
【0104】
ハイブリッドコンストレイントプログラミング言語で記述されたモデルにおいては、プログラムの記述の順序(図21の(1)〜(5)の順序)に沿って実行されるわけではない。個別のプログラム記述のうち、シミュレーションを実行する時間軸に沿って成立するものが探索されて実行されるため、(1)〜(5)の順序は関係がない。例えば、シミュレーションを開始した時点では、(1)および(5)のみが有効である。開始時点において、イベントRightが(1)により発生するため、(4)の前提条件であるRightが有効となる。従って、(4)の第2の運動方程式が有効となり、図20(a)に示されるような左側の状態としてシミュレーションが実行される。また、図21において、時間が50となると、(2)が有効となり、イベントLeftが発生し、(4)の遷移条件(「watching」以降の条件)が有効となり、(4)の運動方程式が無効となる。(4)に代わり、(3)の前提条件が有効となり、第1の運動方程式が有効となる。
【0105】
(c)搬送システム33、34が空気アクチュエータで駆動されるモデルについて
次に、図11の搬送システム33、34が、上記空気アクチュエータにより駆動されるモデルについて説明する。このような駆動機構は、モータとボールネジとの組み合わせなどにより実現されることが多いが、簡略化した状況を想定する。
【0106】
搬送システム33、34の移動量をそれぞれx1、x2とすると、搬送システム33、34のそれぞれの運動は、図21のプログラムにおいてxをそれぞれx1、x2に書き換えることにより表現できる。さらなる正確な表現のために、f、m、Right、Leftなどの変数やイベントも、いずれかのピストンであるのかを表すサフィックス1又は2を付して説明する。
【0107】
メカ制御システム212(図1)は、制御対象シミュレータ253に対して、図20(a)又は図20(b)のモデルに対応するRight1、Left1又はRight2、Left2と表されるバルブ切り替えのための制御コマンドを送る。これにより、ダイナミクスシミュレータ205は、これらの制御コマンドが送られたタイミングとモデルとにより表現された微分方程式などを用いてピストンの左右の動きを算出する。従来のシミュレーション作業は、ロボットのオフラインプログラミングシステムにおいて、例えばロボットのハンド37の先端位置が追従すべき軌跡が曲線として与えられ、それに沿った動きを生成するものである。従って、本発明が対象とする制御ソフトウェアの設計および検証の作業は、従来のシミュレーション作業とは大きく異なるといえる。
【0108】
さらに、本発明によれば、ロボットの関節に上記DCモータなどのモデルを当てはめることにより、時間の経過とともにピストンやモータの移動量が算出され、また、これらの移動量をアセンブリモデルへの入力とすることにより、3次元空間内での動作のシミュレーションが実行できる。
【0109】
(d)ワークの状態遷移条件について
上述したように、アセンブリモデルの実現方法、ハンドリングされるワークの扱い方、およびアクチュエータのハイブリッドモデルなどによりモデル化方法などを説明した。次に、ワークの状態遷移条件について詳しく説明する。
【0110】
ワークの状態遷移条件は、機構モデルアナログセンサー(機構モデル・アナログ値センサー)の値、干渉チェックセンサー、ダイナミクスモデル変数の値およびこれらの組み合わせにより表現される。機構モデルアナログセンサーは、アセンブリモデルにおいて、指定された関節の角度を計測することなどに相当する。メカ制御システム212に接続するような実際の機械又は機器においては、4節リンク機構において、モータのない関節に取り付けられたポテンショメータを用いて、関節の角度を計測するような例が相当する。アセンブリモデルによるシミュレーションは、計測する関節の角度などの変数を含む連立代数方程式とし、この方程式を解くことにより、機構モデルアナログセンサー値を求めるようにする。
【0111】
また、一定時間ごとに部品を自動的に供給する機構をもつモデルをシミュレーションする場合に、状態遷移のタイミングの基準として、時間が用いられることがある。この場合、操作者は、制御対象シミュレータ253に予め条件を指定したうえで制御対象シミュレータ253を動作させる。すなわち、本実施形態に係るシミュレーションシステムは、ワークである部品の初期状態を、表示部211に表示させず、かつロボットの周囲との干渉チェックの対象にしないという属性を指定しておき、この属性の指定に加えて、シミュレーション開始後、決められた時間になった時点で部品供給台の上に、部品を表示部211に表示させるという条件で制御対象シミュレータ253を状態遷移させる。これにより、自動供給される部品を扱う機械の動作をシミュレーションすることができる。
【0112】
時間は、時間軸上でダイナミクスシミュレーションを行う場合に必須の変数又は特殊変数であるため、ダイナミクスシミュレータ205においては、組み込み済みの予約変数となっている。従って、制御対象シミュレータ253は、ダイナミクスシミュレータ205の変数として利用することにより、時間を使用した条件をシミュレーションすることができる。
【0113】
また、アセンブリモデルの3次元形状を用いた計算コストの大きい干渉チェックセンサーを用いずに、所望のアクチュエータの値を参照することによって条件を表現できる場合がある。図10などの例では、部品パレット36の位置は、アクチュエータとしてのロボット30の移動距離x2で表現できる。このx2は、ロボット30の移動距離であるため、ダイナミクスモデル変数である。
【0114】
さらに、条件の一つとして、ワーク31の重心位置を、ワールド座標系の原点とのx方向、y方向、z方向の機構アナログセンサー(距離センサー)としておくことにより、制御対象シミュレータ253は、ワーク31と部品パレット36との相対的な位置関係を表現し、ワーク31が部品パレット36上におかれた状態であるか否かを判断することができるようになる。
【0115】
さらに、ロボット30やワーク31の移動速度が、一定値以下という条件が必要な場合、制御対象シミュレータ253は、ダイナミクスモデル変数を参照する。このため、本発明は、機構モデルアナログセンサーの値、干渉チェックセンサーの値、ダイナミクスモデル変数の値を参照する構成に加え、さらにこれらを論理式(論理和又は論理積)の組み合わせにより、複雑な条件を表現できるようにしている。これにより、本実施形態に係る制御対象シミュレータ253は、タイミングが重要な制御ソフトウェアの検証のためにシミュレーションにおいて、シミュレーション目的に適合する状態遷移条件の表現を行うことができ、また、3次元の幾何学的な形状情報のみならず、時間的な要素も含む内容も含むシミュレーションが可能となる。以下に、本実施形態に係るシミュレーションシステムの状態遷移条件の一例を示す。
【表1】
【0116】
ここで、タイプ1からタイプ9までのセンサーチェック条件は、各々、機構モデルアナログセンサーの値、ないしは干渉チェックセンサー、ないしはダイナミクスモデル変数の値を参照する単独の条件である。各センサーチェック条件は、遷移条件の要素として機能する。このセンサーチェック条件に加えて、本実施形態に係る制御対象シミュレータ253は、1又は複数のセンサーチェック条件のAND結合条件とOR結合条件とを定義し、状態遷移条件を、木構造を用いて表現することにした。
【0117】
状態遷移条件は、図22に示されるように、0番から5番までの6つの要素により表現される。0番の要素は、Poten1と表現される機構モデルアナログセンサーの参照処理であり、制御対象シミュレータ253は、変数Poten1が10以下(タイプ1)と定義しておく。3番の要素は、干渉チェックセンサーのオン又はオフのチェックであり、制御対象シミュレータ253は、変数CSen1がオンになると定義しておく。制御対象シミュレータ253は、4番の要素のように、変数Work2が終了状態(タイプ9)とワークの状態を指定することにより、例えば、1つのワークの処理を終えると、次のワークが供給されるような状況を記述できる。
【0118】
制御対象シミュレータ253のワーク状態分類記憶手段210は、ワークが取り得る複数の状態を予めワーク状態・属性データ記憶手段213から読み込み、これらの複数の状態のいずれかに遷移するための状態遷移条件を、(Poten1が10以下でありかつ時間が30以降)又は(CSen1がオン)又は(Work2が終了状態)と定義し、状態遷移条件データを、属性データとして、ワーク状態分類記憶手段210自身に記憶しておくのである。換言すれば、属性データとは、0番から5番の各要素又は各要素の組み合わせからなるデータである。
【0119】
さらに詳述すると、状態遷移イベント検出手段209は、Poten1が10以下であるという要素が成立するか否かを機構モデルアナログセンサーの参照結果により判定する。状態遷移イベント検出手段209は、時間が30以降であるという要素が成立するか否かをダイナミクスシミュレータ205の変数を参照することにより判定する。状態遷移イベント検出手段209は、CSen1がオンであるという要素が成立するか否かを干渉チェックセンサーの値により判定する。また、状態遷移イベント検出手段209は、Work2が終了状態であるという要素の成立について、ワーク状態分類記憶手段210を参照することにより判定する。状態遷移イベント検出手段209は、4つの要素の組み合わせからなる状態遷移条件が成立するか否かを判定する。状態遷移イベント検出手段209は、状態遷移条件が成立したタイミングで、イベントが発生したと判定し、状態が遷移したことを認識する。このようにして、状態遷移イベント検出手段209は、ワークについて、その相手立体の変更を指令する。
【0120】
また、例えば、ハンド37がワーク31を把持している状態から、ワーク31が搬送機構33にのせられた状態に遷移した場合、状態遷移イベント検出手段209は、ワーク31と搬送機構33との干渉のチェック処理を停止させたり、干渉チェックの表示を停止させる。これにより、干渉チェックに要する冗長な計算処理が省かれるため、計算処理の高速化が図れる。
【0121】
以上説明したように、本発明のワークハンドリングシミュレーション方法によれば、制御ソフト技術者が制御ソフトウェアを実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証などを行うことができる。また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【0122】
開発現場において、ワークのハンドリングを含む製品の試作品や制御ボード252は、設計データから試作品の完成に至るまでにある程度の時間を要する。本発明によれば、制御ソフト開発者は、試作品の試作中に併行して、設計データに基づいて、製品のシミュレーションが行えるため、設計の後戻りが生じない。
【0123】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記のシミュレーションモデルは、空気圧アクチュエータ内の空気の流れの方向に応じて、ダイナミクスモデルの2種類の内部状態を切り替えているが、この内部状態は、モデルに応じて3種類以上の内部状態から選択切り替え可能にすることもできる。ワーク状態分類記憶手段210は、4つのワーク状態を記憶しているが、ワーク状態は、2、3又は5以上のワーク状態を記憶項することもできる。上記の入力部251と制御ボード252とは、別個に構成されていたが、これらは、一体に構成してもよい。機構モデルデータ記憶手段202、ダイナミクスモデルデータ記憶手段203、ワーク状態・属性データ記憶手段213は、いずれも、同じ記憶装置又は異なる記憶装置に構成することができ、ないしは、制御対象シミュレータ253の外部に設けられた各種の記憶媒体を用いて構成してもよい。上記の遷移条件の判定は、論理式の組み合わせによるものであるが、別の条件を付加するなど種々の論理条件を用いることができる。
【0124】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0125】
【図1】本発明の実施形態に係るシミュレーションシステムの構成例を示す図である。
【図2】本発明の実施形態に係るシミュレーション装置のブロック図である。
【図3】本発明の実施形態に係るシミュレーション方法を説明するためのフローチャートである。
【図4】アセンブリモデルの構成部品を模式的に示す図である。
【図5】各部品の部分形状と部分形状間の拘束関係との関係を模式的に示す図である。
【図6】幾何拘束の代数方程式による表現方法を説明するための図である。
【図7】部分形状間に定義された拘束関係における自由度を説明するための図である。
【図8】機構の自由度を規定するパラメーターを表す部分形状の例を示す図である。
【図9】各部品の部分形状と部分形状間の拘束関係と新たな拘束関係との関係を模式的に示す図である。
【図10】ハンドリングを伴うシミュレーションにおいてワークの初期状態を示す図である。
【図11】ワークがハンドに把持された状態を示す図である。
【図12】ワークが部品パレット上にある状態を示す図である。
【図13】ワークおよび部品パレットが一体となった状態を示す図である。
【図14】ハイブリッドモデルで表現された直流モータモデルのシミュレーション結果の一例を示す図である。
【図15】空気アクチュエータの初期状態と初期状態に対応する微分方程式を示す図である。
【図16】空気アクチュエータのバネによる反力が発生したときの状態とその状態に対応する微分方程式を示す図である。
【図17】空気アクチュエータのピストンに右向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図18】空気アクチュエータのピストンに左向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図19】空気アクチュエータの状態遷移を説明するための図である。
【図20】空気アクチュエータの状態遷移を簡略化して説明するための図である。
【図21】図20に対応するハイブリッド制約プログラミング言語のプログラム例を示す図である。
【図22】ワーク状態保持部における状態遷移条件の内部表現の一例を示す図である。
【符号の説明】
【0126】
1,2,3…部品、4,6,8〜11…平面、5,7…円筒面、12〜15…関係、16,17,22,23…拘束関係、18,19…直線、20,21…頂点、30…ロボット、31…ワーク、32…部品供給台、33,35…搬送機構、34,36…部品パレット、37…ハンド、39,41…アーム、40,42…関節部、201…シミュレータ本体、202…機構モデルデータ記憶手段、203…ダイナミクスモデルデータ記憶手段、204…アセンブリモデル生成記憶手段(アセンブリモデルデータ取得部)、205…ダイナミクスシミュレータ(ダイナミクスモデル変数取得部)、206…干渉チェック手段(干渉有無判定部)、207…幾何拘束処理手段(拘束関係データ生成部)、208…ワーク相対位置算出手段(相対位置算出部)、209…状態遷移イベント検出手段(状態遷移イベント検出部)、210…ワーク状態分類記憶手段(拘束関係データ生成部)、211…表示装置、212…メカ制御システム、213…ワーク状態・属性データ記憶手段、251…入力部、252…制御ボード、253…制御対象シミュレータ(シミュレーション装置)、301…バルブ、302…ピストン、303…バネ。
【特許請求の範囲】
【請求項1】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、
前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、
前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、
ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、
前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、
ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、
前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置。
【請求項2】
前記機構モデルのデータを取得する機構モデルデータ取得部と、前記機器と物体との干渉の有無を判定する干渉有無判定部と、前記機器のダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部とをさらに備え、
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数とのうちの少なくとも一つを用いて前記遷移条件イベントを検出することを特徴とする請求項1記載のシミュレーション装置。
【請求項3】
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数との各論理条件に基づいて、前記遷移条件イベントを検出することを特徴とする請求項2記載のシミュレーション装置。
【請求項4】
前記ダイナミクスシミュレータは、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルにしたがって前記ダイナミクスシミュレーションを実行するように構成され、
前記状態遷移イベントの発生が検出された場合は、前記ダイナミクスシミュレータが、複数のダイナミクスモデルを切り替えることを特徴とする請求項1記載のシミュレーション装置。
【請求項5】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置におけるシミュレーション方法であって、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法。
【請求項6】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルのうちのいずれかのダイナミクスモデルへの切り替えの有無を判定することを特徴とする請求項5記載のシミュレーション方法。
【請求項7】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、前記機構モデルのデータと、前記干渉の有無の判定結果と、前記ダイナミクスモデルの変数との各論理条件を評価することを特徴とする請求項5記載のシミュレーション方法。
【請求項8】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うためのシミュレーションプログラムであって、
コンピュータに、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラム。
【請求項1】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、
前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、
前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、
ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、
前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、
ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、
前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置。
【請求項2】
前記機構モデルのデータを取得する機構モデルデータ取得部と、前記機器と物体との干渉の有無を判定する干渉有無判定部と、前記機器のダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部とをさらに備え、
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数とのうちの少なくとも一つを用いて前記遷移条件イベントを検出することを特徴とする請求項1記載のシミュレーション装置。
【請求項3】
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数との各論理条件に基づいて、前記遷移条件イベントを検出することを特徴とする請求項2記載のシミュレーション装置。
【請求項4】
前記ダイナミクスシミュレータは、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルにしたがって前記ダイナミクスシミュレーションを実行するように構成され、
前記状態遷移イベントの発生が検出された場合は、前記ダイナミクスシミュレータが、複数のダイナミクスモデルを切り替えることを特徴とする請求項1記載のシミュレーション装置。
【請求項5】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置におけるシミュレーション方法であって、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法。
【請求項6】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルのうちのいずれかのダイナミクスモデルへの切り替えの有無を判定することを特徴とする請求項5記載のシミュレーション方法。
【請求項7】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、前記機構モデルのデータと、前記干渉の有無の判定結果と、前記ダイナミクスモデルの変数との各論理条件を評価することを特徴とする請求項5記載のシミュレーション方法。
【請求項8】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うためのシミュレーションプログラムであって、
コンピュータに、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラム。
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図21】
【図22】
【図1】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図21】
【図22】
【図1】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2008−9536(P2008−9536A)
【公開日】平成20年1月17日(2008.1.17)
【国際特許分類】
【出願番号】特願2006−176989(P2006−176989)
【出願日】平成18年6月27日(2006.6.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
【公開日】平成20年1月17日(2008.1.17)
【国際特許分類】
【出願日】平成18年6月27日(2006.6.27)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】
[ Back to top ]