(57)【要約】【課題】検証中のロボット装置の干渉（衝突）の有無を、容易かつ直感的に判断できるユーザインターフェースを提供する。【解決手段】ロボット制御データに基づきロボット装置を模擬する３Ｄモデルを仮想環境で動作させ、その様子を３Ｄモデル表示部１０７に表示する。また、３Ｄモデル表示部１０７の表示と連動して、仮想環境におけるロボット装置の３Ｄモデルの動作に係る事象を、時間軸上に表示する事象表示部１０８を設ける。ロボット装置のモデルの動作の状態を解析して警告事象を特定し、その種類および段階に応じて異なる表示態様で、警告事象に該当する事象表示部１０８の時間軸上の位置に表示させる表示制御を行う。【選択図】図３
2019123052.tif 000002
【特許請求の範囲】
【請求項１】
ロボット制御データに基づき、ロボット装置を模擬するモデルを仮想環境で動作させ、前記仮想環境で動作する前記ロボット装置のモデルをモデル表示部に表示するシミュレータ装置において、
前記モデル表示部の表示と連動して、前記仮想環境における前記ロボット装置のモデルの動作に係る事象を、時間軸上に表示する事象表示部と、
前記ロボット装置のモデルの動作の状態を解析して警告事象を特定する解析部と、
前記解析部の特定した警告事象を、その種類および段階に応じて異なる表示態様で、前記警告事象に該当する前記事象表示部の時間軸上の位置に表示させる表示制御を実行する制御装置と、を備えたシミュレータ装置。
【請求項２】
請求項１に記載のシミュレータ装置において、前記解析部が、前記仮想環境に配置された、前記ロボット装置のモデルと、他の障害物モデルと、の干渉が生じたか否かの判定を行い、干渉が生じた場合に、当該の干渉を前記警告事象として特定するシミュレータ装置。
【請求項３】
請求項２に記載のシミュレータ装置において、前記モデル表示部、ないし前記事象表示部の表示に関連して、前記ロボット装置のモデルの動作を表現した文字ないし数値による情報を表示させる詳細表示部を備えたシミュレータ装置。
【請求項４】
請求項１から３のいずれか１項に記載のシミュレータ装置において、前記モデル表示部に表示されている情報、ないし前記事象表示部に表示されている情報、のいずれかを指定するユーザ操作を受け付ける操作装置を備え、前記操作装置で前記モデル表示部に表示されている情報、ないし前記事象表示部に表示されている情報のいずれか一方を指定する操作を行うと、他方の前記事象表示部の表示状態、ないし前記モデル表示部の表示状態が当該の操作に応じて更新されるシミュレータ装置。
【請求項５】
請求項１から４のいずれか１項に記載のシミュレータ装置において、ユーザの検索を指定する操作に基づき、前記制御装置が、前記モデル表示部で表示している前記ロボット装置のモデルの動作に関して、過去または未来の特定の事象を検索し、その検索結果に応じて、前記モデル表示部、および（または）前記事象表示部の表示を更新するシミュレータ装置。
【請求項６】
請求項１から５のいずれか１項に記載のシミュレータ装置において、前記モデル表示部が前記ロボット装置のモデルのアニメーション表示を行い、前記制御装置は、前記解析部が特定した警告事象が発生する描画フレームを検索し、特定の警告事象が発生する描画フレームを検出した場合、前記モデル表示部の前記アニメーション表示を検索された描画フレームの状態に更新するシミュレータ装置。
【請求項７】
請求項１から６のいずれか１項に記載のシミュレータ装置において、ユーザ操作に応じて前記ロボット制御データを変更する編集手段を備え、前記編集手段により前記ロボット制御データを変更すると、前記制御装置は、その変更の内容に応じて前記モデル表示部または前記前記事象表示部の表示を更新するシミュレータ装置。
【請求項８】
請求項１から７のいずれか１項に記載のシミュレータ装置において、ユーザ操作に応じて、前記解析部が特定する前記警告事象の種類と、前記警告事象を特定する閾値と、を設定する設定手段を備えたシミュレータ装置。
【請求項９】
請求項１から８のいずれか１項に記載のシミュレータ装置において、前記ロボット制御データと、前記解析部の結果を関連付けて格納する記憶装置を備えたシミュレータ装置。
【請求項１０】
請求項１から８のいずれか１項に記載のシミュレータ装置において、前記制御装置に前記表示制御を実行させるための制御プログラム。
【請求項１１】
請求項１０に記載の制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項１２】
ロボット制御データに基づき、ロボット装置を模擬するモデルを仮想環境で動作させ、前記仮想環境で動作する前記ロボット装置のモデルをモデル表示部に表示するシミュレータ装置の制御方法において、
前記モデル表示部の表示と連動して、前記仮想環境における前記ロボット装置のモデルの動作に係る事象を、時間軸上に表示する事象表示工程と、
前記ロボット装置のモデルの動作の状態を解析して警告事象を特定する解析工程と、
前記解析工程の特定した警告事象を、その種類および段階に応じて異なる表示態様で、前記警告事象に該当する事象表示部の時間軸上の位置に表示させる表示制御工程と、を含むシミュレータ装置の制御方法。
【請求項１３】
請求項１から８のいずれか１項に記載のシミュレータ装置を用いて検証された動作をロボット装置に実行させて物品を製造する物品の製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボット装置を模擬するモデルを仮想環境で動作させ、前記仮想環境で動作する前記ロボット装置のモデルをモデル表示部に表示するシミュレータ装置、およびその制御方法に関する。
【背景技術】
【０００２】
一般に、ロボットを用いて作業を行う装置の場合、ロボットの周辺には冶具や隣接するロボットや壁などの障害物が存在する。そのため、ロボットがこれらの障害物と干渉（衝突、接触）する可能性がある。ロボットが干渉（衝突、接触）を生じずに動作できるかを実機で確認することは容易ではない。そのため、仮想空間でロボットの動作を検証できるシミュレータが用いられることがある。この種のシミュレータでは、実機の構造や寸法に基づき作成された３Ｄモデルを、実機と同様の教示点データやロボットプログラムを用いて仮想空間中で稼働させる。そしてその様子を、例えばディスプレイ上に３Ｄアニメーションなどの形態で表示することにより、ワーク搬送や組み立てなどの動作を検証できる。
【０００３】
このようなシミュレータを用いることで、干渉（衝突、接触）の有無の確認や、そのような干渉を生じる可能性のある特定のロボット動作の修正を、実機を用いることなく実行できる。干渉（衝突、接触）の検出は、ロボットや障害物の３Ｄモデルの仮想空間中での位置関係を識別する干渉監視タスクを動かしておき、例えば干渉すべきではない、ロボットと、障害物のモデルがともに同一の空間を占めていないか判定することにより行う。
【０００４】
もし、干渉監視タスクが干渉（衝突、接触）を検出した場合には、３Ｄモデルを表示しているディスプレイに干渉検出状態を表示し、ユーザに通知する。この時の表示の手法として、一般に実施されているのは、仮想空間内で干渉（衝突、接触）を生じている３Ｄモデルの全体、あるいは当該の部位の表示色を変更するものである（例えば下記の特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−１３６１２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のように３Ｄモデルやその当該部位の表示色を干渉発生に応じて変更する従来構成は、静止した状態で干渉が発生していたり、３Ｄ仮想表示が静止画となっているような状態では、ユーザが容易にその状態を確認できる。しかし、３Ｄモデルをアニメーション（動画）表示などにより仮想表示中で連続的に動作させている間の表示では視認が難しい場合があり、干渉が発生しているか否かを直感的に判断するのが難しい場合がある。
【０００７】
また、３Ｄモデルのアニメーション（動画）表示中にユーザが干渉状態を確認し、直ちにアニメーションを停止させる操作を行っても、動画表示は問題のタイミングの表示より先に進んだ位置で停止する場合がある。その場合、表示フレームを過去の方向に駒送りさせるなどの作業を行わなければ干渉発生のタイミングを表示させることができず、また、この種のＧＵＩ操作は一般に煩雑である。特に、仮想環境を表示させるのにアニメーション（動画）表示を用いる場合には、さらに、１フレームだけ瞬間的に干渉が起きている場合や、他の３Ｄモデルの影になっている個所で干渉が起きている場合など、表示画面による状態確認が難しい場合があった。確認漏れを防ぐためには、３Ｄモデルの動作を１フレームずつ前後に駒送りして確認する手法が考えられるが、検証している動作のタクトが長ければ、確認作業に多大な工数がかかり効率がよくない場合がある。
【０００８】
本発明の課題は、以上の問題に鑑み、検証中のロボット装置の動作に係る干渉（衝突）などの警告事象の有無を、容易かつ直感的に判断できるユーザインターフェースを提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明においては、ロボット制御データに基づき、ロボット装置を模擬するモデルを仮想環境で動作させ、前記仮想環境で動作する前記ロボット装置のモデルをモデル表示部に表示するシミュレータ装置において、前記モデル表示部の表示と連動して、前記仮想環境における前記ロボット装置のモデルの動作に係る事象を、時間軸上に表示する事象表示部と、前記ロボット装置のモデルの動作の状態を解析して警告事象を特定する解析部と、前記解析部の特定した警告事象を、その種類および段階に応じて異なる表示態様で、前記警告事象に該当する前記事象表示部の時間軸上の位置に表示させる表示制御を実行する制御装置と、を備えた構成を採用した。
【発明の効果】
【００１０】
上記構成によれば、モデル表示部の表示と連動して、ロボット装置のモデルの動作に係る事象を、時間軸上に表示する事象表示部を設けることにより、ユーザは、検証中のロボット装置の衝突の有無を、容易かつ直感的に判断することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係わるハードウェア構成を示した説明図である。
【図２】実施形態１に係わるシミュレータ装置の制御系を示したブロック図である。
【図３】実施形態１に係わるシミュレーションソフトウェアおよび表示出力の概要を示した説明図である。
【図４】実施形態１に係わるシミュレータ装置の処理手順を示したフローチャート図である。
【図５】（ａ）、（ｂ）は実施形態１に係わる事象表示部の構成例を示した説明図である。
【図６】（ａ）、（ｂ）、（ｃ）および（ｄ）は実施形態２に係わる事象表示部の構成例を示した説明図である。
【図７】（ａ）、（ｂ）および（ｃ）は実施形態３に係わる事象表示部の構成例を示した説明図である。
【図８】実施形態４に係わるシミュレータ装置の制御系を示したブロック図である。
【図９】（ａ）、（ｂ）および（ｃ）は実施形態４に係わる特異点表示の構成例を示した説明図である。
【図１０】（ａ）および（ｂ）は実施形態４に係わる先端加速度表示の構成例を示した説明図である。
【図１１】実施形態５に係わる検索制御手順を示したフローチャート図である。
【図１２】実施形態５に係わるアニメーションの再生制御手順を示したフローチャート図である。
【図１３】本発明に係わるシミュレータ装置により検証されたロボット制御データにより動作し、物品を製造するロボット装置を示した説明図である。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明を実施するための形態につき説明する。なお、以下に示す構成はあくまでも一例であり、例えば細部の構成については本発明の趣旨を逸脱しない範囲において当業者が適宜変更することができる。また、本実施形態で取り上げる数値は、参考数値であって、本発明を限定するものではない。
【００１３】
＜実施形態１＞
以下、図１〜図５を参照して、本発明の実施形態１に係わるシミュレータ装置およびその制御方法につき説明する。
【００１４】
図１に示すように、本実施形態に係わるシミュレータ装置は、コンピュータ本体Ａと、コンピュータ本体Ａに接続されたディスプレイＢ、マウスＣ、キーボードＤを備える。
【００１５】
コンピュータ本体Ａには、シミュレーションソフトウェアＥがインストールされており、同ソフトウェアＥの後述する処理によって、ディスプレイＢに画面表示が行われる。図１では、ディスプレイＢ上のシミュレーションソフトウェアＥの画面表示に相当する部分を示している。
【００１６】
図２は、本実施形態のシミュレーションソフトウェアＥの実行環境である制御系の構成例を示している。図２の構成は、ハードウェア的には、上記のコンピュータ本体Ａの制御回路によって構成されるが、同図は、機能的なブロック構成として図示されており、図中の各機能ブロックは、ハードウェア構成、ソフトウェア構成のいずれと見ても構わない。図２の構成は、制御部１０１に対して、表示部１０２、操作部１０３、入出力部１０４、記憶部１０５、および解析部１０６を接続して成る。
【００１７】
表示部１０２は、例えば図１のディスプレイＢに相当し、後述のモデル表示部や事象表示部の表示を行えるものであればその表示方式はどのようなものであっても構わない。また、操作部１０３は、ユーザインターフェースを構成するもので、例えば、図１のマウスＣ、およびキーボードＤに相当する。操作部１０３のハードウェアとしては、トラックパッドなど他のポインティングデバイスが含まれていてもよい。また、表示部１０２と操作部１０３は、タッチパネルのようなデバイスを用いることによって、一体化されていても構わない。
【００１８】
図３に示すように、表示部１０２は、画面の描画を行い、３Ｄモデル表示部１０７（モデル表示部）と、事象表示部１０８と、解析条件設定部１０９を表示する。
【００１９】
３Ｄモデル表示部１０７、事象表示部１０８、解析条件設定部１０９の表示は、仮想環境中におけるロボット装置の３Ｄモデルの動作を介して、また、表示部１０２と操作部１０３によるユーザ操作を介して、連動的に制御する。例えば、３Ｄモデル表示部１０７で表示中の描画フレームに該当する事象表示部１０８上の時間軸上の位置には、カーソルや縦棒を表示してこれら２つの表示を関連付ける。また、３Ｄモデル表示部１０７でアニメーション（動画）表示を行う場合は、事象表示部１０８の表示は、３Ｄモデル表示部１０７の表示に相当する時間軸上の位置が表示内に収まるよう自動的にスクロールさせる。また、同時に上記のカーソルや縦棒を時間軸上の３Ｄモデル表示部１０７の表示に相当する位置を取るよう、自動的に移動させる。
【００２０】
また、モデル表示部１０７に表示されている情報、ないし事象表示部１０８に表示されている情報、のいずれかを操作部で指定ないし選択すると、他方の表示部に表示されている情報が当該の操作に応じて更新されるよう制御するのが望ましい。
【００２１】
また、好ましくは、３Ｄモデル表示部１０７、事象表示部１０８、解析条件設定部１０９の表示は、表示部１０２によって、ユーザが関連のある部分を同時に視認できるような態様で表示される。例えば、表示部１０２が１台のディスプレイＢにより構成される場合には、１表示画面中にこれら各表示部（１０７〜１０９）をマルチウィンドウやタブの形式で表示する。ただし、表示部１０２を構成するディスプレイＢが複数台（いわゆるマルチヘッド構成）存在する場合には、上記の各表示部（１０７〜１０９）が複数の異なるディスプレイの表示画面にそれぞれ表示されるような構成であってもよい。
【００２２】
例えば、３Ｄモデル表示部１０７、事象表示部１０８、解析条件設定部１０９を表示部１０２の１表示画面中に同時に表示させる。その場合の各部（１０７〜１０９）を構成する表示ウィンドウの画面上の分割態様や、オーバーラップ態様などは、多くのオペレーティングシステムにおけるＧＵＩでの操作慣習などに従って変更できるようにしておく。また、ディスプレイＢが１台のみではなく、複数台のモニタ装置から構成されているような場合には、３Ｄモデル表示部１０７、事象表示部１０８、解析条件設定部１０９の任意の部分が別のモニタ装置の表示画面にそれぞれ表示されるような構成であってもよい。
【００２３】
３Ｄモデル表示部１０７は、装置を再現した３Ｄモデルを表示する。視点の変更や３Ｄモデルの配置の変更などを行うことができる。
【００２４】
本実施形態の事象表示部１０８は、解析実行ボタン１１１とグラフ表示部１１２を備える。
【００２５】
事象表示部１０８のグラフ表示部１１２は、時間軸に沿った表示を行うためのもので、例えば、動作の時刻とロボット装置の各軸の指令値との関係を図示のようなグラフ形式で表示する。本実施形態では、画面表示中では、グラフ表示部１１２の時間軸は、主に図中の左右方向に沿って配置された状態で図示されている。図３のグラフ表示部１１２では、ロボット装置（の３Ｄモデル：Ｒｏｂｏｔ１）の２つの関節軸（Ｊｏｉｎｔ１、２）の関節位置（関節角度）の時間軸に沿った変化をグラフ表示する表示状態にある。
【００２６】
グラフ表示部１１２の時間軸の単位には、基準時刻（例えば、ＯＳのエポック、ロボットプログラムや教示点データなどのロボット制御データにより記述された動作の開始時刻など）からの経過時間（秒、ミリ秒など）を用いればよい。グラフ表示部１１２の時間軸の単位はＧＭＴやＪＳＴなどの標準時刻を用いるなど、当業者において任意に採用して構わない。なお、表示部１１２の画面上での時間軸のスケール（縮尺）は、例えば、グラフ表示部１１２の１画面に対応する時間幅を選択するような適当なユーザインターフェースを介して変更（拡大、縮小）できるようにしておくとよい。
【００２７】
グラフ表示部１１２の表示は、時間軸（例えば左右方向）に沿ってスクロールさせる、また、表示項目が多い場合には、その項目の方向（例えば上下方向）にスクロールできるようしておく。例えば図３のグラフ表示部１１２では下縁部、右端縁部にいわゆるスクロールバーを設けてあり、このスクロールバーをマウスＣ（図１）などで操作し、上記のようなスクロールを行わせる。また、上記のようなスクロールは、マウスＣに設けられたホイール（不図示）などによって行ってもよい。
【００２８】
解析条件設定部１０９は、後述する解析部１０６の解析条件の選択を行うためのものである。入出力部１０４は、シミュレーションに必要なデータの入出力を行う。記憶部１０５は、入出力部１０４で入力されたデータと、後述する解析部１０６の結果を保存する。記憶部１０５は、ＲＯＭ、ＲＡＭ、ＨＤＤやＳＤＤなどの外部記憶装置によって構成することができる。その場合、後述のフローチャートなどにより示す制御手順を記述した制御プログラムは記憶部１０５のＲＯＭ領域や、ＨＤＤやＳＤＤなどの外部記憶装置に格納しておくことができる。これらの本発明に係る制御手順を記述した制御プログラムの格納手段は、本発明のコンピュータ読み取り可能な記録媒体を構成する。また、本発明に係る制御プログラムの格納手段は、ＲＯＭ領域や、ＨＤＤやＳＤＤなどの外部記憶装置などの固定的な記憶ハードウェアのみならず、着脱可能な記憶メディア（各種の磁気ディスクや光ディスク、半導体メモリデバイス）であってもよい。また、本発明に係る制御プログラムは、これらの記憶メディアを介して運搬され、また、これらの記憶メディアからシミュレータ装置にインストールされたり、インストール済みの制御プログラムを更新したりすることができる。あるいは、さらに、シミュレータ装置への本発明に係る制御プログラムのインストールや更新（アップデート）は、コンピュータ読み取り可能な記録媒体による他、ネットワークなどを介して行われるものであってよい。
【００２９】
また、記憶部１０５のＲＡＭ領域は、制御部１０１や解析部１０６を実現するＣＰＵのための主記憶領域（ないしワークエリア）として用いられる。この主記憶領域は、ＲＡＭ領域だけではなく、ＲＡＭ領域およびＨＤＤやＳＤＤなどの外部記憶装置に配置されたスワップ領域から成る、いわゆる仮想記憶（領域）として構成されていてもよい。
【００３０】
本実施形態の解析部１０６は、本シミュレータ装置で検証するロボット装置の３Ｄモデルの動作に関する事象を解析する。解析部１０６は、ロボット装置の３Ｄモデルの動作に関する警告事象を特定する。本実施形態の解析部１０６は、特に干渉判定、即ち、仮想環境中で動作するロボット装置のモデルと、他の障害物モデルと、の干渉が生じたか否かの判定を行い、干渉（衝突あるいは接触）が生じた場合に、その事象を警告事象として特定する。即ち、本実施形態の解析部１０６は、干渉判定１１０の機能を備える。
【００３１】
解析条件設定部１０９で、マウスＣ、キーボードＤなどを用いて解析実行ボタン１１１を操作すると、解析部１０６は、干渉判定１１０の処理を行う。ここでは、仮想環境中で動作しているロボット装置や他の物体のモデルの状態に関するシミュレーションデータを解析し、ロボット装置と他の物体のモデルとの干渉を警告事象として検出する。
【００３２】
なお、解析条件設定部１０９、事象表示部１０８は、図３では別の表示ウィンドウ（あるいはペイン）として図示してあるが、解析条件設定部１０９は事象表示部１０８の一部を構成する、と考えてよい。また、解析条件設定部１０９の表示部位は、事象表示部１０８の表示ウィンドウ（あるいはペイン）の内側に表示される構成であってもよい。
【００３３】
本実施形態では、３Ｄモデル表示部１０７、事象表示部１０８、解析条件設定部１０９の表示の連動的な制御に関しては、上記のような解析条件の設定操作や、解析実行ボタン１１１の操作によるものがある。また、本実施形態では、例えば解析条件設定部１０９、解析実行ボタン１１１の操作により、干渉（衝突、接触）などの検索（解析）条件を満たすイベント（事象）が検索されると、これに応じて、事象表示部１０８のグラフ表示部１１２の表示を更新する。例えば、検索されたイベント（事象）に該当する時間軸上の位置がグラフ表示部１１２に現れるよう、グラフ表示部１１２の表示を更新する。また、当該のイベント（事象）は、後述のように表示色変更などの表示態様の制御を伴って、グラフ表示部１１２に表示させる。
【００３４】
上記のように、事象表示部１０８のグラフ表示部１１２の表示は、ユーザが注目する事象がその表示内に表われるように、時間軸に沿って（あるいは項目の配列方向に）スクロールできる。そして、このようなスクロール操作、グラフ表示部１１２に表示中の注目事象に対するマウスＣのクリックなどに連動して、３Ｄモデル表示部１０７で表示されるロボット装置（の３Ｄモデル）の動作状態を、その注目事象に相当する状態に更新する。
【００３５】
解析条件設定部１０９による解析条件の設定操作や、解析実行ボタン１１１の操作を用いたシミュレーション解析は、例えば図４に示すような制御手順によって行う。
【００３６】
まず、図４のステップＳ１では、シミュレーション対象のデータを入力する。このシミュレーション対象のデータは、検証したいロボット装置の３Ｄモデル、３Ｄモデルの配置情報、装置の可動軸の指令値などを含む。このシミュレーション対象のデータは、例えば、ロボットプログラム、教示点データの形式、あるいはその他の特定の記述形式により設定ファイルなどに記述される。ユーザは、シミュレーション対象のデータに該当するファイル名などを表示部１０２と操作部１０３のユーザインターフェースを介して指定する。
【００３７】
ステップＳ１で、指定されたシミュレーション対象のデータが読み込まれると、図３のように、３Ｄモデル表示部１０７に当該のロボット装置の３Ｄモデルを（例えば所定の初期状態で）表示する。その際、事象表示部１０８のグラフ表示部１１２には、３Ｄモデル表示部１０７に表示されているモデルの状態が含まれるその前後の時間軸に相当する、当該の３Ｄモデルに関する事象を表示する。図３のグラフ表示部１１２の表示形式では、ロボット装置の３Ｄモデルの動作の時間（時刻）に沿って、その関節軸の位置（角度）の値、例えば指令値がグラフ形式で表示される。
【００３８】
ステップＳ２では、解析の条件の設定を行う。本実施形態では、ここでは、解析条件設定部１０９で解析（検索）すべき警告事象として、干渉（衝突）または閾値付き干渉（衝突）のどちらかを選択する。本実施形態では、干渉（衝突）とは、３Ｄモデル同士が物理的に接触している状態に相当する。また、閾値付き干渉（衝突）とは、加工精度や実機ロボットの機械的誤差などによるシミュレーション誤差に起因して実機で生じうる干渉（衝突）を未然に防ぐためのものである。例えば、閾値付き干渉（衝突）では、３Ｄモデル同士が接触している状態の前後に動作の確実性が確保可能な数値範囲を指定し、その範囲に入っていないことを確認する。解析条件設定部１０９で解析（検索）すべき警告事象として、閾値付き衝突を選択した場合は、この動作の確実性が確保できる範囲を閾値として設定する。この閾値としては、ユーザが３Ｄモデル同士が接触している状態に対するクリアランス（間隙距離）の値（ｍｍ単位など）などの形式で解析条件設定部１０９により指定する。
【００３９】
ステップＳ３では、解析部１０６が、ロボット制御データ（ロボットプログラムや教示点データ）によって記述されたロボット動作に対する解析処理を実行する。この解析は、例えば、解析実行ボタン１１１（図３）により開始させる。ここでは、ロボット装置の３Ｄモデルを仮想環境中で動作させ、適当な単位、例えば、３Ｄモデル表示部１０７で行う動画表示のフレームなどを単位として、干渉判定（１１０）を行う。例えば、ロボット装置の３Ｄモデルを動作を１フレームずつ、検査し、すべてのフレームに対して干渉判定（１１０）を行う。このとき、干渉判定（１１０）は、ステップＳ２で設定した条件で行う。
【００４０】
解析部１０６の干渉判定（１１０）は、例えば干渉（衝突）、閾値付き干渉（衝突）、干渉（衝突）なし、のような３種類の事象を識別するデータを判定（解析）結果として出力する。この干渉判定（１１０）の判定（解析）結果は、リザルトコードなど、予め決められた（エラー）コード（数値）などによって表現される。この解析部１０６の干渉判定（１１０）の解析結果は、動作のフレームと合わせて記憶部１０５に保存する。
【００４１】
ステップＳ４では、ステップＳ３の解析結果によって、ロボット装置の３Ｄモデルの動作に係る事象を分類してその状態（内容）ごとに別に異なる表示パターン（表示態様）で３Ｄモデル表示部１０７（ディスプレイＢ）に表示する。本実施形態では、この解析結果は、事象表示部１０８のグラフ表示部１１２で表示する。
【００４２】
ここで、事象の分類は、解析部１０６が、上記の干渉（衝突）、閾値付き干渉（衝突）、干渉（衝突）なし、のような３種類の事象を特定する解析を行う場合、この３つの事象にロボット装置の３Ｄモデルの動作に係る事象を分類する。なお、特定の（例えば１フレーム）の解析結果に干渉（衝突）と、閾値付き干渉（衝突）とが両方ある場合は、より問題性が高い干渉（衝突）の表示を優先して、干渉（衝突）事象と分類する。
【００４３】
分類された事象のうち、解析条件設定部１０９で解析（検索）すべき警告事象として指定された事象の表示に関しては、他の事象、例えば干渉（衝突）なしの事象の表示よりも強調し、際立たたせるため、異なる表示パターン（表示態様）によって実施する。例えば、干渉（衝突）または（および）閾値付き干渉（衝突）の事象が特定（検索）すべき警告事象として指定されている場合には、グラフ表示部１１２において、図５（ａ）、（ｂ）に示すような表示態様の制御を行う。
【００４４】
例えば干渉（衝突）として特定された警告事象の場合は、図５（ａ）に示すように、グラフ表示部１１２の該当するフレームを他の部分と異なる色、例えば赤色の帯（１１３）を重ねて表示する。また、閾値付き干渉（衝突）と特定された警告事象に該当するフレームは、図５（ｂ）に示すように、他の部分と異なる色、例えば黄色の帯（１１４）を重ねて表示する。なお、「干渉（衝突）」の警告事象の場合、一般に、ロボット装置はある軌道に沿って動作するため、その前後に「閾値付き干渉（衝突）」に相当する警告事象が現れる。このため、図５（ｂ）では、赤色の帯（１１３）の前後両側に、黄色の帯（１１３ａ、１１３ａ）が表示されている。他の、干渉（衝突）なしの事象（イベント）については、グラフ表示部１１２のデフォルトの表示色（ないし表示輝度や濃度）を採用して行う。なお、ここではグラフ表示部１１２の表示色を変更する表示態様の変更制御を例示しているが、例えば表示輝度や濃度の変更によって表示態様の変更を行ってもよい。
【００４５】
以上のように、本実施形態では、事象表示部１０８のグラフ表示部１１２で、解析部１０６の解析（検索）結果に応じて警告事象に相当するイベント表示で、他の事象のイベント表示とは異なる表示態様を採用する。これにより、ユーザは、事象表示部１０８のグラフ表示部１１２の１つの画面でロボット装置（の３Ｄモデル）の干渉（衝突）などに係る警告事象の有無を容易に認識できるようになる。即ち、ユーザは、干渉（衝突）などに係る警告事象の有無を直感的に判断でき、本シミュレータ装置を用いた確認作業に必要な工数を大きく削減することができる。
【００４６】
上記の事象表示部１０８のグラフ表示部１１２で、警告事象を視認したユーザは、その警告事象が消勢するよう、ロボット装置（の３Ｄモデル）のためのロボット制御データ（教示点データやロボットプログラム）を変更する。
【００４７】
干渉（衝突）状態、または閾値付き干渉（衝突）状態がある場合は、ユーザは、例えば干渉（衝突）が生じた事象のフレーム（を表示している色の帯）をマウスＣで選択する操作を行う。この操作に応じて、シミュレーションソフトウェアＥは、その事象の時点におけるロボット装置の３Ｄモデルの仮想環境における位置姿勢を計算し、３Ｄモデル表示部１０７に表示する。これによりユーザは、当該の干渉（衝突）、または閾値付き干渉（衝突）の事象の生じた時点におけるロボット装置の３Ｄモデルの仮想環境を３Ｄモデル表示部１０７の３Ｄ表示によって容易に確認できる。この時の３Ｄモデル表示部１０７の３Ｄ表示は、問題の事象のタイミングにおける静止画表示であってもよいし、その前後の適当な時間幅に相当する動画表示などであってもよい。
【００４８】
また、警告事象に係る３Ｄモデル表示部１０７の３Ｄモデルの表示では、干渉（衝突）を生じた部位、あるいは干渉（衝突）を生じた特定のロボット装置の３Ｄモデル（全体）の表示態様を他のモデルとは異なるものに変更する。例えば、この表示態様の変更として表示色の変更を行う場合は、事象表示部１０８で当該の警告事象を（強調）表示している帯の表示色と同じ表示色を用いる。警告事象に係る３Ｄモデル表示部１０７の３Ｄモデルの表示でこのような表示態様の変更を行うことにより、当該の警告事象に関する、特定の３Ｄモデル、あるいは当該の警告事象に関する、特定の部位をユーザは極めて容易に視認することができる。
【００４９】
なお、グラフ表示部１１２の時間軸の表示スケールによっては、当該の警告事象を表示している帯（１１３、１１４など）が細く選択できない場合が考えられる。その場合には、グラフ表示部１１２の時間の表示スケールを変更すれば、当該の警告事象を表示している帯（１１３、１１４など）の幅を拡大できるため、グラフ表示部１１２の１フレーム当たりの表示面積が増え、選択操作がしやすくなる。
【００５０】
警告事象を解消するためのロボット制御データの修正箇所は、３Ｄモデル表示部１０７の３Ｄモデルの状態から確認することができる。例えば、警告事象として特定されたロボットの干渉（衝突）状態をロボットの衝突状態を回避するためには、回避点となる教示点を作成し、その教示点を経由するプログラムを作成する。
【００５１】
その場合、３Ｄモデル表示部１０７を用いてロボット装置（の３Ｄモデル）の位置姿勢を操作して、回避点となる教示点を作成する。マウスＣなどのポインティングデバイスと３Ｄモデル表示部１０７を用いて３Ｄモデルの位置姿勢を操作するユーザインターフェースは公知であり、この回避点となる教示点の作成にはそのような公知のユーザインターフェースを用いることができる。なお、この３Ｄモデル表示部１０７でのロボット装置（の３Ｄモデル）の操作中、干渉判定１１０の処理を行い、干渉（衝突）が生じた場合には、上記と同様の表示態様の変更を行って、その警告事象をユーザに警告することができる。
【００５２】
回避点としての教示点がユーザにより指定されると、その教示点へ移動する命令を、ロボット制御データ、例えばロボットプログラムや教示点データに追記する。このような追記を行うユーザインターフェースも、シミュレータ装置においては公知であり、この教示点のロボットプログラムや教示点データへの追記に利用できる。追記したプログラムや教示点データは、本シミュレータ装置が内蔵する、あるいは外部のロボットのコントローラの逆運動学的な演算によって、ロボット装置の関節などを個々に動作させるための指令値のデータに変換することができる。その後、変更（追記）後のロボットプログラムや教示点データをシミュレーションソフトウェアＥに入力し、上記のステップＳ１〜Ｓ４の処理を再度、行うことにより、干渉（衝突）などの警告事象の有無を確認することができる。ユーザが以上のような修正操作を繰り返すことによって、ロボット制御データを検証でき、干渉（衝突）などの警告事象を生じることがない状態に編集することができる。
【００５３】
以上のように、本実施形態によれば、仮想環境で動作する前記ロボット装置のモデルを表示するモデル表示部１０７の表示と連動して、仮想環境におけるロボット装置のモデルの動作に係る事象を時間軸上に表示する事象表示部１０８を設けている。従って、本実施形態によれば、検証中のロボット装置の動作に係る干渉（衝突）などの警告事象の有無を、容易かつ直感的に判断できるユーザインターフェースを提供することができる。本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【００５４】
＜実施形態２＞
実施形態１では、事象表示部１０８に時間軸を伴なう表示部としてグラフ表示部１１２を設ける構成を示した。しかしながら、時間軸上に事象を表示する事象表示部１０８の表示フォーマットは、実施形態１のような時間軸上に線ないし波形の表現の線を表示する、いわゆる「線図」の様式を有するグラフ表示部１１２に限定されるものではない。事象表示部としては、時間軸を有し、ある時間長を有する一連のロボット動作を経時的に事象を表示できるものであればどのような表示でもよく、例えば、以下に示すような種々の構成が考えられる。
【００５５】
図６（ａ）〜（ｄ）に、本実施形態２における事象表示部（２０１、２０２、２０３…）の種々の表示形態の例を示している。なお、以下では、事象表示部（２０１、２０２、２０３…）の表示形態のみを示し、それ以外のハードウェア／ソフトウェア的な構成については、実施形態１と同等の構成が設けられているものとする。また、実施形態１の部材と同一ないし同等の機能を有する部材については、前述と同じ参照符号を用い、その詳細な説明は省略する場合がある。
【００５６】
図６（ａ）、および図６（ｂ）は、それぞれ直線、および、円形（環状）の、いわゆるスライダ表示による事象表示部２０１、２０１の構成を示している。図６（ａ）、（ｂ）において、事象表示部２０１、２０１は、直線状、または円環状のスライダバー上の干渉、および閾値付き干渉（衝突）の各警告事象の位置をそれぞれ示す赤色の帯（１１３）、黄色の帯（１１３ａ、１１４）を表示している。スライダバーの両端には時間軸の始点および終点の時刻の数値表示（０〜ｘｘｘｘ）を行っている。また、図６（ａ）、（ｂ）において、事象表示部２０１、２０１には、スライダバー上の特定時刻あるいはその時刻の事象を選択するためのスライダハンドル２０１ａが設けられている。
【００５７】
スライダハンドル２０１ａによって、スライダバー上の特定時刻の事象を選択した場合、その事象に関する情報を表示する詳細表示部のウィンドウやタブを別途ポップアップさせて表示する。これにより、ユーザは、指定された事象の詳細情報、例えば各関節の関節位置（角度）などの詳細情報を読み取ることができる。この時、ポップアップさせる表示ウィンドウやタブの表示内容としては、下記の図６（ｃ）、（ｄ）の事象表示部２０２、２０３の１行のように、各関節の関節位置（角度）の数値情報や、ロボットプログラムの命令文、などが考えられる。
【００５８】
図６（ａ）、（ｂ）のような事象表示部２０１、２０１は、実施形態１のグラフ表示部１１２よりもコンパクトであり、限られたスペースに表示する場合に適している。例えば、図６（ａ）、（ｂ）の表示形態は、グラフ表示部１１２（ディスプレイＢ）が、例えば、モバイル端末やティーチングペンダントなどの、表示面積が限定され、縦横の画素数も多く取れないような表示画面で構成される場合に適している。
【００５９】
また、図６（ｃ）は、表（テーブル）形式の表示態様を有する事象表示部２０２の例を示している。図６（ｃ）の事象表示部２０２では、時間軸は、表の縦方向（行の配列方向）取られ、各コラムを用いてあるロボット装置（Ｒｏｂｏｔ１）の６つの関節位置（角度）を表示している。この表形式の事象表示部２０２でも、干渉、および閾値付き干渉（衝突）の各警告事象の位置をそれぞれ示す赤色の帯（１１３）、黄色の帯（１１３ａ、１１４）を表示することができる。このような表形式の、比較的詳細な事象表示部２０２は、動作の指令値と解析結果の関連性などを検証する場合に適している。例えば、ロボットの干渉（衝突）状態を回避する教示点を作成する場合である。テーブル形式の事象表示部２０２に表示した干渉（衝突）状態のフレームの各軸の指令値の数値と各軸のリミットより、あとどれくらい移動できるかを確認でき、教示点の作成の目安として役立つ。
【００６０】
事象表示部の時間軸を持つ表示としては、経時的な順序で、例えばロボット動作の記述を配列したリスト表示のような表示態様も考えられる。このようなリスト表示には、例えばロボットプログラムを記述したソースコードのリスト表示が考えられる。例えば、図６（ｄ）の事象表示部２０３は、ロボットプログラムのソースコードのリスト表示、例えばプログラムエディタの表示として構成されている。図６（ｄ）の事象表示部２０３では、実行させるロボット動作を記述した命令を経時的な順序で配列した１０行のロボットプログラムが表示されている。
【００６１】
図６（ｄ）の事象表示部２０３でも、干渉、および閾値付き干渉（衝突）の各警告事象の位置をそれぞれ示す赤色の帯（１１３）、黄色の帯（１１３ａ、１１４）を表示することができる。この例では、干渉、および閾値付き干渉（衝突）の各警告事象が生起した当該の命令文に警告事象を強調するよう、表示色の変更により表示態様の制御を行っている。なお、図６（ａ）〜（ｄ）の各例では、干渉、および閾値付き干渉（衝突）の各警告事象を表示色を変更する表示態様の制御によって表示するようにしているが、輝度や濃度など他の表示態様の制御を行っても構わない。
【００６２】
図６（ｄ）に示すようなロボットのプログラムエディタ形式の事象表示部２０３は、干渉や、閾値付き干渉（衝突）の警告事象がロボットプログラム上のどの命令で発生しているかを判断したい場合に適している。なお、一般にロボットプログラムでは、ＴＣＰをある位置まで移動（Ｍｏｖｅ）させるような形式の命令文が用いられる。そのため、１つの命令文の中には複数のロボット動作のフレームが含まれ、その１つの命令文干渉（衝突）と、閾値付き干渉（衝突）と、の両方の警告事象に該当する場合が考えられる。その場合、表示態様の変更は、より問題性が高い警告である干渉（衝突）の方の表示態様を採用することにより行う。
【００６３】
事象表示部として、これまでに示した、実施形態１のグラフ表示部１１２を用いた構成や、図６（ａ）〜（ｄ）の事象表示部２０１〜２０３は、単独の画面でも特有の効果あるが、複数の画面を組み合わせて利用することによる効果もある。上記のように、図６（ａ）、（ｂ）のスライダ表示による事象表示部２０１、２０１のインターフェースから、図６（ｃ）、（ｄ）のような、詳細表示に係る事象表示部２０２や２０３をポップアップさせてもよい。また、ディスプレイＢの表示画面に余裕があれば、ユーザがこれらを同時に視認できるよう、表示させてもよい。
【００６４】
また、実施形態１のグラフ表示部１１２と、図６（ｄ）のプログラムエディタ形式の事象表示部２０３を組合せて用いるには、例えば、以下のような表示制御を行うことができる。この場合、図６（ｄ）のプログラムエディタ形式の事象表示部２０３は、表示部１０２と操作部１０３のユーザインターフェースを介して行われるユーザの編集操作によって、表示されているプログラムのコードを編集（変更）できるものとする。また、編集結果のソースコードのファイルは、必要に応じて、外部記憶装置などの記憶メディア（ＨＤＤやＳＤＤなど）に記憶できるものとする。
【００６５】
例えばシミュレーションの過程で、ロボット装置の３Ｄモデルが２点の教示点の間を移動している途中で干渉（衝突）ないし閾値付き干渉（衝突）のような警告事象を生じることがある。その場合、ユーザは、この干渉（衝突）状態を回避できるよう、例えば教示点を追加してプログラムを修正する作業を行う。このようなケースでは、実施形態１の３Ｄモデル表示部１０７、さらに事象表示部として、実施形態１のグラフ表示部１１２と、図６（ｄ）のプログラムエディタ形式の事象表示部２０３をユーザが両方とも利用できるよう表示する構成が役立つ。
【００６６】
その場合、まず、ユーザはグラフ表示部１１２を確認し、マウスＣなどを用いて、干渉（衝突）ないし閾値付き干渉（衝突）のような警告事象に該当するフレームの色の帯（１１３、１１３ａ、１１４）を指定し、そのフレームに移動する。この警告事象に該当するフレームへの移動操作を行うと、同時に視認できるよう表示している３Ｄモデル表示部１０７の表示をそのフレームに更新させ、当該の警告事象の状態における位置、姿勢でロボット装置を表示させる。
【００６７】
この時、３Ｄモデル表示部１０７の視点移動や、３Ｄモデルの回転などを行うＧＵＩによって、警告事象を視認しやすいように３Ｄモデル表示部１０７の表示を変更できるようにしておくとよい。また、３Ｄモデル表示部１０７を用いる場合、マウスＣなどを用いて、表示中の３Ｄモデルを操作する直接教示操作を行う構成が知られている。このような直接教示操作は、上記のような警告事象の回避ための教示点追加操作に用いることができる。
【００６８】
例えば、３Ｄモデル表示部１０７に表示中の干渉（衝突）ないし閾値付き干渉のような警告事象の状態から、ユーザにマウスＣなどを用いた直接教示操作を行い、ロボット装置の３Ｄモデルの位置姿勢を変更し、当該の警告事象を回避できる教示点を指定する。回避教示点を作成した後、グラフ表示部１１２で、当該の干渉（衝突）ないし閾値付き干渉の警告事象のフレームを再度、選択する。なお、この時、プログラムエディタ形式の事象表示部２０３がまだ表示であればこの選択操作に応じて、プログラムエディタ形式の事象表示部２０３で該当箇所のコードを表示する。
【００６９】
プログラムエディタ形式の事象表示部２０３の表示は、３Ｄモデル表示部１０７の表示の状態、あるいは、グラフ表示部１１２の時間軸上の事象選択に連動するように更新させる。例えば、グラフ表示部１１２で、当該の干渉（衝突）ないし閾値付き干渉の警告事象のフレームを再度、選択すると、当該のフレームの命令コードをハイライト表示によって強調表示する。警告事象のフレームに該当する命令コードの、例えば直前には、３Ｄモデル表示部１０７を用いて追加、作成した回避教示点へ移動する命令コードを自動的に追記する。あるいは、この教示点への移動を指定する命令コードは、挿入位置のみ自動的に生成し、ユーザが手動操作によって入力してもよい。あるいは、回避教示点へ移動する命令コードを自動的に生成して該当位置に自動的に挿入するが、その挿入を許可するユーザ操作を待って命令コード追記を確定するような制御を行ってもよい。
【００７０】
回避教示点への移動命令を追加した後、修正したロボットプログラムを実行すると、ロボット装置の指令値データが作成される。この作成された指令値データを、再度、シミュレーションソフトウェアＥに入力して実施例１のＳ１〜Ｓ４の処理を行うことにより、修正後の動作を確認することができる。
【００７１】
以上のように、３Ｄモデル表示部１０７の表示、さらに１つあるいは事象表示部２０３の表示を連動させ、ユーザの事象選択や編集の操作に応じてそれらの表示を更新することができる。これにより、ロボット制御データ（教示点やロボットプログラム）の修正を容易に行え、ロボット装置のシミュレーションに必要な工数を削減し、効率よくシミュレーション作業を行うことができる。なお、本シミュレータ装置で検証するロボット制御データ（教示点やロボットプログラム）の作成はシミュレータ内の仮想コントローラで行う、例えば３Ｄモデル表示部１０７を用いた直接教示などによって行う構成が考えられる。また、これに限らず、本シミュレータ装置で検証するロボット制御データ（教示点やロボットプログラム）としては、外部の他の装置、ティーチングペンダントなどの制御端末などにより作成したものを用いてもよい。
【００７２】
＜実施形態３＞
以下、図７（ａ）〜（ｃ）を参照して、本発明の実施形態３に係わるシミュレータ装置の表示制御につき説明する。
【００７３】
実施形態１の事象表示部１０８のグラフ表示部１１２では、干渉、および閾値付き干渉（衝突）の各警告事象の位置をそれぞれ示す赤色の帯（１１３）、黄色の帯（１１３ａ、１１４）を表示する表示態様の制御例を示した。
【００７４】
時間軸を有する事象表示部１０８で干渉、閾値付き干渉（衝突）の各警告事象を強調するための表示態様の変更制御としては、上記のような表示色の変更以外の手法を用いてもよい。
【００７５】
例えば、図７（ａ）の事象表示部２０１に示すように、干渉、閾値付き干渉（衝突）の各警告事象を強調表示するために、それぞれストライプの帯（３０１）やメッシュの帯（３０２）などの表示パターンを用いてもよい。このようなハッチング的な表示態様は、ディスプレイＢがカラー表示機能のない白黒ディスプレイなどである場合に適している。
【００７６】
なお、図７（ａ）、および下記の図７（ｂ）の表示形式は図６（ａ）に示したスライダバーによる事象表示部２０１の例を示しているが、図５の同様の表示態様は事象表示部１０８に時間軸を伴なう表示部としてグラフ表示部１１２を設けた構成でも用いてよい。
【００７７】
図７（ｂ）の事象表示部２０１では、干渉、閾値付き干渉（衝突）の各警告事象を強調表示するために、それぞれ矢印（３０３）や三角（３０４）などのマークをスライダバー上の当該事象の位置に表示している。このようなマークによる強調表示は、スライダバーによる事象表示部２０１や、グラフ表示部１１２のロボット動作の１フレーム当たりの表示面積が小さい場合などに適している。また、解析結果の状態が変化したフレームにのみマークを表示すれば、マークが重なり合う可能性が低くなり、表示視認の容易性が向上する。
【００７８】
また、図７（ｃ）の事象表示部２０２は、図６（ｂ）と同等のテーブル（表）形の表示フォーマットである。図７（ｃ）の事象表示部２０２では、例えば、干渉、閾値付き干渉（衝突）の各警告事象を強調表示するために、それぞれ文字の大きさ（３０５）や文字の太さ（３０６：ボールドフェイス）の変更を行っている。その他に採用可能な文字の表示態様の変更としては、例えば文字の色、フォント（字体）などの変更が考えられる。ディスプレイＢによっては、ハッチング的な表示パターンと文字の重畳表示では、文字の可読性が低下する特性を有するものがある。そのようなディスプレイでは、図７（ｃ）のように文字それ自体の表示態様の変更により干渉、閾値付き干渉（衝突）の各警告事象を強調表示する構成が有用である場合がある。
【００７９】
図７（ａ）〜（ｃ）に示した表示態様によっても、干渉、閾値付き干渉（衝突）などの警告事象を強調表示することによりユーザは警告事象を直感的に認識することができ、効率よくシミュレーション作業を行うことができる。即ち、本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【００８０】
なお、図７（ａ）〜（ｃ）に示したような、ハッチング的な表示パターン、マークの表示、文字の表示態様の変更などを行う場合、同時に実施形態１、２で例示した表示色（あるいは輝度、濃度など）の変更を同時に行ってもよい。例えば、赤色のストライプの帯（３０１）や黄色の三角（３０４）などのように、色（輝度、濃度）と、色以外の表示態様の変更を同時に行うことで、警告事象をより判り易く表示することができる。
【００８１】
＜実施形態４＞
以下、図８〜図１０を参照して、本発明の実施形態４に係わるシミュレータ装置の制御系の構成、およびその表示制御につき説明する。
【００８２】
上述の実施形態１〜３では、主に干渉（衝突）を警告事象として例示して、制御系の構成、およびその表示制御につき説明した。しかしながら、警告事象として事象表示部によって表示すべき事象は、他の解析結果に係るものであってもよい。本実施形態４では、解析部１０６が干渉判定（１１０）に加え、特異点判定（４０１）、および先端加速度判定（４０２）の解析機能を有する構成を例示する。以下では、ハードウェアおよびソフトウェア的な構成として、実施形態１〜３で説明に用いた構成を基本構成とし、それとは異なる部分につき説明する。以下では、既に説明した部材と同一ないし同等の部材には同一の参照符号を用い、その詳細な説明は省略するものとする。
【００８３】
図８は、実施形態１の図２と同等の形式で本実施形態の制御系のハードウェアないしソフトウェア的な機能ブロック構成を示している。図８において、図２との相違は、解析部１０６が干渉判定１１０に加えて、特異点判定４０１、および先端加速度判定４０２の機能を有している点にある。干渉判定１１０の機能は、上述の各実施形態と同様に干渉、および閾値付き干渉（衝突）の各警告事象を特定する機能である。
【００８４】
また、特異点判定４０１は、ロボット装置の位置、姿勢の解が定まらない領域を計算し判定する処理である。例えば、ロボット制御データとして、例えばＴＣＰの位置を指定する教示点が与えられた場合、逆運動学的な計算を行っても、ロボット装置の位置、姿勢の解を得られない教示点の位置がロボット装置の動作空間に存在する。実際のロボット装置、ないしそれを模擬する３Ｄモデルでは関節の可動角度範囲や、リンク長などハードウェア条件により特異点となる領域が異なり、これを制限するためである。この特異点判定４０１は、ロボットの位置の補正などに起因して、ロボット装置の位置、姿勢の解を得られない特異点に移動してしまい、異常停止する可能性を防ぐために利用する。
【００８５】
また、先端加速度判定４０２は、ロボット装置の先端（例えばＴＣＰ）の加速度を計算し、閾値以上の加速度になっていないかを判定する処理である。ロボット装置の先端（例えばＴＣＰ）を過大な加速度で動作させると、ロボット装置は把持中のワークを落下させる、あるいはその関節機構に過負荷がかかって故障を生じる可能性がある。この先端加速度判定４０２は、そのような過大な加速度でロボット装置が動作しないよう制御するために利用する。
【００８６】
以下では、解析部１０６が、干渉判定１１０に加え、特異点判定４０１、先端加速度判定４０２の機能を有しており、これらの判定手段が特定した警告事象を事象表示部により表示する場合の表示態様につき例示する。なお、本実施形態では、シミュレーション対象のロボット装置（ないしその３Ｄモデル）に６軸多関節ロボットを用いるものとする。
【００８７】
実施形態１において、干渉判定１１０による解析と、特定された警告事象の表示態様の変更を伴う制御の手順を図４に示した。この図４の制御手順は、特異点判定４０１、および先端加速度判定４０２による解析、およびこれらにより特定された警告事象の表示態様の変更を伴う制御に用いることができる。
【００８８】
ただし、図４のステップＳ４では、特異点判定４０１、および先端加速度判定４０２により特定された警告事象の表示態様の変更を伴う表示制御では、例えば干渉判定１１０により特定された警告事象の場合と同様に、他の事象と区別可能な表示態様を用いる。
【００８９】
例えば、特異点判定４０１が解析し、特定すべきロボット装置（の３Ｄモデル）の特異点には、特定の関節の２軸が一直線上に位置する状態がある。また、６軸多関節ロボットなどの場合、その関節には、Ｗｒｉｓｔ、Ｅｌｂｏｗ、Ｓｈｏｌｄｅｒの３種類が存在し、これらの３種について生じる特異点の状態には、次の特異点Ｗｒｉｓｔ、特異点Ｅｌｂｏｗ、特異点Ｓｈｏｌｄｅｒがある。
【００９０】
ここで、特異点Ｗｒｉｓｔとは、４軸と６軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。特異点Ｅｌｂｏｗとは、２軸と３軸と５軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。特異点Ｓｈｏｌｄｅｒとは、１軸と６軸が一直線上になり、位置姿勢の解が定まらなくなる状態である。
【００９１】
本実施形態では、図９（ａ）に示すように、解析条件設定部１０９を、解析すべき３種類の特異点Ｗｒｉｓｔ、特異点Ｅｌｂｏｗ、特異点Ｓｈｏｌｄｅｒの閾値をユーザが設定できるよう構成する。特異点Ｗｒｉｓｔは角度（ｄｅｇ単位など）で設定する。特異点Ｅｌｂｏｗ、特異点Ｓｈｏｌｄｅｒは特異点からの距離（ｍｍ単位など）で設定する。
【００９２】
特異点判定４０１の解析結果の表示は、ロボットの１台ずつについて行う。２台以上のロボットがあり、すべてのロボットの特異点の解析結果を重ねて表示してしまうと、どのロボットで特異点が発生したのか判別が難しくなるためである。
【００９３】
例えば、図９（ｂ）は、本実施形態において、事象表示部１０８のグラフ表示部１１２で特異点判定４０１の解析結果を表示する例を示している。ここで、特異点判定４０１の解析結果は、上述の干渉に関する警告事象の表示態様の場合と同様に、特異点事象と、（解析条件設定部１０９で指定した）閾値付き特異点事象とでは、異なる色の帯（１１３、１１３ａ、１１４）によって表示している。
【００９４】
図９（ｂ）の表示態様では、Ｒｏｂｏｔ１、Ｒｏｂｏｔ２の２台のロボット装置につき、その１番の関節（Ｊｏｉｎｔ１）の角度を上下２段のグラフ表示に分離して表示している。このように、グラフ表示部１１２の表示をＲｏｂｏｔ１、Ｒｏｂｏｔ２の２台のロボット装置ごとに分離し、関節角度（の指令値）をグラフ表示することにより、直感的にどのロボットで特異点が発生したのかを判断できるようになる。
【００９５】
また、図９（ｃ）は、図６（ａ）と同様の事象表示部２０１によって、特異点事象と、解析条件設定部１０９で指定した閾値付き特異点事象と、他の事象と区別できるよう表示態様を変更する例である。図９（ｃ）のようなスライダバー形式の事象表示部２０１では、１台のロボット分しか表示することができない。その場合には、プルダウンメニューなどから成る表示選択（４０３）手段を事象表示部２０１に設けておき、表示すべきロボットの解析結果を選択できるようにしておくと良い。図９（ｃ）の例でも、警告事象として特定された特異点事象と、（解析条件設定部１０９で指定した）閾値付き特異点事象は、異なる色の帯（１１３、１１３ａ、１１４）によって表示している。
【００９６】
図１０（ａ）、（ｂ）により、先端加速度判定４０２により特定（解析）された警告事象の表示態様の変更制御につき説明する。先端加速度判定４０２によって、先端加速度は、特定の基準部位（ＴＣＰなど）の加速度が、一定の閾値以上になった場合、警告事象として特定する。この場合、例えば、図１０（ａ）に示すように、解析条件設定部１０９は、検証したい条件などに応じてユーザが複数の閾値（１および２）を設定できるよう構成しておくとよい。
【００９７】
先端加速度判定４０２の特定した警告事象を事象表示部１０８のグラフ表示部１１２で行う表示は、特異点の場合同様に、図１０（ｂ）に示すように、ロボットの１台ごとに分離して行うのが好適である。図１０（ｂ）の例では、先端加速度判定４０２により、解析条件設定部１０９で設定された２つの閾値をロボット装置（の３Ｄモデル）の先端加速度が超過しているフレームが警告事象として特定されている。そしてそれら２つの閾値の超過をそれぞれ異なる色の帯（１１３、１１３ａ、１１４）によって表示している。なお、グラフ表示部１１２（または図６（ｂ）、図７（ｃ）のようなテーブル形式の事象表示部２０２）では、表示に使用する数値は関節角度の指令値などではなく、先端加速度の計算結果を表示するようにしてもよい。
【００９８】
本実施形態では、以上のような特異点判定４０１、および先端加速度判定４０２によって、特異点および先端加速度を解析して得た警告事象を実施形態１〜３の干渉判定１１０の場合と同様に、他の事象とは異なる表示態様で表示する。そのため、これらの警告事象を強調表示することによりユーザは警告事象を直感的に認識することができ、効率よくシミュレーション作業を行うことができる。即ち、本実施形態のユーザインターフェースによれば、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【００９９】
＜実施形態５＞
以下、図１１および図１２を参照して、本発明の実施形態５に係わるシミュレータ装置の表示制御につき説明する。なお、図１１および図１２では、フローチャートによって制御部１０１の制御手順を示すが、シミュレータ装置のその他のハードウェア／ソフトウェア的な構成については、上述の各実施形態で説明したものと同様であるものとする。
【０１００】
本実施形態５では、相互に連動している事象表示部（上述の各実施形態の１０８、２０１〜２０３）や３Ｄモデル表示部１０７で、解析結果の状態がその前後で変化する事象のフレームに移動する手法を例示する。
【０１０１】
例えば、３Ｄモデル表示部１０７の表示上で、その前後で、非警告事象（警告事象ではない、通常の事象）から警告事象へ、または警告事象から非警告事象へと状態が変化する位置を検索し、その表示状態に移動できれば便利である。また、警告事象に、上述の干渉、および閾値付き干渉（衝突）などの場合のように、異なる種類ないし段階の警告事象が存在する。本実施形態では、これらの異なる警告事象の間での遷移も検索対象とする。
【０１０２】
ただし、一般には、事象表示部（１０８、２０１〜２０３）の表示面などにおいて多くの表示領域を占めるのは非警告事象であり、そこから警告事象を検索し、その位置へ移動する用途が主である。そこで、以下では非警告事象から警告事象へ変化する位置を検索する場合を例に説明する。しかしながら、図１１、図１２などに図示した手順は、警告事象から非警告事象へ変化する位置を検索する場合にも用いることができる。
【０１０３】
図１１、図１２のフローチャート図は、実施形態５に係わるシミュレータ装置の事象表示部（１０８、２０１〜２０３）の異なる表示制御手順をそれぞれ示している。
【０１０４】
なお、以下では、警告事象の例として、干渉、および閾値付き干渉（衝突）の各警告事象を用いて説明する。しかしながら、実施形態３、４などで説明した他の警告事象を検索する場合でも図１１および図１２の制御手順は利用可能である。
【０１０５】
図１１の表示制御手順は、表示中の（あるいは選択状態にある）事象フレームから一番近い、解析結果の状態が変化する事象のフレームへユーザの１操作で移動するためのものである。ここでは、検索対象とする事象の状態の変化は、未干渉（未衝突）事象から閾値付き干渉（衝突）への変化、閾値付き干渉（衝突）への変化から干渉（衝突）事象への変化とする。さらに、本実施形態では、干渉（衝突）事象から閾値付き干渉（衝突）への変化、さらに閾値付き干渉（衝突）から未干渉（未衝突）事象への変化も検索の対象として取り扱う。
【０１０６】
本実施形態の表示制御は、図１１に示すように、ステップＳ５〜ステップＳ７の検索処理によって行われる。なお、本実施形態の検索処理は、キーボードＤからの所定操作や、ディスプレイＢで表示した検索ダイアログなどにより起動されるものとするが、検索処理の起動には、他の手法を用いても構わない。
【０１０７】
上記のような契機によって本実施形態の検索処理が起動されると、ステップＳ５で、解析部（１０６）の解析結果に基づき、上に例示したように状態が変化する事象のフレームを検索する。ここで、検索結果が複数存在する場合には、それをリストにして保存する。これにより、次回の検索では保存したリストを用いて検索処理を行える。
【０１０８】
ステップＳ６では、該当するフレームがあれば、ステップＳ７において、現在、事象表示部（１０８、２０１〜２０３）で表示中のフレームから一番近いフレームを選択し、選択したフレームに移動する。そして、その当該のフレームによってロボット装置の３Ｄモデルの状態を３Ｄモデル表示部１０７で表示させる。また、これに連動して事象表示部（１０８、２０１〜２０３）の表示も、当該の事象の変化位置が表示領域内に現われるよう、例えば自動的にスクロールさせたり、あるいは表示倍率を自動的に変化させたりする。また、ステップＳ６で、状態変化に該当するフレームがなければ、検索処理を終了させる。
【０１０９】
以上のように、図１１の制御手順により、相互に連動している事象表示部（上述の各実施形態の１０８、２０１〜２０３）や３Ｄモデル表示部１０７で、解析結果の状態がその前後で変化する事象のフレームに移動することができる。従って、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【０１１０】
なお、検索の方向は、ロボット装置のモデルを動作させる時間軸上で、過去および未来（前方および後方）の両方の方向に移動できるようにしておくのが望ましい。そこで、図１１の検索処理を起動するダイアログをディスプレイＢなどで表示する場合には、過去または未来（前方または後方）の「検索方向」を指定できるようにしておくとよい。
【０１１１】
また、上述の検索した事象（またはフレーム）リストが既に存在する場合には、そのリストをテーブル形式やグラフ形式で表示する表示ウィンドウや表示タブをディスプレイＢに表示させてもよい。このようなテーブル形式やグラフ形式のリスト表示によれば、注目している警告事象がどれくらいの頻度、数、周期などで生起しているのかを一覧でき、容易に確認できる。
【０１１２】
また、このテーブル形式やグラフ形式のリスト表示は、事象検索のためのダイアログとして用いることもできる。例えば、リスト表示に含まれている特定の警告または非警告事象をマウスＣなどにより指定することにより、３Ｄモデル表示部１０７のロボット装置の３Ｄモデルの表示状態を当該の事象の状態に更新する。このような連動的な表示制御により、ユーザは検証中のロボット装置の３Ｄモデルの振舞いを、きめ細かく把握することができる。
【０１１３】
図１２は、３Ｄモデル表示部１０７でロボット装置の３Ｄモデルの動作をアニメーション（動画）表示している間に、事象の変化を検索し、その位置でアニメーション（動画）表示を停止（ストップモーションないし静止画表示）させる制御を示している。
【０１１４】
３Ｄモデル表示部１０７で、ロボット装置の３Ｄモデルの動作をアニメーション（動画）を表示（再生）させる場合、再生速度の設定や、ハードウェア的な制約により、フレームを間引き（いわゆる駒落し）して表示が行われる場合がある。３Ｄモデル表示部１０７では、従来技術のように、干渉（衝突）などを生じた部位、あるいはそのロボット装置を強調表示（表示色や輝度、濃度などの変更による）してよい。しかしながら、３Ｄモデル表示部１０７で上記のようなフレームドロップを伴うアニメーション（動画）表示が行われている場合、１ないし数フレームしか現れない警告事象の強調表示が駒落しされる可能性もある。
【０１１５】
そこで、図１２の制御手順では、全てのフレームから事象の変化するフレームを検索し、該当するフレームがあれば、３Ｄモデル表示部１０７の表示をそのフレームを表示するよう更新し、そこで停止させる。これにより、３Ｄモデル表示部１０７でアニメーション（動画）表示が行われている場合でも、確実に事象の変化するフレーム、例えば警告事象に相当するフレームをユーザに確認させることができる。
【０１１６】
図１２において、３Ｄモデル表示部１０７のアニメーションの再生が指定されると、ステップＳ８、表示中のフレームの次に描画するフレームを設定する。この処理は、特定の記憶部１０５内の特定領域に割り当てられた次に描画するフレームの画像データが描画済みのフレームバッファを指定することなどにより行う。通常、フレームバッファは２個（ないしそれ以上の数）、記憶部１０５に配置され、一方のフレームバッファで読み出し（ステップＳ１３の表示）が行われている間に、他方のフレームバッファでは後続のフレーム描画を行うようになっている。
【０１１７】
本実施形態では、現在表示中のフレームから、次のフレームがディスプレイＢに表示されるまでの区間（ステップＳ８〜Ｓ１３）を利用して、検索対象の事象の変化に該当するフレームの検索（ステップＳ９、Ｓ１０）を行う。即ち、ステップＳ９では検索対象の事象の変化に該当するフレームを検索し、該当するフレームがなければステップＳ１３に移行して、ステップＳ８で設定したフレームを用いて３Ｄモデル表示部１０７の表示を更新する。
【０１１８】
ステップＳ８の後、フレーム間の検索（Ｓ９、Ｓ１０）により、事象の変化に該当するフレームが検索されなければ、アニメーション（動画）表示は、ステップＳ１３、Ｓ１４（最後の動作の判定）を経てステップＳ８に戻るループで動作の最後まで表示される。ステップＳ１４で、最後の表示フレームが表示済みになっている場合には、アニメーション（動画）表示は停止される（ステップＳ１２）。
【０１１９】
一方、ステップＳ１０で検索対象の事象の変化に該当するフレームが検索されると、ステップＳ１０からＳ１１への遷移が生じる。ステップＳ１１では、ステップＳ８で設定した「次フレーム」ではなく、検索された事象の変化が生じているフレーム用いて、３Ｄモデル表示部１０７の表示を更新する。そして、このフレームを静止画表示として残したまま、アニメーション（動画）表示を停止させる（ステップＳ１２）。
【０１２０】
以上のように、図１２の制御手順によれば、３Ｄモデル表示部１０７でアニメーション（動画）表示を行う場合、表示フレーム間の区間を用いて、後続フレームの方向へ事象の変化に該当するフレームを検索し、そのフレームを表示して停止させることができる。そのため、３Ｄモデル表示部１０７でアニメーション（動画）表示が行われている場合、そして例えフレームドロップが発生しているような状況でも、確実に事象の変化するフレーム、例えば警告事象に相当するフレームをユーザに確認させることができる。従って、ユーザは検証中のロボット装置の動作に係る警告事象の有無を直感的に判断でき、検証作業、あるいはロボット制御データの編集作業を確認漏れなどなく確実に、極めて効率よく行える。
【０１２１】
ここで、図１、図２のシミュレータ装置によって検証されたロボット制御データ（教示点データやロボットプログラム）によって動作するロボット装置のより具体的な構成例や、そのロボットアームを生産システムに適用した場合の構成などにつき示しておく。
【０１２２】
図１３は、図１、図２のシミュレータ装置によって検証されたロボット制御データ（教示点データやロボットプログラム）によって動作するロボット装置１００１の全体構成を示している。図１３において、ロボット装置１００１（ロボット装置）は、例えば６軸（関節）の垂直多関節形式のロボットアーム本体１２０１を備える。ロボットアーム本体１２０１の各関節は、各関節にそれぞれ設けられたサーボモータをサーボ制御することにより所望の位置姿勢に制御することができる。
【０１２３】
ロボットアーム本体１２０１の先端（手先）には、例えばハンド１２０２のようなツールが装着され、このハンド１２０２によって、ワーク１２０３を把持し、ワーク１２０３を組み付けたり、加工したりする生産作業を行わせることができる。ワーク１２０３は、自動車や電機製品などの工業製品の例えば部品であって、ロボット装置１００１はこのような生産システム（生産ライン）に生産装置として配置することができる。
【０１２４】
ロボット装置１００１のロボットアーム本体１２０１の動作は、ロボット制御装置１２００（ロボットコントローラ）により制御される。ロボット装置１００１のためのロボット制御データは、ロボット制御装置１２００に接続された操作端末１２０４（例えばティーチングペンダント）によってプログラミング（教示）する、あるいは微修正などの編集を加えることもできる。
【０１２５】
また、ネットワークＮＷを介して、ロボット装置１００１ないしロボット制御装置１２００は、図１、図２に示したシミュレータ装置から、上述のように最適化されたロボット制御データないし軌道データを受信することができる。これにより、上記の処理によって最適化されたロボット制御データに基づき、ロボット装置１００１を生産システム（生産ライン）を構成する生産装置として動作させ、ロボット装置１００１により物品を製造することができる。
【０１２６】
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１２７】
Ａ…コンピュータ本体、Ｂ…ディスプレイ、Ｃ…マウス、Ｄ…キーボード、Ｅ…シミュレーションソフトウェア、１０１…制御部、１０２…表示部、１０３…操作部、１０４…データ入出力部、１０５…記憶部、１０６…解析部、１０７…３Ｄモデル表示部、１０８、２０１、２０２、２０３…事象表示部、１０９…解析条件設定画面、１１０…干渉判定、１１１…解析実行ボタン、１１２…グラフ表示部、１１３…（赤色の）帯、１１４…（黄色の）帯、３０１…（ストライプの）帯、３０２…（メッシュの）帯、３０３、３０４…マーク、４０１…特異点判定、４０２…先端加速度判定。
【図１】
2019123052.tif 000003
【図２】
2019123052.tif 000004
【図３】
2019123052.tif 000005
【図４】
2019123052.tif 000006
【図５】
2019123052.tif 000007
【図６】
2019123052.tif 000008
【図７】
2019123052.tif 000009
【図８】
2019123052.tif 000010
【図９】
2019123052.tif 000011
【図１０】
2019123052.tif 000012
【図１１】
2019123052.tif 000013
【図１２】
2019123052.tif 000014
【図１３】
2019123052.tif 000015