(57)【要約】【課題】仮想ロボットの動作を容易にかつ正確に把握することができるシミュレーション装置、ロボット制御装置およびロボットを提供すること。【解決手段】ロボットを仮想化した仮想ロボットによるシミュレーションを行うシミュレーション装置であって、前記シミュレーション上の空間における前記仮想ロボットとは異なる位置にある外部点に関する情報と、仮想対象物の外形が有する線分に関する情報とに基づいて、前記仮想ロボットで前記仮想対象物を保持した状態で前記仮想ロボットを動作させる動作命令を実行可能な制御部を備え、前記制御部は、前記仮想ロボットの動作において、前記仮想対象物上に前記外部点に基づいた第１軌跡を表示部に表示させる信号を出力することを特徴とするシミュレーション装置。【選択図】図１
2019034352.tif 000002
【特許請求の範囲】
【請求項１】
ロボットを仮想化した仮想ロボットによるシミュレーションを行うシミュレーション装置であって、
前記シミュレーション上の空間における前記仮想ロボットとは異なる位置にある外部点に関する情報と、仮想対象物の外形が有する線分に関する情報とに基づいて、前記仮想ロボットで前記仮想対象物を保持した状態で前記仮想ロボットを動作させる動作命令を実行可能な制御部を備え、
前記制御部は、前記仮想ロボットの動作において、前記仮想対象物上に前記外部点に基づいた第１軌跡を表示部に表示させる信号を出力することを特徴とするシミュレーション装置。
【請求項２】
前記制御部は、前記外部点に関する情報として、固定的に配置された前記外部点を原点とする外部座標系を用いる請求項１に記載のシミュレーション装置。
【請求項３】
前記第１軌跡は、前記外部点を原点とする外部座標系の所定軸と、前記仮想対象物との交点の軌跡である請求項１または２に記載のシミュレーション装置。
【請求項４】
前記制御部は、前記第１軌跡を表示する線の太さを変更可能である請求項１ないし３のいずれか１項に記載のシミュレーション装置。
【請求項５】
前記制御部は、前記仮想ロボットの動作において、前記仮想ロボットにおける所定部位に基づいた第２軌跡を表示させる信号を出力する出力命令を実行可能である請求項１ないし４のいずれか１項に記載のシミュレーション装置。
【請求項６】
請求項１ないし５のいずれか１項に記載のシミュレーション装置によるシミュレーション結果に基づいてロボットを制御することを特徴とするロボット制御装置。
【請求項７】
請求項６に記載のロボット制御装置によって制御されることを特徴とするロボット。
【請求項８】
ロボットを仮想化した仮想ロボットによるシミュレーションを行うシミュレーション装置であって、
プロセッサーを備え、
前記プロセッサーは、前記シミュレーション上の空間における前記仮想ロボットとは異なる位置にある外部点に関する情報と、仮想対象物の外形が有する線分に関する情報とに基づいて、前記仮想ロボットで前記仮想対象物を保持した状態で前記仮想ロボットを動作させる動作命令と、
前記仮想ロボットの動作において、前記仮想対象物上に前記外部点に基づいた第１軌跡を表示部に表示させる信号を出力する出力命令と、を実行可能であることを特徴とするシミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置、ロボット制御装置およびロボットに関する。
【背景技術】
【０００２】
従来から、ロボットアームを備えた産業用ロボットが、バリ取り等の加工作業や、接着剤等の塗布作業において用いられている。また、近年では、ロボットアームで加工工具を保持するのではなく、ロボットアームで加工対象である対象物を保持し、産業用ロボットの近傍に設置された加工工具に対して対象物を移動させることによって、対象物の加工を行う方法が普及している。このような方法によれば、対象物よりも大型な加工工具をロボットアームで持つために可搬重量の大きいロボットを用意するという必要がなく、また、加工器具の振動によって加工精度が低下してしまうという問題がない。さらには、１台のロボットで、対象物に対する加工と対象物の搬送との双方を行うことができるため、作業効率にも優れている。
【０００３】
また、従来から、実物のロボット（実機）を用いずに、ディスプレイ上に表示した仮想ロボットを用いて実機による作業をシミュレーションする技術が知られている。これにより、オフラインティーチングや、ロボットと周辺機器との衝突確認等の検証を行うことができる。
【０００４】
このようなシミュレーション装置を用いたオフラインティーチングの一例が、特許文献１に開示されている。特許文献１には、シミュレーション装置とは別のＣＡＤ（Computer Aided Design）装置から読込んだ対象物の３次元ＣＡＤデータからロボットの動作軌道を生成する技術が開示されている。かかる技術によれば、対象物の加工したい全ての箇所に対するティーチングポイントの生成を行わなくても、必要最小限の箇所に対するティーチングポイントの生成を行うことができる。そのため、ロボットの動作軌道の生成が容易となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−２３６５１０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術によれば、ディスプレイ上の特定の箇所に対象物を固定し、ロボットのロボットアーム先端に加工工具を装着して対象物を加工するロボットの動作のティーチングポイントを作成できる。しかし、特許文献１に記載の技術では、ディスプレイ上の特定の箇所に加工工具を固定し、ロボットアーム先端に対象物を装着し、ロボットで対象物を加工工具に対して移動させることで対象物を加工するロボット動作のティーチングポイントを作成できない。
【０００７】
また、シミュレーションにおいて、加工器具により対象物の所望の箇所を正確に加工（各種作業）できているか等を作業者がディスプレイ上で理解することが難しいという問題がある。作業者にとって使い勝手が良く、ディスプレイ上でのロボットの動作を視認し易いシミュレーション装置が望まれていた。
【課題を解決するための手段】
【０００８】
本発明は、前述した課題の少なくとも一部を解決するためになされたものであり、以下により実現することが可能である。
【０００９】
本適用例のシミュレーション装置は、ロボットを仮想化した仮想ロボットによるシミュレーションを行うシミュレーション装置であって、前記シミュレーション上の空間における前記仮想ロボットとは異なる位置にある外部点に関する情報と、仮想対象物の外形が有する線分に関する情報とに基づいて、前記仮想ロボットで前記仮想対象物を保持した状態で前記仮想ロボットを動作させる動作命令を実行可能な制御部を備え、前記制御部は、前記仮想ロボットの動作において、前記仮想対象物上に前記外部点に基づいた第１軌跡を表示部に表示させる信号を出力することを特徴とする。
【００１０】
このようなシミュレーション装置によれば、仮想対象物を持った仮想ロボットを仮想空間内で動作させることができる。さらに、作業者は表示部（例えばディスプレイ）を介して仮想ロボットの動作および第１軌跡を視認することができるため、作業者は、仮想ロボットによる作業を容易にかつ正確に把握することができる。
【００１１】
本適用例のシミュレーション装置では、前記制御部は、前記外部点に関する情報として、固定的に配置された前記外部点を原点とする外部座標系を用いることが好ましい。
【００１２】
これにより、外部座標系での線分の座標を基にして、仮想ロボットの動作命令を含む動作プログラムを作成して実行することができる。
【００１３】
本適用例のシミュレーション装置では、前記第１軌跡は、前記外部点を原点とする外部座標系の所定軸と、前記仮想対象物との交点の軌跡であることが好ましい。
【００１４】
これにより、例えば、仮想対象物に対して所定距離離間させた状態で、仮想ロボットとは異なる位置に設けられた仮想外部ツールで各種作業を行うことができる。
【００１５】
本適用例のシミュレーション装置では、前記制御部は、前記第１軌跡を表示する線の太さを変更可能であることが好ましい。
これにより、例えば作業者による第１軌跡の視認性を高めることができる。
【００１６】
本適用例のシミュレーション装置では、前記制御部は、前記仮想ロボットの動作において、前記仮想ロボットにおける所定部位に基づいた第２軌跡を表示させる信号を出力する出力命令を実行可能であることが好ましい。
【００１７】
これにより、作業者は仮想ロボットの動作および移動経路を容易に把握することができる。
【００１８】
本適用例のロボット制御装置は、本適用例のシミュレーション装置によるシミュレーション結果に基づいてロボットを制御することを特徴とする。
【００１９】
これにより、シミュレーション装置で作成した動作プログラムを用いてロボットに作業対象である対象物を持った状態で定められた適切な動作を行わせることができる。
【００２０】
本適用例のロボットは、本適用例のロボット制御装置によって制御されることを特徴とする。
【００２１】
これにより、ロボットは作業対象である対象物を持った状態で定められた適切な動作を行うことができる。
【００２２】
本適用例のシミュレーション装置は、ロボットを仮想化した仮想ロボットによるシミュレーションを行うシミュレーション装置であって、プロセッサーを備え、前記プロセッサーは、前記シミュレーション上の空間における前記仮想ロボットとは異なる位置にある外部点に関する情報と、仮想対象物の外形が有する線分に関する情報とに基づいて、前記仮想ロボットで前記仮想対象物を保持した状態で前記仮想ロボットを動作させる動作命令と、前記仮想ロボットの動作において、前記仮想対象物上に前記外部点に基づいた第１軌跡を表示部に表示させる信号を出力する出力命令と、を実行可能であることを特徴とする。
【００２３】
このようなシミュレーション装置によれば、仮想対象物を持った仮想ロボットを仮想空間内で動作させることができる。さらに、作業者は表示部（例えばディスプレイ）を介して仮想ロボットの動作および第１軌跡を視認することができるため、作業者は、仮想ロボットによる作業を容易にかつ正確に把握することができる。
【図面の簡単な説明】
【００２４】
【図１】第１実施形態に係るロボットシステムを示す図である。
【図２】図１に示すロボットシステムのブロック図である。
【図３】表示装置に表示される画面の一例を示す図である。
【図４】オフラインティーチングのフロー図である。
【図５】ステップＳ１３において表示装置に表示される画面を示す図である。
【図６】ステップＳ１３において表示装置に表示される画面を示す図である。
【図７】ステップＳ１３において表示装置に表示される画面を示す図である。
【図８】ステップＳ１３において表示装置に表示される画面を示す図である。
【図９】ステップＳ１４において表示装置に表示される画面を示す図である。
【図１０】ステップＳ１４において表示装置に表示される画面を示す図である。
【図１１】ステップＳ１４において表示装置に表示される画面を示す図である。
【図１２】ステップＳ１４において表示装置に表示される画面を示す図である。
【図１３】ステップＳ１６において表示装置に表示される画面を示す図である。
【図１４】ステップＳ１８において表示装置に表示される画面を示す図である。
【図１５】ステップＳ１８において表示装置に表示される画面を示す図である。
【図１６】軌跡の設定において表示装置に表示される画面を示す図である。
【図１７】表示装置に表示されるコマンドウィンドウを示す図である。
【図１８】複数の外部点を用いる例において表示装置に表示される画面を示す図である。
【図１９】複数の外部点を用いる例において表示装置に表示される画面を示す図である。
【図２０】複数の外部点を用いる例において表示装置に表示される画面を示す図である。
【図２１】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２２】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２３】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２４】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２５】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２６】仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【図２７】仮想対象物が外部ツールに衝突した場合の画面を示す図である。
【図２８】ロボットシステムの他の例を示す図である。
【図２９】ロボットシステムの他の例を示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明のシミュレーション装置、ロボット制御装置およびロボットを添付図面に示す好適な実施形態に基づいて詳細に説明する。
【００２６】
≪ロボットシステム≫
［第１実施形態］
図１は、第１実施形態に係るロボットシステムを示す図である。図２は、図１に示すロボットシステムのブロック図である。図３は、表示装置に表示される画面の一例を示す図である。また、図１には、互いに直交する３つの軸としてｘｒ軸、ｙｒ軸およびｚｒ軸が図示されており、各軸を示す矢印の先端側を「＋（正）」、基端側を「−（負）」とする。また、図１中のｚｒ軸方向を「鉛直方向」とし、ｘｒ−ｙｒ平面に沿った方向を「水平方向」とする。また、＋ｚｒ軸側を「上方」とし、−ｚｒ側を「下方」とする。
【００２７】
図１に示すロボットシステム１００は、ロボット１と、ロボット１の動作（駆動）を制御するロボット制御装置２と、ロボット制御装置２と通信可能なシミュレーション装置５と、を有する。また、ロボット１の近傍には、接着剤を塗布する塗布器具９１（外部ツール）が設置されている。
【００２８】
以下、ロボットシステム１００が有する各部を順次説明する。
〈ロボット〉
ロボット１は、いわゆる６軸の垂直多関節ロボットであり、例えば、精密機器等を製造する製造工程等で用いられ、精密機器や部品等の対象物８０の保持や搬送等を行う。ロボット１は、基台１１０と、基台１１０に接続されたロボットアーム１０（可動部）とを有する。ロボットアーム１０は、複数のアーム１１〜１６を有するマニピュレーター２０およびツール１７を有する。
【００２９】
基台１１０は、ロボット１を例えば床等の任意の設置箇所７０に取り付ける部分である。マニピュレーター２０は、アーム１１（第１アーム）、アーム１２（第２アーム）、アーム１３（第３アーム）、アーム１４（第４アーム）、アーム１５（第５アーム）、アーム１６（第６アーム）と、を有する。アーム１６にはツール１７（エンドエフェクター）が設けられている。これらアーム１１〜１６は、基台１１０側からツール１７側に向かってこの順に連結されている。各アーム１１〜１６は、隣り合うアームまたは基台１１０に対して回動可能になっている。ツール１７は、対象物８０を吸着するよう構成されている。なお、対象物８０は、ロボット１の作業対象である「対象物」の一例であり、本実施形態では、平面視形状が四角形をなすトレイ状の部材を例に用いている。
【００３０】
ここで、アーム１６は、円盤状をなしており、アーム１６の先端面の中心を所定点Ｐ０（所定部位）という。また、ツール１７の先端中心をツールセンターポイントＰという。
【００３１】
また、図２に示すように、ロボット１は、一方のアームを他方のアーム（または基台１１０）に対して回動させるモーターおよび減速機等を備える駆動部１３０を有する。モーターとしては、例えば、ＡＣサーボモーター、ＤＣサーボモーター等のサーボモーターを用いることができる。減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。また、ロボット１は、モーターまたは減速機の回転軸の回転角度を検出する角度センサー１４０を有する。角度センサー１４０は、例えばロータリーエンコーダー等を用いることができる。また、駆動部１３０および角度センサー１４０は、例えば各アーム１１〜１６に設けられており、本実施形態では、ロボット１は、６つの駆動部１３０および６つの角度センサー１４０を有する。また、ツール１７には、対象物８０を吸着するための吸着機構１７０（保持機構）が接続されている。
【００３２】
また、各駆動部１３０は、図示はしないが、例えば図１に示す基台１１０に内蔵されたモータードライバーと電気的に接続されている。このモータードライバーを介して各駆動部１３０はロボット制御装置２により制御されている。また、各角度センサー１４０もロボット制御装置２に電気的に接続されている。また、吸着機構１７０もロボット制御装置２によりその動作が制御されている。
【００３３】
以上、ロボット１の構成について簡単に説明した。このようなロボット１は、後述するロボット制御装置２によって制御される。これにより、ロボット１は、対象物８０を持った状態で、定められた適切な動作をすることができる。
【００３４】
なお、ツール１７（エンドエフェクター）は、対象物８０を保持（把持や吸着を含む）することが可能であれば、図示の構成に限定されない。例えば、「エンドエフェクター」は、対象物８０を把持するハンドであってもよい。また、ロボット１は、図示はしないが、例えばツール１７に加わる力（モーメントを含む）を検出する６軸力覚センサー等で構成された力検出装置を備えていてもよい。
【００３５】
〈塗布器具〉
図１に示す塗布器具９１は、ロボット１の可動範囲内、すなわちツール１７の可動範囲内に設定されている。塗布器具９１は、例えばディスペンサーで構成されており、接着剤を吐出するノズル９１１を有する。ここで、ノズル９１１の先端を、外部点Ｅ（外部制御点）とする。また、塗布器具９１は、ロボット制御装置２の制御の下、接着剤の吐出が制御されている。
【００３６】
〈ロボット制御装置〉
ロボット制御装置２は、ロボット１の動作を制御する。このロボット制御装置２は、ロボット１が有する各部の機能をつかさどるロボットコントローラーで構成されており、ロボット１およびシミュレーション装置５に対して通信可能に接続されている。
【００３７】
図２に示すように、ロボット制御装置２は、プロセッサーを備える制御部２１と、制御部２１に通信可能に接続されたメモリー等を備える記憶部２２と、外部インターフェース（Ｉ／Ｆ）を備える外部入出力部２３と、を含む。ロボット制御装置２の各構成要素は、種々のバスを介して相互通信可能に接続されている。
【００３８】
制御部２１は、記憶部２２に記憶された各種プログラム等を実行する。これにより、ロボット１の動作の制御や各種演算および判断等の処理を実現できる。
【００３９】
記憶部２２には、制御部２１により実行可能な各種プログラムが保存されている。また、記憶部２２には、外部入出力部２３で受け付けた各種データの保存が可能である。記憶部２２は、例えばＲＡＭ（Random Access Memory）等の揮発性メモリーや、ＲＯＭ（Read Only Memory）等の不揮発性メモリー等を含んで構成されている。なお、記憶部２２は、非着脱式に限らず、着脱式の外部記憶装置（図示せず）を有する構成であってもよい。
【００４０】
各種プログラムとしては、シミュレーション装置５から出力された動作プログラムや、動作プログラムの修正や変更をするプログラム等が挙げられる。各種データとしては、例えば、所定点Ｐ０の位置姿勢、各アーム１１〜１６の回動角度等に関するデータ、および、所定点Ｐ０とツールセンターポイントＰとの相対位置姿勢（相対値）に関するデータ等が挙げられる。
【００４１】
外部入出力部２３は、外部インターフェース（Ｉ／Ｆ）を備え、ロボット１およびシミュレーション装置５の各接続のために用いられる。
【００４２】
このようなロボット制御装置２は、後述するシミュレーション装置５によるシミュレーション結果（動作プログラム）に基づいて（用いて）ロボット１を制御する。これにより、シミュレーション装置５で作成した動作プログラムを用いて、ロボット１に作業対象である対象物８０を持った状態で、定められた適切な動作を行わせることができる。例えば、ロボット制御装置２の制御の下、前述したロボット１は、対象物８０を保持した状態で対象物８０を外部点Ｅに対して移動させることによって、対象物８０の例えば縁（四角形の開口端）に接着剤を塗布する作業を行うことができる。また、この際、ロボット制御装置２の制御の下で、塗布器具９１は、接着剤を対象物８０に対して所定のタイミングで吐出する。また、シミュレーション装置５で作成した動作プログラムを用いてロボット１を動作させることができるので、実機でのティーチング作業を省略することができる。そのため、作業者が実際にロボット１を移動させてティーチングすることに比べ、ティーチング時間を大幅に短縮することができる。
【００４３】
なお、ロボット制御装置２は、前述した構成に加えて、さらに他の構成が付加されていてもよい。また、ロボット制御装置２には、ディスプレイ等を有する表示装置や、例えばマウスやキーボード等の入力装置が接続されていてもよい。また、記憶部２２に保存されている各種プログラムやデータ等は、予め記憶部２２に記憶されたものであってもよいし、例えばＣＤ−ＲＯＭ等の記録媒体（図示せず）に格納されており、この記録媒体から提供されたものでもよいし、ネットワーク等を介して提供されたものであってもよい。
【００４４】
〈シミュレーション装置〉
シミュレーション装置５は、実機であるロボット１を仮想化した仮想ロボット１Ａを動作させ、実機であるロボット１の動作のシミュレーションを行う（図３等参照）。なお、仮想ロボット１Ａは、前述した実機であるロボット１に対応している（図１および図３参照）。具体的には、仮想ロボット１Ａは、仮想基台１１０Ａと、複数の仮想アーム１１Ａ〜１６Ａを有する仮想マニピュレーター２０Ａと仮想ツール１７Ａとを備える仮想ロボットアーム１０Ａと、仮想塗布器具９１Ａとを有する。また、仮想ロボット１Ａの各部の符号は、それぞれ、実際のロボット１の対応する各部の符号の後に「Ａ」を付けて表記する。また、同様に、対象物８０および塗布器具９１は、それぞれ、仮想対象物８０Ａおよび仮想塗布器具９１Ａとする（図６参照）。なお、ツールセンターポイントＰ、所定点Ｐ０および外部点Ｅについては「Ａ」を追加した表記を省略している。
【００４５】
図２に示すシミュレーション装置５は、例えばＰＣ（Personal Computer）等での種々のコンピューターで構成されており、ロボット制御装置２に対して通信可能に接続されている。
【００４６】
シミュレーション装置５は、プロセッサーを備える制御部５１と、制御部５１に通信可能に接続されたメモリー等を備える記憶部５２と、外部Ｉ／Ｆ（インターフェース）を備える外部入出力部５３と、を含む。シミュレーション装置５の各構成要素は、種々のバスを介して相互通信可能に接続されている。
【００４７】
制御部５１は、記憶部５２に記憶された各種プログラム等を実行する。これにより、仮想ロボット１Ａの動作の制御や各種演算および判断等の処理を実現できる。
【００４８】
記憶部５２には、制御部５１により実行可能な各種プログラムが保存されている。また、記憶部５２には、外部入出力部５３で受け付けた各種データの保存が可能である。記憶部５２は、例えばＲＡＭ（Random Access Memory）等の揮発性メモリーや、ＲＯＭ（Read Only Memory）等の不揮発性メモリー等を含んで構成されている。なお、記憶部５２は、非着脱式に限らず、着脱式の外部記憶装置（図示せず）を有する構成であってもよい。
【００４９】
各種プログラムとしては、仮想ロボット１Ａによるオフラインティーチング（ロボット１のティーチング作業を、実機であるロボット１を使用しないで行うティーチング）の設定および実行に関するプログラム等が挙げられる。当該プログラムには、仮想ロボット１Ａを動作させる動作命令や、表示装置３１に表示させる信号を出力する出力命令等が含まれる。各種データとしては、例えば、所定点Ｐ０の位置姿勢、各仮想アーム１１Ａ〜１６Ａの回動角度等に関するデータ、および、所定点Ｐ０とツールセンターポイントＰとの相対位置姿勢に関するデータ等が挙げられる。
【００５０】
外部入出力部５３は、外部Ｉ／Ｆ（インターフェース）を備え、ロボット制御装置２、表示装置３１および入力装置３２との各接続のために用いられる。したがって、外部入出力部５３は、作業者による入力装置３２の操作（指令）を受け付ける受付部としての機能を有する。また、外部入出力部５３は、表示装置３１のモニターに各種画面（例えば、図３の画面ＷＤ１等）に関する信号を出力する出力部としての機能を有する。
【００５１】
なお、シミュレーション装置５は、前述した構成に加えて、さらに他の構成が付加されていてもよい。また、記憶部５２に保存されている各種プログラムやデータ等は、予め記憶部５２に記憶されたものであってもよいし、例えばＣＤ−ＲＯＭ等の記録媒体（図示せず）に格納されており、この記録媒体から提供されたものでもよいし、ネットワーク等を介して提供されたものであってもよい。
【００５２】
〈表示装置および入力装置〉
図２に示す表示装置３１（表示部）は、ディスプレイを備えており、例えば図３に示す画面ＷＤ１等の各種画面を表示する機能を有する。したがって、作業者は、表示装置３１を介して仮想ロボット１Ａの動作等を確認することができる。
【００５３】
入力装置３２（入力部）は、例えばマウスやキーボード等を含んで構成されている。したがって、作業者は、入力装置３２を操作することで、シミュレーション装置５に対して各種処理等の指示を行うことができる。
【００５４】
なお、シミュレーション装置５には、表示装置３１および入力装置３２がそれぞれ１つ接続されていてもよいし、それぞれ複数接続されていてもよい。また、表示装置３１および入力装置３２の代わりに、表示装置３１および入力装置３２の機能を兼ね備えた表示入力装置（図示せず）を用いてもよい。表示入力装置としては、例えばタッチパネル等を用いることができる。
【００５５】
以上、ロボットシステム１００の基本的な構成について簡単に説明した。かかるロボットシステム１００は、シミュレーション装置５と、シミュレーション装置５によるシミュレーション結果（動作プログラム）に基づいてロボット１の動作の制御を行うロボット制御装置２と、ロボット制御装置２により制御されるロボット１と、を有する。このようなロボットシステム１００によれば、表示装置３１が有するディスプレイ上（シミュレーション上の空間）で仮想ロボット１Ａに対して所定の作業を教示（ティーチング）し、その教示された作業を検証することができる。そのため、実機であるロボット１を用いずとも、ロボット１による作業におけるサイクルタイム等を検討することができる。
【００５６】
≪オフラインティーチング≫
次に、シミュレーション装置５によるオフラインティーチングについて説明する。
図４は、オフラインティーチングのフロー図である。
【００５７】
以下では、仮想ロボット１Ａによる仮想対象物８０Ａに対する塗布作業についてのオフラインティーチングを例に説明する。具体的には、図１に示すロボット１と塗布器具９１とによって、対象物８０の開口端全体に接着剤を塗布する作業のシミュレーションを行う。また、その塗布作業における仮想ロボット１Ａの動作プログラムを作成する。
【００５８】
なお、オフラインティーチングは、制御部５１が記憶部５２に保存されているプログラムを実行することで実現される。また、オフラインティーチングは、表示装置３１に表示されるＧＵＩ（グラフィカルユーザーインターフェース）画面に対する作業者により入力装置３２を用いた操作指示（以下、単に「操作指示」ということもある）に基づいて行われる。
【００５９】
以下、図４を参照しつつ説明する。なお、制御部５１は、操作指示に応じて表示装置３１が有するディスプレイに図３に示す画面ＷＤ１を表示しておく。なお、制御部５１が各種画面等を表示するということは、外部入出力部５３を介して表示装置３１に各種画面等を表示させる指示（信号の出力）を行うことである。以下の説明でも同様である。また、画面ＷＤ１のパネル４２０には、仮想ロボット１Ａおよび仮想塗布器具９１Ａの３次元モデルが表示されている。
【００６０】
〈座標系の設定（図４：ステップＳ１１）〉
まず、制御部５１は、図３に示すようなベース座標系１１０Ｘ、ツール座標系１７Ｘおよび外部座標系９１Ｘを設定する。なお、ベース座標系１１０Ｘ、ツール座標系１７Ｘおよび外部座標系９１Ｘは、表示または非表示の選択が可能である。
【００６１】
ベース座標系１１０Ｘは、仮想ロボット１Ａの仮想基台１１０Ａを基準とした座標系であり、水平面に対してそれぞれ平行なｘｒ軸とｙｒ軸と、水平方向に対して直交し、かつ、鉛直上向きを正方向とするｚｒ軸とによって定まる３次元の直交座標系である。ベース座標系１１０Ｘは、仮想基台１１０Ａの図３中の下側の面の中心点を原点としている。ｘｒ軸に対する並進成分を「成分ｘｒ」とし、ｙｒ軸に対する並進成分を「成分ｙｒ」とし、ｚｒ軸に対する並進成分を「成分ｚｒ」とし、ｚｒ軸周りの回転成分を「成分ｕｒ」とし、ｙｒ軸周りの回転成分を「成分ｖｒ」とし、ｘｒ軸周りの回転成分を「成分ｗｒ」とする。
【００６２】
ツール座標系１７Ｘは、所定点Ｐ０を原点とした座標系であり、ツール１７の中心軸と一致するｚａ軸と、ｚａ軸に対して直交し、かつ互いに直交するｘａ軸およびｙａ軸とによって定まる３次元の直交座標系である。また、ｘａ軸に対する並進成分を「成分ｘａ」とし、ｙａ軸に対する並進成分を「成分ｙａ」とし、ｚａ軸に対する並進成分を「成分ｚａ」とし、ｚａ軸周りの回転成分を「成分ｕａ」とし、ｙａ軸周りの回転成分を「成分ｖａ」とし、ｘａ軸周りの回転成分を「成分ｗａ」とする。ここで、制御部５１は、ベース座標系１１０Ｘまたは図示しないワールド座標系に基づいてツール座標系１７Ｘを設定する。そのため、仮想ロボット１Ａは、自身の基準の座標系であるベース座標系１１０Ｘにおける仮想ツール１７Ａの位置姿勢（座標）を計算から求めることができる状態であると言える。
【００６３】
外部座標系９１Ｘは、外部点Ｅ（外部制御点）を原点とした座標系であり、仮想ノズル９１１Ａの中心軸と一致するｚｂ軸と、ｚｂ軸に対して直交し、かつ互いに直交するｘｂ軸およびｙｂ軸とによって定まる３次元の直交座標系である。また、ｘｂ軸に対する並進成分を「成分ｘｂ」とし、ｙｂ軸に対する並進成分を「成分ｙｂ」とし、ｚｂ軸に対する並進成分を「成分ｚｂ」とし、ｚｂ軸周りの回転成分を「成分ｕｂ」とし、ｙｂ軸周りの回転成分を「成分ｖｂ」とし、ｘｂ軸周りの回転成分を「成分ｗｂ」とする。ここで、制御部５１は、ベース座標系１１０Ｘまたは図示しないワールド座標系に基づいて外部座標系９１Ｘを設定する。そのため、仮想ロボット１Ａは、自身の基準の座標系であるベース座標系１１０Ｘにおける仮想塗布器具９１Ａの位置姿勢（座標）を計算から求めることができる状態であると言える。
【００６４】
なお、制御部５１は、１つの仮想ロボット１Ａの座標系だけでなく、他の複数の「仮想ロボットの座標系」の設定をすることができる。同様に、複数の「仮想ツールの座標系」の設定、および、複数の「仮想外部点の座標系」の設定を行うことができる。また、例えば、制御部５１は、「ツール座標系」として、所定点Ｐ０を原点としたツール座標系１７Ｘだけでなく、ツールセンターポイントＰを原点とした座標系を設定してもよい。
【００６５】
〈ＣＡＤデータの読込み（図４：ステップＳ１２）〉
次に、制御部５１は、仮想ロボット１Ａの作業対象である仮想対象物８０Ａの３次元モデルを読込み、記憶部５２に保存しておく（図６等参照）。
【００６６】
仮想対象物８０Ａの３次元モデルは、例えば、図示しないＣＡＤ装置を用いて生成された３次元のＣＡＤデータに基づくものである。ここで、仮想対象物８０Ａには、その幾何学的な中心を原点とした座標系８０Ｘが設定されているものとする（図６等参照）。この座標系８０Ｘは、仮想対象物８０Ａの底面に平行でかつ互いに直交するｘｃ軸とおよびｙｃと、底面に対して直交しているｚｃ軸とによって定まる３次元の直交座標系である。ｘｃ軸に対する並進成分を「成分ｘｃ」とし、ｙｃ軸に対する並進成分を「成分ｙｃ」とし、ｚｃ軸に対する並進成分を「成分ｚｃ」とし、ｚｃ軸周りの回転成分を「成分ｕｃ」とし、ｙｃ軸周りの回転成分を「成分ｖｃ」とし、ｘｃ軸周りの回転成分を「成分ｗｃ」とする。また、制御部５１は、ベース座標系１１０Ｘまたは図示しないワールド座標系と、仮想対象物８０Ａの座標系８０Ｘとの対応付けをする。これにより、仮想ロボット１Ａは、自身の基準の座標系であるベース座標系１１０Ｘにおける仮想対象物８０Ａの位置姿勢（座標）を計算から求めることができる状態となる。
【００６７】
なお、制御部５１は、１つの仮想対象物８０ＡのＣＡＤデータだけでなく、他の複数の「仮想対象物」に関するＣＡＤデータを読込むことができる。また、ステップＳ１２を行ってから、ステップＳ１１を行ってもよい。
【００６８】
〈仮想対象物の保持と位置および姿勢の調整（ステップＳ１３）〉
図５〜図８は、それぞれ、ステップＳ１３において表示装置に表示される画面を示す図である。
【００６９】
次に、制御部５１は、図３に示す画面ＷＤ１のツールバー４１０に表示されたアイコン４１ａに対する操作指示を受けると、図５に示すような画面ＷＤ２（「Select CAD Object and ECP」ダイアログ）を画面ＷＤ１上に重ねて表示する。
【００７０】
画面ＷＤ２は、ステップＳ１２において読込んだ複数のＣＡＤデータから１つを選択するためのリスト４２１（ドロップダウンリスト）、選択された仮想対象物の座標系を表示または非表示を選択するためのチェックボックス４２１１を有する。また、画面ＷＤ２は、仮想ロボットの選択をするためのリスト４２２、ツールの選択をするためのリスト４２３、選択されたツールのツール座標系の表示または非表示を選択するためのチェックボックス４２３１、外部点の選択をするためのリスト４２５および外部座標系の表示または非表示を選択するためのチェックボックス４２５１を有する。また、画面ＷＤ２は、選択されたツールのツール座標系に対する選択された仮想対象物の座標系との相対値（オフセット値）を設定する領域４２４（「Offset Form Selected Tool」）を有する。また、画面ＷＤ２は、選択された仮想対象物を選択されたツールに保持させるための「Register」のボタン４２４１を有する。
【００７１】
次いで、制御部５１は、画面ＷＤ２のリスト４２２、４２３に対して仮想ロボット１Ａおよび仮想ツール１７Ａを選択する操作指示およびチェックボックス４２３１をチェックする操作指示を受けて、ベース座標系１１０Ｘ、ツール座標系１７Ｘを表示させる（図６参照）。
【００７２】
また、制御部５１は、リスト４２５に対して仮想塗布器具９１Ａを選択する操作指示およびチェックボックス４２５１をチェックする操作指示を受けて、外部座標系９１Ｘを表示させる（図６参照）。
【００７３】
また、制御部５１は、リスト４２１に対して仮想対象物８０Ａを選択する操作指示およびチェックボックス４２１１をチェックする操作指示を受けて、仮想対象物８０Ａおよびその座標系８０Ｘを表示させる（図６参照）。なお、図６に示すように、仮想対象物８０Ａは、仮想ロボット１Ａと重ならず、かつ、仮想ロボット１Ａの近傍に表示されるよう設定されている。
【００７４】
次いで、制御部５１は、図６に示す画面ＷＤ２のボタン４２４１に対する操作指示を受けたら、仮想対象物８０Ａの座標系８０Ｘとツール座標系１７Ｘとを関連付ける（ひも付ける）。これにより、仮想対象物８０Ａは、仮想ツール１７Ａの移動とともに連動して移動する。
【００７５】
例えば、制御部５１は、仮想ツール１７Ａおよび仮想対象物８０Ａが図６に示す位置にあるときにボタン４２４１の操作指示を受けると、図６に示す仮想ツール１７Ａと仮想対象物８０Ａとの位置関係を維持したまま、仮想ツール１７Ａが矢印Ａ１方向に沿って移動したら、それに連動して仮想対象物８０Ａは矢印Ａ２方向に沿って移動する。
【００７６】
また、制御部５１は、座標系８０Ｘとツール座標系１７Ｘとを関連付けたら、画面ＷＤ２のボタン４２４２は非表示とし、代わりに「Update」のボタン４２４２を表示する（図７参照）。
【００７７】
ここで、本明細書では、座標系８０Ｘとツール座標系１７Ｘとを関連付けた状態を、仮想ツール１７Ａで仮想対象物８０Ａを保持している状態という。
【００７８】
次いで、制御部５１は、画面ＷＤ２の領域４２４が有する各相対値を選択（入力）する操作指示と、ボタン４２４１に対する操作指示とを受けたら、指示された各相対値に応じて仮想対象物８０Ａの表示位置を変更する（図８参照）。なお、領域４２４が有する各相対値は、具体的には各位置（ｘ,ｙ,ｚ）および各姿勢（Rｘ,Rｙ,Rｚ）に対して入力された値である。これにより、仮想対象物８０Ａの仮想ツール１７Ａの位置姿勢を変更することができ、図８に示すように、画面ＷＤ１上で、仮想対象物８０Ａの座標系８０Ｘの原点と所定点Ｐ０とを一致させることができる。その結果、図８に示すように、画面ＷＤ１上で、仮想ツール１７Ａで仮想対象物８０Ａを吸着により保持している状態を表すことができる。
【００７９】
〈線分の記憶と位置および姿勢の調整（ステップＳ１４）〉
図９〜図１２は、それぞれ、ステップＳ１４において表示装置に表示される画面を示す図である。なお、図９〜図１２では、各座標系（座標系８０Ｘ、ツール座標系１７Ｘ、ベース座標系１１０Ｘ、外部座標系９１Ｘ）の図示を省略している。また、後述する図１４、図１５、図１８〜図２７についても同様である。
このステップＳ１４では、作業者は、接着剤を塗布する箇所を選択する。
【００８０】
制御部５１は、図８に示す画面ＷＤ２が有する「Select Edge」のボタン４２６に対する操作指示を受けると、画面ＷＤ２を非表示にし、図９に示すような画面ＷＤ３（「CAD to Point for ECP」ダイアログ）を画面ＷＤ１上に重ねて表示させる。
【００８１】
画面ＷＤ３は、仮想対象物８０Ａの外形が有する四角形の開口端を構成する複数の線分８１のうち選択された線分８１に関する内容を表示等するための「Selected Edge」のボックス４３１と、線分８１の位置および姿勢の調整するためのボタン４３１１、４３１２、４３１３とを有する。なお、仮想対象物８０Ａの四角形の開口端は、直線状をなす４つの線分８１と、四角形の開口端の角部に位置し、直線状の線分８１同士を繋ぐ円弧状の４つの線分８１とで構成されている。また、画面ＷＤ３は、選択された線分８１のポイント分割数の設定を行うためのボックス４３２と、座標系８０Ｘでの選択された線分８１に対するオフセット値を設定する領域４３３（「Offset」）とを有する。
【００８２】
次いで、制御部５１は、画面ＷＤ１上の線分８１をマウスポインターＭＰで選択する操作指示を受けたら、選択された線分８１に関する情報を記憶部５２に記憶させる。また、制御部５１は、選択された線分８１上にポインターＭ（ポインターＭ０、Ｍ１）を表示装置３１に表示させる（図１０参照）。
【００８３】
例えば、制御部５１は、複数の線分８１のうち画面ＷＤ１の上側に表示されている直線状の線分８１ａを選択する操作指示を受けたら線分８１ａの一端および他端をそれぞれポイントとして記憶部５２に記憶させる。また、制御部５１は、線分８１ａ上に選択したことを示す線状のポインターＭ０を表示し、線分８１ａの一端および他端のそれぞれポインターＭ１を表示する。また、制御部５１は、画面ＷＤ３のボックス４３１に、選択した線分８１ａを示すナンバー「Edge1」を表示する。なお、オフラインティーチングの実行で、仮想塗布器具９１Ａが有する仮想ノズル９１１Ａを仮想対象物８０Ａに接着させながら接着剤を仮想対象物８０Ａに塗布する場合には、当該ポイントを、外部点Ｅが仮想対象物８０Ａをなぞる点として用いることができる。
【００８４】
また、他の直線状の線分８１および円弧状の線分８１についても上記と同様である。ただし、本実施形態では、円弧状の線分８１については、制御部５１は、５つのポイントを記憶し、５つのポインターＭ１を表示する（図１１参照）。なお、繋がる線分同士で重複するポイントのうちいずれか一方は後で削除される。
【００８５】
ここで、本実施形態では、仮想対象物８０Ａの開口端全体に接着剤を塗布するため、作業者は、開口端を構成する８つ全ての線分８１を選択する。したがって、制御部５１が、全ての線分８１を選択する操作指示を受けて全ての線分８１を記憶部５２に記憶させ、複数のポインターＭを画面ＷＤ１に表示すると、画面ＷＤ１上での仮想対象物８０Ａは図１１に示すように表される。また、制御部５１は、画面ＷＤ３のボックス４３１に、全ての線分８１を示すナンバー「Edge1〜8」を表示する。
【００８６】
次いで、制御部５１は、ボタン４３１１〜４３１３の操作指示を受けたら、受けた指示に応じて、ボックス４３１内に並んでいるナンバー「Edge1〜8」の表示順を変更する。この表示順は、後に説明するポイントファイルでのポイントの順番となる。なお、「Up」のボタン４３１２と「Down」のボタン４３１３とは、ナンバー「Edge1〜8」の順番を設定するために用いられ、「Revers」のボタン４３１１は、「Edge1〜8」の各矢印の向きを設定するために用いられる。
【００８７】
また、オフラインティーチングの実行で、仮想塗布器具９１Ａが有する仮想ノズル９１１Ａを仮想対象物８０Ａに接着させずに所定距離離間させながら接着剤を仮想対象物８０Ａに塗布する場合には、以下の処理をする。
【００８８】
具体的には、制御部５１は、画面ＷＤ３の領域４３３が有する各オフセット値に対する操作指示を受けたら、指示された各オフセット値に応じて、選択された線分８１に関するポインターＭの表示位置を変更する（図１２参照）。なお、領域４３３が有する各オフセット値は、具体的には各位置（ｘ,ｙ,ｚ）および各姿勢（Rｘ,Rｙ,Rｚ）に対して入力された値である。
【００８９】
例えば、図１２に示すように、制御部５１は、領域４３３の「Position X」に「２０ｍｍ」と選択（入力）する操作指示を受けたら、画面ＷＤ１の上側に表示されている線分８１ａのポインターＭ０をｚａ軸方向に（紙面手前側に）＋２０ｍｍオフセットさせた位置にあるポインターＭ０’表示する。また、制御部５１は、ポインターＭ０’の一端および他端をポイントとして記憶部５２に記憶させる。また、図示はしないが、他の線分８１に対しても同様である。当該ポイントは、所定距離離間させながら接着剤を仮想対象物８０Ａに塗布する場合に用いることができる。
【００９０】
〈簡易的な動作確認（ステップＳ１５）〉
次に、制御部５１は、図１２に示す画面ＷＤ３が有する「Preview」のボタン４３５に対する操作指示を受けたら、簡易的な動作確認を行う。簡易的な動作確認とは、具体的には、後述するポイントファイルへの出力前のメモリー上にあるポイントデータ(位置、姿勢、フラグ)を設定したポイントの順に、仮想ロボット１ＡをＣＰ(Continuous Path)動作させることである。ＣＰ動作は、ポイントを直線で補完して移動する動作である。ここで、簡易的な動作確認を実行できるのは、ステップＳ１４での位置および姿勢の調整した時点でポイントファイルの出力できる情報は既にメモリー内に持っているので、それを仮想ロボットＡ１の動作命令でつなぐことができるためである。
【００９１】
この簡易的な動作確認により、仮想ロボット１Ａに、後述するステップＳ１８における仮想ロボット１Ａの動作と同等の動作を行なわせることができる。そのため、ステップＳ１４で調整した位置および姿勢が仮想ロボット１Ａの動作範囲内であることを後述するステップＳ１６におけるポイントファイルに出力する前に、作業者は、画面ＷＤ１で確認することができる。それゆえ、作業者は、ポイントファイルに出力した後で動作範囲外であることに気付くよりも、作業の手戻りを少なくすることができる。
【００９２】
〈ポイントの出力（ステップＳ１６）〉
図１３は、ステップＳ１６において表示装置に表示される画面を示す図である。
【００９３】
次に、制御部５１は、図１２に示す画面ＷＤ３が有する「Export」のボタン４３４に対する操作指示を受けたら、図１３に示す画面ＷＤ４（「Export Points」ダイアログ）を表示する。画面ＷＤ４は、仮想ロボットの選択をするためのリスト４４１、生成するポイントファイルの保存ファイル名を選択するリスト４４２、ローカル座標系を選択するリスト４４６および最初のポイントを設定するリスト４４７を有する。
【００９４】
次いで、制御部５１は、画面ＷＤ４が有するリスト４４１に対して仮想ロボット１Ａを選択する操作指示およびリスト４４２に対して任意のポイントファイル名を選択する操作指示を受けた後、「ＯＫ」のボタン４４５に対する操作指示を受けたら、設定に基づいて、ポイントファイルにポイントデータを書き込む。具体的には、制御部５１は、既にメモリー上にあるポイントの位置および姿勢、ロボットアームの姿勢（Hand、ElbowおよびWrist）とFlagを、画面ＷＤ４のリスト４４６（「Local」）で設定したローカル座標系に変換し、リスト４２２（「Point file」）で設定したファイルに、リスト４４７（「Start number」）で設定したポイントから書き込む。
【００９５】
また、ポイントファイルは、ツール座標系での各ティーチングポイントにおける位置姿勢（座標）、および、仮想ロボットアーム１０Ａの位置姿勢等を含む。具体的には、ポイントファイルは、ティーチングポイントの位置データ(ｘａ，ｙａ，ｚａ)およびロール、ピッチ、ヨーによって表わされる仮想対象物８０Ａの姿勢データ(ｕａ，ｖａ，ｗａ)と、ローカル座標系と、仮想ロボットアーム１０Ａの姿勢（Hand、ElbowおよびWrist）と、Joint1とJoint4とJoint6のフラグ（J1Flag、J4Flag、J6Flag）を含む。
【００９６】
〈動作プログラムの生成（ステップＳ１７）〉
次に、制御部５１は、図示しないウインドウ（画面）に対する操作指示を受けて、動作プログラムの生成を行う。簡単に説明すると、制御部５１は、ポイントと、実際のアプリケーションで使うコマンドとを関連付けて（ひも付けて）、仮想ロボット１Ａが動作するプログラムを作成する。
【００９７】
〈動作プログラムの出力（ステップＳ１８）〉
図１４および図１５は、それぞれ、ステップＳ１８において表示装置に表示される画面を示す図である。図１６は、軌跡の設定において表示装置に表示される画面を示す図である。図１７は、表示装置に表示されるコマンドウィンドウを示す図である。
【００９８】
次に、制御部５１は、図示しないウインドウ（画面）に対する操作指示を受けたら、ステップＳ１７で生成した動作プログラムを実行（出力）する。これにより、画面ＷＤ１上でオフラインティーチングを実行することができる。そのため、作業者は、画面ＷＤ１上で仮想ロボット１Ａと仮想塗布器具９１Ａとによる塗布作業を視認することができる。なお、作業者は、動作プログラムを自由に編集してカスタマイズすることが可能である。
【００９９】
例えば、仮想ロボット１Ａは、図８に示すように仮想対象物８０Ａを保持した状態から図１４に示すように仮想対象物８０Ａを仮想塗布器具９１Ａの下方に位置させ、外部点Ｅに対して仮想対象物８０Ａを移動させる。具体的には、仮想ロボット１Ａは、外部点Ｅの直下に仮想対象物８０Ａの開口端を位置させ、開口端全体の上方を外部点Ｅがなぞるように仮想塗布器具９１Ａに対して仮想対象物８０Ａを移動させる。この際、仮想塗布器具９１Ａは仮想対象物８０Ａに対して接着剤を塗布する。
【０１００】
また、動作プログラムの実行において、制御部５１は、仮想対象物８０Ａに塗布された接着剤の軌跡Ｌ１を表示することができる（図１４および図１５参照）。本実施形態では、軌跡Ｌ１は、外部座標系９１Ｘのｚｂ軸と仮想対象物８０Ａとの交点の軌跡である。また、動作プログラムの実行において、制御部５１は、所定点Ｐ０の軌跡Ｌ２を表示することができる（図１５参照）。なお、図１５は、塗布作業が終了した状態を表示している。また、制御部５１は、軌跡Ｌ１、Ｌ２を仮想ロボット１Ａの動作と連動して表示する。また、制御部５１は、前述した簡易的な動作確認（ステップＳ１５）においても、同様に軌跡Ｌ１、Ｌ２を表示させることが可能である。
【０１０１】
また、制御部５１は、操作指示に応じて、記憶部５２に記憶された軌跡Ｌ１、Ｌ２の各種設定（例えば表示する軌跡Ｌ１、Ｌ２の各線の太さ等）が可能である。具体的には、制御部５１は、図１５に示す画面ＷＤ１のオブジェクトボックス４３０内のオブジェクト４３０２に対する選択指示を受けたら、図１６に示す画面ＷＤ６（「Simulator Settings」ダイアログ）を表示する。
【０１０２】
画面ＷＤ６は、軌跡Ｌ１の各種設定を行うための領域４４３と、軌跡Ｌ２の表示または非表示を選択するためのチェックボックス４４３１と、軌跡Ｌ２の各種設定を行うための領域４４４と、軌跡Ｌ２の表示または非表示を選択するためのチェックボックス４４４１とを有する。作業者は、画面ＷＤ６を用いて、軌跡Ｌ１、Ｌ２の各線の種類、線幅、色等を設定することができる。例えば、軌跡Ｌ１と軌跡Ｌ２とで、異なる線の種類を設定することで軌跡Ｌ１、Ｌ２の視認性を高めることができる。なお、図示はしないが、画面ＷＤ６は、各座標系の設定（線の種類等）を設定する領域等を有していてもよい。
【０１０３】
また、制御部５１は、操作指示に応じて、塗布作業の一連の動作だけでなく、単発動作を実行することができる。具体的には、制御部５１は、特定の箇所に対して所定点Ｐ０が位置するように仮想ロボット１Ａを移動させることができる。制御部５１は、図１６に示すような画面ＷＤ５（コマンドウィンドウ）に対する操作指示を受けたら、その指示を受けた箇所に所定点Ｐ０が位置するように仮想ロボット１Ａを移動させる。これにより、作業者は、現在の箇所から特定の箇所に所定点Ｐ０を移動させた場合の仮想ロボット１Ａの動作を確認することができる。
【０１０４】
以上のようにして、シミュレーション装置による教示（オフラインティーチング）の設定および実行を行うことができる。
【０１０５】
以上説明したように、シミュレーション装置５は、ロボット１を仮想化した仮想ロボット１Ａによるシミュレーションを行う装置である。また、シミュレーション装置５は、制御部５１（プロセッサー）を有する。制御部５１は、シミュレーション上の空間（表示装置３１のディスプレイ上に表示される）仮想ロボット１Ａとは異なる位置にある外部点Ｅ（外部制御点）に関する情報と、仮想対象物８０Ａの外形が有する線分８１（本実施形態では複数の線分８１）に関する情報とに基づいて、仮想ロボット１Ａで仮想対象物８０Ａを保持した状態で仮想ロボット１Ａを動作させる動作命令を実行可能である。また、制御部５１は、仮想ロボット１Ａの動作において（本実施形態では、ステップＳ１５、Ｓ１８において）、仮想対象物８０Ａ上に外部点Ｅに基づいた軌跡Ｌ１（第１軌跡）を表示装置３１（表示部）に表示させる信号を出力する出力命令を実行可能である。
【０１０６】
このようなシミュレーション装置５によれば、前述したように、仮想対象物８０Ａを持った仮想ロボット１Ａを表示装置３１が有するディスプレイに表示される画面ＷＤ１上で動作させることができる。さらに、作業者は表示装置３１を介して仮想ロボット１Ａの動作および軌跡Ｌ１を視認することができる。そのため、作業者は、仮想ロボット１Ａによる作業を容易にかつ正確に把握することができる。
【０１０７】
なお、前述した説明では、外部点Ｅは、仮想塗布器具９１Ａ（外部ツール）が有する所定の部位であったが、外部点Ｅは仮想ロボット１Ａと異なる箇所にあれば如何なる箇所にあってもよい。また、外部ツールとしては、仮想塗布器具９１Ａを用いているが、仮想対象物８０Ａに対して何らかの作業を行うものであればよく、仮想塗布器具９１Ａに限定されない。
【０１０８】
また、本実施形態では、前述したように、ＣＡＤデータを用いているため、ポイント設定を容易かつ迅速に行うことができ、動作プログラムを作成し易く、作業者にとって使い勝手も優れている。
【０１０９】
また、制御部５１は、外部点Ｅに関する情報として、固定的に配置された外部点Ｅ「外部制御点」を原点とする外部座標系９１Ｘを用いる。
【０１１０】
これにより、外部座標系９１Ｘに、線分８１が沿って動く、仮想ロボット１Ａの動作命令を含む動作プログラムを作成して実行することができる。
【０１１１】
また、前述したように、軌跡Ｌ１（第１軌跡）は、外部点Ｅ（外部制御点）を原点とする外部座標系９１Ｘの所定軸（本実施形態ではｚｂ軸）と、仮想対象物８０Ａとの交点の軌跡である。
【０１１２】
これにより、仮想対象物８０Ａに対して所定距離離間させた状態で、仮想塗布器具９１Ａにより塗布作業を行うことができる。なお、前述した説明では、所定軸は、ｚｂ軸であったが、ｚａ軸やｚｂ軸であってもよい。
【０１１３】
また、前述したように、制御部５１は、軌跡Ｌ１（第１軌跡）を表示する線の太さを変更可能である。
【０１１４】
これにより、線の太さを太くすることで、作業者による軌跡Ｌ１の視認性を高めたることができる。一方、線の太さを細くすることで、軌跡Ｌ１以外に他の表示（例えば軌跡Ｌ２）を相対的に高めることができる。
【０１１５】
また、制御部５１は、仮想ロボット１Ａの動作において、仮想ロボット１Ａにおける所定点Ｐ０（所定部位）に基づいた軌跡Ｌ２（第２軌跡）を表示させる信号を出力する出力命令を実行可能である。出力命令は、動作プログラムに含まれる。
【０１１６】
これにより、作業者は仮想ロボット１Ａの動作および移動経路を容易に把握することができる。また、制御部５１は、軌跡Ｌ２（第２軌跡）を表示する線の太さも軌跡Ｌ１と同様に変更可能である。
【０１１７】
〈変形例１〉
次に、複数の外部点Ｅを有する場合のオフラインティーチングについて説明する。
【０１１８】
図１８〜図２０は、複数の外部点を用いる例において表示装置に表示される画面を示す図である。
【０１１９】
以下では、仮想ロボット１Ａによる作業において、複数の外部点Ｅ（外部点Ｅ１〜Ｅ３）を切り替えることについて説明する。以下では、図１８〜図２０に示すように、楕円型の柱状をなす仮想対象物８３Ａに対する研磨作業を例に説明する。例えば、仮想ロボット１Ａが仮想対象物８３Ａを保持して、仮想研磨面９３１Ａを有する仮想研磨機９３Ａに対して仮想対象物８３Ａを移動させることによって、仮想対象物８３Ａの外表面の研磨作業を行うことについて説明する。また、前述したオフラインティーチングとの相違点を中心に簡単に説明する。
【０１２０】
まず、制御部５１は、外部点Ｅ１、Ｅ２、Ｅ３を設定し、各外部点Ｅ１、Ｅ２、Ｅ３を原点とする外部座標系（図示せず）をそれぞれ設定する（図４：ステップＳ１１）。また、制御部５１は、仮想対象物８３Ａの３次元モデルを読込み、仮想対象物８３Ａの座標系（図示せず）を設定し、記憶部５２に保存する（図４：ステップＳ１２）。次いで、制御部５１は、仮想対象物８３Ａの座標系とツール座標系１７Ｘとを関連付けて、仮想対象物８３Ａを仮想ツール１７Ａで保持させる（図４：ステップＳ１３）。
【０１２１】
次に、詳細な図示はしないが、制御部５１は、仮想対象物８３Ａの外表面を構成する複数の線分の記憶と位置および姿勢の調整を行い（図４：ステップＳ１４）、ティーチングポイントの設定を行う（図４：ステップＳ１５）。このティーチングポイントの設定において、制御部５１は、各外部点Ｅ１、Ｅ２、Ｅ３を原点とする外部座標系を基にしたポイントを設定する。すなわち、制御部５１は、３つの外部座標系を基にして３種類のポイント群を生成する。そして、制御部５１は、例えば、外部点Ｅ１に関するポイント群、外部点Ｅ２に関するポイント群および外部点Ｅ３に関するポイント群の順に設定した各位置での仮想ロボット１Ａの動作プログラムを生成する。これにより、研磨作業において、複数の外部点Ｅ１〜Ｅ３を継次的に切り替えることで、図１８〜図２０に示すように、仮想対象物８３Ａの加工箇所を変化させることができる。このような加工作業は、仮想研磨機９３Ａの仮想研磨面９３１Ａの全体を使用することで、加工精度を高めたい場合に有効である。
【０１２２】
このように、複数の外部点Ｅ１〜Ｅ３を設定し、外部点Ｅ１〜Ｅ３を継次的に切り替えることで、より多くの種々の作業についてのオフラインティーチングが可能となる。
【０１２３】
なお、前述した説明では、１つの仮想研磨機９３Ａ（仮想外部ツール）において３つの外部点Ｅ１〜Ｅ３を設定した場合を例に説明したが、外部点の数は特に限定されない。また、複数の外部ツールに対してそれぞれ外部点を設定してもよい。例えば、図示はしないが、粗研磨用研磨機および仕上げ用研磨機（２つの研磨機）に対してそれぞれ外部点を設定してもよい。これにより、２つの研磨機を用いた加工作業のオフラインティーチングを行うことができる。その場合には、粗研磨用研磨機における外部点の座標系と仕上げ用研磨機における外部点の座標系とを設定し、粗研磨用研磨機における外部点に関するポイント群および仕上げ用研磨機における外部点に関するポイント群の順に設定した各位置での仮想ロボット１Ａの動作プログラムを生成すればよい。このような加工作業は、最初に粗研磨用研磨機で研磨を行い、続いて、仕上げ用研磨機に移動して研磨を行うことで、加工精度を高めたい場合に有効である。
【０１２４】
≪仮想対象物の保持および解放≫
次に、仮想ロボット１Ａによる仮想対象物８０Ａの保持および解放について説明する。  図２１〜図２６は、それぞれ、仮想対象物の保持および解放の処理において表示装置に表示される画面を示す図である。
【０１２５】
表示装置３１のディスプレイ上で仮想対象物８０Ａの保持および解放を作業者による操作指示に応じて実行できることで、作業者は仮想ロボット１Ａの動作の検証、仮想塗布器具９１Ａを含む周辺機器等との衝突の検証、および、オフラインティーチングの動作確認等を行うことができる。そのため、作業者の使い勝手を向上させることができる。
【０１２６】
〈仮想対象物の保持〉
制御部５１は、図２１に示す画面ＷＤ１のオブジェクトボックス４３０内にあるオブジェクト４３０１のツリーアイテム４３０３（「ＣＡＤ１」）に対する選択指示を受けたら、選択されたツリーアイテム４３０３に応じた画面ＷＤ７（コンテキストメニュー）を画面ＷＤ１上に重ねて表示させる。図示では、「ＣＡＤ１」が仮想対象物８０Ａに対応しているものとする。
【０１２７】
次いで、制御部５１は、画面ＷＤ７の「Object settings」に対する選択指示を受けたら、図２２に示すように、画面ＷＤ８（「Object settings」ダイアログ）を画面ＷＤ１上に重ねて表示させ、かつ、画面ＷＤ１に仮想対象物８０Ａを描画させる。なお、図２２に示すように、仮想対象物８０Ａは、仮想ロボット１Ａと重ならず、かつ、仮想ロボット１Ａの近傍に表示されるよう設定されている。
【０１２８】
画面ＷＤ８は、仮想ロボットの選択をするためのリスト４５１、仮想ツールの選択をするためのリスト４５２、選択されたツールのツール座標系の表示または非表示を選択するためのチェックボックス４５２１、選択されたツールのツール座標系に対する仮想対象物８０Ａの座標系８０Ｘとの相対値（オフセット値）を設定する領域４５３（「Offset From Selected Tool」）を有する。また、画面ＷＤ８は、仮想対象物８０Ａを、選択されたツールに保持させるための「Register」のボタン４５４と、開放させるための「UnRegister」のボタン４５５と、を有する。
【０１２９】
次いで、制御部５１は、画面ＷＤ８のリスト４５１、４５２に対して仮想ロボット１Ａおよび仮想ツール１７Ａを選択する操作指示および「Register」のボタン４５４に対する操作指示を受けたら、仮想対象物８０Ａの座標系８０Ｘとツール座標系１７Ｘとを関連付ける（図２３参照）。これにより、仮想対象物８０Ａは、仮想ツール１７Ａの移動とともに連動して移動する。例えば、仮想ツール１７Ａが矢印Ａ３方向に沿って移動したら、それに連動して仮想対象物８０Ａは矢印Ａ４方向に沿って移動する。また、制御部５１は、座標系８０Ｘとツール座標系１７Ｘとを関連付けたら、画面ＷＤ８のボタン４５４は非表示とし、代わりに「Update」のボタン４５６を表示する（図２４参照）。
【０１３０】
また、制御部５１は、画面ＷＤ８の領域４５３が有する各相対値に対する操作指示を受けたら、指示された各相対値に応じて仮想対象物８０Ａの表示位置を変更する（図２４参照）。これにより、仮想対象物８０Ａの仮想ツール１７Ａの位置姿勢を変更することができる。そして、画面ＷＤ１上で、仮想対象物８０Ａの座標系８０Ｘの原点と所定点Ｐ０とを一致させることができる。その結果、仮想ツール１７Ａで仮想対象物８０Ａを吸着により保持している状態を表すことができる。
【０１３１】
このような処理により、仮想ロボット１Ａは、仮想対象物８０Ａを保持して移動させることができる（図２４および図２５参照）。なお、制御部５１は、仮想ロボットアーム１０Ａに対して所謂ドラッグ＆ドロップの操作指示を受けたら、その指示に応じて、仮想ロボット１Ａを移動させることができ、それに伴い、仮想対象物８０Ａを移動させることができる。
【０１３２】
〈仮想対象物の解放〉
制御部５１は、図２５に示す画面ＷＤ８の「UnRegister」のボタン４５５に対する操作指示を受けたら、仮想対象物８０Ａの座標系８０Ｘと、ツール座標系１７Ｘとの関連付けを解除する。これにより、仮想対象物８０Ａは、仮想ツール１７Ａの移動とともに連動して移動しなくなる（図２５および図２６参照）。また、仮想対象物８０Ａが開放された位置は、「UnRegister」のボタン４５５に対する操作指示を受けたときに仮想対象物８０Ａが位置している箇所となる（図２６参照）。なお、仮想対象物８０Ａが開放された位置は、仮想対象物８０Ａを保持する前に位置していた箇所（図２２に示す箇所）に設定することも可能である。
【０１３３】
このように、作業者は、画面ＷＤ１、ＷＤ８を用いて、仮想対象物８０Ａの保持および解放と、仮想ロボット１Ａの移動とを指示することができる。
【０１３４】
≪衝突表示≫
次に、仮想対象物８０Ａに対する仮想塗布器具９１Ａ（外部ツール）等の衝突表示について説明する。
図２７は、仮想対象物が外部ツールに衝突した場合の画面を示す図である。
【０１３５】
前述したようなオフラインティーチングや仮想対象物８０Ａの保持および解放において、仮想対象物８０Ａが仮想塗布器具９１Ａ等に衝突した場合、制御部５１は、衝突した箇所と、衝突した対象とに識別表示を行う（図２７参照）。
【０１３６】
例えば、衝突した対象である仮想対象物８０Ａと仮想塗布器具９１Ａとに、識別表示として、仮想ロボット１Ａとは異なる色や模様等を付す。また、仮想対象物８０Ａと仮想塗布器具９１Ａとの衝突箇所には、例えば、識別表示として、球体の物体Ｓ１を表示する。これにより、作業者は、仮想対象物８０Ａが仮想塗布器具９１Ａに衝突したことを容易に把握することができる。
【０１３７】
以上、ロボットシステム１００について説明した。なお、「ロボットシステム」は、図２８、図２９に示す形態であってもよい。
【０１３８】
図２８、図２９は、ロボットシステムの他の例を示す図である。
図２８には、ロボット１に直接コンピューター６３が接続されたロボットシステム１００Ｂの全体構成図を示す。ロボット１の制御はコンピューター６３に存在するプロセッサーによりメモリーにある指令を読みだして直接実行される。コンピューター６３は、前述したロボット制御装置２およびシミュレーション装置５の機能を有する。
【０１３９】
図２９には、コントローラー６１が内蔵させたロボット１とコンピューター６６とが接続され、コンピューター１がＬＡＮ（Local Area Network）等のネットワーク６５を介してクラウド６４に接続されているロボットシステム１００Ｃの全体構成図を示す。ロボット１の制御はコンピューター６６に存在するプロセッサーによりメモリーにある指令を読みだして実行されても良いし、クラウド６４上に存在するプロセッサーによりコンピューター６６を介してメモリーにある指令を読みだして実行されても良い。コントローラー６１が、前述したロボット制御装置２の機能を有し、コンピューター６６またはクラウド５４が、前述したシミュレーション装置５の機能を有する。
【０１４０】
以上、本発明のシミュレーション装置、ロボット制御装置およびロボットを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物が付加されていてもよい。また、各実施形態を適宜組み合わせてもよい。
【０１４１】
また、前述した実施形態では、本発明のロボットシステムが有するロボットとして、いわゆる６軸の垂直多関節ロボットを例示したが、当該ロボットは、例えば、スカラーロボット等の他のロボットであってもよい。また、当該ロボットは、単腕ロボットに限定されず、例えば、双腕ロボット等の他のロボットであってもよい。したがって、可動部の数は、１つに限定されず、２つ以上であってもよい。また、可動部が備えるロボットアームが有するアームの数は、前述した実施形態では、６つであるが、１〜５つまたは７つ以上であってもよい。
【符号の説明】
【０１４２】
１…ロボット、１Ａ…仮想ロボット、２…ロボット制御装置、５…シミュレーション装置、１０…ロボットアーム、１０Ａ…仮想ロボットアーム、１１…アーム、１１Ａ…仮想アーム、１２…アーム、１２Ａ…仮想アーム、１３…アーム、１３Ａ…仮想アーム、１４…アーム、１４Ａ…仮想アーム、１５…アーム、１５Ａ…仮想アーム、１６…アーム、１６Ａ…仮想アーム、１７…ツール、１７Ａ…仮想ツール、１７Ｘ…ツール座標系、２０…マニピュレーター、２０Ａ…仮想マニピュレーター、２１…制御部、２２…記憶部、２３…外部入出力部、３１…表示装置、３２…入力装置、４１ａ…アイコン、５１…制御部、５２…記憶部、５３…外部入出力部、６１…コントローラー、６２…コンピューター、６３…コンピューター、６４…クラウド、６５…ネットワーク、６６…コンピューター、７０…設置箇所、８０…対象物、８０Ａ…仮想対象物、８０Ｘ…座標系、８１…線分、８１ａ…線分、８３Ａ…仮想対象物、９１…塗布器具、９１Ａ…仮想塗布器具、９１Ｘ…外部座標系、９３Ａ…仮想研磨機、１００…ロボットシステム、１００Ｂ…ロボットシステム、１００Ｃ…ロボットシステム、１１０…基台、１１０Ａ…仮想基台、１１０Ｘ…ベース座標系、１３０…駆動部、１４０…角度センサー、１７０…吸着機構、４１０…ツールバー、４２０…パネル、４２１…リスト、４２２…リスト、４２３…リスト、４２４…領域、４２５…リスト、４２６…ボタン、４３０…オブジェクトボックス、４３１…ボックス、４３２…ボックス、４３３…領域、４３５…ボタン、４４１…リスト、４４２…リスト、４４３…領域、４４４…領域、４４５…ボタン、４４６…リスト、４４７…リスト、４５１…リスト、４５２…リスト、４５３…領域、４５４…ボタン、４５５…ボタン、４５６…ボタン、９１１…ノズル、９１１Ａ…仮想ノズル、９３１Ａ…仮想研磨面、４２１１…チェックボックス、４２３１…チェックボックス、４２４１…ボタン、４２４２…ボタン、４２５１…チェックボックス、４３０１…オブジェクト、４３０２…オブジェクト、４３０３…ツリーアイテム、４３１１…ボタン、４３１２…ボタン、４３１３…ボタン、４４３１…チェックボックス、４４４１…チェックボックス、４５２１…チェックボックス、Ａ１…矢印、Ａ２…矢印、Ａ３…矢印、Ａ４…矢印、Ｅ…外部点、Ｅ１…外部点、Ｅ２…外部点、Ｅ３…外部点、Ｌ１…軌跡、Ｌ２…軌跡、Ｍ…ポインター、Ｍ０…ポインター、Ｍ０'…ポインター、Ｍ１…ポインター、ＭＰ…マウスポインター、Ｐ…ツールセンターポイント、Ｐ０…所定点、Ｓ１…物体、ＷＤ１…画面、ＷＤ２…画面、ＷＤ３…画面、ＷＤ４…画面、ＷＤ５…画面、ＷＤ６…画面、ＷＤ７…画面、ＷＤ８…画面
【図１】
2019034352.tif 000003
【図２】
2019034352.tif 000004
【図３】
2019034352.tif 000005
【図４】
2019034352.tif 000006
【図５】
2019034352.tif 000007
【図６】
2019034352.tif 000008
【図７】
2019034352.tif 000009
【図８】
2019034352.tif 000010
【図９】
2019034352.tif 000011
【図１０】
2019034352.tif 000012
【図１１】
2019034352.tif 000013
【図１２】
2019034352.tif 000014
【図１３】
2019034352.tif 000015
【図１４】
2019034352.tif 000016
【図１５】
2019034352.tif 000017
【図１６】
2019034352.tif 000018
【図１７】
2019034352.tif 000019
【図１８】
2019034352.tif 000020
【図１９】
2019034352.tif 000021
【図２０】
2019034352.tif 000022
【図２１】
2019034352.tif 000023
【図２２】
2019034352.tif 000024
【図２３】
2019034352.tif 000025
【図２４】
2019034352.tif 000026
【図２５】
2019034352.tif 000027
【図２６】
2019034352.tif 000028
【図２７】
2019034352.tif 000029
【図２８】
2019034352.tif 000030
【図２９】
2019034352.tif 000031