(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】6114361
(24)【登録日】2017年3月24日
(45)【発行日】2017年4月12日
(54)【発明の名称】オフラインのロボットプログラミング装置
(51)【国際特許分類】
B25J 9/22 20060101AFI20170403BHJP
G05B 19/42 20060101ALI20170403BHJP
【FI】
B25J9/22 A
G05B19/42 P
【請求項の数】3
【全頁数】12
(21)【出願番号】特願2015-215572(P2015-215572)
(22)【出願日】2015年11月2日
【審査請求日】2016年9月14日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390008235
【氏名又は名称】ファナック株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100102819
【弁理士】
【氏名又は名称】島田 哲郎
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100112357
【弁理士】
【氏名又は名称】廣瀬 繁樹
(74)【代理人】
【識別番号】100157211
【弁理士】
【氏名又は名称】前島 一夫
(74)【代理人】
【識別番号】100159684
【弁理士】
【氏名又は名称】田原 正宏
(72)【発明者】
【氏名】井上 幸三
【審査官】
中田 善邦
(56)【参考文献】
【文献】
特開2014−144523(JP,A)
【文献】
特開2013−99815(JP,A)
【文献】
特開2007−193846(JP,A)
【文献】
特開平4−96806(JP,A)
【文献】
特開平11−58276(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B25J1/00−21/02,
G05B19/18−19/416,19/42−19/46
(57)【特許請求の範囲】
【請求項1】
3次元仮想空間内にロボット、周辺装置、及びワークを配置して該ロボットの教示を行うロボットプログラミング装置であって、
制御信号によって前記周辺装置の動作及び前記ロボットのハンドの開閉動作のシミュレーションを行うシミュレーション実行部と、
所定のロボット作業プログラムの教示点又は教示点間の軌道毎に、又はロボット作業プログラムを予め記したプログラムテンプレートの教示点又は教示点間の軌道毎に、各教示点又は各軌道の属性データとして、前記周辺装置の動作及び前記ハンドの開閉動作のシミュレーションを行うための制御信号を設定する信号設定部と、
前記ロボットを前記教示点又は教示点間の軌道に移動させる移動部と、
前記ロボットが移動した教示点又は教示点間の軌道について、前記ワークを表示するか非表示とするかを設定する表示設定部と、
を有する、ロボットプログラミング装置。
【請求項2】
前記教示点に属性データとして干渉を回避する位置を検索するための前記ロボットの動作方向及び動作範囲を設定する干渉回避条件設定部と、
前記移動部により教示点に移動したロボットについて干渉が発生した場合に、前記干渉回避条件設定部の設定に従って前記ロボットを干渉が回避できる位置まで移動させ、その位置を自動的に教示点として設定する干渉回避教示点設定部と、
を有する、請求項1に記載のロボットプログラミング装置。
【請求項3】
前記教示点間の軌道に属性データとして干渉を回避する位置を検索するための前記ロボットの動作方向及び動作範囲を設定する干渉回避条件設定部と、
前記移動部によりロボットが移動した教示点間の軌道に、前記ロボットについて干渉が発生する干渉区間が存在した場合、前記干渉区間の両端を前記干渉回避条件設定部の設定に従って移動させ、移動した前記干渉区間の両端の位置を教示点として設定する干渉回避教示点設定部と、
を有する、請求項1に記載のロボットプログラミング装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボットのシミュレーションや作業プログラムの作成・修正をオフラインで行うロボットプログラミング装置に関する。
【背景技術】
【0002】
ロボット及び周辺装置を含むシステムでは、ロボットが把持したワークを工作機械内に移動・配置して、該工作機械によって該ワークを加工する等の、協働作業を行う場合が多い。このようなシステムは、所定の動作プログラムに従って制御することができるが、ロボット又は工作機械の機種やワークの種類が変更されると、該動作プログラムも適宜変更する必要が生じる。
【0003】
これに関連する従来技術として、例えば特許文献1には、作業プログラムを、作業ワークに依存した変更を必要とする第1プログラム部と、作業ワークの種類に依存しない第2プログラム部とに分離し、該第1プログラムの変更のみによって新規の作業ワークに対応した作業プログラムを作成できるようにした、作業プログラム作成装置が記載されている。
【0004】
また特許文献2には、夫々の作業工程を実現する単位プログラム(プログラムブロック)を組み合わせることによって、複数の作業工程を実行する制御システムの制御プログラムを作成する制御システム開発支援装置が記載されている。
【0005】
作成した動作プログラムの有効性等を評価するために、該動作プログラムに基づいてオフラインでのシミュレーションを行う技術も周知である。例えば特許文献3には、ロボット、ワーク及び周辺機器の3次元モデルを表示し、動作プログラムの各教示点において干渉が生じる場合には、干渉が生じないように教示点の位置を自動で修正することができるロボットプログラミング装置が記載されている。
【0006】
また特許文献4には、動作プログラムの作業単位である複数のブロックの各々に実行ボタンを配置・表示し、該実行ボタンの操作によって各ブロックを実行してその動作確認を行えるようにした、動作プロブラム作成装置が記載されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第3905075号公報
【特許文献2】特許第5058063号公報
【特許文献3】特開2013−099815号公報
【特許文献4】特開2014−144523号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
ロボットの動作中に周辺装置の移動やハンドの移動、ワークの移動等が行われると、ロボットと周辺装置との干渉領域が変化する。オフラインプログラムにおいて教示点を修正又は生成する場合、手動で周辺装置の移動をした後にロボットを移動させて教示点を修正する必要があり、手間がかかっていた。
【0009】
また周辺装置の大きさ、位置等のシステムレイアウトの変更があった場合も、干渉領域が変化するため、教示点毎に干渉チェックを行い、手動でロボットを動作させて教示点の修正や追加を行う必要があった。なお教示点間の軌道において干渉が発生する場合も、同様に、手動でロボットを動作させて教示点の修正や追加を行う必要があった。
【0010】
そこで本発明は、ロボットと周辺機器等との干渉を容易に確認でき、作業者又は自動による干渉回避も容易に行えるようにしたロボットプログラミング装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上記目的を達成するために、本願第1の発明は、3次元仮想空間内にロボット、周辺装置、及びワークを配置して該ロボットの教示を行うロボットプログラミング装置であって、制御信号によって前記周辺装置の動作及び前記ロボットのハンドの開閉動作のシミュレーションを行うシミュレーション実行部と、所定のロボット作業プログラムの教示点又は教示点間の軌道毎に、又はロボット作業プログラムを予め記したプログラムテンプレートの教示点又は教示点間の軌道毎に、各教示点又は各軌道の属性データとして、前記周辺装置の動作及び前記ハンドの開閉動作のシミュレーションを行うための制御信号を設定する信号設定部と、前記ロボットを前記教示点又は教示点間の軌道に移動させる移動部と、前記ロボットが移動した教示点又は教示点間の軌道について、前記ワークを表示するか非表示とするかを設定する表示設定部と、を有する、ロボットプログラミング装置を提供する。
【0012】
第2の発明は、第1の発明において、前記教示点に属性データとして干渉を回避する位置を検索するための前記ロボットの動作方向及び動作範囲を設定する干渉回避条件設定部と、前記移動部により教示点に移動したロボットについて干渉が発生した場合に、前記干渉回避条件設定部の設定に従って前記ロボットを干渉が回避できる位置まで移動させ、その位置を自動的に教示点として設定する干渉回避教示点設定部と、を有する、ロボットプログラミング装置を提供する。
【0013】
第3の発明は、第1の発明において、前記教示点間の軌道に属性データとして干渉を回避する位置を検索するための前記ロボットの動作方向及び動作範囲を設定する干渉回避条件設定部と、前記移動部によりロボットが移動した教示点間の軌道に、前記ロボットについて干渉が発生する干渉区間が存在した場合、前記干渉区間の両端を前記干渉回避条件設定部の設定に従って移動させ、移動した前記干渉区間の両端の位置を教示点として設定する干渉回避教示点設定部と、を有する、ロボットプログラミング装置を提供する。
【発明の効果】
【0014】
本発明によれば、教示点又は教示点間の軌道毎に周辺機器の動作とワークの表示切替えを行うことができるので、ロボットの干渉確認が容易かつ的確にでき、教示点の修正も容易に行うことができるようになる。
【0015】
干渉回避のための条件を属性データとして教示点又は教示点間の軌道に設定することにより、周辺装置の動作やワークの有無に応じて、干渉回避位置を自動的に検出し教示位置を修正又は追加することができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の好適な実施形態に係るロボットプログラミング装置の一構成例を示す図である。
【
図2】ワークを工作機械内に搬入する場合のロボットの動作フローの一例を示すフローチャートである。
【
図3】
図1のロボットプログラミング装置が適用可能なロボットシステムの一構成例を示す図である。
【
図4】教示点間の軌道を、干渉回避のために移動させる処理の一例を示すフローチャートである。
【
図5】
図4のフローチャートに示す処理を実行する前の、教示点間の軌道の一例を示す図である。
【
図6】
図4のフローチャートに示す処理を実行した後の、教示点間の軌道の一例を示す図である。
【発明を実施するための形態】
【0017】
図1は、本発明の好適な実施形態に係るロボットプログラミング装置(以降、単にプログラミング装置とも称する)10の一構成例を示す図である。プログラミング装置10は、3次元仮想空間内に配置されたロボットシステム12の3次元モデルを表示可能な表示部(ディスプレイ)14と、後述する各機能を備えた制御装置16とを有する。ロボットシステム12は、開閉可能なハンド18が先端に取り付けられた可動部(ロボットアーム)20を有するロボット22と、開閉可能なドア24、作業台26及び開閉可能なクランパ28を有する周辺装置(例えば工作機械)30とを含み、ハンド18、ドア24及びクランパ28がロボット22のI/O信号(制御信号)によって制御される。
【0018】
ハンド18は、工作機械30による加工対象物であるワーク32を把持した状態で、ドア24が開放された状態の工作機械30の内部に進入し、把持したワーク32を工作機械30の作業台26上に載置できるとともに、ワーク32の載置後は工作機械30の内部から退出できるように構成されている。一方、クランパ28は、ロボット22が載置した作業台26上のワーク32を保持できるように構成されており、工作機械30は保持されたワーク32に対して所定の加工を行うことができる。
【0019】
制御装置16は、上述の制御信号に基づいて周辺装置30の動作及びハンド18の開閉動作のシミュレーションを行うシミュレーション実行部34と、所定のロボット作業プログラムの教示点又は教示点間の軌道毎に、又はロボット作業プログラムを予め記したロボットプログラムテンプレートの教示点又は教示点間の軌道毎に、各教示点又は各軌道の属性データとして、周辺装置30の動作及びハンド18の開閉動作のシミュレーションを行うための制御信号を設定する信号設定部36と、ロボット22を教示点又は教示点間の軌道に移動させる移動部38と、ロボット22が移動した教示点又は教示点間の軌道について、ワーク32を表示するか非表示とするかを設定する表示設定部40とを有する。
【0020】
また制御装置16は任意に、教示点又は教示点間の軌道に属性データとして干渉を回避する位置を検索するためのロボット22の動作方向及び動作範囲を設定する干渉回避条件設定部42と、移動部38により教示点に移動したロボット22について干渉が発生した場合、又は移動部38によりロボット22が移動した教示点間の軌道に、ロボット22について干渉が発生する干渉区間(後述するC0〜C1)が存在した場合に、干渉回避条件設定部42の設定に従ってロボット22を干渉が回避できる位置まで移動させ、その位置を自動的に教示点として設定するか、又は該干渉区間の両端を干渉回避条件設定部42の設定に従って移動させ、移動した干渉区間の両端の位置を教示点として設定する干渉回避教示点設定部44とを有してもよい。
【0021】
以下、プログラミング装置10における処理について説明する。ここでは
図2及び
図3に示すように、ハンド18が未加工のワーク32を把持した状態で工作機械30の手前に移動し(P1)、ドア24の開放後にハンド18が工作機械30内に進入してワーク配置位置に接近し(P2)、ワーク32を作業台26上に載置し(P3)、クランパ28が閉じてワーク32を保持したらハンド18がワーク配置位置から離反し(P4)、ハンド18が工作機械30の外部(手前)に移動(退出)し(P5)、所定の待機位置まで移動する(P6)、という一連の動作を行うための所定の作業プログラム、又は該作業プログラムを記述したプログラムテンプレートが予め用意(例えば適当なメモリに記憶)されているものとする。
【0022】
表1は、教示点P1〜P6の各々の属性データを示す。詳細には、各教示点の属性データには、ドア24の開閉動作を行うための制御信号DO[1]と、ハンド18の開閉動作を行うための制御信号RO[1]と、クランパ28の開閉動作を行うための制御信号DO[2]と、ハンド18が把持しているワークを表示するか非表示とするかを設定する信号「把持ワーク」と、作業台26上の配置されたワークを表示するか非表示とするかを設定する信号「配置ワーク」とが含まれる。
【0023】
表1のように信号設定を行うことにより、ワーク32が作業台26に配置されるまで(P1〜P3)は、把持ワークを表示するとともに配置ワークを非表示とし、ハンド18がワーク配置位置から離反して待機位置に戻るまで(P4〜P6)は、把持ワークを非表示するとともに配置ワークを表示するという処理を自動で行うことができる。従って、ロボット22(ハンド18)がいずれの教示点に移動した場合でも、実際の動作に即した状態となるように自動でワークを表示し又は非表示とすることができるので、作業者は各教示点でのロボット22と工作機械30等との干渉を容易かつ正確に把握することができ、干渉が発生する場合の教示点の修正、追加等も容易に行うことができる。
【0025】
表2は、教示点P1〜P6の間の軌道の各々の属性データを示す。詳細には、各軌道の属性データには、表1と同様に、ドア24の開閉動作を行うための制御信号DO[1]と、ハンド18の開閉動作を行うための制御信号RO[1]と、クランパ28の開閉動作を行うための制御信号DO[2]と、ハンド18が把持しているワークを表示するか非表示とするかを設定する信号「把持ワーク」と、作業台26上の配置されたワークを表示するか非表示とするかを設定する信号「配置ワーク」とが含まれる。
【0026】
表2のように信号設定を行うことにより、ワーク32が作業台26に配置されるまで(P1〜P3)は、把持ワークを表示するとともに配置ワークを非表示とし、ハンド18がワーク配置位置から離反して待機位置に戻るまで(P4〜P6)は、把持ワークを非表示するとともに配置ワークを表示するという処理を自動で行うことができる。従って、ロボット22(ハンド18)がいずれの軌道に移動した場合でも、実際の動作に即した状態となるように自動でワークを表示し又は非表示とすることができるので、作業者は各軌道でのロボット22と工作機械30等との干渉を容易かつ正確に把握することができ、干渉が発生する場合の教示点の修正、追加等も容易に行うことができる。
【0028】
表3は、上述の干渉回避条件設定部42及び干渉回避教示点設定部44を用いて、干渉が発生する場合に干渉回避のための教示点の修正・追加を自動で行う処理に関する属性データを示す。ここでは、干渉回避のためにロボット22(ハンド18)を移動させる検索軸をX軸、Y軸及びZ軸の3つとし、
図3に示すように、X軸はロボット22から工作機械30に向かう水平方向、Z軸は鉛直方向、Y軸はX軸及びZ軸の双方に垂直な方向とするが、これは一例である。
【0030】
ロボット22が作業者の操作等によって移動した教示点において干渉が発生した場合は、表3に示すように、その教示点において少なくとも1つの検索軸を、その検索方向に沿って所定の動作範囲(検索範囲)内で移動させることにより、干渉が発生しないように教示点の修正を自動で行うことができる。なお表3の例では、動作範囲はいずれの検索軸についても±1000(mm)としているが、これはロボット22、工作機械30又はワーク32の形状や大きさ等に基づいて適宜設定・変更可能である。
【0031】
表4は、上述の干渉回避条件設定部42及び干渉回避教示点設定部44を用いて、干渉が発生する場合に干渉回避のための教示点間の軌道の修正・追加を自動で行う処理に関する属性データを示す。ここでは、表3の場合と同様に、干渉回避のためにロボット22(ハンド18)を移動させる検索軸をX軸、Y軸及びZ軸の3つとし、
図3に示すように、X軸はロボット22から工作機械30に向かう水平方向、Z軸は鉛直方向、Y軸はX軸及びZ軸の双方に垂直な方向とするが、これは一例である。
【0033】
図4は、教示点間の軌道の修正を自動で行う処理の一例を示すフローチャートであり、
図5及び
図6はそれぞれ、
図4のフローチャートに示す処理を実行する前及び後の教示点間の軌道の一例を示す図である。なおこの例では、
図5に示すように、教示点P0とP1では干渉が発生していないが、P0とP1との間の軌道においてロボット22と障害物46との干渉が発生し、その干渉区間の両端の教示点がそれぞれC0、C1として求められ(計算され)ている。
【0034】
先ず、ステップS1において、ロボット22を教示点P0からP1まで移動させ、フラグに1を代入する(ステップS2)。次にステップS3において、干渉の有無を判定し、干渉が発生する場合はその干渉区間の両端の教示点(C0、C1)を求め(ステップS4)、フラグにゼロを代入する(ステップS5)。
【0035】
次にステップS6において、教示点C0及びC1を、指定された検索軸をその検索方向に所定の動作範囲内で移動させることにより、一定量移動(オフセット)させる。次にステップS7において、教示点P0→C0→C1→P1の順にロボットを移動させ、再度干渉の有無を判定する(ステップS3)。ステップS3〜S7の処理は、干渉が発生しなくなるまで反復される。
【0036】
干渉が発生しないと判定された場合は、ステップS8にてフラグ判定を行った後、移動した教示点C0及びC1を、教示点P0及びP1の間に教示点として挿入する(ステップS9)。これにより、
図6に示すように、障害物46との干渉が回避された軌道が得られる。
【0037】
このように、ロボット22が作業者の操作等によって移動した教示点間の軌道において干渉が発生した場合も、表4及び
図4〜
図6に示すように、その干渉区間の両端の教示点を、所定の検索方向に沿って所定の動作範囲(検索範囲)内で移動させることにより、干渉が発生しないように軌道の修正を自動で行うことができる。なお表4の例では、動作範囲はいずれの検索軸についても±1000(mm)としているが、これはロボット22、工作機械30又はワーク32の形状や大きさ等に基づいて適宜設定・変更可能である。
【0038】
なお上述の実施形態では、ロボット作業プログラムの教示点又は教示点間の軌道毎に、周辺装置の動作及びハンド開閉動作のシミュレーションを行う信号を設定するとともに、ワークの表示/非表示を切り替えているが、ロボット作業プログラムを、各々が作業単位を示す複数のブロック(プログラムテンプレート)から構成してもよく、その場合、該プログラムテンプレートの教示点又は教示点間の軌道毎に、同様の処理を行うことができる。
【符号の説明】
【0039】
10 ロボットプログラミング装置
12 ロボットシステム
14 表示部
16 制御装置
18 ハンド
20 ロボットアーム
22 ロボット
24 ドア
26 作業台
28 クランパ
30 工作機械
32 ワーク
34 シミュレーション実行部
36 信号設定部
38 移動部38
40 表示設定部
42 干渉回避条件設定部
44 干渉回避教示点設定部
46 障害物
【要約】
【課題】ロボットと周辺装置等との干渉を容易に確認でき、作業者又は自動による干渉回避も容易に行えるようにしたロボットプログラミング装置の提供。
【解決手段】制御装置16は、制御信号に基づいて周辺装置30及びハンド18の動作のシミュレーションを行うシミュレーション実行部34と、所定のロボット作業プログラムの教示点又は教示点間の軌道毎に、又はロボット作業プログラムを予め記したロボットプログラムテンプレートの教示点又は教示点間の軌道毎に、各教示点又は各軌道の属性データとして、周辺装置30及びハンド18の動作のシミュレーションを行うための制御信号を設定する信号設定部36と、ロボット22を教示点又は教示点間の軌道に移動させる移動部38と、ロボット22が移動した教示点又は教示点間の軌道について、ワーク32を表示するか非表示とするかを設定する表示設定部40とを有する。
【選択図】
図1