JP2009104388A - シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム - Google Patents
シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム Download PDFInfo
- Publication number
- JP2009104388A JP2009104388A JP2007275270A JP2007275270A JP2009104388A JP 2009104388 A JP2009104388 A JP 2009104388A JP 2007275270 A JP2007275270 A JP 2007275270A JP 2007275270 A JP2007275270 A JP 2007275270A JP 2009104388 A JP2009104388 A JP 2009104388A
- Authority
- JP
- Japan
- Prior art keywords
- simulation
- time
- reproduction display
- intermediate position
- simulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Abstract
【課題】シミュレーション結果を再生するために機構の位置及び姿勢を計算しなおす際に、計算量を少なくし、任意の時点におけるシミュレーション結果の表示を高速に行えるようにする。
【解決手段】シミュレーション再生表示装置が、ハイブリッドモデルシミュレータ56と、アセンブリモデル記憶手段61と、幾何拘束の処理を行う幾何拘束処理手段62と、部品の移動を検出する移動監視手段63と、ハイブリッドモデルシミュレータ56から幾何拘束処理手段62へのサイクル時間ごとに入力されるデータと移動監視手段63の検出結果とを記憶する変数値時間履歴記憶手段57と、入力された再生表示を行う所望のシミュレーション時刻及びシミュレーション実行後に表示されている現在表示時間を参照して幾何拘束処理手段62を起動する中間位置を算出する中間位置決定手段66とを備え、表示手段73が再計算されたシミュレーション結果を表示する。
【選択図】図3
【解決手段】シミュレーション再生表示装置が、ハイブリッドモデルシミュレータ56と、アセンブリモデル記憶手段61と、幾何拘束の処理を行う幾何拘束処理手段62と、部品の移動を検出する移動監視手段63と、ハイブリッドモデルシミュレータ56から幾何拘束処理手段62へのサイクル時間ごとに入力されるデータと移動監視手段63の検出結果とを記憶する変数値時間履歴記憶手段57と、入力された再生表示を行う所望のシミュレーション時刻及びシミュレーション実行後に表示されている現在表示時間を参照して幾何拘束処理手段62を起動する中間位置を算出する中間位置決定手段66とを備え、表示手段73が再計算されたシミュレーション結果を表示する。
【選択図】図3
Description
本発明は、メカトロ機器の制御プログラムを制御対象である機械の実機を用いずシミュレータを用いて検証するためのシミュレーションシステムにおいて、制御プログラムと制御対象のシミュレータとを連携させてシミュレーションを実行した後に、シミュレーション中の状況を再生表示する装置、方法及びプログラムに関する。
従来、コンピュータ支援設計(Computer Aided Design(以下、CADと云う))システムを用いて、2次元形状または3次元形状の複数の部品のアセンブリモデルを作成する方法が知られている。この従来のアセンブリモデル作成方法は、複数の部品の形状データをCADシステムを用いて入力するとともに、形状特徴と呼ばれるこれら部品の部分形状の間に、平行、直角、一致、距離、角度、同心などの幾何学的な拘束関係を入力し、これらの形状データ(部分形状)および拘束関係に基づいて部品間の位置関係をコンピュータソフトウェアによって自動的に算出し、アセンブリのモデルを作成するものである。さらに、これに、機構解析を行う目的で、自由度をもつ部分を例えば関節として入力し、機構パラメータ(例えば関節角)の変化により、機構の運動などのシミュレーションを行う方法が知られている。
また、実際のロボットを現場に用意することなく、ロボットの動作をコンピュータのシミュレーションによって定義したり、生産ラインにおいてロボットやベルトコンベアの位置関係を検討したりするためのソフトウェアとして、ロボットのオフラインプログラミングシステムが知られている。
また、メカトロ機器を対象として、制御プログラムを制御対象である機械の実機を用いずシミュレータを用いて検証するためのシミュレーションシステムが知られている。このシミュレータは、制御プログラムと制御対象のシミュレータとを連携させてシミュレーションを実行した後に、シミュレーション中の状況を再生表示する。当初想定される挙動と異なる結果が得られた場合には、制御プログラムの間違いなどが疑われ、プログラムのデバッグを行う必要が出てくる。このデバッグやプログラムの修正の過程において、任意の時間におけるシミュレーションの状況を再生して表示することは、問題の原因を特定する際に非常に有効である。制御プログラムから送られたコマンドの内容やそのコマンドが送られたタイミングなどは、そのデータ量の関係からすべて記憶しておくことができるが、制御対象の機構に関しては、大量の部品が存在し、それらの部品が互いに複雑に関連して動いているため、部品の位置及び姿勢の演算結果の履歴をすべてシミュレータが記憶することは、現実的ではない。3次元空間内における部品の位置及び姿勢を特定するためには、通常4×4の行列が必要であり、位置及び姿勢のデータを細かな制御サイクル時間に合わせてすべての部品についての履歴を記憶しておくことはできない。そこで、制御プログラムから送られたコマンド列(例えば、モータに対する位置の指令値など)を利用して、再生したい時間における機構の状態を、再生時に再度計算し、表示することが行われている。
従来、機構解析や障害物回避動作計画に用いることが可能なアセンブリモデルを作成する技術が知られている(特許文献1参照)。ハイブリッドモデルを用いたシミュレーションに関しては、複雑な機構系をハイブリッドモデルを用いて簡便かつ正確にモデル化し、該機構系を制御する制御ソフトウェアとの連携シミュレーションに適用したシミュレーション方法が知られている(特許文献2参照)。また、制御ソフトウェアの試験やデバッグのためにハイブリッドモデリング言語を利用する手法が提案されている(非特許文献1参照)。メカの完成前に実装ボードをマッサージチェアの動作まで含めて検証する手法も提案されている(非特許文献2参照)。
特許第3643504号明細書
特開2004−178300号公報
「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
しかし、シミュレーション結果を再生表示する際には、任意の時間をランダムに選択して表示することを求められるため、例えばモータの軸の回転角度が決まっても、その軸につながるリンク機構は複数の姿勢をとる可能性がある場合など、系を記述する方程式の複数の解のうちどれを選択するかを決定することができないことがある。例えば、手首とこの手首に対して回転の自由度を有するハンドとを持つロボットが静止している棒に向かって近づき、このハンドがこの棒を掴む例題を考える。ハンドが棒を掴む状態は、ハンドが棒に対して接近する方向からその掌を棒に向けながらこの棒を掴む状態と、ハンドが棒の位置を通り過ぎて通り過ぎた方向からその掌を回して棒を掴む状態との2種類がある。この場合、シミュレータが方程式を解くと、2種類の状態についての各解を得ることはできるが、2つの解のうちのいずれかを選択すべきかを判断することができない。
また、シミュレータは、機構を構成する複数の部品について各々、初期位置、シミュレーション終了時の位置及び前回再生表示を行った状態を記憶している。シミュレーションを実行している際には、シミュレータが細かな時間間隔で機構の状態を計算しなおしているので、前回行ったシミュレーションで得られた機構の状態と近い状態の解を選択することによって正しい計算結果を得ることができるが、再生表示の際には、このような判断基準が存在しない。このような問題を解決するために、実際に表示したい時点における状態をシミュレータが演算してからこの状態に一度に移るのではなく、シミュレータが各時点における演算結果の時刻履歴を順番に追って機構を動作させて、最終的に表示したい時点における機構の状況(3次元空間における位置関係)を得る手法が考えられる。時刻履歴を追う際に、シミュレーション実行の時間間隔をいくつかの間隔おきにスキップすることで、シミュレータの処理を軽減することが可能であると考えられるが、この手法を用いても、依然として大きな計算量を要するという課題がある。
そこで、本発明は、上記の課題に鑑み、シミュレーションの再生のために機構の位置及び姿勢を計算しなおす際に、計算量を少なくでき、効率的に処理を行え、任意の時点におけるシミュレーション結果の表示を高速に行うことが可能なシミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラムを提供することを目的とする。
このため、本発明の一態様によれば、機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーション再生表示装置であって、前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルデータを予め読み込み、シミュレーション実行中に前記制御プログラムからの制御コマンドをサイクル時間ごとに読み込みながら、ダイナミクスシミュレーションを実行するハイブリッドモデルシミュレータと、機構モデルデータを予め読み込み、前記機構に含まれる複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルのデータを記憶するアセンブリモデル記憶手段と、前記アセンブリモデル記憶手段を参照して幾何拘束の処理を行う幾何拘束処理手段と、前記幾何拘束処理手段を参照して前記部品の移動を検出する移動監視手段と、前記ハイブリッドモデルシミュレータから前記幾何拘束処理手段への前記サイクル時間ごとに入力されるデータと、前記移動監視手段の検出結果とを記憶する変数値時間履歴記憶手段と、シミュレーション実行後に入力された再生表示を行う所望のシミュレーション時刻、及びシミュレーション実行後に表示されている現在表示時間を参照して、前記幾何拘束処理手段を起動する中間位置を算出する中間位置決定手段と、を備え、前記幾何拘束処理手段がこの中間位置決定手段の算出結果に基づき起動され、表示装置が再計算されたシミュレーション結果を表示することを特徴とするシミュレーション再生表示装置が提供される。
また、本発明の別の一態様によれば、機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーション再生表示方法であって、前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルを用いてシミュレーションを行うハイブリッドモデルシミュレーション部によるダイナミクスシミュレーションと、複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルを用いてシミュレーションを行うキネマティクスシミュレーション部によるキネマティクスシミュレーションとをすべてのサイクル時間について実行するステップと、入力された再生表示を行う所望のシミュレーション時刻を読込むステップと、前記ダイナミクスシミュレーション及び前記キネマティクスシミュレーションの実行後に表示されている現在時間を取込むステップと、前記所望のシミュレーション時刻及び前記現在時間に基づいて、幾何拘束処理を行う中間位置を算出するステップと、前記キネマティクスシミュレーション部が前記中間位置においてキネマティクスシミュレーションを実行するステップと、表示装置が、前記再生表示を行う所望のシミュレーション時刻でのシミュレーション結果を表示するステップとを備えたことを特徴とするシミュレーション再生表示方法が提供される。
また、本発明の別の一態様によれば、機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーションプログラムであって、前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルを用いてシミュレーションを行うハイブリッドモデルシミュレーション部によるダイナミクスシミュレーションと、複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルを用いてシミュレーションを行うキネマティクスシミュレーション部によるキネマティクスシミュレーションとをすべてのサイクル時間について実行する手順と、入力された再生表示を行う所望のシミュレーション時刻を読込む手順と、前記ダイナミクスシミュレーション及び前記キネマティクスシミュレーションの実行後に表示されている現在時間を取込む手順と、前記所望のシミュレーション時刻及び前記現在時間に基づいて、幾何拘束処理を行う中間位置を算出する手順と、前記キネマティクスシミュレーション部が前記中間位置においてキネマティクスシミュレーションを実行する手順と、表示装置が、前記再生表示を行う所望のシミュレーション時刻でのシミュレーション結果を表示する手順とをコンピュータに実行させることを特徴とするシミュレーションプログラムが提供される。
本発明によれば、制御プログラムを、機器の実機の代わりにシミュレータを用いて検証する際に、シミュレーションの実行後に、任意の時点におけるシミュレーションの結果の表示を高速に行えるようになる。
以下、本発明の実施の形態に係るシミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラムについて、図1乃至図27を参照しながら説明する。尚、各図において同一箇所については同一の符号を付すとともに、重複した説明は省略する。
本発明の実施の形態に係るシミュレーション再生表示装置は、機械の実機を制御対象とする制御プログラムを、実機の代わりにシミュレータを用いてシミュレーションすることによって、この制御プログラムを検証するものである。図1は本実施形態に係るシミュレーション再生表示装置が使用されるシミュレーションシステムの具体的な態様を示す図である。このシミュレーションシステムは、操作指令を入力するためのリモコン50と、実機を模擬し実機の動作を3次元グラフィックスにより再生表示する制御対象シミュレータ51と、これらのリモコン50及び制御対象シミュレータ51の間の信号のインターフェースを行う制御ボード52とを備えている。
この実例はマッサージチェアの制御ソフトを、開発及び検証の対象としており、その詳細については、「シミュレーションによるメカトロニクス機器ファームウェア開発の革新」(東芝レビュー、vol.60, no.1, 2005)に述べられている。制御ソフト技術者は制御ボード52に、機械の実機を制御するソフトウェア(ファームウェアと呼ぶこともある)を記憶したROMを搭載して、この制御ボード52を、制御対象であるマッサージチェアに接続する代わりに、本発明による制御対象シミュレータ51に接続する。この例では、リモコン50の操作にもとづいて制御ボード52上のソフトが動作し、このソフトウェアから制御対象シミュレータ51にコマンドが送られる。制御対象の動きは、制御対象シミュレータ51の表示装置にコンピュータグラフィックスを用いて表示される。
図2は制御プログラムを制御対象である機械の実機を用いずシミュレータを用いて検証するためのシミュレーションシステムの全体構成図である。このシミュレーションシステムは、制御対象の機構のシミュレーションを行う機構シミュレータ53と、機構制御ソフトウェアが実装された機構制御ソフトウェアシミュレータ54とを備えている。機構シミュレータ53は本実施形態に係るシミュレーション再生表示装置であり、上記の制御対象シミュレータ51に搭載される。機構制御ソフトウェアは制御ボード52に実装される。機構シミュレータ53は、ある時間における3次元空間での機構の位置及び姿勢を計算し、アセンブリモデルを表示装置に表示するものであり、例えばモータの軸の回転角度が所定角度であるときに機構はどのような姿勢をとっているかなどを検証するために用いられる。機構制御ソフトウェアシミュレータ54は、シミュレーションの対象である機構の構成要素である例えばモータや、ソレノイドなどのアクチュエータへの動作コマンドを制御信号55として機構シミュレータ53に対して与える。動作コマンドとは、スタート、ストップの指令や、モータ軸の回転速度の値のパラメータを指す。
機構シミュレータ53は、モータなどの動特性を表現するための機能を有し、経過時間と、モータ軸の回転角やモータ軸の回転速度などとの関係を表現してシミュレーションを行うハイブリッドモデルシミュレーション部(ハイブリッドモデルシミュレータ)56と、シミュレーション結果として時間ステップごとにハイブリッドモデルシミュレーション部56から入力される可動構成要素のデータ、及び部品の移動の有無の履歴を記憶する変数値時間履歴記憶手段(変数値時間履歴記憶部)57と、ハイブリッドモデルシミュレーション部56から送られるモータの軸の回転角度などのデータから各部品の位置及び姿勢を計算するキネマティクスシミュレーション部(機構シミュレーション部)58とを備えている。ハイブリッドモデルシミュレーション部56は、機構のハイブリッドモデルを記述したソースプログラム59、及び制御信号55に含まれるコマンドやパラメータに基づきサイクル時間ごとにダイナミクスシミュレーションを実行し、モータ軸の回転角といった可動構成要素の位置又は姿勢に関するデータを機構制御ソフトウェアシミュレータ54の機構制御ソフトウェアへ送るようにされている。
一例として、このハイブリッドモデルシミュレーション部56は、ソースプログラム59を構文解析して、連続系方程式の記述と、イベントに伴う状態遷移の制御情報の記述とをシミュレーションの実行前に予め全て抽出してこれらを分離する。ハイブリッドモデルシミュレーション部56は、分離したうちの状態遷移の制御情報の記述に基づき、条件式とこの条件式が成り立つ場合に成立する連続系方程式のID、及びこれに応じて無効になる連続系方程式のIDとを関連付けて、これらの条件式やIDを、図示しないテーブルに記憶する。ハイブリッドモデルシミュレーション部56は、分離したうちの連続系方程式の記述の構文解析結果に基づき、この記述をシミュレーション実行可能なデータ構造に変換し、変換したデータ構造を内部データとして記憶しておく。ハイブリッドモデルシミュレーション部56は、制御信号55を受信すると、テーブルを参照して連続系方程式の切り替えの要否を判断し、必要に応じて連続系方程式を切り替える。ハイブリッドモデルシミュレーション部56は、内部データを演算対象として数値積分を実行する。このハイブリッドモデルシミュレーションの詳細については後述する。
これに応じてハイブリッドモデルシミュレーション部56はシミュレーション動作し、モータ軸の回転角などを算出する。その結果は、キネマティクスシミュレーション部58に送られて、このキネマティクスシミュレーション部58において、算出された回転角の値に基づき、機構の3次元空間内における部品の位置関係が計算され、必要であれば、部品の位置関係が画面に表示される。ハイブリッドモデルシミュレーション部56からキネマティクスシミュレーション部58へ送られた回転角の値は、シミュレーション後に再生表示したり、データ値をチェックしたりする目的で、変数値時間履歴記憶手段57に記憶される。
制御対象の機構の関節部には、アーム間のなす角度を検知する角度センサが取り付けられる。キネマティクスシミュレーション部58は、光ビームを3次元形状として予め定義しておくことによって、このビームの形状と他の立体との幾何学的な干渉のチェックを行うフォトセンサの機能をも有する。各時間ステップにおいて、キネマティクスシミュレーション部58は、求まったモータ軸の回転角度などから機構の位置及び姿勢を計算することにより、機構シミュレータ53側では、例えばロボットのアームがフォトセンサの光ビームを遮っていないかどうかなどの判定を行えるようにされている。つまり、3次元空間において複雑形状を有する機構物体が運動するような場合に、関節に取り付けられた角度センサが検知する角度や、フォトセンサによる干渉の有無などの状態をハイブリッドモデルシミュレーション部56が効率的に計算できるようになっている。これらの角度や状態といった情報は機構制御ソフトウェアシミュレータ54に送られる。
これらの機構シミュレータ53と機構制御ソフトウェアシミュレータ54とが連携して動作することにより、機構制御ソフトウェアシミュレータ54は、機構シミュレータ53との間で実機の機構と授受するデータと同じデータを適正なタイミングで擬似的にやりとりすることが可能にされており、実機が存在しない状況におけるソフトウェアの検証作業などを実現できるようになっている。
なお、機構シミュレータ53及び機構制御ソフトウェアシミュレータ54の機能は一般的なコンピュータを用いて構成することができる。このコンピュータは、基本的なハードウェア構成として、図示しない中央演算ユニット(CPU)、メモリ、外部記録装置、通信インターフェース(I/F)、および表示装置やキーボード、マウス等の入力装置を備えており、また、これらのハードウェアを制御するためのオペレーティングシステム(OS)を実装している。また、この機構シミュレータ53は、このようなオペレーティングシステム上で動作するアプリケーションソフトウェアとして実装することができる。
図3は本実施形態に係るシミュレーション再生表示装置の内部構造をより細かく示す図である。制御対象である機構は、部品の中の軸の円柱面やすべり面の平面などの部分形状と、それらの部品形状の間の同軸や一致という幾何学的な拘束関係とが定義されることにより、部品の集合体であるアセンブリとしてモデル化される。アセンブリモデルの表現および作成の方法の詳細について、まず説明する。
本実施形態に係るシミュレーション再生表示装置におけるアセンブリモデルの表現および作成の方法については、その一例が特許第3643504号明細書「アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体」に記述されているが、本実施形態に係るシミュレーション再生表示装置の説明に必要な考え方について簡略に説明する。図4は幾何拘束条件を説明するための図である。図4に示す部品1、2、3からなるアセンブリモデルを作成する場合を例にとって説明する。図4に示される部品1、2、3の各形状を、例えばコンピュータの入力装置を用いてファイルより読込み、記憶装置に記憶する。このとき、読込まれた各部品は表示装置によって例えば図4に示すように画面表示される。
次に部品の部分形状間の関係について入力すべき関係がある場合には部分形状とその関係を、上記入力装置を用いて入力し、上記記憶装置に格納する。例えば図4に示す部品1、2、3からアセンブリモデルを作成するために、部品1と部品2とに関して部品1の部分形状である平面4と部品2の部分形状である平面6とが一致し、かつ部品1の部分形状である円筒面5と部品2の部分形状である円筒面7とが同軸であるという関係を入力する。同様に部品2と部品3とに関しては、部品2の部分形状である平面8と部品3の部分形状である平面10とが一致するという関係、および部品2の部分形状である平面9と部品3の部分形状である平面11とが一致するという関係を入力する。
このように入力された関係が記憶装置においてどのように記憶されるかをグラフ形式で模式的に示した例を図5に示す。図5は、アセンブリモデルを作成する際に各部品の部分形状と、これらの部分形状の間に定義された拘束関係とが記憶装置に記憶されたときの様子を示す模式図である。図5から分かるように記憶装置においては、部品1、2、3の情報および部分形状の情報の他に、平面同士の一致関係12、14、15および同筒同士の同軸関係13がデータとして存在している。
次に、記憶装置に格納された情報に基づいて、幾何拘束処理手段62は、部品1、2、3の相対的位置関係を算出する。この相対的位置関係を算出する機能は、一般にソフトウェアとして提供されており、例えば英国D−Cubed社の3D−DCMはそのようなソフトウェアの一例である。以下、このようなソフトウェアを幾何拘束処理ライブラリともいう。具体的には、各部品には、部品特有のローカル座標系が設定されており、このローカル座標系と、アセンブリモデルを作成すべき空間に固定されたワールド座標系との間の変換マトリクスという形で上記相対的位置関係が表現される。すなわち、図5に示されている部品間の関係12、13、14、15から、部品1の位置と部品2および部品3の各位置とを表現する変換マトリクスが上記幾何拘束処理ライブラリによって自動的に計算される。図3の幾何拘束処理手段62は、幾何拘束処理ライブラリを用いて実現することができる。
ここでは、幾何拘束処理ライブラリの処理内容を2次元の簡単な例でさらに詳しく説明する。図6は幾何拘束を計算機内部で代数方程式として2次元モデルで表現する方法を説明するための図である。図6に示すように、ワールド座標系24で示される領域に、部品25と部品26とが存在する。今、部品25の部分形状である直線27と部品26の部分形状である直線28とを一致関係29により一致させて、部品25の位置と部品26の位置とを計算することを考える。まず直線27は部品25のローカル座標系において、
で表される。
となる。この条件を加えて方程式を解けば、直線27と直線28とが一致する条件を満たす部品25および部品26の位置が算出できる。方程式を解く都合からsinθとcosθとをそれぞれsとcとおくと、以下のような連立方程式になる。すなわち、
という2次の連立方程式になる。これらの式には、12の独立な式があり、直線27と直線28のローカル座標系における直線の方程式を表す8つの定数x1,y1,x2,y2,a1,b1,a2,b2が含まれる。変数は16あり、このうち求めたいのは部品25と部品26の位置を示すパラメータc1,s1,c2,s2,α1,β1,α2,β2である。これらの値を求めるには、上記2次連立方程式から8つの定数x1,y1,x2,y2,a1,b1,a2,b2と、部品25と部品26の位置を示すパラメータc1,s1,c2,s2,α1,β1,α2,β2以外の変数を消去し、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つの部品の相対位置関係であることに注意すれば、どちらか一方の部品の位置を固定しても構わないので、例えば部品25を固定するとして、c1,α1,β1を定数とすると、式の数よりも変数が1つ多いことになり、相対的な自由度は1あることが分る。部品26の位置を算出するには、c2,s2,α2,β2の値の内1つを定数として決めて(現在の値に固定して)、他の値を求めればよい。また一般に、もし拘束条件を実現できないような状況(例えば2つの直線が平行でかつ垂直である)で拘束条件が定義されている場合、連立方程式には解が存在しないので、実現できない拘束条件が与えられたことを検知可能である。このように、幾何拘束処理ライブラリは、与えられた拘束関係を代数的な式として表現しなおして、処理を行なう。
再び図5に戻り、説明を進める。上述の各部品の部分形状の間で定義された一致関係、すなわち部分形状間の拘束関係をすべて満足するように算出された部品間の相対的位置関係(アセンブリモデル)の一例を図7に示す。図7は自由度を説明するための図である。この図7に示す相対的位置関係は、自動的に計算された部品の変換マトリクスを、部品の形状データに作用させて得られた部品の位置を示している。
この図7からも分かるように、上述のようにして求められたアセンブリモデルは、部品間の相対的位置関係を完全に決定するだけの拘束関係を一般的に有しているとは限らない。例えば、部品1と部品2との間で相対的な回転16を行っても、また、部品2と部品3との間で相対的に平行移動17を行っても、依然として図5に示す関係はすべて保たれている。すなわち図7に示すアセンブリモデルは、回転自由度16と、並進自由度17とを有している。
一方機構解析などの分野においては機構の自由度を規定するパラメータにより運動を記述する。すなわち図7の例においては、回転自由度16に対応する回転角と並進自由度17に対応する平行移動距離との2つのパラメータが機構の自由度に対応する。
図8は自由度が存在する範囲内で新たに規定される幾何拘束条件を説明するための図である。符号18、19は円筒面の中心軸と直交する方向ベクトルを表す直線である。これら直線18,19は円筒面に剛体接続されていると考える。同筒同士が同軸という拘束関係があれば上記直線18,19同士の角度を新たな拘束関係として付加することにより、この角度が回転自由度のパラメータとなる。従って、このような直線18,19は円筒の形状ないしは位置姿勢を表す要素であるので、本実施形態に係るシミュレーション再生表示装置においては部分形状であると定義する。
また図8において符号20,21は、部品2,3上の頂点である。これらの頂点20,21は平面同士が一致するという拘束関係が既に定義されている平面の部分形状ではないが、平面上の幾何要素であり、幾何学的ないしは位相的に関係している。このため部品2の平面8と部品3の平面10とが一致している拘束関係の下で、各々の平面上の同一直線上の頂点20,21間の距離を新たな拘束関係として付加することにより、この距離が並進自由度のパラメータとなる。
図5に示すアセンブリモデルに、図8に示す直線18,19のなす角度、頂点20,21間の距離を新たな拘束関係22,23として付加したときに記憶装置に記憶されている様子を図9に示す。図9は、各部品の部分形状と、これらの部分形状の間の拘束関係と、関節など駆動部を定義するために導入された拘束関係とが記憶装置に記憶されたときの様子を示す図である。図5に示すように部品間に自由度が存在している場合、これらの部品の間に新たな拘束関係を追加することができる。
機構解析を行う際には、図8に示す直線18,19のなす角度、頂点20,21間の距離をモータなどのアクチュエータに対応させることにより、アクチュエータパラメータ(モータ軸の回転角度など)の変化から機構の動きを求めるような簡単な機構解析は、以下のようにそのまま実行することも可能である。すなわち、以上のステップで決定された機構パラメータに対するある時刻における値が与えられると、幾何拘束処理ライブラリによって個々の部品の3次元ないしは2次元空間における位置及び姿勢が決定され、これらの位置及び姿勢を時刻の刻み幅にあわせて順次変化させることで、機構としての動きをシミュレーションとして確認するなどの作業を行うことが可能になる。図2ないしは図3において、ハイブリッドモデルシミュレーション部56から幾何拘束処理手段62に送られる値は、このようなモータの角度などである。
また、2つの回転軸が歯車で結合されているような場合には、上記図8に示す直線18,19のなす角度のような角度パラメータ同士の関係を、歯車の歯数比を係数とする一次式として表現すればよい。すなわち、歯車のような機構も多項式で表現できるため、幾何拘束処理ライブラリが、与えられた拘束関係を代数的な式として表現しなおして扱う方法と同じ方法で統一的に処理、演算を行うことが可能である。具体的には、歯数比を係数とする一次式を連立方程式に加えればよく、歯車を加えることで、全体として自由度が1つ減少することも、立体間の自由度を計算したときに用いた手法と全く同じ手法を用いて算出できる。
上記のようなアセンブリモデルの作成方法により、制御対象シミュレータ51は、例えば製造装置の搬送機構やロボットの機構のモデルを表現し、その幾何学的な動きをシミュレーションすることが可能になる。図3における機構モデルデータ60はこのようなアセンブリモデルの作成方法により作成されたデータである。
上記の説明を踏まえて、再度、図3の構成について説明する。なお、図3に示すもののうち、図2で説明した符号と同じ符号を有する要素はそれらと同じ要素を表す。キネマティクスシミュレーション部58は、アセンブリモデルのデータを記憶するアセンブリモデル記憶手段61と、モータ軸の回転角など時間ステップごとに変化する可動構成要素のデータ及びアセンブリモデルのデータを用いて部品の幾何拘束条件を算出する幾何拘束処理手段62と、この幾何拘束条件を参照して部品の移動の有無を検出する移動監視手段63と、移動監視手段63による監視を行う部品IDを記憶する移動監視対象部品データベース64と、部品及び立体の間の干渉のチェックを行う干渉チェック手段65とを備えている。
また、機構シミュレータ53は、シミュレーション実行後に入力された再生表示したいシミュレーションの時刻と、すでに表示されている現在表示時間とを参照して、幾何拘束処理手段62を付加的に起動しなければならない中間位置を算出する再生表示用中間位置決定手段(中間位置決定手段)66と、シミュレーション内容を表示する表示装置67と、シミュレーション実行後における現在表示時間を記憶する現在表示時間記憶手段68と、所望のシミュレーション表示時刻を再生表示用中間位置決定手段66へ入力するための入力装置69とを有する。
幾何拘束処理手段62は再生表示用中間位置決定手段66の算出結果に基づき起動され、表示装置67が再計算されたシミュレーション結果を表示する。再生表示用中間位置決定手段66は、表示が行われた後、再生表示時間を現在表示時間として現在表示時間記憶手段68に書込む。
機構モデルデータ60はシミュレーション開始前に読み込まれ、アセンブリモデル記憶手段61には制御対象の機構モデルについての機構モデルデータが記憶される。幾何拘束処理手段62は、ハイブリッドモデルシミュレーション部56から送られるモータ軸の回転角などに基づき、アセンブリモデルで記述されるモデル内の部品の位置及び姿勢を算出する。部品の形状モデルは、幾何拘束処理手段62により算出された部品の位置及び姿勢の情報に基づいて移動処理が行われて、必要であれば、フォトセンサのOn/Offチェックのような処理に対応して干渉チェック手段65が起動される。この干渉チェック手段65はセンサの状態をデータとして機構制御ソフトウェアシミュレータ54に送信する。
幾何拘束処理手段62は、ハイブリッドモデルシミュレーション部56から起動されるたびに部品の位置及び姿勢を計算する。幾何拘束処理手段62は、その計算の際に、1ステップ前の状態に対して部品が移動しているか否かをチェックすることができる。ハイブリッドモデルシミュレーション部56から多数回に亘って、部品の位置及び姿勢の計算を要求されていたとしても、その間に部品が移動していなければ、シミュレーション実行後に再生表示をする際には、これらの時間区間においては何も変化がなかったものとして同一視してよい。そこで本実施形態に係るシミュレーション再生表示装置においては、移動監視手段63が、幾何拘束処理手段62から部品の移動の有無の情報を得て、移動の有無をチェックするようにしている。しかし、シミュレーションの再生表示の際には、必ずしもすべての部品の細かな動きをチェックする必要はなく、作業において参照することが有り得ないことが分かっている部品について移動の有無を記憶する必要がない。そこで、本実施形態に係るシミュレーション再生表示装置は、シミュレーション実行前に移動監視部品データファイル70を読み込み、監視の必要な部品のID番号を移動監視対象部品DB(移動監視対象部品データベース)64に記憶しておき、ここに登録してある部品のみについて移動の有無を幾何拘束処理手段62がチェックするようにしている。
また、幾何拘束処理手段62は機構の関係を上記の通り代数連立方程式として扱うため、幾何拘束処理手段62がハイブリッドモデルシミュレーション部56から起動された状況において、それぞれの部品に関連する変数について、代数連立方程式の解がただ1つであるのか、複数の解があるのかを調べることができるようにされている。例えば、幾何拘束処理ライブラリである英国D−Cubed社の3D−DCMは、部品ごとに位置及び姿勢の各解がいくつあるかを問い合わせることができるようになっている。部品に関する変数についての解がすべてただ1つであれば、シミュレーション再生時にまったく異なる事前の状況から計算を行っても、必ずユニークな解が求まるので、前後の状況との連続性ないしは近似度を元に部品の位置関係を求める必要がなくなる。よって、移動監視手段63が、幾何拘束処理手段62から部品の位置及び姿勢が複数ありうるのかどうかの情報を得るように構成されている。移動監視手段63が変数値時間履歴記憶手段57に移動の有無を表すデータを記憶する際には、移動監視手段63で得られた部品の移動の有無の情報と、位置及び姿勢が複数ありうる部品があるかどうかについての情報とが合わせて記憶される。これらの情報は共に移動の有無を示すだけのデータであるので、記憶容量としては極めて小さい。
さて、上記のように部品の位置及び姿勢が複数ありうる場合について、機構の実例としてピストンの往復運動と同様な運動を行う機構を用いてより具体的に説明する。図10は、それぞれが複数の位置及び姿勢をとりうる4つの部品からなる機構の第1の時点における状態を示す図である。図10に示す機構は、円盤による回転運動を、ガイドレールに装着されたスライダの往復直線運動に変換するものである。この機構は、回転運動を行う円盤31と、水平に設けられたガイド用のレール34と、このレール34における第1の位置と第2の位置との間を往復直線運動可能となるようにこのレール34に装着されたスライダ33と、円盤31による回転運動をスライダ33の直線運動に変換するロッド32とを備えている。また、図10の状態から、円盤31が回転した後の状態を図11及び図12に示す。図11はこの機構の第2の時点における状態を示す図であり、図12は同機構の第3の時点における状態を示す図である。
円盤31の中心軸には図示しないモータの軸が嵌入されており、この軸は機構制御ソフトウェアシミュレータ54からの制御コマンドに従って駆動される。円盤31はロッド32の一端部とピンを介して連結されており、さらにロッド32の他端部はスライダ33とピンを介して連結されている。スライダ33はレール34上を摺動自在にされており、レール34に沿って動くことができる。ピンの連結は、部分形状と、幾何拘束としては円筒どうしの同軸、及びスライダ部分の直線の一致として表現される。具体的には、ピンの外周面と、ロッド32の他端部に形成された貫通穴の内壁と、スライダ33に形成された貫通穴の内壁とがそれぞれ同軸であることにより、円筒どうしの同軸が表現されている。スライダ部分は、レール34に沿った直線とスライダ33上の直線とが一致していることによって表現される。
図10の状態からモータが駆動されて、図10上の矢印の方向に円盤31が回転したとすると、この円盤31が少し回転した後には、図11のような状態になることが期待される。しかし、ピン連結の関係と、レール34及びスライダ33間の関係とからだけによって判断すると、図12のような位置も、この機構の挙動を記述する連続系方程式の解としては正しい。シミュレーション時には、このような動きが細かな時間ステップを刻みながら実行されている。それぞれの時点における円盤31、ロッド32あるいはスライダ33といった各部品の位置に関しては、1つ前のステップに近いものが選ばれるので、時間経過とともにステップが刻まれていく場合、図12のような状態が求まることはない。しかし、図10の状態から図12の状態に一度に変化させた場合、例えばロッド32の長手方向中心線とレール34とのなす角度については、図10の状態と図12の状態との間でのこの角度の差異は、図10の状態と図11の状態との間でのこの角度の差異に比べて近い。このことから、図12の状態が連続系方程式の解として選ばれる可能性がある。上述のように機構は代数方程式に変換されて内部表現されており、機構の状態を表す解はこの方程式を解いて得られるため、方程式の解の値が近いからと言って、それが実際の機構において人間の直感において近いものとは限らないことがある。このように、2つ以上の位置及び姿勢がある場合(この場合は、ロッド32およびスライダ33について2つ以上解があることが幾何拘束処理手段62によって特定される)には、図10の状態を再生した後に、系が図11の状態に移動する際には、図10の位置と図12の位置との2つの間の中間的な位置を数点経由してから図11の状態を求めることで、図12のような誤った解が得られることを避けることができる。
図13は収束計算を要する機構のある時点における状態を示す図であり、同図にはカム35とフォロワー36とからなる機構の例が示されている。カム35の中心から偏心して位置する偏心軸にはモータの軸が軸挿されており、機構制御ソフトウェアシミュレータ54からの制御コマンド55に従ってこのモータが駆動される。カム輪郭37はB-spline曲面である自由曲面として表現されており、フォロワー36の先端点がこのカム輪郭37上に存在するように幾何拘束が表現されている。フォロワー36はガイド38に把持されており、フォロワー36が上下にのみ動くようにフォロワー36の移動が規制されている。カム偏心軸が回転すると、カム輪郭37も移動し、それに追随する形でフォロワー36が移動する。しかしカム輪郭37は自由曲面として表現されているため、幾何拘束処理手段62内部において代数方程式として表現することができず、フォロワー36の位置は収束計算によって求めることになる。
収束計算を行う場合には、初期値をどのようにとるかで得られる解が異なる。シミュレーション時には、このような動きは細かな時間ステップを刻みながら実行されており、それぞれの時点における収束計算の初期値は、1つ前のステップの値が用いられるので、誤った結果が得られることはなく、例えば図14のような結果が得られる。しかし、図13の状態から急に図14の状態のように大きく変化した場合には、図15に示す状態のように誤った結果が計算されてしまう危険がある。このように収束計算によって部品の位置計算を行う場合には、代数方程式を分析して、機構を記述する方程式の解が複数あるかどうかを予め判定することはできない。本実施形態に係るシミュレーション再生表示装置は、このようなカム35のような部品がある場合には、部品が移動した場合、その移動の度合いに応じて適切に移動の開始位置から移動が終了する位置までの間の中間的な位置を数点経由し、これらの中間的な位置についての計算を行ってから図14の状態を求めるようにしている。そのため、カム35のように軌跡についての収束計算が必要な部品については、移動監視対象部品DB64に登録しておくことが望ましい。ユーザにとっては、どの部品がこのような収束計算が必要であるかは必ずしも明らかではないため、このような部品のリストを表示装置67の画面上に表示し、ユーザに必要な部品を選択させて、選択された部品を移動監視対象部品DB64に登録する方式とすることが望ましい。ただし、収束計算が必要なこのような場合でも、初期値を異なる多数の値に設定して解を求めるなどしてすべての解を求め、この解を求める計算によって解の個数が2つ以上であるかどうかを判断することも可能である。このような処理を行えば、図10のピストンの往復運動と同様の運動を行う機構についての計算と同様に扱うこともできる。
なお、収束計算によって位置計算をしなければならない部品は、必ずしもカム35とフォロワー36のみではない。図16は図13のフォロワー36にさらにリンク39が連係された機構の状態を示す図である。このリンク39は、ピンが摺動自在に挿通される長穴を一端部に有し、この一端部はフォロワー38の上端部にピンを介して連結されている。リンク39の他端部は別のピンによって空間上の一点に揺動自在に軸止めされており、この右側のピンとリンク39の軸穴とによって軸部40が形成されている。
カム偏心軸41の回転角度が決まると順次カム35、フォロワー36及びリンク39の各部品の位置が決まるが、その関係を図示したものが、図17である。図17は部品の位置が決定される順序を説明するための図である。モータ軸の回転角度(すなわちカム偏心軸41の回転角度)が決まると、モータ軸に直接つながった部品(カム)35の位置が決まる。部品35の位置が決まると収束計算によって部品(フォロワー)36の位置がきまり、その後に部品(リンク)39の位置が決まる。部品36の位置を計算するのに収束計算が必要であるので、その結果が必要な部品39の位置が決まるためにも、部品36の位置を計算する収束計算が必要である。このように部品の位置が決まる順序を図17のようにたどることにより部品39は位置を決めるために収束計算が必要な部品であることをシミュレーション再生表示装置はわかる。このような分析は、幾何拘束処理手段62で行われ、後述する図19のフローチャートの判断処理ステップS3において、部品39のような部品は、収束計算が必要な部品として判断される。なお、図18のように部品35と部品36とがピンで連結されている場合は、部品35の位置が決まると部品36の位置が決まるが、この場合は図10〜図12について説明した場合のように代数方程式を解くことにより位置を得る計算が可能であるので、部品36も部品39の収束計算が必要な部品ではない。
次に、上述の構成の本実施形態に係るシミュレーション再生表示装置が再生表示を行う際の処理手順について述べる。図2に示す変数値時間履歴記憶手段57には、シミュレーションの際のすべてのタイムステップにおけるハイブリッドモデルシミュレーション部56から機構(キネマティクス)シミュレーション部58への入力値および部品の移動の有無が記憶されている。
変数値時間履歴記憶手段57には2種類のフラグが記憶される。1つ目のフラグは収束計算で解が求まる部品であるか否かを表すフラグである。2つ目のフラグは解が2つ以上あるかどうかを表すフラグである。2つ目のフラグは、収束計算によらずに解が求まる部品であり且つ移動監視対象部品DB64に登録されている部品について、上記情報に加えてシミュレーション実行時において、シミュレーションの際のすべてのタイムステップごとに解が2つ以上あるかどうかを算出した結果得られる。
シミュレーション再生を行う際には、図3に示す表示装置67には、前回再生表示された状態が表示されている。これを再生表示前の状態とすると、この状態に対応するシミュレーション時間が現在表示時間記憶手段68に記憶されている。再生表示はユーザが入力装置69から再生表示したいシミュレーション時間の形式で指定する。この入力されたデータは、再生表示用中間位置決定手段66に送られて、再生表示時間と現在表示時間記憶手段68のデータとを参照して、現在表示時間から再生表示時間に移動する際に中間位置を計算させるべきかどうかを再生表示用中間位置決定手段66が判定する。中間位置を計算させることが必要であると再生表示用中間位置決定手段66が判定した場合には、再生表示用中間位置決定手段66は、幾何拘束処理手段62を起動して、中間位置に相当するアセンブリの位置及び姿勢を計算し、位置及び姿勢の結果をアセンブリモデル記憶手段61に記憶する。再生表示用中間位置決定手段66は、必要な回数の中間位置を幾何拘束処理手段62に計算させた後には、再生表示時間に対応する変数値によって幾何拘束処理手段62を起動し、アセンブリの位置及び姿勢を計算し、更にアセンブリモデル記憶手段61を起動して表示装置67に3次元CG表示させる。この表示装置67が表示を行ったときに、再生表示時間は現在表示時間の値として現在表示時間記憶手段68に記憶される。
図19は、上記再生表示用中間位置決定手段66が中間位置を計算させるべきかどうかを判定する処理を示すフローチャートである。ステップS1で再生表示時間が読み込まれる。判定ステップS2で、再生表示用中間位置決定手段66は再生表示時間と現在表示時間の間にユーザが着目している部品についての移動はあるかどうかを判定し、移動がないと判断すると、nルートを通り、ステップS8の処理の後、そのまま表示をすればよい。この表示処理は、ユーザが着目していない部品については移動がある可能性があるので、一応幾何拘束処理手段62を起動しておいた方がよい。ステップS2で移動があると判定された場合、yルートを通り、判定ステップS3において、収束計算を要する部品の有無が判定される。ステップS3において、カムのように収束計算が必要なものがあると再生表示用中間位置決定手段66が判定した場合、yルートを通り、再生表示用中間位置決定手段66は再生表示時間と現在表示時間との間を予め決められた間隔で中間位置を設定する(ステップS6)。ステップS7で中間位置へ移動してシミュレーションが行われる。
ステップS3において、収束計算を要する部品がないと判断された場合、nルートを通り、判定を行うステップS4に進む。この場合には、再生表示用中間位置決定手段66は、再生表示時間において、部品の位置及び姿勢に複数の解があるかどうかを判定し、この部品に複数の解があると判定した場合には、yルートを通り、ステップS5において再生表示用中間位置決定手段66は再生表示時間と現在表示時間との間での複数の解がある範囲の計算を行い、ステップS6にて、この範囲について予め決められた間隔で中間位置を設定する。ステップS4にて、部品が複数の解を持たないと判定された場合、nルートを通り、ステップS8の処理が行われる。
なお、上記のシミュレーション再生表示装置は、シミュレーション実行時に、シミュレーションの際のすべてのタイムステップごとに解が2つ以上あるかどうかを算出して、タイムステップ毎の解の有無の結果を表すフラグを変数値時間履歴記憶手段57に記憶するように構成されているが、本実施形態に係るシミュレーション再生表示装置は、再生表示を行う際、幾何拘束処理手段62を起動してこの幾何拘束処理手段62を用いて解が2つ以上あるかどうかの判定を行うようにしてもよい。
以上は、ロボットなどのアセンブリモデルの表現およびシミュレーションについての説明であった。以下では、次にモータなどの特性表現について説明する。モータなどアクチュエータなどのモデル化では、加速や減速など時間軸上でどのような挙動をするかかが重要であり、ダイナミクスの表現が必要となる。
本実施形態に係るシミュレーション再生表示装置は、ハイブリッドモデリング言語により、系を常微分連立方程式として表現する方法をとる。ハイブリッドモデリング言語の具体的な細かな仕様および基本的な考え方については、発明者の論文「Use of hybrid models for testing and debugging control software for electromechanical systems」(IEEE/ASME Trans. Mechatronics, vol.10, no.3, pp.275-284)に詳しく述べられている。
単純なDCモータモデルの例と、その動作結果の例とを図20に示す。
x1'' = b1 ( a1 - x1' )
b1 = 6.0
a1 = 3.0 …(1)
a1 = -3.0 …(2)
a1 = 0.0 …(3)
x1がモータ回転角、b1は立ち上がりの急峻さを規定するパラメータ、a1が定常回転速度を表す。a1にかかわる3つの式(1)、(2)、(3)については、モータが正転モード、逆転モード、停止モードのいずれであるかによって切り替えられる。
b1 = 6.0
a1 = 3.0 …(1)
a1 = -3.0 …(2)
a1 = 0.0 …(3)
x1がモータ回転角、b1は立ち上がりの急峻さを規定するパラメータ、a1が定常回転速度を表す。a1にかかわる3つの式(1)、(2)、(3)については、モータが正転モード、逆転モード、停止モードのいずれであるかによって切り替えられる。
回転速度が上がるに伴って、コイルに逆起電力が生じ、この逆起電力によってモータへの電流が減るため、加速が鈍って定速で回転すると考えて系がモデル化されており、上記のような微分方程式が得られている。
このようなハイブリッドシステムを記述する言語として他に知られているものとして、米国Xerox社のPalo Alto 研究所で研究され、発展研究が米国NASA Ames研究所で行われているHCC(Hybrid Concurrent Constraint Programming)という言語がある。これは制約処理プログラミング(コンストレイントプログラミング)と呼ばれる技術の一種であり、モデルを表現する微分方程式や代数方程式を制約と考え、これら方程式をそのまま順不同で記述する。これに状態遷移を制御するプログラムを付加してモデルを完成させる。方程式をそのまま制約として羅列してプログラムとすることができる点は便利ではある。しかし、これは一種のプログラミング言語であり、複雑なモデルを記述することができるが、コンストレイントプログラミングの理解が必要となり、プログラム言語として難解なため、プログラム作成能力習得が難しい。
MathWorks社のMatlab(登録商標)製品群は制御技術者などを中心によく使われているソフトウェアツールであり、ハイブリッドモデルで表現されるモデルを等価的に記述することが可能である。しかし、例えば微分方程式をそのまま連続系の記述とすることはできず、微分方程式の内容を分析して積分要素などの要素を組み合わせたブロック線図として定義しなおす必要がある。
以下では、本実施形態に係るシミュレーション再生表示装置によってハイブリッドモデルがどのように入力され、結果が出力されうるかを具体的な例題で説明する。まず図21から図25で、簡単な例題を説明する。これらの図21から図25に示す要素のうち上述した符号と同じ符号を有する要素はそれらと同じものを表す。
図21に示される機械装置は、バルブ42、バネ43、及びピストン44からなる空気圧式のアクチュエータ機構のモデルである。エアシリンダの側面には、エアシリンダの内部と外部とを連通する通気穴が左右2箇所に形成されている。エアシリンダ本体に設けられたバルブ42は、圧縮空気を左通気路と右通気路とに切り替えて吸気させる構造を有し、外部からの指令により、位置を、空気の流れを右側(以下Rightとよぶ)ないし左側(以下Leftとよぶ)に変更することができる。図21ではバルブ42はRightの状態であるので、ピストン44には左向きの力がかかっている。この状態を示す運動方程式は次式
-F = m x’’
で表される(図21ではピストン44の下方に示されている。)。図22はさらにピストン44が左方に移動し、ピストン44の先端に装着された圧力板がバネ43に当接した状態を示している。この状態においては、バネ43による反力が発生するため、運動方程式は図22のように変化する。
-F = m x’’
で表される(図21ではピストン44の下方に示されている。)。図22はさらにピストン44が左方に移動し、ピストン44の先端に装着された圧力板がバネ43に当接した状態を示している。この状態においては、バネ43による反力が発生するため、運動方程式は図22のように変化する。
図23はバルブ42の位置を、Leftにした状態で、空気の流れの向きが変わり、運動方程式がさらに変化する。図24は、ピストン44が移動し、バネ43からの反力がなくなった状態であり、運動方程式がさらに変化している。
図25は、以上の状態変化とそれぞれの状態に対応する運動方程式とを状態遷移図として表現したものである。ハイブリッドモデルはこの図25に示されるように、状態遷移と、各状態の記述とが微分方程式や代数方程式で表現されるものを指す。
図26は、このような状態遷移図として入力されたデータがどのようにモデルの記述に出力されるかを分かりやすく説明するために、図25の例をさらに簡略化したものである。ここでは2つの状態と、これらの状態の間の状態遷移とを考える。図27は図26のモデルの内容をHCCで記述した例である。図27の(i)、(ii)、(v)はこの機械装置の初期状態やバルブ操作のタイミングなど運転条件を記述しており、(iii)及び(iv)が図26の状態遷移を表現している。HCCでは、運動方程式はそのまま書くことができる。また、それぞれの状態へ遷移する条件を最初の always ifの次に、またそれぞれの状態から遷移していく条件を最後の watching の後に記述すればよい。
ハイブリッドコンストレイントプログラミング言語では、プログラムの記述の順序(図27の(i)〜(v)の順序)にそって実行されるわけではない。個別のプログラム記述のうち、シミュレーションを実行する時間軸にそって、成立するものを探索して実行するため、(i)〜(v)の順序は関係がない。たとえば、シミュレーションを開始した時点では、(i)及び(v)のみ有効である。開始時点でイベントRightが(i)により発生するため、(iv)の前提条件であるRightが有効となり(iv)の運動方程式2が有効になり、図26の左側の状態としてシミュレーションが実行される。時間が50となると(ii)が有効となり、イベントLeftが発生し、(iv)の遷移条件(watching 以下)が有効となり、(iv)の運動方程式が無効となる。代わって(iii)の前提条件が有効となり、運動方程式1が有効となる。
上記のように図2におけるハイブリッドモデルシミュレーション部56を実現することにより、制御対象の機構のシミュレーションを行う機構シミュレータ53を実現することができる。
以上説明したように、本実施形態に係るシミュレーション再生表示装置及びシミュレーション再生表示方法によれば、メカトロ機器を対象として、制御プログラムを制御対象である機械の実機を用いずシミュレータを用いて検証する際に、シミュレーションの実行後に、任意の時点における制御対象の状況を、計算量を少なくし効率的に処理を行うことが可能となり、シミュレーション結果を高速に表示することができるようになる。
シミュレーションを実行した後、シミュレーション中の状況をシミュレータが再生表示する場合、シミュレータは、実行結果をトレースすること、メカ動作を3次元表示させたり再現実行させること、あるいはタイミングチャートを生成することなどを行う。ユーザは画面上に表示される任意の時点を選択して、選択した時点における空間内でのアセンブリの位置や姿勢を検証する。本実施形態に係るシミュレーション再生表示装置によれば、方程式によって解の個数が1つであるのか、あるいは2以上であるのかを即座に判定し、1個であると判定した場合、ユーザによって選択された時点に飛んで、その時点における機構の位置及び姿勢を計算して表示できるようになる。また、解の個数が複数である時間領域については、このシミュレーション再生表示装置は、再計算すべき時間の範囲を挿入し、この時間の範囲内の各時点で再計算を行うことによって、誤った位置の機構あるいは誤った姿勢の機構を再計算した結果として出力することがなくなる。これによって、機構の正しい位置及び姿勢を再生表示することができ、かつ再計算の高速化が行えるようになる。
1回のシミュレーションでは、サンプルする時刻の点数は数千から数万である。解の個数が1個である場合、本実施形態に係るシミュレーション再生表示装置によれば、ユーザにより選択された時点に飛んでその時点についてシミュレーションを行って結果を再生表示できるようになる。また、解の個数が複数である場合、このシミュレーション再生表示装置によれば、各時点における演算結果の時刻履歴を順番に追って機構を動作させたり、あるいは、シミュレーションを実行する時間間隔をいくつかスキップして機構を動作させるといった処理を行わずに、膨大な数の時点の中から選択された時点について再生表示を行えるようになる。従って、機構の位置及び姿勢を計算しなおす際に、計算量を少なくでき、効率的に処理を行えるようになる。また、任意の時点におけるシミュレーション結果の表示を高速に行うことができるようになる。
尚、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。図10から図12では機構を構成する全ての部品が画面上に表示されていたが、本実施形態に係るシミュレーション再生表示装置はこれらの部品のうちのいずれかの部品を非表示にすることもできる。例えばある部品の位置や姿勢を確認する際に、その部品の前に別の部品が位置しているため、後ろ側にある部品についての前方からの視線が遮られることがある。このシミュレーション再生表示装置は、収束計算に不要な部品を画面上から隠蔽する機能をも付け加えることができる。ロッド32、スライダ33及びレール34を非表示にする操作をユーザが行うことにより、モータ軸の回転角だけで位置が決まる円盤31についてのみ検証を行えるようになる。
また、本実施形態に係るシミュレーション再生表示方法をコンピュータに実行させるためのシミュレーションプログラムを保存しておくこともできる。コンピュータが、このプログラムを読出すことにより、このコンピュータは本実施形態に係るシミュレーション再生表示装置として機能する。本実施形態に係るシミュレーションプログラムを、ハードディスクやコンピュータが読取り可能な各種の記憶媒体に保存することによって、このシミュレーションプログラムの保存、運搬、販売等を容易に行える。
また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
1,2,3,25,26…部品、4,6,8〜11…平面、5,7…円筒面、12〜15…関係、16,17,22,23…拘束関係、18,19…直線、20,21…頂点、24…ワールド座標系、27,28…直線、29…一致関係、31…円盤、32…ロッド、33…スライダ、34…レール、35…カム、36…フォロワー、37…カム輪郭、38…ガイド、39…リンク、40…軸部、41…カム偏心軸、42…バルブ、43…バネ、44…ピストン、50…リモコン、51…制御ボード、52…制御対象シミュレータ(シミュレーション再生表示装置)、53…機構シミュレータ、54…機構制御ソフトウェアシミュレータ、55…制御信号、56…ハイブリッドモデルシミュレーション部、57…変数値時間履歴記憶手段、58…キネマティクスシミュレーション部、59…ソースプログラム、60…機構モデルデータ、61…アセンブリモデル記憶手段、62…幾何拘束処理手段、63…移動監視手段、64…移動監視対象部品データベース、65…干渉チェック手段、66…再生表示用中間位置決定手段、67…表示装置、68…現在表示時間記憶手段、69…入力装置、70…移動監視部品データファイル。
Claims (5)
- 機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーション再生表示装置であって、
前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルデータを予め読み込み、シミュレーション実行中に前記制御プログラムからの制御コマンドをサイクル時間ごとに読み込みながら、ダイナミクスシミュレーションを実行するハイブリッドモデルシミュレータと、
機構モデルデータを予め読み込み、前記機構に含まれる複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルのデータを記憶するアセンブリモデル記憶手段と、
前記アセンブリモデル記憶手段を参照して幾何拘束の処理を行う幾何拘束処理手段と、
前記幾何拘束処理手段を参照して前記部品の移動を検出する移動監視手段と、
前記ハイブリッドモデルシミュレータから前記幾何拘束処理手段への前記サイクル時間ごとに入力されるデータと、前記移動監視手段の検出結果とを記憶する変数値時間履歴記憶手段と、
シミュレーション実行後に入力された再生表示を行う所望のシミュレーション時刻、及びシミュレーション実行後に表示されている現在表示時間を参照して、前記幾何拘束処理手段を起動する中間位置を算出する中間位置決定手段と、を備え、
前記幾何拘束処理手段がこの中間位置決定手段の算出結果に基づき起動され、表示装置が再計算されたシミュレーション結果を表示することを特徴とするシミュレーション再生表示装置。 - 前記中間位置決定手段は、部品の位置及び姿勢について2つ以上の解が存在するかどうかをシミュレーション中に算出し、前記変数値時間履歴記憶手段は、算出の結果得られた2つ以上の解が存在するかどうかのフラグを記憶することを特徴とする請求項1記載のシミュレーション再生表示装置。
- 前記中間位置決定手段は、前記部品のうち1つ以上が位置及び姿勢の解を収束計算により計算する必要がある場合と、前記部品のすべてが位置及び姿勢の解の計算を代数方程式を解くことで得る場合とで、中間的な位置を求める方法を切り替えることを特徴とする請求項1記載のシミュレーション再生表示装置。
- 機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーション再生表示方法であって、
前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルを用いてシミュレーションを行うハイブリッドモデルシミュレーション部によるダイナミクスシミュレーションと、複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルを用いてシミュレーションを行うキネマティクスシミュレーション部によるキネマティクスシミュレーションとをすべてのサイクル時間について実行するステップと、
入力された再生表示を行う所望のシミュレーション時刻を読込むステップと、
前記ダイナミクスシミュレーション及び前記キネマティクスシミュレーションの実行後に表示されている現在時間を取込むステップと、
前記所望のシミュレーション時刻及び前記現在時間に基づいて、幾何拘束処理を行う中間位置を算出するステップと、
前記キネマティクスシミュレーション部が前記中間位置においてキネマティクスシミュレーションを実行するステップと、
表示装置が、前記再生表示を行う所望のシミュレーション時刻でのシミュレーション結果を表示するステップとを備えたことを特徴とするシミュレーション再生表示方法。 - 機器を制御対象とする制御プログラムを、制御対象のシミュレータを用いてシミュレーションすることにより、この制御プログラムの検証を行うシミュレーションプログラムであって、
前記機器を構成する機構に含まれる可動構成要素の動きを記述するハイブリッドモデルを用いてシミュレーションを行うハイブリッドモデルシミュレーション部によるダイナミクスシミュレーションと、複数の部品の形状及びこれらの部品相互間の拘束関係によって表されるアセンブリモデルを用いてシミュレーションを行うキネマティクスシミュレーション部によるキネマティクスシミュレーションとをすべてのサイクル時間について実行する手順と、
入力された再生表示を行う所望のシミュレーション時刻を読込む手順と、
前記ダイナミクスシミュレーション及び前記キネマティクスシミュレーションの実行後に表示されている現在時間を取込む手順と、
前記所望のシミュレーション時刻及び前記現在時間に基づいて、幾何拘束処理を行う中間位置を算出する手順と、
前記キネマティクスシミュレーション部が前記中間位置においてキネマティクスシミュレーションを実行する手順と、
表示装置が、前記再生表示を行う所望のシミュレーション時刻でのシミュレーション結果を表示する手順とをコンピュータに実行させることを特徴とするシミュレーションプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007275270A JP2009104388A (ja) | 2007-10-23 | 2007-10-23 | シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム |
US12/257,081 US20090106005A1 (en) | 2007-10-23 | 2008-10-23 | Simulation reproducing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007275270A JP2009104388A (ja) | 2007-10-23 | 2007-10-23 | シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009104388A true JP2009104388A (ja) | 2009-05-14 |
Family
ID=40564354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007275270A Pending JP2009104388A (ja) | 2007-10-23 | 2007-10-23 | シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20090106005A1 (ja) |
JP (1) | JP2009104388A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045254A (ja) * | 2011-08-23 | 2013-03-04 | Fujitsu Ltd | 生成装置、生成プログラムおよび生成方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5958354B2 (ja) * | 2013-01-16 | 2016-07-27 | 富士通株式会社 | 通信監視装置、発生予測方法及び発生予測プログラム |
US11972177B2 (en) * | 2013-11-08 | 2024-04-30 | Rockwell Automation Technologies, Inc. | Interface for data exchange between industrial controllers and simulation applications for simulating a machine |
JP2017134722A (ja) * | 2016-01-29 | 2017-08-03 | ファナック株式会社 | 共通の言語仕様のプログラムにて複数の種類の製造装置を駆動する製造システム |
US11620418B2 (en) * | 2018-03-16 | 2023-04-04 | Autodesk, Inc. | Efficient sensitivity analysis for generative parametric design of dynamic mechanical assemblies |
CN109407535A (zh) * | 2018-12-07 | 2019-03-01 | 珠海格力智能装备有限公司 | 摆线轮运动的控制方法及仿真的控制方法、终端设备 |
WO2021068334A1 (zh) * | 2019-10-12 | 2021-04-15 | 深圳先进技术研究院 | 一种驱控一体化控制系统 |
CN111581692A (zh) * | 2020-04-03 | 2020-08-25 | 五邑大学 | 基于云平台的机电设备运维方法、装置和设备 |
CN113192376B (zh) * | 2021-04-28 | 2022-12-06 | 深圳市思麦云科技有限公司 | 一种基于虚拟现实眼镜vr技术应用于电力行业的系统 |
JP2023006299A (ja) * | 2021-06-30 | 2023-01-18 | オムロン株式会社 | シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000137740A (ja) * | 1998-08-25 | 2000-05-16 | Toshiba Corp | アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体 |
JP2002083252A (ja) * | 2000-09-07 | 2002-03-22 | Komatsu Ltd | 高速計算コード作成システム及び該コードを記憶した記憶媒体 |
JP2003030251A (ja) * | 2001-07-19 | 2003-01-31 | Fujitsu Ltd | シミュレーションシステム、方法、プログラム及び記録媒体 |
JP2003271679A (ja) * | 2002-03-15 | 2003-09-26 | Toshiba Corp | ハイブリッドモデル作成方法及びプログラム |
JP2004178300A (ja) * | 2002-11-27 | 2004-06-24 | Toshiba Corp | ハイブリッドモデルを用いるシミュレーション方法およびプログラム |
JP2006195952A (ja) * | 2004-10-13 | 2006-07-27 | Canon Inc | 情報処理装置およびその制御方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3854033B2 (ja) * | 2000-03-31 | 2006-12-06 | 株式会社東芝 | 機構シミュレーション装置及び機構シミュレーションプログラム |
JP4743944B2 (ja) * | 2000-08-25 | 2011-08-10 | 鎮男 角田 | シミュレーションモデル作成方法及びそのシステムと記憶媒体 |
JP2004220566A (ja) * | 2002-12-26 | 2004-08-05 | Toshiba Corp | 機構シミュレーション方法および機構シミュレーションプログラム |
US20040181380A1 (en) * | 2002-12-26 | 2004-09-16 | Mitsunobu Yoshida | Simulation method and program product |
JP4413891B2 (ja) * | 2006-06-27 | 2010-02-10 | 株式会社東芝 | シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム |
-
2007
- 2007-10-23 JP JP2007275270A patent/JP2009104388A/ja active Pending
-
2008
- 2008-10-23 US US12/257,081 patent/US20090106005A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000137740A (ja) * | 1998-08-25 | 2000-05-16 | Toshiba Corp | アセンブリモデル作成方法およびアセンブリモデル作成処理プログラムを記録した記録媒体 |
JP2002083252A (ja) * | 2000-09-07 | 2002-03-22 | Komatsu Ltd | 高速計算コード作成システム及び該コードを記憶した記憶媒体 |
JP2003030251A (ja) * | 2001-07-19 | 2003-01-31 | Fujitsu Ltd | シミュレーションシステム、方法、プログラム及び記録媒体 |
JP2003271679A (ja) * | 2002-03-15 | 2003-09-26 | Toshiba Corp | ハイブリッドモデル作成方法及びプログラム |
JP2004178300A (ja) * | 2002-11-27 | 2004-06-24 | Toshiba Corp | ハイブリッドモデルを用いるシミュレーション方法およびプログラム |
JP2006195952A (ja) * | 2004-10-13 | 2006-07-27 | Canon Inc | 情報処理装置およびその制御方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045254A (ja) * | 2011-08-23 | 2013-03-04 | Fujitsu Ltd | 生成装置、生成プログラムおよび生成方法 |
Also Published As
Publication number | Publication date |
---|---|
US20090106005A1 (en) | 2009-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4413891B2 (ja) | シミュレーション装置およびシミュレーション方法並びにシミュレーションプログラム | |
JP2009104388A (ja) | シミュレーション再生表示装置及びシミュレーション再生表示方法並びにシミュレーションプログラム | |
Coros et al. | Computational design of mechanical characters | |
US8655461B2 (en) | Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller | |
Lee et al. | Construction of a computer-simulated mixed reality environment for virtual factory layout planning | |
US20060279576A1 (en) | Systems and methods for generating 3d simulations | |
US20140019112A1 (en) | Synthesis of simulation models from systems engineering data | |
Csabai et al. | Container spaces and functional features for top-down 3D layout design | |
Luebbers et al. | Arc-lfd: Using augmented reality for interactive long-term robot skill maintenance via constrained learning from demonstration | |
Manou et al. | Off-line programming of an industrial robot in a virtual reality environment | |
Liu et al. | Virtual assembly with physical information: a review | |
US7398190B2 (en) | Method and program for linking dynamics simulation and kinematic simulation | |
He et al. | Haptic-aided robot path planning based on virtual tele-operation | |
Thongnuch et al. | A practical simulation model generation for virtual commissioning | |
von Szadkowski et al. | Phobos: A tool for creating complex robot models | |
Yao et al. | A pragmatic system to support interactive assembly planning and training in an immersive virtual environment (I-VAPTS) | |
Abd Rahman et al. | The development of methodology for tool path generation using STEP data model based on ISO 6983 | |
Anderl et al. | Simulations with NX/Simcenter 3D: Kinematics, FEA, CFD, EM and Data Management | |
US10719070B2 (en) | System and method for modeling signal flows in automation technology equipment | |
Osorio-Gómez et al. | An augmented reality tool to validate the assembly sequence of a discrete product | |
De Laet et al. | Domain specific language for geometric relations between rigid bodies targeted to robotic applications | |
JP2005250793A (ja) | 物理モデル作成装置、該物理モデル作成装置を備えたシミュレーション装置、及び物理モデル作成方法 | |
JP4549077B2 (ja) | シミュレーション装置及び該装置のプログラム | |
Hoisl et al. | Exploring the integration of spatial grammars and open-source CAD systems | |
Glišović et al. | Review of virtual reality applications for reducing time and cost of vehicle development cycle |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101006 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120313 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120327 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20120731 |