以下、本発明のシミュレーション装置、制御装置およびロボットを添付図面に示す実施形態に基づいて詳細に説明する。
<第1実施形態>
≪ロボットシステム≫ 図1は、実施形態に係るロボットシステムを示す図である。図2は、図1に示すロボットシステムのブロック図である。図3~図11は、それぞれ、表示装置に表示される画面の一例を示す図である。図12~図16は、図1に示すロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
また、図1には、互いに直交する3つの軸としてxr軸、yr軸およびzr軸が図示されており、各軸を示す矢印の先端側を「+(正)」、基端側を「-(負)」とする。また、図1中のzr軸方向を「鉛直方向」とし、xr-yr平面に沿った方向を「水平方向」とする。また、+zr軸側を「上方」とし、-zr軸側を「下方」とする。
また、以下では、説明の都合上、図1および図3中の上側を「上」または「上方」、下側を「下」または「下方」と言う。また、図1および図3中の基台側を「基端」または「上流」、その反対側を「先端」または「下流」と言う。また、図1および図3中の上下方向が鉛直方向である。
また、本明細書において、「水平」とは、完全に水平な場合のみならず、水平に対して±5°以内で傾斜している場合も含む。同様に、本明細書において、「鉛直」とは、完全に鉛直な場合のみならず、鉛直に対して±5°以内で傾斜している場合も含む。また、本明細書において、「平行」とは、2つの線(軸を含む)または面が、互いに完全な平行である場合のみならず、±5°以内で傾斜している場合も含む。また、本明細書において、「直交」とは、2つの線(軸を含む)または面が、互いに完全な直交である場合のみならず、±5°以内で傾斜している場合も含む。
図1に示すロボットシステム100は、ロボット1と、ロボット1の動作(駆動)を制御するロボット制御装置2(制御装置)と、ロボット制御装置2と通信可能なシミュレーション装置5と、を有する。
以下、ロボットシステム100が有する各部を順次説明する。
〈ロボット〉 ロボット1は、いわゆる6軸の垂直多関節ロボットであり、例えば、精密機器等を製造する製造工程等で用いられ、精密機器や部品等の保持対象物(図示せず)の保持や搬送等の作業を行う。ロボット1は、基台110と、基台110に接続されたロボットアーム10(可動部)とを有する。なお、保持対象物としては、ロボット1が行う作業で用いられるものであればよく、特に限定されない。
基台110は、ロボット1を例えば床等の任意の設置箇所70に取り付ける部分である。ロボットアーム10は、アーム11(第1アーム)、アーム12(第2アーム)、アーム13(第3アーム)、アーム14(第4アーム)、アーム15(第5アーム)およびアーム16(第6アーム)を有する。また、アーム15およびアーム16によりリストが構成されている。また、アーム16は、円盤状をなしており、そのアーム16の先端には、エンドエフェクター17(保持部)を着脱可能に設ける(取り付ける)ことが可能になっている。これらアーム11~16は、基台110側からエンドエフェクター17側に向かってこの順に連結されている。また、各アーム11~16は、隣り合うアームまたは基台110に対して回動可能になっている。すなわち、基台110とアーム11とは、関節171(ジョイント)を介して連結されている。また、アーム11とアーム12とは、関節172(ジョイント)を介して連結されている。また、アーム12とアーム13とは、関節173(ジョイント)を介して連結されている。また、アーム13とアーム14とは、関節174(ジョイント)を介して連結されている。また、アーム14とアーム15とは、関節175(ジョイント)を介して連結されている。また、アーム15とアーム16とは、関節176(ジョイント)を介して連結されている。
エンドエフェクター17としては、保持対象物を保持、解放(保持の解除)することが可能なもの(装置)であれば特に限定されないが、本実施形態では、エンドエフェクター17として、保持対象物を吸着(保持)、解放することが可能な吸着ヘッド(吸着装置)が用いられている。また、エンドエフェクター17の他の構成例としては、例えば、保持対象物を把持(保持)、解放することが可能なハンド等が挙げられる。また、保持対象物を保持するとは、保持対象物を移動または保持対象物の姿勢を変更させることが可能なように、保持対象物を持つことであり、例えば、把持(掴む)、吸着、載置等が含まれる。
また、エンドエフェクター17の先端中心をツールセンターポイントPという。
また、図2に示すように、ロボット1は、一方のアームを他方のアーム(または基台110)に対して回動させるモーターおよび減速機等を備える駆動部130を有する。モーターとしては、例えば、ACサーボモーター、DCサーボモーター等のサーボモーターを用いることができる。減速機としては、例えば、遊星ギア型の減速機、波動歯車装置等を用いることができる。また、ロボット1は、モーターまたは減速機の回転軸の回転角度を検出する角度センサー140を有する。角度センサー140としては、例えば、ロータリーエンコーダー等を用いることができる。また、駆動部130および角度センサー140は、各アーム11~16に対応して設けられており、本実施形態では、ロボット1は、6つの駆動部130および6つの角度センサー140を有する。
また、各駆動部130は、図示はしないが、例えば図1に示す基台110に内蔵されたモータードライバーと電気的に接続(以下、単に「接続」とも言う)されている。各駆動部130は、対応するモータードライバーを介してロボット制御装置2により制御される。また、各角度センサー140は、ロボット制御装置2に電気的に接続されている。また、エンドエフェクター17を駆動する駆動部(図示せず)は、ロボット制御装置2により制御される。
以上、ロボット1の構成について簡単に説明した。このようなロボット1は、後述するロボット制御装置2によって制御される。これにより、ロボット1は、適切な動作を行うことができる。
なお、ロボット1は、図示はしないが、例えばエンドエフェクター17に加わる力(モーメントを含む)を検出する6軸力覚センサー等で構成された力検出装置(力検出部)を備えていてもよい。力検出装置は、例えば、アーム16とエンドエフェクター17との間に配置され、ロボット制御装置2に電気的に接続される。力検出装置を設けることにより、例えば、インピーダンス制御等の力制御を行うことが可能になる。
〈ロボット制御装置〉 ロボット制御装置2は、ロボット1の動作を制御する。このロボット制御装置2は、ロボット1が有する各部の機能をつかさどるロボットコントローラーで構成されており、ロボット1およびシミュレーション装置5に対して通信可能に接続されている。
ロボット制御装置2とロボット1とは、例えばケーブル等を用いて有線方式で通信可能に接続されていてもよく、また、無線方式で通信可能に接続されていてもよい。また、ロボット制御装置2は、ロボット1と別体であってもよく、また、ロボット1(例えば、基台110等)にその一部または全部が内蔵されていてもよい。
また、ロボット制御装置2とシミュレーション装置5とは、例えばケーブル等を用いて有線方式で通信可能に接続されていてもよく、また、無線方式で通信可能に接続されていてもよい。
図2に示すように、ロボット制御装置2は、プロセッサーを備える制御部21と、制御部21に通信可能に接続されたメモリー等を備える記憶部22と、外部インターフェース(I/F)を備える外部入出力部23(受付部)と、を含む。外部入出力部23は、ロボット制御装置2の受付部の一例である。ロボット制御装置2の各構成要素は、種々のバスを介して相互通信可能に接続されている。
制御部21は、記憶部22に記憶された各種プログラム等を実行する。これにより、ロボット1の動作の制御や各種演算および判断等の処理を実現できる。
記憶部22には、制御部21により実行可能な各種プログラムが保存(記憶)されている。また、記憶部22には、外部入出力部23で受け付けた各種データの保存が可能である。記憶部22は、例えばRAM(Random Access Memory)等の揮発性メモリーや、ROM(Read Only Memory)等の不揮発性メモリー等を含んで構成されている。なお、記憶部22は、非着脱式に限らず、着脱式の外部記憶装置(図示せず)を有する構成であってもよい。
各種プログラムとしては、シミュレーション装置5から出力された動作プログラムや、動作プログラムの修正や変更をするプログラム等が挙げられる。各種データとしては、例えば、ツールセンターポイントPの位置姿勢、各アーム11~16の回動角度等に関するデータ等が挙げられる。
外部入出力部23は、外部インターフェース(I/F)を備え、ロボット1およびシミュレーション装置5の各接続のために用いられる。
このようなロボット制御装置2は、後述するシミュレーション装置5によるシミュレーション結果(動作プログラム)に基づいて(を用いて)ロボット1を制御する。これにより、シミュレーション装置5で作成した動作プログラムを用いて、ロボット1に適切な動作を行わせることができる。また、シミュレーション装置5で作成した動作プログラムを用いてロボット1を動作させることができるので、実機でのティーチング作業を省略することができる。そのため、作業者(ユーザー)が実際にロボット1を動作させてティーチングすることに比べ、ティーチング時間を大幅に短縮することができる。
なお、ロボット制御装置2は、前述した構成に加えて、さらに他の構成が付加されていてもよい。また、ロボット制御装置2には、ディスプレイ等を有する表示装置や、例えばマウスやキーボード等の入力装置が接続されていてもよい。また、記憶部22に保存されている各種プログラムやデータ等は、予め記憶部22に記憶されたものであってもよいし、例えばCD-ROM等の記録媒体(図示せず)に格納されており、この記録媒体から提供されたものでもよいし、ネットワーク等を介して提供されたものであってもよい。
〈シミュレーション装置〉 シミュレーション装置5は、仮想空間上で、実機であるロボット1を仮想化した仮想ロボット1Aを動作させ、実機であるロボット1の動作のシミュレーションを行う(図3等参照)。
仮想ロボット1Aは、前述した実機であるロボット1に対応している(図1および図3参照)。具体的には、仮想ロボット1Aは、仮想基台110Aと、仮想基台110Aに接続された仮想ロボットアーム10A(仮想可動部)とを有する。また、仮想ロボットアーム10Aは、仮想アーム11A(仮想第1アーム)、仮想アーム12A(仮想第2アーム)、仮想アーム13A(仮想第3アーム)、仮想アーム14A(仮想第4アーム)、仮想アーム15A(仮想第5アーム)および仮想アーム16A(仮想第6アーム)を有する。
また、各仮想アーム11A~16Aは、隣り合う仮想アームまたは仮想基台110Aに対して回動可能になっている。すなわち、仮想基台110Aと仮想アーム11Aとは、仮想関節171A(仮想ジョイント)を介して連結されている。また、仮想アーム11Aと仮想アーム12Aとは、仮想関節172A(仮想ジョイント)を介して連結されている。また、仮想アーム12Aと仮想アーム13Aとは、仮想関節173A(仮想ジョイント)を介して連結されている。また、仮想アーム13Aと仮想アーム14Aとは、仮想関節174A(仮想ジョイント)を介して連結されている。また、仮想アーム14Aと仮想アーム15Aとは、仮想関節175A(仮想ジョイント)を介して連結されている。また、仮想アーム15Aと仮想アーム16Aとは、仮想関節176A(仮想ジョイント)を介して連結されている。また、仮想アーム16Aの先端には、仮想エンドエフェクター17A(仮想保持部)を着脱可能に設けることが可能になっている。
このように、各部の符号については、シミュレーション装置5(シミュレーション)では、符号の最後に「A」を付けて表記し、実機では、符号に「A」を付けないで表記する。また、各部の名称については、シミュレーション装置5では、名称の最初に「仮想」を付けて表記し、実機では、名称に「仮想」を付けない。例えば、仮想ロボット1A(ロボット1)以外においては、実機での保持対象物は、シミュレーション装置5では、仮想保持対象物80Aとする。したがって、シミュレーション装置5と実機とのいずれか一方で説明したことは、他方ではそれに対応する説明は省略する。なお、ツールセンターポイントP、取付部分、各座標系等、一部については、シミュレーション装置5で、「A」、「仮想」の記載を省略している。
図2に示すシミュレーション装置5は、例えばPC(Personal Computer)等の種々のコンピューターで構成されており、ロボット制御装置2に対して通信可能に接続されている。
シミュレーション装置5は、プロセッサーを備える制御部51と、制御部51に通信可能に接続されたメモリー等を備える記憶部52と、外部I/F(インターフェース)を備える外部入出力部53(受付部)と、を含む。外部入出力部53は、シミュレーション装置5の受付部の一例である。シミュレーション装置5の各構成要素は、種々のバスを介して相互通信可能に接続されている。
制御部51は、記憶部52に記憶された各種プログラム等を実行する。これにより、仮想ロボット1Aの動作の制御や各種演算および判断等の処理を実現できる。
記憶部52には、制御部51により実行可能な各種プログラムが保存されている。また、記憶部52には、外部入出力部53で受け付けた各種データの保存が可能である。記憶部52は、例えばRAM(Random Access Memory)等の揮発性メモリーや、ROM(Read Only Memory)等の不揮発性メモリー等を含んで構成されている。なお、記憶部52は、非着脱式に限らず、着脱式の外部記憶装置(図示せず)を有する構成であってもよい。
各種プログラムとしては、仮想ロボット1Aによるオフラインティーチング(ロボット1のティーチング作業を、実機であるロボット1を使用しないで行うティーチング)の設定および実行に関するプログラム等が挙げられる。当該プログラムには、仮想ロボット1Aを動作させる動作命令や、表示装置31に表示させる信号を出力する出力命令等が含まれる。各種データとしては、例えば、ツールセンターポイントPの位置姿勢、各仮想アーム11A~16Aの回動角度等に関するデータ等が挙げられる。
外部入出力部53は、外部I/F(インターフェース)を備え、ロボット制御装置2、表示装置31および入力装置32との各接続のために用いられる。したがって、外部入出力部53は、作業者による入力装置32の操作(指令)を受け付ける受付部としての機能を有する。また、外部入出力部53は、表示装置31のモニターに各種画面(例えば、図3の画面WD1等)に関する信号を出力する出力部としての機能を有する。
なお、シミュレーション装置5は、前述した構成に加えて、さらに他の構成が付加されていてもよい。また、記憶部52に保存されている各種プログラムやデータ等は、予め記憶部52に記憶されたものであってもよいし、例えばCD-ROM等の記録媒体(図示せず)に格納されており、この記録媒体から提供されたものでもよいし、ネットワーク等を介して提供されたものであってもよい。
〈表示装置および入力装置〉 図2に示す表示装置31(表示部)は、ディスプレイを備えており、例えば図3に示す画面WD1等の各種画面を表示する機能を有する。したがって、作業者は、表示装置31を介して仮想ロボット1Aの動作等を確認することができる。また、表示装置31としては、特に限定されず、例えば、液晶表示装置、有機EL表示装置等の直視型の表示装置、プロジェクター等の投射型表示装置等が挙げられる。
入力装置32(入力部)は、例えばマウスやキーボード等を含んで構成されている。したがって、作業者は、入力装置32を操作することで、シミュレーション装置5に対して各種の処理等の指示(入力)を行うことができる。
具体的には、作業者は、表示装置31に表示される各種画面(ウィンドウ等)に対して入力装置32のマウスでクリックする操作や、入力装置32のキーボードで文字や数字等を入力する操作により、シミュレーション装置5に対する指示を行うことができる。以下、この作業者による入力装置32を用いた指示(入力装置32による入力)を「操作指示」とも言う。この操作指示は、入力装置32により、表示装置31に表示された内容から所望の内容を選択する選択操作や、入力装置32により、文字や数字等を入力する入力指示等を含む。また、入力には、選択も含まれる。
なお、シミュレーション装置5には、表示装置31および入力装置32がそれぞれ1つ接続されていてもよいし、それぞれ複数接続されていてもよい。また、表示装置31および入力装置32の代わりに、表示装置31および入力装置32の機能を兼ね備えた表示入力装置(図示せず)を用いてもよい。表示入力装置としては、例えばタッチパネル等を用いることができる。
以上、ロボットシステム100の基本的な構成について簡単に説明した。かかるロボットシステム100は、シミュレーション装置5と、シミュレーション装置5によるシミュレーション結果(動作プログラム)に基づいてロボット1の動作の制御を行うロボット制御装置2と、ロボット制御装置2により制御されるロボット1と、を有する。このようなロボットシステム100(シミュレーション装置5)によれば、実機であるロボット1を用いることなく、表示装置31が有するディスプレイ上(シミュレーション上の空間)で、仮想ロボット1Aに対して所定の作業を教示(ティーチング)し、その教示された作業を検証することができる。そのため、実機であるロボット1を用いずとも、例えば、ロボット1による作業におけるサイクルタイム等を検討することができる。
≪シミュレーション≫ 次に、シミュレーション装置5が行うシミュレーションについて説明する。
シミュレーション装置5の制御部51は、表示装置31の駆動を制御し、表示装置31が有するディスプレイに画面WD1を表示し(図3参照)、その画面WD1に、仮想ロボット1A、仮想対象物71A、72A等を表示する(図12~図16参照)。すなわち、制御部51は、表示装置31に仮想ロボット1Aによるシミュレーションを表示させる。
この場合、作業者は、入力装置32で所定の操作(操作指示)を行うことにより、画面WD1に仮想対象物71A、72Aを表示することができる。また、入力装置32で所定の操作(操作指示)を行うことにより、仮想対象物71A、72Aは、それぞれ、仮想ロボット1Aの取付部分に配置される(取り付けられる)。また、仮想ロボット1Aの取付部分と仮想対象物71Aとは、接触していてもよく、また、離間していてもよい。また、仮想ロボット1Aの取付部分と仮想対象物72Aとは、接触していてもよく、また、離間していてもよい。
また、仮想対象物71A、72Aとしては、それぞれ、仮想ロボット1Aに取り付けることが可能なものであれば特に限定されず、例えば、仮想エンドエフェクター(例えば、仮想ハンド、仮想吸着ヘッド等)、仮想ワーク、仮想カメラ、仮想エクステンションチューブ、仮想レンズ、仮想力覚センサー、仮想バルブ(例えば、仮想エアーバルブ等)、仮想チューブ(例えば、仮想エアーチューブ等)、仮想配線(仮想ケーブル)、仮想配管等が挙げられる。このような仮想対象物71A、72Aは、それぞれ、例えば、CADファイルを読み込んでなるCADオブジェクト、シミュレーション装置5で生成したオブジェクト(例えば、直方体、球、角柱、円柱、角錐、円錐、面等)等で構成することができる。以下の説明では、代表的に、仮想対象物71Aが仮想ワーク、仮想対象物72Aが仮想カメラ(取り付け用の治具を含む)の場合を例に挙げて説明する。なお、仮想対象物71A、72Aに対応する実機における対象物の具体的な例示は省略するが、前記に挙げたものから「仮想」を除去すればよい。
また、仮想ロボット1Aの取付部分としては、仮想ロボット1Aにおいて、仮想対象物71Aを取り付けることが可能な部分(シミュレーションであるので、仮想ロボット1Aと仮想対象物71Aとが接触していてもよく、また、離間していてもよい)であれば特に限定されず、例えば、仮想アーム11A~仮想アーム16A、仮想関節171A~仮想関節176A、仮想エンドエフェクター17A等が挙げられる。以下の説明では、代表的に、仮想対象物71Aの取付部分が仮想エンドエフェクター17Aの先端、仮想対象物72Aの取付部分がアーム14Aとアーム15Aとを連結する仮想関節175Aの場合を例に挙げて説明する。
なお、仮想対象物の数は、本実施形態では、2つであるが、これに限定されず、例えば、1つでもよく、また、3つ以上でもよい。
まず、概要を説明すると、制御部51は、仮想ロボット1Aと、仮想対象物71Aとを表示装置31に表示させる(図12参照)。
次に、入力装置32により、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力(操作指示)と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力(操作指示)とを行う。
外部入出力部53が仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを受け付ける。
そして、制御部51は、外部入出力部53が受け付けた取付部分に仮想対象物71Aを配置する。すなわち、制御部51は、仮想ロボット1Aと、外部入出力部53が受け付けた取付部分に配置された仮想対象物71A、72Aとを表示装置31に表示させる(図13参照)。
また、制御部51は、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させる入力(操作指示)を外部入出力部53が受け付けた場合、仮想ロボット1Aの動作に連動して、仮想対象物71Aを動作させる。すなわち、仮想対象物71Aの取付部分と仮想対象物71Aとを連動(一体的に動作)させる。これにより、仮想対象物71Aの取付部分が移動すると、その取付部分とともに仮想対象物71Aが移動し、取付部分の姿勢が変更されると、その取付部分とともに仮想対象物71Aの姿勢が変更される。
ここで、「仮想ロボット1A(取付部分)と仮想対象物71Aとを連動させる」とは、仮想ロボット1Aが動作した場合、取付部分に対する仮想対象物71の位置(相対位置)および姿勢(相対姿勢)を保持したまま、仮想対象物71Aを仮想ロボット1Aとともに動作させることを言う。
仮想対象物72Aについては、仮想対象物71Aと同様であるので、その説明は省略する。
次に、作業者の操作手順および表示装置31の表示等を説明する。
まず、仮想ロボット1Aに仮想対象物71Aを取り付ける場合について説明する。
図3に示すように、制御部51は、表示装置31に、画面WD1を表示させる。
また、図12に示すように、制御部51は、表示装置31の画面WD1に仮想対象物71Aを表示させる。この仮想対象物71Aは、仮想ワークであり、その形状は、立方体である。
作業者は、画面WD1の図3中の左側のオブジェクトツリー(図4参照)で、対象とするオブジェクトである[SBox1]を選択する操作指示を行う。外部入出力部53が前記操作指示を受け付けると、図4に示すように、制御部51は、表示装置31に、コンテキストメニュー41を表示させる。
次に、作業者は、コンテキストメニュー41で、[Part/Mounted Device Setting]411を選択する操作指示を行う。外部入出力部53が前記操作指示を受け付けると、図5に示すように、制御部51は、ダイアログ42を表示する。
また、作業者は、前記ダイアログ42を表示させる操作に代えて、例えば、オブジェクトツリーの図3中の下側のプロパティーグリッド(図6参照)において、[Type]プロパティーのドロップダウンリスト431で、[Part]または[Mounted Device]を選択する操作指示を行ってもよい。外部入出力部53が前記操作指示を受け付けると、制御部51は、ダイアログ42を表示する。また、ドロップダウンリスト431で[Part]を選択した場合は、ダイアログ42では、タイプ(Type)として、[Part]が選択された状態になる。また、ドロップダウンリスト431で[Mounted Device]を選択した場合は、ダイアログ42では、タイプ(Type)として、[Mounted Device]が選択された状態になる。
次に、図7に示すように、作業者は、ダイアログ42のドロップダウンリスト421で、タイプ(Type)として、[Layout]、[Part]、[Mounted Device]のうちのいずれか1つを選択する操作指示を行う。
[Part]は、仮想対象物が仮想パーツ(仮想ワーク)等の場合に選択される。また、[Mounted Device]は、仮想対象物が仮想アーム取付機器(例えば、仮想カメラ)等の場合に選択される。また、[Layout]は、Typeの初期値として登録されており、[Layout]が登録されている場合は、仮想対象物71Aは、仮想ロボット1Aが動作しても動作せず、その位置および姿勢を変更しない(静止し続ける)。
ここでは、仮想対象物71Aが仮想ワークであるので、タイプ(Type)は、それに合わせて、[Part]を選択する。以下、[Part]を選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、Typeとして、[Part]を設定する。そして、後述するボタン441(図8参照)が押されると、制御部51は、Typeとして、[Part]を登録する(記憶部52に記憶する)。
ここで、[Part]が選択された場合は、後述する仮想対象物71Aを取り付ける取付部分として、「Joint」は選択できず、「Tool」のみが選択可能である。また、このような選択の制限がなされないようにしてもよい。
次に、図8に示すように、作業者は、ダイアログ42のドロップダウンリスト422で、仮想ロボット(Robot)を「1」、「2」、・・・の番号で選択する操作指示を行
う。
ここで、複数の仮想ロボット(例えば、仮想垂直多関節ロボット、仮想スカラーロボット等の仮想水平多関節ロボット)は、それぞれ、前記番号と対応付けがなされている。例えば、「1」は、図3に示す仮想ロボット1Aに対応している。以下、「1」を選択した場合、すなわち、仮想ロボット1Aを選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、仮想ロボットとして、「仮想ロボット1A」を設定する。そして、後述するようにボタン441(図8参照)が押されると、制御部51は、仮想ロボットとして、「仮想ロボット1A」を登録する。
次に、作業者は、ダイアログ42のドロップダウンリスト423で、仮想対象物71Aを取り付ける取付部分(Tool)、すなわち、取付部分に設けられているツール座標系(座標系)を「0」、「1」、「2」、・・・の番号で選択する操作指示を行う。
ここで、仮想ロボット1Aには、互いに直交する3軸を有する複数のツール座標系(座標系)が設定されており、各ツール座標系のうちの少なくとも一部は、それぞれ、前記番号と対応付けがなされている。例えば、「1」は、エンドエフェクター17Aの先端中心を原点とするツール座標系41A(図12参照)に対応している。以下、「1」を選択した場合、すなわち、取付部分として仮想エンドエフェクター17Aの先端(仮想エンドエフェクター17Aに設けられているツール座標系41A)を選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、取付部分として、「仮想エンドエフェクター17Aの先端(ツール座標系41A)」を設定する。これにより、図13に示すように、制御部51は、仮想対象物71Aを仮想エンドエフェクター17Aの先端に配置する。そして、後述するようにボタン441(図8参照)が押されると、制御部51は、取付部分として、「仮想エンドエフェクター17Aの先端(ツール座標系41A)」を登録する。これにより、制御部51は、仮想対象物71Aを仮想エンドエフェクター17Aの先端に保持させる(取り付ける)。すなわち、制御部51は、仮想ロボット1Aが動作した場合、仮想エンドエフェクター17Aの先端と仮想対象物71Aとを連動させる。
また、[Offset From Selected Tool or Joint]46で、ドロップダウンリスト423で選択した[Tool]に対する仮想対象物71Aの位置(相対位置)および姿勢(相対姿勢)を設定(登録)することができる。すなわち、仮想エンドエフェクター17Aの先端に配置された仮想対象物71Aは、仮想エンドエフェクター17Aの先端から位置およびを変更可能になっている。
まず、[Offset From Selected Tool or Joint]46の[Position]および[Rotation]の各数字が「0」の場合は、仮想対象物71Aは、仮想対象物71Aの後述する原点座標系46Aと、ドロップダウンリスト423で選択したツール座標系41Aとが一致するように配置される(図13参照)。すなわち、仮想対象物71Aは、仮想対象物71Aの原点座標系46Aの原点とツール座標系41Aの原点とが一致し、原点座標系46Aの姿勢とツール座標系41Aの姿勢とが同じになるように配置される。したがって、制御部51は、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させる入力を外部入出力部53が受け付けた場合は、仮想対象物71Aの原点座標系46Aの原点とツール座標系41Aの原点とを一致させた状態で、表示装置31に表示させる。これにより、容易に、仮想対象物71Aを適切な位置に配置させることができる。
そして、作業者が[Offset From Selected Tool or Joint]46の[Position]および[Rotation]の各数字を入力する操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、仮想対象物71Aの原点座標系46Aがドロップダウンリスト423で選択したツール座標系41Aに対して、[Position]に入力された各数値の分、対応する各軸方向に移動(離間)し、[Rotation]に入力された各数値の分、対応する各軸周りに回転するように、仮想対象物71Aを表示装置31に表示させる。これにより、仮想対象物71Aを仮想エンドエフェクター17Aの先端から離間した位置に配置させることができる。
また、作業者が[Zero Clear]と表示されたボタン444に対する操作指示を行い(ボタン444を押し)、外部入出力部53が前記操作指示を受け付けると、制御部51は、[Position]、[Rotation]の各数字を全て「0」にし、それに対応するように、仮想対象物71Aを配置する。
なお、同様に、[Offset From Selected Tool or Joint]46で、ドロップダウンリスト424で選択した[Joint]に対する仮想対象物72Aの位置(相対位置)および姿勢(相対姿勢)を設定(登録)することができる。
また、作業者が[Render Object Origin]と表示されたチェックボックス451にチェックを入れる操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、表示装置31に、仮想対象物71A(選択しているオブジェクト)の原点座標系46A(座標系)を表示させる。この原点座標系46Aは、仮想対象物71Aの所定の点を原点とし、互いに直交する3軸を有する座標系である。本実施形態では、原点座標系46Aの原点は、仮想対象物71Aの1つの面の中心に配置され、また、原点座標系46Aの2つの軸は、前記面の互いに直交する2辺と平行である。
また、作業者が[Render Selected Tool]と表示されたチェックボックス452にチェックを入れる操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、表示装置31に、ドロップダウンリスト423で選択したツール座標系41Aを表示させる。
これにより、仮想対象物71Aの原点座標系46Aとツール座標系41Aとが一致していることを目視で確認することで、仮想ロボット1Aに対する仮想対象物71Aの位置合わせを容易かつ適確に行うことができる。
次に、作業者は、「Register」と表示されたボタン441に対する操作指示を行う(ボタン441を押す)。外部入出力部53が前記操作指示を受け付けると、制御部51は、前記各設定(各設定値)の登録を行う。これにより、制御部51は、仮想ロボット1Aが動作した場合、仮想対象物71の取付部部分である仮想エンドエフェクター17Aの先端と、仮想対象物71Aとを連動させる。すなわち、制御部51は、仮想ロボット1Aが動作した場合、仮想エンドエフェクター17Aに対する仮想対象物71の位置(相対位置)および姿勢(相対姿勢)を保持したまま、仮想対象物71Aを仮想ロボット1Aとともに動作させる。なお、仮想ロボット1Aを動作させる方法は、特に限定されず、例えば、ジョグ、コマンド、プログラム、表示装置31の画面で仮想ロボットアーム10A等をドラッグする方法等が挙げられる。
また、前記登録後で、Typeとして[Part]または[Mounted Device]が登録されている場合は、図9に示すように、「UnRegister」と表示されたボタン442に対する操作指示を行う(ボタン442を押す)ことが可能になる。これにより、前記登録を解除することが可能になる。すなわち、作業者がボタン442に対する操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、前記登録を解除する。これにより、制御部51は、仮想ロボット1Aが動作しても仮想対象物71を動作させず、仮想対象物71の位置および姿勢を変更しない。
また、作業者は、前記ボタン442を押して前記登録を解除する操作に代えて、例えば、オブジェクトツリーの図3中の下側のプロパティーグリッド(図6参照)において、[Type]プロパティーのドロップダウンリスト431で、[Layout]を選択する操作指示を行ってもよい。外部入出力部53が前記操作指示を受け付けると、制御部51は、Typeとして、[Layout]を登録する。これにより、制御部51は、仮想ロボット1Aが動作しても仮想対象物71を動作させず、仮想対象物71の位置および姿勢を変更しない。
また、前記登録後は、図10に示すように、「Update」と表示されたボタン443に対する操作指示を行う(ボタン443を押す)ことが可能になる。これにより、登録済みの各設定(各設定値)を変更することが可能になる。すなわち、作業者がボタン443に対する操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、登録済みの各設定を更新する。
次に、仮想ロボット1Aに仮想対象物72Aを取り付ける場合について、仮想対象物72Aを取り付ける場合との相違点を中心に説明する。
図14に示すように、制御部51は、表示装置31に仮想対象物72Aを表示させる。
この仮想対象物72Aは、仮想カメラである。
図7に示すように、作業者は、ダイアログ42のドロップダウンリスト421で、[Layout]、[Part]、[Mounted Device]のうちのいずれか1つを選択する操作指示を行う。
ここでは、仮想対象物72Aが仮想カメラであるので、図11に示すように、タイプ(Type)は、それに合わせて、[Mounted Device]を選択する。以下、[Mounted Device]を選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、Typeとして、[Mounted Device]を設定する。そして、ボタン441が押されると、制御部51は、Typeとして、[Mounted Device]を登録する。ここで、[Mounted Device]が選択された場合は、仮想対象物72Aを取り付ける取付部分として、「Tool」は選択できず、「Joint」のみが選択可能である。また、このような選択の制限がなされないようにしてもよい。
また、作業者は、ダイアログ42のドロップダウンリスト424で、仮想対象物72Aを取り付ける取付部分(Joint)、すなわち、取付部分に設けられている座標系を「1」、「2」、・・・の番号で選択する操作指示を行う。
この場合、関節171~関節176には、それぞれ、座標系が設定されており、各座標系は、それぞれ、前記番号と対応付けがなされている。例えば、「5」は、仮想アーム14Aと仮想アーム15Aとを連結している仮想関節175Aに設けられている座標系42A(図14参照)に対応している。以下、「5」を選択した場合、すなわち、取付部分として仮想関節175A(仮想関節175Aに設けられている座標系42A)を選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、取付部分として、「仮想関節175A(座標系42A)」を設定する。これにより、図15に示すように、制御部51は、仮想対象物72Aを仮想関節175Aに配置する。
そして、ボタン441(図8参照)が押されると、制御部51は、取付部分として、「仮想関節175A(座標系42A)」を登録する。これにより、制御部51は、仮想対象物72Aを仮想関節175Aに取り付ける。すなわち、制御部51は、仮想ロボット1Aが動作した場合、仮想関節175Aと仮想対象物72Aとを連動させる。
また、作業者が[Render Object Origin]と表示されたチェックボックス451にチェックを入れる操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、表示装置31に、仮想対象物72A(選択しているオブジェクト)の原点座標系47A(座標系)を表示させる。この原点座標系47Aは、仮想対象物72Aの所定の点を原点とし、互いに直交する3軸を有する座標系である。本実施形態では、原点座標系47Aの原点は、仮想対象物72Aから離間した位置に配置されている。
また、作業者が[Render Selected Joint]と表示されたチェックボックス453にチェックを入れる操作指示を行い、外部入出力部53が前記操作指示を受け付けると、制御部51は、表示装置31に、ドロップダウンリスト424で選択した仮想関節175Aに設けられている座標系42Aを表示させる。
これにより、仮想対象物72Aの原点座標系47Aと座標系42Aとが一致していることを目視で確認することで、仮想ロボット1Aに対する仮想対象物72Aの位置合わせを容易かつ適確に行うことができる。
なお、以上説明した操作手順および動作以外については、仮想ロボット1Aに仮想対象物71Aを取り付ける場合と同様であるので、その説明は省略する。
以上のようにして、図12に示すように、仮想ロボット1Aに仮想対象物71A、72Aが取り付けられる。
以上説明したように、ロボットシステム100によれば、シミュレーションにおいて、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを行うことにより、容易に、仮想対象物71Aを取付部分に配置させ、仮想ロボット1Aの動作に連動して仮想対象物71Aを動作させることができる。これにより、容易に、実機に即したシミュレーションを行うことができる。
また、シミュレーションを行って、オフラインティーチングを行うことができ、ロボット1の動作プログラムの作成、検証を行うことができる。
以上説明したように、シミュレーション装置5は、ロボット1を仮想化した仮想ロボット1Aによるシミュレーションを行うシミュレーション装置である。シミュレーション装置5は、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを受け付ける外部入出力部53(受付部)と、仮想ロボット1Aと、外部入出力部53(受付部)が受け付けた取付部分に取り付けられた仮想対象物71Aとを表示装置31に表示させ、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させる入力を外部入出力部53(受付部)部が受け付けた場合、仮想ロボット1Aの動作に連動して、仮想対象物71Aを動作させる制御部51と、を備える。
このようなシミュレーション装置5によれば、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを行うことにより、容易に、仮想対象物71Aを取付部分に取り付け、仮想ロボット1Aの動作に連動して仮想対象物71Aを動作させることができる。これにより、容易に、実機に即したシミュレーションを行うことができる。
また、取付部分に取り付けられた仮想対象物71Aは、取付部分から位置を変更可能であることが好ましい。これにより、仮想対象物71Aを取付部分から離間した位置に配置させることができる。
また、取付部分は、仮想ロボット1Aが有する仮想関節175Aを含む。これにより、仮想対象物71Aを仮想ロボット1Aの仮想関節175Aに取り付けることができる。
また、外部入出力部53(受付部)は、仮想ロボット1Aが有する複数の座標系からの1つの座標系の選択を受付可能であり、制御部51は、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させる入力を外部入出力部53(受付部)が受け付けた場合、選択された座標系の原点と、仮想対象物71Aが有する座標系の原点とを一致させた状態で、表示装置31に表示させる。これにより、容易に、仮想対象物71Aを適切な位置に配置させることができる。
また、ロボット制御装置2(制御装置)は、シミュレーション装置5によるシミュレーション結果に基づいてロボット1を制御する。
このようなロボット制御装置2(制御装置)によれば、シミュレーション装置5で作成した動作プログラムを用いてロボット1に適切な動作を行わせることができる。
また、ロボット1は、対象物を取り付けることが可能な取付部分を有し、ロボット制御装置2(制御装置)によって制御される。
このようなロボット1によれば、ロボット制御装置2(制御装置)の制御により、適切な動作を行うことができる。
また、シミュレーション装置5は、ロボット1を仮想化した仮想ロボット1Aによるシミュレーションを行うシミュレーション装置であり、プロセッサーを備える制御部51を有する。プロセッサーは、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを受け付け、かつ、仮想ロボット1Aと、受け付けた前記取付部分に取り付けられた仮想対象物71Aとを表示装置31に表示させ、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させる入力を受け付けた場合、仮想ロボット1Aの動作に連動して、仮想対象物71Aを動作させる。
このようなシミュレーション装置5によれば、仮想ロボット1Aと仮想対象物71Aとを連動させて動作させるか否かに関する情報の入力と、仮想ロボット1Aに仮想対象物71Aを取り付ける取付部分に関する情報の入力とを行うことにより、容易に、仮想対象物71Aを取付部分に取り付け、仮想ロボット1Aの動作に連動して仮想対象物71Aを動作させることができる。これにより、容易に、実機に即したシミュレーションを行うことができる。
<第2実施形態>
図17は、第2実施形態に係るロボットシステムの表示装置に表示される画面の一例を示す図である。図18~図23は、それぞれ、第2実施形態に係るロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
以下、第2実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
図19および図21に示すように、第2実施形態のシミュレーション装置5では、仮想ロボット1Aの仮想アーム16Aの先端(仮想アーム16Aと仮想エンドエフェクター6Aとの間)に、仮想対象物である仮想力覚センサー18Aを設ける(取り付ける)ことが可能になっている。厳密には、仮想アーム16Aの先端には、仮想力覚センサー18Aを仮想アーム16Aに取り付けるために用いる仮想フランジ19A(仮想対象物)と、仮想力覚センサー18A(仮想対象物)とが、この順序で設けられる。また、仮想力覚センサー18Aと仮想フランジ19Aとは、一体化しており、連動して動作するので、以下では、仮想力覚センサー18Aと仮想フランジ19Aとの両方を含めて「仮想力覚センサー18A」と呼ぶ。以下、具体的に説明する。
シミュレーション装置5の制御部51は、表示装置31の駆動を制御し、表示装置31が有するディスプレイに画面WD1を表示し(図3参照)、シミュレーションを行うが、そのシミュレーションに先立って、表示装置31が有するディスプレイに、図17に示す画面WD2を表示する。この画面WD2では、仮想力覚センサー18Aに関する各種の情報の登録を行うことができる。
仮想力覚センサー18Aに関する情報の登録を行う場合、作業者は、入力用のテキストボックス471で、仮想力覚センサー18Aのセンサー名を入力する操作指示を行う。本実施形態では、センサー名として、「ForceSensor1」を入力する。外部入出力部53が前記操作指示を受け付けると、制御部51は、センサー名として、「ForceSensor1」を登録する。
また、作業者は、ドロップダウンリスト472で、仮想力覚センサー18Aを設ける仮想ロボット(ロボット接続)を「1」、「2」、・・・の番号で選択する操作指示を行う
。
ここで、複数の仮想ロボット(例えば、仮想垂直多関節ロボット、仮想スカラーロボット等の仮想水平多関節ロボット)は、それぞれ、前記番号と対応付けがなされている。また、仮想力覚センサー18Aを設けないことと、前記番号とが対応付けされている。例えば、「1」は、図18に示す仮想ロボット1Aに対応している。また、「3」は、仮想力覚センサー18Aを設けないことに対応している。以下、「1」を選択した場合、すなわち、仮想ロボット1Aを選択した場合を例に挙げて説明する。外部入出力部53が前記操作指示を受け付けると、制御部51は、仮想ロボットとして、「仮想ロボット1A」を登録する。
前記登録が完了すると、シミュレーション装置5によりシミュレーションを行うことが可能になる。なお、以下のシミュレーションの説明では、仮想力覚センサー18Aを仮想ロボット1Aに取り付けるための操作手順については、第1実施形態と同様または少し変更したものであるので、その説明は省略する。
まず、仮想ロボット1Aの仮想アーム16Aの先端に、仮想力覚センサー18Aを設けるシミュレーションについて説明する。
図18に示すように、仮想アーム16Aの先端に仮想エンドエフェクター6Aが設けられていない場合は、図19に示すように、仮想力覚センサー18Aは、仮想アーム16Aの先端に設けられる(配置される)。すなわち、制御部51は、仮想エンドエフェクター6Aが仮想ロボット1Aに設けられていない状態で、仮想力覚センサー18Aを仮想ロボット1Aに設ける場合、仮想力覚センサー18Aを仮想アーム16Aの先端に配置した状態で表示装置31に表示させる。
また、図20に示すように、仮想アーム16Aの先端に仮想エンドエフェクター6Aが設けられている場合は、図21に示すように、仮想エンドエフェクター6Aが仮想アーム16Aの先端から先端方向に移動して仮想アーム16Aから離間し、仮想力覚センサー18Aは、仮想アーム16Aと仮想エンドエフェクター6Aとの間に設けられる。すなわち、仮想アーム16Aの先端に仮想力覚センサー18Aが設けられ、仮想力覚センサー18Aの先端に仮想エンドエフェクター6Aが設けられる。すなわち、制御部51は、仮想エンドエフェクター6Aが仮想ロボット1Aに設けられた状態で、仮想力覚センサー18Aを仮想ロボット1Aに設ける場合、仮想エンドエフェクター6Aの位置を先端方向に変更し、仮想力覚センサー18Aを仮想ロボット1Aと仮想エンドエフェクター6Aとの間に配置した状態で表示装置31に表示させる。これにより、容易に、実機と同様の位置に、仮想力覚センサー18Aおよび仮想エンドエフェクター6Aを配置させることができる。
また、図22に示すように、仮想力覚センサー18Aを設ける前は、ツールセンターポイントPは、仮想アーム16Aの先端中心である。そして、図23に示すように、仮想力覚センサー18Aを設けた後は、ツールセンターポイントPは、仮想力覚センサー18Aの先端中心に変更される。これにより、別途、ツールセンターポイントPを変更する操作指示を行う必要がなく、労力を軽減することができ、また、迅速にシミュレーションを行うことができる。
なお、このようにツールセンターポイントPが自動的に変更される設定と、仮想力覚センサー18Aを設けてもツールセンターポイントPが変更されない設定とのいずれか一方を作業者が選択できるようになっていてもよい。
以上のような第2実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、仮想対象物は、仮想力覚センサー18Aを含む。これにより、仮想力覚センサー18Aを取付部分に取り付けることができる。
また、仮想対象物は、仮想エンドエフェクター6Aを含み、制御部51は、仮想エンドエフェクター6Aが仮想ロボット1Aに取り付けられた状態で、仮想力覚センサー18Aを仮想ロボット1Aに取り付ける場合、仮想エンドエフェクター6Aの位置を変更し、仮想力覚センサー18Aを仮想ロボット1Aと仮想エンドエフェクター6Aとの間に取り付けた状態で表示装置31に表示させる。これにより、容易に、実機と同様の位置に、仮想力覚センサー18Aおよび仮想エンドエフェクター6Aを配置させることができる。
<第3実施形態>
図24および図25は、それぞれ、第3実施形態に係るロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
以下、第3実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
図24に示すように、第3実施形態のシミュレーション装置5では、制御部51は、仮想力覚センサー18Aが有する力覚センサー座標系91Aを表示装置31に表示させる。
この力覚センサー座標系91Aは、互いに直交する3軸を有する3次元の座標系であり、各軸は、力覚センサー18Aが検出する力の検出軸である。これにより、力覚センサー座標系91Aを把握することができる。
また、制御部51は、仮想エンドエフェクター7Aまたは仮想エンドエフェクター7Aが保持する仮想保持対象物80Aが、他の仮想物体に作用する作用点96Aを原点としたフォース座標系92Aを表示装置31に表示させる。本実施形態では、フォース座標系92Aとして、仮想エンドエフェクター7Aが保持する仮想保持対象物80Aが他の仮想物体に作用する作用点96Aを原点とした座標系を例に挙げて説明する。また、本実施形態では、仮想保持対象物80Aが仮想ワークの場合を例に挙げて説明する。このフォース座標系92Aは、仮想力覚センサー18Aで検出される力を用いた機能を実行するための互いに直交する3軸を有する3次元の座標系であり、フォース座標系92Aの各軸は、作用点96Aに加わる力の各成分の方向を向いている。これにより、仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aと、フォース座標系92Aとを把握することができる。
また、制御部51は、作用点96Aに作用する力の大きさを表示装置31に表示させる。これにより、仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aに加わる力を把握することができる。
また、作用点96Aに作用する力の大きさの表示方法は、特に限定されず、例えば、力の大きさを数値で表示する方法、グラフで表示する方法、矢印の大きさで表示する方法等が挙げられる。また、矢印の大きさで表示する方法の場合、フォース座標系92Aを構成する矢印の大きさで表示してもよく、また、フォース座標系92Aを構成する矢印とは別の矢印を表示し、その別の矢印の大きさで表示してもよい。
本実施形態では、作用点96Aに作用する力の大きさは、フォース座標系92Aを構成する矢印の大きさで表される。また、矢印の大きさとは、矢印の長さ、矢印の太さを言いう。また、力の大きさは、矢印の長さのみで表示してもよく、また、矢印の太さのみで表示してもよく、また、矢印の長さおよび太さで表示してもよい。
具体的には、フォース座標系92Aの各軸方向の並進力は、フォース座標系92Aの各軸における矢印で表示される。また、各並進力の大きさは、それぞれ、矢印の長さと太さとの少なくとも一方で表される。
また、図25に示すように、フォース座標系92Aの各軸周りのトルク(モーメント)は、フォース座標系92Aの各軸周りの矢印で表示される。また、各トルクの大きさは、それぞれ、矢印の長さと太さとの少なくとも一方で表される。
これにより、仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aに加わる力の大きさを簡素な構成で判り易く表現することができる。これによって、その力の大きさを容易かつ迅速に把握することができる。
以上のような第3実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、シミュレーション装置5は、制御部51は、仮想力覚センサー18Aが有する力覚センサー座標系91Aを表示装置31に表示させる。これにより、力覚センサー座標系91Aを把握することができる。この力覚センサー座標系91Aの各軸は、仮想力覚センサー18Aが検出する力の検出軸である。
また、仮想対象物は、仮想エンドエフェクター7Aを含み、制御部51は、仮想エンドエフェクター7Aまたは仮想エンドエフェクター7Aが保持する仮想保持対象物80Aが、他の仮想物体に作用する作用点96Aを原点としたフォース座標系92Aを表示装置31に表示させる。これにより、仮想エンドエフェクター7Aまたは仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aと、フォース座標系92Aとを把握することができる。このフォース座標系92Aは、仮想力覚センサー18Aで検出される力を用いた機能を実行するための座標系であり、フォース座標系92Aの各軸は、作用点96Aに加わる力の各成分の方向を向いている。
また、制御部51は、作用点96Aに作用する力の大きさを表示装置31に表示させる。これにより、仮想エンドエフェクター7Aまたは仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aに加わる力を把握することができる。
また、作用点96Aに作用する力の大きさは、矢印の大きさで表される。これにより、仮想エンドエフェクター7Aまたは仮想エンドエフェクター7Aが保持する仮想保持対象物80Aの作用点96Aに加わる力を容易に把握することができる。
<第4実施形態>
図26および図27は、それぞれ、第4実施形態に係るロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
以下、第4実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
第4実施形態のシミュレーション装置5は、取付部分とは異なる仮想物体と、仮想対象物との干渉(例えば、衝突、接触等)を検出し、干渉した場合(干渉を検知した)は、その仮想物体と仮想対象物とが干渉したことを表示装置31に表示(報知)する機能を有している。
図26および図27に示すように、本実施形態では、仮想対象物として、仮想力覚センサー18Aと、仮想力覚センサー18Aを仮想アーム16Aに取り付けるために用いる仮想フランジ19Aとを例に挙げ、また、取付部分とは異なる仮想物体として、仮想物体76Aを例に挙げて説明する。なお、仮想対象物としては、この他、第1実施形態で例示したもの等が挙げられ、例えば、仮想エンドエフェクター17Aが把持(保持)した仮想ワーク、仮想ロボット1に取り付けられた仮想カメラ等でもよい。以下、具体的に説明する。
制御部51は、仮想ロボット1Aと仮想力覚センサー18Aとを連動させて動作させる入力を外部入出力部53が受け付けた場合、仮想力覚センサー18Aと仮想物体76Aとの干渉を検出し、また、仮想フランジ19Aと仮想物体76Aとの干渉を検出する。この場合、仮想力覚センサー18Aと仮想物体76Aとの干渉の検出と、仮想フランジ19Aと仮想物体76Aとの干渉の検出とは、いずれを先に行ってもよく、また、同時に行ってもよい。
また、制御部51は、仮想力覚センサー18Aと仮想アーム16との干渉は検出せず、また、仮想フランジ19Aと仮想アーム16との干渉は検出しない。また、制御部51は、仮想力覚センサー18Aと仮想エンドエフェクター(図示せず)との干渉は検出せず、また、仮想フランジ19Aと仮想エンドエフェクター(図示せず)との干渉は検出しない。また、第1実施形態の仮想対象物71A、72Aの場合は、制御部51は、仮想対象物71Aと仮想エンドエフェクター17Aとの干渉は検出せず、また、仮想対象物72Aと仮想関節175(仮想アーム14および仮想アーム15)との干渉は検出しない。
図26に示すように、仮想力覚センサー18Aと仮想物体76Aとが干渉した場合は、制御部51は、仮想力覚センサー18Aと仮想物体76Aとが干渉したことを表示装置31に表示させる。これにより、容易に、仮想力覚センサー18Aと仮想物体76Aとが干渉したことを把握することができる。
また、図27に示すように、仮想フランジ19Aと仮想物体76Aとが干渉した場合は、制御部51は、仮想フランジ19Aと仮想物体76Aとが干渉したことを表示装置31に表示させる。これにより、容易に、仮想フランジ19Aと仮想物体76Aとが干渉したことを把握することができる。
また、仮想力覚センサー18Aおよび仮想フランジ19Aと、仮想物体76Aとが干渉した場合(図示せず)は、制御部51は、仮想力覚センサー18Aおよび仮想フランジ19Aと、仮想物体76Aとが干渉したことを表示装置31に表示させる。これにより、容易に、仮想力覚センサー18Aおよび仮想フランジ19Aと、仮想物体76Aとが干渉したことを把握することができる。
したがって、実機の作成前に、周辺機器の配置の検証、動作経路の検証等を容易に行うことができる。
ここで、干渉したことを表示装置31に表示するには、表示装置31の表示態様を変更するが、その表示方法(報知方法)としては、特に限定されず、例えば、表示装置31に文字で表示する方法、色を変更する方法等が挙げられる。
本実施形態では、干渉したものの色を変更する方法を採用している。
すなわち、図26に示すように、仮想力覚センサー18Aと仮想物体76Aとが干渉した場合は、仮想力覚センサー18Aの全体の色を他の色に変更する。なお、図26では、仮想力覚センサー18Aに斜線を付して色を変更したことを示している。これにより、容易かつ適確に、仮想フランジ19Aではなく、仮想力覚センサー18Aと仮想物体76Aとが干渉したことを把握することができる。なお、仮想力覚センサー18Aの全体の色ではなく、一部の色を他の色に変更するようにしてもよい。また、仮想力覚センサー18Aのみではなく、仮想物体76Aの全体の色または一部の色も他の色に変更するようにしてもよい。この場合、仮想物体76Aの変更後の色と、仮想力覚センサー18Aの変更後の色とは、同一でもよく、また、異なっていてもよい。
また、変更後の色は、特に限定されず、諸条件に応じて適宜設定可能であり、例えば、赤色、黄色、橙色、紫色等が挙げられ、1色を用いてもよく、また、複数色を用いてもよい。また、前記の色のうちでは、赤色は、仮想力覚センサー18Aと仮想物体76Aとが干渉したことをイメージし易い色であり、好適である。また、変更後の色は、種々の色に変更可能、例えば、赤色、黄色、橙色、紫色等の複数色のうちから任意の色を選択できるようにしてもよい。
また、図27に示すように、仮想フランジ19Aと仮想物体76Aとが干渉した場合は、仮想フランジ19Aの全体の色を他の色に変更する。仮想フランジ19Aの変更後の色と、仮想力覚センサー18Aの変更後の色とは、同一でもよく、また、異なっていてもよい。なお、図27では、仮想フランジ19Aに斜線を付して色を変更したことを示している。これにより、容易かつ適確に、仮想力覚センサー18Aではなく、仮想フランジ19Aと仮想物体76Aとが干渉したことを把握することができる。なお、仮想フランジ19Aの全体の色ではなく、一部の色を他の色に変更するようにしてもよい。また、仮想フランジ19Aのみではなく、仮想物体76Aの全体の色または一部の色も他の色に変更するようにしてもよい。この場合、仮想物体76Aの変更後の色と、仮想フランジ19Aの変更後の色とは、同一でもよく、また、異なっていてもよい。なお、変更後の色については、仮想力覚センサー18Aと同様であるので、その説明は省略する。
また、図示しないが、仮想力覚センサー18Aおよび仮想フランジ19Aと、仮想物体76Aとが干渉した場合は、仮想力覚センサー18Aおよび仮想フランジ19Aの全体の色を他の色に変更する。仮想フランジ19Aの変更後の色と、仮想力覚センサー18Aの変更後の色とは、同一でもよく、また、異なっていてもよい。これにより、容易かつ適確に、仮想力覚センサー18Aおよび仮想フランジ19Aと仮想物体76Aとが干渉したことを把握することができる。なお、仮想力覚センサー18Aの全体の色ではなく、一部の色を他の色に変更するようにしてもよい。また、仮想フランジ19Aの全体の色ではなく、一部の色を他の色に変更するようにしてもよい。また、仮想力覚センサー18Aおよび仮想フランジ19Aのみではなく、仮想物体76Aの全体の色または一部の色も他の色に変更するようにしてもよい。この場合、仮想物体76Aの変更後の色と仮想力覚センサー18Aの変更後の色とは、同一でもよく、また、異なっていてもよい。また、仮想物体76Aの変更後の色と仮想フランジ19Aの変更後の色とは、同一でもよく、また、異なっていてもよい。なお、変更後の色については、仮想力覚センサー18Aと同様であるので、その説明は省略する。
以上のような第4実施形態によっても、前述した実施形態と同様の効果を発揮することができる。
以上説明したように、制御部51は、仮想ロボット1Aと仮想力覚センサー18A(仮想対象物)とを連動させて動作させる入力を外部入出力部53(受付部)が受け付けた場合、取付部分とは異なる仮想物体76Aと、仮想力覚センサー18A(仮想対象物)とが干渉した場合、取付部分とは異なる仮想物体76Aと仮想力覚センサー18A(仮想対象物)とが干渉したことを表示装置31に表示させる。これにより、容易に、取付部分とは異なる仮想物体76Aと仮想力覚センサー18A(仮想対象物)とが干渉したことを把握することができる。これによって、実機の作成前に、周辺機器の配置の検証、動作経路の検証等を容易に行うことができる。
<第5実施形態>
図28から図34は、それぞれ、第5実施形態に係るロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
以下、第5実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
図28から図34に示す様に、第5実施形態のシミュレーション装置5では、制御部51は、仮想ロボット1Aの動作方向を表示装置31に表示させる。本実施形態において、制御部51は、フォース座標系922Aを表示させ、仮想アーム16Aの並進方向を示す矢印502Aと回転方向を示す矢印504Aとの少なくとも一方を仮想ロボット1Aの動作方向として表示装置31に表示させる。なお、本実施形態において、仮想アーム16Aの並進方向とは、仮想アーム16Aの先端中心P2が移動する方向である。本実施形態において、フォース座標系922Aは、仮想アーム16Aの先端中心P2を原点として有し、仮想力覚センサー18Aで検出される力を用いた機能を実行するための互いに直交する3軸を有する3次元の座標系である。本実施形態におけるフォース座標系922Aを座標変換することによって、例えば、第3実施形態におけるフォース座標系92Aが得られる。本実施形態において、制御部51は、教示された作業に応じて仮想アーム16Aの動作量を算出し、算出された動作量に応じて並進方向を示す矢印502Aと回転方向を示す矢印504Aとを作成する。
図28では、仮想アーム16AがFz方向に沿った方向に並進する場合における、表示の一例が示されている。本実施形態において、矢印502Aの示す方向は、動作に伴う押し付けの方向である。本実施形態では、制御部51は、並進力の大きさに応じて矢印502Aの大きさを変化させる。
本実施形態において、シミュレーション装置5は、仮想アーム16AがFx方向とFy方向とFz方向とのうちの複数の方向成分が合成された方向に移動する場合であっても、矢印502Aを表示可能である。例えば図29に示す様に、シミュレーション装置5は、仮想アーム16AがFz方向成分とFy方向成分とが合成された方向に沿って並進する場合であっても、矢印502Aを表示可能である。また、図30に示す様に、仮想アーム16AがFx方向成分とFy方向成分とFz方向成分とが合成された方向に沿って並進する場合であっても、矢印502Aを表示可能である。
図31では、仮想アーム16AがFz方向を回転軸として回転する場合、つまりTz方向に回転する場合における、表示の一例が示されている。本実施形態において、矢印504Aは、動作に伴う回転方向を示している。また、矢印506Aは、仮想アーム16Aが回転する際の回転軸を示している。本実施形態では、制御部51は、回転力の大きさに応じて矢印502Aの大きさを変化させる。なお、回転軸を示す矢印506Aと並進方向を示す矢印502Aとが互いに判別可能となる様に表示されることが好ましい。この場合には、例えば、矢印506Aと矢印502Aはそれぞれ異なる色で表示されていても良く、また、それぞれ異なる大きさで表示されていても良い。
本実施形態において、シミュレーション装置5は、仮想アーム16AがFx方向とFy方向とFz方向とのうちの複数の方向成分が合成された方向に延びる回転軸周りに回転する場合、つまりTx方向とTy方向とTz方向とのうちの複数の回転方向で回転する場合であっても、矢印504Aを表示可能である。図32に示す様に、シミュレーション装置5は、仮想アーム16AがTz回転方向成分とTy回転方向成分とが合成された回転軸周りに回転する場合であっても、矢印506Aを表示可能である。また、図33に示す様に、仮想アーム16AがTx回転方向成分とTy回転方向成分とTz回転方向成分とが合成された回転軸周りに回転する場合であっても、矢印506Aを表示可能である。
本実施形態において、シミュレーション装置5は、仮想ロボット1Aが仮想アーム16Aの並進と回転との両方を行う場合であっても、矢印502A、504Aを表示可能である。例えば図34では、仮想アーム16AがFz方向に並進し、かつ、Tz方向に回転する場合における、表示の一例が示されている。
以上説明した第5実施形態のシミュレーション装置5によれば、制御部51は、仮想ロボット1Aの動作方向を表示装置31に表示させる。このため、作業者は、ロボット1を実際に動作させることなく、シミュレーション装置5を用いて仮想ロボット1Aの動作方向を確認することができる(図28から図34の502A、504A参照)。これにより、例えば図7から図11における[Offset From Selected Tool or Joint]46を用いて作業を教示する場合において、作業者は、実際にロボット1を動作させることなく、入力した各数値の正負が正しいか否かを確認できる。
なお、本実施形態において、制御部51は、仮想アーム16Aの先端中心を原点とするフォース座標系922Aを基準として、矢印502A、504A、506Aを作成しているが、これに限定されない。例えば、仮想アーム16Aの先端に仮想エンドエフェクター17Aが設けられている場合には、制御部51は、仮想エンドエフェクターの先端中心を原点とするツール座標系を基準として、矢印502A、504A、506Aを作成してもよい。
<第6実施形態>
図35および図36は、それぞれ、第6実施形態に係るロボットシステムのシミュレーション装置が行うシミュレーションの一例を示す図である。
以下、第6実施形態について説明するが、前述した実施形態との相違点を中心に説明し、同様の事項はその説明を省略する。
第6実施形態のシミュレーション装置5では、制御部51は、仮想ロボット1Aの動作の目標終了位置を示すための進入検出平面510を設定し、表示装置31に表示させる。本実施形態において、制御部51は、進入検出平面510によって区画された空間のうち、一方を仮想アーム16Aが動作の目標終了位置を通過していることを示す内側512と設定する。また、制御部51は、進入検出平面510によって区画された空間のうち、他方を仮想アーム16Aが動作の目標終了位置に到達していないことを示す外側514と設定する。なお、本実施形態において、進入検出平面510は端部を有する予め定められた大きさの平面として表示装置31に表示されている。
制御部51は、例えば、作業者によって設定されたエンドエフェクター17Aの動作開始位置と移動方向と移動距離とに応じて算出される動作の目標終了位置を用いて進入検出平面510を作成する。具体的には、制御部51は、例えば目標終了位置にエンドエフェクター17Aが移動した場合における移動方向に直交し、目標終了位置におけるエンドエフェクター17Aの先端中心を含む平面を進入検出平面510として作成する。
制御装置51は、進入検出平面510上に原点Oを有する座標系520Aを表示する。座標系520Aは、仮想ロボット1Aの動作からは独立した座標系である。本実施形態において、座標系520AのZ軸は、進入検出平面510に直行する座標軸である。座標系520Aの+Z軸方向は、進入検出平面510から内側512に向かって離れる方向である。座標系520Aが表示されることにより、作業者は、内側512と外側514とを容易に判別できる。
図35及び図36に示したように、本実施形態において、制御部51は、進入検出平面510とともに、教示された作業を実行した場合における仮想ロボット1Aの作業終了時の姿勢を表示装置31に表示させる。図35に示す様に、教示された作業をシミュレーションした結果、仮想エンドエフェクター17Aが目標終了位置に到達していない場合には、仮想エンドエフェクター17Aが進入検出平面510の外側514に位置している。図36に示す様に、教示された作業をシミュレーションした結果、仮想エンドエフェクター17Aが目標終了位置を通過している場合には、仮想エンドエフェクター17Aの先端側が進入検出平面510の内側512に位置している。なお、教示された作業をシミュレーションした結果、仮想エンドエフェクター17Aが目標終了位置に到達している場合には、仮想エンドエフェクター17Aの先端側は進入検出平面510上に位置する。
以上説明した第6実施形態によれば、制御部51は、仮想ロボット1Aの動作の目標終了位置を示すための進入検出平面510を設定し、表示装置31に表示させる。このため、作業者は、ロボット1を実際に動作させることなく、シミュレーション装置5を用いて仮想ロボット1Aの教示した動作の終了位置と目標終了位置と比較することができる。このため、作業者は、教示した動作の終了位置が適切であるかを容易に確認することができる。
なお、本実施形態において、制御部51は、進入検出平面510を用いて仮想ロボット1Aの動作の終了位置を表示させているが、これに限定されない。例えば、制御部51は、進入検出平面510に代えて、終了位置におけるツール座標系41AのZ軸に直交する無限平面を表示させてもよい。また、制御部51は、進入検出平面510に代えて、三次元的な広がりを有する空間を設定し、表示させてもよい。この場合に表示される空間は、例えば、終了位置におけるツールセンターポイントPを中心とした予め定められた大きさの空間であってもよい。これらの場合であっても、進入検出平面510の表示する場合と同様に、作業者は、ロボット1を実際に動作させることなく、ミュレーション装置5を用いて教示した動作の終了位置が適切であるかを容易に確認することができる。
また、制御部51は、座標系520Aの表示に代えて、仮想ロボット1Aの色を変化させることによって、仮想ロボット1Aが進入検出平面510の内側512と外側514とのいずれかに位置しているかを表示してもよい。具体的には、例えば、仮想ロボット1Aのうち内側512にある領域と外側514にある領域とを異なる色で表示してもよい。この場合であっても、作業者は、内側512と外側514とを容易に判別できる。
また、制御部51は、仮想ロボット1Aに加えて、ロボット1の周囲に配置されている他のロボットに対応した他の仮想ロボットを表示させてもよい。この場合には、作業者は、仮想ロボット1Aの動作の終了位置と他の仮想ロボットの位置との関係を確認することができる。仮想ロボット1Aに加えて他の仮想ロボットを表示装置31に表示させる場合において、仮想ロボット1Aと他の仮想ロボットとは、異なる色で表示されることが好ましい。これにより、仮想ロボット1Aを含む複数の仮想ロボットが表示されている場合であっても、作業者は、進入検出平面510に進入したロボットが仮想ロボット1A自身であるか、他の仮想ロボットであるか、を判別できる。
また、制御部51は、仮想ロボット1Aの進入検出平面510に加えて、他の仮想ロボットにおける進入検出平面を表示させてもよい。この場合には、制御部51は、他の仮想ロボットが動作に応じて移動しうる領域を他の仮想ロボットの検出平面を用いて表示装置31に表示させることができる。なお、自身の進入検出平面510と他の仮想ロボットにおける進入検出平面とは異なる色で表示されることが好ましい。この場合には、作業者は、仮想ロボット1Aが仮想ロボット1A自身の進入検出平面510に到達した場合と、他の仮想ロボットの進入検出平面に到達した場合と、を容易に区別することができる。
以上、第1実施形態から第6実施形態を用いてロボットシステム100について説明した。なお、「ロボットシステム」は、図37、図38に示す形態であってもよい。
図37、図38は、それぞれ、ロボットシステムの他の構成例を示す図(ブロック図)である。
図37には、ロボット1に直接コンピューター63が接続されたロボットシステム100Bの全体構成図を示す。ロボット1の制御はコンピューター63に存在するプロセッサーによりメモリーにある指令を読み出して直接実行される。コンピューター63は、前述したロボット制御装置2およびシミュレーション装置5の機能を有する。
図38には、コントローラー61が内蔵させたロボット1とコンピューター66とが接続され、コンピューター66がLAN(Local Area Network)等のネットワーク65を介してクラウド64に接続されているロボットシステム100Cの全体構成図を示す。ロボット1の制御はコンピューター66に存在するプロセッサーによりメモリーにある指令を読み出して実行されてもよいし、クラウド64上に存在するプロセッサーによりコンピューター66を介してメモリーにある指令を読み出して実行されてもよい。コントローラー61が、前述したロボット制御装置2の機能を有し、コンピューター66またはクラウド64が、前述したシミュレーション装置5の機能を有する。
また、ロボットシステム100B、100Cでは、各プロセッサーは、それぞれ、1つの装置で構成されていてもよく、また、複数の装置で構成されていてもよい、すなわち、複数の単位プロセッサーに分かれていてもよい。
以上、本発明のシミュレーション装置、制御装置およびロボットを図示の実施形態に基づいて説明したが、本発明は、これに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、他の任意の構成物が付加されていてもよい。
また、本発明は、前記各実施形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
また、前述した実施形態では、ロボットとして、6軸の垂直多関節ロボットを例示したが、当該ロボットは、これに限らず、例えば、スカラーロボット等の水平多関節ロボット、脚部を有する脚式歩行(走行)ロボット等の他の形態のロボットであってもよい。また、当該ロボットは、単腕ロボットに限定されず、例えば、双腕ロボット等の他のロボットであってもよい。したがって、ロボットアーム(可動部)の数は、1つに限定されず、2つ以上であってもよい。また、ロボットアーム(可動部)が有するアームの数は、前述した実施形態では、6つであるが、1つ~5つまたは7つ以上であってもよい。