JPWO2018180297A1 - ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 - Google Patents
ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 Download PDFInfo
- Publication number
- JPWO2018180297A1 JPWO2018180297A1 JP2019509114A JP2019509114A JPWO2018180297A1 JP WO2018180297 A1 JPWO2018180297 A1 JP WO2018180297A1 JP 2019509114 A JP2019509114 A JP 2019509114A JP 2019509114 A JP2019509114 A JP 2019509114A JP WO2018180297 A1 JPWO2018180297 A1 JP WO2018180297A1
- Authority
- JP
- Japan
- Prior art keywords
- work
- point
- robot
- virtual space
- teaching device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/42—Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
【課題】ロボットがワークを精度良く所望の位置に移動することができる技術を提供する。【解決手段】ロボット教示装置は、仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する第2取得部と、前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、を備える。【選択図】図7
Description
本発明は、ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法に関する。
ロボットを工場のライン等で使用するためには、利用者は、ロボットに対して動きを教示(ティーチング)する必要がある。例えば、特許文献1には、作業対象物であるワークやロボットをコンピュータにより仮想空間上に配置し、ロボットの動作プログラムを作成する技術(ティーチング技術)が開示されている。
特許文献1では、例えば、ロボットのハンドの先端位置(TCP:Tool Center Point)に基づいて、ロボットがワークを移動する際の軌道が計算されている。そのような軌道でワークが移動されると、ロボットのハンドに対するワーク位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等により、ワークを精度良く所望の位置に移動することができないことがある。
本発明は上記課題を鑑みてなされたものであり、ロボットがワークを精度良く所望の位置に移動することができる技術を提供することを目的とする。
上記課題を解決する本発明のロボット教示装置は、仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、前記仮想空間における第2の位置に設けられた前記ワークの前記所定の点を、第2の点として取得する第2取得部と、前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、を備えることを特徴とする。
本発明によれば、ワークの所定の点に基づいて軌道が計算されるため、ロボットがワークを精度良く所望の位置に移動することが可能となる。
−−−ロボット教示装置10の構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、ロボット教示装置10の構成を示す図である。ロボット教示装置10は、工場のラインに設置されたアーム型ロボットX(不図示)に対し動作を教示するための装置であり、CPU(Central Processing Unit)20、メモリ21、記憶装置22、入力装置23、表示装置24、及び通信装置25を含んで構成される。なお、アーム型ロボットXは、6軸(x軸、y軸、z軸、および各軸の回転方向θx、θy、θz)の多関節のロボットである。
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、ロボット教示装置10の構成を示す図である。ロボット教示装置10は、工場のラインに設置されたアーム型ロボットX(不図示)に対し動作を教示するための装置であり、CPU(Central Processing Unit)20、メモリ21、記憶装置22、入力装置23、表示装置24、及び通信装置25を含んで構成される。なお、アーム型ロボットXは、6軸(x軸、y軸、z軸、および各軸の回転方向θx、θy、θz)の多関節のロボットである。
CPU20は、メモリ21や記憶装置22に格納されたプログラムを実行することにより、ロボット教示装置10における様々機能を実現する。
メモリ21は、例えばRAM(Random-Access Memory)等であり、プログラムやデータ等の一時的な記憶領域として用いられる。
記憶装置22は、例えばハードディスク等の不揮発性の記憶手段領域であり、教示プログラムや様々なデータが格納される。記憶装置22には、アーム型ロボットXの3次元モデルを示す3次元CAD(Computer Aided Design)データ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が格納されている。
入力装置23は、例えばタッチパネルやキーボードであり、利用者の操作結果が入力を受け付ける装置である。
表示装置24は、例えばディスプレイであり、各種情報や処理結果を表示する装置である。
通信装置25は、ネットワークインターフェイスなどの通信手段であって、インターネットやLAN(Local Area Network)等の通信網(不図示)を介して外部のコンピュータやアーム型ロボット40との間でデータの送受信を行う。
−−−階層構造画面−−−
図2は、仮想空間においてアーム型ロボットX等のモデルの配置を定めるために、利用者が参照・編集する階層構造画面の一例を示す図である。
図2は、仮想空間においてアーム型ロボットX等のモデルの配置を定めるために、利用者が参照・編集する階層構造画面の一例を示す図である。
画面30は、ワールド座標系や各種構成の階層構造(ツリー構造)を示す画面であり、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
画面30では、最上位の階層に、ワールド座標系を示す「World」が設定されている。そして、ワールド座標系の下の階層には、アーム型ロボットXのモデルを示す「Robot」と、ワークが載置される棚を示す「棚」が設定されている。このため、「Robot」および「棚」は、仮想空間において、ワールド座標系で定められた位置に配置される。
また、「Robot」の階層の下には、アーム型ロボットXのハンドのモデルを示す「HAND」が設定され、「HAND」の階層の下には、ワークであるオルゴールA1を示す「OG A1」が設定されている。このため、「HAND」は、「Robot」を基準とするローカル座標系で定められた位置に配置され、「OG A1」は、「HAND」を基準とするローカル座標系で定められた位置に配置される。
また、「棚」の階層の下には、10個のオルゴールB1〜B10を示す「OG B1」〜「OG B10」が設定されている。このため、「OG B1」〜「OG B10」は、「棚」を基準とするローカル座標系で定められた位置に配置される。
なお、画面30で示された階層構造では、ある階層の構成の位置が変更されると、その階層の下に配置された構成の位置も同様に変更される。例えば、3次元CADデータD3の値が変更され、「棚」のワールド座標系における位置が変更されると、「棚」の下の階層に設けられた「OG B1」〜「OG B10」のワールド座標系における位置も「棚」に伴って移動する。ただし、「OG B1」〜「OG B10」のそれぞれの「棚」に対する位置は、「棚」を基準とするローカル座標系で定められている。したがって、「棚」のワールド座標系に対する位置が変更された場合であっても、「OG B1」〜「OG B10」のそれぞれの「棚」に対する位置は変化しない。
−−−仮想空間−−−
図3は、画面30に含まれる構成を反映した仮想空間100を示す図である。仮想空間100は、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
図3は、画面30に含まれる構成を反映した仮想空間100を示す図である。仮想空間100は、CPU20が、所定の教示プログラムを実行することにより表示装置24に表示される。
仮想空間100には、アーム型ロボット40、オルゴールA1,B1〜B10、棚45が設けられている。
アーム型ロボット40は、「Robot」(3次元CADデータDa)に基づいて表現されたモデルであり、ハンド(保持部)50と、ハンド50が取り付けられるアーム51とを含む。なお、上述したように、仮想空間100におけるアーム51の位置は、ワールド座標系で定められた位置に配置され、ハンド50の位置は、アーム51を基準とするローカル座標系で定められた位置に配置される。
オルゴールA1は、「OG A1」(3次元CADデータDb1)に基づいて表現された、ワークを示すモデルである。仮想空間100におけるオルゴールA1の位置は、ハンド50を基準とするローカル座標系で定められた位置、ここでは、ハンド50で把持(保持)される位置に配置される。すなわち、ワークを保持部により保持した状態である。また、ワークを保持部により保持していない状態とは、ハンド50がワークを把持していない状態である。
オルゴールB1〜B10は、「OG B1」〜「OG B10」(3次元CADデータDb2〜Db11)に基づいて表現されたモデルである。仮想空間100におけるオルゴールB1〜B10の位置は、棚45を基準とするローカル座標系で定められた位置に配置されている。例えば、ここでは、オルゴールB1〜B10は、棚45の上に2列で配置される。
棚45は、「棚」(3次元CADデータDc)に基づいて表現されたモデルであり、ワールド座標系で定められた位置に配置される。
−−−設定画面−−−
図4は、アーム型ロボットXを教示する際に表示装置24に表示される設定画面60の一例を示す図である。
図4は、アーム型ロボットXを教示する際に表示装置24に表示される設定画面60の一例を示す図である。
設定画面60は、関数名指定エリア70、作業開始位置入力エリア71、作業終了位置入力エリア72、アプローチポイント設定エリア73、およびエスケープポイント設定エリア74を含んで構成される。
関数名指定エリア70では、作成される動作プログラム(サブルーチン)を示す「関数名」が指定される。関数名指定エリア70は、作業種類指定エリア70aおよび関数名入力エリア70bを含む。作業種類指定エリア70aでは、アーム型ロボットXに実行させる作業が指定される。具体的には、作業種類指定エリア70aでは、置く(“place”)、取る(つかむ)(“pick up”)、捨てる(“dispose”)等の作業を選択可能である。
関数名入力エリア70bには、利用者が指定する作業を示すファイル名(例えば、日付や整理番号)が入力される。
関数名入力エリア70bには、利用者が指定する作業を示すファイル名(例えば、日付や整理番号)が入力される。
作業開始位置入力エリア71(第1情報入力部)では、アーム型ロボット40のハンド50の動作の開始位置に設けられたワークを示す情報(第1情報)が入力される。なお、本実施形態では、利用者は、予め移動対象となるワークを、移動前の作業開始位置(第1の位置)に配置していることとする。
作業終了位置入力エリア72(第2情報入力部)では、アーム型ロボット40のハンド50の動作の終了位置に設けられたワークを示す情報(第2情報)が入力される。なお、本実施形態では、利用者は、予め移動対象となるワークを、移動後の作業終了位置(第2の位置)に配置していることとする。
アプローチポイント設定エリア73(第3情報入力部)では、ハンド50の移動が開始してから終了するまでに、ハンド50に把持されたワークが経由する点(アプローチポイント)が設定される。なお、詳細は後述するが、アプローチポイントは、ハンド50に把持されたワークが障害物や他のワーク等に当たることを防ぐために設定される点である。アプローチポイント設定エリア73は、作業ワーク指定エリア73a、距離指定エリア73b、および方向指示エリア73cを含む。なお、作業ワーク指定エリア73a、距離指定エリア73b、および方向指示エリア73cのそれぞれに入力される情報は、第3情報に相当する。
作業ワーク指定エリア73aには、ハンド50の動作の終了位置に載置されたワークを示す情報が入力される。
距離指定エリア73bには、作業ワーク指定エリア73aで選択されたワークからの距離d1(第1の距離)が入力される。
方向指示エリア73cには、作業ワーク指定エリア73aで選択されたワークの面(例えば、底面)に対して略垂直となる方向v1が指示される。
エスケープポイント設定エリア74(第4情報入力部)では、ハンド50の移動が終了し、ハンド50を元の位置等に戻す際にハンド50のTCPが通過する点(エスケープポイント)が設定される。なお、詳細は後述するが、エスケープポイントは、ワークが載置された後、ハンド50が障害物や他のワーク等に当たることを防ぐために設定される点である。エスケープポイント設定エリア74は、作業ワーク指定エリア74a、距離指定エリア74b、および方向指示エリア74cを含む。なお、作業ワーク指定エリア74a、距離指定エリア74b、および方向指示エリア74cのそれぞれに入力される情報は、第4情報に相当する。
作業ワーク指定エリア74aには、ハンド50の動作の終了位置に載置されたワークを示す情報が入力される。なお、作業ワーク指定エリア73a、74aには、ハンド50の動作の終了位置に載置されたワークを示す情報以外が入力されても良い。
距離指定エリア74bには、作業ワーク指定エリア74aで選択されたワークからの距離d2(第2の距離)が入力される。
方向指示エリア74cには、作業ワーク指定エリア74aで選択されたワークの面(例えば、底面)に対して略垂直となる方向v2が指示される。なお、方向v1,v2は、ワークのモデルに含まれる、ワークのエッジ、ワークの法線ベクトル、ワークの中心軸等に基づいて定められる。
−−−CPU20に実現される機能ブロック−−−
図5は、CPU20が所定の教示プログラムを実行することによりCPU20に実現される機能ブロックを示す図である。同図に示すように、CPU20は、表示制御部80、第1取得部81、第2取得部82、第3取得部83、第4取得部84、計算部85、及び送信部86の機能ブロックを備える。
図5は、CPU20が所定の教示プログラムを実行することによりCPU20に実現される機能ブロックを示す図である。同図に示すように、CPU20は、表示制御部80、第1取得部81、第2取得部82、第3取得部83、第4取得部84、計算部85、及び送信部86の機能ブロックを備える。
表示制御部80は、入力装置23からの指示やCPU20で実行される教示プログラムの処理結果等に基づいて、表示装置24に各種情報を表示する。例えば、表示制御部80は、図3に示した仮想空間100や図4に示す設定画面60を表示装置24に表示する。また、表示制御部80は、ワークを移動する際のハンド50のアニメーションを表示装置24に表示する。
第1取得部81は、作業開始位置入力エリア71に入力されたワークを示す情報(3次元CADデータ)に基づいて、ワークのTCP(所定の点)を教示点P1(第1の点)として取得する。
第2取得部82は、作業終了位置入力エリア72に入力されたワークを示す情報(3次元CADデータ)に基づいて、ワークのTCPを教示点P2(第2の点)として取得する。なお、ここでは、第1取得部81および第2取得部82が取得する点をワークのTCPとしたが、例えば、ワークの重心を示す点であっても良い。
第3取得部83は、アプローチポイント設定エリア73に入力された情報に基づいて、ワークが移動される際に、ワークが経由するアプローチポイントP3(第3の点)を取得する。具体的には、第3取得部83は、作業ワーク指定エリア73aで選択されるワークを示す情報から、ワークのTCP(所定の点)を取得する。そして、第3取得部83は、ワークのTCPを始点とし、指定された方向v1に距離d1だけ離間した点をアプローチポイントP3として取得する。
第4取得部84は、エスケープポイント設定エリア74に入力された情報に基づいて、ハンド50が移動される際に、ハンド50が経由するエスケープポイントP4(第4の点)を取得する。具体的には、第4取得部84は、作業ワーク指定エリア74aで選択されるワークを示す情報から、ワークのTCPを取得する。そして、第4取得部84は、ワークのTCPを始点とし、指定された方向v2に距離d2だけ離間した点をエスケープポイントP4として取得する。なお、アプローチポイントP3、エスケープポイントP4を定める際の始点はワークのTCPであるとしたが、例えばワークの重心を示す点等でも良い。
計算部85は、教示点P1,P2、アプローチポイントP3、エスケープポイントP4に基づいて、ハンド50を移動させる軌道の計算を行う。また、計算部85は、計算結果を、記憶装置22に格納する。
送信部86は、利用者からの指示に基づいて、計算結果を、アーム型ロボットXの制御装置(不図示)に送信する。この結果、アーム型ロボットXは、計算結果に応じた動作をすることができる。なお、詳細は省略するが、アーム型ロボットXは、計算結果に基づいて、アーム型ロボットXの各関節を動作させる動作プログラムを生成する。また、CPU20が、動作プログラムを生成し、アーム型ロボットXに送信することとしても良い。
−−−ロボット教示装置10で実行される処理の一例−−−
以下、ワークが移動される際にロボット教示装置10が実行する一連の処理を、図面を適宜参照しつつ説明する。図6は、設定画面60に対し各種情報が入力された状態の設定画面61を示す図である。図7は、ロボット教示装置10が実行する処理の一例を示すフローチャートである。なお、ここでは、アーム型ロボット40が「オルゴール」を、「オルゴールA1」の位置(第1の位置)から「オルゴールB9」の位置(第2の位置)へ移動させる際のハンド50の軌道と、「オルゴール」が棚45に載置された後のハンド50の軌道と、が計算される場合を説明する。また、図3の仮想空間100においては、「オルゴールA1」と、10個の「オルゴールB1」〜「オルゴールB10」が配置されているが、これらは「置く」作業を教示し、ハンド50の軌道を計算するために配置されているものである。例えば「オルゴールA1」と、「オルゴールB1」とが選択されると、「オルゴールA1」の位置から、「オルゴールB1」の位置へ「オルゴール」を移動させる際のハンド50の軌道が計算される。
以下、ワークが移動される際にロボット教示装置10が実行する一連の処理を、図面を適宜参照しつつ説明する。図6は、設定画面60に対し各種情報が入力された状態の設定画面61を示す図である。図7は、ロボット教示装置10が実行する処理の一例を示すフローチャートである。なお、ここでは、アーム型ロボット40が「オルゴール」を、「オルゴールA1」の位置(第1の位置)から「オルゴールB9」の位置(第2の位置)へ移動させる際のハンド50の軌道と、「オルゴール」が棚45に載置された後のハンド50の軌道と、が計算される場合を説明する。また、図3の仮想空間100においては、「オルゴールA1」と、10個の「オルゴールB1」〜「オルゴールB10」が配置されているが、これらは「置く」作業を教示し、ハンド50の軌道を計算するために配置されているものである。例えば「オルゴールA1」と、「オルゴールB1」とが選択されると、「オルゴールA1」の位置から、「オルゴールB1」の位置へ「オルゴール」を移動させる際のハンド50の軌道が計算される。
設定画面61の作業種類指定エリア70aに示すように、作業としては、ワークを置く(“place”)作業が指定されており、作業を示すファイル名としては、“OG1_to_shelf”が入力されている。また、作業開始位置入力エリア71には、ハンド50に把持された「オルゴールA1」(「OG A1」)が入力され、作業終了位置入力エリア72には、棚45に載置された「オルゴールB9」(「OG B9」)が入力されている。アプローチポイント設定エリア73の作業ワーク指定エリア73aには、「オルゴールB9」が入力され、距離指定エリア73bには、「200」が入力され、方向指示エリア73cには、オルゴールB9の「エッジ」が指定されている。エスケープポイント設定エリア74の作業ワーク指定エリア74aには、「オルゴールB9」が入力され、距離指定エリア74bには、「100」が入力され、方向指示エリア74cには、オルゴールB9の「エッジ」が指定されている。
まず、第1取得部81は、作業開始位置入力エリア71に入力されたオルゴールA1の情報に基づいて、オルゴールA1のTCPを教示点P1として取得する(S100)。つぎに、第2取得部82は、作業終了位置入力エリア72に入力されたオルゴールB9の情報に基づいて、オルゴールB9のTCPを教示点P2として取得する(S101)。
また、第3取得部83は、図8に示すように、作業ワーク指定エリア73aで選択されるオルゴールB9のTCPを始点とし、オルゴールB9のエッジの方向v1で距離d1「200」mmだけ離れた点を、アプローチポイントP3として取得する(S102)。なお、図8においては、便宜上、棚45の表面の一部と、オルゴールB9のみが描かれている。また、図8では、x軸方向は、棚45のオルゴールが載置される面(以下、載置面)の長手方向、y軸方向は、載置面においてx軸と直交する方向、z軸方向は、載置面と垂直方向である。そして、オルゴールB9の底面は、図8のxy平面であり、指定されたオルゴールB9のエッジは、オルゴールB9の底面に対して垂直となっている。このため、エッジの方向v1は、z軸方向(+z方向)となる。
第4取得部84は、第3取得部83と同様に、作業ワーク指定エリア74aで選択されるオルゴールB9のTCPを始点とし、オルゴールB9のエッジに基づく方向v2(+z方向)から距離d2「100」mmだけ離れた点を、エスケープポイントP4として取得する(S103)。なお、距離d1,d2は、例えば、オルゴールB9のz方向の高さよりも長い距離である。
計算部85は、教示点P1,P2、アプローチポイントP3、エスケープポイントP4に基づいて、ハンド50を移動させる際のハンド50の軌道を計算する(S104)。具体的には、まず、計算部85は、「オルゴール」を教示点P1からアプローチポイントP3まで移動させる際のハンド50の軌道O1を計算する。また、計算部85は、「オルゴール」をアプローチポイントP3から教示点P2に移動させる際のハンド50の軌道O2を計算する。さらに計算部85は、ハンド50をエスケープポイントP4に移動させる軌道O3を計算する。なお、軌道O3が計算される際には、例えば、記憶装置22に格納されたハンド50のTCPが用いられる。そして、計算部85は、計算結果(軌道O1〜O3)を、記憶装置22に格納する(S105)。また、表示制御部80は、記憶装置22に格納された計算結果を取得し、仮想空間100上のハンド50が計算された軌道に沿って動くアニメーションを表示装置24に表示させる(S106)。図9は、アニメーションが表示されている際にハンド50の動作の一例を示す図である。ハンド50は、まず、軌道O1に沿って、ハンド50に把持されたオルゴールのTCPが、アプローチポイントP3に一致するよう移動する。つぎに、ハンド50は、軌道O2に沿って、把持されたオルゴールのTCPがTCP2に一致するよう移動する。そして、オルゴールが載置された後、ハンド50は、軌道O3に沿って、ハンド50のTCPがエスケープポイントP4に一致するように移動する。なお、ハンド50は、軌道O2,O3に沿って動くため、オルゴールが載置される位置(「オルゴールB9」の位置)の略垂直方向に沿って移動する。このため、ハンド50がオルゴールを載置する際に、周囲の他のオルゴール(例えば、オルゴールB4)がある場合であっても、ハンド50やハンド50に把持されたオルゴールが他の障害物に当たることはない。また、ハンド50の軌道は、オルゴールのTCPに基づいて計算されている。このため、ハンド50におけるオルゴールの位置によらず、オルゴールは所望の位置に精度良く置かれることになる。
−−−まとめ−−−
以上、本実施形態のロボット教示装置10について説明した。ロボット教示装置10の計算部85は、オルゴールを移動する際のハンド50の軌道を、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいて計算する(例えば、処理S104)。この際、ハンド50のTCPではなく、オルゴールのTCPが用いられるため、ハンド50に対するワークの位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等の影響が抑制される。この結果、アーム型ロボットXは、計算部85の計算結果を用いることにより、ワークを精度良く所望の位置に移動することが可能となる。
以上、本実施形態のロボット教示装置10について説明した。ロボット教示装置10の計算部85は、オルゴールを移動する際のハンド50の軌道を、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいて計算する(例えば、処理S104)。この際、ハンド50のTCPではなく、オルゴールのTCPが用いられるため、ハンド50に対するワークの位置の変化(例えば、ハンドの先端でワークを把持するか、ハンドの奥でワークを把持するか)等の影響が抑制される。この結果、アーム型ロボットXは、計算部85の計算結果を用いることにより、ワークを精度良く所望の位置に移動することが可能となる。
また、計算部85は、オルゴールが載置される際に、ハンド50がオルゴールを保持部により保持した状態でアプローチポイントP3を経る軌道を計算する(例えば、処理S104)。例えば、オルゴールを載置する位置(例えば、オルゴールB9の位置)の周辺に他のオルゴール等が載置されていることがある。このような場合に、移動対象のオルゴールを目標とする位置に直接移動させると、移動対象のオルゴールが、他のオルゴールに当たることがある。本実施形態では、オルゴールB9のTCPから垂直方向に定められたアプローチポイントP3を経由してオルゴールが載置される。したがって、計算部85は、目標位置の周辺に障害物がある場合であっても、移動対象のワークが障害物等に当たることを防ぐ軌道を計算できる。
また、計算部85は、オルゴールを載置した後にハンド50を移動させる軌道として、ハンド50がオルゴールを保持していない状態で、エスケープポイントP4を経る軌道を計算する(例えば、処理S104)。例えば、載置されたオルゴールの位置(例えば、オルゴールB9の位置)の周辺に他のオルゴールが載置されていることがある。このような場合に、ハンド50を設定された位置に直接移動させると、ハンド50が、他のオルゴールに当たることがある。本実施形態では、オルゴールB9のTCPから垂直方向に定められたエスケープポイントP4を経由してハンド50を移動させる軌道が計算される。したがって、計算部85は、目標位置の周辺に障害物がある場合であっても、ハンド50が障害物等に当たることを防ぐ軌道を計算できる。
ワークを置く(“place”)作業時の計算部85の軌道計算を説明したが、ワークを取る(つかむ)(“pick up”)作業時も同様である。すなわち、オルゴールをつかむ際に、ハンド50はオルゴールを保持していない状態で、アプローチポイントP3を経る。そして、オルゴールをつかんだ後にハンド50を移動させる軌道として、ハンド50がオルゴールを保持している状態で、エスケープポイントP4を経る。
また、表示制御部80は、軌道に沿って動くハンド50のアニメーションを表示装置24に表示する。表示制御部80は、アーム型ロボット40全体のアニメーションを表示せず、ハンド50のみのアニメーションを表示することから、CPU20への負荷は軽減される。
また、本実施形態では、利用者は、ワークを移動させる際に、ワークの移動開始位置と、終了位置を、作業開始位置入力エリア71と、作業終了位置入力エリア72で設定できる。したがって、利用者は、複雑な座標等を指定する必要がないため、利用者は容易にアーム型ロボットXを教示できる。
また、本実施形態では、仮想空間100に設けられたオルゴールの情報に基づいて、アプローチポイントP3が設定される。この結果、アプローチポイントP3の座標等を直接指定する場合と比較すると、利用者は、容易にアプローチポイントP3を設定できる。
また、本実施形態では、仮想空間100に設けられたオルゴールの情報に基づいて、エスケープポイントP4が設定される。この結果、エスケープポイントP4の座標等を直接指定する場合と比較すると、利用者は、容易にエスケープポイントP4を設定できる。
なお、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
例えば、ワークを取る(つかむ)(“pick up”)作業の際においても、本実施形態と同様の処理が実行される。例えば、ロボット教示装置10は、ワークを取る場合においても、移動前の位置にあるオルゴールA1のTCPと、移動後の位置にあるオルゴールB9のTCPと、に基づいてハンド50の軌道を計算する(例えば、処理S104)。ハンド50がワークを取る際には、ハンド50は実際にはワークを把持していない。しかしながら、ハンド50が仮にワークを把持しているとして処理S104等で計算された軌道は、ワークを取る際の軌道と同様である。したがって、本実施形態では、ワークを取る際にも、作業開始位置に設けられた「ワーク」を、作業終了位置に設けられた「ワーク」に移動させる軌道として計算する。つまり、「ワーク」を作業開始位置(第1の位置)から作業終了位置(第2の位置)に移動させる際の軌道とは、実際に「ワーク」を移動させる際の軌道のみならず、ハンド50が仮想的に「ワーク」を移動させる際の軌道(ワークを取る(つかむ)(“pick up”)際の軌道)も含む。
本実施形態では、ハンド50がワークである「オルゴール」を「把持」することを、保持した状態として説明したが、これに限られない。例えば、ハンド50の代わりにワークを真空吸着することが可能な吸着パッドを用いても良い。このような場合、ワークは、吸着パッドにより「保持」されることになる。
本実施形態では、ワークは「オルゴール」であり、「オルゴール」が載置(支持)される支持部材は、棚45であることとしたが、これに限られない。例えば、ワークが「カップ(容器)」であり、「カップ」は「カップホルダー」に収納(支持)されることとしても良い。また、「カップホルダー」は、「カップ」を収納する構成のみならず、「カップい」の外側の面の一部だけを支持する構成であっても良い。このような、「カップ」および「カップホルダー」が用いられる場合であっても、本実施形態と同様の効果を得ることができる。なお、例えば、ロボットが「カップ」を、傾いた「カップホルダー」に支持されるように移動する際には、傾いて支持された「カップ」の底面に基づいて、アプローチポイントP3、エスケープポイントP4が取得される。
また、ここでは、教示対象となるロボットが6軸の多関節のロボットであることとしたが、例えば、3軸のロボットであっても良い。また、ロボット教示装置10は、教示対象となるロボットが6軸のロボットであっても、ワークを移動させる際に3軸の軌道のみを計算すれば良い場合、TCP(教示点)の自由度を6から3に変更し、軌道を計算しても良い。このようにTCPの自由度を低下させることにより、CPU20の負荷を軽減することができる。また、本実施形態では、アプローチポイントP3における指定された方向v1は、TCPから、ワークの底面に対して略垂直となる方向であることとしたが、これに限られない。例えば、ワークの底面に対して略水平方向であっても良い。また、エスケープポイントP4における方向v2も、TCPから、ワークの底面に対して略垂直となる方向であることとしたが、例えば、ワークの底面に対して略水平方向であっても良い。
例えば、図3では、ハンド50がワークを保持している状態が示されているが、ハンド50がワークを保持していない場合、表示制御部80は、ワークを表示装置24に表示しない。
また、ロボットの動作プログラミングをする際、座標値を扱うのは煩雑である。3DCADからは座標値も抽出することも可能であるが、煩雑であることに変わりない。また、この煩雑さは、機械技術者、ソフトウェア技術者などの異なる技術者が必要となる。そのためロボットを利用したオートメーションシステムを構築するために、膨大な時間を要する。本実施形態は、ロボットのオートメーションシステムを短時間で行うことができる。
10…ロボット教示装置、20…CPU、21…メモリ、22…記憶装置、23…入力装置、24…表示装置、25…通信装置、30…画面、40…アーム型ロボット、50…ハンド、51…アーム、60,61…設定画面、70…関数名指定エリア、71…作業開始位置入力エリア、72…作業終了位置入力エリア、73…アプローチポイント設定エリア、74…エスケープポイント設定エリア、80…表示制御部、81…第1取得部、82…第2取得部、83…第3取得部、84…第4取得部、85…計算部、86…送信部、100…仮想空間
Claims (10)
- 仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する第1取得部と、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する第2取得部と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、
を備えることを特徴とするロボット教示装置。 - 請求項1に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた第3の点を取得する第3取得部を更に備え、
前記計算部は、
前記第1〜第3の点に基づいて、前記ロボットが、前記ワークを前記第1の位置から前記第3の点を経由して前記第2の位置に移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項1または請求項2に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた第4の点を取得する第4取得部を更に備え、
前記計算部は、
前記ロボットが、前記保持部を前記第4の点まで移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項1〜3の何れか一項に記載のロボット教示装置であって、
前記ロボットが前記保持部を移動させる際、前記ロボットのうち、前記保持部の動きを表示装置に表示させる表示制御部を更に備えること、
を特徴とするロボット教示装置。 - 仮想空間における第1の位置に設けられたワークを示す第1情報が入力される第1情報入力部と、
前記仮想空間における第2の位置に設けられた前記ワークを示す第2情報が入力される第2情報入力部と、
前記第1情報に基づいて、前記第1の位置に設けられた前記ワークの所定の点を、第1の点として取得する第1取得部と、
前記第2情報に基づいて、前記第2の位置に設けられた前記ワークの所定の点を、第2
の点として取得する第2取得部と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する計算部と、
を備えることを特徴とするロボット教示装置。 - 請求項5に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた点に関する第3情報が入力される第3情報入力部と、
前記第3情報に基づいて定まる第3の点を取得する第3取得部と、
を更に備え、
前記計算部は、
前記第1〜第3の点に基づいて、前記ロボットが、前記ワークを前記第1の位置から前記第3の点を経由して前記第2の位置に移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項5または請求項6に記載のロボット教示装置であって、
前記第2の位置に支持された前記ワークの前記第2の点から離れた点に関する第4情報が入力される第4情報入力部と、
前記第4情報に基づいて定まる第4の点を取得する第4取得部と、
を更に備え、
前記計算部は、
前記ロボットが、前記保持部を前記第4の点まで移動させる際の前記保持部の軌道を計算すること、
を特徴とするロボット教示装置。 - 請求項5〜7の何れか一項に記載のロボット教示装置であって、
前記ロボットが前記保持部を移動させる際、前記ロボットのうち、前記保持部の動きを表示装置に表示させる表示制御部を更に備えること、
を特徴とするロボット教示装置。 - コンピュータに、
仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得する機能と、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得する機能と、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する機能と、
を実現させるロボット教示プログラム。 - 仮想空間における第1の位置に設けられたワークの所定の点を、第1の点として取得し、
前記仮想空間における第2の位置に設けられた前記ワークの所定の点を、第2の点として取得し、
前記第1及び第2の点に基づいて、前記仮想空間におけるロボットが、前記ワークを前記第1の位置から前記第2の位置に移動させる際の前記保持部の軌道を計算する、
ことを特徴とするロボット教示装置の制御方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017073211 | 2017-03-31 | ||
JP2017073211 | 2017-03-31 | ||
PCT/JP2018/008718 WO2018180297A1 (ja) | 2017-03-31 | 2018-03-07 | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2018180297A1 true JPWO2018180297A1 (ja) | 2020-02-13 |
Family
ID=63675364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019509114A Pending JPWO2018180297A1 (ja) | 2017-03-31 | 2018-03-07 | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2018180297A1 (ja) |
WO (1) | WO2018180297A1 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60191307A (ja) * | 1984-03-12 | 1985-09-28 | Hitachi Ltd | ロボツトの積付動作簡易教示方式 |
JP2889429B2 (ja) * | 1992-04-15 | 1999-05-10 | 松下電工株式会社 | ロボットのオフライン教示方法 |
JP6488571B2 (ja) * | 2014-07-01 | 2019-03-27 | セイコーエプソン株式会社 | 教示装置、及びロボットシステム |
JP6676286B2 (ja) * | 2015-05-12 | 2020-04-08 | キヤノン株式会社 | 情報処理方法、および情報処理装置 |
-
2018
- 2018-03-07 WO PCT/JP2018/008718 patent/WO2018180297A1/ja active Application Filing
- 2018-03-07 JP JP2019509114A patent/JPWO2018180297A1/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2018180297A1 (ja) | 2018-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3708097B2 (ja) | ロボットの手動送り装置 | |
JP4137909B2 (ja) | ロボットプログラム補正装置 | |
JP4645678B2 (ja) | 情報入出力装置及び情報入出力方法、並びにコンピュータ・プログラム | |
JP6444957B2 (ja) | ロボットシステムの動作のシミュレーションを行うシミュレーション装置、シミュレーション方法、およびコンピュータプログラムを記録する記録媒体 | |
JPWO2014013605A1 (ja) | ロボットシミュレータ、ロボット教示装置およびロボット教示方法 | |
JP2019018272A (ja) | モーション生成方法、モーション生成装置、システム及びコンピュータプログラム | |
JP2010137298A (ja) | 複腕ロボットの作業プログラム作成方法 | |
JP6750909B2 (ja) | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 | |
JP2009190113A (ja) | ロボットシミュレーション装置 | |
JP2005182759A (ja) | 多関節物体と環境との間の衝突を回避しながらの仮想環境における仮想多関節物体の動き | |
JP5813931B2 (ja) | 教示データの修正システム | |
JP3639873B2 (ja) | ロボット制御方法およびロボット制御システム | |
JP2019089201A (ja) | 教示データ作成装置、教示データ作成装置の制御方法及びロボットシステム | |
WO2018180300A1 (ja) | ロボット作業管理システム、ロボット作業管理プログラム | |
JP7475841B2 (ja) | 情報処理方法、ロボットシステム、物品の製造方法、および情報処理装置 | |
JPWO2019064919A1 (ja) | ロボット教示装置 | |
WO2018180297A1 (ja) | ロボット教示装置、ロボット教示プログラム、ロボット教示装置の制御方法 | |
JP4669941B2 (ja) | 3次元デザイン支援装置及びプログラム | |
JP7467932B2 (ja) | シミュレーション装置およびシミュレーションプログラム | |
JP2018118330A (ja) | 演算装置、演算方法、演算プログラムおよびロボットシステム | |
WO2018180298A1 (ja) | ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラム | |
JPWO2018180299A1 (ja) | ロボット教示装置、ロボット教示装置の制御方法及びロボット教示プログラム | |
JPH06134684A (ja) | ロボット軌道を教示するための方法 | |
JP2021146433A (ja) | 制御装置、ロボット装置、シミュレーション装置、制御方法、シミュレーション方法、物品の製造方法、プログラム及び記録媒体 | |
WO2023153469A1 (ja) | 多関節ロボットのパスを生成する装置、多関節ロボットのパスを生成する方法および多関節ロボットのパスを生成するプログラム |