(57)【要約】【課題】制御対象の実機への接続を伴わずにシミュレータを用いて検証する場合に、操作者が、製造装置などにおいてワークをハンドリングする動作を含めてシミュレーションを行えるようにする。【解決手段】シミュレーション装置２５３が、ワーク状態と立体とを関係付けた複数のワーク状態データ及びワーク状態間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部２１０と、ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを行うダイナミクスシミュレータ２０５と、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部２０９と、イベント発生時におけるワーク状態とその相手立体との相対的な位置関係を表すデータを算出する相対位置算出部２０８と、位置関係データとアセンブリモデルデータとに基づきワークの拘束関係を表すデータを生成する拘束関係データ生成部２０７とを備える。【選択図】図２
2008009536.tif 000002
【特許請求の範囲】
【請求項１】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、
前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、
前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、
ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、
前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、
ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、
前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置。
【請求項２】
前記機構モデルのデータを取得する機構モデルデータ取得部と、前記機器と物体との干渉の有無を判定する干渉有無判定部と、前記機器のダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部とをさらに備え、
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数とのうちの少なくとも一つを用いて前記遷移条件イベントを検出することを特徴とする請求項１記載のシミュレーション装置。
【請求項３】
前記状態遷移イベント検出部は、前記機構モデルのデータと、前記干渉の有無と、前記ダイナミクスモデルの変数との各論理条件に基づいて、前記遷移条件イベントを検出することを特徴とする請求項２記載のシミュレーション装置。
【請求項４】
前記ダイナミクスシミュレータは、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルにしたがって前記ダイナミクスシミュレーションを実行するように構成され、
前記状態遷移イベントの発生が検出された場合は、前記ダイナミクスシミュレータが、複数のダイナミクスモデルを切り替えることを特徴とする請求項１記載のシミュレーション装置。
【請求項５】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置におけるシミュレーション方法であって、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法。
【請求項６】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、ハイブリッドモデルにより記述された前記機器の複数のダイナミクスモデルのうちのいずれかのダイナミクスモデルへの切り替えの有無を判定することを特徴とする請求項５記載のシミュレーション方法。
【請求項７】
前記状態遷移イベントの発生の判定は、前記シミュレーション装置が、前記機構モデルのデータと、前記干渉の有無の判定結果と、前記ダイナミクスモデルの変数との各論理条件を評価することを特徴とする請求項５記載のシミュレーション方法。
【請求項８】
ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うためのシミュレーションプログラムであって、
コンピュータに、
前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、
前記制御プログラムからの制御コマンドを読み込むステップと、
前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、
前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、
前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、
前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メカトロニクス機器などの制御プログラムについてその制御プログラムを制御対象である機械の実機への接続を伴わずにシミュレータを用いて検証するためのシミュレーションシステムに用いて好適な、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムに関する。
【背景技術】
【０００２】
従来のアセンブリモデル作成方法としては、アセンブリのモデルに、機構解析や障害物回避動作計画に利用するために必要となる付加的な幾何拘束関係とそれに付随する機構パラメーターとを自動的に設定し、そのまま、機構解析や障害物回避動作計画を実行するものが知られている（例えば特許文献１参照）。また、テキストベースでの編集作業を行うことなく、システムの時間軸上の挙動をシミュレートするためのシミュレーションデータを容易に作成するシミュレーションデータ作成方法が提案されている（例えば特許文献２参照）。さらに、ハイブリッドモデルを利用して対象とする機構の挙動を時間軸に沿ってシミュレーションするシミュレーション方法が提案されている（例えば特許文献３参照）。ハイブリッドモデルに関しては、ハイブリッドモデリング言語を用いて、系を常微分連立方程式として表現する手法が知られている（例えば非特許文献１参照）。メカトロニクス機器のファームウェアの設計に関しては、上流段階での仕様のシミュレーションによるチェックなどにより、設計の後戻りを削減する手法が提案されている（例えば非特許文献２参照）。
【０００３】
例えば半導体製造装置において、ロボットがシリコンウェハーというワークをハンドリングすることなど、一般に、製造装置やその製造装置に組み込まれたロボットを含むシステムにおいては、ワークをハンドリングする必要がある。
【０００４】
これに近い状況の例として、コピー機やプリンタなどのメカトロニクス機器を用いたシミュレーションにおいては、紙搬送路が１次元的であるため、移動距離を与えることにより、機械の内部における紙の位置を求めてシミュレーションを行う。そこで、機構の定義の段階において、制御ソフト技術者は、紙の挙動モデルを予め定義しておき、定義した挙動モデルをデータファイルに含めたうえで、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、接続した制御ソフトウェアの検証を行うようにしている。
【特許文献１】特許第３６４３５０４号公報
【特許文献２】特開２００２−１４０６５３号公報
【特許文献３】特開２００４−１７８３００号公報
【非特許文献１】「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
【非特許文献２】近藤浩一、星野享、本橋聖一：「シミュレーションによるメカトロニクス機器ファームウェア開発の革新」、東芝レビュー、Vol.60, No.1, 2005
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ワークのハンドリングにおいては、シミュレーション装置が、ロボットや搬送装置などの動きにより、次にどのような状態になるのかを予め決めておくことができない。そのうえ、例えば、ロボットがワークを台の上に置くなどの動作についても、シミュレーション装置は、ワークがどのような位置や姿勢で台に置かれるかを予め決定することができないという不具合がある。
【０００６】
そこで本発明は、上記の課題に鑑み、制御プログラムを制御対象の実機への接続を伴わずにシミュレータを用いて検証するシミュレーションシステムにおいて、制御ソフト技術者が、製造装置などにおいてワークをハンドリングする動作を含めてシミュレーションを実行できる、シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、ワークのハンドリング動作を含む機器を制御対象とする制御プログラムを用いて前記機器をシミュレーションすることにより、前記制御プログラムの検証を行うシミュレーション装置であって、前記機器のダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部と、前記機器の機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部と、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部と、前記制御プログラムからの制御コマンドにしたがって、前記ダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するダイナミクスシミュレータと、ワークの状態遷移イベントの発生を検出する状態遷移イベント検出部と、前記複数のワーク状態データに基づいて、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出する相対位置算出部と、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成する拘束関係データ生成部とを備えたことを特徴とするシミュレーション装置が提供される。
【０００８】
また、本発明の別の一態様によれば、シミュレーション装置におけるシミュレーション方法であって、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを備えたことを特徴とするシミュレーション方法が提供される。
【０００９】
さらに、本発明の別の一態様によれば、シミュレーションプログラムであって、コンピュータに、前記機器の機構モデルについてのアセンブリモデルデータ、前記機器のダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込むステップと、前記制御プログラムからの制御コマンドを読み込むステップと、前記ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行するステップと、前記機構モデルのデータと、前記機器と物体との干渉の有無を判定するためのデータと、前記機器のダイナミクスモデルの変数とに基づいて、ワークの状態遷移イベントの発生を判定するステップと、前記状態遷移イベントが発生した場合に、前記状態遷移イベントの発生時における前記ワークのワーク状態とそのワーク状態に関係付けられた前記立体との間の相対的な位置関係を表す位置関係データを算出するステップと、前記位置関係データと前記アセンブリモデルデータとに基づいて、前記ワークの拘束関係を表すデータを生成するステップとを実行させることを特徴とするシミュレーションプログラムが提供される。
【発明の効果】
【００１０】
本発明によれば、制御ソフト技術者が、制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施形態に係るシミュレーション装置およびこのシミュレーション装置に利用されるシミュレーション方法並びにシミュレーションプログラムについて、図面を参照しながら説明する。なお、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
【００１２】
本発明の実施の形態に係るシミュレーションシステムは、制御プログラムを制御対象のシミュレータを用いて検証するためのものであり、図１に示されるように、入力部（入力装置）２５１と、制御ボード２５２と、制御対象シミュレータ２５３とを備えて構成される。入力部２５１は、制御ソフト技術者の操作指令を制御ボード２５２に入力するものであり、例えば、リモコン（リモコン装置、リモートコントローラー）が用いられる。制御ボード２５２は、制御対象シミュレータ２５３に対して、制御コマンドを入力するものである。制御ボード２５２は、制御プログラムを記憶するＲＯＭや、ハードウェア制御用のＬＳＩを搭載しており、本実施形態に係るシミュレーション方法により検証されるソフトウェア（ファームウェアともいう）が実行される。
【００１３】
制御対象シミュレータ２５３は、ワークのハンドリング動作を含むロボットなどのメカトロニクス機器を制御対象とする制御プログラムを用いてそのメカトロニクス機器をシミュレーションすることにより、制御プログラムの検証を行うシミュレーション装置であり、ワークとしてのウェハーをハンドリングするロボットの動きや、ロボットの関節に取り付けられたモータなどのアクチュエータの動作をシミュレートする。この制御対象シミュレータ２５３は、ワークのハンドリング動作を含むロボットなどの動きをシミュレートする。制御対象シミュレータ２５３には、シミュレーションの状況を表示するためのパソコンディスプレイなどからなる表示部（表示装置）２１１が設けられている。
【００１４】
制御ソフト技術者は、ファームウェアが実装された制御ボード２５２に、実機を接続する代わりに、制御対象シミュレータ２５３を接続する。これにより、入力部２５１からの操作指令に基づいて、制御ボード２５２上のファームウェアが実行され、制御ボード２５２から制御対象シミュレータ２５３に対して、モータのスタートやストップなどの制御コマンドが送られる。制御対象の実機の動きは、表示部２１１にコンピュータグラフィックスを用いて表示される。
【００１５】
制御対象シミュレータ２５３は、図２に示されるように、シミュレータ本体２０１、機構モデルデータ記憶手段２０２、ダイナミクスモデルデータ記憶手段２０３、ワーク状態・属性データ記憶手段（ワーク状態及び属性データ記憶手段）２１３から構成される。シミュレータ本体２０１は、本実施形態に係るシミュレーションを行うものであり、パソコンを用いることができる。このシミュレータ本体２０１は、制御コマンドを出力するメカ制御システム（ないしはシミュレータ）２１２に接続されている。このメカ制御システム２１２は、図１の入力部２５１と制御ボード２５２とに相当する。
【００１６】
機構モデルデータ記憶手段２０２は、複数の部品の形状を表すデータと複数の部品の間の拘束関係を表すデータとからなるロボットのアセンブリモデルデータを記憶するものである。
【００１７】
ダイナミクスモデルデータ記憶手段２０３は、ロボットが有する駆動系等の動特性などのダイナミクスモデルデータを記憶するダイナミクスモデルデータ記憶部である。また、ダイナミクスモデルデータ記憶手段２０３は、複数、例えば２つのダイナミクスモデルからなるハイブリッドモデルのダイナミクスモデルデータを記憶する。
【００１８】
ワーク状態・属性データ記憶手段２１３は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するものである。また、ワーク状態・属性データ記憶手段２１３が記憶する属性データとは、ロボットとロボットが把持する物体や障害物などとの衝突又は接触を検出する干渉チェック処理を停止するための状態遷移条件データをさす。本実施形態に係る制御対象シミュレータ２５３は、この属性データを参照することにより、例えば離れたところにおかれた２個の物体が、ロボットのハンドリングによって、積み重ねられると、干渉を検出する。２個の物体が積み重ねられた後、制御対象シミュレータ２５３は、干渉チェック処理を停止し、これにより、計算量の低減を図っている。
【００１９】
機構モデルデータ記憶手段２０２、ダイナミクスモデルデータ記憶手段２０３、ワーク状態・属性データ記憶手段２１３は、いずれも、記憶装置からなり、パソコンに内蔵又は増設されたハードディスクなどを用いることができる。なお、機構モデルデータ記憶手段２０２、ダイナミクスモデルデータ記憶手段２０３、ワーク状態・属性データ記憶手段２１３は、データを書き込み可能なＣＤやＤＶＤもしくはシミュレータ本体２０１から挿抜可能な小型メモリ等の記憶媒体を用いることができ、あるいはシミュレータ本体２０１と一体に構成したり、あるいはシミュレータ本体２０１から取り外し可能に構成されてもよい。
【００２０】
また、シミュレータ本体２０１は、ダイナミクスシミュレータ２０５、アセンブリモデル生成記憶手段（アセンブリモデル記憶手段）２０４、干渉チェック手段２０６、状態遷移イベント検出手段２０９、ワーク相対位置算出手段２０８、幾何拘束処理手段２０７、ワーク状態分類記憶手段（ワーク状態記憶手段）２１０を備えて構成される。
【００２１】
ダイナミクスシミュレータ２０５は、制御プログラムからの制御コマンドにしたがって、ロボットのダイナミクスモデルデータに基づき時間軸に沿ってダイナミクスシミュレーションを実行するものである。すなわち、ダイナミクスシミュレータ２０５は、ダイナミクスモデルデータを予め読み込み、シミュレーション実行中に制御プログラムからの制御コマンドをサイクル時間ごとに読み込みながら、ダイナミクスシミュレーションを実行する。また、ダイナミクスシミュレータ２０５は、ハイブリッドモデルにより記述されたロボットの複数のダイナミクスモデルにしたがってシミュレーションを実行するように構成され、状態遷移イベントの発生が検出された場合は、複数のダイナミクスモデルを切り替える。ダイナミクスシミュレータ２０５は、ロボットのダイナミクスモデルの変数を取得するダイナミクスモデル変数取得部としても機能する。
【００２２】
アセンブリモデル生成記憶手段２０４は、ロボットの機構モデルについてのアセンブリモデルデータを記憶するアセンブリモデルデータ記憶部である。アセンブリモデル生成記憶手段２０４は、機構モデルデータ記憶手段２０２の機構モデルデータを予め読み込み、アセンブリモデルデータを生成し、生成したアセンブリモデルデータを記憶する。アセンブリモデル生成記憶手段２０４は、指定した関節の角度などの値を取得する機能（以下ではこの機能を機構モデルアナログセンサーと呼ぶ。関節の角度などの値は、指定された関節の角度や、指定された同種間又は異種間の２つの幾何要素間の距離など、アナログ値の参照であるためこのような名前とした。物理的なセンサーが実在するわけではない。）を有しており、関節の角度などの値をロボットの機構モデルのデータとして取得する機構モデルデータ取得部としても機能する。
【００２３】
干渉チェック手段２０６は、ロボットの左手や右手が部品搬送路に接触する状況のようなロボットと物体との干渉の有無を判定するものであり、干渉有無判定部として機能する。干渉チェック手段２０６は、２つの立体を指定して、指定された立体間の干渉の有無を調べる機能（以下ではこの機能を干渉チェックセンサーと呼ぶことにする。こちらも物理的なセンサーが実在するわけではない。）を有し、この機能は、アセンブリモデル生成記憶手段２０４を参照して幾何学的な形状の干渉の有無を判断する。干渉チェック手段２０６で用いられる干渉チェックアルゴリズムについては、提案されている既存の様々の手法を用いることができる。
【００２４】
状態遷移イベント検出手段２０９は、ワークの状態遷移イベントの発生を検出するものであり、ワーク状態分類記憶手段２１０に記憶されているワークの状態に遷移するかどうかを判断する。本実施形態に係る状態遷移イベント検出手段２０９は、機構モデルアナログセンサー、干渉チェックセンサーおよびダイナミクスモデル変数を参照し、機構モデルアナログセンサーが得たデータと、干渉チェックセンサーによる干渉の有無と、ダイナミクスモデルの変数値とのうちのいずれか１つ又はこれらのすべてを論理式の形で組み合わせて評価することにより、遷移条件を判定する。
【００２５】
ワーク相対位置算出手段２０８は、複数のワーク状態データに基づいて、状態遷移イベントの発生時におけるワークのワーク状態とそのワーク状態に関係付けられた相手立体との間の相対的な位置関係を表す位置関係データを算出するものであり、相対位置算出部として機能する。すなわち、ワーク相対位置算出手段２０８は、ワークの状態が遷移する際に、ワークの相対的な位置関係を算出する。
【００２６】
幾何拘束処理手段２０７は、位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する拘束関係データ生成部である。幾何拘束処理手段２０７は、アセンブリモデル生成記憶手段２０４を参照して幾何拘束の処理を行う。
【００２７】
また、ワーク状態分類記憶手段２１０は、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを記憶するワーク状態データ記憶部である。ワーク状態分類記憶手段２１０は、ワークが、ロボットの左手によって把持されるか、又はロボットの右手によって把持されるかなど、ワークが何によって把持されているかによって、ワークが取りうる状態を予め分類し、分類したワーク状態を記憶しておく。
【００２８】
なお、状態遷移イベント検出手段２０９、ワーク相対位置算出手段２０８、幾何拘束処理手段２０７、ワーク状態分類記憶手段２１０の各機能は、いずれも、ＣＰＵ（中央演算装置）、ＲＯＭ、ＲＡＭ、ＩＣ、ＬＳＩおよびハードディスクなどにより実現される。
【００２９】
これにより、本発明のシミュレーション方法は、最初に、制御対象シミュレータ２５３が、ロボットの機構モデルについてのアセンブリモデルデータ、ダイナミクスモデルデータ、ワーク状態と立体とが関係付けられた複数のワーク状態データおよび複数のワーク状態の間の遷移条件を表す遷移条件データを読み込む。制御対象シミュレータ２５３は、制御プログラムからの制御コマンドを読み込んでから、ダイナミクスモデルデータに基づきダイナミクスシミュレーションを実行する。制御対象シミュレータ２５３は、機構モデルアナログセンサーのアナログのデータと、干渉チェックセンサーの値と、ダイナミクスモデルの変数値とに基づいて、ワークの状態遷移イベントの発生を判定する。制御対象シミュレータ２５３は、状態遷移イベントが発生した場合に、その状態遷移イベントの発生時におけるワークとワークの相手となる立体との間の相対的な位置関係データを算出する。そして、制御対象シミュレータ２５３は、この位置関係データとアセンブリモデルデータとに基づいて、ワークの拘束関係を表すデータを生成する。
【００３０】
また、本実施形態に係るシミュレーションシステムは、本発明のシミュレーション方法をパソコン等のコンピュータに実行させるためのプログラムを保存しておくこともできる。コンピュータが、そのプログラムを読み出すことにより、制御対象シミュレータ２５３に処理を実行させる。制御対象シミュレータ２５３は、このプログラムを、ハードディスクやパソコンから取り外し可能な各種の記憶媒体に保存することができ、このようにすれば、本実施形態に係るシミュレーション方法をコンピュータに実行させるためのプログラムの保存、運搬、販売等を容易に行える。
【００３１】
本実施形態に係るシミュレーションシステムにおいては、制御ソフト技術者が、制御ソフトウェアが実装されたメカ制御システム２１２を、実機に接続する手順と同じ手順でシミュレータ本体２０１に接続してソフトウェアの検証を行えるという利便性を確保しつつ、制御対象シミュレータ２５３が、機械技術者が予め作成しておいた制御対象モデルデータを読み込むことにより、シミュレーションが実行可能な状態となるように構成されている。この制御対象モデルデータは、機構モデルデータ記憶手段２０２とダイナミクスモデルデータ記憶手段２０３とワーク状態・属性データ記憶手段２１３とのそれぞれに記憶されたデータをさす。
【００３２】
具体的には、機構モデルデータとは、ロボットなどの機器を構成する各部品の３次元空間内における形状データと、各部品が組み合わせられたモデルのデータとを含むものをさす。
【００３３】
ダイナミクスモデルデータは、モータなどのアクチュエータの動特性に関するモデルのデータをさす。ダイナミクスモデルデータ記憶手段２０３は、例えばモータの速度が時間変動する状況を微分方程式などのデータとして記憶しており、ダイナミクスシミュレータ２０５がこの微分方程式のデータを数値積分するなどの処理を行うことにより、ロボットの挙動が表現されるようになっている。さらに詳述すると、ダイナミクスモデルデータは、所望のタイミングにおいて、ロボットの関節角が４５°、９０°のときにその関節がどのような形状になるか、あるいは関節角が４５°や９０°のときに部品供給台とアームとの衝突が発生するかなど、３次元空間における衝突の有無の状態を判断するためのものである。ワークの重さに応じた時間遅れを検証したり、空気アクチュエータのある瞬間における姿勢や、アームの姿勢の時間変動など、部品の位置、姿勢および速度を検証するためにも、ダイナミクスモデルデータは用いられる。
【００３４】
ワーク状態・属性データは、本発明に特有のデータであり、ワークの取りうる各状態が、「ワークがどの立体と関係があるのか」を基準に列挙されており、それぞれの状態ごとに、複数のその状態に遷移するための条件が記述されている。例えば、ワーク状態・属性データは、ワークが、「ロボットハンドに把持されているのか」、又は「台の上に乗っているのか」という視点で、ワークの相手の立体を指定するようにして列挙されている。ワークとその相手（ロボットハンドや台など）との幾何学的な位置関係は、予め決めることができないが、本実施形態に係る制御対象シミュレータ２５３は、ワークとその相手との幾何学的な位置関係を定義するため、ワーク状態・属性データ記憶手段２１３は、この幾何学的な位置関係データを記憶する必要がない。
【００３５】
上述の構成により、本発明のシミュレーション装置の動作について説明する。
【００３６】
図３に示されるように、シミュレーション実行前のステップＳ１において、アセンブリモデル生成記憶手段２０４は、機構モデルデータを読み込み、この機構モデルデータから生成したアセンブリモデルデータを記憶する。機構モデルデータは、幾何学的な機構のシミュレーションに際しては、幾何拘束処理手段２０７および干渉チェック手段２０６に参照される。幾何拘束処理手段２０７におけるアセンブリモデルの処理手順については後述する。ステップＳ１においては、ダイナミクスモデルデータも、同様にシミュレーション実行開始前に読み込まれ、ダイナミクスシミュレータ２０５にて記憶され、アクチュエータのダイナミクスシミュレーションに利用される。
【００３７】
ステップＳ２において、シミュレータ本体２０１は、メカ制御システム２１２からシミュレーション開始指示を受け取る。
【００３８】
ステップＳ３において、ダイナミクスシミュレータ２０５は、メカ制御システム２１２より送られる制御コマンドを受け取る。シミュレーションが開始されると、メカ制御システム２１２から送られる制御コマンドのみを外部から受け取るデータとしてシミュレーションが実行される。本実施形態に係るシミュレーションシステムにおいては、メカ制御システム２１２からの制御コマンドに応じて、系の状態を変化させている。本実施形態に係るシミュレーションモデルは、バルブ、バネおよびピストンからなる空気アクチュエータを含むものである。このシミュレーションモデルは、常微分方程式系で表現できる連続系のモデルではあるが、イベントの発生とともに、空気アクチュエータ内の空気の流れを右側又は左側のいずれの方向からも選択可能にしており、モデルを表現する式を入れ替えることが可能なハイブリッドモデルを採用している。
【００３９】
このため、ステップＳ４において、ダイナミクスシミュレータ２０５は、ダイナミクスモデルの内部状態の切り替えの要否を判定し、内部状態がダイナミクスモデルに対応していない場合には、ｎｏルートを通り、ステップＳ６に進む。ステップＳ４において、内部状態がダイナミクスモデルに対応している場合、ダイナミクスシミュレータ２０５は、ｙｅｓルートを通り、ステップＳ５において、ダイナミクスモデルの内部状態を切り替えてからステップＳ６に進む。なお、ハイブリッドモデルによってアクチュエータの挙動がどのようにシミュレーションされるかについては後述する。
【００４０】
本実施形態に係るシミュレーションは、時間軸に沿って、サンプリング時間など、予め決められた時間の差分Δｔごとに時間を進めて実行される。ステップＳ６において、ダイナミクスシミュレータ２０５は、関節の角度などについては、モータの特性に基づき例えば数値積分処理を行って算出する。ダイナミクスシミュレータ２０５が時間を１ステップ（Δｔ）進めると、そのΔｔごとに状態遷移イベント検出手段２０９を起動する。
【００４１】
ステップＳ７において、状態遷移イベント検出手段２０９は、ワーク状態分類記憶手段２１０に記憶されているワーク状態ごとに記憶されている状態遷移条件を参照する。状態遷移イベント検出手段２０９は、その状態遷移条件の内容に対応して、ダイナミクスシミュレータ２０５を参照し、指定された変数の値の取得処理の実行、ないしは干渉チェック手段２０６を起動して干渉の有無の問い合わせ処理の実行、ないしは幾何拘束処理手段２０７にアクセスして指定した関節の角度などの値を取得する処理を実行する。
【００４２】
以下では、説明の便宜上、ダイナミクスシミュレータ２０５を参照して指定された変数の値の取得処理を、「ダイナミクスモデル変数値の参照」と呼ぶことにする。干渉チェック手段２０６を起動して干渉の有無の問い合わせ処理を行うことを、「干渉チェックセンサーの参照」と呼ぶことにする。この干渉チェックセンサーの参照とは、実際の立体同士の幾何学的な干渉をチェックする処理のほかに、フォトセンサーの光ビームを３次元形状として予め定義しておき、このビーム形状と他の立体の形状との幾何学的な干渉の有無を調べるためにフォトセンサーのオン又はオフをチェックする動作をも含める。また、幾何拘束処理手段２０７にアクセスし、指定した関節の角度などの値を取得する処理は、指定された関節の角度や、指定された同種間又は異種間の２つの幾何要素間の距離など、アナログ値の参照であるため、この処理を「機構モデルアナログセンサー（機構モデル・アナログ値センサー）の参照」と呼ぶことにする。
【００４３】
ステップＳ８において、さらに、状態遷移イベント検出手段２０９は、これらのダイナミクスモデル変数値の参照、干渉チェックセンサーの参照、および機構モデルアナログセンサーの参照の各実行結果に基づき、これらの値又は実行結果の組み合わせからなる論理式を評価し、状態遷移イベントが発生しているか否かの判断をする。
【００４４】
ステップＳ８において、状態遷移イベントの発生が検出されると、ｙｅｓルートを通り、ステップＳ９に進む。ここで、その状態遷移イベントに対応する状態においてワークと一体に動くべき立体が、ワーク状態分類記憶手段２１０に記憶されているため、ステップＳ９において、状態遷移イベント検出手段２０９は、ワーク相対位置算出手段２０８を起動し、ワーク相対位置算出手段２０８は、ワークの相対位置を算出する。
【００４５】
さらに、ステップＳ１０において、ワーク相対位置算出手段２０８が幾何拘束処理手段２０７を起動し、この幾何拘束処理手段２０７が、ワーク状態分類記憶手段２１０を参照し、ワークと一体に動くべき立体と状態遷移イベントが発生したタイミングにおける位置関係とによって、幾何学的に固定された関係を定義する。また、幾何拘束処理手段２０７は、ステップＳ１０において、冗長な幾何拘束関係を削除する。換言すれば、ワークの相手となる立体との相対的な位置関係を、ワーク相対位置算出手段２０８が算出し（ステップＳ９）、その算出結果である相対的な位置関係に基づいて、幾何拘束処理手段２０７が、幾何学的な固定関係を定義する（ステップＳ１０）。
【００４６】
これにより、アセンブリのモデルとしては、新たな関係の定義がなされ、異なる挙動を示すことになり、ワークのハンドリング動作が再現される。この新たな幾何学的な関係の定義処理など（ステップＳ１０）が終了した場合、あるいはステップＳ８において、状態遷移イベントが発生しないと判定された場合（ｎｏルート）には、表示部２１１は、アセンブリ（機構モデル）の状態を、コンピュータグラフィックスにより表示する。これにより、制御ソフト技術者は、ワークがどこまで動いたか等の動きについて、時間軸上でどのように動いているか、あるいは、所望の時間における部品の位置、姿勢又は速度を検証したり、時間をシフトさせたときの部品の相対関係等を検証する。
【００４７】
ステップＳ１１において、ダイナミクスシミュレータ２０５は、時刻が予め決められたシミュレーション時間に到達したか否かを判定し、時刻が終了時間に到達してない場合には、ｙｅｓルートを通り、ダイナミクスシミュレータ２０５は、さらに時間をΔｔ進める処理に進む。また、ダイナミクスシミュレータ２０５は、ステップＳ１１において、時刻が予め決められたシミュレーション時間に到達したと判定した場合は、ｎｏルートを通り、シミュレーションを終了させる。この間、サンプリング時間Δｔの間のシミュレーションが行われ、終了時間が到来するまで、又は操作者からのシミュレーション中断操作があるまでシミュレーションが実行される。
【００４８】
このように、本発明によれば、制御ソフト技術者が制御ソフトウェアを、実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証を行うことができ、また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【００４９】
以下、上記一連の処理手順の各処理の詳細についてさらに詳しく説明する。
【００５０】
（ａ）アセンブリモデルの表現および作成の方法について
本実施形態に係るアセンブリモデル生成記憶手段２０４におけるアセンブリモデルの表現および作成の各方法は、例えば本発明者による特許３６４３５０４号公報「アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体」に記述された考え方を用いることができる。図４に示されるような部品１、２、３からなるアセンブリモデルを作成する場合を例にして説明する。本実施形態に係るシミュレーションシステムは、部品１、２、３の各形状データを、例えばコンピュータの入力装置を用いてファイルより読み込み、記憶装置に記憶させる。このとき、読み込まれた各部品は、表示部２１１によって例えば図４に示されるように表示される。
【００５１】
部分形状間の関係について入力すべき関係がある場合には、部分形状とその関係とを、上記入力装置を用いて入力し、上記記憶装置に格納する。例えば図４に示される部品１、２、３からアセンブリモデルを作成するために、部品１と部品２とに関して、部品１の部分形状である平面４と部品２の部分形状である平面６とが一致し、かつ部品１の部分形状である円筒面５と部品２の部分形状である円筒面７とが同軸であるという関係が入力される。同様に部品２と部品３とに関しては、部品２の部分形状である平面８と部品３の部分形状である平面１０とが一致するという関係、および部品２の部分形状である平面９と部品３の部分形状である平面１１とが一致するという関係がそれぞれ入力される。
【００５２】
このように入力された関係が記憶装置においてどのように記憶されるかを模式的に示した例を図５に示す。図５から分かるように、記憶装置においては、部品１、２、３の情報および部分形状の情報のほかに、平面同士の一致関係１２、１４、１５および同筒同士の同軸関係１３がそれぞれデータとして存在している。
【００５３】
次に、記憶装置に格納された情報に基づいて、ワーク相対位置算出手段２０８（図２）は、部品１、２、３の相対的位置関係を算出する。この相対的位置関係を算出する機能は、一般にソフトウェアとして提供されており、例えば英国Ｄ・Ｃｕｂｅｄ社の３Ｄ−ＤＣＭ（商品名）は、そのようなソフトウェアの一例である。以下、このようなソフトウェアを「幾何拘束処理ライブラリ」とも呼ぶことがある。具体的には、各部品には、部品特有のローカル座標系が設定されており、このローカル座標系と、アセンブリモデルを作成すべき空間に固定されたワールド座標系との間の変換マトリクスという形で上記相対的位置関係が表現される。すなわち、図５に示される部品間の関係１２、１３、１４、１５から、部品１と部品２および部品３との位置を表現する変換マトリクスが上記幾何拘束処理ライブラリによって自動的に計算される。
【００５４】
ここでは、幾何拘束処理ライブラリの処理内容を２次元の簡単な例でさらに詳しく説明する。図６に示されるように、ワールド座標系１０１で示される空間には、部品１０２と部品１０３とが存在する。今、部品１０２の部分形状である直線１０４と部品１０３の部分形状である直線１０５とを一致させて、部品１０２と部品１０３との位置を計算することを考える。まず、直線１０４は、部品１０２のローカル座標系において、
【数１】
2008009536.tif 000003
【００５５】
と表現されている。また直線１０５は部品１０３のローカル座標系において、
【数２】
2008009536.tif 000004
【００５６】
という方程式で表現されている。部品１０２の位置を示すワールド座標系から部品１０２のローカル座標系への変換マトリックスは、
【数３】
2008009536.tif 000005
【００５７】
であり、ワールド座標系から部品１０３への変換マトリックスは、
【数４】
2008009536.tif 000006
【００５８】
であるとする。このとき、直線１０４のワールド座標系における方程式を、
【数５】
2008009536.tif 000007
【００５９】
とし、直線１０５のワールド座標系における方程式を、
【数６】
2008009536.tif 000008
【００６０】
とすると、これらの関係は以下のような連立方程式、
【数７】
2008009536.tif 000009
【数８】
2008009536.tif 000010
【数９】
2008009536.tif 000011
【数１０】
2008009536.tif 000012
【００６１】
で表される。
【００６２】
一方、２つの直線が一致する条件は、
（１）一方の直線上の一点が他の直線上にある
（２）方向ベクトルが平行（外積が０）
の２つの幾何学的条件と等価である。これをワールド座標系において表現すると、
【数１１】
2008009536.tif 000013
【００６３】
となる。この条件を加えて方程式を解くことにより、直線１０４と直線１０５とが一致する条件を満たす部品１０２および部品１０３の位置が算出される。方程式を解く都合からsinθとcosθとをそれぞれｓとｃとおくと、以下のような連立方程式になる。すなわち、
【数１２】
2008009536.tif 000014
【数１３】
2008009536.tif 000015
【数１４】
2008009536.tif 000016
【数１５】
2008009536.tif 000017
【数１６】
2008009536.tif 000018
【数１７】
2008009536.tif 000019
【００６４】
という２次の連立方程式になる。これらの２次の連立方程式には、１２の独立な式があり、直線１０４と直線１０５とのローカル座標系における各直線の方程式を表す８つの定数ｘ１，ｙ１，ｘ２，ｙ２，ａ１，ｂ１，ａ２，ｂ２が含まれる。変数の数は１６であり、このうち求めたいものは部品１０２と部品１０３との位置を示すパラメーターｃ１，ｓ１，ｃ２，ｓ２，α１，β１，α２，β２である。これらのｃ１，ｓ１，ｃ２，ｓ２，α１，β１，α２，β２の値を求めるためには、上記２次連立方程式から８つの定数ｘ１，ｙ１，ｘ２，ｙ２，ａ１，ｂ１，ａ２，ｂ２と、変数のうちのパラメーターｃ１，ｓ１，ｃ２，ｓ２，α１，β１，α２，β２と異なる他の変数とを消去すれば良い。このように変数を消去する方法としては、多項式イデアル（Polynomial ideal）のグレブナー基底（Groebner basis）を求めるブッフバーガーアルゴリズム（Buchberger algorithm）が知られているので、この方法を用いて不要な変数を消去してからｃ１，ｓ１，ｃ２，ｓ２，α１，β１，α２，β２の値を求めてもよいし、上記２次連立方程式の定数を代入して直接解いてもよい。いずれにしても、式の数よりも変数の数が４多いことから、式として４自由度があることが分かる。この式は、ワールド座標系において定義されており、今注目している点が２つの部品の相対位置関係であることに注意すれば、どちらか一方の部品の位置を固定しても構わないため、例えば部品１０２を固定するとして、ｃ１，α１，β１を定数とすると、式の数よりも変数が１つ多いことになり、相対的な自由度は１あることが分かる。部品１０３の位置を算出するためには、ｃ２，ｓ２，α２，β２の値のうち１つを定数として決めて（現在の値に固定して）、他の値を求めればよい。また一般に、拘束条件が実現できないような状況（例えば２つの直線が平行でかつ垂直である）で定義されている場合は、連立方程式に解が存在しなくなるため、この状況は検知可能である。このように、幾何拘束処理ライブラリは、与えられた拘束関係を代数的な式として表現しなおして、処理を行う。
【００６５】
再び図５に戻り、説明を進める。
【００６６】
上述の各部品の部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように、算出された部品間の相対的位置関係（アセンブリモデル）の一例を図７に示す。この図７に示される相対的位置関係は、自動的に計算された部品の変換マトリクスを、部品の形状データに作用させて（形状データを用いて変換して）得られた部品の位置を示している。
【００６７】
この図７からも分かるように、上述のようにして求められたアセンブリモデルは、部品間の相対的位置関係を完全に決定するだけの拘束関係を一般的に有しているとは限らない。例えば、部品１と部品２との間で相対的な回転１６を行っても、また、部品２と部品３との間で相対的に平行移動１７を行っても、依然として図５に示される関係はすべて保たれている。すなわち図７に示されるアセンブリモデルは、回転自由度１６と、並進自由度１７とを有している。
【００６８】
一方、機構解析などの分野においては、機構の自由度を規定するパラメーターにより運動を記述する。すなわち図７の例においては、回転１６の回転自由度に対応する回転角と、平行移動１７の並進自由度に対応する平行移動距離との２つのパラメーターがこれに対応する。
【００６９】
これらのパラメーターを規定するための部分形状の例は、図４に対応して図８に示されるようになる。符号１８，１９は、それぞれ、円筒面の中心軸と直交する方向ベクトルを表す直線である。これらの直線１８，１９はともに円筒面に剛体接続されているとする。同筒同士が同軸という拘束関係があれば、上記直線１８，１９同士の角度を新たな拘束関係として付加することにより、この角度が回転自由度のパラメーターとなる。従って、このような直線１８，１９は円筒の形状ないしは位置姿勢を表す要素であるため、本発明は、直線１８，１９を部分形状と定義する。
【００７０】
また、図８において、符号２０，２１は、それぞれ、部品２，３上の頂点である。これらの頂点２０，２１は平面同士が一致するという拘束関係が既に定義されている平面の部分形状ではないが、平面上の幾何要素でもあり、幾何学的又は位相的に関係している。このため、部品２の平面８と部品３の平面１０とが一致している拘束関係の下で、各々の平面上の同一直線上の頂点２０，２１間の距離を新たな拘束関係として付加することにより、この距離が並進自由度のパラメーターとなる。
【００７１】
図５に示されるアセンブリモデルに、図８に示される直線１８，１９のなす角度と、頂点２０，２１間の距離とを新たな拘束関係２２，２３として付加したときに記憶装置に記憶されている様子を図９に示す。図９に示されるように、各部品の部分形状と、部分形状間の拘束関係とに加えて、関節など駆動部を定義するために導入された新たな拘束関係とが記憶装置に記録される。
【００７２】
機構解析を行う際には、図８に示される直線１８，１９のなす角度と、頂点２０，２１間の距離とをモータなどのアクチュエータに対応させることにより、アクチュエータパラメーター（モータの角度など）の変化から、機構の動きを求めるような簡単な機構解析は、以下のようにそのまま実行することも可能である。すなわち、以上の手順で決定された機構パラメーターに対して、ある時刻における値が与えられると、幾何拘束処理ライブラリは、個々の部品の３次元又は２次元空間における位置および姿勢を決定し、位置および姿勢を時刻の刻み幅にあわせて順次変化させるのである。これにより、機構としての動きをシミュレーションとして確認するなどの作業を行うことが可能になる。
【００７３】
また、２つの回転軸が歯車で結合されているような場合には、上記図８に示される直線１８，１９のなす角度のような角度パラメーター同士の関係を、歯車の歯数比を係数とする１次式として表現すればよい。すなわち、本実施形態に係る制御対象シミュレータ２５３は、歯車のような機構をも多項式で表現できるため、幾何拘束処理ライブラリが、与えられた拘束関係を代数的な式として表現しなおして扱う方法と同じ方法を用いて統一的に処理、演算を行うことが可能である。具体的には、アセンブリモデル生成記憶手段２０４は、歯数比を係数とする１次式を連立方程式に加えればよく、歯車を加えることで、全体として自由度が１つ減少することも、立体間の自由度を計算した手法と同じ手法により拘束関係を算出できる。
【００７４】
上記のようなアセンブリモデル生成記憶手段２０４のアセンブリモデルの作成方法により、本実施形態に係る制御対象シミュレータ２５３は、例えば製造装置の搬送機構やロボットの機構のモデルを表現し、その幾何学的な動きをシミュレーションすることが可能になる。図１に示される機構モデルデータ記憶手段２０２は、このアセンブリモデルの作成方法により作成されたデータである。
【００７５】
本発明においては、さらに、搬送機構やロボットがハンドリングする対象物であるワークの動きをシミュレーションできるように、以下のような処理を行う。一例として、半導体製造装置内のロボットがハンドリングするウェハーがハンドリング対象のワークである。
【００７６】
まず、本実施形態に係る制御対象シミュレータ２５３は、ロボットがワークを把持するような、ワークの状況を、ワークが何によって把持されているかによって分類する。すなわち、ワーク状態分類記憶手段２１０は、ワークがどのような状態を取りうるかを予め分類して記憶しておいたデータファイルを読み込む。あるいは、制御対象シミュレータ２５３は、マウスやキーボードなどの入力機器を用いてワークの状態を入力するなどを行い、入力したワークの状態を一旦データファイルとして保存し、そのデータファイルを読み込むことにより、データファイルをワーク状態分類記憶手段２１０に記憶する。
【００７７】
図１０に、多関節のロボット３０が部品供給台３２の上におかれたワーク３１をハンドリングする状況の一例を示す（本例題は、制御対象シミュレータ２５３を用いてシミュレーション可能なものである）。この図１０に示されるロボット３０は、ハンド（ロボットハンド）３７、アーム３９、４１、４３、関節部４０，４２からなるアクチュエータ機構を有するモデルである。このアクチュエータ機構のまわりには、ロボット３０の作業スペース分を空けて床面と略平行に並置された外観略箱形の部品パレット３４，３６と、部品パレット３４，３６をそれぞれ左右に搬送する搬送機構３３，３５とが設けられている。アーム４３は、その一端が床面内で旋回自在に支持されるとともに、搬送機構３３，３５に沿って移動可能に構成され、さらに、他端が関節部４２を介してアーム４１の一端に回動可能に接続されている。また、アーム４１の他端は、関節部４０を介してアーム３９の一端に回動可能に接続されており、アーム３９の他端には、ワーク３１を把持するハンド３７が装着されている。関節部４０，４２は、いずれも、図示しないモータによって駆動されるようになっている。さらに、関節部４０，４２には、可変抵抗器からなる角度センサーが取り付けられており、アーム３９，４１の関節角およびアーム４１，４３の関節角は、いずれも、角度センサーが抵抗値の変化により計測し、検知可能にされている。本発明は、この角度が所定値以上になったときに、状態を変更すると予め記述されており、また、その角度の大きさは、位置関係により、予め計算されて取得される。
【００７８】
ここで、ワーク３１は、部品供給台３２の上におかれるか、又は部品パレット３４もしくは部品パレット３６におかれるか、又はハンド３７に把持されているかの４つの状態が想定される。部品パレット３６上のどの位置にワーク３１がおかれるかなどのことは、シミュレーションを実行しないと決定できないため、位置情報は予め登録することはできないが、本例題においては、ワーク３１について上記４つの状態を取り得ることが、ワーク状態分類記憶手段２１０に記憶される。
【００７９】
ワーク状態分類記憶手段２１０に記憶された４つのそれぞれのワーク状態に対して、本実施形態に係る制御対象シミュレータ２５３は、さらに、４つの状態に遷移する条件を定義する。遷移条件をどのように表現するかについては、その詳細については後述するが、例えば、部品供給台３２と部品であるワーク３１との幾何学的な接触が検出されたタイミングで、「ワーク３１は部品供給台３２の上におかれた状態に遷移する」といった状態遷移条件を定義しておく。すなわち、シミュレーション開始前に、ワーク３１の４つの状態が列挙されており、４つの各状態への遷移条件が予め定義されるようにしておき、シミュレーション開始後の実行時に、ワーク３１が４つの状態のうちのどの状態を取るのか、およびその状態における位置関係がどのようになるのかが、後述のとおり自動的に計算される。
【００８０】
このように、本実施形態に係る制御対象シミュレータ２５３は、シミュレーション実行前に定義すべきデータと実行時に自動計算されるデータとを明確に分離している。従って、シミュレーション実行前に定義すべきデータは、例えば機械系の技術者が用意し、シミュレーションを使ってソフトウェアのチェックやデバッグを行う制御ソフト技術者は、不慣れなワークの状態の設定などに煩わされることなく、制御ソフトウェアの内容に集中できる。
【００８１】
以下では、シミュレーション実行前に定義されたデータを用いて、シミュレーションがどのように実行されるかを、図１０から図１３を参照して一連の動作を説明する。
【００８２】
図１０の状況は、初期状態を示しており、ワーク３１が部品供給台３２におかれている。ロボット３０は、各関節部４０，４２を駆動するモータへのコマンド実行や電圧印加などにより、図１１に示される位置まで移動する。ここで、ハンド３７とワーク３１との間で幾何学的な干渉が検出されたときに、ワーク３１がハンド３７に把持される状態に遷移する、と条件が決められていると、図１１の状況で、ワーク３１の状態が変化する。ハンド３７とワーク３１との間で幾何学的な干渉検出のイベントが発生したタイミングで、状態が遷移するため、ワーク相対位置算出手段２０８は、指定された状態において相手となる立体（この場合はハンド３７）との相対的な位置関係を計算する。３次元空間の位置関係は、関係を定義する一方の立体のローカル座標系から、他方の立体のローカル座標系への変換マトリックスとして表現される。３次元立体の場合は、４×４のマトリックスになり、現在のローカル座標系のグローバル座標系との変換マトリックスから計算できる。この４×４マトリックスは、２つのローカル座標系の間の幾何拘束となり、内部においては、図６の例を用いて説明したように、４×４マトリックスの要素を係数とする１次式として表現されている。
【００８３】
ワーク３１がハンド３７に上記４×４マトリックスに対応する幾何拘束関係によって固定され（新たな座標系に取り込まれ）、これまでワーク３１と部品供給台３２との間に定義されていた幾何拘束又は関係がキャンセルされると、ワーク３１はロボット３０の動きに追従して動くことになる。
【００８４】
図１２の状況は、ロボット３０が動いて、ワーク３１が部品パレット３６の上に移動した状態である。この状況は、ワーク３１と部品パレット３６との間の干渉チェックが検出されたことを示すイベントとして検知される。このときに、ワーク相対位置情報算出手段２０８により、ワーク３１の部品パレット３６からの相対位置、すなわち、部品パレット３６のローカル座標系からワーク３１のローカル座標系への変換マトリックスが算出される。そして、ワーク３１とハンド３７との間の幾何拘束がキャンセルされ、ワーク３１と部品パレット３６との間の幾何拘束が付加されて、ワーク３１が部品パレット３６の上におかれた状況に移行する。
【００８５】
図１３の状況は、ワーク３１および部品パレット３６が一体となってさらに移動した後の状況を示している。ワーク３１は、幾何拘束により部品パレット３６に固定されているので、部品パレット３６とともに移動している。
【００８６】
このようにして、シミュレーション実行前に定義されたデータを用いて、シミュレーションが実行される。
【００８７】
以上は、ロボットなどのアセンブリモデルの表現およびシミュレーションと、ワークの扱いに関する３次元空間（ないしは２次元平面）内での機構的なモデル化とについての説明であった。
【００８８】
（ｂ）モータなどの特性表現について
次に、モータなどの特性表現について説明する。モータなどアクチュエータなどのモデル化では、加速や減速など時間軸上でどのような挙動をするかかの検証が重要であり、ダイナミクスの表現が必要となる。
【００８９】
本実施形態に係る制御対象シミュレータ２５３は、ハイブリッドモデリング言語により、系を常微分連立方程式として表現する方法を用いる。ハイブリッドモデリング言語の具体的な細かな仕様および基本的な考え方については、発明者の論文「Use of hybrid models for testing and debugging control software for electromechanical systems」（IEEE/ASME Trans. Mechatronics, Vol.10, No.3, pp.275-284）に詳しく記述されている。
【００９０】
単純なＤＣ（直流）モータモデルの例と、そのシミュレーション結果の一例を図１４に示す。
【数１８】
2008009536.tif 000020
【数１９】
2008009536.tif 000021
【数２０】
2008009536.tif 000022
【数２１】
2008009536.tif 000023
【数２２】
2008009536.tif 000024
【００９１】
式２０から式２２が切り替えられる。
【００９２】
ここで、モータの回転速度が上がるに伴って、コイルに逆起電力が生じ、加速が鈍って定速で回転するとしてモデル化し、上記のような微分方程式が得られている。なお、ｘ１はモータ回転角、ｘ１''およびｘ１'はそれぞれｘ１の２階微分および１階微分、ｂ１は立ち上がりの急峻さを規定するパラメーター、ａ１は定常回転速度をそれぞれ表す。ａ１についての３つの式は、それぞれ、モータが正転モード、逆転モード、停止モードのいずれであるかによって切り替えられる。
【００９３】
このようなハイブリッドシステムを記述する言語として他に知られているものとして、米国Xerox社のPalo Alto 研究所で研究され、発展研究が米国NASA Ames研究所で行われているＨＣＣ（Hybrid Concurrent Constraint Programming：ハイブリッドコンストレイントプログラミング）という言語がある。これは、制約処理プログラミング（コンストレイントプログラミング）と呼ばれる技術の一種であり、モデルを表現する微分方程式や代数方程式を制約と考え、これらの方程式をそのまま順不同で記述する。これに状態遷移を制御するプログラムを付加してモデルを完成させる。方程式をそのまま制約として羅列してプログラムとすることができる点は便利ではある。半面、これは一種のプログラミング言語であり、複雑なモデルを記述することができるが、コンストレイントプログラミングの理解が必要となり、プログラム言語として難解なため、プログラム作成能力習得が難しい。
【００９４】
MathWorks社のMatlab（商品名）製品群は制御技術者などを中心によく使われているソフトウェアツールであり、ハイブリッドモデルで表現されるモデルを等価的に記述することが可能である。しかし、例えば微分方程式をそのまま連続系の記述することはできず、微分方程式の内容を分析して積分要素などの要素を組み合わせたブロック線図として定義しなおす必要がある。
【００９５】
以下では、本発明によってハイブリッドモデルがどのように入力され、結果を出力できるかを具体的な例題により説明する。本例題も、本実施形態に係る制御対象シミュレータ２５３を用いてシミュレーションされるものである。まず、図１５から図２１を参照して簡単な例題を説明する。
【００９６】
図１５に示される機械装置は、バルブ３０１とバネ３０３とピストン３０２とからなる空気圧式のアクチュエータ機構のモデルである。エアシリンダの側面には、エアシリンダの内部と外部とを連通する通気穴が左右２箇所に形成されており、また、エアシリンダ本体に、圧縮空気を左通気路と右通気路とに切り替えて吸気させる構造を有するバルブ３０１が設けられている。エアシリンダ内には、先端に気密兼左右摺動自在な圧力板が固定されたピストン３０２が装着されている。バルブ３０１は、外部からの指令により、圧縮空気の流れを右側（以下Rightと呼ぶ）又は左側（以下Leftと呼ぶ）に切り替え可能になっている。以下の説明では、RightおよびLeftを状態、イベント又は変数の意味で使用することがある。
【００９７】
図１５の状況では、バルブ３０１がRightの状態であるため、右通気路からの空気が、エアシリンダと圧力板とにより形成される右室内に供給され、ピストン３０２には左向きの力がかかる。この状態を示す運動方程式は、
【数２３】
2008009536.tif 000025
【００９８】
となる。
【００９９】
図１６の状況は、さらにピストン３０２が左方に移動し、圧力板がバネ３０３に当接した状態である。この状態においては、バネ３０３による反力が発生するため、別の運動方程式により状態が記述される。
【数２４】
2008009536.tif 000026
【０１００】
図１７の状況は、バルブ３０１がLeftにされた状態であり、左通気路からの空気が、エアシリンダと圧力板とにより形成される左室内に供給され、ピストン３０２には右向きの力がかかる。空気の流れの向きが変わるため、さらに別の運動方程式が用いられる。
【数２５】
2008009536.tif 000027
【０１０１】
図１８の状況においては、圧縮されたバネ３０３の弾発力と左室内の空気圧とが、右室内の空気圧に勝り、これに連動して、ピストン３０２が右方に移動する。この状態は、バネ３０３からの反力がなくなった状態であり、さらに別の運動方程式により記述される。
【数２６】
2008009536.tif 000028
【０１０２】
図１９は、以上の状態変化と各状態に対応する運動方程式とを状態遷移図として表現したものである。ハイブリッドモデルは、図１９（ａ）から図１９（ｄ）に示されるように、状態遷移と各状態との記述が、微分方程式や代数方程式により表現される。
【０１０３】
図２０は、図１９の例をさらに簡略化して示す図である。図１９（ａ）から図１９（ｄ）に示される状態遷移図の作成用に入力されたデータが、どのようにモデルの記述に出力されるかを平易に説明するため、ここでは、２つの状態と２つの状態間の状態遷移とを考える。図２１に、図２０のモデルの内容をＨＣＣにより記述した例を示す。図２１の（１)、（２）、（５）は、それぞれ、図１５〜図１８に示される機械装置の初期状態やバルブ操作のタイミングなどの運転条件を記述しており、（３）、（４）はともに図２０（ａ）、図２０（ｂ）の状態遷移を表現したものである。ＨＣＣにより、運動方程式はそのまま記述可能である。各状態へ遷移する条件は、最初の「always if」の次に記述され、また、各状態から遷移する条件は、最後の「watching」の後に記述される。
【０１０４】
ハイブリッドコンストレイントプログラミング言語で記述されたモデルにおいては、プログラムの記述の順序（図２１の（１）〜（５）の順序）に沿って実行されるわけではない。個別のプログラム記述のうち、シミュレーションを実行する時間軸に沿って成立するものが探索されて実行されるため、（１）〜（５）の順序は関係がない。例えば、シミュレーションを開始した時点では、（１）および（５）のみが有効である。開始時点において、イベントRightが（１）により発生するため、（４）の前提条件であるRightが有効となる。従って、（４）の第２の運動方程式が有効となり、図２０（ａ）に示されるような左側の状態としてシミュレーションが実行される。また、図２１において、時間が５０となると、（２）が有効となり、イベントLeftが発生し、（４）の遷移条件（「watching」以降の条件）が有効となり、（４）の運動方程式が無効となる。（４）に代わり、（３）の前提条件が有効となり、第１の運動方程式が有効となる。
【０１０５】
（ｃ）搬送システム３３、３４が空気アクチュエータで駆動されるモデルについて
次に、図１１の搬送システム３３、３４が、上記空気アクチュエータにより駆動されるモデルについて説明する。このような駆動機構は、モータとボールネジとの組み合わせなどにより実現されることが多いが、簡略化した状況を想定する。
【０１０６】
搬送システム３３、３４の移動量をそれぞれｘ１、ｘ２とすると、搬送システム３３、３４のそれぞれの運動は、図２１のプログラムにおいてｘをそれぞれｘ１、ｘ２に書き換えることにより表現できる。さらなる正確な表現のために、ｆ、ｍ、Right、Leftなどの変数やイベントも、いずれかのピストンであるのかを表すサフィックス１又は２を付して説明する。
【０１０７】
メカ制御システム２１２（図１）は、制御対象シミュレータ２５３に対して、図２０（ａ）又は図２０（ｂ）のモデルに対応するRight1、Left1又はRight2、Left2と表されるバルブ切り替えのための制御コマンドを送る。これにより、ダイナミクスシミュレータ２０５は、これらの制御コマンドが送られたタイミングとモデルとにより表現された微分方程式などを用いてピストンの左右の動きを算出する。従来のシミュレーション作業は、ロボットのオフラインプログラミングシステムにおいて、例えばロボットのハンド３７の先端位置が追従すべき軌跡が曲線として与えられ、それに沿った動きを生成するものである。従って、本発明が対象とする制御ソフトウェアの設計および検証の作業は、従来のシミュレーション作業とは大きく異なるといえる。
【０１０８】
さらに、本発明によれば、ロボットの関節に上記ＤＣモータなどのモデルを当てはめることにより、時間の経過とともにピストンやモータの移動量が算出され、また、これらの移動量をアセンブリモデルへの入力とすることにより、３次元空間内での動作のシミュレーションが実行できる。
【０１０９】
（ｄ）ワークの状態遷移条件について
上述したように、アセンブリモデルの実現方法、ハンドリングされるワークの扱い方、およびアクチュエータのハイブリッドモデルなどによりモデル化方法などを説明した。次に、ワークの状態遷移条件について詳しく説明する。
【０１１０】
ワークの状態遷移条件は、機構モデルアナログセンサー（機構モデル・アナログ値センサー）の値、干渉チェックセンサー、ダイナミクスモデル変数の値およびこれらの組み合わせにより表現される。機構モデルアナログセンサーは、アセンブリモデルにおいて、指定された関節の角度を計測することなどに相当する。メカ制御システム２１２に接続するような実際の機械又は機器においては、４節リンク機構において、モータのない関節に取り付けられたポテンショメータを用いて、関節の角度を計測するような例が相当する。アセンブリモデルによるシミュレーションは、計測する関節の角度などの変数を含む連立代数方程式とし、この方程式を解くことにより、機構モデルアナログセンサー値を求めるようにする。
【０１１１】
また、一定時間ごとに部品を自動的に供給する機構をもつモデルをシミュレーションする場合に、状態遷移のタイミングの基準として、時間が用いられることがある。この場合、操作者は、制御対象シミュレータ２５３に予め条件を指定したうえで制御対象シミュレータ２５３を動作させる。すなわち、本実施形態に係るシミュレーションシステムは、ワークである部品の初期状態を、表示部２１１に表示させず、かつロボットの周囲との干渉チェックの対象にしないという属性を指定しておき、この属性の指定に加えて、シミュレーション開始後、決められた時間になった時点で部品供給台の上に、部品を表示部２１１に表示させるという条件で制御対象シミュレータ２５３を状態遷移させる。これにより、自動供給される部品を扱う機械の動作をシミュレーションすることができる。
【０１１２】
時間は、時間軸上でダイナミクスシミュレーションを行う場合に必須の変数又は特殊変数であるため、ダイナミクスシミュレータ２０５においては、組み込み済みの予約変数となっている。従って、制御対象シミュレータ２５３は、ダイナミクスシミュレータ２０５の変数として利用することにより、時間を使用した条件をシミュレーションすることができる。
【０１１３】
また、アセンブリモデルの３次元形状を用いた計算コストの大きい干渉チェックセンサーを用いずに、所望のアクチュエータの値を参照することによって条件を表現できる場合がある。図１０などの例では、部品パレット３６の位置は、アクチュエータとしてのロボット３０の移動距離ｘ２で表現できる。このｘ２は、ロボット３０の移動距離であるため、ダイナミクスモデル変数である。
【０１１４】
さらに、条件の一つとして、ワーク３１の重心位置を、ワールド座標系の原点とのｘ方向、ｙ方向、ｚ方向の機構アナログセンサー（距離センサー）としておくことにより、制御対象シミュレータ２５３は、ワーク３１と部品パレット３６との相対的な位置関係を表現し、ワーク３１が部品パレット３６上におかれた状態であるか否かを判断することができるようになる。
【０１１５】
さらに、ロボット３０やワーク３１の移動速度が、一定値以下という条件が必要な場合、制御対象シミュレータ２５３は、ダイナミクスモデル変数を参照する。このため、本発明は、機構モデルアナログセンサーの値、干渉チェックセンサーの値、ダイナミクスモデル変数の値を参照する構成に加え、さらにこれらを論理式（論理和又は論理積）の組み合わせにより、複雑な条件を表現できるようにしている。これにより、本実施形態に係る制御対象シミュレータ２５３は、タイミングが重要な制御ソフトウェアの検証のためにシミュレーションにおいて、シミュレーション目的に適合する状態遷移条件の表現を行うことができ、また、３次元の幾何学的な形状情報のみならず、時間的な要素も含む内容も含むシミュレーションが可能となる。以下に、本実施形態に係るシミュレーションシステムの状態遷移条件の一例を示す。
【表１】
2008009536.tif 000029
【０１１６】
ここで、タイプ１からタイプ９までのセンサーチェック条件は、各々、機構モデルアナログセンサーの値、ないしは干渉チェックセンサー、ないしはダイナミクスモデル変数の値を参照する単独の条件である。各センサーチェック条件は、遷移条件の要素として機能する。このセンサーチェック条件に加えて、本実施形態に係る制御対象シミュレータ２５３は、１又は複数のセンサーチェック条件のＡＮＤ結合条件とＯＲ結合条件とを定義し、状態遷移条件を、木構造を用いて表現することにした。
【０１１７】
状態遷移条件は、図２２に示されるように、０番から５番までの６つの要素により表現される。０番の要素は、Poten1と表現される機構モデルアナログセンサーの参照処理であり、制御対象シミュレータ２５３は、変数Poten1が１０以下（タイプ１）と定義しておく。３番の要素は、干渉チェックセンサーのオン又はオフのチェックであり、制御対象シミュレータ２５３は、変数CSen1がオンになると定義しておく。制御対象シミュレータ２５３は、４番の要素のように、変数Work2が終了状態（タイプ９）とワークの状態を指定することにより、例えば、１つのワークの処理を終えると、次のワークが供給されるような状況を記述できる。
【０１１８】
制御対象シミュレータ２５３のワーク状態分類記憶手段２１０は、ワークが取り得る複数の状態を予めワーク状態・属性データ記憶手段２１３から読み込み、これらの複数の状態のいずれかに遷移するための状態遷移条件を、（Poten1が１０以下でありかつ時間が３０以降）又は（CSen1がオン）又は（Work2が終了状態）と定義し、状態遷移条件データを、属性データとして、ワーク状態分類記憶手段２１０自身に記憶しておくのである。換言すれば、属性データとは、０番から５番の各要素又は各要素の組み合わせからなるデータである。
【０１１９】
さらに詳述すると、状態遷移イベント検出手段２０９は、Poten1が１０以下であるという要素が成立するか否かを機構モデルアナログセンサーの参照結果により判定する。状態遷移イベント検出手段２０９は、時間が３０以降であるという要素が成立するか否かをダイナミクスシミュレータ２０５の変数を参照することにより判定する。状態遷移イベント検出手段２０９は、CSen1がオンであるという要素が成立するか否かを干渉チェックセンサーの値により判定する。また、状態遷移イベント検出手段２０９は、Work2が終了状態であるという要素の成立について、ワーク状態分類記憶手段２１０を参照することにより判定する。状態遷移イベント検出手段２０９は、４つの要素の組み合わせからなる状態遷移条件が成立するか否かを判定する。状態遷移イベント検出手段２０９は、状態遷移条件が成立したタイミングで、イベントが発生したと判定し、状態が遷移したことを認識する。このようにして、状態遷移イベント検出手段２０９は、ワークについて、その相手立体の変更を指令する。
【０１２０】
また、例えば、ハンド３７がワーク３１を把持している状態から、ワーク３１が搬送機構３３にのせられた状態に遷移した場合、状態遷移イベント検出手段２０９は、ワーク３１と搬送機構３３との干渉のチェック処理を停止させたり、干渉チェックの表示を停止させる。これにより、干渉チェックに要する冗長な計算処理が省かれるため、計算処理の高速化が図れる。
【０１２１】
以上説明したように、本発明のワークハンドリングシミュレーション方法によれば、制御ソフト技術者が制御ソフトウェアを実機に接続する手順と同じ手順でシミュレータに接続し、ソフトウェアの検証などを行うことができる。また、この利便性を確保しつつ、ワークのハンドリングを含む機械システムのシミュレーションが可能になる。
【０１２２】
開発現場において、ワークのハンドリングを含む製品の試作品や制御ボード２５２は、設計データから試作品の完成に至るまでにある程度の時間を要する。本発明によれば、制御ソフト開発者は、試作品の試作中に併行して、設計データに基づいて、製品のシミュレーションが行えるため、設計の後戻りが生じない。
【０１２３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記のシミュレーションモデルは、空気圧アクチュエータ内の空気の流れの方向に応じて、ダイナミクスモデルの２種類の内部状態を切り替えているが、この内部状態は、モデルに応じて３種類以上の内部状態から選択切り替え可能にすることもできる。ワーク状態分類記憶手段２１０は、４つのワーク状態を記憶しているが、ワーク状態は、２、３又は５以上のワーク状態を記憶項することもできる。上記の入力部２５１と制御ボード２５２とは、別個に構成されていたが、これらは、一体に構成してもよい。機構モデルデータ記憶手段２０２、ダイナミクスモデルデータ記憶手段２０３、ワーク状態・属性データ記憶手段２１３は、いずれも、同じ記憶装置又は異なる記憶装置に構成することができ、ないしは、制御対象シミュレータ２５３の外部に設けられた各種の記憶媒体を用いて構成してもよい。上記の遷移条件の判定は、論理式の組み合わせによるものであるが、別の条件を付加するなど種々の論理条件を用いることができる。
【０１２４】
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１２５】
【図１】本発明の実施形態に係るシミュレーションシステムの構成例を示す図である。
【図２】本発明の実施形態に係るシミュレーション装置のブロック図である。
【図３】本発明の実施形態に係るシミュレーション方法を説明するためのフローチャートである。
【図４】アセンブリモデルの構成部品を模式的に示す図である。
【図５】各部品の部分形状と部分形状間の拘束関係との関係を模式的に示す図である。
【図６】幾何拘束の代数方程式による表現方法を説明するための図である。
【図７】部分形状間に定義された拘束関係における自由度を説明するための図である。
【図８】機構の自由度を規定するパラメーターを表す部分形状の例を示す図である。
【図９】各部品の部分形状と部分形状間の拘束関係と新たな拘束関係との関係を模式的に示す図である。
【図１０】ハンドリングを伴うシミュレーションにおいてワークの初期状態を示す図である。
【図１１】ワークがハンドに把持された状態を示す図である。
【図１２】ワークが部品パレット上にある状態を示す図である。
【図１３】ワークおよび部品パレットが一体となった状態を示す図である。
【図１４】ハイブリッドモデルで表現された直流モータモデルのシミュレーション結果の一例を示す図である。
【図１５】空気アクチュエータの初期状態と初期状態に対応する微分方程式を示す図である。
【図１６】空気アクチュエータのバネによる反力が発生したときの状態とその状態に対応する微分方程式を示す図である。
【図１７】空気アクチュエータのピストンに右向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図１８】空気アクチュエータのピストンに左向きの力がかかる状態とその状態に対応する微分方程式を示す図である。
【図１９】空気アクチュエータの状態遷移を説明するための図である。
【図２０】空気アクチュエータの状態遷移を簡略化して説明するための図である。
【図２１】図２０に対応するハイブリッド制約プログラミング言語のプログラム例を示す図である。
【図２２】ワーク状態保持部における状態遷移条件の内部表現の一例を示す図である。
【符号の説明】
【０１２６】
１，２，３…部品、４，６，８〜１１…平面、５，７…円筒面、１２〜１５…関係、１６，１７，２２，２３…拘束関係、１８，１９…直線、２０，２１…頂点、３０…ロボット、３１…ワーク、３２…部品供給台、３３，３５…搬送機構、３４，３６…部品パレット、３７…ハンド、３９，４１…アーム、４０，４２…関節部、２０１…シミュレータ本体、２０２…機構モデルデータ記憶手段、２０３…ダイナミクスモデルデータ記憶手段、２０４…アセンブリモデル生成記憶手段（アセンブリモデルデータ取得部）、２０５…ダイナミクスシミュレータ（ダイナミクスモデル変数取得部）、２０６…干渉チェック手段（干渉有無判定部）、２０７…幾何拘束処理手段（拘束関係データ生成部）、２０８…ワーク相対位置算出手段（相対位置算出部）、２０９…状態遷移イベント検出手段（状態遷移イベント検出部）、２１０…ワーク状態分類記憶手段（拘束関係データ生成部）、２１１…表示装置、２１２…メカ制御システム、２１３…ワーク状態・属性データ記憶手段、２５１…入力部、２５２…制御ボード、２５３…制御対象シミュレータ（シミュレーション装置）、３０１…バルブ、３０２…ピストン、３０３…バネ。
【図２】
2008009536.tif 000030
【図３】
2008009536.tif 000031
【図４】
2008009536.tif 000032
【図５】
2008009536.tif 000033
【図６】
2008009536.tif 000034
【図７】
2008009536.tif 000035
【図８】
2008009536.tif 000036
【図９】
2008009536.tif 000037
【図１０】
2008009536.tif 000038
【図１１】
2008009536.tif 000039
【図１２】
2008009536.tif 000040
【図１３】
2008009536.tif 000041
【図２１】
2008009536.tif 000042
【図２２】
2008009536.tif 000043
【図１】
2008009536.tif 000044
【図１４】
2008009536.tif 000045
【図１５】
2008009536.tif 000046
【図１６】
2008009536.tif 000047
【図１７】
2008009536.tif 000048
【図１８】
2008009536.tif 000049
【図１９】
2008009536.tif 000050
【図２０】
2008009536.tif 000051