JP7332443B2 - ロボット制御装置及びロボット制御方法 - Google Patents

ロボット制御装置及びロボット制御方法 Download PDF

Info

Publication number
JP7332443B2
JP7332443B2 JP2019209375A JP2019209375A JP7332443B2 JP 7332443 B2 JP7332443 B2 JP 7332443B2 JP 2019209375 A JP2019209375 A JP 2019209375A JP 2019209375 A JP2019209375 A JP 2019209375A JP 7332443 B2 JP7332443 B2 JP 7332443B2
Authority
JP
Japan
Prior art keywords
program
call
instruction
parallel
robot
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
JP2019209375A
Other languages
English (en)
Other versions
JP2021079493A (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.)
Fanuc Corp
Original Assignee
Fanuc 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 Fanuc Corp filed Critical Fanuc Corp
Priority to JP2019209375A priority Critical patent/JP7332443B2/ja
Priority to DE102020213732.3A priority patent/DE102020213732A1/de
Priority to US17/090,195 priority patent/US11911900B2/en
Priority to CN202011245125.2A priority patent/CN112824058A/zh
Publication of JP2021079493A publication Critical patent/JP2021079493A/ja
Application granted granted Critical
Publication of JP7332443B2 publication Critical patent/JP7332443B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical 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/4155Numerical 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 programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/31From computer integrated manufacturing till monitoring
    • G05B2219/31076Controller for cell, for robot motion, for supervision

Description

本発明は、ロボット制御装置及びロボット制御方法に関する。
ロボットを使用する時には、マニプレータの先に持たせたツールや溶接機等の周辺機器と入出力信号をやり取りしながら処理を進める。従って、ロボットのプログラムはマニプレータを動作させるための動作命令と、計算や周辺機器と通信するための論理命令が混在することになる。
現行の制御装置では、ロボットのプログラム内で、マニプレータの動作命令と、入出力や計算等の論理(ロジック)処理命令(又はサブルーチン呼出し)が混在していた場合、各命令をシーケンシャル(順次的)に実行する方法で処理する。
図5は、各命令をシーケンシャル(順次的)に実行する際に用いるプログラムの例を示す。図5の例に示すように、プログラム内の各行において、一つの動作命令、又は一つの論理処理命令を指定できるようになっていて、制御装置がこのプログラムを実行するときには、一つの行の命令の実行が完了してから次の行を実行するというようにシーケンシャル(順次的)に各命令を実行する。
この点、Webサーバに接続したクラウド端末により、ロボットのタッチパネルのディスプレイに表示される画像、スピーカを介して音声合成により出力されるテキスト、及びロボットの所定部位の動作設定を同期させてシーケンシャルにロボットを動作させる動作情報のスクリプトを作成する技術が知られている(例えば、特許文献1参照)。
特許第6067905号公報
ロボットが使用されるアプリケーション(適用例)によっては、論理命令の処理に時間がかかる場合があり、順次的に実行していたのでは処理が間に合わない場合が生じる。すなわち、動作命令の実行が終了してからすぐに次の行の論理命令の実行を開始したのでは、論理処理に時間がかかってしまう場合において、マニプレータが本来の処理が行われるべき位置(又は時刻)を通り越してしまってから周辺機器による処理が行われて、処理結果の品質に悪影響を及ぼしてしまう恐れがある。
また、マニプレータの加減速の間に瞬時に論理命令の処理を行っていれば、マニプレータの動作速度をほぼ一定に保ちながら論理命令の処理を行うことができていたが、論理命令の処理に時間がかかってしまうと、次の動作命令の実行開始が遅れるため、動作速度を一定に保つことができなくなってしまう恐れがある。
また、アプリケーションによっては、ある処理を行う教示位置の前後近辺でロボットの移動中に何度かに分けて細かい処理を行う必要がある場合があり、ロボット動作と論理命令を順次的に実行していたのではうまく対応できないケースが発生する。
例えば、ロボットにペンキのスプレーガンを持たせて塗装作業を行わせるためには、スプレーを開始する位置にマニプレータが到達する直前(1秒以下程度)から、(1)塗料を微粒子化する加圧空気の排出開始、(2)塗料に静電荷電するための電圧印加開始、(3)塗料を吐出する弁を開く、等の処理を数ミリ秒単位の精度で順次行う必要があり、この処理をロボットの動作に並行して行う必要がある。これらの処理をマニプレータ動作に並行してユーザプログラムによって行うことは困難であった。
図6Aは、塗布作業を実行するためのプログラム例を示す。また、図6Bは、塗布開始シーケンスを行うために必要となる追加教示点の例を示す。図6A及び図6Bの例に示すように、塗布開始のシーケンスを行うためのだけの目的で、本来は必要でなかった教示点P[51]とP[52]を教示する必要があり、時間的精度・距離的精度にも問題が起こりやすかった。
簡便な手法で、時間及び距離の点で高い精度の加工を実行することの可能なロボット制御装置及びロボット制御方法が望まれている。
本開示の一態様は、ロボット制御装置であって、ロボットの教示動作及び教示位置が記述された動作命令プログラムを解釈し、動作命令を生成する動作命令解釈部と、前記動作命令を実行する動作命令実行部と、前記動作命令プログラムを先読みし、並行呼出し命令が教示されている行を検出する並行呼出命令検出部と、並行呼出命令で指定されたプログラムを、指定されたタイミングで呼び出して実行する並行呼出命令実行部と、を備える、ロボット制御装置である。
一態様によれば、簡便な手法で、時間及び距離の点で高い精度の加工を実行することが可能となる。
一実施形態のロボット制御システムの全体構成図である。 一実施形態のロボット制御システムの一例に係る全体構成図である。 一実施形態のロボット制御装置の機能ブロック図である。 一実施形態のロボット制御装置で用いられる動作命令プログラムの例である。 一実施形態のロボット制御装置で用いられる呼出し命令の詳細情報を示す画面の例である。 一実施形態のロボット制御装置によって指定される、教示点と、「行番号指定」呼出し及び「位置指定」呼出しの発生箇所との関係の例を示す図である。 一実施形態のロボット制御装置で用いられる動作命令プログラムの例である。 一実施形態のロボット制御装置で用いられる呼出し命令の詳細情報を示す画面の例である。 一実施形態のロボット制御装置によって実行されるプログラムの例を示す図である。 一実施形態のロボット制御装置によって実行されるプログラムによる処理を示すフローチャートである。 一実施形態のロボット制御装置によって実行されるプログラムによる処理を示すフローチャートである。 一実施形態のロボット制御装置によって実行されるプログラムによる処理を示すフローチャートである。 一実施形態のロボット制御装置によって実行されるプログラムによる処理を示すフローチャートである。 一実施形態のロボット制御装置によって指定される、教示点と、「行番号指定」呼出し及び「位置指定」呼出しの発生箇所との関係の例を示す図である。 従来のロボット制御装置で用いられる動作命令プログラムの例である。 従来のロボット制御装置で用いられる動作命令プログラムの例である。 従来のロボット制御装置によって指定される、教示点と、「行番号指定」呼出し及び「位置指定」呼出しの発生箇所との関係の例を示す図である。
以下、本発明の実施形態について、図1~図4Hを参照することにより説明する。
〔1 実施形態の構成〕
図1Aは、本発明の実施形態に係るロボット制御システム1の全体構成を示す。ロボット制御システム1は、ロボット制御装置10と、ロボット20と、外部周辺装置30とを備える。更に、ロボット制御装置10とロボット20、及び、ロボット制御装置10と外部周辺装置30とは、互いに通信可能に接続される。なお、図1には図示しないが、ロボット制御装置10、ロボット20、及び外部周辺装置30は、互いにネットワークを介して通信可能に接続してもよい。
ロボット制御装置10は、ロボット20を制御する装置である。具体的には、ロボット制御装置10は、ロボット20の動作制御及び加工制御のための教示プログラム、教示データ、動作パラメータ等を格納しており、教示データ及び動作パラメータに基づいて教示プログラムを実行することにより、ロボット20を制御する。
ロボット20は、例えば、6軸垂直多関節型又は4軸垂直多関節型等の多関節型ロボットであるが、これには限定されず、直交座標ロボット、スカラロボット、パラレルリンクロボット等であってよい。
外部周辺装置30は、PLCやレーザ発振器等の各種アプリケーション制御装置である。
図1Aに示すロボット制御システム1において、例えば、外部周辺装置30がレーザ発振器の制御装置である場合、ロボット制御装置10は、ロボット20及び外部周辺装置30と、入出力信号やシリアル通信を行うことで、ロボット20の動作を制御すると共に、ロボット20によるレーザ加工プロセスを制御する。
図1Bは、ロボット制御システム1の例として、塗装機としての外部周辺装置30と共用することにより、ロボット20で塗装作業を行う場合の全体構成図である。ロボット20はスプレーノズル21を備え、塗装機としての外部周辺装置30から塗料供給ホース22で、スプレーノズル21に対して塗料を供給すると共に、ロボット20が備えるマニプレータにより、スプレーノズル21を制御することで、塗装作業を行うとする。以下の説明では、必要に応じて、図1Bに示すように、ロボット20で塗装作業を行うケースを例示して説明する。
図2は、ロボット制御装置10の機能ブロック図である。ロボット制御装置10は、記憶部11と制御部12とを備える。
記憶部11は、ロボット20の教示動作及び教示位置が記述された動作命令プログラムを記憶する。また、動作命令プログラムには、動作命令と並行して呼び出される、並行呼出命令が記載される。この並行呼出命令は、単独で、又は動作命令に付加して、サブプログラムへの呼出しを可能とする。また、本発明による「並行呼出し」では、本来のプログラム実行文脈とは別に、並行してサブプログラムの実行が行われる。
なお、動作命令プログラムの例については、後述する。
制御部12は、CPU、ROM、RAM、CMOSメモリ等を有し、これらはバスを介して相互に通信可能に構成される、当業者にとって公知のものである。
CPUはロボット制御装置10を全体的に制御するプロセッサである。該CPUは、ROMに格納されたシステムプログラム及びアプリケーションプログラムを、バスを介して読み出し、該システムプログラム及びアプリケーションプログラムに従ってロボット制御装置10全体を制御することで、図2に示すように制御部100を、動作命令解釈部121、動作命令実行部122、並行呼出命令検出部123、並行呼出命令実行部124の機能を実現するように構成される。
動作命令解釈部121は、上記のように、ロボット20の教示動作及び教示位置が記述された動作命令プログラムを解釈し、動作命令を生成する。
動作命令実行部122は、教示プログラム開始時に、動作命令解釈部121によるタスク処理を起動すると共に、動作命令解釈部121によって生成された動作命令を実行する。
並行呼出命令検出部123は、動作命令プログラムを先読みし、並行呼出命令が教示されている行を検出する。
並行呼出命令実行部124(並行呼出命令実行部124a、並行呼出命令実行部124b・・・並行呼出命令実行部124n)は、並行呼出命令検出部123によるタスク処理を起動すると共に、並行呼出命令で指定されたプログラムを、指定されたタイミングで呼び出して実行する。
なお、並行呼出命令で指定されたプログラムは、並行実行が可能であるため、これに応じて、並行呼出命令実行部124は、並行呼出命令実行部124a、並行呼出命令実行部124b・・・並行呼出命令実行部124nの複数個存在する。
並行呼出命令実行部124は、動作命令プログラムにおいて、並行呼出命令が教示されている行の何行前か、もしくは何行後か、を指定して、その行にプログラム実行が達したときに呼出しを発生させる呼出し方法を実行してもよい(これを以降では、「行番号指定呼出し」とも呼称する)。なお、一つの並行呼出命令について、「行番号指定」による呼出しは複数回指定可能とする。また、行番号を指定するにあたり、全てのプログラム命令文を考慮するか、マニプレータ動作命令のみを考慮するか、選択可能とする。通常、マニプレータの移動動作にはある程度の時間がかかるので、その時間を使って、後述する「位置指定呼出し」での処理の段取りのために、この「行番号指定呼出し」を使用することができる。
あるいは、並行呼出命令実行部124は、動作命令プログラムにおいて、並行呼出命令が教示されている行での教示位置を基準として、ロボット20に含まれるマニプレータの位置か時間のいずれか、又は両方で指定したタイミングで呼出しを発生させてもよい(これを以降では、「位置指定呼出し」とも呼称する)。なお、一つの並行呼出命令について、「位置指定」による呼出しは複数回指定可能とする。ロボット20のアプリケーションの実行において、数ミリ秒単位で精度よく処理を行わなくてはならない事が多いが、そのような処理を行うためにこの呼出しを使用することができる。
図3Aは、並行呼出命令が記載された動作命令プログラムの例を示す。図3Aに示す動作命令プログラムにおいては、6行目において、動作命令に対して、“CONC_CALL PROG6(10,3,5)”という並行呼出命令が付加されている。ここで、“CONC_CALL”(Concurrent Call)は、“PROG6”というプログラムを呼び出す並行呼出命令である。また、“(10,3,5)”は、“PROG6”に渡される引数の例である。
並行呼出命令検出部123は、図3Aに示す動作命令プログラムを先読みし、並行呼出命令が教示されている行番号6を検出する。
図3Bは、図3Aに記載の“CONC_CALL”命令の詳細情報を示す画面の例であって、図3Aに記載のプログラムの表示中、例えば“CONC_CALL”命令にカーソルを合わせた状態で、“ENTER”キーを押した際に表示される詳細情報を示す。なお、図3Bに示すデータは、内部的にはこれらの詳細情報を“CONC_CALL”命令に付随させてデータ領域を割り当てて情報を格納してもよく、XMLファイルのようなデータファイルとしてロボット制御装置10内に格納しておいてもよい。
図3Bの「CONC_CALL 命令 詳細情報」の欄では、行番号6において、カーソルを合わせた“CONC_CALL”命令が、 “PROG6”のプログラムを呼び出す命令であることが示される。
また、「『行番号指定』呼出し定義」の欄は、呼出し方法が行番号指定であるものの呼出しリストである。
「プログラム名」は、呼び出されるプログラム名であり、何も指定しなければ<標準>と表示され、事前に“CONC_CALL”命令で設定されたプログラムが呼び出される。また、他のプログラムを指定することも可能であり、その場合、指定されたプログラムが指定されたタイミングで呼び出されることとなる。なお、引数が指定されていれば、サブプログラムには引数が渡される。
「トリガ位置」は、命令が教示された位置から何点前、又は何点後の教示点に達したときに、「プログラム名」に記載のプログラムの呼出しが発生するかを指定する。図3Bに示す例においては、“PROG6”の「トリガ位置」は“-5”となっているが、図3Aに記載のプログラム例を参照すると、“CONC_CALL PROG6(10,3,5)”が付随する動作命令によって教示される位置[6]よりも5だけ前の点である、位置[1]において、“PROG6”が呼び出されることが指定される。
また、「『位置指定』呼出し定義」の欄は、呼出し方法が位置指定であるものの呼出しリストである。
「相対距離(mm)」は、“CONC_CALL”命令が、教示された位置からどれだけ前後離れた相対位置に、ロボットマニプレータが接近したときに、“プログラム名”で指定されるプログラムの呼出しが発生するかを指定する。負の値は教示点より前、正の値は教示点より後を示す。単位は“mm”である。なお、コーナー丸めのため、マニプレータが教示点上を通過しない場合には、マニプレータの最接近点からの距離で相対距離を定義する。
「相対時間(ms)」は、「相対距離(mm)」で指定されたトリガ位置より、更に前後の時間のオフセットを指定する。例えば、“-10”が指定されていたら、本来「位置指定」呼出しが発生するであろう位置に達する10msec前に呼出しが発生するようになる。負の値は前、正の値は後を示す。
並行呼出命令実行部124は、並行呼出命令“CONC_CALL”で指定されたプログラム“PROG6”を、「トリガ位置」が「-5」、すなわち、行番号6で指定される位置[6]よりも5だけ前の行番号で指定される位置[1]において呼び出して実行する。
なお、同じプログラムが何度も異なるタイミングで呼ばれるので、呼ばれたプログラム内で自分がどの呼出し方法のどのタイミングで呼ばれているのかを判別するための関数を用意する。プログラムはその関数からの値によって、自分が「行番号指定」又は「位置指定」のどちらによって呼び出されているのか、更に、「行番号指定」ならばどの行番号から呼び出されているのか、「位置指定」呼出しならば自分がどの位置にいるのかを判別する事ができ、状況に合わせて適切な処理を行うことが可能となる。
また、ひとつの“CONC_CALL”で呼ばれる一連のプログラム間でデータをシェアする方法も準備する。例えば、行番号指定呼出しで呼ばれたプログラムの中で予め段取りしておいたデータを、後に位置指定呼出しで呼ばれたプログラムがそのデータを参照する事が可能になる。
例えば、行番号指定呼出しで段取りを行う時に、アナログ電圧の値を予め計算し、その計算結果を共有領域に一旦保存しておき、後にマニプレータが教示位置近辺に達したとき位置指定呼出しの中で、共有領域に保存された計算結果を使って、(改めて出力電圧値を計算することなく)素早くアナログ出力を設定するというような操作が可能になる。
図3Cは、教示点と、行番号指定呼出し及び位置指定呼出しの発生箇所との関係の例を示す図である。実線の矢印は、行番号指定によってプログラムが呼び出された場合のプログラムの呼出し箇所を示す。行番号指定によってプログラムを呼び出す場合には、プログラムの呼出し箇所は、動作命令が記載された各行番号に対応するため、各教示点上でプログラムが呼び出される。図3Cに示す例においては、P[1]、P[2]、及びP[7]でプログラムが呼び出される。
より詳細には、図3Bに示される詳細情報の例を用いると、行番号6の“CONC_CALL”で呼ばれるプログラムが“PROG6”の場合には、「トリガ位置」が「-5」であるため、並行呼出命令実行部124は、行番号6よりも「-5」の行番号1で指定される位置[1](P[1])において、“PROG6”を実行する。同様に、行番号6の“CONC_CALL”で呼ばれるプログラムが“PreProg3”の場合には、「トリガ位置」が「-4」であるため、並行呼出命令実行部124は、行番号6で指定される位置[6]よりも「-4」の行番号2で指定される位置[2](P[2])において、“PreProg3”を実行する。同様に、行番号6の“CONC_CALL”で呼ばれるプログラムが“PostProg1”である場合には、「トリガ位置」が「1」であるため、並行呼出命令実行部124は、行番号6よりも「1」の行番号7で指定される位置[7](P[7])において、“PostProg1”を実行する。
なお、これら“CONC_CALL”は任意の行番号の行に記載することが可能であり、並行呼出命令実行部124は、当該任意の行番号よりも「-5」の行番号で指定される位置において、“PROG6”を実行する。同様に、並行呼出命令実行部124は、当該任意の行番号よりも「-4」の行番号で指定される位置において、“PreProg3”を実行する。同様に、並行呼出命令実行部124は、当該任意の行番号よりも「1」の行番号で指定される位置において、“PostProg1”を実行する。
一方、点線の矢印は、位置指定によってプログラムが呼び出された場合のプログラムの呼出し箇所を示す。位置指定によってプログラムを呼び出す場合には、プログラムの呼出し箇所は、動作命令によって教示される教示点よりも前後の位置となる。図3Cに示す例においては、P[6]の前後でプログラムが呼び出される。
より詳細には、図3Bに示される詳細情報の例を用いると、行番号6の“CONC_CALL”で呼ばれるプログラムが、“Prox7”の場合には、「相対距離(mm)」が「-40.0」、「相対時間(ms)」が「0」であるため、並行呼出命令実行部124は、行番号6で指定される位置である位置[6]よりも-40.0(mm)の位置で“Prox7”を実行する。同様に、行番号6の“CONC_CALL”で呼ばれるプログラムが、“Prox8”の場合には、「相対距離(mm)」が「-30.0」、「相対時間(ms)」が「-40」であるため、並行呼出命令実行部124は、行番号6で指定される位置である位置[6]よりも-30.0mmの位置にマニプレータが到達する時点から、-40(ms)の時点で、“Prox8”を実行する。同様に、行番号6の“CONC_CALL”で呼ばれるプログラムが、“Prox9”の場合には、「相対距離(mm)」が「-20.0」、「相対時間(ms)」が「+20」であるため、行番号6で指定される位置である位置[6]よりも-20.0(mm)の位置にマニプレータが到達する時点から、+20(ms)の時点で、“Prox9”を実行する。同様に、行番号6の“CONC_CALL”で呼ばれるプログラムが、“Prox10”の場合には、「相対距離(mm)」が「-10.0」、「相対時間(ms)」が「0」であるため、並行呼出命令実行部124は、行番号6で指定される位置である位置[6]よりも-10.0(mm)の位置で、“Prox10”を実行する。
なお、これら“CONC_CALL”は任意の行番号の行に記載することが可能であり、並行呼出命令実行部124は、当該任意の行番号で指定される教示位置よりも-40.0(mm)の位置で“Prox7”を実行する。同様に、並行呼出命令実行部124は、当該任意の行番号で指定される教示位置よりも-30.0(mm)の位置にマニプレータが到達する時点から、-40(ms)の時点で、“Prox8”を実行する。同様に、並行呼出命令実行部124は、当該任意の行番号で指定される位置よりも-20.0(mm)の位置にマニプレータが到達する時点から、+20(ms)の時点で、“Prox9”を実行する。同様に、並行呼出命令実行部124は、当該任意の行番号で指定される位置よりも-10.0(mm)の位置で、“Prox10”を実行する。
また、並行呼出命令実行部124は、並行呼出命令の実行タイミングを優先したい場合には、動作命令とは別タスクで並行呼出命令を実行してもよく、実行順序を優先したい場合には、動作命令と同一タスクで並行呼出命令を実行してもよい。
また、ロボット20のプログラム実行に並行して行番号指定呼出しと、位置指定呼出しを行えるためには、プログラムの実行処理を行うタスク(ロボット20のオペレーティングシステムが管理している内部的な実行処理主体)を複数持つ必要がある。例えば、ロボット20のプログラム本体を実行するためのタスク、行番号指定呼出しを行うタスク、位置指定呼出しを行うタスクの計3つを並行して走らせてもよい。この場合には、ある行番号指定呼出しが実行中に、次の行番号指定呼出しが発生した場合には、後の行番号指定呼出しは、先の呼出しが終了するまで待たされる。位置指定呼び出しについても同様である。
このように複数の処理が並行して同時に実行されるときには、実行の優先度を指定できる事が肝要である。通常、行番号指定呼出しは「段取り」のために数行前から時間をかけて実行できる場合が多いので実行の優先度は低くても構わない。一方、位置指定呼出しはロボットの動作に合わせて精度よくアプリケーション処理を行う必要があるため高い優先度で実行する必要がある。そのため、行番号指定呼出しの実行部(タスク)は低優先度、位置指定呼出しを実行するタスクは高優先度、プログラム本体を実行するためのタスクはその中間、のように予め優先度が指定するのが通常である。
更に、並行呼出しを実行するタスクを、行番号指定・位置指定の呼出しが発生するたびに内部的に動的に作成するような実装も検討できる。その場合、例えば既に位置指定呼出しが実行中であっても、その実行終了を待たずに次の位置指定呼出しの実行を開始するというような処理が可能となり、この場合、各位置指定呼出しには優先度が指定されていて、同時に複数の実行処理が発生した場合には優先度の高い物から順に実行処理されるようにする。
また、ロボット20のプログラム実行中に数行先の呼出し命令を見つけて、予め行番号指定呼出しを行うためには、プログラム実行中(特に動作命令実行中)に、プログラムを先読みして将来実行予定のプログラム命令を予め読んでおく必要がある。そのため、ロボット20の移動処理中は、プログラム実行部(動作命令実行部122、並行呼出命令実行部124)は待ち状態にあるので、その時の空き時間を利用して、プログラムの先読み処理を行う。
〔2 実施形態が奏する効果〕
本実施形態に係るロボット制御装置10においては、本来のプログラム実行文脈とは別に、並行してサブプログラムの実行を行うことが可能となる。
また、本実施形態に係るロボット制御装置10においては、例えばユーザがレーザ溶接等の加工プロセスを制御するロジック命令を教示する際、ロボット20の動作命令(教示位置)とは独立して、任意の位置・タイミングで、ロジック命令を実行することが可能になる。
更に、本実施形態に係るロボット制御装置10においては、ロボット20の教示点の数を最小化できるので、ロボット20の動作計画処理も軽量化でき、ロボット20本来の性能を発揮できるようになる。
〔3 実施例〕
実施例として、ロボット20がペンキの塗布作業をするケースについて説明する。ロボット20で塗布作業をする際には、塗布開始位置近傍で、ロボット20の動作に並行して、以下の処理を順次に精度良く行う必要がある。
1.塗料を微粒子化する加圧空気の排出開始(後述のプログラム“Air Open”が対応)
2.塗料に静電荷電するための電圧印加開始(後述のプログラム“Apply Static”が対応)
3.塗料を吐出する弁を開く(後述のプログラム“Trigger ON”が対応)
図4Aは、実施例におけるプログラムの例を示す。図4Aに示すプログラム例においては、6行目において、動作命令に対して、“CONC_CALL GUN_ON(10,3,5)”という並行呼出命令が付随する。ここで、“CONC_CALL”(Concurrent Call)は、“GUN_ON”というプログラムを呼び出す並行呼出命令である。また、“(10,3,5)”は、“GUN_ON”に渡される引数の例である。“GUN_ON”は、ペンキを塗装するために起動するプログラムであり、引数“10,3,5”は、それぞれ「塗料の流量」、「エア圧力」、「静電電圧」である。
図4Bは、図4Aに記載の“CONC_CALL”命令の詳細情報を示す画面の例であって、図4Aに記載のプログラムの入力中、“CONC_CALL”命令にカーソルを合わせた状態で、“ENTER”キーを押した際に表示される詳細情報を示す。
本実施例においては、教示位置の近辺で、3度の位置指定呼出しを発生させて、それぞれ、「エア吹き出し開始」、「静電電圧印加」、「塗料塗布開始」の処理シーケンスを行うように、位置指定呼出しを行う必要がある。
エアの遅れ時間は、印加するエア圧によって変化するので、位置指定呼出しの距離・時間に予め固定値を指定することはできない。その代わりに、“GUN_ON”の実行時に実行するプログラムが、“Pre Calls”の欄に記載された“Dandori”プログラムである。“Dandori”プログラムにより、位置指定呼出しの距離・時間を動的に設定することが可能となる。
図4A及び図4Bの例においては、並行呼出命令検出部123は、図4Aに示す動作命令プログラムを先読みし、並行呼出命令が教示されている行番号6を検出する。
また、並行呼出命令実行部124は、並行呼出命令“CONC_CALL”で指定されたプログラム“GUN_ON(10,3,5)”の実行にあたって、「トリガ位置」が「-4」すなわち、行番号2で指定される位置[2](P[2])において、行番号指定呼出しが発生し、“Dandori”プログラムが呼び出される。この“Dandori”プログラムの中で、“AirOpen”プログラム、“ApplyStatic”プログラム、“TriggerON”プログラムの3度の位置指定呼出しがいつ発生するかを定義する。
図4Cは、“Dandori”プログラムの内部の例を示す。“Dandori”プログラムは、指定されたエア圧の値を元に、エアーが吹き出すまでの遅れ時間を計算し、指定されたエア圧値を元にアナログ出力を設定する“AirOpen”プログラムを呼び出すタイミング(距離・時間)を計算する。その結果を元に、“AirOpen”プログラムの位置指定呼出しを定義する。
同様の計算により、静電電圧を印加する“ApplyStatic”プログラムや、塗布開始のための“TriggerON”プログラムを、位置指定により呼び出すタイミング(距離・時間)を計算し、“ApplyStatic”プログラム及び“TriggerON”プログラムの位置指定呼出しを定義する。
なお、図4Cにおいて、“DefineProxCall”関数の定義は、以下の通りである。すなわち、関数DefineProxCall(d,t,p)において、dは、指定プログラムを呼び出すタイミングを示す相対位置(正負の値)であり、tは、指定プログラムを呼び出すタイミングを調整するための時間オフセット(正負の値)であり、pは呼び出されるプログラム名である。
図4Dは、“Dandori”プログラムで実行される各処理を示すフローチャートである。
ステップS1において、“Dandori”プログラムが開始される。
ステップS2において、引数として渡されたエア圧値、静電電圧値、塗料の流量値を読む。
ステップS3において、指定されたエア圧値を基に“AirOpen”プログラムを呼び出すタイミング(距離・時間)を計算し、それぞれを“Dist1”、“tim1”変数に格納する。
ステップS4において、指定された静電電圧値を基に“ApplyStatic”プログラムを呼び出すタイミング(距離・時間)を計算し、それぞれを“Dist2”、“tim2”変数に格納する。
ステップS5において、指定された静電電圧値を基に“TriggerON”プログラムを呼び出すタイミング(距離・時間)を計算し、それぞれを“Dist3”、“tim3”変数に格納する。
ステップS6において、計算された距離・時間(Dist1、tim1、Dist2、tim2、Dist3、tim3)を使って、3つの位置指定呼出しを定義する。
ステップS7において、“Dandori”プログラムを終了する。
図4Eは、“AirOpen”プログラムで実行される各処理を示すフローチャートである。
ステップS11において、“AirOpen”プログラムを開始する。
ステップS12において、指定されたエア圧値を基にアナログ出力を設定する。
ステップS13において、“AirOpen”プログラムを終了する。
図4Fは、“ApplyStatic”プログラムで実行される各処理を示すフローチャートである。
ステップS21において、“ApplyStatic”プログラムを開始する。
ステップS22において、指定された静電電圧値を基にアナログ出力を設定する。
ステップS23において、“ApplyStatic”プログラムを終了する。
図4Gは、“TriggeON”プログラムで実行される各処理を示すフローチャートである。
ステップS31において、“TriggerON”プログラムを開始する。
ステップS32において、指定された塗料流量値を基にアナログ出力を設定する。
ステップS33において、“TriggerON”プログラムを終了する。
図4Hは、本実施例における、教示点と、行番号指定呼出し及び位置指定呼出しの発生箇所との関係を示す図である。図4Hに示す例においては、行番号指定呼出しにより、P[2]において、P[6]での塗布開始シーケンスを段取りするため、“Dandori”プログラムが呼び出される。また、位置指定呼出しにより、P[5]とP[6]の間において、“AirOpen”プログラム、“ApplyStatic”プログラム、“TriggerON”プログラムが、この順に呼び出される。
(1) 本発明に係るロボット制御装置(例えば、上記の「ロボット制御装置10」)は、ロボットの教示動作及び教示位置が記述された動作命令プログラムを解釈し、動作命令を生成する動作命令解釈部(例えば、上記の「動作命令解釈部121」)と、前記動作命令を実行する動作命令実行部(例えば、上記の「動作命令実行部122」)と、前記動作命令プログラムを先読みし、並行呼出命令が教示されている行を検出する並行呼出命令検出部(例えば、上記の「並行呼出命令検出部123」)と、並行呼出命令で指定されたプログラムを、指定されたタイミングで呼び出して実行する並行呼出命令実行部(例えば、上記の「並行呼出命令実行部124」)と、を備える。
これにより、簡便な手法で、時間及び距離の点で高い精度の加工を実行することが可能となる。
(2) (1)に記載のロボット制御装置(例えば、上記の「ロボット制御装置10」)において、前記並行呼出命令実行部(例えば、上記の「並行呼出命令実行部124」)は、前記動作命令プログラムにおいて、前記並行呼出命令が教示されている行に前後する行数を指定して、当該前後する行に、前記動作命令の実行が達したときに、前記動作命令の実行に並行して前記並行呼出命令を実行する。
これにより、例えば、マニプレータの移動動作にかかる時間を使って、位置指定呼出しでの処理の段取りをすることができる。
(3) (1)に記載のロボット制御装置(例えば、上記の「ロボット制御装置10」)において、前記並行呼出命令実行部(例えば、上記の「並行呼出命令実行部124」)は、前記動作命令プログラムにおいて、前記並行呼出命令が教示されている行での、前記動作命令による教示位置を基準として、前記ロボットに含まれるマニプレータの位置及び/又は時間で指定したタイミングで、前記動作命令の実行に並行して前記並行呼出命令を実行する。
これにより、例えば、ロボットのアプリケーションの実行において、数ミリ秒単位での精度のよい処理を、簡便に行うことが可能となる。
1 ロボット制御システム
10 ロボット制御装置
11 記憶部
12 制御部
20 ロボット
30 外部周辺装置
121 動作命令解釈部
122 動作命令実行部
123 並行呼出命令検出部
124 並行呼出命令実行部

Claims (2)

  1. ロボット制御装置であって、
    ロボットの教示動作及び教示位置が記述された動作命令プログラムを解釈し、動作命令を生成する動作命令解釈部と、
    前記動作命令を実行する動作命令実行部と、
    前記動作命令プログラムを先読みし、並行呼出命令が教示されている行を検出する並行呼出命令検出部と、
    並行呼出命令で指定されたプログラムを、指定されたタイミングで呼び出して実行する並行呼出命令実行部と、を備え、
    前記並行呼出命令実行部は、前記動作命令プログラムにおいて、前記並行呼出命令が教示されている行に前後する行数を指定して、当該前後する行に、前記動作命令の実行が達したときに、前記動作命令の実行に並行して前記並行呼出命令を実行する、ロボット制御装置。
  2. 前記並行呼出命令実行部は、前記動作命令プログラムにおいて、前記並行呼出命令が教示されている行での、前記動作命令による教示位置を基準として、前記ロボットに含まれるマニプレータの位置及び/又は時間で指定したタイミングで、前記動作命令の実行に並行して前記並行呼出命令を実行する、請求項1に記載のロボット制御装置。
JP2019209375A 2019-11-20 2019-11-20 ロボット制御装置及びロボット制御方法 Active JP7332443B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2019209375A JP7332443B2 (ja) 2019-11-20 2019-11-20 ロボット制御装置及びロボット制御方法
DE102020213732.3A DE102020213732A1 (de) 2019-11-20 2020-11-02 Robotersteuerung und robotersteuerverfahren
US17/090,195 US11911900B2 (en) 2019-11-20 2020-11-05 Robot controller and robot control method
CN202011245125.2A CN112824058A (zh) 2019-11-20 2020-11-10 机器人控制装置以及机器人控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019209375A JP7332443B2 (ja) 2019-11-20 2019-11-20 ロボット制御装置及びロボット制御方法

Publications (2)

Publication Number Publication Date
JP2021079493A JP2021079493A (ja) 2021-05-27
JP7332443B2 true JP7332443B2 (ja) 2023-08-23

Family

ID=75683525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019209375A Active JP7332443B2 (ja) 2019-11-20 2019-11-20 ロボット制御装置及びロボット制御方法

Country Status (4)

Country Link
US (1) US11911900B2 (ja)
JP (1) JP7332443B2 (ja)
CN (1) CN112824058A (ja)
DE (1) DE102020213732A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110561387B (zh) * 2019-08-23 2022-09-02 东南大学 工业机器人系统中可旋转工件的测定方法
CN115488906B (zh) * 2022-10-09 2023-07-18 南京领鹊科技有限公司 机器人喷涂控制方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02139187A (ja) * 1988-11-18 1990-05-29 Tokico Ltd 工業用ロボットの周辺機器制御方法
JP5496419B1 (ja) * 2012-05-15 2014-05-21 三菱電機株式会社 数値制御装置
JP6067905B1 (ja) 2016-03-18 2017-01-25 M−Solutions株式会社 ロボット制御プログラム生成システム
JP6950415B2 (ja) * 2017-09-29 2021-10-13 オムロン株式会社 制御装置
JP7095262B2 (ja) * 2017-11-10 2022-07-05 株式会社安川電機 プログラミング支援装置、ロボットシステム及びプログラム生成方法
DE112019006613T5 (de) * 2019-01-09 2021-09-30 Mitsubishi Electric Corporation Numerische Steuerungsvorrichtung und numerisches Steuerungsverfahren

Also Published As

Publication number Publication date
US20210146530A1 (en) 2021-05-20
JP2021079493A (ja) 2021-05-27
US11911900B2 (en) 2024-02-27
DE102020213732A1 (de) 2021-05-20
CN112824058A (zh) 2021-05-21

Similar Documents

Publication Publication Date Title
JP7332443B2 (ja) ロボット制御装置及びロボット制御方法
US9902067B2 (en) Offline robot programming device
JP7401277B2 (ja) ロボットプログラミング装置
JP2014108515A (ja) マルチアームロボットによる塗装プロセスの同期
JP2008070368A (ja) 電子制御システムをテストする方法
JP2012066376A (ja) 1つ以上の人間型ロボットの同時経路検討
Wang et al. Closed-loop augmented reality towards accurate human-robot collaboration
JP2019529132A (ja) コーティングロボットの最適化法及びこれに対応するコーティングシステム
CN110682288B (zh) 机器人程序生成装置
US11609547B2 (en) Gestural control of an industrial robot
Vistein et al. Flexible and continuous execution of real-time critical robotic tasks
KR20120005082A (ko) 로봇 연속모션 블랜딩 방법 및 그 방법을 구현하기 위한 로봇 제어 시스템
JP5813931B2 (ja) 教示データの修正システム
JP6585393B2 (ja) ロボット
JP2006081955A (ja) シーリング・システム
JPH07302109A (ja) ロボット制御装置
JPH10143218A (ja) ロボットのサイクルタイム予測装置
JP7060700B2 (ja) コーディネートシステム、ハンドリング装置及び方法
JP7339113B2 (ja) ロボット制御装置及びロボット制御方法
WO2021141050A1 (ja) ロボットプログラミング装置
Gao et al. Analysis of several Boolean operation based trajectory generation strategies for automotive spray applications
JPH0492902A (ja) 自動組立装置の制御装置
Hattori et al. Design and Prototype of Reusable Software Library for Controlling Space Robots
KR20240059952A (ko) 통신 인터페이스로 구성된 모듈 기반 로봇의 제어시스템
JPH09212224A (ja) 塗装ロボットのncデータ作成装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230523

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230524

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230628

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230810

R150 Certificate of patent or registration of utility model

Ref document number: 7332443

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150