(57)【要約】【課題】作業の効率が高いシミュレーション装置、このシミュレーション装置の結果に基づきロボットを制御するロボット制御装置およびかかるロボット制御装置により制御されるロボットを提供すること。【解決手段】ロボットを仮想した仮想ロボットの動作を行うシミュレーション装置であって、前記ロボットの作業対象物を仮想した仮想対象物の外形が有する複数の線分を特定する処理部を備え、前記仮想対象物のデータは、第１形式から前記第１形式よりもデータ量が１／１０以下に圧縮された第２形式に変換されており、前記処理部は、前記複数の線分のうちの選択された線分に基づいて前記仮想ロボットを動作させることを特徴とするシミュレーション装置。【選択図】図３
2018020412.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを仮想した仮想ロボットの動作を行うシミュレーション装置であって、
前記ロボットの作業対象物を仮想した仮想対象物の外形が有する複数の線分を特定する処理部を備え、
前記仮想対象物のデータは、第１形式から前記第１形式よりもデータ量が１／１０以下に圧縮された第２形式に変換されており、
前記処理部は、前記複数の線分のうちの選択された線分に基づいて前記仮想ロボットを動作させることを特徴とするシミュレーション装置。
【請求項２】
前記第２形式は、前記第１形式のデータ量の１／１００以下である請求項１に記載のシミュレーション装置。
【請求項３】
前記第２形式は、ＸＶＬ形式である請求項１または２に記載のシミュレーション装置。
【請求項４】
前記処理部は、前記選択された線分上にある教示点における前記仮想ロボットの位置および姿勢を設定する機能と、設定された前記仮想ロボットの位置および姿勢を表示するような信号を出力する機能とを有する請求項１ないし３のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記教示点での前記仮想ロボットの姿勢の設定を変更可能である請求項４に記載のシミュレーション装置。
【請求項６】
前記教示点での前記仮想ロボットの位置の設定を変更可能である請求項４または５に記載のシミュレーション装置。
【請求項７】
前記選択された線分に基づいた前記仮想ロボットの動作の設定経路を生成可能であり、生成した前記設定経路の位置を変更可能である請求項１ないし６のいずれか１項に記載のシミュレーション装置。
【請求項８】
前記選択された線分に基づいた前記仮想ロボットの動作の設定経路を生成可能であり、生成した前記設定経路の縮小および拡大の少なくとも一方を行うことが可能である請求項１ないし７のいずれか１項に記載のシミュレーション装置。
【請求項９】
前記設定経路が円弧を含む場合、前記円弧の中心を変えずに前記円弧の半径を変えることにより、前記設定経路の縮小および拡大の少なくとも一方を行うことが可能である請求項８に記載のシミュレーション装置。
【請求項１０】
請求項１ないし９のいずれか１項に記載のシミュレーション装置によるシミュレーション結果に基づいてロボットを制御することを特徴とするロボット制御装置。
【請求項１１】
請求項１０に記載のロボット制御装置によって制御されることを特徴とするロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、ロボット制御装置およびロボットに関するものである。
【背景技術】
【０００２】
従来から、実物のロボット（実機）を用いずに、仮想空間内における仮想ロボットを用いて実機による作業等をシミュレーションする技術が知られている。かかるシミュレーションを行う装置では、仮想ロボットの他に、周辺機器等の３次元のＣＡＤ（computer aided design）データを取り込み、実物の周辺機器を仮想した仮想周辺機器を仮想空間内に配置する。これにより、ロボットのオフラインティーチング、周辺機器のレイアウト確認および周辺機器とロボットとの衝突確認等の検証が行われている。
【０００３】
このようなシミュレーション装置の一例が、特許文献１に開示されている。特許文献１に係るシミュレーション装置では、シミュレーション装置とは別のＣＡＤ装置から読み込んだワーク（対象物）の３次元モデルと、シミュレーション装置に予め記録されたロボットの３次元モデルとを用いて、ワークに対するロボットのオフラインティーチングを行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−１５０２２０公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、周辺機器やワーク等の構成が複雑であると、３次元のＣＡＤデータの容量は例えば数ＧＢｙｔｅにも達する場合がある。そのようなデータをシミュレーション装置に読み込むと時間がかかり、また、読み込み後のシミュレーションの動作が重い。また、低スペックのＰＣ（パーソナルコンピューター）によっては、応答できず、制御不能になるという不具合が生じる。このような不具合の対策として、例えば、ＣＡＤデータをメカＣＡＤで削除して軽量化する方法が考えられる。しかし、この方法では、作業に時間がかかり、また、作業者の負担も大きい。そのため、シミュレーション装置による作業効率が低下するという問題があった。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題を解決するためになされたものであり、以下により実現することが可能である。
【０００７】
本発明のシミュレーション装置は、ロボットを仮想した仮想ロボットの動作を行うシミュレーション装置であって、
前記ロボットの作業対象物を仮想した仮想対象物の外形が有する複数の線分を特定する処理部を備え、
前記仮想対象物のデータは、第１形式から前記第１形式よりもデータ量が１／１０以下に圧縮された第２形式に変換されており、
前記処理部は、前記複数の線分のうちの選択された線分に基づいて前記仮想ロボットを動作させることを特徴とする。
【０００８】
このような本発明のシミュレーション装置によれば、仮想対象物のデータを読み込む時間や読み出す時間等を大幅に削減することができる。また、不要なデータを手作業で削除する作業を省くことができる。また、線分の情報を基にして仮想ロボットの教示点（ティーチングポイント）や設定経路を生成することができ、また、これらを生成する作業を比較的簡単に行うことができる。さらに、教示点を用いて仮想ロボットの動作プログラムを作成することができるため、大量の教示点と仮想ロボットの動作命令とを組み合わせたプログラムの記述作業の工数を著しく減らすことができる。このようなことから、本発明のシミュレーション装置による作業効率を高めることができる。
【０００９】
本発明のシミュレーション装置では、前記第２形式は、前記第１形式のデータ量の１／１００以下であることが好ましい。
【００１０】
これにより、データを読み込む時間や読み出す時間等を大幅に削減することができ、よって、シミュレーション装置による作業効率をより高めることができる。
【００１１】
本発明のシミュレーション装置では、前記第２形式は、ＸＶＬ形式であることが好ましい。
【００１２】
このようなＸＶＬ（eXtensible Virtual world description Language）形式であることで、データを読み込む時間や読み出す時間等を大幅に削減することができる。
【００１３】
本発明のシミュレーション装置では、前記処理部は、前記選択された線分上にある教示点における前記仮想ロボットの位置および姿勢を設定する機能と、設定された前記仮想ロボットの位置および姿勢を表示するような信号を出力する機能とを有することが好ましい。
【００１４】
これにより、教示点における仮想ロボットの位置および姿勢（具体的には、ロボットアーム先端の位置および姿勢）を表示部を介して作業者が視認することができ、作業中における仮想ロボットと周辺機器との干渉等の有無を容易に検討することができる。
【００１５】
本発明のシミュレーション装置では、前記教示点での前記仮想ロボットの姿勢の設定を変更可能であることが好ましい。
【００１６】
これにより、仮想ロボットと周辺機器との干渉等の有無に応じて、作業中における仮想ロボットの最適な姿勢を設定することができる。
【００１７】
本発明のシミュレーション装置では、前記教示点での前記仮想ロボットの位置の設定を変更可能であることが好ましい。
【００１８】
これにより、作業内容に応じて、教示点における仮想ロボットの最適な位置を設定することができる。
【００１９】
本発明のシミュレーション装置では、前記選択された線分に基づいた前記仮想ロボットの動作の設定経路を生成可能であり、生成した前記設定経路の位置を変更可能であることが好ましい。
これにより、作業内容に応じて、最適な設定経路を生成することができる。
【００２０】
本発明のシミュレーション装置では、前記選択された線分に基づいた前記仮想ロボットの動作の設定経路を生成可能であり、生成した前記設定経路の縮小および拡大の少なくとも一方を行うことが可能であることが好ましい。
これにより、作業内容に応じて、最適な設定経路を設定することができる。
【００２１】
本発明のシミュレーション装置では、前記設定経路が円弧を含む場合、前記円弧の中心を変えずに前記円弧の半径を変えることにより、前記設定経路の縮小および拡大の少なくとも一方を行うことが可能であることが好ましい。
【００２２】
これにより、作業内容に応じて、円弧状（曲線状）を含む設定経路を容易に設定および変更することができる。
【００２３】
本発明のロボット制御装置は、本発明のシミュレーション装置によるシミュレーション結果に基づいてロボットを制御することを特徴とする。
【００２４】
これにより、より適正なロボットの制御を行うことができるロボット制御装置を提供することができる。
【００２５】
本発明のロボットは、本発明のロボット制御装置によって制御されることを特徴とする。
これにより、より適正に動作するロボットを提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明の好適な実施形態に係るロボットを示す図である。
【図２】図１に示すロボット制御装置およびロボットのシステム構成図である。
【図３】本発明の好適な実施形態に係るシミュレーション装置のシステム構成図である。
【図４】表示部が有する画面に表示されるウィンドウの一例を示す図である。
【図５】仮想オフラインティーチングの設定の流れを示すフローチャートである。
【図６】仮想対象物を説明するための図である。
【図７】線分の記憶の際に用いられるウィンドウを示す図である。
【図８】線分の記憶の際に用いられるウィンドウを示す図である。
【図９】設定経路の補正を説明するための図である。
【図１０】ポイントファイルのウィンドウを示す図である。
【図１１】ポイントの補正の際に用いられるウィンドウを示す図である。
【図１２】ツールの位置や姿勢、教示点を確認しながら作業を進める際に用いられるウィンドウを示す図である。
【図１３】教示点における仮想塗布器具の座標系の表示の例を示す図である。
【図１４】ロボット動作プログラムを実行するために用いられるウィンドウを示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明のシミュレーション装置、ロボット制御装置およびロボットを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【００２８】
１．ロボットシステム
図１は、本発明の好適な実施形態に係るロボットを示す図である。図２は、図１に示すロボット制御装置およびロボットのシステム構成図である。なお、以下では、説明の都合上、図１中の下側（基台１１０側）を「基端」、その反対側を「先端」と言う。
【００２９】
図１に示すロボットシステム１００は、ロボット１と、本発明のロボット制御装置の一例であるロボット制御装置２とを有する。ロボット１の動作は、ロボット制御装置２により制御される。
【００３０】
［ロボット］
ロボット１は、６軸の垂直多関節ロボットであり、基台１１０と、基台１１０に接続されたロボットアーム１０（マニピュレーター）とを有する。また、ロボットアーム１０の先端部には、ハンド９１（ツール）が取り付けられている。また、図２に示すように、ロボット１は、図１に示すロボットアーム１０を駆動させる動力を発生させる複数の駆動部１２０および複数のモータードライバー１３０を備えている。
【００３１】
図１に示す基台１１０は、ロボット１をその作業する作業領域Ｘ内の所定の箇所に取り付ける部分である。また、本実施形態では、基台１１０にロボット制御装置２が内蔵されている。ただし、ロボット制御装置２は、ロボット１にその一部または全部が内蔵されていてもよく、また、ロボット１とは、別体であってもよい。
【００３２】
ロボットアーム１０は、第１アーム１１（アーム）と、第２アーム１２（アーム）と、第３アーム１３（アーム）と、第４アーム１４（アーム）と、第５アーム１５（アーム）と、第６アーム１６（アーム）とを有する。第１アーム１１は、基台１１０に接続されている。第１アーム１１と第２アーム１２と第３アーム１３と第４アーム１４と第５アーム１５と第６アーム１６とは、基端側から先端側に向ってこの順に連結されている。第６アーム１６の先端部には、ハンド９１が取り付けられている。また、本実施形態では、接着剤を塗布する塗布器具９２（付属部材）がハンド９１に取り付けられている。
【００３３】
第１アーム１１は、基台１１０に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として基台１１０に対して回動可能となっている。また、第２アーム１２は、第１アーム１１に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として第１アーム１１に対して回動可能となっている。また、第３アーム１３は、第２アーム１２に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として第２アーム１２に対して回動可能となっている。また、第４アーム１４は、第３アーム１３に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として第３アーム１３に対して回動可能となっている。また、第５アーム１５は、第４アーム１４に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として第４アーム１４に対して回動可能となっている。また、第６アーム１６は、第５アーム１５に連結された回動軸部材（図示せず）を有し、回動軸部材の中心軸を回動中心として第５アーム１５に対して回動可能となっている。
【００３４】
各アーム１１〜１６には、それぞれ、サーボモーター等のモーター（図示せず）および減速機（図示せず）を有する複数の駆動部１２０が設けられている。すなわち、図２に示すように、ロボット１は、各アーム１１〜１６に対応した数（本実施形態では６つ）の駆動部１２０を有している。そして、各アーム１１〜１６は、それぞれ、対応する駆動部１２０に電気的に接続された複数（本実施形態では６つ）のモータードライバー１３０を介してロボット制御装置２により制御されている。
【００３５】
また、各駆動部１２０には、例えば、エンコーダー、ロータリーエンコーダー等の角度センサー（図示せず）が設けられている。これにより、各駆動部１２０が有するモーターまたは減速機の回転軸の回転角度を検出することができる。
【００３６】
［ロボット制御装置］
ロボット制御装置２は、例えば、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）およびＲＯＭ（Read Only Memory）等を備えるパーソナルコンピューター（ＰＣ）等で構成することができる。
【００３７】
図２に示すように、ロボット制御装置２は、駆動制御部２１と、処理部２２と、記憶部２３と、Ｉ／Ｆ２４（インターフェース）とを有する。駆動制御部２１および処理部２２は、ＣＰＵで構成されており、駆動制御部２１は、複数の駆動部１２０の駆動を制御する機能を有し、処理部２２は、各種信号を基に各種演算等を行う機能を有する。記憶部２３は、ＲＡＭおよびＲＯＭで構成され、駆動部１２０の駆動（ロボット１の動作）を制御するロボットプログラムや、信号等の各種情報等を記憶または記録する機能を有する。Ｉ／Ｆ２４は、ハードウェアインターフェースおよびソフトウェアインターフェース等で構成されている。
【００３８】
また、図示はしないが、ロボット制御装置２は、上記機能を有すれば、上記構成以外の機器等を有していてもよい。例えば、ＨＤＤ（Hard Disk Drive）等の外部記憶装置、ディスプレイ等のモニターを有する表示部、および、作業者が前記ＰＣへの指示をするための入力部（例えばマウスやキーボード等）等を有していてもよい。
【００３９】
このようなロボット制御装置２は、後述する本発明のシミュレーション装置の一例であるシミュレーション装置５によるシミュレーション結果に基づいてロボット１を制御する。例えば、Ｉ／Ｆ２４または外部記憶装置を介してシミュレーション装置５によるシミュレーション結果を入手し、その結果に基づいて、記憶部２３に記憶されたロボットプログラムを処理部２２により修正等してもよい。また、ロボット制御装置２は、シミュレーション結果に基づいて作成され、または、修正されたロボットプログラムを入手してもよい。このように、ロボット制御装置２は、シミュレーション装置５による結果を利用しているため、より適正なロボット１の制御を行うことができる。
【００４０】
なお、ロボット制御装置２とシミュレーション装置５とは接続（有線または無線を問わず）されていてもよいし、接続されていなくてもよい。
【００４１】
また、前述したロボット１は、本発明のロボット制御装置の一例であるロボット制御装置２によって制御される。そのため、より適正な作業を行うロボット１を提供することができる。
【００４２】
このような構成のロボットシステム１００は、例えば、電子部品および電子機器等の対象物８０の把持および搬送や、対象物８０に対する接着剤の塗布等の作業で用いられる。
【００４３】
２．シミュレーション装置
図３は、本発明の好適な実施形態に係るシミュレーション装置のシステム構成図である。図４は、表示部が有する画面に表示されるウィンドウの一例を示す図である。
【００４４】
図３に示すシミュレーション装置５は、仮想ロボット１Ａの動作を行うことにより、実機であるロボット１の動作のシミュレーションを行う。
【００４５】
シミュレーション装置５は、例えば、ＣＰＵ（Central Processing Unit）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）およびＨＤＤ（Hard Disk Drive）等を備えるパーソナルコンピューター（ＰＣ）等で構成することができる。このシミュレーション装置５は、図１に示すように、作業領域Ｘの外部に設定されていることが好ましい。
【００４６】
図３に示すように、シミュレーション装置５は、ＣＰＵで構成された中央処理装置５１と、中央処理装置５１を中心にバス５７により相互に接続されたメインメモリー５２、ファイル装置５３、表示制御部５４、入力制御部５５およびＩ／Ｆ５６（インターフェース）とを有する。
【００４７】
また、シミュレーション装置５には、画面６１０（図４参照）を有するディスプレイ等のモニター（図示せず）を備える表示部６１（画像表示装置）と、マウスやキーボード等の入力部６２（入力装置）とがそれぞれ接続（無線通信を含む）されている。
【００４８】
なお、本実施形態では、表示部６１および入力部６２はシミュレーション装置５に属していないものとして説明するが、これらはシミュレーション装置５が有していてもよい。
【００４９】
中央処理装置５１は、例えば、メインメモリー５２やファイル装置５３に記憶または記録されている各種データやプログラム等に従って各種処理を行う。この中央処理装置５１は、変換部５０１、処理部５０２および実行部５０３を有する。変換部５０１は、ファイル形式の変換を行う。処理部５０２は、各種演算および設定等の処理を行う。実行部５０３は、処理部５０２による処理に基づいて各種プログラムの実行を行う。
【００５０】
Ｉ／Ｆ５６は、ハードウェアインターフェースおよびソフトウェアインターフェース等で構成されている。
【００５１】
メインメモリー５２は、ＲＡＭで構成され、各種データやプログラム等を記憶する機能を有し、中央処理装置５１の作業領域となる。
【００５２】
ファイル装置５３は、ＲＯＭおよびＨＤＤ等で構成され、各種データおよびプログラム等を一旦記録する機能を有する。ファイル装置５３には、ロボットシミュレータープログラムファイル５３１、第１形式のＣＡＤデータファイル５３２（中間ファイル）、第２形式のＣＡＤデータファイル５３４等を記録することができる。
【００５３】
ロボットシミュレータープログラムファイル５３１は、ロボット１の動作を制御するロボット制御装置２のロボットプログラムと同様のプログラムである。
【００５４】
また、第２形式のＣＡＤデータファイル５３４は、仮想対象物８０Ａの３次元モデルを含む。この第２形式のＣＡＤデータファイル５３４は、第１形式のＣＡＤデータファイル５３２（中間ファイル）を軽量化したファイルである。第１形式のＣＡＤデータファイル５３２は、シミュレーション装置５とは別のＣＡＤ装置（図示せず）で生成したＣＡＤデータファイルを互換性の目的等で変換したファイルである。
【００５５】
本実施形態では、ＣＡＤ装置にて第１形式のＣＡＤデータファイル５３２の変換を行い、シミュレーション装置５にて第１形式のＣＡＤデータファイル５３２をそれよりもデータ量の少ない第２形式のＣＡＤデータファイル５３４に変換している。
【００５６】
前記の第２形式は、第１形式のデータ量の１／１０以下であり、１／１００以下であることが好ましい。これにより、データを読み込む時間や読み出す時間等を大幅に削減することができ、よって、シミュレーション装置５による作業効率をより高めることができる。
【００５７】
具体的には、前記のＣＡＤ装置を用いて生成したＣＡＤデータファイルの形式としては、例えば、ＳＯＬＤＷＯＲＫＳ形式等が挙げられる。また、前記の第１形式としては、ＩＧＥＳ形式、Ｓｔｅｐ形式、ＶＲＭＬ形式およびＤＸＦ形式等が挙げられる。また、前記の第２形式としては、ＸＶＬ（eXtensible Virtual world description Language）形式が挙げられる。第２形式がＸＶＬ形式であることで、データを読み込む時間や読み出す時間等を大幅に削減することができる。特に、複雑な構成の構造物（例えば、複雑な構成の周辺機器）のデータ等を読み込む場合に有効である。
【００５８】
ロボットシミュレータープログラムファイル５３１等の各種ファイルは、例えばＣＤ−ＲＯＭ等の記録媒体（図示せず）に格納されており、この記録媒体から提供される。なお、ロボットシミュレータープログラムファイル５３１等の各種ファイルは、記録媒体に格納されておらず、ネットワーク等を介して提供されてもよい。
【００５９】
表示制御部５４は、例えばグラフィックコントローラーで構成されており、表示部６１に接続されている。表示制御部５４は、表示部６１が有する画面６１０に各種操作画面等を表示させる機能を有する。例えば、表示制御部５４は、図４に示すように、画面６１０に、実機であるロボット１および対象物８０に対応（仮想）した仮想ロボット１Ａおよび仮想対象物８０Ａの画像を表示させる。
【００６０】
また、入力制御部５５は、マウスやキーボード等を有する入力部６２からの入力を受け付ける機能を有する。したがって、作業者は、入力部６２を用いてシミュレーション装置５に対して各種処理等の指示を行うことができる。
【００６１】
このようなシミュレーション装置５を用いることで、画面６１０上（仮想空間上）でロボット１を仮想した仮想ロボット１Ａの動作の確認および検証を行うことができる。また、シミュレーション装置５により、仮想ロボット１Ａに対して所定の作業を教示し、その教示された作業を検証することができる。そして、仮想ロボット１Ａの教示を基にすれば、実機であるロボット１のオフラインティーチングを行うことができる。このため、実機であるロボット１を用いずとも、実際のロボット１のオフラインティーチングおよび実際の作業におけるロボット１のサイクルタイム(装置の動作時間)等を検討することができる。
【００６２】
≪シミュレーション装置による教示≫
次に、上記のシミュレーション装置５による仮想ロボット１Ａの教示、すなわち仮想オフラインティーチングについて説明する。
【００６３】
図５は、仮想オフラインティーチングの設定の流れを示すフローチャートである。図６は、仮想対象物を説明するための図である。図７は、線分の記憶の際に用いられるウィンドウを示す図である。図８は、線分の記憶の際に用いられるウィンドウを示す図である。図９は、設定経路の補正を説明するための図である。図１０は、ポイントファイルのウィンドウを示す図である。図１１は、ポイントの補正の際に用いられるウィンドウを示す図である。図１２は、ツールの位置や姿勢、教示点を確認しながら作業を進める際に用いられるウィンドウを示す図である。図１３は、教示点における仮想塗布器具の座標系の表示の例を示す図である。図１４は、ロボット動作プログラムを実行するために用いられるウィンドウを示す図である。
【００６４】
なお、図４に示すように、仮想ロボット１Ａは、前述した実機であるロボット１に対応している。具体的には、仮想ロボット１Ａは、仮想基台１１０Ａと、仮想ロボットアーム１０Ａ（仮想マニピュレーター）と、仮想ハンド９１Ａ（仮想ツール）と、仮想塗布器具９２Ａ（仮想付属部材）とを有する。また、仮想ロボット１Ａの各部の符号は、それぞれ、実際のロボット１の対応する各部の符号の後に「Ａ」を付けて表記する。また、仮想ロボット１Ａの各部の名称は、それぞれ、実際のロボット１の対応する各部の名称の前に「仮想」を付けて表記する仮想対象物８０Ａについても同様である。
【００６５】
以下では、図５を参照しつつ、仮想ロボット１Ａが仮想対象物８０Ａに対して接着剤を塗布する作業の教示を例に説明する。教示の設定および教示された作業は、作業者による画面６１０に表示されたＧＵＩ（グラフィカルユーザーインターフェース）を用いた指示に基づいて行われる。
【００６６】
まず、処理部５０２は、ファイル装置５３に保存されているロボットシミュレータープログラムファイル５３１および第１形式のＣＡＤデータファイル５３２を読み込み（図５：ステップＳ１１）、仮想ロボット１Ａおよび仮想対象物８０Ａの各３次元モデルを画面６１０上に表示（出力）する。この読み込みは、作業者の入力部６２による画面６１０を介した指示を受けて行う。この処理により、画面６１０には、図４に示すようなウィンドウＷＤ、ＷＤ１が表示され、ウィンドウＷＤ１に仮想ロボット１Ａおよび仮想対象物８０Ａの各３次元モデルが表示される。
【００６７】
次いで、作業者による画面６１０を介した指示を受けて、変換部５０１は、第１形式のＣＡＤデータファイルをそれとは異なる第２形式のＣＡＤデータファイル５３４に変換する。処理部５０２は、第２形式のＣＡＤデータファイル５３４のデータに基づく仮想対象物８０Ａを画面６１０に表示する。これにより、図６に示すように、ウィンドウＷＤ１に第２形式のＣＡＤデータに基づく仮想対象物８０Ａが表示される。また、処理部５０２は、作業者による画面６１０を介した指示を受けて、第２形式のＣＡＤデータファイル５３４を記憶する処理を行う。
【００６８】
図６に示すように、仮想対象物８０Ａは、平面視形状が四角形のトレイ状（開口を有する）をなす。仮想対象物８０Ａの開口端は、４つの直線上の線分８１Ａ、８２Ａ、８３Ａ、８４Ａを有する。線分８１Ａと８３Ａとは互いに開口を介して対向し、線分８２Ａと８４Ａとは互いに開口を介して対向している。また、仮想対象物８０Ａの開口端は、線分８１Ａと線分８２Ａとを繋ぐ円弧状（曲線状）の線分８５Ａと、線分８２Ａと線分８３Ａとを繋ぐ円弧状の線分８６Ａと、線分８３Ａと線分８４Ａとを繋ぐ円弧状の線分８７Ａと、線分８４Ａと線分８１Ａとを繋ぐ円弧状の線分８８Ａと、を有する。本実施形態では、このような仮想対象物８０Ａの開口端に対して接着剤を仮想ロボット１Ａが塗布する作業の教示を行う。
【００６９】
次に、処理部５０２は、図７に示すようなウィンドウＷＤ２を表示し、線分の記憶の処理を行う（図５：ステップＳ１２）。ウィンドウＷＤ２を表示は、ウィンドウＷＤ１が有するメニューバーに表示された「CAD to Point」を作業者がマウス等の入力部６２で行ったクリック（指示）を受けて行う。また、線分の記憶は、仮想対象物８０Ａの開口端を作業者がマウス等の入力部６２で行ったクリック（指示）を受けて行う。
【００７０】
具体的には、先ず、作業者の指示を受けて、処理部５０２は、線分８１Ａを記憶する。また、線分８１Ａの一端および他端をそれぞれ教示点Ｐ８として記憶する。この際、処理部５０２は、図７に示すように、作業者が選択した線分８１Ａ上に選択したことを示す線状のポインターＭを表示し、２つの教示点Ｐ８にそれぞれポインターＭ１を表示する。また、処理部５０２は、ウィンドウＷＤ２を表示し、そのウィンドウＷＤ２内の「Selected Edge」のボックスＢ２０に、選択した線分８１Ａを示すナンバー「Edge1」を表示する。線分８２Ａ〜８８Ａについても上記と同様である。なお、円弧状をなす線分８５Ａ〜８８Ａについては、それぞれ、５つの教示点Ｐ８を記憶する。
【００７１】
作業者は、例えば、線分８１Ａから始まり、線分８５Ａと続いて線分８８Ａまで一周するように、すなわち仮想対象物８０Ａの開口端を反時計回りに一筆書きで一周するように全ての線分８１Ａ〜８８Ａを選択する。この選択に応じて、処理部５０２は、全ての線分８１Ａ〜８８Ａを記憶し、図８に示すように、ウィンドウＷＤ１に複数の教示点Ｐ８、複数のポインターＭ、Ｍ１を表示する。また、処理部５０２は、上記のような作業者の選択した順番に応じて、ウィンドウＷＤ２のボックスＢ２０に、線分８１Ａ〜８８Ａに対応するナンバーを順次表示する。すなわち、選択順に付番される。したがって、本実施形態では、線分８１Ａがナンバー「Edge1」に対応し、線分８５Ａがナンバー「Edge2」に対応し、線分８２Ａがナンバー「Edge3」に対応し、線分８６Ａがナンバー「Edge4」に対応し、線分８３Ａがナンバー「Edge5」に対応し、線分８７Ａがナンバー「Edge6」に対応し、線分８４Ａがナンバー「Edge7」に対応し、線分８８Ａがナンバー「Edge8」に対応している。なお、処理部５０２は、後に説明するポイントファイルを生成して出力する処理（ステップＳ１５）で、ボックスＢ２０に並んでいる順にポイントファイルを生成して出力する。
【００７２】
次に、処理部５０２は線分８１Ａ〜８８Ａの順番と、各線分８１Ａ〜８８Ａの向きを設定する（図５：ステップＳ１３）。これは、作業者によるウィンドウＷＤ２を介した指示を受けて行う。作業者は、ウィンドウＷＤ２の「Up」のボタンＢ２３と「Down」のボタンＢ２４とを用いて、線分８１Ａ〜８８Ａの順番を設定することができる。また、作業者は、ウィンドウＷＤ２の「Revers」のボタンＢ２１を用いて、各線分８１Ａ〜８８Ａの向きを設定することができる。なお、本実施形態では、作業者が全ての線分８１Ａ〜８８Ａを選択した後に、順番および向きの設定を行う場合について説明したが、作業者は、各線分８１Ａ〜８８Ａを選択する毎に、順番および向きの設定を行ってもよい。
【００７３】
このようにして、線分８１Ａ〜８８Ａに基づいた仮想ロボット１Ａの動作の設定経路、本実施形態では、仮想ロボットアーム１０Ａの先端の動作の設定経路が生成される。
【００７４】
次に、処理部５０２は、設定経路の補正を行う（図５：ステップＳ１４）。この補正では、設定経路の縮小および拡大の少なくとも一方を行う。例えば、図９に示すように、円弧状をなす線分８５Ａが円弧を含む場合、線分８５Ａの円弧の中心Ｏを変えずにその半径を小さくする。これにより、線分８５Ａの円弧を縮小した線分８５Ａ’の円弧を生成する。すなわち、線分８５Ａを線分８５Ａ’に補正する。この補正により、線分８５Ａに基づく５つの教示点Ｐ８も線分８５Ａ’に基づく５つの教示点Ｐ８’に補正される。
【００７５】
なお、拡大する場合は、円弧の半径を大きくすればよい。また、線分８６Ａ〜８８Ａについても前記線分８５Ａの処理と同様の処理を行うことができる。
【００７６】
また、前記のような補正に伴い、補正された円弧の両端のそれぞれに繋がる線分は、円弧の拡大または縮小に追従して位置が変わる。例えば、線分８５Ａが拡大されると、それに伴って、線分８１Ａ、８２Ａの位置が補正される。
【００７７】
また、以下では説明の便宜上、線分８５Ａ’および教示点Ｐ８’もそれぞれ線分８５Ａおよび教示点Ｐ８として説明および図示する。
【００７８】
また、本実施形態では、向きおよび順番の設定（ステップＳ１３）の後に、設定経路の補正（ステップＳ１４）を行っているが、設定経路の補正は、例えば、後述するポイントファイルの出力（ステップＳ１５）の後に行ってもよい。その場合には、設定経路の補正を行った後、ポイントファイルの上書きを行う。
【００７９】
次に、処理部５０２は、ポイントファイルを生成して出力する（図５：ステップＳ１５）。これは、図７に示すウィンドウＷＤ２の「ポイント登録」のボタンＢ２２を作業者がマウス等の入力部６２で行ったクリック（指示）を受けて行う。これにより、図１０に示すようなポイントファイルのウィンドウＷＤ３を表示する。このウィンドウＷＤ３には、各教示点Ｐ８における仮想ロボットアーム１０Ａの先端（具体的にはツールセンターポイント）における位置および姿勢（座標系）を示す群７１と仮想ロボットアーム１０Ａの位置および姿勢を示す群７２とが表示される。より具体的には、各ポイントの位置データ(Ｘ、Ｙ、Ｚ)と、ロール(Ｚ軸の回転)、ピッチ(Ｙ軸の回転)、ヨー（Ｘ軸の回転)によって表わされる姿勢データ(Ｕ、Ｖ、Ｗ)と、ローカル座標系と、仮想ロボットアーム１０Ａの姿勢（Hand、ElbowおよびWrist）と、Joint1とJoint4とJoint6のフラグ（J1Flag、J4Flag、J6Flag）とが表示される。また、ウィンドウＷＤ３の「Number」列が各教示点Ｐ８を示している。
【００８０】
ここで、ポイントが含まれる曲面が持っている法線ベクトル、ｕベクトル、ｖベクトル(なお、ｕ、ｖベクトルは平面をなす単位ベクトルである)から、Ｕ、Ｖ、Ｗの各値を自動的に算出してポイントファイルに出力する。また、ポイントが曲線に含まれている場合には、接線ベクトルおよび曲率ベクトルからＵ、Ｖ、Ｗの各値を自動で算出してポイントファイルに出力する。これらＵ、Ｖ、Ｗの各値は、ＣＡＤデータが持つポイント(頂点)の法線や接線から自動的に計算することができる。または、Ｕ、Ｖ、Ｗの各値は、仮想オフラインティーチングに入る前の仮想ロボット１Ａの姿勢(Ｕ、Ｖ、Ｗ)であってもよい。このＣＡＤデータが持つポイントから計算された値を用いるか、仮想オフラインティーチングに入る前の仮想ロボット１Ａの姿勢を用いるかは、例えばウィンドウＷＤ１に設けられたスイッチ等で切替ることができる。
【００８１】
また、このポイントファイルを生成して出力する際、繋がる線分同士で重複するポイントのうちいずれか一方は削除される。重複の判断基準としては、重複する２点の位置データ(Ｘ、Ｙ、Ｚ)および姿勢データ(Ｕ、Ｖ、Ｗ)を見比べて、許容誤差が所定値（例えば、０．００１ｍｍ）以下の場合、重複している点とみなす。
【００８２】
次に、処理部５０２は、ポイントを有効化する（図５：ステップＳ１６）。
次に、処理部５０２は、付属部材におけるポイント設定を行う（図５：ステップＳ１７）。ここで、上記ポイントファイルに出力された各値は、仮想ロボットアーム１０Ａの先端（より具体的にはツールセンターポイント）における座標系等を示している。そこで、本処理にて、上記ポイントファイルを基に、付属部材としての仮想塗布器具９２Ａの所定の箇所（本実施形態では先端）におけるポイントの設定を行う。言い換えれば、処理部５０２は、上記ポイントファイルに出力された各値を基にして、仮想ロボットアーム１０Ａの先端における設定経路を、仮想塗布器具９２Ａの先端における設定箇所に変更する。
【００８３】
作業者は、図１１に示すようなウィンドウＷＤ４が有する「Manually define tools」のボックスＢ４０の「Ｘ」列、「Ｙ」列、「Ｚ」列、「Ｕ」列、「Ｖ」列および「Ｗ」列に、所望の値を入力する。ボックスＢ４０の「Ｘ」列、「Ｙ」列、「Ｚ」列、「Ｕ」列、「Ｖ」列および「Ｗ」列に入力された数値は、図１０に示すポイントファイルの「Ｘ」列、「Ｙ」列、「Ｚ」列、「Ｕ」列、「Ｖ」列および「Ｗ」列に示された各数値に加える値である。すなわち、ボックスＢ４０に入力された数値分、対応するポイントファイルの「Ｘ」列、「Ｙ」列、「Ｚ」列、「Ｕ」列、「Ｖ」列および「Ｗ」列の数値が補正される。このような作業者によるボックスＢ４０内への入力を受け、処理部５０２はツールのポイント設定を行う。これにより、仮想塗布器具９２Ａの所定の箇所（本実施形態では先端）で仮想対象物９０Ａの表面をなぞる動作が設定される。なお、本処理の代わりに、前述したポイントファイルを直接編集したり、ポイントファイルのデータを例えば表計算ソフトにコピーして貼り付けて編集し、編集したデータを再度ポイントファイルに戻す処理を行ってもよい。このような方法でも、仮想塗布器具９２Ａの所定の箇所で仮想対象物８０Ａの表面をなぞる動作を設定することができる。
このような処理を経て、ロボット動作プログラムが生成される。
【００８４】
ここで、作業者による指示を受けて、処理部５０２は、図１２に示すように、例えばウィンドウＷＤ１に仮想塗布器具９２Ａの位置および姿勢を示す座標系７６を表示したり、仮想ロボット１Ａのベース座標系７５を表示する。また、仮想対象物８０Ａにおける各教示点Ｐ８を表示する。また、処理部５０２は、図１３に示すように、各教示点Ｐ８を表示することに加えて、各教示点Ｐ８における仮想塗布器具９２Ａの座標系７６を表示することができる。
【００８５】
そして、実行部５０３は、ロボット動作プログラムを実行（出力）する（図５：ステップＳ１８）。作業者は、図１４に示すようなウィンドウＷＤ５の「start」のボタンＢ５１をマウス等の入力部６２を用いてクリック（指示）する。この作業者による指示を受け、実行部５０３がロボット動作プログラムを出力（実行）することにより、仮想オフラインティーチングを実行することができる。この仮想オフラインティーチングの実行において、処理部５０２は、設定経路に沿った仮想塗布器具９２Ａの軌跡７７を表示することができる。
【００８６】
以上のようにして、仮想オフラインティーチングの設定および実行を行うことができる。
【００８７】
以上、シミュレーション装置５による仮想オフラインティーチングの設定および実行の一例を説明した。
【００８８】
以上説明したように、本発明のシミュレーション装置の一例であるシミュレーション装置５は、ロボット１を仮想した仮想ロボット１Ａの動作を行う装置であり、仮想対象物８０Ａのデータは、第１形式から第１形式よりもデータ量が１／１０以下に圧縮された第２形式に変換されている。また、シミュレーション装置５は、仮想対象物８０Ａの外形が有する複数の線分（外形を構成する複数の線分）を特定する処理部５０２を有する。そして、処理部５０２は、複数の線分のうちの選択された線分８１Ａ〜８８Ａに基づいて仮想ロボット１Ａを動作させる。このようなシミュレーション装置５によれば、仮想対象物８０Ａのデータを読み込む時間や読み出す時間等を大幅に削減することができる。また、不要なデータを手作業で削除する作業を省くことができる。また、シミュレーション装置５は、第１形式のＣＡＤデータファイル５３２が含む仮想対象物８０Ａ等の３次元ＣＡＤデータをインポートする機能を有する。さらに、インポートした第１形式のＣＡＤデータファイル５３２を第２形式のＣＡＤデータファイル５３４が含む仮想対象物８０Ａ等の３次元ＣＡＤデータに変換することができる。そして、変換した第２形式のＣＡＤデータに基づく仮想対象物８０Ａの外形を構成する輪郭を選択して各ポイントおよび各ポイントにおける座標系等を生成し、合わせて設定経路も生成できる機能を有する。そのため、本実施形態のように、線分８１Ａ〜８８Ａの情報を基にして仮想ロボット１Ａの複数の教示点Ｐ８（ティーチングポイント）や設定経路を生成することができ、その生成する作業を比較的簡単に行うことができる。また、別途ＣＡＤソフトやＣＡＤ／ＣＡＭソフト等を用意することを省くことができる。また、各ポイントを手作業でプログラムに記述する必要がなく効率的である。さらには、上述した手順により生成した教示点Ｐ８を用いた仮想ロボット１Ａの動作プログラムを作成することができるため、大量の教示点Ｐ８と仮想ロボット１Ａの動作命令とを組み合わせたプログラムの記述作業の工数を著しく減らすことができる。このようなことから、シミュレーション装置５による作業効率を高めることができる。
【００８９】
また、前述したように、処理部５０２は、選択された各線分８１Ａ〜８８Ａ上の教示点Ｐ８における仮想ロボット１Ａの位置および姿勢を設定する機能を有する。本実施形態では、線分８１Ａ〜８８Ａに基づく教示点Ｐ８に仮想塗布器具９２Ａの先端が位置したときの仮想塗布器具９２Ａの位置および姿勢（仮想ロボット１Ａの位置および姿勢に基づいた仮想塗布器具９２Ａの位置および姿勢）を設定している。また、設定された仮想ロボット１Ａの位置および姿勢（本実施形態では、仮想塗布器具９２Ａの位置および姿勢）を表示するような信号を出力する機能を有する。これにより、表示制御部５４を介して、仮想ロボット１Ａの位置および姿勢（本実施形態では、仮想塗布器具９２Ａの位置および姿勢）を表示部６１の画面６１０に表示させることができる。本実施形態では、図１３に示すように、仮想塗布器具９２Ａの位置および姿勢を座標系７６で示すことができる。これにより、作業者は、各教示点Ｐ８における仮想ロボット１Ａの仮想塗布器具９２Ａの位置および姿勢を表示部６１を介して視認することができる。それゆえ、仮想ロボット１Ａの作業中における仮想ロボット１Ａと周辺機器との干渉等の有無を容易に検討することができる。
【００９０】
本発明のシミュレーション装置では、教示点Ｐ８での仮想ロボット１Ａの姿勢（本実施形態では、仮想塗布器具９２Ａの姿勢）を変更可能である。また、教示点Ｐ８での仮想ロボット１Ａの位置（本実施形態では、仮想塗布器具９２Ａの位置）を変更可能である。具体的には、前述したように、作業者の図１１に示すウィンドウＷＤ４を用いた指示を受けて行う。これにより、仮想ロボット１Ａと周辺機器との干渉等の有無に応じて、作業中における仮想ロボット１Ａの最適な位置および姿勢を設定することができる。また、仮想空間上（画面６１０上）のウィンドウＷＤ４を用いて仮想塗布器具９２Ａの位置および姿勢を簡単に変更することができるため、順キネマのみでオフラインティーチングを行うことができ、逆キネマ演算をする必要が無いため、全て（複数）の解を求める必要がなく、負荷を低減でき、処理時間を短くすることができる。また、仮想塗布器具９２Ａの位置および姿勢を簡単に変更することができるため、実機であるロボット１のオフラインティーチングを行う前に、作業中における仮想ロボット１Ａの様々な位置および姿勢を簡単に検討することができ、有効である。
【００９１】
また、シミュレーション装置５では、選択された線分８１Ａ〜８８Ａに基づいて仮想ロボット１Ａの動作の設定経路を生成し、生成した設定経路の位置を変更可能である。具体的には、前述したように、シミュレーション装置５は、作業者による図１１に示すウィンドウＷＤ４を用いた指示に応じて、仮想ロボットアーム１０Ａの先端（仮想ロボットの所定の箇所）における設定経路を、仮想塗布器具９２Ａの先端（仮想ツールまたは仮想付属部材の所定の箇所）における設定箇所に変更することができる。これにより、作業内容や、ツールまたは付属部材の種類等に応じた最適な設定経路を生成することができる。
【００９２】
また、シミュレーション装置では、選択された線分８１Ａ〜８８Ａに基づいて仮想ロボット１Ａの動作の設定経路を生成し、生成した設定経路の縮小および拡大の少なくとも一方を行うことが可能である。特に、生成した設定経路が円弧をなす線分８５Ａ〜８８Ａを含む場合、円弧の中心を変えずに円弧の半径を変えることにより、設定経路の縮小および拡大の少なくとも一方を行うことが可能である。これにより、作業内容に応じて、円弧状（曲線状）の線分８５Ａ〜８８Ａを含む設定経路を容易に設定および変更することができる。
【００９３】
以上、本発明のシミュレーション装置、ロボット制御装置およびロボットについて、図示の実施形態に基づいて説明したが、本発明は、これらに限定されるものではなく、例えば、前述した実施形態の各部の構成は、同様の機能を発揮する任意の構成のものに置換することができ、また、任意の構成を付加することもできる。
【００９４】
また、前記実施形態では、ロボットの一例として、６軸の垂直多関節ロボットを例に説明したが、ロボットはこれに限定されず、例えば水平多関節ロボット等の他の形式のロボットであってもよい。
【００９５】
また、前記実施形態では、第１形式のＣＡＤデータファイルとしては、仮想対象物のデータを含むものを例に説明したが、第１形式のＣＡＤデータファイルは仮想対象物のデータ以外に周辺機器を仮想した仮想周辺機器のデータ等を含んでいてもよい。
【００９６】
また、前記実施形態では、第１の形式のＣＡＤデータファイルを読み込んだ後に、それよりデータ容量が小さい第２形式のデータファイルに変換したが、読み込む前に第２形式のデータファイルに変換してもよい。
【００９７】
また、前記実施形態における仮想ロボットのシミュレーション（仮想オフラインティーチングを含む）では、対象物に対する接着剤の塗布作業を行う場合を例について説明したが、例えば、研磨作業や溶接作業等の対象物等の物体の形状に沿う作業のシミュレーションを行ってもよい。
【符号の説明】
【００９８】
１…ロボット、１Ａ…仮想ロボット、２…ロボット制御装置、５…シミュレーション装置、１０…ロボットアーム、１０Ａ…仮想ロボットアーム、１１…第１アーム、１２…第２アーム、１３…第３アーム、１４…第４アーム、１５…第５アーム、１６…第６アーム、２１…駆動制御部、２２…処理部、２３…記憶部、２４…Ｉ／Ｆ、５１…中央処理装置、５２…メインメモリー、５３…ファイル装置、５４…表示制御部、５５…入力制御部、５６…Ｉ／Ｆ、５７…バス、６１…表示部、６２…入力部、７１…群、７２…群、７５…ベース座標系、７６…座標系、７７…軌跡、８０…対象物、８０Ａ…仮想対象物、８１Ａ…線分、８２Ａ…線分、８３Ａ…線分、８４Ａ…線分、８５Ａ…線分、８５Ａ’…線分、８６Ａ…線分、８７Ａ…線分、８８Ａ…線分、９１…ハンド、９１Ａ…仮想ハンド、９２…塗布器具、９２Ａ…仮想塗布器具、１００…ロボットシステム、１１０…基台、１１０Ａ…仮想基台、１２０…駆動部、１３０…モータードライバー、５０１…変換部、５０２…処理部、５０３…実行部、５３１…ロボットシミュレータープログラムファイル、５３２…ＣＡＤデータファイル、５３４…ＣＡＤデータファイル、６１０…画面、Ｂ２０…ボックス、Ｂ２１…ボタン、Ｂ２２…ボタン、Ｂ２３…ボタン、Ｂ２４…ボタン、Ｂ４０…ボックス、Ｂ５１…ボタン、Ｌ１…ドロップダウンメニュー、Ｍ…ポインター、Ｍ１…ポインター、Ｏ…中心、Ｐ８…教示点、Ｐ８’…教示点、Ｓ１１…ステップ、Ｓ１２…ステップ、Ｓ１３…ステップ、Ｓ１４…ステップ、Ｓ１５…ステップ、Ｓ１６…ステップ、Ｓ１７…ステップ、Ｓ１８…ステップ、ＷＤ…ウィンドウ、ＷＤ１…ウィンドウ、ＷＤ２…ウィンドウ、ＷＤ３…ウィンドウ、ＷＤ４…ウィンドウ、ＷＤ５…ウィンドウ、Ｘ…作業領域
【図１】
2018020412.tif 000003
【図２】
2018020412.tif 000004
【図３】
2018020412.tif 000005
【図４】
2018020412.tif 000006
【図５】
2018020412.tif 000007
【図６】
2018020412.tif 000008
【図７】
2018020412.tif 000009
【図８】
2018020412.tif 000010
【図９】
2018020412.tif 000011
【図１０】
2018020412.tif 000012
【図１１】
2018020412.tif 000013
【図１２】
2018020412.tif 000014
【図１３】
2018020412.tif 000015
【図１４】
2018020412.tif 000016