(57)【要約】【課題】制御用ソフトウェアの開発において、実機を用いた検証の手間を軽減することを可能とする制御シミュレーションシステムを提供する。【解決手段】制御シミュレーションシステムは、制御指令に基づいて機器を制御するために機器インターフェイスを介して送信される電気信号を機器インターフェイスの種類に応じて生成する制御部と、入力インターフェイスを介して入力した入力電気信号を制御指令に変換する中間プログラムを入力インターフェイスの種類に応じて複数記憶する中間プログラム記憶部と、制御部から受信した電気信号を、複数の中間プログラムのうちのいずれかを用いて制御指令に変換して得られた入力制御指令に基づいて、機器の動作をシミュレートする動画を作成して表示するアニメーション部とを備える。【選択図】図１
2008100315.tif 000002
【特許請求の範囲】
【請求項１】
設定された制御指令に基づいて機器を制御するために機器インターフェイスを介して送信される電気信号を前記機器インターフェイスの種類に応じて生成する制御部と、
前記制御部から入力した入力電気信号を制御指令に変換する中間プログラムを前記機器インターフェイスの種類に応じて複数記憶する中間プログラム記憶部と、
前記制御部から受信した前記電気信号を、前記複数の中間プログラムのうちのいずれかを用いて制御指令に変換して得られた入力制御指令に基づいて、前記機器の動作をシミュレートする動画を作成して表示するアニメーション部
とを具備する
制御シミュレーションシステム。
【請求項２】
請求項１に記載された制御シミュレーションシステムであって、
更に、前記制御部から前記電気信号を、前記複数の中間プログラムのうちのいずれかを用いて制御指令に変換して得られた入力制御指令に基づいて、前記機器の動作を示す数値を算出するシミュレーション部
を具備する
制御シミュレーションシステム。
【請求項３】
請求項１または２に記載された制御シミュレーションシステムであって、
前記制御部は、前記機器の状態を示す機器データを前記機器から取得し、
前記アニメーション部は、前記機器データを用いて、前記機器の動作と同期して前記動画を作成して表示する
制御シミュレーションシステム。
【請求項４】
請求項１から３のいずれか１項に記載された制御シミュレーションシステムであって、
更に、前記動画が表示される仮想空間における断面の設定を行う断面設定部
を具備し、
前記アニメーション部は、前記動画または前記動画から抽出された静止画像の前記断面における画像を表示する
制御シミュレーションシステム。
【請求項５】
請求項１から４のいずれか１項に記載された制御シミュレーションシステムであって、
更に、前記動画が表示される仮想空間における位置と角度とを含む視点の情報の設定を行う視点設定部
を具備し、
前記アニメーション部は、前記視点から見た前記動画または前記動画から抽出された静止画像を表示する
【請求項６】
請求項５に記載された制御シミュレーションシステムであって、
前記機器は可動部を備え、
前記視点設定部において、前記視点は前記可動部に設定可能であり、
前記アニメーション部は、前記可動部の動作に応じて移動する前記視点から見た前記動画または前記動画から抽出された静止画像を表示する
制御シミュレーションシステム。
【請求項７】
設定された制御指令に基づいて機器を制御するために機器インターフェイスを介して送信される電気信号を前記機器インターフェイスの種類に応じて生成して前記機器に送信し、前記機器から現在の状態を示す機器データを取得する制御部と、
前記制御部から入力した入力電気信号を制御指令に変換する中間プログラムを前記機器インターフェイスの種類に応じて複数記憶する中間プログラム記憶部と、
前記制御部から受信した前記機器データを用いて、前記機器の動作と同期して、前記機器の動作をシミュレートする動画を作成して表示するアニメーション部
とを具備する
制御シミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多関節アームロボットに例示されるロボットの制御をシミュレートする技術に関する。
【背景技術】
【０００２】
制御用のソフトウェアによる制御指令に応答して動作する機器（例示：多関節アームロボット）が知られている。制御用のソフトウェアは通常、実機による検証と、その検証の結果を受けた修正とを繰り返すことにより、完成度が高く実用的なソフトウェアになる。
【０００３】
特許文献１には、作成したロボットプログラムによるロボットの動作の評価、基本的な周辺機器との入出力の正確な評価を行い、工程の周辺機器のレイアウト評価を短時間でかつ容易に行うためのロボットシミュレーション装置が記載されている。
【特許文献１】特開２０００−２４９７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
制御用ソフトウェアの開発において、実機による検証を頻繁に行うことは、多くの作業工程を必要とする。
そこで本発明の目的は、制御用ソフトウェアの開発において、実機を用いた検証の手間を軽減することを可能とする制御シミュレーションシステムを提供することである。
【０００５】
制御用ソフトウェアの開発において、ソフトウェアによるシミュレーションを用いた検証が行われる。このシミュレーションは、実機による検証に近いものであることが望まれる。
そこで本発明の他の目的は、実機による検証に近いシミュレーションを可能とする制御シミュレーションシステムを提供することである。
【０００６】
制御用ソフトウェアによって実機を制御する場合、実機、周辺環境及びワークの関係によっては、実機の姿勢や、実機とワークの関係が見えにくい場合がある。こうした場合、実機を観察することにより制御用ソフトウェアの検証を行うことに支障がある。
そこで本発明の更に他の目的は、実機の状態を視認しづらい場合に、実機による観察を補う情報を提供する制御シミュレーションシステムを提供することである。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明による制御シミュレーションシステムは、設定された制御指令に基づいて機器（４）を制御するために機器インターフェイス（７）を介して送信される電気信号を機器インターフェイス（７）の種類に応じて生成する制御部（８）と、制御部（８）から入力した入力電気信号を制御指令に変換する中間プログラムを機器インターフェイス（７）の種類に応じて複数記憶する中間プログラム記憶部（ＤＢ３）と、制御部（８）から受信した電気信号を、複数の中間プログラムのうちのいずれかを用いて制御指令に変換して得られた入力制御指令に基づいて、機器の動作をシミュレートする動画を作成して表示するアニメーション部（１０）とを備える。
【０００９】
本発明による制御シミュレーションシステムは更に、制御部（８）から電気信号を、複数の中間プログラム（ＤＢ１）のうちのいずれかを用いて制御指令に変換して得られた入力制御指令に基づいて、機器の動作を示す数値を算出するシミュレーション部（２０）を備える。
【００１０】
本発明による制御シミュレーションシステムにおいて、制御部（８）は、機器（４）の状態を示す機器データを機器から取得する。アニメーション部（１０）は、機器データを用いて、機器の動作と同期して動画を作成して表示する。
【００１１】
本発明による制御シミュレーションシステムは更に、動画が表示される仮想空間（１２）における断面の設定を行う断面設定部を備える。アニメーション部（１０）は、動画または動画から抽出された静止画像の断面における画像を表示する。
【００１２】
本発明による制御シミュレーションシステムは更に、動画が表示される仮想空間（１2）における位置と角度とを含む視点の情報の設定を行う視点設定部を備える。アニメーション部（１０）は、視点から見た動画または動画から抽出された静止画像を表示する。
【００１３】
本発明による制御シミュレーションシステムにおいて、機器（４）は可動部を備える。視点設定部において、視点は可動部に設定可能である。アニメーション部（１０）は、可動部の動作に応じて移動する視点から見た動画または動画から抽出された静止画像を表示する。
【００１４】
本発明による制御シミュレーションシステムは、設定された制御指令に基づいて機器を制御するために機器インターフェイス（７）を介して送信される電気信号を機器インターフェイス（７）の種類に応じて生成して機器（４）に送信し、機器から現在の状態を示す機器データを取得する制御部（８）と、制御部（８）から入力した入力電気信号を制御指令に変換する中間プログラムを機器インターフェイス（７）の種類に応じて複数記憶する中間プログラム記憶部（ＤＢ３）と、制御部（８）から受信した機器データを用いて、機器の動作と同期して、機器の動作をシミュレートする動画を作成して表示するアニメーション部（１０）とを備える。
【発明の効果】
【００１５】
本発明によれば、制御用ソフトウェアの開発において、実機を用いた検証の手間を軽減することを可能とする制御シミュレーションシステムが提供される。
【００１６】
更に本発明によれば、実機による検証に近いシミュレーションを可能とする制御シミュレーションシステムが提供される。
【００１７】
更に本発明によれば、実機の状態を視認しづらい場合に、実機による観察を補う情報を提供する制御シミュレーションシステムが提供される。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら本発明による制御シミュレーションシステムを実施するための最良の形態について説明する。図１は、制御シミュレーションシステムの構成を示す。
【００１９】
実験室、製造ラインなどの実環境２の内部に、実機システムとしてロボット４が設置される。本実施の形態におけるロボット４は、多関節アームロボットを備えている。ロボット４は、実環境２に配置されたワーク６に対して作業を行う。
【００２０】
制御シミュレーションシステムは、制御部８、アニメーション部１０及びシミュレーション部２０を備える。これらの各部は例えばパーソナルコンピュータを用いて実現される。
【００２１】
制御部８は、制御プログラムを記憶する記憶部と、制御プログラムを読み取って実行するＣＰＵと、ロボット４と情報通信するためのインターフェイス７とを備える。制御部８は、制御プログラムによって設定された制御指令に基づいて、ロボット４を制御するための電気信号を、インターフェイス７の種類に応じて生成する。制御指令は、例えばロボットアームが備える複数のモータのそれぞれの回転角度や回転速度などを示す。制御部８は、その電気信号をインターフェイス７（例示：ＲＳ−２３２Ｃ、イーサネット（登録商標））を介してロボット４に送信する。ロボット４は、その電気信号によって搬送される制御指令に従って制御される。
【００２２】
制御部８は、ロボット４のモータの回転角度を検出するエンコーダの情報など、実環境２における機器の状態を時系列的に示す情報をロボット４からインターフェイス７を介して受信して、実環境動作情報として記憶する。
【００２３】
シミュレーション部２０は、実機すなわち実環境２におけるロボット４についての情報である機器仕様が予め登録される機器仕様データベースを記憶する記憶部を備える。機器仕様は、ロボット４の各部のサイズ、モータの取り付けられている位置、モータの仕様など、ロボット４の動作を計算してシミュレートするために使用される情報である。記憶部はさらに、実環境２とワーク６についての情報である環境情報を予め記憶する。
【００２４】
シミュレーション部２０は、制御部８がインターフェイス７を介して実環境２におけるロボット４を制御するために生成する電気信号を、接続部１８を介して受信する。シミュレーション部２０は、受信した電気信号にインターフェイス７の種類に応じた変換を施すことによって制御指令を抽出する。シミュレーション部２０は、その制御指令と機器情報と環境情報を入力として、予め記憶するシミュレーションプログラムを実行し、ロボット４の動作を仮想的に計算してシミュレーション結果を出力する。すなわちシミュレーション部２０は、実際に実機を制御するための電気信号そのものを入力してシミュレーションを行う。シミュレーション結果は、モータの回転角、アームの関節や先端の位置及び角度を示す数値として出力される。
【００２５】
制御部８は、シミュレーション部２０が出力するシミュレーション結果を受信し、仮想環境１２における機器の状態を時系列的に示す仮想環境動作情報として記憶する。
【００２６】
アニメーション部１０は、実環境２及びワーク６と実機すなわち実環境２におけるロボット４とをそれぞれ三次元的な画像によって表現するための情報である環境３Ｄモデルと装置３Ｄモデルとを予め記憶する記憶部を備える。
【００２７】
アニメーション部１０は、環境３Ｄモデルを用いて、表示画面１１上に実環境２を模擬した仮想環境１２及び仮想ワーク１６を表示する。アニメーション部１０は、制御部８から受信した実環境動作情報と環境３Ｄモデルと装置３Ｄモデルとを用いて、実環境２におけるロボット４の時系列的な動作を仮想的に再現する仮想ロボット１４を仮想環境１２の内部に描画する。アニメーション部１０は、こうしたアニメーションを、シミュレーション部２０とは独立に、すなわちシミュレーション部２０を連動させることなしに生成し表示することができる。
【００２８】
次に、このような構成を備える制御シミュレーションシステムを用いて制御プログラムを作成する方法について、以下の順序で説明する。
１．シミュレーションによって制御プログラムを作成する，
２．実機で検証する，
３．実機の動作とアニメーションを比較する。
【００２９】
［１．シミュレーションによって制御プログラムを作成する］
図２において、図面を左右に横断する点線よりも上側は、制御シミュレーションシステムを用いて制御プログラムを作成する動作を示す。
【００３０】
開発者は、インターフェイス７を介してロボット４を制御するための制御ソフトウェアの仕様を設計する（Ｓ１）。開発者は、その仕様を満たすように制御ソフトウェアを製作する（Ｓ２）。制御部８はその制御ソフトウェアを記憶する。
【００３１】
開発者は、製作された制御ソフトウェアのシミュレーション試験を開始する（Ｓ３）。開発者は、制御部８に対して入力操作を行い、ロボット４の試験的な動作を示す動作指令（例えばアーム先端の位置及び角度、各関節の位置など）を入力する。制御ソフトウェアは、動作指令に基づいて、各駆動部に対する制御指令を生成する。制御部８は、その制御指令によってロボット４を制御するための電気信号をインターフェイス７の種類に応じて生成する。制御部８は、その電気信号をシミュレーション部２０に送信する。
【００３２】
シミュレーション部２０は、複数の中間プログラムが登録された中間プログラムデータベースＤＢ１を記憶する記憶装置を備える。複数の中間プログラムは、それぞれインターフェイス７の候補に対応する。基本的なインターフェイス７に対しては予め中間プログラムが用意されるが、特殊なインターフェイス７については容易に組み込むことができるようにオブジェクト指向型の構造となっている。開発者は、実環境２で使用する機器４の機器情報を予め入力し、機器仕様データベースＤＢ２に登録する（Ｓ１１）。開発者は、その機器４のインターフェイス７の種類に応じて、複数の中間プログラムのうちシミュレーションのために使用する指定中間プログラムを入力装置を介して指定する（Ｓ１２）。
【００３３】
シミュレーション部２０は、動的にリンクされた指定中間プログラムを用いて、制御部８から受信した電気信号を制御指令に変換する（Ｓ１３）。シミュレーションプログラムは、その制御指令と、機器仕様データベースＤＢ２に登録された機器情報とを用いて、機器の動作を仮想的に計算してシミュレーション結果を出力する（Ｓ１４）。温度変化、機器４の設置面の振動、電気信号に重畳するノイズなどの外乱要因をシミュレーションに含める場合には、予め登録された外乱シミュレーションプログラムが、外乱を特定するパラメータに応じてシミュレーション結果を修正する（Ｓ１５）。シミュレーション部２０は、シミュレーション結果を制御部８に送信する。制御部８は、受信したシミュレーション結果を、仮想環境動作情報として記憶する。開発者は出力装置によって出力された仮想環境動作情報を参照して、制御ソフトウェアの検証を行う。
【００３４】
制御部８は、Ｓ３において生成された電気信号をアニメーション部１０にも送信する。アニメーション部１０は、シミュレーション部２０の中間プログラムデータベースＤＢ１と同様の中間プログラムデータベースＤＢ３を記憶する記憶装置を備える。
【００３５】
開発者は、実環境２で使用する機器４をコンピュータグラフィックにより３次元的に描画するために用いられる３次元ＣＡＤデータである装置３Ｄモデルを装置モデルデータベースＤＢ４に登録する（Ｓ２１）。開発者はさらに、実環境２とワーク６をコンピュータグラフィックにより３次元的に描画するために用いられる３次元ＣＡＤデータである環境３Ｄモデルを環境モデルデータベースＤＢ５に登録する（Ｓ２２）。
【００３６】
開発者は、機器４のインターフェイス７の種類に応じて、複数の中間プログラムから入力装置を介して指定中間プログラムを指定する（Ｓ２３）。アニメーション部１０は、制御部８から受信した電気信号を、指定中間プログラムを用いて制御指令に変換する（Ｓ２４）。アニメーション部１０は、環境モデルデータベースＤＢ５を参照して表示画面１１に実環境２とワーク６を仮想的に再現する仮想環境１２と仮想ワーク１６とを描画する。アニメーション部１０は、指定中間プログラムが電気信号を変換すること得られた制御指令に基づいて、機器４の動作を時系列的に模擬するアニメーションを作成して仮想環境１２の内部に仮想ロボット１４として表示する（Ｓ２５）。
【００３７】
開発者は、仮想環境１２、仮想ワーク１６及び仮想ロボット１４のアニメーションを見ることによって、作成中の制御ソフトウェアが良好に動作するか否かを評価する（Ｓ４）。制御ソフトウェアに修正すべき箇所があれば修正を行い（Ｓ５）、再びＳ３以下のシミュレーション処理にかける。開発者がアニメーションを参照して制御ソフトウェアの動作が良好であると評価するまで、修正が繰り返される。
【００３８】
［２．実機で検証する］
開発者は、アニメーションを参照して動作が良好であると評価した制御ソフトウェアを実機で試験する。開発者の操作に応答して、制御部８は、制御ソフトウェアが生成する電気信号をインターフェイス７を介してロボット４に送信する。ロボット４は、受信した電気信号によって制御され動作する（Ｓ６）。開発者は、実環境２におけるロボット４の動作を確認し（Ｓ７）、制御ソフトウェアが良好に動作していると評価したら、その制御ソフトウェアを出荷する。制御ソフトウェアに修正すべき箇所があれば修正し、動作が良好であると評価されるまで修正と動作の再確認を繰り返す（Ｓ８）。
【００３９】
［３．実機の動作とアニメーションを比較する］
制御シミュレーションシステムは、実機の動作とアニメーションとを比較するために使用することができる。以下、その処理について説明する。
【００４０】
制御部８は、インターフェイス７を介してロボット４を制御する。ロボット４は、実環境２のなかで動作を行う。ロボット４は、エンコーダにより検出されたモータの回転角度などの状態を示す機器データを制御部８に送信する。制御部８は、受信した機器データをアニメーション部１０に送信する。アニメーション部１０は、機器データに応答して、ロボット４の動作を仮想的に再現する仮想ロボット１４のアニメーションを仮想環境１２に表示する。このアニメーションは、ロボット４の過去の動作を再現することもできるし、ロボット４と同期してリアルタイムに動作を再現することもできる。
【００４１】
制御部８は、断面設定プログラムを備える。開発者が制御部８に対する入力操作を行うと、断面設定プログラムは、その入力操作に応じて仮想環境１２における断面の設定を行う。例えば仮想環境１２にｘｙｚ軸を有する直交座標系が設定されているとき、開発者によって鉛直方向を向くｚ軸に関して所定の値ａが指定（ｚ＝ａ）されることにより、一つの水平面が指定される。断面設定プログラムは、設定された断面を示す情報をアニメーション部１０に送信する。アニメーション部１０は、その断面で仮想的に切断された３次元の仮想ロボット１４と仮想ワーク１６のアニメーションまたはそのアニメーションから抽出された静止画像を作成して表示する。開発者は、同じ動作をする実環境２のロボット４と仮想環境１２のロボット１４とを並べて観察することができる。
【００４２】
実環境２においては、実環境２、ロボット４及びワーク６の関係を視認しづらい場合がある。例えば、ワーク６が配管であり、ロボット４の先端がその配管の奥に入って作業を行う場合、配管の内部とロボット４の先端付近がどのような関係になっているのか視認しづらい。このような場合に、開発者は、仮想環境１２におけるロボット１４を所望の断面で仮想的に切断して観察することにより、実環境２、ロボット４及びワーク６の関係を容易に明瞭に認識し、記録することができる。その結果、制御ソフトウェアの開発・検証が容易になる。
【００４３】
制御部８はさらに、視点設定プログラムを備える。開発者が制御部８に対する入力操作を行うと、視点設定プログラムは、その入力操作に応じて仮想環境１２における視点と角度の設定を行う。開発者は、視点と角度を実環境２の固定された位置に設定することもできるし、ロボット４が備えるアームの所定位置を指定し、アームに対する角度を設定することもできる。視点設定プログラムは、設定された視点と角度を示す情報をアニメーション部１０に送信する。アニメーション部１０は、設定された視点から設定された角度で見たときの３次元の仮想ロボット１４と仮想ワーク１６のアニメーションまたはそのアニメーションから抽出された静止画像を作成して表示する。開発者は、実環境２のロボット４と同じ動作をする仮想環境１２のロボット１４を、所望の視点と角度で観察することができる。例えば、視点がロボットアームの先端に設定された場合、開発者はあたかもロボットアームの先端に設置されたカメラの視野を見るようなアニメーションを見ることができる。こうした映像によって、実環境２で把握しづらい実環境２、ロボット４及びワーク６の関係を容易に観察することができる。
【図面の簡単な説明】
【００４４】
【図１】図１は、制御シミュレーションシステムの構成を示す。
【図２】図２は、制御シミュレーションシステムが行うデータ処理を説明するための図である。
【符号の説明】
【００４５】
２…実環境
４…ロボット（機器）
６…ワーク
７…インターフェイス
８…制御部
９…接続部
１８…接続部
１０…アニメーション部
１１…表示画面
１２…仮想環境
１４…仮想ロボット
１６…仮想ワーク
２０…シミュレーション部
ＤＢ１…中間プログラムデータベース
ＤＢ２…機器仕様データベース
ＤＢ３…中間プログラムデータベース
ＤＢ４…装置モデルデータベース
ＤＢ５…環境モデルデータベース
【図１】
2008100315.tif 000003
【図２】
2008100315.tif 000004