(57)【要約】【課題】  視覚センサを含むロボットシステムについてプログラムの評価、修正、等を行なう際に便利なシミュレーション装置の提供。【解決手段】  シミュレーション装置上で、ワークセルを定義して、撮像装置２を搭載したロボット１、ワーク３等を配置する。これに、別途設定した視体積モデル３０を組み込み、注視点２３にツール座標系（ツール先端点）を定義し、ワーク３に関する検出基準点（検出基準座標系）２４を設定する。グラフィックジョグでは、ツール座標系を検出基準座標系に一致させるような移動をロボット１に行なわせる。この過程は画面１に表示され、画面２には撮像装置２から見える画像が表示される。視覚センサによる模擬補正量を指定して動作プログラムのシミュレーションを行なう際に、撮像指令の出力／非出力に対応させて視体積モデル３０の表示をＯＮ／ＯＦＦする。【選択図】  図７
2005135278.tif 000002
【特許請求の範囲】
【請求項１】
少なくともロボット、ワーク及び視覚センサ装置の撮像手段の３次元モデルを画面に配置して同時に表示し、前記ロボットの動作シミュレーションを行うシミュレーション装置において、
前記撮像手段の視野を３次元形状で画面上に表示する手段を備えることを特徴とするシミュレーション装置。
【請求項２】
前記視野の３次元形状が四角錐であることを特徴とする、請求項１のシミュレーション装置。
【請求項３】
前記撮像手段が前記視野で捉える画像を画面上に表示する手段を有することを特徴とする、請求項１又は請求項２に記載のシミュレーション装置。
【請求項４】
前記撮像手段は前記ロボットに搭載されていることを特徴とする、請求項１〜請求項３の内のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記ワークに関連した第１の基準点を画面上で指定する手段と、
前記視野に関連して予め定められた第２の基準点が、前記第１の基準点と一致するように、画面上のロボットを動作させる手段を備えることを特徴とする、請求項４に記載のシミュレーション装置。
【請求項６】
前記撮像手段に撮像を行なわせる撮像指令と、前記ロボットを経路移動させる移動指令と、前記撮像指令と前記移動指令に関連する補正指令とを含むロボット動作プログラムに従って、ロボット動作を含むシミュレーションを行う手段と、
前記移動指令が指定する移動経路に関する補正量を記憶する手段と、
前記シミュレーション中に前記補正指令により、前記記億した補正量を読み出し、画面上の前記移動経路を補正する手段とを備えることを特徴とする、請求項１〜請求項５の内のいずれか１項に記載のシミュレーション装置。
【請求項７】
前記撮像指令に従って、前記視野の表示に関する表示状態の切換を行なう手段を備えることを特徴とする、請求項６に記載のシミュレーション装置。
【請求項８】
前記表示状態の切換が、前記撮像指令に従った、前記視野の表示／非表示の切換であることを特徴とする、請求項７に記載のシミュレーション装置。
【請求項９】
前記補正量に従って、画面上のワーク及び周辺機器の少なくとも一方の配置位置を補正することを特徴とする、請求項６〜請求項８の内のいずれか１項に記載されたシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像手段を有する視覚センサとロボットを含むロボットシステムのためのシミュレーション装置に関し、特に、ロボット移動と視覚センサによる検出を含むような動作プログラムをオフラインで作成したり、オフラインで作成済みあるいは作成過程にあるプログラムの評価や修正、編集等を行なう際に有用なシミュレーション装置に関する。
【背景技術】
【０００２】
ロボット、ワーク、周辺機器等の３次元モデルを画面上で配置・表示し、指定されたロボット移動指令等に従ってロボットの動作シミュレーションを行うシミュレーション装置は公知であり、ロボットの動作プログラムをオフラインで作成したり、オフラインで作成されたプログラムの評価や修正、編集等を行なう際に用いられている。ところが、従来のシミュレーション装置では、視覚センサを使うロボットシステムについて、実機が配置されていない場所（例えば事務所）で、オフラインプログラムの作成、修正、編集等を行なおうとする場合、視覚センサに関連するシミュレーションが殆どできなかった。
【０００３】
例えば、視覚センサが画像取得に用いる撮像手段（例えばディジタルＣＣＤカメラ；以下、同様）が持つ視野の３次元形状（視体積）を画面上で把握できなかった。また、撮像手段でどのような画像が取得できるのかが分からず、不便であった。特に、ロボットに撮像手段を搭載した場合、ロボットの位置・姿勢に応じてどのような画像が得られるのか分からないことは大きな問題であった。
そのため、視覚センサに関連する事項については、現場で実際に撮像装置（実機）をロボット（実機）に搭載し、同ロボットの位置・姿勢を変えながら視覚センサを動作させて画像をとり、画像の写り方を確認していた。
【０００４】
そして、実際に、ロボットに搭載した撮像手段が対象物（ワーク等）の検出に関する基準点（通常は、撮像手段で見たい対象物上の適当な位置に定める）を見るためのロボットの位置・姿勢を決めるに際しても、現場でロボットを動かし、取得された画像を見ながら、試行錯誤による作業を行っていた。更に、ロボットの動作プログラムのどこに視覚センサ検出指令を入れたらいいかを考えるのも試行錯誤を要していた。
【０００５】
以上のように、視覚センサを含むロボットシステムについて、シミュレーション装置を用いて、動作プログラムのオフライン作成、オフラインで作成されたプログラムの評価や修正、編集等を行なう際には、種々の不便さが生じ、作業効率の低下を招いていた。そして、これら不便さや作業効率の低下を解消する技術の開示が公知文献には見当らない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、視覚センサを含むロボットシステムについて、動作プログラムのオフライン作成、オフラインで作成されたプログラムの評価や修正、編集等を行なう際に生じていた種々の不便さと作業効率の低下を緩和乃至解消することができるシミュレーション装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、上記課題を解決するために、先ず、少なくともロボット、ワーク及び視覚センサ装置の撮像手段の３次元モデルを画面に配置して同時に表示し、前記ロボットの動作シミュレーションを行うシミュレーション装置に、前記撮像手段の視野を３次元形状で画面上に表示する手段を具備させることを提案する。これにより、撮像手段の視野の３次元形状（視体積）が画面上で容易に確認できるようになる。ここで、前記視野の３次元形状は、典型的には四角錐となる。
【０００８】
また、前記撮像手段が前記視野で捉える画像を画面上に表示する手段を具備させることもできる。これにより、現場での確認作業なしでどのような画像が得られるか分かるようになる。上記いずれにおいても、前記撮像手段は前記ロボットに搭載されていることが典型的であるが、ロボットの外部に撮像手段を配置するケースに適用可能なことは言うまでもない。ロボットに搭載のケースでは、シミュレーション装置の画面に、ロボットとともにそこに搭載された撮像手段のモデル画像が表示され、ロボット外に配置のケースでは、シミュレーション装置の画面に、ロボットとともに外部に配置された撮像手段のモデル画像が表示される。本発明は更に、シミュレーション装置に、前記ワークに関連した第１の基準点を画面上で指定する手段と、前記視野に関連して予め定められた第２の基準点が、前記第１の基準点と一致するように、画面上のロボットを動作させる手段を具備させることを提案する。この提案によれば、視覚センサの撮像手段の視野の３次元形状を画面上に表示するシミュレーション装置を使い、対象物の検出に関する基準点（第１の基準点）の定義、該第１の基準点を見るためのロボットの位置・姿勢の検討が容易に行えるようになる。
【０００９】
また、シミュレーション装置に、前記撮像手段に撮像を行なわせる撮像指令と、前記ロボットを経路移動させる移動指令と、前記撮像指令と前記移動指令に関連する補正指令とを含むロボット動作プログラムに従って、ロボット動作を含むシミュレーションを行う手段と、前記移動指令が指定する移動経路に関する補正量を記憶する手段と、前記シミュレーション中に前記補正指令により、前記記億した補正量を読み出し、画面上の前記移動経路を補正する手段とを具備させることを提案する。この提案により、視覚センサによる検出結果を利用してロボットの移動経路を補正する命令内容を含む動作プログラムについて、想定される適当な補正量を与えてロボットを画面上で移動させ、動作プログラムの評価や修正に役立てることができる。ここで、上記のように、画面上のロボットの移動経路を補正するケースでは、前記補正量に従って、画面上のワーク及び周辺機器の少なくとも一方の配置位置を補正することもできる。
【００１０】
なお、前記撮像指令に従って、前記視野の表示に関する表示状態の切換を行なう手段を具備させることもできる。前記表示状態の切換は、例えば前記撮像指令に従った表示／非表示の切換としても良い。このようにすれば、シミュレーションに際して、オペレータは、撮像手段の視野の３次元形状とともに撮像指令が出されるタイミング（動作プログラム上でどこか）を視覚的に確認することができ、非常に便利である。
【発明の効果】
【００１１】
本発明によれば、視覚センサを含むロボットシステムについて、動作プログラムのオフライン作成、オフラインで作成されたプログラムの評価や修正、編集等を行なう際に生じていた種々の不便さと作業効率の低下を緩和乃至解消することができる。具体的には、次のような利点が生じる。
【００１２】
（１）シミュレーション装置の基本機能に、撮像手段の視野の３次元形状（視体積）の画面表示機能が加わり、視覚センサに関連する諸事項の検討のための基本条件が満たされる。  
（２）視覚センサの撮像手段の視野の３次元形状を画面上に表示するシミュレーション装置を使い、対象物の検出に関する基準点（第１の基準点）の定義、該第１の基準点を見るためのロボットの位置・姿勢の検討が容易に行えるようになる。
【００１３】
（３）視覚センサによる検出結果を利用してロボットの移動経路を補正する命令内容を含む動作プログラムについて、想定される適当な補正量（視覚センサの検出結果に基づく経路補正に対応することが想定される補正量）を与えてロボットを画面上で移動させ、動作プログラムの評価や修正に役立てることができるようになる。  
（４）撮像指令に従って、前記視野の表示に関する表示状態の切換を行なうことで、シミュレーションに際して、オペレータは、撮像手段の視野の３次元形状とともに撮像指令が出されるタイミング（動作プログラム上でどこか）を視覚的に確認することができるようになり、非常に便利である。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照して本発明の実施形態について説明する。先ず図１は、本実施形態に係るシミュレーション装置の概略構成をブロック図で示したものである。同図に記した通り、シミュレーションは、ＣＰＵと、このＣＰＵのバスラインに接続されたメモリ（ＲＯＭ、ＲＡＭ、不揮発性メモリ）、グラフィック制御回路、キーボード／マウス（ニュアル入力装置）及び通信インターフェイスと、グラフィック制御回路に接続されたディスプレイ（例えば液晶表示装置、ＣＲＴ等）からなる。また、図示を省略したが、必要に応じて、プリンタ、パーソナルコンピュータ等の外部機器との間でデータの授受を行なうための入出力力装置等が装備される。
【００１５】
メモリには、以下に説明する表示やシミュレーションの対象とされるロボットの３次元形状データ（寸法データを含む；以下、同様）、同ロボットが撮像装置を搭載した状態における３次元形状データ、ワークの３次元形状データの他、必要に応じて、周辺物体（例えばワークの治具、工作機械など）の３次元形状データ等が格納されている。
【００１６】
また、グラフィック制御回路を動作させて、それら３次元モデルで定義された諸物体をシミュレーションを行なう３次元空間（以下、「シミュレーション空間」という）内で表示させるためのプログラム、諸設定値等が格納されている。ここで、シミュレーション空間内での諸物体（３次元モデル）の配置位置／姿勢は、ワークセルのデータで定義される。ワークセルは、シミュレーション対象とされるロボットシステムの配置単位で、シミュレーション対象とされるロボットシステムに含まれる物体（ロボット、ワーク、周辺機器等の３次元モデル）を指定し、それら指定された各物体の初期位置／姿勢を指定するデータを含む。ワークセルの定義内容の変更は、例えばキーボード／マウスを操作して随時可能である。
【００１７】
本実施形態に関してここまで説明した上記の構成及び機能は一般的に周知のものである。本実施形態に係るシミュレーション装置には、これら構成及び機能に加えて、以下に説明する手順と処理内容で、グラフィックジョグ（詳細後述）によるロボット姿勢の検討、視覚センサを考慮に入れたシミュレーション及びそれらに関連する表示動作を行なわせるためのソフトウェアが装備されている。
【００１８】
本実施形態では、先ず「準備１」として、撮像装置の視野設定、ツール座標系の設定、検出基準点の設定等を行なう。図２はこの準備１の流れを記したフローチャートで、各ステップの要点は次の通りである。なお、以下の説明においては、特にことわりの無い限り、「ロボット」、「ワーク」、「撮像装置」等の呼称は、それぞれ各物体の３次元モデルのことを指すものとする。
【００１９】
ステップＳ１；シミュレーション装置上で、ワークセルを定義する。例えば、撮像装置を搭載したロボット、ワーク等を仮配置したワークセルの雛形を外部のＣＡＤ装置（図示省略）で予め用意しておき、これを通信通信インターフェイスを介して一旦シミュレーション装置に取り込む。そして、画面上で必要な修正、追加、削除等を行なって、本実施形態でシミュレーション対象とするワークセルを定める。勿論、他の方法、例えば既存の類似したワークセルのデータを他の電子データ記憶媒体（パーソナルコンピュータのハードディスク、フレクシブル磁気ディスク等）から取り込んで良いし、シミュレーション装置上で新たに作成しても良い。
【００２０】
図３は、これらいずれかの方法で定めらたワークセルに従って配置（初期配置）を示す。なお、ディスプレイは、「画面１」と「画面２」を１画面上に同時に並べて表示できるものとする。ここで、「画面２」は後述する「撮像装置による取得画像の表示」のための専用画面であり、図３のような表示を含む一般的な表示には「画面１」で行なわれる。図３の表示画面（画面１）においては、符号１、２、３は順にロボット、視覚センサの撮像装置（同ロボットに搭載）、ワークを示している。
【００２１】
また、符号２１は、撮像装置２に定義されているカメラ中心点を表わし、符号Ａはカメラ中心点を通る光軸（視野中心線）の方向を破線矢印で表わしている。なお、このステップＳ１完了以後は、随時撮像装置２から見える画像を画面２に表示することが可能になる。画面２による表示の詳細について後述する。
【００２２】
ステップＳ２；撮像装置２の視野の３次元形状（視体積）を定義する。そのために、例えばキーボードから、視体積の高さｈ0 、幅ｄ、長さｌのデータを入力する。ここで、ｈ0 は実際に使用することを考えている撮像装置（実機）の最適の撮像距離とし、ｄ、ｌにはその機種の仕様書のデータあるいはそこから簡単な幾何学計算で得られるデータを採用する。即ち、通常、仕様書には視野の３次元形状を特定するに必要十分なデータはなんらかの形で記載されているので、それを利用すれば良い。
【００２３】
高さｈ0 、幅ｄ、長さｌのデータを入力すると、画面１に図４に示したような視体積を表わす視体積モデル３０の表示がなされる。図４において、視野モデルにおけるカメラ（撮像装置）２のカメラ中心点２２は、四角錐形状の視体積の頂点に対応する点で、符号Ｂはカメラ中心点２２を通る視野中心線の方向を表わしている。この視野中心線Ｂ上で、カメラ中心点２２からｈ0 だけ下った点を「注視点」と定義する。注視点の位置は、カメラ中心点２２と視野中心線Ｂが決まれば、一意的に決まり、且つ、随時簡単に計算できる。
【００２４】
ステップＳ３；ワークセル中の撮像装置（図３の画面中の撮像装置２）に、ステップＳ２で定義された視体積モデル３０を合体（付属）させる。この合体（付属）は、図３で符号２１で示したカメラ中心点（カメラモデルのカメラ中心点）２１に視野モデルのカメラ中心点２２を一致させ、且つ、図３で符号Ａで示した視野中心線Ａに視野モデルの視野中心線Ｂを一致させるように行なう。視野中心線Ｂ周りの視体積の姿勢については、図４に示した視野モデルにおける撮像装置２の姿勢と整合するように設定される。
【００２５】
これらのための計算は、シミュレーション装置内部で行なわれる。そして、合体結果を織り込んだ画像が「画像１」に図５（ａ）に示した如く表示される（但し、符号２４が表わす検出基準点は、次のステップＳ４で表示される）。
このように、撮像装置の視野が３次元形状で表示されることにより、視覚センサで検出可能な範囲が直感的に把握できるようになる。また、同図に例示されているように、ワーク３と視野の位置／姿勢関係も容易に把握できる。
【００２６】
ステップＳ４；ロボットのツール座標系を定義する。本実施形態では、図５（ｂ）に示したように、上述した注視点２３にツール座標系の原点（ツール先端点）が一致するようにツール座標系を定義する。ツール座標系のＺ軸（Ｚtl）の方向は、視野中心線Ａの方向と一致させるものとし、ツール座標系のＸ軸（Ｘtl）及びＹ軸（Ｙtl）の方向は、例えば視野の幅ｄの方向及び長さ方向にそれぞれ一致するように、設定される。これらのための計算は、シミュレーション装置内部で行なわれる。このようにして定義されたツール座標系（ツール先端点を原点とする座標系）は、後述する「グラフィックジョグ」で活用される。
【００２７】
ステップＳ５；ワーク３に関する検出基準点を設定する。この検出基準点は、後述する「グラフィックジョグ」で利用される点で、一般には、撮像対象としてのワーク３を代表する点で、例えば実際の作業（実機を用いた作業）において最も重要な撮像箇所に対応する点を指定する。指定は、図５（ｃ）に示したような座標系（以下、「検出基準座標系」という）を定義する形で行なう。そのために、先ず図５（ａ）に示した画面（但し、検出基準点２４は未表示）上で、例えばマウスを用いて先ず座標系の原点２４をポイント指定する。
【００２８】
検出基準座標系のＸ軸（Ｘdt）及びＹ軸（Ｙtl）の方向は、Ｘ軸（Ｘdt）及びＹ軸（Ｙtl）の方向はシミュレーション空間に定義されている座標系のＸ軸、Ｙ軸の方向と一致させるものとする。検出基準座標系が設定されると、図５（ａ）の画面中にその原点（検出基準点）２４が表示される。なお、設定されたツール座標系や検出基準座標系の表示に際しては、図５（ｂ）、（ｃ）に示したような座標系をグラフィックで表示しても良い。また、場合によっては、１つのワークに対して２個以上の検出基準座標系（検出基準点）を設定しても良い。更に、ワークが複数の場合、ワーク毎に１個以上の検出基準座標系を設定するケースもあり得る。
【００２９】
以上のステップＳ１〜ステップＳ５で、「準備１」が完了する。但し、定義したワークセル中に撮像装置を搭載したロボットが複数存在する場合には、必要に応じて、各ロボット毎に上記と同様の準備を行なう。その際に、アプリケーション（ロボットシステムが行なう作業内容）に応じて、複数のロボットで兼用できるデータ（例えば視体積のデータ）は適宜共用する。
【００３０】
次に、本実施形態では準備１に引続き「グラフィックジョグ」を利用して、撮像に関連したロボット姿勢の検討を行なう。図６はグラフィックジョグに関連する手順を記したフローチャートで、各ステップの要点は次の通りである。
ステップＴ１；グラフィックジョグを行なうロボットを指定する。図３に示したように、ロボット（撮像装置搭載）が単一（ロボット１）の場合はそれを指定する。定義したワークセル中に複数のロボットが存在する場合には、それらの中から１つをディスプレイ画面上でマウス等を使って指定する。
【００３１】
ステップＴ２；グラフィックジョグの移動目標とする検出基準点を指定する。図３に示したように、検出基準点が単一（検出基準点２３）の場合はそれを指定する。定義したワークセル中に複数の検出基準点が存在する場合には、それらの中から１つをディスプレイ画面上でマウス等を使って指定する。  
ステップＴ３；グラフィックジョグの処理を実行する。これは画面１上で、ロボットのシミュレーション空間内での移動を行なうもので、その目標点は、ステップＳ２で指定された検出基準点とする。ここでは、前述したステップＳ４で設定されたツール先端点２３を検出基準点２４に一致させるような移動をロボット１に行なわせる。換言すれば、ロボット１のツール座標系（図５（ｂ）参照）を検出基準座標系（図５（ｃ）参照）に一致させるような移動をロボット１に行なわせる。
【００３２】
このロボット移動の様子は、画面１でアニメーション形式で表示される。その際、撮像装置２もロボット１と一体で移動し、前述のステップＳ３で撮像装置２に取り付けられた視体積モデル３０も同一の動きをする。図７における画面１は、このグラフィックジョグの移動が完了する少し前における表示画像を表わしている。図示されているように、ツール先端点（即ち、撮像装置２の注視点）２３は検出基準点２４の近傍まで到達しているが、一致には至っていない。グラフィックジョグの移動が完了した状態では、ツール先端点２３が検出基準点２４に一致する。
【００３３】
なお、前述したように、ツール先端点２３及び検出基準点２４は、それぞれツール座標系及び検出基準座標系（図５（ｂ）、（ｃ）参照）の原点であり、グラフィックジョグ完了時には、両座標系の姿勢も一致する。即ち、Ｘtl軸とＸdt軸、Ｙtl軸とＹdt軸、Ｚtl軸とＺdt軸がそれぞれ同方向を向く。図７では図示を省略したが、この座標系の姿勢一致の様子を重ねて表示しても良い。
【００３４】
以上説明したグラフィックジョグは、ロボットの姿勢検討を行なう上で有用である。例えば、撮像装置２の注視点に設定したツール先端点２３を検出基準点２４に一致させた時のロボット姿勢に無理がないか、あるいは周辺物体との干渉可能性はどうかをチェックすることで、ワークセルが定めているロボットの配置位置／姿勢の適否が評価できる。もしも、ロボットの配置位置／姿勢に問題（例えばワークとロボットが離れ過ぎ、あるいは、ロボットベースの向きが不適など）があれば、ワークセルにおけるロボットの配置位置／姿勢を修正したり、ワークの位置／姿勢や撮像装置の取付位置／姿勢を変える形で、ワークセルを修正する。この修正は、グラフィックジョグで模されている検出基準点２４へのロボット１の検出姿勢が適正なものとなるまで行なわれる。そのために、必要に応じて、上記した「準備１」と「グラフィックジョグ」の処理を繰り返して行なう。
【００３５】
ここで、画面２による「撮像装置２から見える画像の表示」について説明しておく。既述の通り、前記ステップＳ１の完了以後は、撮像装置２から見える画像を画面２に表示することが可能になっている。即ち、ステップＳ１完了時には、シミュレーション空間内でカメラ中心点２１（乃至２２）を頂点とする視体積モデル３０の位置／姿勢とロボット１の位置／姿勢の関係は確定しており、また、ワーク３等の位置／姿勢もワークセルのデータで既知となっている。従って、ロボット１の位置／姿勢を与えれば、視体積モデル３０に対応して視野に捉えられる物体の３次元位置データから、撮像装置２から見える画像を計算で求めることができる。この計算は、例えば撮像装置２にピンホールカメラのモデルを適用した写像計算とすることができる。なお、撮像装置のこの種の写像のシミュレーションを行なうソフトウェア自体は周知であるから、詳細説明は省略する。
【００３６】
どの時点で、画面２の表示を行なわせるかは任意であるが、ここでは、グラフィックジョグの実行時に表示を行なうものとすれば、例えば図７中の画面２に示したような表示画面が得られることになる（図３、図５では画面２は非表示を例示）。図７中の画面２では、画面１に表示した画面に対応して、ツール先端点（即ち、撮像装置２の注視点）２３が検出基準点２４の近傍にある状態が表示されている。グラフィックジョグの移動が完了した状態では、当然、ツール先端点２３が検出基準点２４に一致した状態が表示される。
【００３７】
次に、ロボット移動指令とともに、同ロボット移動指令に関連して視覚センサを利用した移動経路補正を行なうための指令を含むようなロボット動作プログラムに従ったシミュレーションについて説明する。本実施形態では、上記準備１と、グラフィックジョグによるワークセルの修正、あるいは、修正不要であればワークセルが適正であることの確認が完了した状態で、先ず図８のフローチャートに示した手順に従って「準備２」を行なう。各ステップの要点は次の通りである。
【００３８】
ステップＵ１；上述の過程を経て用意されたワークセルの配置を画面１に表示させる。ここで、画面１に表示される画像は、例えば図５に示したようなもので、表示画像には、ロボット１、撮像装置２、ワーク３及び視体積モデル３０の画像が含まれている。前述したグラフィックジョグを利用してワークセルが修正されていれば、修正後の配置が表示される。
【００３９】
ステップＵ２；動作シミュレーションを行なうプログラムを指定する。指定は、例えばプログラム一覧を画面１中に分割表示させて、その中から１つをマウスで指定する。ここでは、視覚センサを考慮したシミュレーションを行なうので、ロボット移動指令とともに、同ロボット移動指令に関連して視覚センサを利用した移動経路補正を行なうための指令（以下、「視覚センサ準拠補正指令」という）を含むようなロボット動作プログラムの１つを指定する。
【００４０】
ステップＵ３；視覚センサ準拠補正指令に対応するロボット移動経路の補正量を設定する（以下、単に「補正量設定」という）。ここでは、一例として、図９に示したように、教示点Ｑ１（Ｘ1,Ｙ1,Ｚ1;Ｐ1,Ｗ1,Ｒ1 ）から教示点Ｑ２（Ｘ2,Ｙ2,Ｚ2;Ｐ2,Ｗ2,Ｒ2 ）への直線移動について、教示点Ｑ２の位置をＱ２’（Ｘ2+ΔＸ2,Ｙ2+ΔＹ2,Ｚ2+ΔＺ2;Ｐ2+ΔＰ2,Ｗ2+ΔＷ2,Ｒ2+ΔＲ2 ）に変更する補正量ΔＱ２（ΔＸ2,ΔＹ2,ΔＺ2;ΔＰ2,ΔＷ2,ΔＲ2 ）を設定する。このＱ１→Ｑ２（補正後はＱ１→Ｑ２’）の経路移動は、次に説明するシミュレーションのフローチャート（図１０参照）中のステップＶ６でのイエス出力〜ステップＶ１０で用いられる。
【００４１】
このようにして準備２が完了したら、図１０のフローチャートに記した手順で「動作プログラムシミュレーション」を実行する。各ステップの要点は次の通りである。なお、ここでは、このシミュレーション実行中はディスプレイの画面２は非表示を維持するものとする。
【００４２】
ステップＶ１；図１１に例示したように、画面１に視体積モデル３０を非表示とした画像を表示させる。  
ステップＶ２；指定されている動作プログラムの行数Ｎを読み込む。  
ステップＶ３；動作プログラムを起動する。  
ステップＶ４；行数指標ＩをＩ＝１に初期設定する。
【００４３】
ステップＶ５；動作プログラムのＩ行目を読み込む。  
ステップＶ６；視覚センサ準拠補正指令（ロボット移動経路補正のための視覚センサの検出指令で撮像指令を含む）であるか否か判断する。イエスであればステップＶ７へ進み、ノーであればステップＶ１０へ進む。  
ステップＶ７；画面１の表示を、図１２に例示したような視体積モデル３０を表示した画像に切り替える。これにより、オペレータは視覚センサ準拠補正指令が出力されたことを視覚的に把握できる。
【００４４】
ステップＶ８；設定されている補正量を読みだして、ロボットの移動位置を補正する。ここでは、当該行で指定されている移動位置が前述した教示点Ｑ２であるとし、その位置をＱ２’に変更する。即ち、補正量ΔＱ２（ΔＸ2,ΔＹ2,ΔＺ2;ΔＰ2,ΔＷ2,ΔＲ2 ）を読み出して、Ｑ２（Ｘ2,Ｙ2,Ｚ2;Ｐ2,Ｗ2,Ｒ2 ）をＱ２’（Ｘ2+ΔＸ2,Ｙ2+ΔＹ2,Ｚ2+ΔＺ2;Ｐ2+ΔＰ2,Ｗ2+ΔＷ2,Ｒ2+ΔＲ2 ）に変更する。なお、ここで、画面１におけるワーク３の表示位置／姿勢を図１３に示したように、対応する補正量ΔＱ２だけ変更することもできる。また、ワーク治具など別の周辺物体があれば、その表示位置／姿勢を併せて変更することもできる。
【００４５】
ステップＶ９；画面１における視体積モデル３０を非表示に戻す。  
ステップＶ１０；ロボット１をシミュレーション空間内で移動させる。こここでは、Ｑ１（Ｘ1,Ｙ1,Ｚ1;Ｐ1,Ｗ1,Ｒ1 ）からＱ２’（Ｘ2+ΔＸ2,Ｙ2+ΔＹ2,Ｚ2+ΔＺ2;Ｐ2+ΔＰ2,Ｗ2+ΔＷ2,Ｒ2+ΔＲ2 ）へロボット１が移動する。その様子は、画面１にアニメーション形式で表示される。但し、ステップＶ６から直接ステップＶ１０へ進んだ場合（視覚センサ準拠補正指令なし）の場合は、通常の態様で、その行の命令を実行する。
【００４６】
ステップＶ１１；最終行であるか否か判断する。イエスであれば処理を終了する。ノーであればステップＶ１２へ進む。  
ステップＶ１２；行指標Ｉを１アップして、ステップＶ５へ戻る。
【図面の簡単な説明】
【００４７】
【図１】本発明の実施形態に係るシミュレーション装置の概略構成をブロック図で示したものである。
【図２】本発明の実施形態で行なわれる準備１の流れを記したフローチャートである。
【図３】本発明の実施形態で定義されたワークセルにおける配置を表示画面（画面１）で示したものである。
【図４】撮像装置の視野積の３次元形状（視体積）の設定について説明する図である。
【図５】撮像装置の視体積をワークセル中に組み入れた後に行なわれるツール先端点及び検出基準点の設定について説明する図で、（ａ）はディスプレイの表示画像を表わし、（ｂ）、（ｃ）はそれぞれツール座標系と検出基準座標系を示している。
【図６】本発明の実施形態で行なわれるグラフィックジョグの流れを記したフローチャートである。
【図７】グラフィックジョグ完了の少し前のディスプレイの表示画像を表わしている。
【図８】本発明の実施形態で行なわれる準備２の流れを記したフローチャートである。
【図９】補正量の設定について説明する図である。
【図１０】本発明の実施形態で行なわれる動作プログラムのシミュレーションの処理の流れを記したフローチャートである。
【図１１】動作プログラムのシミュレーションの過程で、撮像指令が出されていない時のディスプレイの表示画像を表わしている。
【図１２】動作プログラムのシミュレーションの過程で、撮像指令が出されている時のディスプレイの表示画像を表わしている。
【図１３】補正量の設定に対応したワークの位置／姿勢の変更について説明する図である。
【符号の説明】
【００４８】
１  ロボット（３次元モデル）
２  撮像装置（カメラ；３次元モデル）
３  ワーク（３次元モデル）
３ａ  補正量対応移動前のワーク（３次元モデル）
３ｂ  補正量対応移動後のワーク（３次元モデル）
２１  カメラ中心点（カメラモデル）
２２  カメラ中心点（視体積モデル）
２３  注視点（ツール座標原点；第１の基準点）
２４  検出基準点（第２の基準点）
３０  視体積モデル
【図１】
2005135278.tif 000003
【図２】
2005135278.tif 000004
【図３】
2005135278.tif 000005
【図４】
2005135278.tif 000006
【図５】
2005135278.tif 000007
【図６】
2005135278.tif 000008
【図７】
2005135278.tif 000009
【図８】
2005135278.tif 000010
【図９】
2005135278.tif 000011
【図１０】
2005135278.tif 000012
【図１１】
2005135278.tif 000013
【図１２】
2005135278.tif 000014
【図１３】
2005135278.tif 000015