このアプリケーションの一部のコンテンツは現時点では利用できません。
このような状況が続く場合は、にお問い合わせくださいフィードバック & お問い合わせ
1. (WO2018180301) 情報処理装置、情報処理プログラム、情報処理方法
Document

明 細 書

発明の名称 情報処理装置、情報処理プログラム、情報処理方法

技術分野

0001  

背景技術

0002  

先行技術文献

特許文献

0003  

発明の概要

発明が解決しようとする課題

0004   0005  

課題を解決するための手段

0006  

発明の効果

0007  

図面の簡単な説明

0008  

発明を実施するための形態

0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055  

符号の説明

0056  

請求の範囲

1   2   3   4   5   6  

図面

1   2   3   4   5   6   7   8   9   10  

明 細 書

発明の名称 : 情報処理装置、情報処理プログラム、情報処理方法

技術分野

[0001]
 本発明は、情報処理装置、情報処理プログラム、情報処理方法に関する。

背景技術

[0002]
 工場のライン等で用いられるロボットやワークを仮想空間上に配置し、ロボットの動作プログラムが作成されることがある。一般に、仮想空間は、仮想空間に設けられる複数のモデルのそれぞれを示すCAD(Computer Aided Design)データに基づいて表現される(例えば、特許文献1参照)。

先行技術文献

特許文献

[0003]
特許文献1 : 特開2002-66967号公報

発明の概要

発明が解決しようとする課題

[0004]
 CADデータを用いてロボットの動作プログラムを生成する際、CADデータに微小な修正が必要となる場合、または、一時的にロボット動作を確認する必要が生じる場合がある。従来はCADデータそのものを修正し、修正されたCADデータから再度ロボットの動作プログラムを生成しており、多くの工数を要していた。
[0005]
 本発明は上記課題を鑑みてなされたものであり、CADデータを修正することなく、仮想空間にモデルを柔軟に追加することを目的とする。

課題を解決するための手段

[0006]
 上記課題を解決する本発明の情報処理装置は、仮想空間における位置情報を含むCADデータに基づく第1のモデルが配置された前記仮想空間に含まれる複数の座標系のうち、第1の指示入力に基づいて、一の座標系を選択する第1選択部と、前記仮想空間における位置情報を含まない第2のモデルを示す第1情報を取得する第1取得部と、前記第1選択部により選択される座標系における位置を示す第2情報を取得する第2取得部と、前記第1及び第2情報に基づいて、前記仮想空間における前記第2のモデルの位置を、前記位置に設定する設定部と、を備えることを特徴とする。

発明の効果

[0007]
 本発明によれば、CADデータを修正することなく、仮想空間にモデルを柔軟に追加することが可能となる。

図面の簡単な説明

[0008]
[図1] ロボット教示装置10の構成を示す図である。
[図2] 記憶装置22に格納される情報の一例を示す図である。
[図3] 仮想空間100を設定する画面の一例を示す図である。
[図4] 仮想空間100に配置されたブロックを示す図である。
[図5] CPU20に実現される機能ブロックを示す図である。
[図6] 仮想的な座標系を追加する際の画面の一例を示す図である。
[図7] 棚を移動する際の画面の一例を示す図である。
[図8] CPU20が実行する処理の一例を示すフローチャートである。
[図9] 仮想的な座標系が追加された際の仮想空間の一例を示す図である。
[図10] CPU20が実行する処理の一例を示すフローチャートである。

発明を実施するための形態

[0009]
---ロボット教示装置10の構成---
 以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、ロボット教示装置10の構成を示す図である。
[0010]
 ロボット教示装置10(情報処理装置)は、工場のラインに設置されたアーム型ロボットX(不図示)に対し動作を教示するための装置であり、CPU(Central Processing Unit)20、メモリ21、記憶装置22、入力装置23、表示装置24、及び通信装置25を含んで構成される。
[0011]
 CPU20は、メモリ21や記憶装置22に格納されたプログラムを実行することにより、ロボット教示装置10における様々機能を実現する。
[0012]
 メモリ21は、例えばRAM(Random-Access Memory)等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
[0013]
 記憶装置22は、例えばハードディスク等の不揮発性の記憶手段領域であり、プログラム600や様々なデータ700が格納される。図2は、記憶装置22に格納される情報を示す図である。同図に示すように、プログラム600の中には、アーム型ロボットXに対する教示を行う機能を実現するための教示プログラム610(情報処理プログラム)や、3次元CAD(Computer Aided Design)機能を実現するためのCADプログラム620が含まれる。なお、利用者は、CADプログラム620を実行し、モデルのCADデータを作成する。
[0014]
 また、データ700には、アーム型ロボットXの3次元モデルを示す3次元CADデータDa、作業対象物であるワークの3次元モデルを示す3次元CADデータDb、ワークが載置される棚の3次元モデルを示す3次元CADデータDcが含まれる。3次元CADデータDaは、アーム型ロボットXのモデルが配置される仮想空間のワールド座標系、およびアーム型ロボットXのモデルのローカル座標系の情報(仮想空間での位置情報)を含む。また、3次元CADデータDb,Dcに関しても、3次元CADデータDaと同様である。ただし、本実施形態では、複数(n個)のワークが用いられるため、記憶装置22には、複数のワークのそれぞれに対応する3次元CADデータDb1~3次元CADデータDbnが格納されている。
[0015]
 また、データ700には、アーム型ロボットXを動作させる動作プログラム710も含まれる。なお、ロボット教示装置10は、3次元CADデータを用いながら教示プログラム610を実行することにより、動作プログラム710を生成する。
[0016]
 入力装置23は、例えばタッチパネルやキーボードであり、利用者の操作結果が入力を受け付ける装置である。
[0017]
 表示装置24は、例えばディスプレイであり、各種情報や処理結果を表示する装置である。
[0018]
 通信装置25は、ネットワークインターフェイスなどの通信手段であって、ネットワーク(不図示)を介して外部の各種装置やアーム型ロボットXとの間でデータの送受信を行う。
[0019]
---階層構造画面---
 図3は、仮想空間においてアーム型ロボットX等のモデルの配置を定めるために、利用者が参照・編集する階層構造の画面の一例を示す図である。
[0020]
 画面30は、ワールド座標系や各種構成の階層構造(ツリー構造)を示す画面であり、CPU20が、教示プログラム610を実行することにより表示装置24に表示される。
[0021]
 画面30では、最上位の階層に、ワールド座標系を示す「World」が設定されている。そして、ワールド座標系の下の階層には、アーム型ロボットXのモデルを示す「Robot」と、ワークが載置される棚を示す「棚」が設定されている。このため、「Robot」および「棚」は、仮想空間において、ワールド座標系で定められた位置に配置される。
[0022]
 また、「Robot」の階層の下には、アーム型ロボットXのハンドのモデルを示す「HAND」が設定され、「HAND」の階層の下には、ワークであるオルゴールA1を示す「OG A1」が設定されている。このため、「HAND」は、「Robot」を基準とするローカル座標系で定められた位置に配置され、「OG A1」は、「HAND」を基準とするローカル座標系で定められた位置に配置される。
[0023]
 また、「棚」の階層の下には、10個のオルゴールB1~B10を示す「OG B1」~「OG B10」が設定されている。このため、「OG B1」~「OG B10」は、「棚」を基準とするローカル座標系で定められた位置に配置される。
[0024]
 なお、画面30で示された階層構造では、ある階層の構成の位置が変更されると、その階層の下に配置された構成の位置も同様に変更される。例えば、3次元CADデータDcの値が変更され、「棚」のワールド座標系における位置が変更されると、「棚」の下の階層に設けられた「OG B1」~「OG B10」のワールド座標系における位置も「棚」に伴って移動する。ただし、「OG B1」~「OG B10」のそれぞれの「棚」に対する位置は、「棚」を基準とするローカル座標系で定められている。したがって、「棚」のワールド座標系に対する位置が変更された場合であっても、「OG B1」~「OG B10」のそれぞれの「棚」に対する位置は変化しない。
[0025]
---仮想空間---
 図4は、画面30に含まれる構成を反映した仮想空間100を示す図である。仮想空間100は、CPU20が、教示プログラム610を実行することにより表示装置24に表示される。
[0026]
 仮想空間100には、アーム型ロボット40、オルゴールA1,B1~B10、棚45が設けられている。
[0027]
 アーム型ロボット40は、「Robot」(3次元CADデータDa)に基づいて、表現されたモデルであり、ハンド50と、ハンド50が取り付けられるアーム51とを含む。なお、上述したように、仮想空間100におけるアーム51の位置は、ワールド座標系で定められた位置に配置され、ハンド50の位置は、アーム51を基準とするローカル座標系で定められた位置に配置される。
[0028]
 オルゴールA1は、「OG A1」(3次元CADデータDb1)に基づいて表現された、ワークを示すモデルである。仮想空間100におけるオルゴールA1の位置は、ハンド50を基準とするローカル座標系で定められた位置、ここでは、ハンド50で把持される位置に配置される。
[0029]
 オルゴールB1~B10は、「OG B1」~「OG B10」(3次元CADデータDb2~Db11)に基づいて表現されたモデルである。仮想空間100におけるオルゴールB1~B10の位置は、棚45を基準とするローカル座標系で定められた位置に配置されている。例えば、ここでは、オルゴールB1~B10は、棚45の上に2列で配置される。
[0030]
 棚45は、「棚」(3次元CADデータDc)に基づいて表現されたモデルであり、ワールド座標系で定められた位置に配置される。
[0031]
---CPU20に実現される機能ブロック---
 図5は、CPU20が所定のプログラムを実行することによりCPU20に実現される機能ブロックを示す図である。同図に示すように、CPU20は、表示制御部60、第1選択部61、第2選択部62、第1取得部63、第2取得部64、第3取得部65、設定部66、動作プログラム生成部67、及び送信部68の機能ブロックを備える。
[0032]
 表示制御部60は、入力装置23からの指示やCPU20で実行されるプログラムの処理結果等に基づいて、表示装置24に各種情報を表示する。
[0033]
 第1選択部61は、利用者が仮想空間100に設けられていないブロックを追加する際に、追加するブロックを配置する座標系を選択する。具体的には、ブロックを追加する際の利用者の指示IN1(第1の指示入力)に基づいて、第1選択部61は、複数の座標系から、ブロックの位置の基準となる座標系を選択する。例えば、利用者が、棚45の上にブロックを追加する場合、第1選択部61は、指示IN1に基づいて棚45のローカル座標系を選択する。この結果、表示制御部60は、図6に示すように、棚45の階層の下の階層に、座標入力エリア70、モデル入力エリア71を画面31に表示する。なお、指示IN1は、利用者が、入力装置23の操作結果に基づいて発生し、画面31、画面30に上述したエリアが追加された図面である。
[0034]
 座標入力エリア70には、第1選択部61で選択された座標系における座標が入力される。ここでは、棚45のローカル座標系の座標が入力されることになる。
[0035]
 モデル入力エリア71には、追加されるブロックのモデルを示す情報(例えば、追加する部品の名前)が入力される。
[0036]
 第2選択部62は、利用者が仮想空間100に設けられたブロックの位置を変更する際に、ブロックが配置された座標系を選択する。具体的には、ブロックの位置を変更する際の利用者の指示IN2(第2の指示入力)に基づいて、第2選択部62は、ブロックの配置された座標系を選択する。例えば、利用者が、棚45の位置を変更する場合、第2選択部62は、指示IN2に基づいて棚45の上位の階層のワールド座標系を選択する。この結果、表示制御部60は、図7に示すように、座標入力エリア72を画面32に表示する。
[0037]
 座標入力エリア72には、第2選択部62で選択された座標系における座標が入力される。ここでは、棚の階層の上位の階層の座標系であるワールド座標系の座標が入力される。
[0038]
 第1取得部63は、モデル入力エリア71に入力された、追加されるブロックのモデルを示す情報I1(第1情報)を取得する。
[0039]
 第2取得部64は、座標入力エリア70に入力された位置を示す情報I2(第2情報)を取得する。位置を示す情報I2とは、例えば、入力装置により棚45の指定された位置である。なお、情報I2は、座標入力エリア70に数値を入力されて、座標を示す情報であってもよい。
[0040]
 第3取得部65は、座標入力エリア72に入力された位置を示す情報I3(第3情報)を取得する。位置を示す情報I3とは、例えば、入力装置により棚45の指定された位置である。なお、情報I3は、座標入力エリア72に数値を入力されて、座標を示す情報であってもよい。
[0041]
 設定部66は、情報I1に基づいて追加されたブロックの位置を、情報I2で示された位置に設定する。また、設定部66は、指定されたブロックの位置を、情報I3で示された位置に設定する。
[0042]
 動作プログラム生成部67は、仮想空間100において、利用者が設定する軌道に沿って、アーム型ロボットXの各関節を動作させる動作プログラム710を生成する。また、動作プログラム生成部67は、生成した動作プログラム710を記憶装置22に格納する。
[0043]
 送信部68は、利用者からの指示に基づいて、動作プログラム710を、アーム型ロボットXに送信する。
[0044]
---モデル設置処理---
 図8は、仮想空間100に新なモデル(例えば、仮想的な座標系80)を配置する際の処理の一例を示すフローチャートである。なお、仮想的な座標系80の3次元CADデータDtは、3次元CADデータDa等とは異なり、仮想空間100における位置情報を含まないデータである。また、利用者は、仮想的な座標系80(第2のモデル)を、仮想空間100の棚45の上の所定の位置に配置するよう、入力装置23に所定の操作を行っていることとする。
[0045]
 まず、第1選択部61は、利用者の指示IN1に基づいて、複数の座標系(ワールド座標系、ワークや棚のローカル座標系)から、棚45のローカル座標系を選択する(S100)。そして、表示制御部60は、図6に示すように、棚45の階層の下の階層(棚45を基準とするローカル座標系の階層)に、座標入力エリア70、モデル入力エリア71を表示する(S101)。利用者が、モデル入力エリア71に仮想的な座標系80の3次元CADデータDtを入力すると、第1取得部63は、入力された3次元CADデータDtを情報I1として取得する(S102)。また、利用者が、座標入力エリア70に棚45のローカル座標系の所定の座標を入力すると、第2取得部64は、入力された所定の座標を示す情報を情報I2として取得する(S103)。また、設定部66は、情報I1に基づいて追加された仮想的な座標系80の位置を、仮想空間100の仮の初期位置Pに設定する(S104)。なお、初期位置Pは、例えば、利用者が定めたワールド座標系の所定の座標A(xx,yy,zz)であり、記憶装置22に情報として格納されている。なお、この際、設定部66は、例えば、仮想的な座標系80のローカル座標系の原点が、所定の座標Aとなるように仮想的な座標系80の位置を設定する。そして、設定部66は、仮想的な座標系80の位置を、初期位置Pから、情報I2で示された位置に設定する(S105)。ここで、設定部66は、処理S105において、仮想的な座標系80の位置(座標A(xx,yy,zz))に対し、同次変換行列X1を乗算することにより、仮想的な座標系80の位置を、情報I2で示された位置とする。なお、例えば、情報I2の位置が、棚のローカル座標系の座標B(1,1,1)である場合、設定部66は、座標A(xx,yy,zz)および座標B(1,1,1)に基づいて、同次変換行列X1を計算する。この結果、仮想的な座標系80のローカル座標系の原点が、座標B(1,1,1)となる。そして、表示制御部60は、仮想空間100において、追加された仮想的な座標系80を、設定された位置(例えば、座標B)に表示する(S106)。
[0046]
 なお、ここでは、仮想的な座標系80を追加したが、例えば、カメラ等の部品のモデルであっても良い。この場合、所定の座標が指定されると、図9に示すように、カメラ81が棚45の上の所定の位置に設けられることになる。なお、図9では、便宜上、仮想空間100に含まれるブロックのうち、一部のみを記載している。
[0047]
---モデル位置変更処理---
 図10は、仮想空間100に設置されたモデルの位置を変更する際の処理の一例を示すフローチャートである。なお、ここでは、仮想空間100での棚45(第1のモデル)の位置が、実際の位置からずれている場合、画面32において、棚45の位置を変更する処理を説明する。なお、仮想空間100の棚45の位置に設置できるよう、利用者は、入力装置23に所定の操作を行っていることとする。
[0048]
 まず、第2選択部62は、利用者の指示IN2に基づいて、複数の座標系(ワールド座標系、ワークや棚のローカル座標系)から、棚45の位置を定めるワールド座標系を選択する(S200)。そして、表示制御部60は、選択結果に基づいて、図7に示すように、画面32の「棚」の標記の横に座標入力エリア72を表示する(S201)。そして、利用者が、座標入力エリア72に棚45のワールド座標系の所定の座標を入力すると、第3取得部65は、入力された所定の座標を示す情報を情報I3として取得する(S202)。また、設定部66は、棚45の位置を、情報I3で示された位置に設定する(S203)。表示制御部60は、仮想空間100において、棚45を、処理S203において設定された位置に表示する(S204)。この結果、仮想空間100において、棚45の3次元CADデータDcを変更することなく、棚45の仮想空間100での位置を変更できる。なお、設定部66は、処理S203において、3次元CADデータDcに含まれる棚45の位置の情報(座標ベクトル)に対し、同次変換行列X2を乗算することにより、棚45の位置を変更する。ここで、同次変換行列X2は、棚45の位置の情報(座標ベクトル)と、情報I3に基づく位置の情報(座標ベクトル)とに基づいて、例えば、設定部66が計算する。
[0049]
---まとめ---
 以上、本実施形態のロボット教示装置10について説明した。設定部66は、仮想空間100の位置情報を含まない仮想的な座標系80を、仮想空間100の指定された位置に設定できる(例えば、処理S105)。このため、ロボット教示装置10は、仮想空間100の基となるデータ(3次元CADデータDa~Dc)を変更することなく、仮想空間100に新なモデルを追加することができる。なお、図8のモデル設置処理や図10のモデル位置変更処理が実施された後の仮想空間100は、工場のラインの実際の環境をより正確に反映していることになる。このため、利用者は、このような仮想空間100を用いることにより、精度良くアーム型ロボットXに動作を教示することができる。
[0050]
 また、仮想的な座標系80を仮想空間100に設定する場合、仮想的な座標系80の位置を、ワールド座標系の座標で指定することもできる。しかしながら、本実施形態のように、仮想的な座標系80を棚45の上に設ける場合には、棚45のローカル座標系の座標を用いて仮想的な座標系80の位置を設定した方が、容易に所望の位置に仮想的な座標系80を設けることができる。
[0051]
 また、設定部66は、仮想空間100の棚45の位置を、所望の位置に設定できる(例えば、処理S204)。このため、ロボット教示装置10は、仮想空間100に設けられたモデルのデータを変更することなく、柔軟にモデルの位置を変更することができる。
[0052]
 また、棚45の位置は、棚45が配置された座標系(ワールド座標系)での座標で変更される。このため、利用者は、容易にモデルの位置を変更できる。
[0053]
 なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
[0054]
 本実施形態では、仮想空間100に仮想的な座標系80を追加することとしたが、追加されるモデルはこのようなロボットの抽象的な部品に限られない。例えば、キャリブレーション等の際に用いられるマーク(基準マークやフィデューシャルマーク)や、凸部若しくは凹部の形状がモデルとして、仮想空間に追加されても良い。
[0055]
 また、本実施形態では、処理S102の後に処理S103が実行されているが、これに限られない。例えば、処理S102,103が同時に実行されても良く、処理S103の後に処理S102が実行されても良い。

符号の説明

[0056]
10…ロボット教示装置、20…CPU、21…メモリ、22…記憶装置、23…入力装置、24…表示装置、25…通信装置、30~32…画面、40…アーム型ロボット、45…棚、50…ハンド、51…アーム、60…表示制御部、61…第1選択部、62…第2選択部、63…第1取得部、64…第2取得部、65…第3取得部、66…設定部、67…動作プログラム生成部、68…送信部、70,72…座標入力エリア、71…モデル入力エリア、80…仮想的な座標系、81…カメラ、100…仮想空間、600…プログラム、610…教示プログラム、620…CADプログラム、700…データ、710…動作プログラム

請求の範囲

[請求項1]
 仮想空間における位置情報を含むCADデータに基づく第1のモデルが配置された前記仮想空間に含まれる複数の座標系のうち、第1の指示入力に基づいて、一の座標系を選択する第1選択部と、
 前記仮想空間における位置情報を含まない第2のモデルを示す第1情報を取得する第1取得部と、
 前記第1選択部により選択される座標系における位置を示す第2情報を取得する第2取得部と、
 前記第1及び第2情報に基づいて、前記仮想空間における前記第2のモデルの位置を、前記位置に設定する設定部と、
を備えることを特徴とする情報処理装置。
[請求項2]
 請求項1に記載の情報処理装置であって、
 前記第2取得部は、
 前記第1選択部により選択される座標系における座標を、前記第2情報として取得すること、
 を特徴とする情報処理装置。
[請求項3]
 請求項1または請求項2に記載の情報処理装置であって、
 前記複数の座標系のうち、第2の指示入力に基づいて、前記第1のモデルが配置された座標系を選択する第2選択部と、
 前記第2選択部により選択される座標系における位置を示す第3情報を取得する第3取得部と、
 を更に備え、
 前記設定部は、
 前記第3情報に基づいて、前記仮想空間における前記第1のモデルの位置を、前記第3情報に対応する位置に設定すること、
 を特徴とする情報処理装置。
[請求項4]
 請求項1~請求項3の何れか一項に記載の情報処理装置であって、
 前記第3取得部は、
 前記第2選択部により選択される座標系における座標を、前記第3情報として取得すること、
 を特徴とする情報処理装置。
[請求項5]
 コンピュータに、
 仮想空間における位置情報を含むCADデータに基づく第1のモデルが配置された前記仮想空間に含まれる複数の座標系のうち、第1の指示入力に基づいて、一の座標系を選択する機能と、
 前記仮想空間における位置情報を含まない第2のモデルを示す第1情報を取得する機能と、
 前記第1選択部により選択される座標系における位置を示す第2情報を取得する機能と、
 前記第1及び第2情報に基づいて、前記仮想空間における前記第2のモデルの位置を、前記位置に設定する機能と、
 を実現させる情報処理プログラム。
[請求項6]
 仮想空間における位置情報を含むCADデータに基づく第1のモデルが配置された前記仮想空間に含まれる複数の座標系のうち、第1の指示入力に基づいて、一の座標系を選択し、
 前記仮想空間における位置情報を含まない第2のモデルを示す第1情報を取得し、
 前記第1選択部により選択される座標系における位置を示す第2情報を取得し、
 前記第1及び第2情報に基づいて、前記仮想空間における前記第2のモデルの位置を、前記位置に設定する、
 ことを特徴とする情報処理方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]