JPWO2020066949A1 - ロボットの経路決定装置、ロボットの経路決定方法、プログラム - Google Patents
ロボットの経路決定装置、ロボットの経路決定方法、プログラム Download PDFInfo
- Publication number
- JPWO2020066949A1 JPWO2020066949A1 JP2020549167A JP2020549167A JPWO2020066949A1 JP WO2020066949 A1 JPWO2020066949 A1 JP WO2020066949A1 JP 2020549167 A JP2020549167 A JP 2020549167A JP 2020549167 A JP2020549167 A JP 2020549167A JP WO2020066949 A1 JPWO2020066949 A1 JP WO2020066949A1
- Authority
- JP
- Japan
- Prior art keywords
- robot
- interference
- point
- candidate
- approximate shape
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 28
- 230000002093 peripheral effect Effects 0.000 claims abstract description 15
- 230000033001 locomotion Effects 0.000 description 35
- 238000010586 diagram Methods 0.000 description 33
- 230000010365 information processing Effects 0.000 description 30
- 230000006870 function Effects 0.000 description 24
- 238000013459 approach Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 18
- 238000004891 communication Methods 0.000 description 12
- 101000579646 Penaeus vannamei Penaeidin-1 Proteins 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 101000579647 Penaeus vannamei Penaeidin-2a Proteins 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- -1 ... Proteins 0.000 description 3
- 101150077194 CAP1 gene Proteins 0.000 description 3
- 101150014715 CAP2 gene Proteins 0.000 description 3
- 101710169754 CD-NTase-associated protein 12 Proteins 0.000 description 3
- 101100245221 Mus musculus Prss8 gene Proteins 0.000 description 3
- 101100260872 Mus musculus Tmprss4 gene Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/06—Safety devices
-
- 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/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4093—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
本発明の一実施形態は、ロボットや周辺配置物等の3次元データを、1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、ロボットを移動させたときに近似形状データの干渉が発生するか否かを判定する干渉判定部と、干渉が発生すると判定された場合、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、始点から候補点までの経路、および、候補点から終点までの経路において近似形状データの干渉が発生しない候補点を、複数の候補点の中から特定する候補点特定部と、特定された候補点から経由点を選択可能となるように表示する表示制御部と、を備えたロボットの経路決定装置である。
Description
本発明は、ロボットの経路決定装置、ロボットの経路決定方法、および、プログラムに関する。
ロボットが動作したときに、ロボット同士、またはロボットと周辺部品との間の干渉の有無をシミュレーションで判定する経路決定装置が知られている。
例えば日本国公開公報特開2008−254172号公報には、ロボットの教示点の情報とロボットの周囲環境モデルの情報とを格納する記憶部を有しロボットプログラムをオフラインで作成するプログラミング部と、ロボット制御部と、を備えたロボットプログラム作成装置が記載されている。日本国公開公報特開2008−254172号公報では、ロボット制御部は、ロボットの動作を制御し、ロボットを実際の教示点に移動させ、実際の教示点の情報を捕え、ロボットプログラム上の教示点の情報を修正する。
また、日本国公開公報特開2014−024162号公報には、アームと、アームの先端に設けられたエンドエフェクターと、からなる可動部を、複数の教示点に沿って移動させる時に、教示点の位置情報と障害物の位置情報とに基づいて可動部と障害物とが干渉するか否かを判定することが記載されている。日本国公開公報特開2014−024162号公報では、第1の教示点と第2の教示点との間で可動部と障害物とが干渉すると判定された場合に、接近制限情報及び離脱制限情報に基づいて第1の教示点と第2の教示点との間に教示点が追加される。
例えば日本国公開公報特開2008−254172号公報には、ロボットの教示点の情報とロボットの周囲環境モデルの情報とを格納する記憶部を有しロボットプログラムをオフラインで作成するプログラミング部と、ロボット制御部と、を備えたロボットプログラム作成装置が記載されている。日本国公開公報特開2008−254172号公報では、ロボット制御部は、ロボットの動作を制御し、ロボットを実際の教示点に移動させ、実際の教示点の情報を捕え、ロボットプログラム上の教示点の情報を修正する。
また、日本国公開公報特開2014−024162号公報には、アームと、アームの先端に設けられたエンドエフェクターと、からなる可動部を、複数の教示点に沿って移動させる時に、教示点の位置情報と障害物の位置情報とに基づいて可動部と障害物とが干渉するか否かを判定することが記載されている。日本国公開公報特開2014−024162号公報では、第1の教示点と第2の教示点との間で可動部と障害物とが干渉すると判定された場合に、接近制限情報及び離脱制限情報に基づいて第1の教示点と第2の教示点との間に教示点が追加される。
しかし、日本国公開公報特開2008−254172号公報では、実機で修正する必要がある教示点を表示部の画面に一覧表示し、オペレータがこの画面を見てプログラム部に修正要の教示情報を送信する操作が必要となる。
他方、日本国公開公報特開2014−024162号公報では、干渉有無の判定を行い、さらにエンドエフェクターの様々な情報から変更先の教示点を計算する必要があるため、干渉を回避するように経路修正するのに長い時間が掛かるという難点がある。
他方、日本国公開公報特開2014−024162号公報では、干渉有無の判定を行い、さらにエンドエフェクターの様々な情報から変更先の教示点を計算する必要があるため、干渉を回避するように経路修正するのに長い時間が掛かるという難点がある。
そこで、本発明は、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できるようにすることを目的とする。
本願の例示的な第1発明は、ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶部と、前記記憶部に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定部と、前記干渉判定部によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定部と、前記候補点特定部によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御部と、を備えたロボットの経路決定装置である。
本発明によれば、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できる。
以下、本発明のロボットの経路決定装置の実施形態について説明する。
以下の説明において、ロボットの要素作業を「タスク」という。ロボットの要素作業とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「部品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、工場内のワーク)に限らず、ロボットの周辺に配置される周辺配置物(例えば、ロボットが把持する物体を置く棚)をも含む。
ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(TCP:Tool Center Point)である。
以下の説明において、ロボットの要素作業を「タスク」という。ロボットの要素作業とは、物体を「取る」や「置く」等、一連の作業の中でロボットが行う最小単位の作業を意味する。
「部品」とは、ロボットの作業の対象となる物体を意味し、ロボットが把持する物体(例えば、工場内のワーク)に限らず、ロボットの周辺に配置される周辺配置物(例えば、ロボットが把持する物体を置く棚)をも含む。
ロボットの「基準点」は、後述するロボットのアプローチ点、目標点、デパーチャ点等のロボットの教示点の基準となるロボットの位置を意味し、例えばロボットの作用点(TCP:Tool Center Point)である。
ロボットの経路決定装置は、ロボット自体の干渉(例えば、ハンドとアームの干渉)、あるいはロボットと部品との干渉の有無をシミュレーションによって判定する装置である。ロボットの経路決定装置によって、ロボットの実機に接続しないオフラインティーチングを支援することができる。
(1)本実施形態に係る経路決定装置の構成
以下、本実施形態の経路決定装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態の経路決定装置1の全体構成について示す図である。図2は、本実施形態の経路決定装置1に含まれる各装置のハードウェア構成を示す図である。
以下、本実施形態の経路決定装置1の構成について、図1および図2を参照して説明する。図1は、本実施形態の経路決定装置1の全体構成について示す図である。図2は、本実施形態の経路決定装置1に含まれる各装置のハードウェア構成を示す図である。
図1に示すように、経路決定装置1は、情報処理装置2およびロボット制御装置3を備える。情報処理装置2とロボット制御装置3とは、例えばイーサネット(登録商標)ケーブルECにより通信可能に接続される。
情報処理装置2は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置2は、オペレータによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置(例えば、オペレータの作業場所)に配置される。
情報処理装置2は、工場のラインに設置されたロボットに対して動作を教示するための装置である。情報処理装置2は、オペレータによるオフラインティーチングを行うために設けられており、例えばロボットが設置される工場から離れた位置(例えば、オペレータの作業場所)に配置される。
ロボット制御装置3は、情報処理装置2から送信されるロボットプログラムを実行する。本実施形態ではロボット制御装置3はロボットと接続されないが、ロボットと接続された場合には、ロボットプログラムの実行結果に応じた制御パルスをロボットに送り、ロボットを動作させることが可能である。そのため、ロボット制御装置3は、好ましくはロボットの実機の近傍に配置される。
図2に示すように、情報処理装置2は、制御部21と、ストレージ22と、入力装置23と、表示装置24と、通信インタフェース部25とを備える。
制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、および、RAM(Random Access Memory)を含む。ROMには、3次元CADアプリケーションプログラムと教示ソフトウェアが記憶されている。CPUは、ROM上の3次元CADアプリケーションソフトウェア(以下、適宜「CADソフトウェア」という。)と教示ソフトウェアをRAMに展開して実行する。教示ソフトウェアとCADソフトウェアは、API(Application Program Interface)を介して協調して処理を実行する。
制御部21は、CADソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示装置24に表示させる。
制御部21は、CPU(Central Processing Unit)、ROM(Read Only Memory)、および、RAM(Random Access Memory)を含む。ROMには、3次元CADアプリケーションプログラムと教示ソフトウェアが記憶されている。CPUは、ROM上の3次元CADアプリケーションソフトウェア(以下、適宜「CADソフトウェア」という。)と教示ソフトウェアをRAMに展開して実行する。教示ソフトウェアとCADソフトウェアは、API(Application Program Interface)を介して協調して処理を実行する。
制御部21は、CADソフトウェアによる動画再生を行うために、フレーム単位で画像を連続的に表示装置24に表示させる。
ストレージ22は、HDD(Hard Disk Drive)あるいはSSD(Solid State Drive)等の大容量記憶装置であり、制御部21のCPUにより逐次アクセス可能に構成されている。後述するように、ストレージ22には、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、実行ログデータベース224、および、近似形状モデルデータベース225(これらのデータベースについては、図23を参照)が格納される。
階層型リストデータベース222には、後述する階層型リストを構成するデータが含まれる。
3次元モデルデータベース223には、CADソフトウェアを実行するときに参照される3次元モデルのデータが含まれる。本実施形態の例では、3次元モデルデータベース223には、ロボットおよび部品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが含まれる。
実行ログデータベース224には、ロボット制御装置3から取得した実行ログデータが含まれる。実行ログデータは、ロボットプログラムの実行結果と、後述するロボット状態データとを含む。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するため、および、後述する干渉判定を行うために使用される。
近似形状モデルデータベース225には、近似形状データが当該近似形状データの基礎となる3次元モデル(3次元データの一例)に対応付けられている。近似形状データは、後述するように、3次元モデルを球体の集合によって近似したデータである。
ストレージ22は、記憶部の一例である。
階層型リストデータベース222には、後述する階層型リストを構成するデータが含まれる。
3次元モデルデータベース223には、CADソフトウェアを実行するときに参照される3次元モデルのデータが含まれる。本実施形態の例では、3次元モデルデータベース223には、ロボットおよび部品(例えば、後述するペン、キャップ、製品、ペントレイ、キャップトレイ、製品トレイ)の3次元モデルのデータが含まれる。
実行ログデータベース224には、ロボット制御装置3から取得した実行ログデータが含まれる。実行ログデータは、ロボットプログラムの実行結果と、後述するロボット状態データとを含む。ロボット状態データは、3次元CADによってロボットの動作を仮想空間内で動画(アニメーション)により再現するため、および、後述する干渉判定を行うために使用される。
近似形状モデルデータベース225には、近似形状データが当該近似形状データの基礎となる3次元モデル(3次元データの一例)に対応付けられている。近似形状データは、後述するように、3次元モデルを球体の集合によって近似したデータである。
ストレージ22は、記憶部の一例である。
入力装置23は、オペレータによる操作入力を受け付けるためのデバイスであり、ポインティングデバイスを含む。
表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。
表示装置24は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示するためのデバイスであり、表示駆動回路および表示パネルを含む。
通信インタフェース部25は、ロボット制御装置3との間でイーサネット通信を行うための通信回路を含む。
ロボット制御装置3は、制御部31と、ストレージ32と、通信インタフェース部33とを備える。
制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータ(例えばリンクパラメータ等)を備えている。制御部31は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等のデータ)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
制御部31は、CPU、ROM、RAM、および、制御回路を含む。制御部31は、情報処理装置2から受信するロボットプログラムを実行し、実行ログデータを出力する。上述したように、実行ログデータには、ロボットプログラムの実行結果と、ロボットプログラムに記述された作業を実行するロボットのロボット状態データとを含む。
ストレージ32は、ロボットのマニピュレータ(アーム51、ハンド52を含むロボット本体)のモデルのデータ(例えばリンクパラメータ等)を備えている。制御部31は、ロボットプログラムの実行結果に基づいて、マニピュレータを構成する各部のジョブを実行中の時間の経過に応じた物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等のデータ)を演算する。かかる物理量のデータが上記ロボット状態データに含まれる。
ストレージ32は、HDDあるいはSSD等の大容量記憶装置であり、制御部31のCPUにより逐次アクセス可能に構成されている。ストレージ32には、ロボットのマニピュレータのモデルのデータの他に、情報処理装置2から送信されるロボットプログラムと、実行ログデータとが格納される。
通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。
通信インタフェース部33は、情報処理装置2との間でイーサネット通信を行うための通信回路を含む。
(2)オフラインティーチングにおけるユーザインタフェース
ロボットのシミュレーションを実行する前に、オペレータは、情報処理装置2を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。
CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。オペレータは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングやCADによる動画再生に関連する操作を行う。
ロボットのシミュレーションを実行する前に、オペレータは、情報処理装置2を使用して、ロボットに対するオフラインティーチングを行い、ロボットプログラムを作成する。ロボットプログラムを作成するに当たって、本実施形態の好ましい例では、CADソフトウェアと教示ソフトウェアを情報処理装置2に実行させる。
CADソフトウェアの実行結果はCAD用ウィンドウに表示され、教示ソフトウェアの実行結果は教示用ウィンドウに表示される。オペレータは、CAD用ウィンドウと教示用ウィンドウの両方を情報処理装置2に表示させ、あるいはCAD用ウィンドウと教示用ウィンドウを切り替えながら情報処理装置2に表示させ、ティーチングやCADによる動画再生に関連する操作を行う。
図3に、本実施形態の一例に係るCAD用ウィンドウW1を示す。図3には、テーブルTLの上に、ロボットRと、ペントレイ11と、キャップトレイ12と、治具13と、製品トレイ14とが、仮想空間に配置された状態の画像(以下、適宜「CAD画像」という。)が表示されている。
図3に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。
図3に示す例では、ロボットRがペンにキャップを嵌めて製品(ペンにキャップが嵌められた状態の完成品)を組み立てる一連の作業を行うことが想定されている。ペントレイ11には複数のペンからなるペン群Pが配置され、キャップトレイ12には複数のキャップからなるキャップ群Cが配置されている。治具13は、ロボットRがペンを一時的に配置してキャップを嵌める作業を行うための部材である。製品トレイ14は、製品を置くための部材である。
図3に示す例では、ペン群Pに含まれる各ペン、キャップ群Cに含まれる各キャップ、ペントレイ11、キャップトレイ12、治具13、製品トレイ14の各々は、ロボットRの作業対象である部品の例である。また、ペンにキャップが嵌められた製品も部品の例である。
各ペン、各キャップ、および、ペンにキャップが嵌められた製品は、それぞれワークの一例である。ペントレイ11、キャップトレイ12、治具13、および、製品トレイ14は、それぞれ周辺配置物の一例である。
各ペン、各キャップ、および、ペンにキャップが嵌められた製品は、それぞれワークの一例である。ペントレイ11、キャップトレイ12、治具13、および、製品トレイ14は、それぞれ周辺配置物の一例である。
(2−1)階層型リスト
図4に、本実施形態の一例に係る教示用ウィンドウW2を示す。教示用ウィンドウW2に表示されているのは、図3のCAD画像に含まれているロボットR、および、部品の階層関係を示す階層型リストである。
図4に、本実施形態の一例に係る教示用ウィンドウW2を示す。教示用ウィンドウW2に表示されているのは、図3のCAD画像に含まれているロボットR、および、部品の階層関係を示す階層型リストである。
教示ソフトウェアは、CADソフトウェアと連携して階層型リストを作成することができる。階層型リストとして木構造のデータフォーマットが教示ソフトウェアによって用意される。オペレータは、CAD用ウィンドウと教示用ウィンドウを表示させた状態で、CAD画像内のロボットRおよび部品をポインティングデバイスで選択した状態で上記木構造のデータフォーマットの所望のノードまでドラッグする操作を行う。この操作を、ロボットRの教示を行うのに必要となるすべての部品に対して順に行うことで、階層型リストを完成させることができる。階層型リストに表示される各ノードの名称は、元となる3次元モデルの名称がそのまま適用されてもよいが、後で名称を変更できるようにしてもよい。
以下の説明では、CAD画像内のロボットR、部品を階層型リストのいずれかのノードに含めるようにすることを、ロボットR又は部品を「階層型リストに登録する」という。図3では、ロボットが1体である場合のCAD画像を例示しているが、ロボットが2体以上存在する場合には、当該2体以上のロボットを階層型リストに登録することができる。
図4に示す階層型リストにおいて、ロボットR(Robot_R)のノードの下層には、ハンドに関連する3個のノードが設けられている。ハンドに対して複数のノードを設けているのは、ハンドに想定される作業状態を考慮するためである。すなわち、ノード61〜63は、以下の内容を意味する。
・ノード61(Pen)…ペンを把持する作業に対応したハンド
・ノード62(Cap)…キャップを把持する作業に対応したハンド
・ノード63(Pen_with_Cap)…キャップが嵌められたペンを把持する作業に対応したハンド
ノード61〜63のいずれかを対象として右クリック操作を行い、「ハンドシーケンス操作」を選択すると、アクチュエーション方式(シングルソレノイド、又はダブルソレノイド等)、センサ種類などのハンドシーケンスに関連する設定を行うことができる。
ハンドシーケンスは、ロボットRのハンド52が把持する部品に依存するため、ハンド52が把持する部品ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置24に警告表示を出力してもよい。
ハンドシーケンスは、ロボットRのハンド52が把持する部品に依存するため、ハンド52が把持する部品ごとに設定される。ハンドシーケンスが設定されていない場合に後述するタスクを作成した場合には、タスクに基づくプログラムを実行できないため、表示装置24に警告表示を出力してもよい。
部品の構成要素には、治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペン(Pen1, Pen2,…,Pen12)、キャップ(Cap1, Cap2,…,Cap12)、および、製品(PenProduct1, PenProduct2,…,PenProduct12)が含まれる。
治具(JIG)のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。
治具(JIG)のノードの下位には、治具を対象とした作業に対応して、例えば、以下のノードが設けられる。
・ノード64(PenProduct)…製品(PenProduct)を保持した状態の治具
・ノード65(PenJ)…ペン(Pen)を保持した状態の治具
・ノード66(CapJ)…キャップ(Cap)を保持した状態の治具
ペントレイ(PenTray)のノードの下位には、ペンPen1, Pen2,…,Pen12に対応する各ノードが設けられる。キャップトレイ(CapTray)のノードの下位には、キャップCap1, Cap2,…,Cap12に対応する各ノードが設けられる。製品トレイ(ProductTray)のノードの下位には、製品PenProduct1, PenProduct2,…,PenProduct12に対応する各ノードが設けられる。
階層型リストの中のロボットR(図4のRobot_R)、および部品(治具(JIG)、ペントレイ(PenTray)、キャップトレイ(CapTray)、製品トレイ(ProductTray)、ペンPen1, Pen2,…,Pen12、キャップCap1, Cap2,…,Cap12、および、製品PenProduct1, PenProduct2,…,PenProduct12)の各ノードは、各々に対応する3次元モデルのデータと関連付けられた状態となっている。そのため、階層型リストを作成後に階層型リスト内のロボットRおよび部品の3次元モデルに変更があった場合であっても、階層型リストに再度登録する必要はない。
(2−2)ジョブおよびタスクについて
次に、ジョブおよびタスクについて、図5および図6を参照して説明する。
図5は、ジョブを概念的に説明するための図である。図6は、タスクを概念的に説明するための図である。
ジョブとは、ロボットRが行う一連の作業である。タスクとは、前述したように一連の作業の中でロボットRが行う最小単位の作業である要素作業を意味する。従って、図5に示すように、ジョブ(JOB)に相当する期間には、複数のタスクT1,T2,…,Tn−1,Tnに対応する期間と、ロボットRのタスク間の移動(以下、適宜「タスク間移動」という。)と、が含まれる。図5に示すように、本実施形態では、ロボットRが行うジョブに対して複数のタスクが定義される。
各タスクには、複数のモーション(「ロボットRの動き」を意味する。)M1〜Mnが含まれる。タスクには、モーションの他、ハンドシーケンス(HS)が含まれてもよい。ハンドシーケンスは、ロボットRのハンド52による部品の把持についての一連の処理である。隣接するモーションの間には、後述するインターロック等による待機時間WTが設定される場合がある。
図6において、矢印付きの線は、ロボットRのハンド52の軌跡を概念的に示している。当該軌跡は、タスクの目標点TPに到達する前の通過点であるアプローチ点AP1,AP2と、目標点TPと、目標点TPに到達した後の通過点であるデパーチャ点DP1,DP2とを含む。目標点TPは、タスクの対象である部品の位置を示している。
図6に示す例では、アプローチ点AP1に到達する前のロボットRの動作が、タスク間の移動(つまり、前のタスクと図6に示すタスクとの間の移動)に相当する。デパーチャ点DP2から後のロボットRの動作が、タスク間の移動(つまり、図6に示すタスクと次のタスクとの間の移動)に相当する。アプローチ点AP1からデパーチャ点DP2までのロボットRの動作が1つのタスクに対応し、当該タスク内において隣接する点間のロボットRの動きが1つのモーションに相当する。
タスクを実行させるロボットプログラムには、タスクの内容に関する情報のほか、目標点TP、アプローチ点AP、およびデパーチャ点DPのうち少なくともいずれかの点に関する情報が含まれうる。
タスクを実行させるロボットプログラムには、タスクの内容に関する情報のほか、目標点TP、アプローチ点AP、およびデパーチャ点DPのうち少なくともいずれかの点に関する情報が含まれうる。
図6では、アプローチ点AP1,AP2においてそれぞれインターロックIL1,IL2が設定されている場合が例示されている。インターロックは、他のロボット等との干渉を回避するために、所定の信号が入力されるまで、目標点TP、アプローチ点AP、およびデパーチャ点DPの少なくともいずれかの点においてロボットRの動作を待機させる処理である。
タスクには、インターロックを設定する点と、インターロックによる待機時間のタイムアウト値とを含むインターロック設定に関する情報を含んでもよい。
タスクには、インターロックを設定する点と、インターロックによる待機時間のタイムアウト値とを含むインターロック設定に関する情報を含んでもよい。
(2−3)タスクに対応するロボットプログラムの作成
次に、階層型リストを用いたタスクに対応するロボットプログラム(以下、適宜「タスクプログラム」という。)の作成方法について、図4および図7を参照して説明する。図7は、本実施形態の一例に係る教示用ウィンドウの遷移を示す図である。
図4に示す階層型リストにおいてタスクプログラムを作成するには、先ず、ロボット領域RAに含まれるロボットR(Robot_R)のハンド(Hand)のノード61〜63のうちいずれかのノードを、オペレータがポインティングデバイスで選択して右クリック操作を行い、「タスク作成」を選択する。すなわち、ノードの選択は、オペレータの操作入力に基づいて、タスクにおけるロボットRのハンドの把持対象から選択される。
「タスク作成」が選択されると、図7のタスクプログラム作成のための教示用ウィンドウW3が表示される。教示用ウィンドウW3はタスクの詳細設定を行うための画面であり、タスク名称(Name)と、タスクの種別(Function)、タスクの目標物(Target)の各項目が表示される。ここで、階層型リストのパーツ領域PAの中からいずれかの部品に対応するノードをポインティングデバイスで左クリックすることで、教示用ウィンドウW3の目標物(Target)の項目に、左クリックにより選択された部品が入力される。タスクの種別(Function)の欄には、予め設定された複数の種類のタスクの種別(例えば、取る(Pick up)、置く(Place)等)の候補からなるプルダウンメニューの中からいずれかのタスクの種別を選択できるように構成されている。
次いで、階層型リストのパーツ領域PAの中から作業対象となる部品をポインティングデバイスで選択して左クリック操作を行うことにより、教示用ウィンドウW3の目標物(Target)の項目に、選択された部品が入力される。
タスクの種別(Function)と目標物(Target)の各項目についてデータが入力されると、当該データに基づいて、タスクの名称(Name)が自動的に決定されて表示される。
タスクの種別(Function)と目標物(Target)の各項目についてデータが入力されると、当該データに基づいて、タスクの名称(Name)が自動的に決定されて表示される。
例えば、ロボットRのハンドが何も把持していない状態において、「ペントレイからペンPen1を取る」というタスクを作成するには、図4に示す階層型リストのロボット領域RA内のノード61を、オペレータはポインティングデバイスで右クリックしてから「タスク作成」を選択する。次いで、階層型リストのパーツ領域PAの中からペントレイ(PenTray)に対応するノード67を対象としてポインティングデバイスで左クリック操作を行うことで教示用ウィンドウW3の目標物(Target)の項目に、ペントレイ(PenTray)が入力される。タスクの種別(Function)の欄では、複数のタスクの種別の候補の中から「取る(Pick up)」を選択する。そして、階層型リストのパーツ領域PAの中から作業対象となるペンPen1に対応するノード68を対象としてポインティングデバイスで左クリック操作を行うことで、図7に示す教示用ウィンドウW3が表示される。
以上の操作の結果、「ペントレイからペンPen1を取る」というタスクに対応して、“Pickup_Pen1_From_PenTray”という名称のタスクプログラムが作成される。
本実施形態では、要素作業の対象となる部品(ここでは「ペンPen1」)と、要素作業の始点(例えば「ペントレイ」)若しくは終点とを階層型リスト上で指定することで、オペレータは直感的にタスクプログラムを作成することができる。また、タスクプログラムの名称は、タスクの作業内容(例えば「Pickup」)と、タスクの作業対象(例えば「ペンPen1」)と、タスクの始点となる部品(例えば「ペントレイ」)、又は終点となる部品とを含むように自動的に作成されるため、タスクプログラムの名称からタスクの内容が直ちに分かるようになっている。
本実施形態では、要素作業の対象となる部品(ここでは「ペンPen1」)と、要素作業の始点(例えば「ペントレイ」)若しくは終点とを階層型リスト上で指定することで、オペレータは直感的にタスクプログラムを作成することができる。また、タスクプログラムの名称は、タスクの作業内容(例えば「Pickup」)と、タスクの作業対象(例えば「ペンPen1」)と、タスクの始点となる部品(例えば「ペントレイ」)、又は終点となる部品とを含むように自動的に作成されるため、タスクプログラムの名称からタスクの内容が直ちに分かるようになっている。
タスクプログラムを作成する際に、タスクに含まれるアプローチ点AP、目標点TP、および、デパーチャ点DPについての情報が自動的に作成されてもよい。あるいは、オペレータが教示用ウィンドウW3のボタンb1(「詳細設定」)を操作し、1又は複数のアプローチ点及び/又はデパーチャ点を設定してもよい。自動的にアプローチ点AP、目標点TP、および、デパーチャ点DPを作成する場合、部品の重心を目標点TPとして設定し、部品の重心を基準とした部品のローカル座標系において所定の軸上(例えばZ軸上)にアプローチ点APおよびデパーチャ点DPを設定してもよい。
図7を参照すると、教示用ウィンドウW3のボタンb1(「詳細設定」)を操作することで、オペレータは、「アプローチ点、デパーチャ点設定」のほか、「モーションパラメータ設定」および「インターロック設定」のいずれかを選択することができる。
モーションパラメータとは、タスクに含まれる隣接するアプローチ点AP間、アプローチ点APから目標点TPまでの間、および、目標点TPからデパーチャ点DPまでの間のロボットRのハンド52等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットRの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
モーションパラメータとは、タスクに含まれる隣接するアプローチ点AP間、アプローチ点APから目標点TPまでの間、および、目標点TPからデパーチャ点DPまでの間のロボットRのハンド52等の動きに関するパラメータである。例えば、かかるパラメータとして、移動速度、加速度、加速時間、減速時間、ロボットRの姿勢等が挙げられる。「モーションパラメータ設定」を選択することで、上記モーションパラメータをデフォルト値から変更することができる。
「インターロック設定」を選択することで、インターロックの待機時間のタイムアウト値と、待機時間がタイムアウト値を超えてエラーと判断したときの動作の設定とを、デフォルト値から変更することができる。
図7の教示用ウィンドウW3には、ボタンb2(「作成」)が設けられている。ボタンb2(「作成」)が操作されることで、教示用ウィンドウW3によって設定されたタスクが後述するタスクリストに登録される。
(2−4)タスクに基づくプログラムの作成
例えば、図6に示すタスクに対応するタスクプログラムは、以下の複数の関数からなり、各関数は、ロボットRに対応するモーションを実行させるためのプログラム(以下、適宜「モーションプログラム」という。)によって記述されている。
なお、以下のmove(AP1)は、タスク間の移動として別に定義されてもよい。
例えば、図6に示すタスクに対応するタスクプログラムは、以下の複数の関数からなり、各関数は、ロボットRに対応するモーションを実行させるためのプログラム(以下、適宜「モーションプログラム」という。)によって記述されている。
なお、以下のmove(AP1)は、タスク間の移動として別に定義されてもよい。
・move(AP1) …アプローチ点AP1までの移動
・interlock(IL1)…アプローチ点AP1でインターロック(IL1)による待機
・move(AP2)…アプローチ点AP2までの移動
・interlock(IL2)…アプローチ点AP2でインターロック(IL2)による待機
・move(TP)…目標点TPまでの移動
・handSequence()…ハンドシーケンス処理
・move(DP1)…デパーチャ点DP1までの移動
・move(DP2)…デパーチャ点DP2までの移動
なお、interlock(IL1)およびinterlock(IL2)の関数において、タスクごとの動作確認を行う場合、プログラムは作成されるが、インターロックによる待機時間のタイムアウト値が無効となっている。
(2−5)タスクリスト
タスクリストとは、ロボットRが行うジョブに含まれる複数のタスクを含む情報であり、複数のタスクの各々に対応するタスクプログラムの名称の一覧の情報である。特定のジョブを対象として教示用ウィンドウW3によって定義されたタスクは、順次、当該ジョブに対応するタスクリストに登録されていく。タスクリストに含まれる複数のタスクの順序は、当該複数のタスクの実行順序を示していることが、ジョブを管理する上で好ましい。
図8の教示用ウィンドウW4は、「ペンにキャップを嵌めて製品を組み立てる」という一連の作業であるジョブ(「Pen Assembly」)に対応するタスクリストの一例を表示する。このタスクリストの一例は、以下の(i)〜(vi)の6個のタスクを含む。この場合、タスクプログラム作成のための教示用ウィンドウW3によって、括弧内に表された名称のタスクプログラムが作成された場合を示している。
(i) ペントレイからペンを取る (Pickup_Pen1_From_PenTray)
(ii) 取ったペンを治具にセットする (Place_to_PenJ_in_PenProduct)
(iii) キャップトレイからキャップを取る (Pickup_Cap1_From_CapTray)
(iv) 治具上のペンにキャップを嵌める (Place_to_CapJ_in_PenJ)
(v) キャップが嵌められたペンを取る (Pickup_PenProduct_From_JIG)
(vi) キャップが嵌められたペンを製品トレイに置く (Place_to_PenProduct1_in_ProductTray)
(i) ペントレイからペンを取る (Pickup_Pen1_From_PenTray)
(ii) 取ったペンを治具にセットする (Place_to_PenJ_in_PenProduct)
(iii) キャップトレイからキャップを取る (Pickup_Cap1_From_CapTray)
(iv) 治具上のペンにキャップを嵌める (Place_to_CapJ_in_PenJ)
(v) キャップが嵌められたペンを取る (Pickup_PenProduct_From_JIG)
(vi) キャップが嵌められたペンを製品トレイに置く (Place_to_PenProduct1_in_ProductTray)
オペレータは、タスクリストにおいて、いずれかのタスクをポインティングデバイスで選択した状態でドラッグ操作を行うことで、選択されたタスクをタスクリスト中の任意の順序に設定することができる。
図8に示すように、タスクリストのいずれかのタスクをポインティングデバイスで選択した状態で右クリックを行うと、「タスク編集」、「タスク追加」、「タスク削除」のいずれかの処理を選択できる。ここで、「タスク編集」が選択された場合には、選択されているタスクの教示用ウィンドウW3に戻って、当該タスクについての情報を変更することができる。「タスク追加」が選択された場合には、選択されているタスクのすぐ後の順序に、作成済みのタスクを読み込んで挿入するか、あるいは、教示用ウィンドウW3に戻ってタスクを作成して挿入することができる。「タスク削除」が選択された場合には、選択されているタスクをタスクリストから削除することができる。
オペレータの操作に応じてタスクプログラムが変更され、追加され、あるいは削除される。
図8に示すように、タスクリスト中の各タスクには、各タスクに含まれる複数のモーションを表示するための展開アイコンEIが対応付けられている。いずれかの展開アイコンEIを操作することで、操作された展開アイコンEIに対応するタスクに含まれる複数のモーションが表示される。例えば、図8のタスクリストにおいてタスクT2に対応する展開アイコンEIが操作されると、図9に示す教示用ウィンドウW5が表示される。
図9に示す例では、タスクT2には、タスクT2に含まれる以下の複数のモーションを特定する名称であるモーション名称M21〜M25が対応付けられて表示される。
・モーション名称M21… アプローチ点AP2までの動作 (Approach_point_2)
・モーション名称M22… アプローチ点AP1までの動作 (Approach_point_1)
・モーション名称M23… 目標点TPまでの動作 (Target_point)
・モーション名称M24… ハンドの動作(Hand-Open)
・モーション名称M25… デパーチャ点DP1までの動作 (Departure_point_1)
・モーション名称M21… アプローチ点AP2までの動作 (Approach_point_2)
・モーション名称M22… アプローチ点AP1までの動作 (Approach_point_1)
・モーション名称M23… 目標点TPまでの動作 (Target_point)
・モーション名称M24… ハンドの動作(Hand-Open)
・モーション名称M25… デパーチャ点DP1までの動作 (Departure_point_1)
図9に示す教示用ウィンドウW5では、展開アイコンEIに代えて折畳みアイコンFIがタスクT2に対応付けられるとともに、タスクT2に含まれるモーション名称M21〜M25が表示される。なお、折畳みアイコンFIが操作されると、モーション名称M21〜M25が非表示となり、再度図8に示す教示用ウィンドウW4が表示される。
(2−6)近似形状データについて
本実施形態の経路決定装置1では、後述するタスク内干渉チェックおよびタスク間干渉チェックを高速で実行するために、ロボットおよび部品の3次元モデルと対応付けて、近似形状データが作成されてストレージ22に記憶される。近似形状データは、3次元モデル同士の干渉の有無を高速で行うために、3次元モデルの外表面を複数の球体で覆うように、3次元モデルを球体の集合によって近似したデータである。
本実施形態の経路決定装置1では、後述するタスク内干渉チェックおよびタスク間干渉チェックを高速で実行するために、ロボットおよび部品の3次元モデルと対応付けて、近似形状データが作成されてストレージ22に記憶される。近似形状データは、3次元モデル同士の干渉の有無を高速で行うために、3次元モデルの外表面を複数の球体で覆うように、3次元モデルを球体の集合によって近似したデータである。
好適には、1つの3次元モデルに対応して、球体のサイズが異なる複数の近似形状データが作成される。
図10には、ロボットの3次元モデルと異なるレベルの近似形状データとが例示される。図10において、レベル1、レベル2、および、レベル3の近似形状データは、順に基本形状である球体の径が小さくなっていることがわかる。球体の径が小さいほど近似形状データに含まれる球体の数が多くなるため、レベル3の近似形状データは、3次元モデルの外表面が精度良く再現されたモデルである。また、球体の径をさらに小さくすることで、近似形状データのレベルをさらに上げてもよい。その一方で、干渉判定に要する計算時間については、近似形状データのレベル1〜3の順に多くの時間がかかることになる。本実施形態は、後述するように、近似形状データの低レベルから高レベルへ順に上げていきながら干渉判定を行うことで、短時間で干渉判定を行うように構成される。
近似形状データごとに、異なるレベルの球体のデータがツリー構造で管理されている。例えば、近似形状データの特定のレベル1の球体1つに対して、レベル2の球体2つが対応付けられ、当該レベル2の球体1つに対してレベル3の球体が4つ対応付けられている、といった具合である。
図10には、ロボットの3次元モデルと異なるレベルの近似形状データとが例示される。図10において、レベル1、レベル2、および、レベル3の近似形状データは、順に基本形状である球体の径が小さくなっていることがわかる。球体の径が小さいほど近似形状データに含まれる球体の数が多くなるため、レベル3の近似形状データは、3次元モデルの外表面が精度良く再現されたモデルである。また、球体の径をさらに小さくすることで、近似形状データのレベルをさらに上げてもよい。その一方で、干渉判定に要する計算時間については、近似形状データのレベル1〜3の順に多くの時間がかかることになる。本実施形態は、後述するように、近似形状データの低レベルから高レベルへ順に上げていきながら干渉判定を行うことで、短時間で干渉判定を行うように構成される。
近似形状データごとに、異なるレベルの球体のデータがツリー構造で管理されている。例えば、近似形状データの特定のレベル1の球体1つに対して、レベル2の球体2つが対応付けられ、当該レベル2の球体1つに対してレベル3の球体が4つ対応付けられている、といった具合である。
図11に、ロボットおよび部品のデータ構成を概念的に示す図である。
図11に示すように、本実施形態では、階層型リストを構成するロボットRおよび各部品に対して、3次元モデルと、レベル1〜3(L1〜L3)の近似形状データとが対応付けられる。ロボットRの干渉判定結果を可視化するためにロボットRの動作のシミュレーションを実行するときには、ロボットRおよび各部品の3次元モデル、または3次元モデルに対応付けられた近似形状データが仮想空間に配置される。
本実施形態では、同一である2以上の3次元モデルに対応付けられる近似形状データが効率的に作成される。すなわち、同一である2以上の3次元モデルのうちいずれかの3次元モデルに対応する近似形状データが作成済みで近似形状モデルデータベース225に含まれている場合には、近似形状データが作成されていない3次元モデルに対して、作成済みの近似形状データが対応付けられる。例えば、図11に示す例において、ペンPen1に対応する3次元モデルに対する近似形状データが作成済みである場合には、残りのペンPen2〜Pen12に対する近似形状データとして、ペンPen1の近似形状データが複製され、ペンPen2〜Pen12に対する3次元モデルに対応付けられる。
ロボットRに対応する近似形状データを構成する各球体は、それぞれ局所座標を有するか、または局所座標が参照される。ロボットRに対応する近似形状データの各球体の局所座標は、ロボットRの各リンク座標系と同じである。
本実施形態の経路決定装置1では、ロボットRが動作するときの干渉チェックを行うときに、3次元モデルの仮想空間における位置の変更に伴って、3次元モデルに対応する近似形状データの仮想空間内の位置を逐次(例えば、干渉チェックを行う所定期間のタイミング毎に)変更する処理が行われる。このとき、近似形状データの各球体に設定された局所座標を利用して球体の位置の更新が行われる。
例えばロボットRが6関節ロボットである場合に、ロボットRの基準座標(ロボット座標)に対する隣接するリンク座標系間の同次変換行列をT1,T2,T3,T4,T5,T6とすると、各同次変換行列は、各関節の角度からもとめられる。そこで、本実施形態では、更新後のロボット座標系における球体の原点の座標は、更新前のロボット座標系における球体の原点の座標に対して、同次変換行列T1,T2,T3,T4,T5,T6のうち球体が属するリンクに応じた分の1または複数の行列を掛け合わせることで算出される。例えば、T1およびT2によって変換される局所座標を有する球体について、変更前および変更後のロボット座標系における球体の原点の座標をPt,Pt+1とすると、Pt+1=(T1・T2)Pt,となる。なお、ロボットRの移動に応じて同次変換行列も更新されるため、原点の座標の更新に当たっては、更新後の行列が適用される。
ロボットRの移動に応じて球体の原点の位置を順次更新していくことで、ロボットRが移動する度に3次元モデルに球体を再設定する必要がなくなるため、干渉判定処理のさらなる高速化を実現できる。
(2−7)タスク内干渉チェック
次に、タスク内干渉チェックについて、図12〜図14を参照して説明する。図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、球体同士の干渉判定方法について説明する図である。図14は、ロボットの3次元モデルと部品とが干渉する場合の表示態様を例示する図である。
次に、タスク内干渉チェックについて、図12〜図14を参照して説明する。図12は、実施形態の一例に係る教示用ウィンドウの遷移を示す図である。図13は、球体同士の干渉判定方法について説明する図である。図14は、ロボットの3次元モデルと部品とが干渉する場合の表示態様を例示する図である。
タスク内干渉チェックとは、オペレータによって選択されたタスクをロボットが行ったときに当該タスク内に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。
タスク内干渉チェックを実行するには、タスクリストに登録されたいずれかのタスクを選択することにより行う。例えば、図12に示すように、タスクリストのうちタスクT2のタスク内干渉チェックを行うには、オペレータは、タスクT2を選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb141(「タスク内干渉チェック」)を選択する操作を行う。
タスク内干渉チェックを実行するには、タスクリストに登録されたいずれかのタスクを選択することにより行う。例えば、図12に示すように、タスクリストのうちタスクT2のタスク内干渉チェックを行うには、オペレータは、タスクT2を選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb141(「タスク内干渉チェック」)を選択する操作を行う。
タスク内干渉チェックでは、選択されたタスクのタスクプログラムが情報処理装置2からロボット制御装置3へ送信され、ロボット制御装置3においてタスクプログラムが実行される。ロボット制御装置3は、タスクプログラムの実行結果としてロボット状態データを含む実行ログデータを情報処理装置2に返す。ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
情報処理装置2のCADソフトウェアは、ロボット状態データに従って仮想空間内でロボットRおよびロボットRに把持されたワークの3次元モデルを動作させる。このとき、情報処理装置2は、当該3次元モデルに対応する近似形状データが、他のロボットRおよび部品の3次元モデルに対応する近似形状データと干渉するか否かについて判定を行う。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。
本実施形態の例では、近似形状データが複数の球体で構成されているため、干渉の判定処理が容易である。すなわち、図13において、干渉判定対象の2個の球体が球体Cb1,Cb2(各球体の半径r1,r2はレベルに応じて既知である。)とした場合、球体Cb1,Cb2のそれぞれのロボット座標系における更新後の原点O1,O2が、前述したようにして算出される。そして、原点O1,O2間の距離Lが、球体Cb1の半径r1と球体Cb2の半径r2の和よりも大きい場合には、球体Cb1と球体Cb2の干渉が無いと判断できる。逆に、原点O1,O2間の距離Lが、球体Cb1の半径r1と球体Cb2の半径r2の和と同じかそれより小さい場合には、球体Cb1と球体Cb2の干渉があると判断できる。球体Cb1と球体Cb2の干渉がある場合には、球体Cb1が属するロボットまたは部品と、球体Cb2が属するロボットまたは部品とが干渉したと判断される。
ロボットR同士およびロボットRと部品との干渉判定は、基本的には総当りで行われるが、明らかに干渉しない組合せについては干渉判定を行わなくてもよい。例えば、(i) ロボットRのハンドと、ハンド上のワーク、(ii) 周辺配置物と、周辺配置物に配置されたワーク、(iii) ハンド上のワークと、周辺配置物に配置された当該ワーク、については、干渉判定を行わなくてもよい。(i)については干渉が発生し得ず、(ii)については両者とも静止関係にあるために干渉が発生し得ず、(iii)については同時に存在し得ないもの同士であるためである。
また、干渉判定の対象の特定の組合せについては、タスクの種別に応じて干渉判定を行う期間を限定してもよい。例えば、ロボット若しくは周辺配置物と、ハンド上のワークとの干渉を判定する際に、タスクの種別が「取る(Pick up)」である場合には最初のデパーチャ点以降の期間において干渉判定を行い、タスクの種別が「置く(Place)」である場合には最初のアプローチ点から目標点までの期間において干渉判定を行うようにしてもよい。
また、干渉判定の対象の特定の組合せについては、タスクの種別に応じて干渉判定を行う期間を限定してもよい。例えば、ロボット若しくは周辺配置物と、ハンド上のワークとの干渉を判定する際に、タスクの種別が「取る(Pick up)」である場合には最初のデパーチャ点以降の期間において干渉判定を行い、タスクの種別が「置く(Place)」である場合には最初のアプローチ点から目標点までの期間において干渉判定を行うようにしてもよい。
干渉判定の結果は、3次元モデルのうち干渉が発生する部分を、干渉が発生しない部分と異なる態様で表示してもよい。例えば図14に示すように、ロボットRの3次元モデルのうち部品と干渉する部分RINFを干渉していない部分と異なる態様(例えば、異なる色、模様、輝度など)で表示してもよい。それによって、ロボットRのどの部位に干渉が発生するのかオペレータが認識できるため、ロボットRの教示点を変更する、あるいは部品の配置を変更する等の教示作業を支援することができる。
干渉する部分RINFを3次元モデルと異なる様態で表示するとともに、干渉する部分RINFを近似形状データで表示してもよい。その際、近似形状データを構成する球体のサイズを表示することが好ましい。それによってオペレータは、近似形状データを構成する球体のサイズから、ロボットRの教示点をどの程度変更することで干渉を回避することができるのか認識することが容易となる。
なお、図14では、ロボットRの3次元モデルが表示される場合について例示しているが、ロボットRの3次元モデルに代えて当該3次元モデルに対応する近似形状データが表示されてもよい。
なお、図14では、ロボットRの3次元モデルが表示される場合について例示しているが、ロボットRの3次元モデルに代えて当該3次元モデルに対応する近似形状データが表示されてもよい。
なお、CADソフトウェアは、オペレータによって選択されたいずれかの3次元モデルを仮想空間内で非表示にしてもよい。その場合、CADソフトウェアにより仮想空間内で非表示にされた3次元モデルについては、干渉が発生するか否かについての判定の対象としないようにすることが好ましい。それによって、オペレータが注目したい部分についての干渉の有無が認識しやすくなる。例えば、仮想空間を表示するときの視点によっては、オペレータが注目したい部分と、部品とが重なってしまう場合が生じうるが、その場合に、当該部品を非表示とすることで注目したい部分で干渉が生ずるか否かオペレータが確認しやすくなる。
(2−8)タスク間干渉チェック
タスク間干渉チェックは、オペレータによって選択された2つのタスク間のロボットの移動中に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。
タスク間干渉チェックは、オペレータによって選択された2つのタスク間のロボットの移動中に、ロボット、ワーク、および、周辺配置物の3次元モデルの干渉が仮想空間において発生するか否かを判定することである。
タスク間干渉チェックを実行するには、例えば、タスクリストに登録された少なくとも2以上のタスクを選択することにより行う。図15に示すように、例えば、タスクリストのうちタスクT2〜T4のタスク間干渉チェックを行うには、オペレータは、タスクT2〜T4を選択した上で右クリックし、ボタンb14(「動作確認」)を選択し、ボタンb142(「タスク間干渉チェック」)を選択する操作を行う。
タスク間干渉チェックでは、選択された2以上のタスクのタスク間の動作が設定された部分のロボットプログラム(例えば、上記move(AP1))が情報処理装置2からロボット制御装置3へ送信され、ロボット制御装置3においてロボットプログラムが実行される。ロボット制御装置3は、ロボットプログラムの実行結果としてロボット状態データを含む実行ログデータを情報処理装置2に返す。ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
情報処理装置2のCADソフトウェアは、ロボット状態データに従って仮想空間内でロボットRおよびロボットRに把持されたワークの3次元モデルを動作させる。このとき、情報処理装置2は、当該3次元モデルに対応する近似形状データが、他のロボットRおよび部品の3次元モデルに対応する近似形状データと干渉するか否かについて判定を行う。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。
干渉判定のタイミングは適宜設定してよいが、例えば、ロボットの基準点が10mm移動する度に干渉判定が行われる。干渉判定のタイミングで、前述したように、ロボットの近似形状データを構成する各球体の位置が更新されて、干渉判定に利用される。
(2−9)干渉判定処理
次に、図16のフローチャートを参照して、干渉判定(干渉チェック)の処理について説明する。図16のフローチャートは、主として情報処理装置2の制御部21によって実行される。
次に、図16のフローチャートを参照して、干渉判定(干渉チェック)の処理について説明する。図16のフローチャートは、主として情報処理装置2の制御部21によって実行される。
図16に示すフローチャートにおいて、ロボットRの基準点が10mm移動する度にステップS12以降の処理が行わる。ロボットRの基準点が前回から10mm移動した場合(ステップS10:YES)、近似形状データの位置の更新を行う(ステップS12)。近似形状データの位置の更新は、当該近似形状データを構成する1または複数の球体の原点をすべて更新することによって行われる。
次いで、制御部21は、ロボットR同士、およびロボットRと部品との干渉判定を総当りで行う。このとき、ロボットRおよび部品の近似形状データとして、最も球体のサイズが大きいレベル1の近似形状データを用いて、干渉判定が行われる(ステップS14)。干渉の有無は、図13を参照して説明したように、干渉判定の対象となる2つの近似形状データからそれぞれ1つの球体に着目し、球体同士が干渉するか否かを、原点間の距離と、レベル1として予め設定されている各球体の半径の和との大小に基づいて行う。干渉判定の対象となる2つの近似形状データに対して着目する球体を順次変更し、総当りで球体同士が干渉するか否かを判定する。その結果、1つも球体同士が干渉しない場合には(ステップS16:NO)、制御部21は、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。
ステップS14のレベル1の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せのうち、干渉が生じた組合せについては(ステップS16:YES)、制御部21は、球体のサイズがレベル1より小さいレベル2の近似形状データを用いて干渉判定を行う(ステップS20)。球体のサイズが異なる点を除けば、干渉判定の処理は、ステップS14と同じである。すなわち、制御部21は、干渉判定の対象となる2つの近似形状データについて1つも球体同士が干渉しない場合には(ステップS22:NO)、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。
ステップS20のレベル2の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せのうち、干渉が生じた組合せについては(ステップS22:YES)、制御部21は、球体のサイズがレベル2よりさらに小さいレベル3の近似形状データを用いて干渉判定を行う(ステップS24)。球体のサイズが異なる点を除けば、干渉判定の処理は、ステップS14と同じである。すなわち、制御部21は、干渉判定の対象となる2つの近似形状データについて1つも球体同士が干渉しない場合には(ステップS26:NO)、2つの近似形状データが干渉しないと判断し(ステップS18)、終了する。
ステップS24のレベル3の近似形状データでの干渉チェックにおいて、ロボットR同士の組合せ、およびロボットRと部品の組合せに対して干渉が生じた場合には(ステップS26:YES)、干渉があると判断し(ステップS28)、干渉判定結果のデータをストレージ22に記録して終了する。干渉判定結果のデータは、ロボットR、および/または、ロボットRと部品における干渉した球体の位置のデータが含まれる。
図16のフローチャートに示すように、好ましくは、干渉判定は、精度が低いレベル1の近似形状データから精度が高いレベル3の近似形状データを順に用いて、段階的に干渉判定が行われる。また、好ましくは、干渉チェックにおいて、干渉が生じた組合せのうち、干渉した球体のみを高精度のレベルの近似形状データとする。そのため、最初から精度が高いレベル3の近似形状データを用いて干渉判定を行う場合と比較して、干渉判定に要する演算負荷が低減される。
図16のフローチャートに示すように、好ましくは、干渉判定は、精度が低いレベル1の近似形状データから精度が高いレベル3の近似形状データを順に用いて、段階的に干渉判定が行われる。また、好ましくは、干渉チェックにおいて、干渉が生じた組合せのうち、干渉した球体のみを高精度のレベルの近似形状データとする。そのため、最初から精度が高いレベル3の近似形状データを用いて干渉判定を行う場合と比較して、干渉判定に要する演算負荷が低減される。
(3)干渉が発生する場合の経由点の設定
次に、ロボットRを始点から終点まで移動させる場合の経由点の設定方法について、図17のフローチャートを参照して説明する。例えば、ロボットRを始点から終点まで移動させるときに、途中で部品と干渉が発生する場合には、当該部品を避けるようにして経由点を設ける必要がある。
次に、ロボットRを始点から終点まで移動させる場合の経由点の設定方法について、図17のフローチャートを参照して説明する。例えば、ロボットRを始点から終点まで移動させるときに、途中で部品と干渉が発生する場合には、当該部品を避けるようにして経由点を設ける必要がある。
以下、図18の例示を参照しながら、図17のフローチャートについて説明する。図18は、候補点(後述する)の設定について説明する図である。図1に示すフローチャートは教示プログラムに記述されており、情報処理装置2の制御部21によって実行される。 図17において、所定の始点から所定の終点までロボットRを移動させる場合、制御部21は、例えば、始点や終点の座標データや近似形状データ等の必要なデータを抽出し(ステップS30)、干渉チェックを行う(ステップS32)。干渉チェックの具体的な処理は、図16を参照して説明したとおりである。
ステップS32の結果、干渉が発生しない場合には(ステップS34:NO)、始点と終点の間に経由点を設ける必要がないため、終了する。ステップS32の結果、干渉が発生する場合には(ステップS34:YES)、経由点を設定するためにステップS36以降に進む。
ステップS32の結果、干渉が発生しない場合には(ステップS34:NO)、始点と終点の間に経由点を設ける必要がないため、終了する。ステップS32の結果、干渉が発生する場合には(ステップS34:YES)、経由点を設定するためにステップS36以降に進む。
ロボットと部品の干渉が発生した場合、制御部21は、球体で構成される部品の近似形状データにおいてロボットと干渉する球体を大径化した球体の表面に候補点を設定する(ステップS36)。候補点とは、ロボットRの始点から終点までの経路の経由点となり得る、経由点の候補となる点を意味する。
例えば、部品の特定のレベル3の球体(図10参照)において干渉が発生する場合、当該レベル3の球体に対して、ツリー構造上で対応するレベル2の球体(図10参照)の表面上に候補点を設定する。
例えば、部品の特定のレベル3の球体(図10参照)において干渉が発生する場合、当該レベル3の球体に対して、ツリー構造上で対応するレベル2の球体(図10参照)の表面上に候補点を設定する。
図18は、候補点VCが設定されたレベル2の球体Cb10(L2)を示している。この例では、始点と終点の間に存在するレベル3の球体(図示せず)において干渉が発生したため、当該球体に対応付けられている、より径の大きいレベル2の球体Cb10(L2)に候補点VCが設定された場合が想定されている。干渉が発生した球体よりも一回り大きな球体の表面上に候補点VCを設定することで、現在生じている干渉を回避しつつ、別の部品との新たな干渉が発生する可能性を低くすることができる。
図18に示す例では、レベル2の球体Cb10(L2)の表面上に、ユーザによって指定された数の候補点VCを均等に設定している。
複数の候補点VCを設定した後、制御部21は、各候補点VCを仮に経由点とした場合に干渉が発生するか否かの干渉チェックを行う。具体的には、制御部21は、ロボットRを始点から候補点VCまで移動させたときの干渉チェックを行うとともに(ステップS38)、ロボットRを当該候補点VCから終点まで移動させたときの干渉チェックを行う(ステップS40)。ステップS38およびS40の処理は、ステップS36で設定されたすべての候補点VCを対象として行う(ステップS42:NO)。制御部21は、各候補点VCに対するステップS38,S40の干渉チェックの結果をストレージ22に記録する。
各候補点VCに対する干渉チェックの結果、干渉を回避できる候補点VCが1つでも存在したと判定された場合(ステップS44:YES)、干渉を回避できる候補点VCの中からいずれかの候補点VCをユーザが選択可能となるように、候補点VCを表示する(ステップS46)。
各候補点VCに対する干渉チェックの結果、干渉を回避できる候補点VCが1つでも存在したと判定された場合(ステップS44:YES)、干渉を回避できる候補点VCの中からいずれかの候補点VCをユーザが選択可能となるように、候補点VCを表示する(ステップS46)。
ステップS46における好ましい表示例を図19に示す。
図19に示す表示例では、以下の4グループに分けて、各グループを異なる表示態様で表示する。このようにグループ分けして候補点VCを表示することで、ユーザに対して、候補点VCの中から適切な経由点を選択するための有用な情報を与えることができる。
なお、各グループの異なる表示態様は一例に過ぎず、異なるグループが識別できる限り如何なる表示態様であってもよい。例えば、グループごとに異なる色で表示してもよい。
図19に示す表示例では、以下の4グループに分けて、各グループを異なる表示態様で表示する。このようにグループ分けして候補点VCを表示することで、ユーザに対して、候補点VCの中から適切な経由点を選択するための有用な情報を与えることができる。
なお、各グループの異なる表示態様は一例に過ぎず、異なるグループが識別できる限り如何なる表示態様であってもよい。例えば、グループごとに異なる色で表示してもよい。
・「●」:始点から候補点VCまでの経路、および、候補点VCから終点までの経路において近似形状データの干渉が発生しないという第1条件を満たす候補点(第1候補点の一例)からなる第1候補点からなる第1候補点グループ
・「△」:始点から候補点VCまでの経路において近似形状データの干渉が発生せず、候補点VCから終点までの経路において近似形状データの干渉が発生するという第2条件を満たす候補点(第2候補点の一例)からなる第2候補点グループ
・「▲」:始点から候補点VCまでの経路において近似形状データの干渉が発生し、候補点VCから終点までの経路において近似形状データの干渉が発生しないという第3条件を満たす候補点(第3候補点の一例)からなる第3候補点グループ
・「×」:始点から候補点VCまでの経路、および、候補点VCから終点までの経路のいずれにおいても近似形状データの干渉が発生するという第4条件を満たす候補点からなる第4候補点グループ
ユーザが例えばポインティングデバイスを用いて、ステップS46に表示された候補点VCの中からいずれかの候補点VCを選択した場合(ステップS48:YES)、制御部21は、選択された候補点VCを経由点として決定する(ステップS50)。
ステップS44において、干渉を回避できる候補点VCが1つも存在しないと判定された場合(ステップS44:NO)、制御部21は、ステップS36で候補点VCを設定した球体よりもさらに1サイズ大きい球体の表面上に候補点VCを設定する(ステップS52)。そして、ステップS38〜S42の処理を再び繰り返す。候補点VCを設定する球体を大きくすることで、干渉を回避できる可能性が高くなる。
図17のフローチャートのステップS44において、干渉を回避する候補点VCが1つも存在しない場合には、2以上の経由点を設定するようにしてもよい。
例えば図20において、干渉を回避する候補点VCが1つも存在しない場合、第2候補点グループの中のいずれかの候補点VCを、第1の経由点V1として決定する。つまり、図20に示す例では、始点から第1の経由点V1までの経路で干渉が発生しないが、第1の経由点V1から終点までの経路で、近似形状データのレベル3の球体Cb12(L3)と干渉する。
かかる場合には、第1の経由点V1を始点とした場合の始点から終点までの経路において、図17の処理を実行する。すなわち、図21に示すように、近似形状データのレベル3の球体Cb12(L3)より大径化した、レベル2の球体Cb12(L2)の表面上に候補点を設定する。図21には、レベル2の球体Cb12(L2)の表面上に候補点から第2の経由点V2が決定された例が示される。図21に示した例では、始点→第1の経由点V1→第2の経由点V2→終点、のロボットRの経路によって干渉の発生が回避される。
例えば図20において、干渉を回避する候補点VCが1つも存在しない場合、第2候補点グループの中のいずれかの候補点VCを、第1の経由点V1として決定する。つまり、図20に示す例では、始点から第1の経由点V1までの経路で干渉が発生しないが、第1の経由点V1から終点までの経路で、近似形状データのレベル3の球体Cb12(L3)と干渉する。
かかる場合には、第1の経由点V1を始点とした場合の始点から終点までの経路において、図17の処理を実行する。すなわち、図21に示すように、近似形状データのレベル3の球体Cb12(L3)より大径化した、レベル2の球体Cb12(L2)の表面上に候補点を設定する。図21には、レベル2の球体Cb12(L2)の表面上に候補点から第2の経由点V2が決定された例が示される。図21に示した例では、始点→第1の経由点V1→第2の経由点V2→終点、のロボットRの経路によって干渉の発生が回避される。
図18に示した例では、レベル2の球体Cb10(L2)の表面上に、ユーザによって指定された数の候補点VCを均等に設定した場合を示したが、その限りではない。
図22に示すように、始点と終点とを結ぶ直線DLと直交するレベル2の球体Cb10(L2)の切断面のうちレベル2の球体Cb10(L2)と交わる円の径が最大となる平面PL1を定義したときに、当該平面PL1上であってレベル2の球体Cb10(L2)の表面と交わる円上に複数の候補点VCを設定してもよい。この場合、設定された複数の候補点VCの中には、レベル2の球体Cb10(L2)の表面上で直線DLから最も離れた候補点VCが含まれることになるため、干渉を回避できる可能性が高くなる。また、レベル2の球体Cb10(L2)の表面上に均等に候補点VCを設けるよりも、候補点VCの数が少なくて済むため、経由点を決定するための演算負荷が低減する。
図22に示すように、始点と終点とを結ぶ直線DLと直交するレベル2の球体Cb10(L2)の切断面のうちレベル2の球体Cb10(L2)と交わる円の径が最大となる平面PL1を定義したときに、当該平面PL1上であってレベル2の球体Cb10(L2)の表面と交わる円上に複数の候補点VCを設定してもよい。この場合、設定された複数の候補点VCの中には、レベル2の球体Cb10(L2)の表面上で直線DLから最も離れた候補点VCが含まれることになるため、干渉を回避できる可能性が高くなる。また、レベル2の球体Cb10(L2)の表面上に均等に候補点VCを設けるよりも、候補点VCの数が少なくて済むため、経由点を決定するための演算負荷が低減する。
(4)経路決定装置1の機能
次に、本実施形態の経路決定装置1の機能について、図23を参照して説明する。図23は、実施形態に係る経路決定装置1の機能ブロック図である。
図23に示すように、経路決定装置1は、表示制御部101、データ作成部102、プログラム実行部103、状態情報算出部104、干渉判定部105、候補点設定部106、および、候補点特定部107を備える。
本実施形態の経路決定装置1において、情報処理装置2のストレージ22は、前述したように、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、実行ログデータベース224、および、近似形状モデルデータベース225を備える。
次に、本実施形態の経路決定装置1の機能について、図23を参照して説明する。図23は、実施形態に係る経路決定装置1の機能ブロック図である。
図23に示すように、経路決定装置1は、表示制御部101、データ作成部102、プログラム実行部103、状態情報算出部104、干渉判定部105、候補点設定部106、および、候補点特定部107を備える。
本実施形態の経路決定装置1において、情報処理装置2のストレージ22は、前述したように、ロボットプログラム221、階層型リストデータベース222、3次元モデルデータベース223、実行ログデータベース224、および、近似形状モデルデータベース225を備える。
表示制御部101は、教示ソフトウェアおよびCADソフトウェアの実行結果を表示装置24に表示させる制御を行う。
表示制御部101は、ロボット、ワーク、および、周辺配置物の3次元モデルを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能は、CADソフトウェアが3次元モデルデータベース223を参照することによって実現される。
表示制御部101は、近似形状データを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能を実現するために、情報処理装置2の制御部21は、ストレージ22の近似形状モデルデータベース225にアクセスして、仮想空間に配置すべき近似形状データを読み出す。近似形状データは、3次元モデルデータベース223の3次元モデルに対応付けられている。
表示制御部101は、ロボット、ワーク、および、周辺配置物の3次元モデルを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能は、CADソフトウェアが3次元モデルデータベース223を参照することによって実現される。
表示制御部101は、近似形状データを仮想空間内に配置して表示装置24に表示させる機能を備える。当該機能を実現するために、情報処理装置2の制御部21は、ストレージ22の近似形状モデルデータベース225にアクセスして、仮想空間に配置すべき近似形状データを読み出す。近似形状データは、3次元モデルデータベース223の3次元モデルに対応付けられている。
表示制御部101は、候補点特定部107によって特定された候補点を、当該候補点の中からユーザが経由点を選択可能となるように、表示装置24に表示する機能を備える。
データ作成部102は、3次元モデルデータベース223に含まれる3次元データを球体の集合によって近似した近似形状データを作成する機能を備える。当該機能を実現するために、情報処理装置2の制御部21が、3次元モデルデータベース223からロボットおよび部品の3次元モデルを読み出し、3次元モデルの外表面を1または複数の球体で覆うようにして球体を配置することで、3次元モデルに対応する近似形状データを作成する。作成された近似形状データは、近似形状モデルデータベース225に記録される。
プログラム実行部103は、オペレータの操作入力に応じて、ロボットプログラムの全部または一部を実行する機能を備える。
プログラム実行部103の機能を実現するために、タスクリストのうちいずれかのタスクを選択した状態でのボタンb141(「タスク内干渉チェック」)の操作、または、タスクリストのうち2以上のタスクを選択した状態でのボタンb142(「タスク間干渉チェック」)を選択する操作に応じて、通信インタフェース部25を介してロボットプログラムをロボット制御装置3へ送信する。送信対象とするロボットプログラムの範囲は、タスクリストにおいて選択されたタスクに基づく。ロボット制御装置3の制御部31は、ロボットプログラムを受信すると、ロボットプログラムを実行する。
プログラム実行部103の機能を実現するために、タスクリストのうちいずれかのタスクを選択した状態でのボタンb141(「タスク内干渉チェック」)の操作、または、タスクリストのうち2以上のタスクを選択した状態でのボタンb142(「タスク間干渉チェック」)を選択する操作に応じて、通信インタフェース部25を介してロボットプログラムをロボット制御装置3へ送信する。送信対象とするロボットプログラムの範囲は、タスクリストにおいて選択されたタスクに基づく。ロボット制御装置3の制御部31は、ロボットプログラムを受信すると、ロボットプログラムを実行する。
状態情報算出部104は、プログラム実行部103による実行結果に基づいて、時間の経過に応じたロボットの状態を示す情報であるロボット状態データを演算する機能を備える。
状態情報算出部104の機能を実現するために、ロボット制御装置3の制御部31は、情報処理装置2からロボットプログラムを実行し、ロボットプログラムの実行結果として、ロボット状態データを演算して順次、ストレージ32に記録する。
ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、時間軸に沿った所定の基準時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。
ロボット状態データは、マニピュレータ50のモデルを基に演算された時間の経過に応じたロボットの状態を示す物理量(例えば、所定の基準時間(例えば1ms)ごとの関節角、基準点の座標位置等)のデータである。
ロボットプログラムの実行が終了すると、制御部31は、ストレージ32から、時間軸に沿った所定の基準時間(例えば1ms)ごとのロボット状態データを読み出す。制御部31は、読み出したロボット状態データを含む実行ログデータを、通信インタフェース部33を介して情報処理装置2へ送信する。情報処理装置2の制御部21は、ロボット制御装置3からロボット状態データを含む実行ログデータを取得すると、実行ログデータを実行ログデータベース224に記録する。
干渉判定部105は、始点から終点までの経路においてロボットRを移動させたときに、近似形状データの干渉が発生するか否かを判定する機能を備える。干渉の有無は、ロボットプログラムの実行ログデータに基づいて決定される。干渉判定部105は、図16の干渉判定処理に相当する。
候補点設定部106は、干渉判定部105によって干渉が発生すると判定された場合、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットRが経由する経由点の候補となる複数の候補点を設定する機能を備える。候補点設定部106は、例えば、図17のフローチャートのステップS36の処理に対応する。
候補点特定部107は、始点から候補点までの経路、および、候補点から前記終点までの経路においてロボットRに移動させたときに、近似形状データの干渉が発生しない候補点を、複数の候補点の中から特定する機能を備える。候補点特定部107は、例えば、図17のフローチャートのステップS38〜S44の処理に相当する。
データ作成部102は、3次元データに対応して、それぞれ球体の径が異なる複数の近似形状データを作成し、当該複数の近似形状データの各球体は、径が大きい球体が当該球体よりも径が小さい2以上の球体と対応付けられるようにツリー構造によって構成されてもよい。その場合、候補点設定部106は、近似形状データのうち干渉が発生した球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を設定する。
なお、近似形状データのうち干渉が発生した球体に対して、ツリー構造に対応する大径の球体の表面上に候補点を設定することは必須ではない。例えば、近似形状データのうち干渉が発生した球体と同心の、より大径の球体の表面上に候補点を設定してもよい。
なお、近似形状データのうち干渉が発生した球体に対して、ツリー構造に対応する大径の球体の表面上に候補点を設定することは必須ではない。例えば、近似形状データのうち干渉が発生した球体と同心の、より大径の球体の表面上に候補点を設定してもよい。
図17のフローチャートのステップS52に示したように、候補点特定部107が、近似形状データの干渉が発生しない候補点を特定することができない場合には、候補点設定部106は、候補点が設定されている球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を新たに設定してもよい。その場合、候補点特定部107は、新たに設定した複数の候補点の中から、近似形状データの干渉が発生しない候補点を特定する。
以上説明したように、本実施形態の経路決定装置1では、1または複数の球体の集合体で構成した近似形状データでロボットや部品をモデル化し、近似形状データを用いてロボットを動作させたときの干渉判定を行う。干渉が発生した場合には、近似形状データのうち干渉が発生した球体より大径の球体の表面上に、ロボットが経由する経由点の候補となる複数の候補点を設定し、当該複数の候補点の中から干渉が発生しない候補点を特定する。そして、特定された候補点の中から、ユーザの選択に従って経由点を決定する。
複数の候補点は、例えば、干渉が発生した球体に対して予め対応付けられた、より大径の球体上に設定される。そして、各候補点を経由するときの干渉判定は、図13を参照して説明したように簡単な処理で行うことができる。すなわち、干渉が発生しない経由点の候補となる候補点を経由点の決定は短時間で行うことができる。干渉が発生しない候補点の中からユーザによる簡易な操作で経由点が決定される。したがって、本実施形態の経路決定装置1によれば、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できる。
複数の候補点は、例えば、干渉が発生した球体に対して予め対応付けられた、より大径の球体上に設定される。そして、各候補点を経由するときの干渉判定は、図13を参照して説明したように簡単な処理で行うことができる。すなわち、干渉が発生しない経由点の候補となる候補点を経由点の決定は短時間で行うことができる。干渉が発生しない候補点の中からユーザによる簡易な操作で経由点が決定される。したがって、本実施形態の経路決定装置1によれば、簡易な操作で、かつ短時間で、干渉を回避するロボットの動作経路を生成できる。
以上、本発明の経路決定装置の実施形態について詳述したが、本発明は上記の実施形態に限定されない。また、上記の実施形態は、本発明の主旨を逸脱しない範囲において、種々の改良や変更が可能である。
例えば、図24に、図17のフローチャートの変形例を示す。図24では、各候補点に対する干渉チェックが終了した後(ステップS42:YES)、干渉チェック結果を図19に例示したようにして表示し、ユーザがいずれの候補点も経由点として選択しないことを決定した場合にステップS52に進む。この変形例では、干渉が発生しない候補点が存在しない場合であっても、候補点を設定する球体を大きくすることなく、複数の経由点を設定することで柔軟に経路を決定していくことができる。
例えば、図24に、図17のフローチャートの変形例を示す。図24では、各候補点に対する干渉チェックが終了した後(ステップS42:YES)、干渉チェック結果を図19に例示したようにして表示し、ユーザがいずれの候補点も経由点として選択しないことを決定した場合にステップS52に進む。この変形例では、干渉が発生しない候補点が存在しない場合であっても、候補点を設定する球体を大きくすることなく、複数の経由点を設定することで柔軟に経路を決定していくことができる。
上述した説明により、図23の機能ブロック図に記載された機能のうち少なくとも一部の機能をコンピュータに実現させるためのプログラム、および、当該プログラムが記録されたコンピュータ可読記憶媒体(不揮発性の記憶媒体をも含む。)が開示されていることは当業者に理解される。
1…経路決定装置、2…情報処理装置、21…制御部、22…ストレージ、23…入力装置、24…表示装置、25…通信インタフェース部、3…ロボット制御装置、31…制御部、32…ストレージ、33…通信インタフェース部、11…ペントレイ、P…ペン群、12…キャップトレイ、C…キャップ群、13…治具、14…製品トレイ、EC…イーサネットケーブル、R…ロボット、51…アーム、52…ハンド、61〜68…ノード、101…表示制御部、102…データ作成部、103…プログラム実行部103…状態情報算出部104…干渉判定部、106…候補点設定部、107…候補点特定部、221…ロボットプログラム、222…階層型リストデータベース、223…3次元モデルデータベース、224…実行ログデータベース、225…近似形状モデルデータベース、RA…ロボット領域、PA…パーツ領域、W1〜W5…ウィンドウ、b1〜b2,b11〜b13,b141,b142…ボタン、AP…アプローチ点、TP…目標点、DP…デパーチャ点、TL…テーブル、T…タスク、M…モーション名称、Cb1,Cb2…球体、Cb10(L2),Cb12(L2)…レベル2の球体、Cb12(L3)…レベル3の球体、O1,O2…原点、VC…候補点、V…経由点、DL…直線DL、PL1…切断面、CL1…円
Claims (8)
-
ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶部と、
前記記憶部に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成部と、
始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定部と、
前記干渉判定部によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定部と、
前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定部と、
前記候補点特定部によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御部と、
を備えた、ロボットの経路決定装置。 -
前記データ作成部は、前記3次元データに対応して、それぞれ球体の径が異なる複数の近似形状データを作成し、当該複数の近似形状データの各球体は、径が大きい球体が当該球体よりも径が小さい2以上の球体と対応付けられるようにツリー構造によって構成され、
前記候補点設定部は、前記近似形状データのうち干渉が発生した球体に対応付けられている、より径が大きい球体の表面上に、前記複数の候補点を設定する、
請求項1に記載されたロボットの経路決定装置。 -
前記候補点特定部が、前記近似形状データの干渉が発生しない候補点を特定することができない場合には、前記候補点設定部は、候補点が設定されている球体に対応付けられている、より径が大きい球体の表面上に、複数の候補点を新たに設定し、
前記候補点特定部は、新たに設定した前記複数の候補点の中から、前記近似形状データの干渉が発生しない候補点を特定する、
請求項2に記載されたロボットの経路決定装置。 -
前記表示制御部は、前記複数の候補点のうち、
前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記近似形状データの干渉が発生しないという第1条件を満たす第1候補点と、
前記始点から候補点までの経路において前記近似形状データの干渉が発生せず、候補点から前記終点までの経路において前記近似形状データの干渉が発生するという第2条件を満たす第2候補点と、
前記始点から候補点までの経路において前記近似形状データの干渉が発生し、候補点から前記終点までの経路において前記近似形状データの干渉が発生しないという第3条件を満たす第3候補点と、
を異なる表示態様で表示する、
請求項1から3のいずれか1項に記載されたロボットの経路決定装置。 -
前記候補点設定部は、前記複数の候補点を設定すべき球体の表面上に、前記ユーザによって指定された数の候補点を均等に設定する、
請求項1から4のいずれか1項に記載された、ロボットの経路決定装置。 -
前記候補点設定部は、前記始点と前記終点とを結ぶ直線と直交する面のうち前記表面と交わる円の径が最大となる平面を定義したときに、当該平面上であって前記表面と交わる円上に前記複数の候補点を設定する、
請求項1から4のいずれか1項に記載された、ロボットの経路決定装置。 -
ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを用いて前記ロボットの経路を決定する経路決定方法であって、
前記3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成し、
始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定し、
干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定し、
前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定し、
前記特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する、
ロボットの経路決定方法。 -
ロボット、前記ロボットの作業対象となるワーク、および、前記ロボットの周辺に配置される周辺配置物のうち少なくともいずれかの3次元データを記憶する記憶装置を参照して、前記ロボットの経路を決定するためのプログラムであって、コンピュータに、
前記記憶装置に記憶される3次元データを、当該3次元データの外表面を覆うように1または複数の球体を配置することで当該3次元データの近似形状データを作成するデータ作成手段と、
始点から終点までの経路において前記ロボットを移動させたときに、前記近似形状データの干渉が発生するか否かを判定する干渉判定手段と、
前記干渉判定手段によって干渉が発生すると判定された場合、前記近似形状データのうち干渉が発生した球体より大径の球体の表面上に、前記ロボットが経由する経由点の候補となる複数の候補点を設定する候補点設定手段と、
前記始点から候補点までの経路、および、候補点から前記終点までの経路において前記ロボットに移動させたときに、前記近似形状データの干渉が発生しない候補点を、前記複数の候補点の中から特定する候補点特定手段と、
前記候補点特定手段によって特定された候補点を、当該候補点の中からユーザが前記経由点を選択可能となるように、表示装置に表示する表示制御手段と、
を実現させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018179924 | 2018-09-26 | ||
JP2018179924 | 2018-09-26 | ||
PCT/JP2019/037124 WO2020066949A1 (ja) | 2018-09-26 | 2019-09-20 | ロボットの経路決定装置、ロボットの経路決定方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2020066949A1 true JPWO2020066949A1 (ja) | 2021-08-30 |
JP7259860B2 JP7259860B2 (ja) | 2023-04-18 |
Family
ID=69949433
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020549167A Active JP7259860B2 (ja) | 2018-09-26 | 2019-09-20 | ロボットの経路決定装置、ロボットの経路決定方法、プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP7259860B2 (ja) |
WO (1) | WO2020066949A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021260898A1 (ja) * | 2020-06-25 | 2021-12-30 | 株式会社日立ハイテク | ロボット教示装置及び作業教示方法 |
DE112021003175T5 (de) * | 2020-08-05 | 2023-04-13 | Fanuc Corporation | Robotervorrichtung zur erkennung der störungen eines roboterbauteils |
JP2022137797A (ja) * | 2021-03-09 | 2022-09-22 | オムロン株式会社 | 安全検証装置、安全検証方法、およびプログラム |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63158620A (ja) * | 1986-10-29 | 1988-07-01 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | 案内物体移動制御方法および装置 |
JPH05250023A (ja) * | 1991-10-23 | 1993-09-28 | Sanyo Electric Co Ltd | ロボットマニピュレータの経路自動生成法 |
JPH0934524A (ja) * | 1995-07-18 | 1997-02-07 | Kobe Steel Ltd | ロボットマニピュレータの移動経路の自動生成方法 |
JPH0981228A (ja) * | 1995-09-19 | 1997-03-28 | Fanuc Ltd | ロボット教示操作盤およびロボットプログラムの更新方法 |
JPH1020916A (ja) * | 1996-07-01 | 1998-01-23 | Kubota Corp | 移動体の移動経路の生成方法及び装置 |
JP2004046542A (ja) * | 2002-07-11 | 2004-02-12 | Mitsubishi Heavy Ind Ltd | モデル加工方法およびモデル加工システム |
JP2005081405A (ja) * | 2003-09-10 | 2005-03-31 | Murata Mach Ltd | パンチプレス用干渉チェック装置 |
JP2009233757A (ja) * | 2008-03-25 | 2009-10-15 | Ihi Corp | ロボット装置の制御方法及びロボット装置 |
JP2009291540A (ja) * | 2008-06-09 | 2009-12-17 | Hitachi Ltd | 移動ロボットシステム |
JP2017217143A (ja) * | 2016-06-06 | 2017-12-14 | 東芝メディカルシステムズ株式会社 | X線診断装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100272932A1 (en) | 2008-03-07 | 2010-10-28 | Mitsubishi Electric Corporation | Decorative component |
-
2019
- 2019-09-20 WO PCT/JP2019/037124 patent/WO2020066949A1/ja active Application Filing
- 2019-09-20 JP JP2020549167A patent/JP7259860B2/ja active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63158620A (ja) * | 1986-10-29 | 1988-07-01 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | 案内物体移動制御方法および装置 |
JPH05250023A (ja) * | 1991-10-23 | 1993-09-28 | Sanyo Electric Co Ltd | ロボットマニピュレータの経路自動生成法 |
JPH0934524A (ja) * | 1995-07-18 | 1997-02-07 | Kobe Steel Ltd | ロボットマニピュレータの移動経路の自動生成方法 |
JPH0981228A (ja) * | 1995-09-19 | 1997-03-28 | Fanuc Ltd | ロボット教示操作盤およびロボットプログラムの更新方法 |
JPH1020916A (ja) * | 1996-07-01 | 1998-01-23 | Kubota Corp | 移動体の移動経路の生成方法及び装置 |
JP2004046542A (ja) * | 2002-07-11 | 2004-02-12 | Mitsubishi Heavy Ind Ltd | モデル加工方法およびモデル加工システム |
JP2005081405A (ja) * | 2003-09-10 | 2005-03-31 | Murata Mach Ltd | パンチプレス用干渉チェック装置 |
JP2009233757A (ja) * | 2008-03-25 | 2009-10-15 | Ihi Corp | ロボット装置の制御方法及びロボット装置 |
JP2009291540A (ja) * | 2008-06-09 | 2009-12-17 | Hitachi Ltd | 移動ロボットシステム |
JP2017217143A (ja) * | 2016-06-06 | 2017-12-14 | 東芝メディカルシステムズ株式会社 | X線診断装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2020066949A1 (ja) | 2020-04-02 |
JP7259860B2 (ja) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3363604B1 (en) | Robot simulator, robot system and simulation method | |
US11409260B2 (en) | Runtime controller for robotic manufacturing system | |
US9387589B2 (en) | Visual debugging of robotic tasks | |
JP2019171501A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
JP6676286B2 (ja) | 情報処理方法、および情報処理装置 | |
CN102216037B (zh) | 用于优化工业机器人的编程移动路径的方法和装置 | |
JPWO2019064916A1 (ja) | ロボットシミュレータ | |
US6330495B1 (en) | Off-line teaching method and apparatus for the same | |
JPWO2020066949A1 (ja) | ロボットの経路決定装置、ロボットの経路決定方法、プログラム | |
JP7151713B2 (ja) | ロボットシミュレータ | |
CN101034418A (zh) | 用于机器人仿真的装置、程序、记录介质以及方法 | |
CN109249388A (zh) | 运动生成方法、运动生成装置、运动生成系统及存储介质 | |
CN109648568B (zh) | 机器人控制方法、系统及存储介质 | |
CN111452042B (zh) | 一种机械臂的控制方法、系统及控制终端 | |
JP2017213644A (ja) | 教示装置、教示システム、ロボットシステム、教示方法、製造品の製造方法、プログラム及び記録媒体 | |
JPWO2019064919A1 (ja) | ロボット教示装置 | |
US20220395985A1 (en) | Information processing apparatus, information processing method, display apparatus, display method, robot system, article production method, program, and storage medium | |
CN113905855A (zh) | 运动规划图生成用户界面、系统、方法和规则 | |
CN115703227A (zh) | 机器人的控制方法、机器人以及计算机可读存储介质 | |
JP7370755B2 (ja) | 情報処理装置、情報処理方法、プログラム、記録媒体、および物品の製造方法 | |
JP7167925B2 (ja) | ロボット教示装置 | |
JP2019171499A (ja) | ロボットの干渉判定装置、ロボットの干渉判定方法、プログラム | |
WO2020059342A1 (ja) | ロボットシミュレータ | |
JP7099470B2 (ja) | ロボット教示装置 | |
JP7024795B2 (ja) | ロボット教示装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220829 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230320 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 7259860 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |