JP5602076B2 - ロボットプログラミング装置および方法 - Google Patents

ロボットプログラミング装置および方法 Download PDF

Info

Publication number
JP5602076B2
JP5602076B2 JP2011062702A JP2011062702A JP5602076B2 JP 5602076 B2 JP5602076 B2 JP 5602076B2 JP 2011062702 A JP2011062702 A JP 2011062702A JP 2011062702 A JP2011062702 A JP 2011062702A JP 5602076 B2 JP5602076 B2 JP 5602076B2
Authority
JP
Japan
Prior art keywords
robot
block
execution
program
state
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.)
Active
Application number
JP2011062702A
Other languages
English (en)
Other versions
JP2012198775A (ja
Inventor
勉 吉川
哲男 野田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011062702A priority Critical patent/JP5602076B2/ja
Publication of JP2012198775A publication Critical patent/JP2012198775A/ja
Application granted granted Critical
Publication of JP5602076B2 publication Critical patent/JP5602076B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

この発明は、ロボットを使用した組立てセルを構築する際のロボットのためのロボットプログラミング装置およびその方法に関する。
ロボットを用いた組み立てセルでは、組み付け時の部品の僅かなズレなどでエラーが発生してシステムが停止することがある。このような停止状態から復帰する場合に、従来ではティーチングボックスを用いて手作業でロボットを動かして復帰を行うか、ロボットプログラムの中に復帰処理を作り込んでいた。
また、ロボットを用いた組み立て作業では、部品を組み付ける際に、単純な1方向の差し込みだけではなく、斜め方向から差し込み押しつける、といったような3次元的な動作を伴う処理がある。このため、組み付け動作の確認において、繰り返しロボットを動作させて複数の視点からロボットの動きを確認していた。この繰り返し動作のために、従来ではティーチングボックスを用いて手作業でロボットを動かして、指定した終了工程から指定した開始工程への復帰を行うか、ロボットプログラムの中に繰り返し動作させるための専用の処理を作り込んでいた。
このように、組み立てセルではエラー発生による停止だけでなく、立ち上げ作業における動作確認でも、停止位置から指定した動作再開位置への復帰処理に手作業、もしくはプログラムの作り込みが必要であった。
一方、制御プログラムの開発において、プログラムの作成にかかる工数を削減するために、ブロックまたはアイコンを接続するなどして制御プログラムを作成する手法が存在する。このようなブロックを組み合わせるプログラミング手法は、正常実行のフローを作成するのに適しているが、エラー発生時、繰り返し動作時などの復帰処理を記述するには多数の接続線が必要となり、可読性が悪くなる。可読性を向上するために、復帰処理、繰り返し動作処理を個々のブロック内のプログラムに埋め込むことになり、プログラムサイズが大きくなっていた。
このように、ロボットを用いた組み立てセルにブロックを組み合わせるプログラミング手法を使用する場合、停止状態から所定の再開状態への復帰処理を効率よく作成する必要があった。この問題を解決するため、自動復帰の技術が存在する。
下記特許文献1では、ねじ締め作業において作業をステップ分けし、ステップごとに実行可能状態を記憶し、動作開始状態へ段階的に復帰する際に、各ステップの実行可能状態を満足することをセンサ入力および干渉チェックなどで確認してから運転を再開していた。
また、下記特許文献2では、障害発生時にエラーコードから再開すべき工程を判断し、作業者の操作を誘導し、物品供給装置の動作再開信号に基づいて運転を再開していた。
また、下記特許文献3では、ロボットを用いた自動組み立てセルのオフラインプログラミングにおいて、停止時に安全位置の指定と周辺機器のレイアウト情報からロボットの軌跡を決定し、安全に待機位置に移動させていた。
特開平5−61523号公報 特開平7−164285号公報 特開2006−012074号公報
上記特許文献1では、非常停止などによりロボットが停止した場合に、順に前のステップに戻る。この方法はねじ締めのような単純作業では有効であるが、組み立て作業では既に組み付けられた部品を取り外すことは困難であり、単純にステップを逆順に戻り再開する方法では対応できない。このため、途中まで組み立てたワークを排除することなく作業を再開するために、固定的に工程を実行するのではなく、再実行する工程を選択できるようにする必要がある。
また特許文献2では、停止した状況に応じて再開位置を決定するが、再開位置からは通常の処理を再度実行する。このため、前記と同様に途中まで組み立てたワークを排除することなく作業を再開するために、固定的に工程を実行するのではなく、再実行する工程を選択できるようにする必要がある。
また特許文献3では、ロボットを所定の安全位置に待避するだけであり、複数台のロボットを用いたセルで指定したロボットの工程を再実行するにあたり、他のロボットを所定の待避位置に動かしたりする必要があった。
この発明は、上記の課題を解決するためになされたものであり、広義には、ロボットの任意の停止状態から所望の動作を実行させる際に、工程を選択できるようにプログラミングを行うことでプログラムサイズを小さくすることを可能にしたロボットプログラミング装置および方法を提供することを目的とする。
この発明は、ロボットを使用した組み立てセルにおけるロボットが行う独立した作業を単位とした作業ブロックを実行順に接続して工程フローを作成し、工程フローからロボットプログラムを生成するロボットプログラミング装置であって、停止ブロック検出手段で検出された停止ブロックと、表示手段に表示した前記停止ブロックを考慮した外部入力に従って実行ブロック指定手段から得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示を生成し、前記表示手段に前記一時実行作業指示を表示すると共に、入出力手段から前記一時実行プログラムを出力する工程再構築手段を備えたことを特徴とするロボットプログラミング装置およびその方法にある。
この発明では、ロボットの任意の停止状態から所望の動作を実行させる際に、工程を選択できるようにプログラミングを行うことで、プログラムサイズを小さくすることを可能となる。
この発明によるロボットプログラミング装置を含むロボットシステムの構成を示す図である。 この発明による組み立てセル対応のロボット、ハンド、部品、ワーク、部品供給台の構成を示す図である。 この発明によるロボットプログラミング装置の構成を示す図である。 この発明における工程フローの記述例を示す図である。 この発明における作業ブロックと同期ブロックの一例を示す図である。 この発明の実施の形態1によるプログラム作成・教示部、特に工程再構築手段の動作を示すフローチャートである。 この発明の実施の形態2によるプログラム作成・教示部、特に工程再構築手段の動作を示すフローチャートである。
この発明では、作業ブロックに初期位置、ハンド状態(種類、把持状態)、センサ状態の情報を持たせ、これらの作業ブロックを接続して工程フローを作成する。ロボット動作時またはシミュレーション動作時に、エラーの発生もしくはイベントの発生によりロボットプログラムが停止した場合に、停止した作業ブロックおよび停止状態を検出して、作業者が再実行する工程を指定することで、停止したブロックと再実行するブロックの情報を比較して復帰用のロボットプログラムを自動生成する。また、復帰処理に伴う作業者への作業指示を生成する。
また、複数台のロボットから構成させる組み立てセルで、ロボット間の同期を定義し、同期区間内でそれぞれのロボットが干渉しない場合、同期区間毎に前記復帰処理のロボットプログラムと復帰作業指示を自動生成する。これらの自動生成したロボットプログラムおよび作業指示を順に実行することで、複数台のロボットから構成される組み立てセルにおいて、干渉が起きない復帰用のロボットプログラムを生成できる。
また、前記の手段を繰り返し実行に使用することで、組み立てセルの立ち上げ時に特定の工程の動作を繰り返し実行して動きを確認する場合に使用できる。
従来はエラー等によって停止した後、必要な工程を再実行するために復帰用のプログラムを作成して制御プログラム中に埋め込んでいたので、制御プログラムサイズが大きくなっていた。この発明では作業ブロックの情報を比較して復帰プログラムおよび復帰作業指示を自動的に生成できるため、制御プログラムのサイズが小さくなる。
また、従来はセルの特定の工程の動作を繰り返し確認する場合、毎回、最初から全ての工程を実行して確認していた。この発明では作業ブロックを指定するだけで特定の工程のみ繰り返し実行ができるため、セル立ち上げの時間を短縮できる。
また、従来は組み立てセルを構成する複数台のロボットの復帰プログラムをロボット間の同期を考慮して作成していたため、プログラムサイズが大きくなっていた。この発明では作業ブロックの情報を比較して複数台分の復帰プログラムおよび復帰作業指示を自動的に生成できるため、制御プログラムのサイズが小さくなる。
また、従来はセルの特定のロボットの特定の工程の動作を繰り返し確認する場合、確認に関係ない他のロボットを手動で待避位置に移動しておく必要があった。この発明では動作を確認する作業ブロックを指定するだけで特定のロボットの特定の工程のみ繰り返し実行を行う間、動作確認に関係ないロボットを自動的に待避位置に移動できるため、セル立ち上げの時間を短縮できる。
以下、この発明によるロボットプログラミング装置および方法を各実施の形態に従って図面を用いて説明する。なお、各実施の形態において、同一もしくは相当部分は同一符号で示し、重複する説明は省略する。
実施の形態1.
最初にこの発明のロボットプログラミング装置のシステム構成と、ロボットの基本的な動作を説明する。
図1はこの発明によるロボットプログラミング装置を含むロボットシステムの構成を示す図である。ロボット1は、ロボット制御装置2で実行されるロボットプログラムに従って動作する。ロボット制御装置2は、ロボットを制御し動作させるロボット制御部21、ロボットプログラムを実行するプログラム実行部22、ロボットを動作させるプログラムや位置データ等を記憶するプログラム・データ記憶部23、ロボットプログラミング装置3と通信するための通信部24、から構成される。ロボットプログラミング装置3は、ロボットプログラムの作成および位置データ等の教示を行うプログラム作成・教示部31、プログラムやデータを表示する表示部32、ロボット制御装置2と通信する通信部33、作業者等が入力を行う入力部34から構成される。作業者は、ロボットプログラミング装置3を用いてロボットプログラムを作成、記憶させる。
図2はこの発明による組み立てセル対応のロボット、ハンド、部品、ワーク、部品供給台の構成を示す図である。ロボット1は、ハンド11を交換可能である。ハンド11は、ロボットが部品を把持するためのものであり、複数種類存在する。部品12は、組み立てる製品の構成要素であり、複数種類存在する。部品12はハンド11によって把持される。ハンド11は、ハンドの種類ごとに把持可能な部品の種類が決まっている。ワーク13は、組み立ての作業対象物である。最終的に、全ての部品12をワーク13に組み付けることで製品の組み立てが行われる。作業台14は、部品を組み付けるワーク13を保持する台である。部品供給台15は、部品12を供給する台である。部品供給台15は、部品12を自動的に供給する装置のようなものであってもよい。なお、ロボット1の各箇所にはセンサ(図示省略)が設けられ、ロボット1の位置、姿勢、他の装置との干渉を検出する。
最初に図2を使用して基本的な組み立て動作を以下に説明する。まず、ロボット1は、所定の種類のハンド11を装着する。次に、部品供給台15から部品12を把持し、ワーク13へ順番に組み付ける。ここで、ワーク13は、組み付けのために、ロボット1によって位置の移動や回転などを行ってもよい。また、部品供給台15からワーク13へ部品12を組み付けるロボット1が複数台あり、別々に動作させることも可能である。
次に、この発明で扱うロボットプログラムについて説明する。ロボットプログラムはテキストによって記述される。以下は、ロボットプログラムの例である。
1 P00 = (100,100,0,0,0,0)
2 P01 = (100,100,10,0,0,0)
3 MOVE P01 部品台上部へ移動
4 HOPEN
5 DELEY 0.5
6 MOVE P00
7 HCLOSE 部品を把持する
8 DELEY 0.5
9 MOVE P01
10 WAIT IN(10)==1
11 P10 = (200,200,0,0,0,0)
12 P11 = (200,200,10,0,0,0)
13 MOVE P11 作業台上部へ移動
14 MOVE P10
15 HOPEN 部品を離す
16 DELEY 0.5
17 MOVE P11
18 END
1行目のP00は座標を格納できる変数であり、ここでは、変数P00に座標値(100,100,0,0,0,0)を格納している。また、3行目のMOVE命令は、ロボット1のハンド11先端を指定した座標に動かす命令である。また、4行目のHOPEN命令は、ハンド11を開く命令である。また、5行目のDELAY命令は指定した秒数(ここでは0.5秒)を待つ命令である。また、7行目のHCLOSE命令は、ハンド11を閉じる命令である。また、10行目のWAIT命令は、外部ポートの値が所定の値となるまで停止する命令である。ここでは、入力ポート(INポート)の10番が”1”になるまで待つことを示している。また、18行目のEND命令はプログラムの終了を示す命令である。
このプログラムの動作を説明する。まず、3行目から5行目で部品供給台15の上に移動し、ハンド11を開く。次に、6行目から8行目で部品の把持位置に移動し、ハンド11を閉じて部品を把持する。次に、9行目で部品供給台15の上に移動する。次に、10行目で入力ポートの10番が1になるまで待つ(実行可能指示待ち)。次に、13行目から17行目で作業台14の上に移動し、部品12を垂直に降ろしてワーク13へ挿入し、ハンド11を開いて作業台14の上に待避する。
次に、この発明によるロボットプログラミング装置(オフラインプログラミングシステム)の構成を説明する。図3はこの発明によるロボットプログラミング装置の構成を示す図であり、プログラム作成・教示部31は記憶手段を設けたコンピュータで構成され、311〜315はプログラムに従って処理を行う機能ブロック、316〜318はメモリ等の記憶手段を示す。プログラム作成・教示部31において、編集手段311は、作業ブロックを定義し、定義した作業ブロックデータを組み立て工程の流れ順に並べて工程フローを作成する。ここで、流れ順に並べる際に、例えばGUI(Graphical User Interface)を用いて作業ブロックの間を矢印で接続する。作成した工程フローは、工程フローデータ316として保存する。また、編集手段311は、作成した工程フローデータから、ロボット1で動作する制御プログラム(ロボットプログラム)を生成する。通常は、編集手段311が作成したロボットプログラムを通信部33でロボット制御装置2にダウンロードして実行する。
ロボットがエラーや非常停止などの外部イベントによりプログラム実行中に停止した場合、停止ブロック検出手段315は、通信部33を用いてロボット制御装置2と通信し、ロボットプログラムの停止箇所と、ロボットが停止した座標(Xs,Ys,Zs,As,Bs,Cs)(ロボット停止状態情報(位置情報)、または組み立てセルの停止状態情報)を取得する。また、停止ブロック検出手段315は、通信部33を用いてロボット制御装置2と通信し、ロボットが停止したときのハンドの把持状態(On/Off)と種類(以上ハンド状態情報)と、ロボットに接続された各種センサの状態(On/Off)(以上センサ状態情報)を取得する。ここで、センサはOn/Offのみでなく、DA/DAデバイスなどの出力に見られるように数値であってもよい。次に、停止ブロック検出手段315は、工程再構築手段312に停止箇所と停止座標を通知する。また、停止ブロック検出手段315は、工程再構築手段312にハンドの把持状態、種類とセンサの状態を通知する。工程再構築手段312は、編集手段311にロボットプログラムの停止箇所を通知する。編集手段311は生成したロボットプログラムと工程フローデータ316から停止したブロックを判別する。次に、工程再構築手段312は、表示部32に停止ブロックと停止座標、停止状態(ロボット停止状態情報、ハンド状態情報、センサ状態情報)を表示し、作業者に再実行するブロックの入力を促す。
実行ブロック指定手段313は、作業者が工程フロー中で再実行したいブロックを指定してその一覧を工程再構築手段312に通知する。ここでは例えば入力部34から作業者が表示部32に表示された情報を考慮して所望のブロックまたはブロック列を入力する。工程再構築手段312は、停止ブロック検出手段315が検出したロボット1の停止座標(Xs,Ys,Zs,As,Bs,Cs)と停止状態、すなわち停止ブロックの停止状態を起点とし、実行ブロック指定手段313によって設定された再実行したいブロックを順に実行する一時実行プログラム317を生成して例えば一次保存する。また、この一時実行プログラム317を動かすために作業者が行うべき作業の一覧として一時実行作業指示318を生成して例えば一次保存する。工程再構築手段312は、一時実行プログラム317を生成する際、ブロック間を繋いだり、初期位置に一度待避させたりするためにブロックを再実行したいブロック間に挿入したりする。またその際に必要な作業者が行う作業指示を一時実行作業指示318として生成する。これらについては図6で説明する。工程再構築手段312は、通信部33を用いて、生成した一時実行プログラム317をロボット制御装置2にダウンロードする。工程再構築手段312は、表示部32を用いて、一時実行作業指示318を表示し、作業者の準備作業を促す。最後に、工程再構築手段312は、通信部33を通して、ロボット制御装置2に起動命令を送信する。これによって、ロボット1が所定の復帰処理を実行する。
また図4はこの発明における工程フローの記述例を示す。この工程フローは後述する実施の形態2で説明する2つのロボットの同期動作も含む。ロボット毎に工程のフローが記述される。この例ではロボットROBOT#1およびROBOT#2の工程フロー例を記述する。ROBOT#1は、まずB11でハンド11Aを装着する。次にB12でROBOT#2と同期した後、B13でワーク#13Aを部品供給台15より取り出す。次にB14で作業台14の近辺に移動する。次にB15でワーク#13Aを組み付ける。次にB16でROBOT#2と同期する。最後にB17でハンド11Aを取り外して一連の動作を終了する。ROBOT#2は、まずB21でハンド11Bを装着する。次にB22でROBOT#1と同期した後、B23でワーク#13Bを部品供給台15より取り出す。次にB24でROBOT#1がワーク13Aを組み付けるのを待ち、組み付け完了後に同期する。次にB25で作業台14の近辺に移動する。次にB26でワーク#13Bを組み付ける。最後にB27でハンド11Bを取り外して一連の動作を終了する。
ここで、ROBOT#1のSTARTからB12の同期とROBOT#2のSTARTからB22の同期までを1番目の同期区間と呼ぶ。同様に、B12からB16までとB22からB24までを2番目の同期区間と呼ぶ。同様に、B16からENDまでとB24からENDまでを3番目の同期区間と呼ぶ。このように、複数のロボットROBOT#1、ROBOT#2は同期区間毎に工程を分割することができる。また、これらの同期区間内ではそれぞれのロボットの動作範囲が干渉しない。この干渉チェックは事前に机上計算もしくはシミュレーションの動作確認により確認する。この確認は実機で行ってもよい。
図5はこの発明における作業ブロックと同期ブロックの一例を示す図である。図5の(a)は、この発明の実施の形態1による作業ブロックが持つデータ構造である。作業ブロック500は、ブロックID501およびロボットプログラム502を持つ。工程フローにおいて特定の作業ブロックを指定するには、このブロックIDを使用する。また、ロボット制御装置2にダウンロードするプログラムを生成する際には作業ブロックのロボットプログラム502を工程フロー順につなげて生成する。
この発明では作業ブロック500は、上記のブロックID501とロボットプログラム502に加え、協調ブロック503、ブロックの初期位置(位置情報)504、ハンド種類(ハンド情報)505、ハンド把持状態(ハンド情報)506、センサ状態(センサ情報)507を持つ。協調ブロック503は、セルを構成するロボットが複数台あったときに、2台以上のロボット間で協調動作する際に設定する。ブロックの初期位置504は、ロボットの姿勢(Xi,Yi,Zi,Ai,Bi,Ci)として表現される。初期位置504は、ブロック開始時点でのデフォルトの姿勢となる。また、終了時の待避位置としても使用可能である。ここで、ある任意の作業ブロックの初期位置(動作終了後)から他の作業ブロックの初期位置(動作開始前)へ移動しても、ロボットがワークや装置と衝突しない姿勢を設定しておく必要がある。ハンド種類505は、この作業ブロックを実行する際のハンドの種類を指定するものである。作業ブロック内部でハンドを交換するなど、初期状態のハンド種類の指定がない場合は、種類なし(None)となる。ハンド把持状態506は、作業ブロック開始時に部品を把持している前提か否かを指定するものである。把持状態はOn(閉)またはOff(開)またはNone(不定)の状態をとる。把持状態がOnまたはOffの場合、ハンド種類は設定されている必要がある。センサ状態507は、この作業ブロックを実行するにあたり、前提としてあるべきセンサ状態を指定するものである。これらの情報は、プログラム作成時に入力するが、シミュレーションまたは実際にロボットを動作させて実行状態をロボット制御装置から取得して格納してもよい。図5の(b)については実施の形態2で説明する。
なお、ブロックの初期位置504、ハンド種類505、ハンド把持状態506、センサ状態507については該作業ブロックの動作開始前と終了後のそれぞれについて設定されていてもよい。
図6はこの発明の実施の形態1によるプログラム作成・教示部31、特に工程再構築手段312の動作を示すフローチャートである。ロボットがエラー、非常停止などの外部イベントにより停止すると、最初に、ステップS101で停止ブロック検出手段315が、通信部33を通してロボット制御装置2と通信し、ロボットプログラムの停止位置(箇所)、ロボット本体の停止座標(ロボット停止状態情報)、組み立てセルの停止状態(組み立てセル停止状態情報)を取得する。ここで、ハンドの種類、ハンドの把持有無、センサ状態も同時に取得する。次に、停止ブロック検出手段315は、ロボットプログラムの停止位置を工程再構築手段312を通して編集手段311に送り、編集手段311で停止した作業ブロックを特定する。
次に、ステップS102で実行ブロック指定手段313が、入力部34からの作業者の入力によって復帰のために再度実行するブロックを取得する。
次に、ステップS103で工程再構築手段312は、停止ブロック検出手段315で検出された情報に基づいてロボットが部品を把持しているか否かを判定する。もし、部品を把持している場合、ステップS104で工程再構築手段312は、ハンドから部品を取り除く作業指示を生成し、一時実行作業指示318に追加する。
次に、ステップS105で工程再構築手段312は、停止ブロック検出手段315で検出された情報に基づいてロボットのセンサ状態と、実行ブロック指定手段313で作業者が指定した実行ブロックのうち最初の作業ブロックのセンサ状態との差を判別する。もし、センサ状態に差異があった場合、ステップS106で工程再構築手段312は、センサ状態ごとに作業ブロックに指定されたセンサ状態になるように作業指示を生成し、一時実行作業指示318に追加する。
次に、ステップS111の繰り返し処理で工程再構築手段312は、現在停止している作業ブロックを起点として実行ブロックを工程フロー順に接続する。ここでは、ステップS112からステップS116の処理を繰り返す。
まず、ステップS112で工程再構築手段312は、一つ前の作業ブロック(最初は起点である停止ブロック)と現在の対象作業ブロックのハンド種類を比較する。もし、ハンドが異なる場合、ステップS113で予め定義されているハンド交換のブロックを挿入する。このとき、既にハンドが装着済みの場合、まず既存のハンドを取り外し、次に指定されたハンドを装着する、2つの作業ブロックを挿入する。工程再構築手段312は、一時実行プログラム317へ挿入した作業ブロックのロボットプログラムを追加する。
次に、ステップS114で工程再構築手段312は、指定されたブロックが工程フロー上で接続されている否かを判別する。もし、工程フローが接続されていない場合、ステップS115で初期位置にいったん待避して移動するようにロボットのプログラムを生成する。これは、作業ブロック間でのロボットの移動により、ワークや装置との衝突を避けるためである。例えば、一つ前の作業ブロックの初期位置が(Xi1,Yi1,Zi1,Ai1,Bi1,Ci1)で、現在の対象の作業ブロックの初期位置が(Xi2,Yi2,Zi2,Ai2,Bi2,Ci2)である場合、生成されるプログラムは次のようになる。
MOVE (Xi1,Yi1,Zi1,Ai1,Bi1,Ci1)
MOVE (Xi2,Yi2,Zi2,Ai2,Bi2,Ci2)
この作業ブロックの初期位置から次の初期位置へ移動するプログラムは工程フロー順に実行ブロックに辿り着くまで複数行追加する。ステップS115では、工程再構築手段312は、一時実行プログラム317へこのロボットプログラムを追加する。
次に、ステップS116で工程再構築手段312は、一時実行プログラム317へ現在の対象の作業ブロックのロボットプログラムを追加する。
ステップS117で全てのブロックについての処理が完了したら、次に、ステップS107で工程再構築手段312は、表示部32に一時実行作業指示318を表示し、作業者に操作を促す。
次に、ステップS108で工程再構築手段312は、通信部33を通してロボット制御装置2に一時実行プログラム317をダウンロードし、通信部33を通してロボット制御装置2にロボット1を起動させる。ロボット制御装置2は例えば、一時実行プログラムが完了した後、停止前の工程フローの実行に戻る。
以上のように、ロボットを用いた組み立てセルを工程フローに基づいて制御する場合、停止時からの復帰時に指定した工程のみ実行することができ、復帰のための専用プログラムを準備する必要がない。復帰のパターンが複数あった場合、複数種類のエラーに対して複数種類の復帰があると、処理の組み合わせが発生し、大きなプログラムを事前に作成しておく必要があるが、この発明では復帰プログラムを作成する必要が無く、プログラムサイズが小さい。また、復帰のパターンと処理について事前に考察する必要がなく、開発期間を短縮できる。
実施の形態2.
この発明の実施の形態2によるロボットプログラミング装置では、複数台のロボットから構成される組み立てセルの場合について説明する。ロボットプログラミング装置の構成は図3において待避位置指定手段314をさらに設けたものである。
複数台のロボットから構成される組み立てセルでは、ロボットに同期を設定する。待避位置指定手段314は、工程フローを作成した後、工程再構築手段312を通して、各ロボットのSTARTブロック、および同期ブロックに待避位置を指定する。これらの待避位置は、同じ同期区間の工程処理を各ロボットが行ったときに、互いに干渉しない位置に設定する。この設定は事前のシミュレーションなどを用いて自動に行ってもよい。
図5の(b)は、この発明の実施の形態2による作業ブロックが持つデータ構造である。同期ブロック510は、待避位置511を含む。この待避位置(Xr,Yr,Zr,Ar,Br,Cr)は前記のように、同じ同期区間の工程処理を各ロボットが行ったときに、互いに干渉しない位置に設定する。また、この待避位置と各作業ブロックの初期位置の間で移動があった場合も、互いに干渉しないように設定する。
図7はこの発明の実施の形態2による複数台のロボットを定義したときのプログラム作成・教示部31、特に工程再構築手段312の動作を示すフローチャートである。ロボットがエラー、非常停止などの外部イベントにより停止すると、最初に、ステップS201で停止ブロック検出手段315が、通信部33を通してロボット制御装置2と通信し、ロボットプログラムの停止位置(箇所)、ロボット本体の停止座標、組み立てセルの停止状態を取得する。ここで、ハンドの種類、ハンドの把持有無、センサ状態も同時に取得する。次に、停止ブロック検出手段315は、ロボットプログラムの停止位置を工程再構築手段312を通して編集手段311に送り、編集手段311で停止した作業ブロックを特定する。
次に、ステップS202で実行ブロック指定手段313が、入力部34からの作業者の入力によって復帰のために再度実行するブロックを取得する。
次に、ステップS203で工程再構築手段312は、組み立てセルを構成するすべてのロボットに対して、それぞれ作業指示を生成する。ここでは、ステップS204からステップS207の処理を繰り返す。
まず、ステップS204で工程再構築手段312は、停止ブロック検出手段315で検出された情報に基づいてロボットが部品を把持しているかを判定する。もし、部品を把持している場合、ステップS205で工程再構築手段312は、ハンドから部品を取り除く作業指示を生成し、一時実行作業指示318に追加する。
次に、ステップS206で工程再構築手段312は、停止ブロック検出手段315で検出された情報に基づいてロボットのセンサ状態と、実行ブロック指定手段313で作業者が指定した実行ブロックのうち最初の作業ブロックのセンサ状態との差を判別する。もし、センサ状態に差異があった場合、ステップS207で工程再構築手段312は、センサ状態ごとに作業ブロックに指定されたセンサ状態になるように作業指示を生成し、一時実行作業指示318に追加する。
以上の処理を全てのロボットに対して繰り返す。ステップS207aで全てのロボットについての処理が完了したら、ステップS211で工程再構築手段312は、組み立てセルを構成するすべてのロボットに対して、それぞれロボットプログラムを生成する。ここでは、ステップS212からステップS220の処理を繰り返す。
まず、ステップS212で現在対象となっているロボットの実行ブロックに協調動作を行う他のロボットの作業ブロックである協調ブロックが設定されているかを確認する。もし、協調ブロックが設定されている場合、ステップS213でその協調ブロックである他のロボットの作業ブロックを実行ブロックとして追加する。
これは、特定のロボットの実行ブロックに協調ブロックが指定されている場合、例えば、一方のロボットがワークを裏側から抑え、もう一方のロボットが部品を表側から装着する、または、一方のロボットが部品を支え、もう一方のロボットが上から押し込むといったような協調処理を行うためである。この協調ブロックが指定されていると、他のロボットの協調ブロックも実行ブロックと見なし、ロボットプログラムを生成する。
次に、ステップS214の繰り返し処理で工程再構築手段312は、現在停止している作業ブロックを起点として実行ブロックを工程フロー順に接続する。ここでは、ステップS215からステップS220の処理を繰り返す。
次に、ステップS215の繰り返し処理で工程再構築手段312は、同期区間ごとにロボットプログラムを生成する。ここでは、ステップS216からステップS220の処理を繰り返す。
まず、ステップS216で工程再構築手段312は、一つ前の作業ブロック(最初は起点である停止ブロック)と現在の対象作業ブロックのハンド種類を比較する。もし、ハンドが異なる場合、ステップS217で予め定義されているハンド交換のブロックを挿入する。このとき、既にハンドが装着済みの場合、まず既存のハンドを取り外し、次に指定されたハンドを装着する、2つの作業ブロックを挿入する。工程再構築手段312は、一時実行プログラム317へ挿入した作業ブロックのロボットプログラムを追加する。
次に、ステップS218で工程再構築手段312は、指定されたブロックが工程フロー上で接続されているかを判別する。もし、工程フローが接続されていない場合、ステップS219で初期位置にいったん待避して移動するようにロボットのプログラムを生成する。これは、作業ブロック間でのロボットの移動により、ワークや装置との衝突を避けるためである。例えば、一つ前の作業ブロックの初期位置が(Xi1,Yi1,Zi1,Ai1,Bi1,Ci1)で、現在の対象の作業ブロックの初期位置が(Xi2,Yi2,Zi2,Ai2,Bi2,Ci2)である場合、生成されるプログラムは次のようになる。
MOVE (Xi1,Yi1,Zi1,Ai1,Bi1,Ci1)
MOVE (Xi2,Yi2,Zi2,Ai2,Bi2,Ci2)
この作業ブロックの初期位置から次の初期位置へ移動するプログラムは工程フロー順に実行ブロックに辿り着くまで複数行追加する。ステップS219では、工程再構築手段312は、一時実行プログラム317へこのロボットプログラムを追加する。
次に、ステップS220で工程再構築手段312は、一時実行プログラム317へ現在の対象の作業ブロックのロボットプログラムを追加する。
ここで、同期区間中に実行ブロックが一つも存在しないロボットは、同期ブロックに指定された待避位置(Xr,Yr,Zr,Ar,Br,Cr)に移動するため、待避位置に待避する次の命令を一時実行プログラム317に追加する。すなわち待避位置が指定された同期ブロック510を該ロボットに割り当てる。待避位置は待避位置指定手段314により指定される。
MOVE (Xr,Yr,Zr,Ar,Br,Cr )
もし、実行ブロックが存在しない同期区間が連続した場合、同期ごとに同期ブロックに指定された待避位置へ移動させる。
ステップS221で全ての同期区間についての処理が完了し、ステップS222で全ての実行ブロックについての処理が完了し、ステップS223で全てのロボットについての処理が完了したら、次に、ステップS208で工程再構築手段312は、表示部32に一時実行作業指示318を表示し、作業者の操作を促す。また、実行ブロックを指定しないロボットがあれば待避作業指示も一時実行作業指示と共にロボット毎に同期区間単位で生成して併せて表示する。
次に、ステップS209で工程再構築手段312は、通信部33を通してロボット制御装置2に一時実行プログラム317をダウンロードし、通信部33を通してロボット制御装置2にロボット1を起動させる。ロボット制御装置は例えば、一時実行プログラムが完了した後、停止前の工程フローの実行に戻る。また、実行ブロックを指定しないロボットがあれば待避プログラムも一時実行プログラムと共に生成して併せてダウンロードする。
なお、ステップS222で全ての実行ブロックについて処理が完了する度に上記ステップS208、S209を実行するようにして、各ロボット毎に処理を行ってもよい。
以上のように、複数台のロボットから構成される組み立てセルにおいて、ロボット間の同期を持つ工程フローを定義した場合に、指定した実行ブロックのみを動かすプログラムを一時的に生成し、それらを実行することで、複数台のロボットから構成されるセルにおいて、停止した状態からの復帰プログラムを作成する必要が無く、プログラムサイズの削減ができる。また、開発期間の短縮も可能となる。
また、一時実行プログラムの機能を用いることで、組み立てセルの立ち上げ作業において、特定動作を繰り返して動作確認を行う場合、特定の工程のみを選択して実行できるため、デバッグ用のプログラムを作成する必要がなくなり、立ち上げ時間を大幅に短縮できる。
なおこの発明では上述のように、エラーの発生またはイベントの発生によりロボットプログラムが停止した際に復帰させる際に適用した場合、復帰時に再実行する実行ブロックが外部入力に従って得られ、復帰のためのプログラムおよび作業指示を生成し、また組み立てセルの立ち上げにおいて、動作を確認するために特定の工程の動作を複数回繰り返す際に適用した場合、特定の工程の動作の実行ブロックが外部入力に従って得られ、特定の工程の動作のためのプログラムおよび作業指示を生成するが、この発明はこれに限定されず、広義には、ロボットの任意の停止状態から所望の動作を実行させる際に、工程を選択できるようにプログラミングを行い、そのためのプログラムおよび作業指示を生成するものである。
1 ロボット、2 ロボット制御装置、3 ロボットプログラミング装置、11 ハンド、12 部品、13 ワーク、14 作業台、15 部品供給台、21 ロボット制御部、22 プログラム実行部、23 プログラム・データ記憶部、24、33 通信部、31 プログラム作成・教示部、32 表示部、34 入力部、311 編集手段、312 工程再構築手段、313 実行ブロック指定手段、314 待避位置指定手段、315 停止ブロック検出手段、316 工程フローデータ、317 一時実行プログラム、318 一時実行作業指示、500 作業ブロック、501 ブロックID、502 ロボットプログラム、503 協調ブロック、504 初期位置、505 ハンド種類、506 ハンド把持状態、507 センサ状態、510 同期ブロック、511 待避位置。

Claims (12)

  1. ロボットを使用した組み立てセルにおけるロボットが行う独立した作業を単位とした作業ブロックを実行順に接続して工程フローを作成し、工程フローからロボットプログラムを生成するロボットプログラミング装置であって、
    停止ブロック検出手段で検出された停止ブロックと、表示手段に表示した前記停止ブロックを考慮した外部入力に従って実行ブロック指定手段から得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示を生成し、前記表示手段に前記一時実行作業指示を表示すると共に、入出力手段から前記一時実行プログラムを出力する工程再構築手段を備えたことを特徴とするロボットプログラミング装置。
  2. ロボットを使用した組み立てセルにおけるロボットが行う独立した作業を単位とした作業ブロックを実行順に接続して工程フローを作成し、工程フローからロボットプログラムを生成する編集手段を備えたロボットプログラミング装置であって、
    工程再構築手段、実行ブロック指定手段、停止ブロック検出手段、表示手段及び入出力手段をさらに備え、
    前記編集手段は、それぞれロボットプログラム、動作開始前と終了後のそれぞれの初期位置とハンド状態とセンサ状態を含む作業ブロックを定義して前記工程フローを作成し、
    前記停止ブロック検出手段は、ロボット制御またはシミュレーション時の動作停止時に、前記入出力手段を介して外部からのロボット停止状態、ハンド状態、センサ状態を検出して前記工程再構築手段に送り、
    前記工程再構築手段は、前記ロボット停止状態を前記編集手段に送り停止ブロックを求めさせ、前記停止ブロック、ロボット停止状態、ハンド状態、センサ状態を前記表示手段に表示させ、前記停止ブロックと、前記表示手段の表示を考慮した外部入力に従って前記実行ブロック指定手段から得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示を生成し、前記表示手段に前記一時実行作業指示を表示すると共に、前記入出力手段から前記一時実行プログラムを出力する、
    ことを特徴とするロボットプログラミング装置。
  3. 複数のロボットから構成される組み立てセルにおいて、ロボット間で同期が設定されている場合に、
    ロボットの同期動作時の待避位置を指定する待避位置指定手段をさらに備え、
    前記編集手段は、前記作業ブロックと、ロボット間で同期を設定する前記待避位置を含む同期ブロックと、を定義して前記工程フローを作成し、
    前記停止ブロック検出手段は、ロボット制御またはシミュレーション時の動作停止時に、ロボット毎に前記入出力手段を介して外部からのロボット停止状態、ハンド状態、センサ状態を検出して前記工程再構築手段に送り、
    前記工程再構築手段は、各ロボットに関して、前記ロボット停止状態を前記編集手段に送りに停止ブロックを求めさせ、前記停止ブロック、ロボット停止状態、ハンド状態、センサ状態を前記表示手段に表示させ、前記停止ブロックと、前記表示手段の表示を考慮した外部入力に従って前記実行ブロック指定手段から得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示をロボット毎に同期区間単位で生成し、前記表示手段に前記一時実行作業指示を表示すると共に、前記入出力手段から前記一時実行プログラムを出力する、
    ことを特徴とする請求項2に記載のロボットプログラミング装置。
  4. 前記工程再構築手段がさらに、実行ブロックを指定しないロボットのための待避プログラムおよび待避作業指示をロボット毎に同期区間単位で生成し、前記表示手段に前記一時実行作業指示と共に前記待避作業指示を表示し、前記入出力手段から前記一時実行プログラムと共に前記待避プログラムを出力することを特徴とする請求項3に記載のロボットプログラミング装置。
  5. エラーの発生またはイベントの発生によりロボットプログラムが停止した際に復帰させる場合に、前記実行ブロック指定手段から復帰時に再実行する実行ブロックが得られ、前記工程再構築手段が復帰のための前記各プログラムおよび作業指示を生成することを特徴とする請求項2から4までのいずれか1項に記載のロボットプログラミング装置。
  6. 組み立てセルの立ち上げにおいて、動作を確認するために特定の工程の動作を複数回繰り返す場合に、前記実行ブロック指定手段から前記特定の工程の動作の実行ブロックが得られ、前記工程再構築手段が前記特定の工程の動作のための前記各プログラムおよび作業指示を生成することを特徴とする請求項2から4までのいずれか1項に記載のロボットプログラミング装置。
  7. ロボットを使用した組み立てセルにおけるロボットが行う独立した作業を単位とした作業ブロックを実行順に接続して工程フローを作成し、工程フローからロボットプログラムを生成するロボットプログラミング方法において、
    検出された停止ブロックと、表示手段に表示した前記停止ブロックを考慮した外部入力に従って得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示を生成し、前記表示手段に前記一時実行作業指示を表示すると共に、入出力手段から前記一時実行プログラムを出力することを特徴とするロボットプログラミング方法。
  8. ロボットを使用した組み立てセルにおけるロボットが行う独立した作業を単位とした作業ブロックを実行順に接続して工程フローを作成し、工程フローからロボットプログラムを生成するロボットプログラミング方法であって、
    それぞれロボットプログラム、動作開始前と終了後のそれぞれの初期位置とハンド状態とセンサ状態を含む作業ブロックを定義して前記工程フローを作成する工程と、
    ロボット制御またはシミュレーション時の動作停止時に、入出力手段を介して外部からのロボット停止状態、ハンド状態、センサ状態を検出する工程と、
    前記ロボット停止状態から停止ブロックを求める工程と、
    前記停止ブロック、ロボット停止状態、ハンド状態、センサ状態を表示手段に表示させる工程と、
    前記停止ブロックと、前記表示手段の表示を考慮した外部入力に従って得られる停止状態から実行する実行ブロックとの位置情報とハンド状態とセンサ状態をそれぞれ比較して、前記停止ブロックの停止状態を起点として前記実行ブロックを実行するための一時実行プログラムおよび一時実行作業指示を生成する工程と、
    前記表示手段に前記一時実行作業指示を表示する工程と、
    前記入出力手段から前記一時実行プログラムを出力する工程と、
    を備えたことを特徴とするロボットプログラミング方法。
  9. 複数のロボットから構成される組み立てセルにおいて、ロボット間で同期が設定されている場合に、
    ロボットの同期動作時の待避位置を指定する工程をさらに備え、
    前記工程フローを作成する工程で、前記作業ブロックと、ロボット間で同期を設定する前記待避位置を含む同期ブロックと、を定義して工程フローを作成し、
    前記ロボット停止状態、ハンド状態、センサ状態を検出する工程で、ロボット制御またはシミュレーション時の動作停止時に、ロボット毎に前記入出力手段を介して外部からのロボット停止状態、ハンド状態、センサ状態を検出し、
    前記停止ブロックを求める工程と前記停止ブロック、前記ロボット停止状態、ハンド状態、センサ状態を表示させる工程を各ロボットに関して行い、
    前記一時実行プログラムおよび一時実行作業指示を生成する工程で、一時実行プログラムおよび一時実行作業指示をロボット毎に同期区間単位で生成し、
    前記一時実行作業指示を表示する工程および一時実行プログラムを出力する工程で、各ロボットに関してそれぞれ前記一時実行作業指示の表示、前記一時実行プログラムの出力を行う、
    ことを特徴とする請求項8に記載のロボットプログラミング方法。
  10. 前記一時実行プログラムおよび一時実行作業指示を生成する工程で、実行ブロックを指定しないロボットのための待避プログラムおよび待避作業指示をロボット毎に同期区間単位でさらに生成し、
    前記一時実行作業指示を表示する工程で、前記表示手段に前記待避作業指示を前記一時実行作業指示と共に表示し、
    前記一時実行プログラムを出力する工程で、前記入出力手段から前記待避プログラムを前記一時実行作業指示と共に出力する、
    ことを特徴とする請求項9に記載のロボットプログラミング方法。
  11. エラーの発生またはイベントの発生によりロボットプログラムが停止した際に復帰させる場合に、復帰時に再実行する実行ブロックを得て、復帰のための前記各プログラムおよび作業指示を生成することを特徴とする請求項8から10までのいずれか1項に記載のロボットプログラミング方法。
  12. 組み立てセルの立ち上げにおいて、動作を確認するために特定の工程の動作を複数回繰り返す場合に、前記特定の工程の動作の実行ブロックを得て、前記特定の工程の動作のための前記各プログラムおよび作業指示を生成することを特徴とする請求項8から10までのいずれか1項に記載のロボットプログラミング方法。
JP2011062702A 2011-03-22 2011-03-22 ロボットプログラミング装置および方法 Active JP5602076B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011062702A JP5602076B2 (ja) 2011-03-22 2011-03-22 ロボットプログラミング装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011062702A JP5602076B2 (ja) 2011-03-22 2011-03-22 ロボットプログラミング装置および方法

Publications (2)

Publication Number Publication Date
JP2012198775A JP2012198775A (ja) 2012-10-18
JP5602076B2 true JP5602076B2 (ja) 2014-10-08

Family

ID=47180922

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011062702A Active JP5602076B2 (ja) 2011-03-22 2011-03-22 ロボットプログラミング装置および方法

Country Status (1)

Country Link
JP (1) JP5602076B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5702811B2 (ja) * 2013-01-30 2015-04-15 ファナック株式会社 動作プログラム作成装置
KR20180015774A (ko) 2015-09-25 2018-02-14 두산로보틱스 주식회사 로봇 제어 방법 및 장치
JP7124389B2 (ja) * 2018-03-30 2022-08-24 セイコーエプソン株式会社 制御装置、ロボット、およびロボットシステム
JP7173079B2 (ja) * 2020-03-31 2022-11-16 株式会社安川電機 作業再開システム、製造方法、及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4374045B2 (ja) * 2007-08-24 2009-12-02 ファナック株式会社 プログラム再開機能を備えた数値制御装置

Also Published As

Publication number Publication date
JP2012198775A (ja) 2012-10-18

Similar Documents

Publication Publication Date Title
US20210039254A1 (en) Method for extending end user programming of an industrial robot with third party contributions
JP4653836B2 (ja) シミュレーション装置
EP2541351B1 (en) Block execution sequence display system
US20190258224A1 (en) Parameter setting device and parameter setting method
US9618926B1 (en) Intelligent engine for managing operations for a computer numerical control (CNC) machine in a computer-aided manufacturing (CAM) system
US20140364989A1 (en) Controller for controlling machine tool and robot
JP5620931B2 (ja) 複合機械加工の方法および装置
JP5543534B2 (ja) プログラム再開機能を備えた数値制御装置
US20090198366A1 (en) Method and device for operating a machine tool
Tsarouchi et al. ROS based coordination of human robot cooperative assembly tasks-An industrial case study
JP5602076B2 (ja) ロボットプログラミング装置および方法
US20090018690A1 (en) Method of controlling a robotic work station and a corresponding robotic work station
US10228681B2 (en) Method of generating a machining program
JP2015079506A (ja) 製品の締結具の製造ライフサイクルの管理
KR20170067700A (ko) 기어 절삭 기계를 제어하는 방법 및 기어 절삭 기계
CN104375456A (zh) 一种干涉确认装置
KR20100068535A (ko) 가공피쳐에 기반한 경험기반 nc 프로그래밍 및 공작물 가공 방법
CN110861080B (zh) 用于对机器人编程的方法以及计算装置和计算机程序
JP2015053016A (ja) プログラム再開機能を備えた数値制御装置
TW201715321A (zh) 加工程式轉換裝置及方法
JP2007213241A (ja) 割り込み加工可能な数値制御工作機械
JP2009053823A (ja) 加工シミュレーション装置
CN204856169U (zh) 一种数控曲线封边机的数控系统
US20030093165A1 (en) Programming method for creating a control program of an industrial machine
JP5763352B2 (ja) Ncプログラム作成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130605

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140417

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: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140819

R150 Certificate of patent or registration of utility model

Ref document number: 5602076

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250